From 07ee36aa5e5ff415a70215c2fbf160af6c23310e Mon Sep 17 00:00:00 2001 From: gionoa Date: Sun, 31 Mar 2019 18:36:00 -0400 Subject: [PATCH 1/4] Wall of Code --- FoodApp/FoodApp.xcodeproj/project.pbxproj | 32 +++- FoodApp/FoodApp/AppDelegate.swift | 2 +- .../logo.imageset/Contents.json | 21 +++ .../Assets.xcassets/logo.imageset/logo.png | Bin 0 -> 48996 bytes .../woman.imageset/Contents.json | 21 +++ .../Screen Shot 2019-03-30 at 6.20.59 PM.png | Bin 0 -> 64427 bytes .../Controllers/LoginViewController.swift | 120 ++++++++++++ .../MenuItemDetailViewController.swift | 44 ++--- .../DescriptionViewController.swift | 22 ++- .../OrderViewController.swift | 178 +++++++++++------- .../RatingsViewController.swift | 37 +++- .../Controllers/ProfileViewController.swift | 104 ---------- .../Controllers/SearchViewController.swift | 48 ----- .../Controllers/TabBarController.swift | 4 +- .../{ => Tabs}/HomeViewController.swift | 107 ++++++----- .../Tabs/ProfileViewController.swift | 143 ++++++++++++++ .../ShoppingCartViewController.swift | 12 -- FoodApp/FoodApp/Extensions.swift | 77 +------- FoodApp/FoodApp/FoodItemCollectionView.swift | 58 ------ .../Views/CategoriesCollectionViewCell.swift | 23 ++- .../Views/MenuItemCollectionViewCell.swift | 41 ++-- .../Views/MenuItemCollectionViewCell.xib | 43 +++-- .../FoodApp/Views/RatingsTableViewCell.swift | 48 +++++ .../FoodApp/Views/RatingsTableViewCell.xib | 98 ++++++++++ 24 files changed, 802 insertions(+), 481 deletions(-) create mode 100644 FoodApp/FoodApp/Assets.xcassets/logo.imageset/Contents.json create mode 100644 FoodApp/FoodApp/Assets.xcassets/logo.imageset/logo.png create mode 100644 FoodApp/FoodApp/Assets.xcassets/woman.imageset/Contents.json create mode 100644 FoodApp/FoodApp/Assets.xcassets/woman.imageset/Screen Shot 2019-03-30 at 6.20.59 PM.png create mode 100644 FoodApp/FoodApp/Controllers/LoginViewController.swift delete mode 100644 FoodApp/FoodApp/Controllers/ProfileViewController.swift delete mode 100644 FoodApp/FoodApp/Controllers/SearchViewController.swift rename FoodApp/FoodApp/Controllers/{ => Tabs}/HomeViewController.swift (55%) create mode 100644 FoodApp/FoodApp/Controllers/Tabs/ProfileViewController.swift rename FoodApp/FoodApp/Controllers/{ => Tabs}/ShoppingCartViewController.swift (62%) delete mode 100644 FoodApp/FoodApp/FoodItemCollectionView.swift create mode 100644 FoodApp/FoodApp/Views/RatingsTableViewCell.swift create mode 100644 FoodApp/FoodApp/Views/RatingsTableViewCell.xib diff --git a/FoodApp/FoodApp.xcodeproj/project.pbxproj b/FoodApp/FoodApp.xcodeproj/project.pbxproj index 8b326e1..6e11374 100644 --- a/FoodApp/FoodApp.xcodeproj/project.pbxproj +++ b/FoodApp/FoodApp.xcodeproj/project.pbxproj @@ -21,13 +21,14 @@ BF1D4F2B221F20A9000B95D5 /* TabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1D4F29221F20A9000B95D5 /* TabBarController.swift */; }; BF1D4F31221F38DD000B95D5 /* MenuItemCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1D4F2F221F38DD000B95D5 /* MenuItemCollectionViewCell.swift */; }; BF1D4F32221F38DD000B95D5 /* MenuItemCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BF1D4F30221F38DD000B95D5 /* MenuItemCollectionViewCell.xib */; }; - BF202AFD222866B90040F010 /* FoodItemCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF202AFC222866B90040F010 /* FoodItemCollectionView.swift */; }; - BF509C4C223C1B4F0064AF82 /* SearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF509C4B223C1B4F0064AF82 /* SearchViewController.swift */; }; BF509C4E223C1B6A0064AF82 /* ShoppingCartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF509C4D223C1B6A0064AF82 /* ShoppingCartViewController.swift */; }; BF509C50223C1B740064AF82 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF509C4F223C1B740064AF82 /* ProfileViewController.swift */; }; BF509C52223C78DA0064AF82 /* MenuItemDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF509C51223C78DA0064AF82 /* MenuItemDetailViewController.swift */; }; BF509C54223C79050064AF82 /* MenuItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF509C53223C79050064AF82 /* MenuItem.swift */; }; BF509C782240661F0064AF82 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF509C772240661F0064AF82 /* Extensions.swift */; }; + BF8046FA224FDE0A002DE18F /* RatingsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF8046F8224FDE0A002DE18F /* RatingsTableViewCell.swift */; }; + BF8046FB224FDE0A002DE18F /* RatingsTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BF8046F9224FDE0A002DE18F /* RatingsTableViewCell.xib */; }; + BF8046FF225149A2002DE18F /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF8046FE225149A2002DE18F /* LoginViewController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -48,13 +49,14 @@ BF1D4F29221F20A9000B95D5 /* TabBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarController.swift; sourceTree = ""; }; BF1D4F2F221F38DD000B95D5 /* MenuItemCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MenuItemCollectionViewCell.swift; path = FoodApp/Views/MenuItemCollectionViewCell.swift; sourceTree = SOURCE_ROOT; }; BF1D4F30221F38DD000B95D5 /* MenuItemCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MenuItemCollectionViewCell.xib; path = FoodApp/Views/MenuItemCollectionViewCell.xib; sourceTree = SOURCE_ROOT; }; - BF202AFC222866B90040F010 /* FoodItemCollectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoodItemCollectionView.swift; sourceTree = ""; }; - BF509C4B223C1B4F0064AF82 /* SearchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewController.swift; sourceTree = ""; }; BF509C4D223C1B6A0064AF82 /* ShoppingCartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartViewController.swift; sourceTree = ""; }; BF509C4F223C1B740064AF82 /* ProfileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileViewController.swift; sourceTree = ""; }; BF509C51223C78DA0064AF82 /* MenuItemDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuItemDetailViewController.swift; sourceTree = ""; }; BF509C53223C79050064AF82 /* MenuItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuItem.swift; sourceTree = ""; }; BF509C772240661F0064AF82 /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; + BF8046F8224FDE0A002DE18F /* RatingsTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RatingsTableViewCell.swift; sourceTree = ""; }; + BF8046F9224FDE0A002DE18F /* RatingsTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RatingsTableViewCell.xib; sourceTree = ""; }; + BF8046FE225149A2002DE18F /* LoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = ""; }; D59F8127439E5E39BB747D7F /* Pods-FoodApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FoodApp.release.xcconfig"; path = "Target Support Files/Pods-FoodApp/Pods-FoodApp.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -127,6 +129,8 @@ isa = PBXGroup; children = ( BF0A39042246682700651A6E /* CategoriesCollectionViewCell.swift */, + BF8046F8224FDE0A002DE18F /* RatingsTableViewCell.swift */, + BF8046F9224FDE0A002DE18F /* RatingsTableViewCell.xib */, BF1D4F2F221F38DD000B95D5 /* MenuItemCollectionViewCell.swift */, BF1D4F30221F38DD000B95D5 /* MenuItemCollectionViewCell.xib */, ); @@ -136,15 +140,23 @@ BF439FCD2225BBB000BCDF9A /* Controllers */ = { isa = PBXGroup; children = ( + BF8046FE225149A2002DE18F /* LoginViewController.swift */, BF1D4F29221F20A9000B95D5 /* TabBarController.swift */, - 79EBBE28221340D8006C4341 /* HomeViewController.swift */, + BF80470022517619002DE18F /* Tabs */, BF509C51223C78DA0064AF82 /* MenuItemDetailViewController.swift */, BF0A38DE2243FCF400651A6E /* PageViewControllers */, - BF509C4B223C1B4F0064AF82 /* SearchViewController.swift */, + ); + path = Controllers; + sourceTree = ""; + }; + BF80470022517619002DE18F /* Tabs */ = { + isa = PBXGroup; + children = ( + 79EBBE28221340D8006C4341 /* HomeViewController.swift */, BF509C4D223C1B6A0064AF82 /* ShoppingCartViewController.swift */, BF509C4F223C1B740064AF82 /* ProfileViewController.swift */, ); - path = Controllers; + path = Tabs; sourceTree = ""; }; DE112B0C17C210FFD0D04006 /* FoodApp */ = { @@ -152,7 +164,6 @@ children = ( 79EBBE26221340D8006C4341 /* AppDelegate.swift */, BF509C772240661F0064AF82 /* Extensions.swift */, - BF202AFC222866B90040F010 /* FoodItemCollectionView.swift */, BF439FCD2225BBB000BCDF9A /* Controllers */, BF439FCC2225BBAB00BCDF9A /* Views */, BF439FCB2225BBA400BCDF9A /* Models */, @@ -227,6 +238,7 @@ files = ( 79EBBE31221340DA006C4341 /* LaunchScreen.storyboard in Resources */, 79EBBE2E221340DA006C4341 /* Assets.xcassets in Resources */, + BF8046FB224FDE0A002DE18F /* RatingsTableViewCell.xib in Resources */, 79AA0B9E22440C1400B18A88 /* GoogleService-Info.plist in Resources */, 79EBBE2C221340D8006C4341 /* Main.storyboard in Resources */, BF1D4F32221F38DD000B95D5 /* MenuItemCollectionViewCell.xib in Resources */, @@ -295,14 +307,14 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF509C4C223C1B4F0064AF82 /* SearchViewController.swift in Sources */, + BF8046FA224FDE0A002DE18F /* RatingsTableViewCell.swift in Sources */, BF509C4E223C1B6A0064AF82 /* ShoppingCartViewController.swift in Sources */, BF0A38E2224416E900651A6E /* DescriptionViewController.swift in Sources */, + BF8046FF225149A2002DE18F /* LoginViewController.swift in Sources */, 79EBBE29221340D8006C4341 /* HomeViewController.swift in Sources */, 79EBBE27221340D8006C4341 /* AppDelegate.swift in Sources */, BF509C52223C78DA0064AF82 /* MenuItemDetailViewController.swift in Sources */, BF1D4F2B221F20A9000B95D5 /* TabBarController.swift in Sources */, - BF202AFD222866B90040F010 /* FoodItemCollectionView.swift in Sources */, BF0A39052246682700651A6E /* CategoriesCollectionViewCell.swift in Sources */, BF509C50223C1B740064AF82 /* ProfileViewController.swift in Sources */, BF0A38E42244175800651A6E /* RatingsViewController.swift in Sources */, diff --git a/FoodApp/FoodApp/AppDelegate.swift b/FoodApp/FoodApp/AppDelegate.swift index b888a45..f3f1b77 100644 --- a/FoodApp/FoodApp/AppDelegate.swift +++ b/FoodApp/FoodApp/AppDelegate.swift @@ -19,7 +19,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { FirebaseApp.configure() window = UIWindow(frame: UIScreen.main.bounds) - window?.rootViewController = TabBarController() + window?.rootViewController = LoginViewController() window?.makeKeyAndVisible() return true diff --git a/FoodApp/FoodApp/Assets.xcassets/logo.imageset/Contents.json b/FoodApp/FoodApp/Assets.xcassets/logo.imageset/Contents.json new file mode 100644 index 0000000..8463aca --- /dev/null +++ b/FoodApp/FoodApp/Assets.xcassets/logo.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "logo.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/FoodApp/FoodApp/Assets.xcassets/logo.imageset/logo.png b/FoodApp/FoodApp/Assets.xcassets/logo.imageset/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..93b5ebffc79f72e18c7161e21ec5200bb4f03b83 GIT binary patch literal 48996 zcmV*1KzP52P)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRc5>PbXFRCwC7m|JWVWfXwFe|GjZyHMy&NEeE13vOc*uv~mW4AE#Yq7dU7&@Ix0 zN=k@tK8hNn#?Tsy7;Opa6E8*~KtPRR;K8ICXt1(rU;SU$7yl}@NL=6njb3p zD{N9>n(vfsfSXE^cNR7A&6ZUmj8TNeLSI-Tsi$fF(Z-JQLH6{y38rRI7Ny_J z?wyd)1Y8b4<3hL;fK}!2=Qu3ZV2R6|PPHgEDJoxW_!3>$35P-iLqWy@V*~=DMAA`` z);NR#D-Z&^=D_84<8o=(9S#J7STxG~;7#69PtMpc6|_{m{#m|oZ{yR>PEyGf&9A)5 z#~*%xqFS+ARbsIOPNyA!WHRF~o6QP9B9X*u&3yClty`>rstHZga5x-9V=?+S4x*_h zpq}aTaXXmVM)S+caA_LDLqk|p6wMDHMJNlA zw{{t8=Z9H74?J4_!Brfea38?oe0N$E_vj}YovUP?+r_3AHuL$BZc?cf2!T~qr{t%V z-a6um1dXmRyOxI7w75Vl!41)icPdmX%aIJsRO@~kaj^G~GF(n4R-27vB7sBGNW@|w z1Y|842nOkDim}WM>#Ja%wSeMY6p`(sr&vX{(u<^}5Ln89!7yAOhyHPekFMH?q$GxJ zu+F2gqb7*MBB^$OZvoV31p+%m;r;&@FY*kdR{-CP{g{ME8bT?ErokZda+jL1iqld= zTP)ZqdL|zw6&l-%0-NP|!W1A1wZYjLf8Qen@=ga-+)+?F?(CpwnIoJV^in4ZjD|%I zLb8?Tker#tNlY9aPccW1B~NFvjWSYvjpQZ7jL+)`x(Tsg9H;2>n15+Cx7aAEFpmGu zZ1>7;DQziL6R<7z%B5n7Bqm@|1C*zwmf-y@3?|Sl^@^Q|pptF@{*tdT_UOSv@IK?L``>e8bp|(&kCQ7l^I`iDY zp|T<7?{4JuneWMPLYCE1t7y7MV;{0A=!^9y@!$2cBs+tbHg4pz)kDagrzk$-neI25 zd*Mofj1~8RuyY3$%{kkxJ1MNjM#g`)cis zK&({I6o6Da#1%yK1c1HyAFNpjDHf+YB@o-Z`gJb5N{L3JghC;L!63n4kZ>qOScGAC zY+hP41y8z%&)r_!ZZ~$j9jWUC0s(3r_1I&fnIY>-+b{CYTf1p*Z)b3DkcLy=@x-c9 zQc_ZgM54G{6GPZ|Tt_L1lnPMn-S;6UjvhfNMNV!mqN|x7*7yyLs;Q_AZROm)eH*Fk z6qS_F-quDq9L8pwn%k1Pj#P@QtSmqf2qcV*|IQt*Rty-@JkwPl7#QH$7b}UyVq9-& zAu=?CP18_PnnGAjh*2b@2|=K@m)@Rkx;i_Ny3QNR6CA`KdQwp6h>4BnhDRjF>%XF- zt8?NvAr;y*zM(0l$jiwg-#I{rF%oLj5HuKFecSgd3)0h*xaIvIb}~VwrKL$Awxpnt zyWKrxyDn9v`4^ zzOgwF2kF(s0s1lV^*5jCL@CA9tIZrfd^qV^c6Ro}UG4~awApM3As8MWrZ~TVPJb5< zdm!6w{Lgj&Mn7P5m(vD~PqtI}{Bu-QS5r|@0YEf5<}Hhgim0in8C@#3+l^8RUDt`n zb@Fm@x!c=IZP^fInI=Wm&gvwKWmX!bf?a<-%GrN4e!J3y)8WABbefj~DbX~I;(|hY z0s-DH=w{7AC|O{*bP-X9JGmqXUNKH__&BeXearh4lDdw|)uShy`IPwo07b_ z0v3C8QtgoAgM!pa+nBJZ!)I#SN61}hD#b7+p+5%Uc;dGhNeu4@h_z4NB}h>>zHkc@ zq!?muLl<=ucPSIjMbr`|ObVdSi5x+TksxzATt7OKL$i!F){CR#PnS&}npI-MNAnC% zFHY&?qBRg(%?oH80p?HPc0Yor#ZhidXN>=;Irrcw%PWlk-tV&6u(^k*Adm!XluLpr zV5zjwg6(i|TESFDI}lO~UdF=sht|?|thJ6)ZM94X3sNpZusDvFBFN|f8mSbD=ui!) z+(N(@LLj@@Y<9of+dsZ#VId*eWwX^YlgT8zli7W8-t(Swp66LX8bVg0;-d(tL{JHg zj@HA(x_F61-~cVadnha=%*WKyF1S3=N7{jkrr-B*_zi-aNgYwqGmLN=sKw^-WM#{J z3Y4s&KPKyeDfGQuHIZmVu#k5CkqF$1?^ttCVRGY3++@_FDt%B$&&7T+8GqUQ z6~ri`-Ra7pli9<#?^p$Ob#=TvzLgPqP~=ToTie@sks#HVs$eY;4K-UB`t|@q7D=&n zNyL3}9{Zx)S=T_xDsDmHopkp?PDU1+W^JUV<{t9w(<~bwrq~C~vzJmmubL9Qo$XC< zB9u0;%JETuK3Lj$Mf*x@-b&Y46I()DUBPQ3ALW5LbNSg&i*deAuAB7$UtDoB4_43P zwjnl?a)K0jA>Wg>V+evWve^LK9?K|Mi5k_dsObc$?b>Oq8FWAQF1VMc$^%Tu4shke zZ?K}?Wd8j5EGa+D)I2}KA6d_;fi=8okHB#Hc&Ll-w`R+^%s!V<>}}C%8q~S;BVtP$H8i>E$&!TdT zJA7X-;e%pSO()>@^Y+9R%5vP6AcSU}(0>W-Z*~ zp{mqiun$VIVP`O(Mt_8%86igHLupp8HqEI`tjl#dUHY#p*ouy$XVO|SiAL=zJ~0Yu zc6>-jLX{(dU|jiiDg^Zwv8Dv(5w(X&0%6eC#6m^MNPZWj1E+6gkyhwf%;(D z3R*LY2>1iEw6t*K@L@jx{BusVw9p<5c1a(_GTL!^?Mvc37P{+)1s+`|Cntx({{1N^ zEJRaP+S=MU*3dxRxPxSv?Mcs!NdvW{;yFG$aDeSww=%q9G;7zrNWaW;{HBx=Aq0kD zqU)OLVwDm_jeoPp8cz_4`dRjV7;n0{aqJC93ASZ1a`?6JAjbd}aWuU=Z`wCai|I#QybT_E$G*s-pzsf!4wwt$KU4X)6Whd6a_7+E;(|vfg^_x@#?Fuvwhn(TAIJYmq^JDt->1^7x z3EQ$zqACS&bwirwy15)F-J_}~n5K#2fY+N?m)Q{t@x6)PrQzsN7M6t=(J##C0w~E! z7^qtn@fZ%0J4s?P=%+gDoYaJ280^~dKFeNM8Ta^%88a>d31IW)%?Ke-H7)LOO;cmQ zs)`bmdU!mZIFOo~n-M}#QPI7Ay{*m9^`pvZJk~&&FTyZym|;0EuwQ~8Nt!5TvxpWz zK{f9tBQ}-5sW42~S&AYAxdny%XU}dN$00vIpFp5{Ep#Ljxk$Xz^W`Vluwet0m6g=j z*AothV|GwSN=(D#-MaU=@8{J7Lmf;gw5YtwPg#!Z|4Oi{cMyyaEBWl4q~$>}Xy*hX zai6^e&O~7J_JMf4UIcL9;1?*-tZ=$0;u|+^WaiA7v7ZMF7(i1~Qw)r=w_09a9&K%H zvFFv+)^hjVcX$0dq@;An5L8v=!_@NpV| z?gTAIA-PX*u%&wxf8SWl>xUwEy_sm5MqWW7|K7C|!!+^emp9c~mW8HitXW&jAD{dK zp9C+x^PclOiS-id8I$pN+dpVb?wM5p=(7?Ul+Fb#u1M+f0Z zglBGu;8P{}8SafXBnxtr1IWSQhhhy|FJ2;Cs`j{K=i19z4LcG#ZDnqb0|aQ z6<`$ne>SEUL>PF4ES4n;PM-jE(FKsrHAtQWrqlPVvjZFgo<(Q9SdKsC8_u-u=&SIe zP>ke9zz-0NN0I>)^t2BG0>FOYOJE%~I~mHEWDWa?#{Z~0_u#nd>yCeZ_uk#REA6hV zho3kY3p2q`Kjhd@f+2%}!P8E8v}r>~z{Y?XL`cfCfdC~iO=(^P8xvq`Tthtxv>}ty zz!XeOs2^Zs)dquOVvwJ*B_zvwc%S$A>mR?>TCy!!dnK*NZ^mP3w5z@Mt8>o%{mwbx z?2p6Bo*s%jieR>lU@>3+ zlj=8@yoJUMVofkIn+WJ?tC8Ho=ZnrUnAMKX8_*D} zl((Px{sy+F7cV9$$Db>TzE6SFR#t{>Tikv@xYU26tMVRHghi>t zZOID;Tfh9z9N4#?Og6{VP@1r&x_?V}Hu|w#diwi5m0hJI`j(E$wz=ldSi5#Dwr!&e zRpd1Fk{%%=IJ|f|34QI9r<}{LOYL$1JFZ^NCwunL(b>tWi!I6waPHg4|kLC=;OMV95GCb2S zUoZcIpN~emWW&PMyz*bK&~^Mc&s~(G+<@$zFSG9TH%Mo)2s=Yt7HqFX7bG|@Z#1W| zs5sLQOe-}=Uey%3^aQ{D)vuUc=_7%ORTVgz$!o8@#*Atu9&2bLPQdO9mBv5yj#a%~ z@3GOy2)upGb3F9D2S{boEUnE_5r*7dzu|%V?&o+a#oe`O5+SIGsFt1*=C3a0cEuWthJ+B2h@Q8|$SoZkyX+PRdclU9gy2v4Ffc>rCvV8e6+B-UU?h=n!2qF)@&5GsA zXzw`2zNAuV^GgTTSmG*fYk3CfWu*pcRn;xLxo#b{ox_kGHL(cY-QDciv4ii<4xtH1 zT>k*OcYn-=jT?DrrpMl-YSS*ERcZM?3AB9EM55F{C2h&Jh6X0a3``vkTzn7j?|7e_ zWic(Bq%sVR`ec6c!yl2(W|*jF32UkqQ7dh%`l=FrmRvI$4A6rI4 zWbTb@p|P=%>dI=qy?X+lgfE3#@jQ=kyqX5`(SjO4^e-&W&U_ze4TC?`{b5%_%mM%hf2$s#5=HC34h&0%aY|891DVsG)%J zd^ng^jr&t#N-?7)s|K`HgrPRB;#aAcF``zZhj7vHCQPTPawhv_6^F7Rj%j0%zE9XR zaa{+`b^B$jJC2KH==iQnDxGGWZgEz`;lfBa=j09$Zr({m_-MW}qCgFgMG1}c)cLHh zT1a>KBtT%>7Pf6;S?d36CQB}t!?JQ@GFfcP!f_pJ%f@pDD76SdG#W(+K`0!?G{YE1 zh)^hmVd&_(k#}X4*-NETba!=ff9)}*x4eZhOueu}0xC1(S~g#BH_7C2+K;w#=cIJF#uMe_aEqNJEBU6o!1B@$oaj*Z^JEDT_v_tg57@W-PH-4A=ActhpJZ z^<(~fZu5|Y1p@=M_4duQwjE{N>u<1q`*u>P6t3gox-MZe!hH`t#NXU-9a2If5ih8& zYq|g_3WFL>;3jdLzJQ(lnq1B*%mNic;Q2mQ&H^cU{mu2PSoQ?_8$Tr!3KgjRiFlk? zBEfev;CSlX0tE&rP zr+M${tck%Oqw{6iaZbaa8pykwKO3HoJ5BX7B>WRi<7oljX=8NTo1`92{biRcg#MZ3_CguIoF zLGn>Y&57K!XF5$yO?>!=U4%j*#sAd=uIth8e+@K#x|f$;dWkKYH-Ya{R$gAX@K88B zpc2rj4@m`tCIp#G8q2b=EsJT>r*r)cf6Zl=ewmrGXHivInU7&Uett}G&az1O-8_0> zmKl{WEl~t(T_Vw#F66EJ2k^C`Gn78e*jS4hiC~1o?D*jQkvl=i{Ph-Tg*!jm#ot|j zJsn+LJo3d(&MEhqU8VTPgU)G5JbcD$z%K%A=>-VuIEh4p?v9RrUsqpW-)HttkIVV_ zeN>O7DA5_eFvQw*-GaphrOE#7b=Q&2<;Y|+#B`sEu;L^anfPm?mQIZ_wjhh|zt#l2 zdv%i5)>e#gnB^;;KIJuw7A@l0XP-UIW?K}-H}wFg>w4jPAq0kD^m+839MiUM-+l`C zC%dZe`{XQ(Yiq+q4Rx4~>O}|Sjp9*!jj?nhXbfUianxfsVw$Y_`HDWV1Yqsj{(DJh z%m^&0Kr9wx?%cU-+O(-)fxTBYmt*pTiTFS|ljf>1-Bg5?98v&nyk988P{hD>f!t4n zZCA8mI}V=baaaAf2L0Y$yLJTvsj8}~a5S1fe}12zx%tC&Dw!f4kCRLur>;gPqO0s^ z09B0~AvUS(oieXyp!n0H04juqmFz-F$;P+V<2Wv^H!|6^{rmS9&XBFGtu!<=uy5bK z6Mwk8%+e+E=8?^2Nu@I^K08H47{*0aDyPUB+{P-keNt~t(nyTGzf~KaXe&4rx_3Fac zcieGD;p<2wQiwS>-gsl5_bgqyv=Eb|l%!IrJ~8UuceikG-(J$`6k#0B4y)?(#IgX^ zB>}_P_%IBCcVFJGI_Zgp7S66pR@LjcP z6+#Hcj2T0HeLb3{VHgIRHf`$jx|J(e_InL2pS7}d$r8G{y6Ece=CK)B5+POMsxkwV zxCFoKEdy}!M6_psy8@lN@;UH%|2u(LEQXYln{HXeqmMj1;%VBZBh4(BKcA3kanES^3wgs1PrvW$m=T9q!K+JudleMT~s!nJLF`R^|qaTtEfN|S|Rn@cwj%7Y!;-% zG);6}Kds1C?;UoJ=3US0zBGFd>2wOmw#npjq|zy#sLK%16gcN4Q~(c9Rh9^D7Hdu& zFMoPPvPE2p#+wA}!0Q3)NJb4%d}eP1L(|doM-w!SbEZz^jdgF}`94}d$BGXug9j|Ve?*G9(@|Jrio%y77%vDx!lDJ2yZ6=HSFtebA9?7RWA5GLu6JtzEU1* z$*N*!LwAHHb_qntMAwzI=$c*tL=T1V9H*cw?0O!q=VDnF68NjBCRbK;U zuUJRkK3eWsdv zf~FggS->Dd6co@z95BWx;>}V>Of;VchqxS;(R|l0*C-N`tM_Wu#5n6!vq-#gKm(%p zny9FWCKyE$L=+KdW*X@3n(K`F`(vLfil!L^x@a2rTD7W&8qayo^FI6C?|z@I+LvzM zPs%DR0umVXLNYvz%3le&vnPUKNX(EHs@RKSx^}|}g?NC#MY0@d32EUSUknb@AN@dWGd0o_mBtFcHogrLRn>u1_p%eq8;QHcM!7N8elQ-DuUM!Hjs%f4WJlx7>q%3 zE`rmL4D2T0`FtP~tVZ%0g6Hx0fIMwo6<}QoQ1TigBpHOxH-JmS&=uhz56$~|qHl+x z@-ck=ms*%QW!v~sxSJ0SEgatf6w$fG<2OLnL zFXRyjegsTLnGI-P;A5Y|V+-&SlDnv8*@0lL%H>y7Qfd&Avk_c@unfsV z23o~k4R_I9M_<6+m|-eGop%ZS1PvNEHwJ_oIiDw_}FLHjjz;A;rpp_<3!bPkvM zaBb{ee;+k-I}gcC-6g#3jJ{1xaMY-y2&63S!trH5-j}2ts4~=6fQVl4e%SkaRE3^) z6S$b4%W7ut&5TgnD^|+zaOgUCB;7nA`N`3j(7*ox3i-ThJmt6?-OB_i@#MCBD1khH z>FND9G~h@C50l~Hytwz(4P5l z4uO^bAX3H4lYftQ&asE`keGF){OcN>(;L2 z&O7cTnNE?-W_jjhpIS4ZX9OA|>ahpFVWcxh0eFJ=&Oy~7L&?jjCC7|I2~16sX7Fk6 z6Ir=p1-JkF-)T!F@qC|q#s@@Y8cSDg6&lXEiY+6iuyyTP?!4m;T9Zj^+u`2hA>#xH zshTjl)Gye;_rXLI6{X6&HcOS`2 z8qfE6WL$wjs!qZ^A`rje9$Nbx#iI8Y^5BCHkW8n^=kq*pg2a>_5j|{GVL@CE`*?_M z2r9`1xO^-M^WY!6?s`egQ_dJ3U zSdQc>vbZr!~@ozR#&@z*$s23~*lHU99z3#76cCiaF4 z2ILSxwI!(i)~(nB#<6_)a_+tNUN&voNWr%G)r5c;ZpnnZ@!F>d>Ic)@+|0}wx3GTw zdeX@jR!#Lw4T(&_KDnxNS&=Sy6oZ?Kddh%sr|n9PLE{WKFdk@?9E(o)2^q7FWs5&# z&YU@9^Ld8XYFscNgFv4`8-Bo^Z4;LZlFL?UssEN#qZhT z`OJOdN#?ycmvlCZ=M;EwqQR0jpITE{B-U9FhrM#1>C$>CU@9(ulrwo*%p_1DZ!o zXi(s;u{K^9;_9QY?wh}Y=FPk?`+5HM?%zqKGhBFt!NeLD=|Nk#G*c6F%NbvBGy)g0 znZE*C4LK8yCQd+d5~BN;>9#bCV#}5-xQ?R?#3T&r8AXyOVL*?lU`}cPRqNLA;fEhm zunWk*=eDsv0o(MF|K+n;yKX(HREqcBdyi~3!zulAzEa(WlnR)=qN+h^4@-&rZYj_O zI+Byfae|!5%SPDg9uPdl>I3jV6k zJeGmL1;C*09_|2Y-B$kXwM}f=(n?)zExzZG^CTZ;Vw}?3rPlEI>aa#0`g0R)ZLR2< zhR}89uNNFXs2@YMt@Mb%kzNx&eLGDuohBNI;JPj=QV{Fez-X(L`jD9t=6-3L+Vy!# z(2CA$LSD=_5j+a?IusZxkdTrVr_HY=YxO_~$mentY#TrD_^%TM!}JzbMuzZ%`FV81 zz%&dBwoSpdsiMGh6ALs%0_=DLr~lDFXga24;W!Ste2!cu&HS&s^p1rI(eBSspgJmE zrq3M1lfYmOk!?;wfG&N$Ga$!teJvhc*n$*-bS6!o7)+{5;!9`<+PG+7hR@sti`S>f z+XXzw;af+T^fd|uKrF~{$-oRXJ$v%%XDO2D6t3&?e@0jw7I6qri^GPd#JSeJ5oI74 zc0i4-4_HzYWt^S!R89C+8@3i8>nXrhn=0#FXDJY5UGWB=G{rm((QPK%8CSJp zZwc+(EloYYcTBxjwYgXRVFw|q4wX@KZxA|C2y|T#HzYZM}(w#R5f5)Yup_37=Y?&}%>QQ=c%3gWu#E@dnSKcJ*$5(o{iZU9>j z8^=nsKWhpRS|YteoP<6o;R%yrd-$SDbkX4}kjgYmhAz(~b1Vr`fbV&`wP)+_^92DC zS$aQZJ0g&B$8Lv38>Jw8|G*FMeIJR$b3HuI!*yL6{H^p(7>uheFw|R1bo~cd8t4QF z*|obU9{7+a1eh_Fjk}sAy)T(sHQBTa1w7xwbzHSMz;(#w^VkKOY&J_an=nFR4uoXBfJ;ohR(tMJ5h#d;`@Hd)28TKs_Qzsu7`#{ z2D)KjSr(BSpt15{i2n@r( z_kBFqMFs&zB!W{YU_~MvIchXLdiLa)F=H_;lVe7Y#tQ<*jyW33Fwn{jjEXGR-p+4t zXU|32b6gig*ZFMaN;YoTL@J$T<*HR|Zf>S&RTE1V|AUt1W(-r!5<_}bET?JeJDDb) z>!Rs8f$yUmI;LTgNF<0Q5>&OF=bisurkry&{S=araf`@j3>x<()+dg$oh{xiFthiMqw zy}$1Vn5Kc_IM}w$s;1Sv_WBz<^WRUgdgTi08yd)_(-?+QNdO z)~wua-(Y9YG%F6Mi{0-LPsCZZauv&$FE25Jl#)m^N{=2rIQ46%bLpj*GH77`(g`t) zj%$lZE6l@zQC3eVcuH%&a#_d7@q*Paa2+H=BJYtte zUhEhmi=saSi>7HrA`zsNn3jbQ0@F0n!|Z%jBEgr(9?PJ?gXuqD07s7=&AY+NjG;HbOue zh5$zmIS+dz2w~uk@AM;C=c@0rj7%p|wRGO&x8e#a*HBFg6RuDAh?^*ucN*6&GI=#?hUeh!*L+QmLz={`%8`{DP zA;Q^eKy{5;I?_YCX45qBJRiq)IHtEno#B^!&nmDHwFSw=2Cx;0U5O(tfL=1qH-|=; z*R+LLG)gQMBb&|Av%a2xEdD0|`Fw%ZYu2!C%^K#v^=JO{$3L=W)k<>dG|_03L{*hy zt)hq(LOJn;uEd66;01wN4zcYLgCS+b;=3q@KTSi^b#%ihh4&(WKshN3pu_Oz z4^vZy=T*kG8h5?(*vSUA3VAub@OTu-IaFW+tOT;sxmKJ>9C!fm_1Od5Ro~G4nOZlKw zD#gYP8_DHziV2WtnnpI4W6S2vC02=7RnyR`7edqUeGd>sV^Lz!7(<2(#tJ74Rq;53 z2M+`w5{VFv#nBC&o;~WZEQ`iIjnq_iyl1lbJs=K#;7u4?iEp`H=Pvj0t9n0xXi#IgJ3?ANeF5xapgv(%b)+nd+{Q$k}a&Hg#y-&;S_}t?AwEy3@ zW5SFF4JE?sEOj64Tz1L;^Kr-s34-Yyf#gvnCssnBOOz?> z8?g!e@U=GL@fd-W6bc0du;i1EOVe<}*mW}h_~Vaf!GZ;Q^uCRajcnSqsY6zfVK~&< zF+e#JcJ#M$V77nU?#8NBtGN5_yO}d*4y#wMCK`>B&*yi_T;(?L*Z%N&Uj3h!aUBQ8 z_erNy_>Rq8<2(|&q|Q=S@qNOIhfXW-Q~ou7L2wz5vrH2p31~v{EP_;}^o1c{Vr~JG zhsS75Ch~vu87H+BDvM_uZX>sg#%U)GY9k$DZJoc`p)3iQ{=> zG8t^g<*soaF-=lss=~gWk&2`W(!g^BGzqne6$0&Y`r`5ka26G6CK5=sAbag+!Cc$+{A`k~t$3bCDx1N!9e#P7O+?62>2XmvRdsHGUx45*z~wxy zwo+{aPAkm>JPA~+&8;R>Y`^F5+^YUr!JOrKDYPbQHSw zn5Cs;<;s;6`HoYjOrdx0-ULCwXPOdGrw^bzyIwlk}WN` zo<}C12hZW2;~Xp@NrcSQ7=@me65*X(ExH+>dr7mrxG%2+DDf;l5nctJMm0sKOs*y@ z1-Ys5BYyIgT72JE2hmlGb=t`%^W5wgN+P*9jy&?ny?)PLy?QZZ$dFF|Zez!eW!}7b zBoYZ`%$UK%i4#lVuA|%3sZ-goVFLiBVIYKt9|R;*N$L_+tX{c7&0;-|)?^z_KF6J7 z3PeSqm?@$(Q)%b2-lCHDWZ0K+bg#xK`8h|BBmeAPv`S(>=mc{1H9h30VrAs^1KlA6$XTpRDJN$jb zh!I?V`Q;tH*6)7zJ3jc}0{|Sy;pwNJX7c38yzFe?YG}%^5n^( z98j~!-~474UmZVzzWw@<%jMYGvX$1hHb&LKFORcTuc|OTa9A7~V-*3DkKiSAZfoB# zLv%0$Q?ovJ1j&h1usNGARdHI7lXL+Ef=X<5KhZAO(XDq z{`Dt6;j&9FMQb;GdHwa*dGpOT@jQ?5S!ZE(kk{JTa9x-4&p)5Vix*R0U(by< z-pG_GQvg`KdNnuPa06{^ZCrQVb)0d=8T;*fJC2KC=(Hu1j2?Lu)m2q^o`>T&WOG^a zw$11saOsddhEN&s9^sa*hHz(c1-5HRB%cCTw{McMOF$iHP?gtww>j{5au|;;N?}H# z7~vE@@O^aCsmXR2fQDSo7WxRrggDs3O=CFtNL1EvKOq=M*&V0gj@=y-EEtwrX|Yrz`vM_f(uh zE>~I*)pR{vE`eV^^bnIyIfZyUhUfYCfltJ;c3J*XF#v_NSH*fL+i~$ck2B9WgH7w# zmzwGq@_F*%5{jisZavx~uBmmogrS(IS5yh`Vu!p6xHtsB5(2Ix#~ZtHTM&D2B?&HL zI3D)_lc?}^D+&04+DVe})UJ}Jw)ADzGLJwrOG(LCET)!EG!45@;9sVGi@Wc-gKREG zA|5~BjN~{jmSytix8LEqtFNK0wFNU0!OrI~Op|mbLoS!a^*p{@uQPp67ELHU6gQLw zNY97@Q?a3$S(*M*KJYpQSMw;J?#?ZAk3WvQoL;!x$^mMVSPX-<59yGxnr)4reb&I@ z%^s0x6d43qmIYz4p6fXD=+%q1ty}3ga1giOaR(<%7+2COMX~PtK6+Se2jB<6b_>*d zE~-_otoT}*rg6iMZ)EPX&!~z_%ffXXWT4opV5{l?*Y}aW$91DL21g6%LhZbX8%lH+ zv)(mf8|w--GE+S@O=gHk*s`aqAbWmNucV4R(}9~gKs$|#jO7GsA6?Q>I%~6|^K5D$ z^FG>&ZYjK*rU3{d(I`P!n_bi{L0FR%kHs-flhI?waPq0Aa_q6kGHmGKM66v4`L*je z^1-4-EPU^M=KtvxGU*JC=aNaMOJNNm(878xDJ72QV%rXm>);0gjgf%q!=aC5mzwBD zLyc5psx`P;bKBysS=o+wTY#StR@y-m>LVEh_<;`y zeBZ}$-B4V+;hLnRUtI9rAwK=0E*esSNK;^m8{7JG)|g=pQyCjo5J>yvPPNw`Q%%RO`Iv;U|nA0uh||fT$iCGA7Ge9SYe=rjZ{S0ff4A2 zj_<0fQBBuM<;bO^WKg!}PfDck(yuPYSpy9Y6DjH=0b01sq=%ZwDg#kf2%f4ioJDo@ zfBnF0U019mctSi*dT(A}pFXmjhE6R<;PYd;h@Y@J*=mMZ1X#g`d{?8AT%Ty6uL22q=cHqJqZGi%UUdBL1cwYpQ z+3r?+tT^z7L(0`t@^kjm&a6`awVh}`NNi%aW1tW;Ui; zX9GRIV6BRCrc*`0lrLDT0&Jx5B9D_16}0d>U|La5L#LWS z_?(T#rND4h(|z#;CO-H4!UjGi;4yUOk*28`wL@6Ek_0vr2sjVHX-Ebh;_RhZNU$2oYiP_S!U7&3E4r8? zZI?emavC}@>M$6CWD1gF5F7>6g$yRTA$S6y4apJ&ix9ks#|PwT>k2G%Py?z%2D=7} zJaq(&E(6(@fLg#}TN3+V2we`4MDj@qJQ|CM(Z;WF#6jkXExO4iEtrOeMFNvJI!EAh zG=i@JhlPSa4kQ49M0EO=d$mQom}JiaIp9-ZJ@5{&0>P&kY^0S8&k~4kV5r{hHHiel zOa!a22uKh`;8BmyFa#z#)dXCHWc*%(Oo8WJH15YIjl@M~IR;xPAkoM&7>Ak2?f{xy zjsMTyn@8DMmHGakz2D(XH4jN8kdT=gJ^?>KoW!~Ng(r3nQA)IJMR7aW54IEQ<+EzbyBIyUaM9O zr|Q%>=l!1N`99xg8vlUO2;Q4muL3R=9Bk$w=s+M*EI{ySIH<`pLuhVC@+=yKrjLkM z$P-c~AfU|8QOOvqBVamgT_4OvFcmll&2%IVnmItHY3#$r2&)GpPbi>-AV}b{6TvGe zLImr9XV7d0RuNJmpgdmO+xX*7HzQM5X46H?Nl4xb%u0AuSHhdzy5}uM7t<+Ff`mKm zNVwB#6u-sdB_ejz+@QD_bp%XfA;Qxfy9@E2HwL4;8o*2>2P=WiXr9L61q3S&*J$qW zl?jZB-b6$XnhSx8F+GAkKoc5ySnT;T#ND_@=mnMok0E%X7U_+3jp-zvV_+m*w}oTd zwmPZYi7`ngP9{!nzu)~|r@N~A)Ty)AdiJUYh-E>yvO6-%Yn=}M znHFl6Q;|nhR+=(1XBE?MMW`}LMmzq~N1LKksC|ij7E>arrhMX~L<{BUVF>XXsNInl zh04F%x`V3w!Hq~&jTs-cX|-02+mPburp12@75Tx`L!^)`V5c&nQ~GcxZMJ^qLiyng zT4dg*Mk5pn1XmHy77r*X)0<#@nn`GK9~;XWWTRpWMHrK2n=xC^NX_LZCK?lFOD*g` z*5JX{-6VxrhsiDL=cT@4ajQmm_UBf`S)zu#kB40Hxl#5Ol))CTMR#6D$@zxr7mOxO zG+42BtB+x1KF&&WE{jZ@44kppJfUX%lk5;It_sADG-65XlXR^d^QhMkl}PvA@I&*W zW)3BP+H*Ws8PMG)CF@IE&%~;T2nD#?#w3Di8M8h~bu9jIszke$qY$zy*+xeMPqt?0 zKZw$^ZP-TtShi}7=faQ&2*G(#hcG#rOAZz~`O+=yL`;hn&lXD}%1?%Mb;1a`hY`o4 z5|zFZS!l*%C88BWl^h(H-0%)1jv*xa+{WWTtT8jkj{@AJ6n%CZCS8h=%I;uFI!YtI zD&b+E+gQEdSu?<9JtCzxFvOZRP7tqUyeI`?olGE1CZ^&#dO;|kZa^baps>3l z#4yEiCA9dzYXif%1IcyY(IREuk7vJJUxqB!9ZhU6;ef;MFxd>CcO~B9~O3` z!|9%$>V;OHx~!8C2_HhaEv&|Vdq@ISetu#=~08z z47y_&36TmJqm+c{-FolSk2#Cvpe#7HFYfL}ppb307Bz&C$#Rm2!)A^RHU>4L_~lzB zEY_2kaXZDTlJ7Y29O?hY5@uPJP;+Gi{{*+>v#jBs`X^blv$1ZNKFmDS{qcl$4-S^n zmoLwn{+e?1)9L1)UupbxcC`Iw&&Qb%Is_<;lY7#&Q)TS}j#N4L3q=eaQmW7u7jQC9 zL=U7~D0!cHySaIwN|H9N(Uksa0cTyi{a3!lnC9#zd0(FM{LOnKM54Kzuy1yhN4;9G z=gvfd0Jc`ABZd<}Q_EdP7fI>XB{+i?InO-1K3E_)X0x@Y%zSR!kdzx?Nm_xRnu|O~Gvh^kDSr1#r?!#u#HqI<^k*t|} zr$aDqGW_)9Q7=Vv`e*k zu~DEv`~5H45fG6`OOEe#bi&p)CM9R$AhyvetMMbLL-$$PGbjz#>xt!IU$bNPZ8ie; zygLfge(VKV=+zi>r=Lt4kwuXWk?cQ~ku|kB2p0U<@7+78Lw7vL-E&i;;4;-Y745Bz>!wt^7ZcO8|-MypP374CV*I&3YFbJ3(C%xThEV)(k_b(eF$ymCOHO>;w`-*A*KzLVH60 z$1!hqVV{JFUTykf)&=m)d z;P~u$N32qxN;3wT_^ha93~h|og6W0$h2_KgwLrV)g-7-TEsRJ)$g~`}bV9qr`S=!&Uw8s_zX*EeC=vm#j4DlY|a)}6h^EAp7U?6 zDLb=u;P`}C8Vy>U47Yd{?x;%Ismm$j}l>VCI2h2J!7X4C6!{8l%?aybH# z-|71kc>IS=+Vku*ifwbUprhEscAZ!^s8=)0&`5%Q6`)26oyy@1!Zp|o~QT+ zM{UZE8HCoM`2J8d1?0!;pK!1IakK9yoD-WgX1J_vT5d)&vW^-^1*FG3CroF8hnZz1 zwMzA<*2BL5q&g(zv+Uc?c10&rO2r*D^Y(5F-PqV;^%?yuSd+9budj6x-I{ zJ+(?rW!bw9X=AP5Z&-T58>PnD${Vm|J5C7_^fl_jL^$8=ol z1pWX-JvV|-P*Atv1>tPX7~)ZsaY_D0WT|(>a zQ>H)?Fxq4>t=;ZGn19383zFf66>p%lqjy(?4-=9!8k>Kzx>^s^I}?yPZCr5kwCj5m zwi;FCn&XDeKpz%o&a!{L{Om?`oRnyIzIEi!`$Df9vArSmm1e|vafA|AHPc|KkRV$sod!Jdj*~8A>XKpZN zT+uHnT1dYE`c~e8~=7AnveoSyiH*=UxM4GH-r)+A<{yec_xmHOdD1n#${+ zwb5qmN@Ilczeh^Ye=ir%q{$td<^Cmi22n{rVhv*zkMh>a2fq3DN%%ADXak7S*wz z>O&@oK$W9Oai#=uSbK#q-V5&7}qOveF0d6tsk%eHG_Bx*bR=6+eJSsezGU)`b{^9xU`WSsIBMRp1dPuuAQu;E66 zEHkFemaL=W`@$PprAGVi9!@Qx8smo>phU4I9&s_eK*V|!sJ3c%+2NL|W`!WU5;yyi zanuM%!1s&eM9}Lrg>?tqg1^1JSNafzicxyJDI=gu=qHLv_+e}P7*^ z@nK>(ky)KqrBai}ziHUlCk6vtfrnMN>W)f)$beA3R5k;Ov=cYjk};+eJ(!8%inl{*1hu2Vcvl`Awhm6Dx@*a zy#0e^Dei9fq}y@<%Dbcx=_pqAO&@h(zubBK`8Vjvq2B$4x9SF<2${1I*iYm|4a|J*V$+r_NWfU zEkc$Ob+ty%@zn#mEieOZ^!!&OqYV~Qn+?UDY#x1^JBel~ljgT>^3`z@+habMc1PD^ z?)i0NIT)@Kc-X;gs6i#c&52V@&PS5!1ZLZuK+k@`5<4q3ZlcfKZm%(P7N2WrXGwHz zR+%c)@vPA{J_D?(l$6tcM;O>((bnQb5II|gOMPBBt$W(cFy^0+1c8L7Wy*pm@I@KC z<^5e^Z@1YLPRQp0bfN2xZe99|+Pyh-L*x83`yR>gIqg~5AWA4QW?iP`kQ(z87-nQ# z;BB?)3$^K&R(9m|eEGgzt%d($H9%~@o~NUm&3DF*vcsZB`oSCfSYv(-ctk`*pokjt zAtf9+E#E+C8)b^&NbCfx%G0L7m8!x5AanuzO&?cF1i|Uzc!GlN_|60@%*LmjkgK${ zgoJ(`KP5Wy zr5#kI5A%5vq`FjzR^gnLv0Yr90<${;vDHBlPC9Co-;?a^ zov2M0Q%WX+bNjQCZ1xfTmEX-7p-^h|;npwFQp=@9LtZaCH6l=`JcKa4(nq6Z&5fI7 zIS*|#3iWrdZldq@BUNF&m;wc}^^EbdECiqb%gG!Pk&eOP)iQ;_Qt`g<52!5za!7Tu zm)$KYR#9h5TSz_89QfZlf1Kh2)Zq@&g|KNhvLExLL%PVbJ2h{9>|xhbp%5v_SmBnvP4qhdqEazf(SD zC2xS6nalRf1v=n%+pUHqmqQz~H&dYSX?{f~QW!zIT?q-4vaF zEW2b-TF36dkn@p1M;*n_Y%)MWVFf8#RDx&~M(IQ^vWsOUwQnAWnJmLgaT#QWTc@T> zLNGy9&9GD^k54~s$7Pe%Hn!P3jaTS%gA+>J@Dd8dTVTP5l z-lgPcd%a54D?=S;5rqjMAxR($AsKlP5Ec4$p#jwH3k%88WW!}U8fk~wqHt!(&-i^o16*uX4_?31MUV*n>DYzDWoZr z#xl_s_`hUKFkS|pXYtA5D%ELIHcHe*Zv= zKovpRe-}J)iFPR!ZPYI5umA6C^n871f5FTbXICsb6A(A($r>mUnCWQ3?W|l8KE8_< zrLh|O5I$=m^KZ9Jn6nL=JS!ozAk@F%)-&KL&@U43y12KYc@zt5Yl z+AHBa8*lj?>@}WdPQwgkx^#*M8VTvO*;zi6&HlH*1_y(BTyF&5yub7%TIhtCSVc8k zl-_&|JTK~!mWHdcnBXk(Sff$r^B0&|&Xja_=K$^Dg{7UDRDi%tHcu!`f-@oYqV*HA zCohee`HQZAqnfikiUhsR8(4zK|YQk5lfvq5v7 zkMpS;wZDSFE}cU_Qb4=YhBDCbi<;AMOT1Hm49J1(b0Y=cq|Bb-;^C0Mi75*BgZ{{O zk%Bs6&JS<@Zq)h$_ripVl;B&SGE1kI#K`CklQUP|pd*Fs4Bs*tU2}eC; z2bG!v^wXk%cncYVaVi8cf^lFX7Y;ywTw7}Xq0ugu8OF=|gf>4g05C7~&7UanL3hYJ z;`}?zXmaHZmek1rd)+;2XBk+4BOoCt|Eo%cf_gnK^;TT3cD7JOS_Y9@Rc5vqd{F!F z{B7EBlT=XP>3%-M)hAgOhLt6`dbgW#Gi2f!P|XS*KS+U2!eEfQzG^mW@#%+=-d2n*Emi% zDFXw8ypYd@Z6A~gj>)#>8-b03%Q~0nn}9EraHYDbu~XFL_nS|8e*?m{`=WE)S=NYK z4M$>rcPQt2i7Q^=7*L2KCg_Ptzb5kAGn;&nqe+t`HymmE=aCHuDfqR%{_xe`W0|;S zx!&w>MD_JDj=k9sAaJ=>dz2`bU#`zsj%t8|_l!l=GxGeY?kaoZh&@M9vQzF<;mM#} ziYKzf!ILAumYQJEj9W&?7V14tI9|i!n#p4ZMNJgQKRX-V3%1}K z2Wjv+RlRff$@en6{H+ieC=`4{UMe5@lNk<>LFd&s{&|*uK9fyg;yXt3o{Iye z*LT|^2GlZsce!K4jtYDk5=cl-lcmfqZEeYNrWBU8V$MJOxw#znAn>r;Q^bL=OfN~L zsdZ+_ODE5!G*O*pHcHN~ZoW5^IKG@;8;Az(>C;b>e*b5e5>wga=EOO+ipxg1k2A@S`r8(x_ziSi2zn8i^E+SnF+%ivU|k95hoy*8`3LKHmNnathxWi{i(Ti@H10Y%svJsLm!IOG3?6Z5GZdaDPT%=By`DW-T6Kqa)cNL%!~yf^@%VAv=Uu>i zya+b~vF^~pu4O;Vb7eF^0SbdE1n3f^*mHJ6 zrYPlYjcQ2Gck$T_MJOMY1zD*QTyGOX@VrRt{zC>?2%`-SOYASB{0P zmiHwNU0u97PN!gkURTgd{Wq7y#>-_22#?P!%*+D?Muvl~u?1$sZ-{o=ThnW^ITP4$ zWBwG!`m)hZ2Cju@a+*h4#Z-^fYt#tCkKbV`(l}ui=D8+RImNn+%WPLx34%Vn%|GT3 z|2EH?ZY@e3bm^2S^2MAlmmRD`SJBEW<4lSijti!#!j8MoUc`?q_1DtLZ*Q`tpNkTm z%pJ1c#wpA|)r@uU277z@y?zi0J}!9NZ`!fiNZwXM6Ysa_eWQ*$BOL68?^)GaJKB~O z_cBoCXz4qT5`8O`s#-jxGXSgLxjeq;A(VRHu0;Suv&L_g|TV-oZ z!hls(SMM{^}20M8Z&x;k;$jSQ%sZO}3^C z>FC-{XrQ`6f-(^~LqHTZXt<~$XNW$?O%}qzTsjFv$mkum`$7Q%DbF}3S2i;LN*&G~ zcur^XTal~n2DtIU^y%1mPK;mH>h{)GUf#BwHW9wvE`^e(&+hySzViITOeV6_nmbsT zH7hN%B>B=zZ_%ac4MlEc51;W!8y8Bda(65m?JqS^Li7cd2*&+hwrnHe50Gv@{{9d; z3V~<*Ra^{C3Nbr7ORwD!_g2uib32UIw)#W$OQ66%Y{6_q}T6e_By{e10zPtOn9DuEU62Ku$kV@a>P2 z57{QF*7saJrIl^2?7EIHT{OiYg*{?Wgb2=hz7$GnJMo{&V6VXW$huDyJuXMtW02q* zjdLecm!Xahd9X5hw8eO`5zK}x0zL{0v3xYN)g&|6Ke)Ow+IYtAZT9ROT*WM}%}oC1 zH-^m+B_8?Sr??41UtVnvzq{u5;D?jK;jvwSR2|s<#y=PkK}H5_aZo-Yn_n_flwd*i~O^ z3N13=4Ll3s@8=`pZ*CyCyq7mlx&PBWd##SZLP=;Ff6u#C`i{=%6;2dp_xtPlVFX>N zgrrW%?`E<HE|EHl?klL0T$AIgyQ-q6O?o<#tgoV9|e zPO7mfscweUC(jqtP96*fr3W;ogmmy-e-u_8!4CD7AFT)(2j4D_(@$yzU9futDbEph}>gDa{|srb#-z zc4=4?OZOleq17B(wqX2fJcl$48ml_+Ms*%kQ3T5!fbmsznf`u%2A1%3mnhf4atH_r z4PJML>ra8czP>t*rV_)!Zp#W>&IjSxWqW&0!-!V3-p4M@=SVNxkb;U}@QBG}^k#}-}Ib)cGq%y%SjCmNz!_F@M8SCQJ8?tX+L#@uN zIy0g6=H*H`nCt#REXBZGS71<{mAwLp@+CdgI{H@^3cmsGnVkDVH6ZUq0`u<`XX&gu zvbISzMz(Z{tN#tziUdY%s6@>opgcTOu~T)BGss1fEryM8Y=7+bTHK@`D%_GSgpi%~ zJO|}24oRDvE%AyQsGw)->P}cT?>v3ps4!|RX;MCfWH);3Qpl93k~R zFaHgdV_UIy4wG|F6 zL$~X`z^sQkYN1yd5XR19wCle2>rY^i@9qhA1o^1*OxdiS_T%G?m5sFs$S7&^+FyIA zoHf_(IocC@u_37}FFFXOg9gzZJ7zX|P$`5WFE|>GnN`X)03Dg&%ju*#9cBo#ysdva zlipYpwxP5fkImb{$Lj;~#kYr>8~gDqgMJ4}P+c8kz~`k=IqLSsYPC+68(?1Wot~-h zh0NdIzgvfDyKPx?fIFe{Vv26^)CB<%LHS7_goc8NBao#sDo?vK#D47a7{8gkBkT}B z2BmhCw96g}G7G=ZVcO|)`B*swKN4JEIoJHkuPV#feJctD6&WX(M&T&*RH;O`^6j_x zzRPtnf4Qn=z4{sRYHO z;(k6C@kb!@7cO~P*1q1SF3<1xy$2*{JtYBUunsqO_eR&VIdE+G6u3FA!X z37)sN!^k&Jj%-;7ZT3gryHOZRooD&e|52Q@X|$dC=^VCe&IfvXAy*sPZNtKWLYVba zaXp94<38L&K^1hiWh?F$^0n=@@wAzK`;o`5zIXM1cYd>i+L?ij9t{YS7w2tNMSCCk z%;lQDpvuTp+i!o|b&h_#|9(!IwpjjZ$Ey@rc!*Z=Gp*;h00u|syUt!4u%u8am;wzL za@bJSj=JfAfqbK?Yz?qXc55_8|4Y5sf9?Iie!E+-X_SLoHxsdpTqTZG~6#r}54MA*z z6cRXUhw7-EBUMv~Ct~#1WweNBidM!GB;it(9_uyH=rd+nQNSW>U+akM-4z&qI1F?W z{(0#c84>5@<<)36hIl`mmI?*Fo@DTRy&QEut?9iUV)u98x9b1{F@OU$ufFmF-mC*Y zj)+~i?f)~l1NH;NZ5g}WNUODK*;R%2)v7Wp`!eR8I%=Au=n6*(i99#5STt=?U7cBO zA+q}q$9u>wXnyWM>fmjF@UKXd86GLtLC&)7(>Zd=dfEF#TWlY@@-TMqg8^N++^^Z< zM8PTG?cQbd9C#Q_eT^v%q9C*P1tdo^ziM=AT|Vx{Q>ITk?#A$!35-!7{7%^lKsV@= z=LDYhuX`Tmz`<1gEr!knJ;5(E`?DnrH0H;j!4<90^|y2gc111lg*lvj)d7R!P>t~I zyS=}DK!L_s#8Vx%V#uw9wCmQpY$9YZBLLk>mquv}37~`SJQ_jzq=BL@_-fzbQ|u%DIHVhZDQE>BLdfVyBFXjuNazAh^- zj|Aq+ux25&?*#x`VgrGR9eIuu4_uYxYB3*qft`84YPuc}iwZXX3_Ap(Wh2PqtF1=6 zF}z)Tp*J9PhjUn~t*O-W{O9za@JKy)Q#@EI)L~d0GQ{n74}aR3$5e}uB3*dSWJ7Cv zMtpCtIqP*4=XI@K`#tgZ9dXawMfKz3qti*6*7YLf)g}Myams(3FmPk2w|k%7vIMgK zZ`<(<_|&!pBL99z_NCoXValXN+_+TRM7YyV zC3A7sbv2#sPzYvELBv8#$WTt^4ujfW2f@BE2hXJWwTeJUE$Eg)SsEO7nFPZ=DY02Zu#I%5#$*<`L1Q=4kH-hIYvQ9R-3Njb~Ge`z-_G&hzQ4HZ8M+ zl}c)x@JSPoVkTP-wvn!2h->D&89MV*Vs+mkkW|28^yB+}U0_-QH9xTlH*E~NdDmy1 zJylRRNrhtPvsCu4wsk9oijVw<%C8tq=?k`GIG8#Gkqy0AQ$BcPbb031&YNA3hfSuQ zd0RqaKVok3A#7k?3)vSS`l#;n}KHTCq~HRoOIGYWTW5LtIec*LHMZjaTd<>LzGQ z-on`2Xj<>3!y03KT3w4a&@5u(!B_A$3+kl4j&}Nwn5?SfjG-E~+LVn#g5s~&nq9|b zeY~wFqK?DuJx_Mj>1_E$DP>00w_ZdRs{VYK^M~K-Ik^Oe1!wByDrsDkcd&8txT{gXjbKomo#PI692r zlstx!#4QnCW^*;PdXk+f9t^^-zUEh&fZjG)&K$WjXmd7PHUhy$kXKQ3&yVeX=e4XK zD3Yj}tjtB}N)MkX~{|7#Z_B^}=OGs<>?TaMEfNGr*C@>l7^>=Cv9qNBaT{q8WOTeZ{QoJa$ok_7(~9U@<7f>1t(eN5y-(W0Vtda%=nOiZYtgG zlS5tiHTg_F5BZ{(sW=$(cxxkrZ$F4e&W!34zl%=s)z{zaf`=nMAUGgbzZsK+Fqfoy z2rU@U3YV_X$SsaBYR)hlc{&iSkgtQ02U027#>Wb!4%uBOTve(NAU&fssh^NTvFy0jJ%mXaYxP7MjV&6YW%ulMcw42NUKrV^v!+G+7rWPn5dwhri^o>YAKW%{6vGPmFeNx%XtR6F zp(m}fQ(Or0Aa6db7@c^7T0qZe6u|Iaoczv`O5W_{#2oace9Nl#vgGIi?6UePTBebc zZjluMX_EfDGWNB~UhNjG#A-bP^epL%%{lf=x1d-fY5|;dV)U5O$^i*sLH#7 zpEh=*HxdmrrqyT4@bk_nfWJJqk^Q2wohX`O3fvr@Hm86RZnw&W5sX(x`e|uTf#J z-p)??OI2Ri+TB=9=K*3Qc1wOIhE%cfH87|id(F-TszprumCB#KaQ8Xf3DgS=E}_RBJS;iVrum z^UZ|;LF%aEEfyU;<7SeiLz0OgDr>B?foi7VHjoY+w&u|hj*Il5&*U!`U*e9?h*Z+( zgVY2zUoF&hC#%Ak*@-UZ6p&02v-zV~)v?fqh#L*fVJDVJqGZ4hQjni@>W%d9wHiad z5zmtVOloqP$mbbcVQV%A9&#RUm-J@c82Kqt&5;T7x)KAfAi5t}J-R7*D-PSkp?ieh z(pcvR4<)RDTNz8A5h2#}cjX4P>Ln2(8u5kt&=oeUW8BL7bdz(+stCrdHfB%1Oi$*5 zzFaUF;&ts`7MvJs*Dxy6%6M#9Dkl#*kaEzo$yuGlIkl29oZ-T@oK*FY9*VXQfki?kQrRJ;a7FOM&*Ah6BI$0%*gE&!7_o*mI?yFqh&_^N@WX%W zMkc-siT*Vx_X3@L+3)a}VKR?rh{~_dngvVB;D@SsO(? z?3pV$__5ksdG-nQ(VrA6Ep!rtSd)#8(e_lmve3n`A@T>{C2G@el_ej3BAGXFAd zb!498wKa!dQkhiD)2ND9tn)X>@$rq?*}M+Zb0WTNT^H-{6oBp(&<|RZSX-R3ACcbw zZ3e6Sv@(Ym$5u5pHD&xXCrKZ~+0n~~jiQd5? zDXpH`1z&@iFd=9Qf8b*9L6>siNx1S%)$An>E=lsloA^2i@9f7)5W9_Ikpak49fb1X zL@R%ZWIF^ux2`arMr>}yu`8+{5E^DSqyM9feoJG_aEp?Cqhh&g1!BGOyBmm3Tk^vE z#}qR|rQXBBlwevp44;seEw%TbP?#af11ciY?(vyry-z3HiJp$kQm+DewJm(*g8`7K z^I0^4aQe<+Qt`Y(Z-1+w`l5UxS$&-7j{|8DZ zcJy*>)DE^gzpPq46tjSq{oXO0afe|9-{Ki@SBX524h~>XG`%a9>}q8JFI&0da7D9HI zo}#jQf>yt<^l?K7#GAp%lXtBAKPLY2zayZ8L>j|%9=WpdJI; zu2KasQ`Lqz5IbOIMkxN@$e;@!{i>EiZroW+D@6&XL+(b+VNK~~funH>XhStp6Sq0A~Ty2dV)+Zen7=yqttNc)+}^@Eju&~>FQ%Z z+I2kR12!)ua)Vk3fR`y-1AcxjrX+X{tRvT@Qyh6X?_emi6~>ZNthTJ z3{X^1Btb;5wW8O8Q>MIX-A8c)p4?NoAUF(_ROQD)9MJ{*aZLL^nSsw>VlX}n+*$LR z(IRd%ep`f<35f&iZh~vgL(?PdB6vqIVC-rGFwD5)eD+aU$1yS#-mPD!{P^5;6qL2$( zX5JQ@X4XNWl;3he`jvsLPh^?;7lMk?3jUTNMu4Zmg?m;3#~{`(pM=%~?{)ISmD{1P zG>AE3brJj$N*$@1Kye&8&KM=<#A?kLE#4I+FLS^LVGv8y1FV>*#)Z3=UFzgXTGBbQ zgqJREOYhFW*(yEs&j^@iP*!?gi6{YFwc!Nj+LTF0~`+66i?j!6TitS znB;<;*e&}lPICF8UGWGEwAIP4sROrTCxs@k!E-A{VJFT87`5%>>S8}aISmcye?{IH zgS}Rq#T!2(1F5-lRY|XGo@F)NDd%6ZIAvSMuxv=H>8ri3Ag zR%@pRx_t@Dw~px9zENHB8FyHz3Wb{z?W17>xrevSB=m zyYq!)1$&)Nn(kRos2uO65X|Ao31 zbD~RrSI#?9nEega8~Knd|EG;zOXih#aAoD1`}h*a(Z->zs6Yv~z=CEDno;Tj&V>nJ z#8a}ho4OBbOrHEs(_qUeYBM)*jzZHa)^5=$JEhfUsiD?g7VhVYpgJy)>q2uvXGBd^ zlAyOMfbfKRZ4F86Zg7*<}GLNyR>MD1^H z@Xv4`jfcjdG4Z7)qcEC-hpdBQgUMMTqt372!B7j^cC_DUeC*n*MY%8;7#L``&DQ1d zWo709fg>P#6oc^q2U@_>J}NAt(pG3HHX71|IEtg(HiNk`{iyObK(z0`E;MqQe?+?C zt25N4BgXwR(#iF%!jQ{@y86v<5VSnjrWL<@zrpE_jHZAdd$6vm49C@B!hBm>fapY;F5SIxV$~TmeDScS62mE1|VdT0Xy0W`oYh(`jI3?Qj zz*j~hh=Nm^tfWb@9SqKunVU#tP8JNkD5QhvwTkgZd(#^+y-vNU$Su~88G=Y=@v>B1g$Xv-rFEsy7|mEN=c=k; zx6csx)}L$!U@9yiTotbrQQwx=XQiybX33rTqjLckeJnGSFn7x-AMA6_#0M>RFN2x?@;! zj_y?y9eCN8L{30Al<2i`np#yoV=}0?O{vpb`n?>giTWftvU^|>5&2vc{%g|;MFKAP zR6}lBy6m2dK}&^+IF}u!u2?vfGE6`05D|tEIQ$2L1rNXX+`DtN?H?C7_6v@&aY^r6 z;9S!^>S90%kp@J>pw{D89KigZgGoemqD$e(pT(F*PCn9?06@WZW;t9htv5#Yj|;7R z7XLLvD)UqsvGC44@J9@B7Zx%;DR7LWp|WP{`-j)YI}N~yh3K0fIi^su^9gCZbLO8X z2f8%O;=ejP6kuf-!jmWu5$?>#8D)kjm@Kl$X>A}wh}gx1kr~_X89gqT4heyM_H5jx zU#ck@VfqRCHtc6${ydqy@bd8-^#}QVu`2%4i+xhHhG)^^T+Vx+&x>}PKyHpECP}p^ zK-opIG+~7oGKGA*Jp_UpVDZyl_~f#~P?Mf}jXWugdq7ffgwr3vzrqZR+MfYS?_A7@ zF}a!rabNQ%wYo=UL%VftUnU=Re^!MjESQ45P0Tp4Z``&+KVkdo5HeT@v$(CcDw6j+ z95D;He7O9pELf$u#EEgXSJ(O)pN*nN(e_(jx02z!1Y^v+Wiikc>O_Hwy_KDMrd|u zNGb(1gAaC~ZT9AHeeTbJ%R6q@oocaJwod-L z>UaS%r8Z~}(H~OtKiW7a|KOq29Q+D!jA>JG_1Kx(&7Jy{sD+$9;#8oDa)#J-K9jW3(iMWj) z7G}3!S12F6+}(vFhS(|O9g=&HSDaxh%_I&Wxwl?dWKqZdWY6Qv?LcgIi#Rqks|W_bJ5RnZWFtM9JdlOWzj}5M9>;upG}C zH)prZkV=%$N>j1<9!U9ISBBQXNXD%m&| zhOGij@vP~YO79fMHqRxNa3~`73_^P(gcsiA$-L)q4L=FE4*0!?s*X*DDzBi>eNkCn!G-tICsm>_JDH=&tKa)8Va-RA`H8_$!gaVFozWn%7DFvX&2GCbjrg|@ zU5c7oi!Q?u4OtAvr{V~-QgZ`YqVsA%{sc=sgS{-YG~FKDwYl)76k^#Wjk1{zQW+A` z5q;#^g`Ai1Z2dtR^r9>ai{RW^?e@#*djH(uqKZvCudHoxW>B>zPmgnez_suKXMakB zi@%)avezo~Emi@%>~dyRqwBh&!`qzaCR-2mI#&!JhRht}cGs0wy>b~r;U#^Dkr5-| z5U*#ZF{{24jHV;}a-%YFi9(3?#El^t%in4anE%WE%cb~s70Ir=7tu+zf8X>&eh+9ulOa9Z=X!3a8Kkk<@WegeB z81+V7 zp)QgOhBeeY?0@Tu*yG|v(4@KlSxlGOfO-YEm`NI&M1}N2X0m!PBeajvr^DEKAFfIbnl}+NGQn{p@OHE{`c%Tm z#OhN4nnv{WgWF2gPO5`6%(xjX+_)QQH6DCM)NDAU&p8S2l%$xP znnsD{nGXDOBKKJGM8k0R5Yq`dRV&l^@ByLYP)udol?xTCo9&Lop1aO`z#M$)y2~Xy z4%i`-QjD{?X0P|ED58U+!!jq2v6k!e^U;8#n?pvO#HQGmY=wwtB-cHG=iAVm?;vG~ zl}q;!X0jME#f!8avv}j^RcSG9zPaeCjRgy_)nJizWNK}XnV7EA=2wmW@w$sj?Y93`WPxr^*JgsA$YocHzFKk!N-iJFjnUO1iUPPyGVMa(zxhJNK*abHY_RODV+vqK(%CpZ*Zux5 zGCG7{yd-*waAg!5G{bHy?=P*ldDyZT#8O=2DUIb^9kSE0p^lL&9npWygi5Ynp*w=~ znP}kp4>tP>G;3rPrw95!YJTyKpx3`qbjwYniY{2OZ@m3&-f@{`u>0M`p~+RIIF}s4 z#n9g2B7$DH+CtcA`j-i@@7iBJ?~cl?5x*A0%*>4c-$e1pI#>VX#tS#Y`sf3H7-eG! zmZM2Bq@uiinqWU7Mnobw1O{HmjdCLYa^NC%y>wy8sX;dWDJ`ckEW}2EqkY}4I zp8ja)rQndZH&41+5hurFoBejjYd2S;{WwzgEY#06uRf*4Hm^&Y*lB1R>t|UxVbXuW zUGHyz?+>X=eGfs5DPSw)?m_R4|GI(Q$6}(DH&MJM`rd;`(4O6GBtC78QyC1~{F!;& zBO`uS43@z|x-m9fYKTnCEch~p8d4cgXMTo=1M%38szYa5tc*e)^gpwhYLPT$*WvtK zU*vxo>IRmQ$6mPg+U-xuavUtr{@FX{=?5W!D_*v5HY^-2?TUFGPqmdeKIs<4?n#*~ z>V_q;;~}=$|DHk)yaneJxPyq7BwTlgEry9dT_Jjj=fL{ir0A7N*f;3PNZs|)`?q*1 z|Ff9?aX*y*euG?|@bBrBZFP^?mmpLRDmvXvMLYR3{%K6eg@h{=RtBn5P=LPwXW>_h zzjlF)6Ot3sv7p*`P^BYoV*a~{#{{G_XuM@;tzN+i-`*Q%_w(ODcrgBXsq?5(gAlrO z*tx2f!PLJKX@rA4a&;CTxke&bbbm<9U0jl>3wCDWx%}cKt4CK>Faq|0J<}GI9j5Nl zbZ6^}vZz&U{pv|$_1S@6m=(aQtafaCHF$zD=_vU5^Ybs!uGs#&pUn}@9!|^aPK2Q5 zRJ65Ph=oUucU{eC#5cql$%YH}w{@3G7ttVSmsJzgV6}1$XjPOx$Lv#S)x)O88`E8l zeh>j|mGI9c6A7zrhsP4B$}{f1n3qV>?^1wfn_i*XI0L6=!C4mW=tF zMT5G#WRLZUMb}dadsSIC65IhnaJQ8T{pSpme7(K7$AELk~ry}F_*-_u?O zVv!5>0tB^bEj97jlQyKFcjcfGi%>mw^<1NhqMcOHbxBrz%-mPTD79`pgHt&acpxSM zWggX*zrdzr3d?SusuZfOC$qQj5cK2ya7?oxv(1vazw0 zF+xMl2{>u+a!e4W26r@h%czgWBsSZ6K0Gtk)%l3e)!XwK0iiF?*AL@v-JhfTB8Qyu zo!yWF5t<3lQWk~sVP|%=!-jGnJH8JkK0dza)0Xs_-$^y^I$@1%zhDW-_Af?|rHaC5 z&bPae*^j&eE>|2{rjLwaQWE`luZY5B6s7&0sRj9z+5iT*Jj97nv|lizXP&8lk>8fpxx`29$I)ePZl02! zcbjvnjFmR=_9{_b&8spyKvnJ%YNkRt<*9DA*^||gM`3Q(hxbI?>(oY0OhTji`ItV0 z`R0OcIak|W7eY5)>>ui(SQ1&V6Rc7ay7wYRIaixk=p^5(ocC%{n4SvTG_93a(7Dd^`u^<-bQck z&|c0!iE?hz>DKD7vZ7%zbcc4>fz3tEl^kX97RUjQqpD++p5mJmis-ZkSyx?Hgb3Y^ z=>N8S6&4S*&PmKFLcuOfquqc?qWAU3?d?fDC$ndzE0c_se$NR{<%>8gNP}(E0~d(4 zZQ6da zd|&$u!Jk4wv_3yG67{L=pCn3%fwJ-aokIb~BT2g`G$x|mXq>zKk?)|2#aqkFN5^Dl zZS%$8w9q)DV*%WF)!knsUV!#{cX!u^jcCLbH5`scX61|9v`qZ(Fl$I%cA89<7eqm- zRyJ|GrP-nRjDlxqC@4e|H}8bDSOzr|C#-r&s`8z*SqbYrtEV4 zn*h=byg1%!r#P{Jrzz|ep&ok1zD*{Je9z~$Z}M);E~I;G8p5vW{cmhs{NCHuLxq9i~k1Z_dacQo$TR5_I_^C@EGBW4!s&7@LAQZXYl7 zFf`exCf-tHt*vMZI~tiRL+7|CJt~)bzFBXWcM6`bthR*vZ$9IUV_l8u^s(J9`0<-m_osOt!TixWt~5>5@i-K!`=w^-YF(a?Sl+5b9Rn+Yc|;{dCZ2v)wd@f( zeE!E$(Fl-FXp-*A=~9y+l6lBnHaITJO?rx)rEckCvj~pW+e-ss(4K=TWeuB|K#Kgg zlj-e6++1Y9PFrTr<#+3eMnJzI%bueHm9uzB{OaEb@;|)kH7u$4`1e8Yik3MC-Z)~k zEN>Ok^hM<{W{gI0cc+BRSL4; zi+_7*8!ov55RbabXVJi~v1DjZy=AlI_(-L{rtidP3AnYx79ptRV>6u@m=RV7CVMm+ zYjUa72*$jjGZ!{^;2{$&$~n&?TgsuLbOhv&NY$ubN0Q<ZNsS3GP55u#Vs<(Tm0Wi z#QoszN&}L*i52w%>SQ&^<{Ih~v6YLRu9sIC1U{Zh!jvaW*RJ%2IU_&IM;iY8ln9;tl1Qn1?v*4qR2iPhzMGoT28rCZ) ziQMbkY=v-J4yioiQoJ_*tNC?&Lwb4!Wgaz(V( z*C|ML3+KojG6C5R1e+)K;=0P3r4qG`aROFN%>QJ~g!l*T;rj8)Nv3Z^U;Z55$=5ah zvMZT2%$c|?)|M>jIbZDU`{Jq4W?UhJT!|-Qh~~3F~XwEWk691aPcLn_S)&}E>rC%rH+aR%DT{xW$1u>9M0qsKZ@l-M=7QoS~Qmj#w66RbANAjbWu z``K^o1&>VkRV3&W|__3@xtHKk=FD3^&zT1I46d_!D%q^fn)FJUKxxv1E@ z=i&tx_iOI6$JAGW)w`2cQ?2XQ*!0xlUbctzQ58c#;rNe18zh|J&Vo5>XO&y0%2+E~ z`~Xk;+!9lg6OgFS{?H8zPEFj^rLjmayZvOecEQq(1E|6JaR_8(4Dp8&{t=eDHZ~r) zZS6e7Jv5JpUBZc_u4+u8K|bHRlUC>ivG2S1g;vU=HYVSXoAe!R!A{xPt+N|dT)YD~I*PI^q~j8R2ZN*BQ*HTO8asjyh48517WgkKLa zz)bT>h}kKO;E=0x56>%2SL4EfkjnAwJ0pCQCQDSvXeAcn{PnLJ(bN!Pq}GoZn|D{D z)1s7{{(#;l!v18L6Lq4G6ej1Sftk7|?teSQQjveV*Wx6?riZq(h@&+Ix~R;&tIT_+ zD62uH&*g(d8|a*fjA~oSFxq%mX-YZdS-=FK~q`|w{coo`4Oql%wOn9ss&57)5(do+MZC|4LHryF_z z)2j;{wdVaox%QHN-|eieN(}RAkc>I>2g;J{gwi%=e!C`P(gfiIzi^ud$%f^ArzX25 zL#}{{qjNB(29(BWch|1uKY&PZ^V2W7FzAW2_~7XsuqE8PMO~Kfn_-_0@StS$aHXK= zL$qCDV&9CLR^U$dIVC8fCvzyvOq@fgb%YG*W3$)Q8Bd%Z&Iw%gAyetIpaxgl0R%H)^%7V}tL^mx195D(0 z>sc`lkHq#T%OYoPwmULp`rc{aYWPb_d5C`(rc#|77J1NYt_>th4KFLQFvxpXvhaaR zh--9j4=^3(`_M!RRH9}90iQBXvh5j~NP`0Ql@d{LO-EC!Y7W~`X~3X(Kr<qfR0KTW78V}+@$&4r*`Bcd zUgT<>khZ9DM)(##bwfXvNcNj*13K^3-6wPqkYcnM^XGrY0U++}{(d+aGSRqDRs@N! z%OAMJh2t{tYL{gkhAILtqlt8cCjH+;m%qQC_ya-*V(-1_>=sLN?wz?D;kPn%mLl57 z)epdP80+qOTNLm)S^*UOAi^tKnw|BrK z8bi86;o1H6tMps#XsUFptpK7G<|NsmS8l6biWGY2nP7A;wT9p*ftY3-C*~|VWSsnz z+HO_)9}aSI;6wmyy*G*N@V=5N3Z2BePdTXB=^YiyZ~ixq|AJ(Odm5aC*f8llUj=s_ zQzODgH?uk=%!%=2NolwWR&n7dWN{PZFiL30_T5g|WC2#y(LJ$I%h}d(SqrCVXS6(} zUzT6ja33O_a$*7rzVUFu*Ijj%bo-wU%<8F@G7bs@=M6`cmE_LgWEW;#+KnE_vo#=!w%c$MxPUN$0oV@!&($;!NB)RfE3^S|v8c7>@0Gn`l)ZMB#3`kz zQf9}w^3Q!6%C_o(HYu(Kf?3#!=(-5sD^f;t4IqAK5(av0C{#Yc za3nb7@w_XitHT?YSr!zmDg|xS{Bw&9Ou)M@3V5$-%wpz9OZckgQuQG0SJ<|v0xco>PhGmiYrUH$@170kI|;S6lUBO}Y*POSJS*cL+kCJoj#Tj}U|7xUj>6-*h{ zCGXj6b$H)_icy972SJ3L0R+ zd1vZX_(-OrD%M%8rZPZJZq%$eh$ zcm|eq-~izibQUkmb$w%-=S%4DD|h0!>ycQj6e zmvJ$(l1SaPO7ptvDljLFU<&3%>WWBS24HmooTNBQMB}M{9TYUh>_zCtA3fAJLq>`R{ESk|>%W zoGp}~_A9r(LRu;#F<3L3_!@6^8)kW8)O=`-j`0H`7@NJY%5cb)9B9!vI;O3p#Xcta z35?cj+6_hr<$f=pf$oChhv#Dn^a(M~*6Wsf*+HKq^F}4cy3hCCL2Jfn8+g)c^Ua;< zH6&rhW3UTf(hnmA`I>PvcRUX|a@K0$=8h2W&I24rVL4A^Zm+_Vu(Y6($mWQ20nUrM&wsC!EPlr2k2vmXHbY+`Le5_iK{L*uL;CE1nCy}oOY4-jD8GjP5 zR>{)>iPfgzRW~VqOK^rV_k;He(+Qx;xGbnUJ7?-G&MY-f+SzRiC5`#1GB-k7G+z_X zAp|-)Z-WXt34(Wk76~4bIH^jVcA+uLBufQ03j8Wp2SeV;jz1-BHy$km4{KF%ntrpG zgIzkkE8_$AT>YGA3CIR&KExE#`0bC(=;CyFX*&1n`IW!J(3{3Y^Fm8HBgO-dH!Krw zc}A}2BNLnE2D<+qP+WJM7_lT|kf$>SG8`jh<||P_+~{rJr%Pyc{$<;2%#9q9W=+_u zqfkoS2%Y@9{R78@sD$%nQCjqm7-7CErNmkz#|E<7cSnrz`pMAUN5RN2MIyUwW@^=f zA4{Q#cGce@Ic_Buaq^b-`ILgLQBBsX$MEbCoFtQ60h(q8x{qV5NP|p~*1&{YSk+Ib z*-3=|y^cr)XGJi6|K8%@?@3qkxJW6H6W`|Wz>GiPLMMDf0$jTm$pQTKS-B70dz%I~ z!a9wyDRaU)U9nI_=}sTZfjE2ze7>9}

8tNs_kS)nVqli8!6KI4#sUazVhP1{WEA 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 X(b$j!Hoj&!;7d_fRi;MDEbM;(;<~qW literal 0 HcmV?d00001 diff --git a/FoodApp/FoodApp/Assets.xcassets/woman.imageset/Contents.json b/FoodApp/FoodApp/Assets.xcassets/woman.imageset/Contents.json new file mode 100644 index 0000000..92c3d30 --- /dev/null +++ b/FoodApp/FoodApp/Assets.xcassets/woman.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "Screen Shot 2019-03-30 at 6.20.59 PM.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/FoodApp/FoodApp/Assets.xcassets/woman.imageset/Screen Shot 2019-03-30 at 6.20.59 PM.png b/FoodApp/FoodApp/Assets.xcassets/woman.imageset/Screen Shot 2019-03-30 at 6.20.59 PM.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbd53f2ff8cff7182034c3a5552cc96edcd3deb GIT binary patch literal 64427 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�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%0A+Xm^8Mc1JkDD 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%0D?dsoft3 z5ck@~#a1rdt|z~LGJrTac{T^dZ<8iBKxiicU#=iPu%Kyj@72G#PP3k)^3jS%U^H4U zx7f&M;}n(^nEfh?sa%R-=$V3{L|G}kpcM3ntEFyn!|Zf;Y!B8fLUr><%z7|ef)yk` z+xqC6tY84qzU$3n0)`2gd*?3EAOP{Y-T46UX2G_s(w+N{<}=#k_5TC3mj2_T^J2OH O0000 Bool { + textField.resignFirstResponder() + return true + } +} diff --git a/FoodApp/FoodApp/Controllers/MenuItemDetailViewController.swift b/FoodApp/FoodApp/Controllers/MenuItemDetailViewController.swift index 7d56115..4ab463d 100644 --- a/FoodApp/FoodApp/Controllers/MenuItemDetailViewController.swift +++ b/FoodApp/FoodApp/Controllers/MenuItemDetailViewController.swift @@ -8,9 +8,12 @@ import UIKit +protocol Pages {} + class MenuItemDetailViewController: UIViewController { - var pages = [UIViewController]() + //MARK: Variables + var pages = [Pages]() var menuItem = MenuItem() @@ -24,18 +27,19 @@ class MenuItemDetailViewController: UIViewController { var selectedViewController = 0 + // MARK: UI Elements lazy var imageView: UIImageView = { let imageView = UIImageView() imageView.image = #imageLiteral(resourceName: "pizzapic") imageView.setContentHuggingPriority(.defaultLow, for: .vertical) imageView.setContentCompressionResistancePriority(.defaultHigh, for: .vertical) - imageView.contentMode = .scaleAspectFit + imageView.contentMode = .scaleAspectFit // might need to comment out return imageView }() lazy var titleLabel: UILabel = { let label = UILabel() - label.text = "Title" + label.text = "Pizza" return label }() @@ -49,18 +53,6 @@ class MenuItemDetailViewController: UIViewController { let segmentedControl = UISegmentedControl(items: ["Order", "Description", "Ratings"]) segmentedControl.addTarget(self, action: #selector(valueChanged(_:)), for: .valueChanged) segmentedControl.selectedSegmentIndex = 0 - let font = UIFont(name: "Verdana", size: UIFont.systemFontSize)! - segmentedControl.setTitleTextAttributes([ - NSAttributedString.Key.font: font, - NSAttributedString.Key.foregroundColor: UIColor.lightGray - ], for: .normal) - - segmentedControl.setTitleTextAttributes([ - NSAttributedString.Key.font : font, - NSAttributedString.Key.foregroundColor: UIColor.darkGray - ], for: .selected) - - segmentedControl.tintColor = .clear return segmentedControl }() @@ -73,7 +65,8 @@ class MenuItemDetailViewController: UIViewController { stackView.spacing = 8 return stackView }() - + + // MARK: Controllers private lazy var pageViewController: UIPageViewController = { let pageViewController = UIPageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal, @@ -82,15 +75,17 @@ class MenuItemDetailViewController: UIViewController { return pageViewController }() + // MARK: Lifecycle override func viewDidLoad() { super.viewDidLoad() setupUI() setPages() - pageViewController.setViewControllers([pages[selectedSegmentIndex]], direction: .forward, animated: true) + pageViewController.setViewControllers([pages[selectedSegmentIndex] as! UIViewController], direction: .forward, animated: true) } - + + // MARK: Setup func setupUI() { view.backgroundColor = .white @@ -103,10 +98,10 @@ class MenuItemDetailViewController: UIViewController { stackView.topAnchor.constraint(equalTo: view.topAnchor), stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor), stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor), - stackView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.7), - pageViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor), - pageViewController.view.topAnchor.constraint(equalTo: stackView.bottomAnchor), - pageViewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor), + stackView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.55), + pageViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: -2), + pageViewController.view.topAnchor.constraint(equalTo: stackView.bottomAnchor, constant: 8), + pageViewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 2), pageViewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor) ]) } @@ -117,11 +112,12 @@ class MenuItemDetailViewController: UIViewController { pages.append(RatingsViewController()) } + // MARK: Actions @objc func valueChanged(_ sender: UISegmentedControl) { if pagingForward { - pageViewController.setViewControllers([pages[selectedSegmentIndex]], direction: UIPageViewController.NavigationDirection.forward, animated: true) + pageViewController.setViewControllers([pages[selectedSegmentIndex] as! UIViewController], direction: UIPageViewController.NavigationDirection.forward, animated: true) } else { - pageViewController.setViewControllers([pages[selectedSegmentIndex]], direction: UIPageViewController.NavigationDirection.reverse, animated: true) + pageViewController.setViewControllers([pages[selectedSegmentIndex] as! UIViewController], direction: UIPageViewController.NavigationDirection.reverse, animated: true) } selectedViewController = selectedSegmentIndex } diff --git a/FoodApp/FoodApp/Controllers/PageViewControllers/DescriptionViewController.swift b/FoodApp/FoodApp/Controllers/PageViewControllers/DescriptionViewController.swift index 940894e..7ca39fa 100644 --- a/FoodApp/FoodApp/Controllers/PageViewControllers/DescriptionViewController.swift +++ b/FoodApp/FoodApp/Controllers/PageViewControllers/DescriptionViewController.swift @@ -8,33 +8,43 @@ import UIKit -class DescriptionViewController: UIViewController { +class DescriptionViewController: UIViewController, Pages { + // MARK: Variables private lazy var descriptionLabel: UITextView = { let textView = UITextView() textView.translatesAutoresizingMaskIntoConstraints = false - textView.text = "askldjaslkjdsadjsajdjaskldjasdklslkadfjklfjdfaladf rhadh jkadfvjkfjadfhvlajf vakdjfh adkjfv aefvh qefkvj qefkjv bqekljvbqefkjvbqefkjfvbnqefkjvb qefkjv bqekjfv bqekjfn d adfl adfkjn dsqdcqwdndc qwdncwcwnd cqkwdjncqwjkdncqudicvgh qhvqljkhvjq evjkddcvjkqebdkjansdbvjkanbdsvjkab dsjvkbad fsjkvbadjkvadskhuaksdnvbajkdsvnafveqfvnkfdvcadfhvsdjkvh asdjkvhad fvlgahsdhvajds k " + textView.text = "Our 12-inch special-recipe pizza, featuring our traditional crispy crust, is topped with a blend of mozzarella and cheddar cheese, zesty pepperoni slices and a rich tomato sauce. No artificial flavors. Made with 100% real cheese." + textView.font = UIFont.preferredFont(forTextStyle: .footnote) + let style = NSMutableParagraphStyle() + style.lineSpacing = 12 + let attributes = [NSAttributedString.Key.paragraphStyle : style] + textView.attributedText = NSAttributedString(string: textView.text, attributes: attributes) return textView }() + // MARK: Lifecycle override func viewDidLoad() { super.viewDidLoad() setupUI() } + // MARK: Setup func setupUI() { view.backgroundColor = .white view.addSubview(descriptionLabel) + let safeArea = view.safeAreaLayoutGuide view.addConstraints([ - descriptionLabel.topAnchor.constraint(equalTo: view.topAnchor), - descriptionLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 8), - descriptionLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -8), - descriptionLabel.bottomAnchor.constraint(equalTo: view.bottomAnchor) + descriptionLabel.topAnchor.constraint(equalTo: safeArea.topAnchor, constant: 8), + descriptionLabel.leadingAnchor.constraint(equalTo: safeArea.leadingAnchor, constant: 16), + descriptionLabel.trailingAnchor.constraint(equalTo: safeArea.trailingAnchor, constant: -16), + descriptionLabel.bottomAnchor.constraint(equalTo: safeArea.bottomAnchor) ]) } + // MARK: Helpers func configure(description: String) { descriptionLabel.text = description } diff --git a/FoodApp/FoodApp/Controllers/PageViewControllers/OrderViewController.swift b/FoodApp/FoodApp/Controllers/PageViewControllers/OrderViewController.swift index 9091268..b9881fe 100644 --- a/FoodApp/FoodApp/Controllers/PageViewControllers/OrderViewController.swift +++ b/FoodApp/FoodApp/Controllers/PageViewControllers/OrderViewController.swift @@ -8,56 +8,109 @@ import UIKit -class OrderViewController: UIViewController { +class OrderViewController: UIViewController, Pages { + // MARK: Variables private var menuItem: MenuItem? - private let sizes = ["Small", "Medium", "Large"] + private var isOrderButtonOn = false - private lazy var sizeLabel: UITextView = { - let label = UITextView() + // MARK: UI Elements + private lazy var orderButton: UIButton = { + let button = UIButton() + button.titleLabel?.font = UIFont.preferredFont(forTextStyle: .headline) + button.setTitle("Add to Order", for: .normal) + button.setTitleColor(.darkGray, for: .normal) + + button.layer.borderColor = UIColor.darkGray.cgColor + button.layer.borderWidth = 2.0 + button.layer.cornerRadius = 25 //(view.frame.size.height / 2) + button.addTarget(self, action: #selector(orderButtonTapped(_:)), for: .touchUpInside) + return button + }() + + private lazy var stackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [sizeStackView, quantityStackView, orderButton]) + stackView.translatesAutoresizingMaskIntoConstraints = false + stackView.axis = .vertical + stackView.alignment = .center + stackView.distribution = .equalSpacing + stackView.spacing = 8 + return stackView + }() + + // MARK: Size + private lazy var sizeLabel: UILabel = { + let label = UILabel() label.text = "Choose Size" + return label + }() + + private lazy var sizeControl: UISegmentedControl = { + let segmentedControl = UISegmentedControl(items: ["Small", "Medium", "Large"]) + segmentedControl.selectedSegmentIndex = 0 + return segmentedControl + }() + + private lazy var sizeStackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [sizeLabel, sizeControl]) + stackView.axis = .vertical + stackView.alignment = .center + stackView.spacing = 2 + return stackView + }() + + // MARK: Quantity + private lazy var quantityLabel: UILabel = { + let label = UILabel() + label.text = "Choose Quantity" label.isUserInteractionEnabled = true return label }() - private lazy var picker: UIPickerView = { - let picker = UIPickerView() - - return picker + private var stepperValue: Int = 0 { + didSet { + stepperValueLabel.fadeTransition(0.1) + stepperValueLabel.text = String(stepperValue) + } + } + + private lazy var stepperValueLabel: UILabel = { + let label = UILabel() + label.text = "1" + return label }() - private lazy var stepper: UIStepper = { + private lazy var quantityStepper: UIStepper = { let stepper = UIStepper() + stepper.addTarget(self, action: #selector(stepperValueChanged(_:)), for: .valueChanged) stepper.stepValue = 1 stepper.minimumValue = 1 stepper.maximumValue = 4 return stepper }() - - private lazy var stackView: UIStackView = { - let stackView = UIStackView(arrangedSubviews: [sizeLabel, stepper]) + + private lazy var stepperStackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [stepperValueLabel, quantityStepper]) stackView.translatesAutoresizingMaskIntoConstraints = false - stackView.axis = .vertical + stackView.setContentCompressionResistancePriority(.required, for: .vertical) + stackView.axis = .horizontal stackView.alignment = .center - stackView.distribution = .equalCentering + stackView.distribution = .equalSpacing stackView.spacing = 8 return stackView }() - override func viewDidLoad() { - super.viewDidLoad() - - view.addSubview(stackView) - setupUI() - view.backgroundColor = .white - - picker.dataSource = self - picker.delegate = self - - sizeLabel.inputView = picker - } + private lazy var quantityStackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [quantityLabel, stepperStackView]) + stackView.axis = .vertical + stackView.alignment = .leading + stackView.distribution = .fillEqually + stackView.spacing = 2 + return stackView + }() + // MARK: init init(item: MenuItem) { menuItem = item @@ -68,52 +121,51 @@ class OrderViewController: UIViewController { fatalError("init(coder:) has not been implemented") } + // MARK: Lifecycle + override func viewDidLoad() { + super.viewDidLoad() + + view.addSubview(stackView) + setupUI() + view.backgroundColor = .white + } + + // MARK: Setup func setupUI() { - // stackView.pinToEdges() + let layoutGuide = view.safeAreaLayoutGuide view.addConstraints([ - stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor), - stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor), - stackView.topAnchor.constraint(equalTo: view.topAnchor), - stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor) + sizeControl.heightAnchor.constraint(equalToConstant: 30), + stepperValueLabel.widthAnchor.constraint(equalToConstant: 10), + stackView.leadingAnchor.constraint(equalTo: layoutGuide.leadingAnchor), + stackView.trailingAnchor.constraint(equalTo: layoutGuide.trailingAnchor), + stackView.topAnchor.constraint(equalTo: layoutGuide.topAnchor, constant: 16), + stackView.bottomAnchor.constraint(equalTo: layoutGuide.bottomAnchor, constant: -16), + orderButton.heightAnchor.constraint(equalToConstant: 50), + orderButton.widthAnchor.constraint(equalToConstant: (UIScreen.main.bounds.width / 2).rounded()) ]) } - func configure(item: MenuItem) { - menuItem = item - } -} - -extension OrderViewController: UIPickerViewDelegate, UIPickerViewDataSource { - // not sure at all about some of these funcs - func numberOfComponents(in pickerView: UIPickerView) -> Int { - return 1 - } - - func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { - return 3 // small medium large - } - - func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { + // MARK: Helpers + func activateButton(bool: Bool) { + isOrderButtonOn = bool + let orange = UIColor.customOrange + let color = bool ? orange : UIColor.white + let title = bool ? "Item Added to Order": "Add to Order" + let titleColor = bool ? UIColor.lightText : UIColor.gray - return sizes[row] + UIView.animate(withDuration: 0.4) { + self.orderButton.setTitle(title, for: .normal) + self.orderButton.setTitleColor(titleColor, for: .normal) + self.orderButton.backgroundColor = color + } } - func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { - + // MARK: Actions + @objc func stepperValueChanged(_ sender: UIStepper) { + stepperValue = Int(sender.value) } - func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView { - - var label: UILabel - - if let view = view as? UILabel { - label = view - } else { - label = UILabel() - } - - label.textAlignment = .center - label.text = sizes[row] - return label + @objc func orderButtonTapped(_ sender: UIButton) { + activateButton(bool: !isOrderButtonOn) } } diff --git a/FoodApp/FoodApp/Controllers/PageViewControllers/RatingsViewController.swift b/FoodApp/FoodApp/Controllers/PageViewControllers/RatingsViewController.swift index 90d8686..3eed155 100644 --- a/FoodApp/FoodApp/Controllers/PageViewControllers/RatingsViewController.swift +++ b/FoodApp/FoodApp/Controllers/PageViewControllers/RatingsViewController.swift @@ -7,15 +7,42 @@ // import UIKit +import Foundation -class RatingsViewController: UIViewController { - - // collectionView - // dynamic height +class RatingsViewController: UITableViewController, Pages { + + // MARK: Variables + let text = ["You can't do this – UIStackView is a non-drawing view, meaning that drawRect() is never called ", + "If you desperately want a background color, consider placing the stack view inside another UIView and giving that view a background color.", + "This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.", + "Xcode offers to fix the problem. But you can do it yourself by adjusting one of the name label constraints. Head back to Main.storyboard and select the name label. In the Size Inspector, find the Trailing Space constraint and click Edit." + ] + // MARK: Lifecycle override func viewDidLoad() { super.viewDidLoad() - view.backgroundColor = .white + setupTableView() + } + + // MARK: Helpers + func setupTableView() { + tableView.register(UINib(nibName: "RatingsTableViewCell", bundle: nil), forCellReuseIdentifier: "RatingsTableViewCell") + tableView.rowHeight = UITableView.automaticDimension + tableView.estimatedRowHeight = 250 + tableView.allowsSelection = false + } +} + +extension RatingsViewController { + //MARK: TableView Methods + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return 4 + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "RatingsTableViewCell", for: indexPath) as! RatingsTableViewCell + cell.textView.text = text[indexPath.row % text.count] + return cell } } diff --git a/FoodApp/FoodApp/Controllers/ProfileViewController.swift b/FoodApp/FoodApp/Controllers/ProfileViewController.swift deleted file mode 100644 index 15b33b4..0000000 --- a/FoodApp/FoodApp/Controllers/ProfileViewController.swift +++ /dev/null @@ -1,104 +0,0 @@ -// -// ProfileViewController.swift -// FoodApp -// -// Created by gnoa001 on 3/15/19. -// Copyright © 2019 SparkDev. All rights reserved. -// - -import UIKit -import SkyFloatingLabelTextField - -class ProfileViewController: UIViewController { - - private lazy var profileImageView: UIImageView = { - let image = UIImageView() - image.image = #imageLiteral(resourceName: "pizzapic") - return image - }() - - private lazy var firstNameLabel: SkyFloatingLabelTextField = { - let label = SkyFloatingLabelTextField() - label.placeholder = "First Name" -// label.title = "First Name" - label.selectedTitle = "First Name" - return label - }() - - private lazy var lastNameLabel: SkyFloatingLabelTextField = { - let label = SkyFloatingLabelTextField() - label.placeholder = "Last Name" - label.selectedTitle = "Last Name" - return label - }() - - private lazy var userNameLabel: SkyFloatingLabelTextField = { - let label = SkyFloatingLabelTextField() - label.placeholder = "Username" - label.selectedTitle = "Username" - return label - }() - - lazy var emailLabel: SkyFloatingLabelTextField = { - let label = SkyFloatingLabelTextField() - label.placeholder = "Email" - label.selectedTitle = "Email" - return label - }() - - private lazy var passwordLabel: SkyFloatingLabelTextField = { - let label = SkyFloatingLabelTextField() - label.placeholder = "Password" - label.selectedTitle = "Password" - return label - }() - - private lazy var saveButton: UIButton = { - let button = UIButton() - button.addTarget(self, action: #selector(saveButtonTapped), for: .touchUpInside) - return button - }() - - private lazy var stackView: UIStackView = { - let stackView = UIStackView(arrangedSubviews: [profileImageView, firstNameLabel, lastNameLabel, userNameLabel, emailLabel, passwordLabel, saveButton]) - stackView.translatesAutoresizingMaskIntoConstraints = false - stackView.axis = .vertical - stackView.alignment = .center - stackView.distribution = .equalCentering - stackView.spacing = 8 - return stackView - }() - - init() { - super.init(nibName: nil, bundle: nil) - - title = "Profile" - } - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - override func viewDidLoad() { - super.viewDidLoad() - - setupUI() - } - - func setupUI() { - view.backgroundColor = .white - - view.addSubview(stackView) - view.addConstraints([ - profileImageView.heightAnchor.constraint(equalToConstant: (view.bounds.height / 4).rounded()), - stackView.topAnchor.constraint(equalTo: view.topAnchor), - stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor), - stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor), - stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor) - ]) - } - - @objc func saveButtonTapped(_ sender: UIButton) { - - } -} diff --git a/FoodApp/FoodApp/Controllers/SearchViewController.swift b/FoodApp/FoodApp/Controllers/SearchViewController.swift deleted file mode 100644 index f999302..0000000 --- a/FoodApp/FoodApp/Controllers/SearchViewController.swift +++ /dev/null @@ -1,48 +0,0 @@ -// -// SearchViewController.swift -// FoodApp -// -// Created by gnoa001 on 3/15/19. -// Copyright © 2019 SparkDev. All rights reserved. -// - -import UIKit - -class SearchViewController: UITableViewController, UISearchResultsUpdating, UISearchBarDelegate { - - var data = [MenuItem]() - - var filteredData = [MenuItem]() - - lazy var resultSearchController: UISearchController = { - let controller = UISearchController(searchResultsController: nil) - controller.dimsBackgroundDuringPresentation = false - controller.searchBar.sizeToFit() - - return controller - }() - - init() { - super.init(style: .plain) - - title = "Search" - } - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - override func viewDidLoad() { - super.viewDidLoad() - view.backgroundColor = .white - - tableView.tableHeaderView = resultSearchController.searchBar - - //tableView.register(UINib(), forCellReuseIdentifier: "") - } - - func updateSearchResults(for searchController: UISearchController) { - - } - -} diff --git a/FoodApp/FoodApp/Controllers/TabBarController.swift b/FoodApp/FoodApp/Controllers/TabBarController.swift index 221f723..9d32290 100644 --- a/FoodApp/FoodApp/Controllers/TabBarController.swift +++ b/FoodApp/FoodApp/Controllers/TabBarController.swift @@ -10,14 +10,16 @@ import UIKit class TabBarController: UITabBarController { + // MARK: Lifecycle override func viewDidLoad() { super.viewDidLoad() setupControllers() } + // MARK: Setup func setupControllers() { - let viewControllerArray: [UIViewController] = [HomeViewController(), SearchViewController(), ShoppingCartViewController(), ProfileViewController()] + let viewControllerArray: [UIViewController] = [HomeViewController(), ShoppingCartViewController(), ProfileViewController()] let navigationControllers = viewControllerArray.map { UINavigationController(rootViewController: $0)} viewControllers = navigationControllers diff --git a/FoodApp/FoodApp/Controllers/HomeViewController.swift b/FoodApp/FoodApp/Controllers/Tabs/HomeViewController.swift similarity index 55% rename from FoodApp/FoodApp/Controllers/HomeViewController.swift rename to FoodApp/FoodApp/Controllers/Tabs/HomeViewController.swift index 249833c..f740f24 100644 --- a/FoodApp/FoodApp/Controllers/HomeViewController.swift +++ b/FoodApp/FoodApp/Controllers/Tabs/HomeViewController.swift @@ -9,15 +9,22 @@ import UIKit class HomeViewController: UIViewController { + + // MARK: Variables var dataSource = [MenuItem]() - - - lazy var categoriesCollectionView: UICollectionView = { // move implementation + var selectedIndexPath: IndexPath? + + let categories = ["ALL", "BREAKFAST", "LUNCH", "DINNER", "DESSERT", "PASTRIES"] + + // MARK: UI Elements + lazy var categoriesCollectionView: UICollectionView = { var layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() + layout.minimumLineSpacing = 0 + layout.minimumInteritemSpacing = 0 + layout.estimatedItemSize = CGSize(width: 40, height: 30) layout.scrollDirection = .horizontal - layout.sectionInset = UIEdgeInsets(top: 0, left: 16, bottom: 0, right: 16) - layout.itemSize = CGSize(width: (view.bounds.size.width / 5).rounded(), height: 46) + layout.sectionInset = UIEdgeInsets(top: 0, left: 8, bottom: 0, right: 0) var collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout) collectionView.translatesAutoresizingMaskIntoConstraints = false @@ -25,95 +32,109 @@ class HomeViewController: UIViewController { collectionView.backgroundColor = .white collectionView.delegate = self collectionView.dataSource = self - collectionView.layer.borderWidth = 0.5 - collectionView.layer.borderColor = UIColor.lightGray.cgColor collectionView.layer.masksToBounds = false collectionView.layer.shadowColor = UIColor.black.cgColor - collectionView.layer.shadowOpacity = 0.8 - collectionView.layer.shadowOffset = CGSize(width: 0, height: -3.0) + collectionView.layer.shadowOpacity = 0.3 + collectionView.layer.shadowOffset = CGSize(width: 0, height: 3.0) collectionView.layer.shadowRadius = 5 return collectionView }() - lazy var menuItemsCollectionView: UICollectionView = { // move implementation + lazy var menuItemsCollectionView: UICollectionView = { let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() layout.scrollDirection = .vertical - layout.sectionInset = UIEdgeInsets(top: 8, left: 16, bottom: 8, right: 16) - layout.itemSize = CGSize(width: view.bounds.size.width - 32, height: 200) + layout.sectionInset = UIEdgeInsets(top: 16, left: 16, bottom: 16, right: 16) + layout.minimumLineSpacing = 16 + layout.itemSize = CGSize(width: view.bounds.size.width - 32, height: 240) let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout) + collectionView.translatesAutoresizingMaskIntoConstraints = false + collectionView.showsHorizontalScrollIndicator = false collectionView.backgroundColor = .white - collectionView.layer.cornerRadius = 6.0 collectionView.delegate = self collectionView.dataSource = self - collectionView.isUserInteractionEnabled = true - collectionView.translatesAutoresizingMaskIntoConstraints = false return collectionView }() + // MARK: init init() { super.init(nibName: nil, bundle: nil) - - title = "Home" - navigationItem.title = "ChowDown" } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } + // MARK: Lifecycle override func viewDidLoad() { super.viewDidLoad() setupUI() + setupNavBar() } + //MARK: Setup func setupUI() { view.backgroundColor = .white menuItemsCollectionView.register(UINib(nibName: "MenuItemCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: MenuItemCollectionViewCell.reuseID) categoriesCollectionView.register(CategoriesCollectionViewCell.self, forCellWithReuseIdentifier: CategoriesCollectionViewCell.reuseID) -// categoriesCollectionView.register(UINib(nibName: "MenuItemCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: MenuItemCollectionViewCell.reuseID) - + view.addSubview(menuItemsCollectionView) view.addSubview(categoriesCollectionView) - - let margins = view.layoutMarginsGuide + + let layoutGuide = view.safeAreaLayoutGuide view.addConstraints([ - categoriesCollectionView.topAnchor.constraint(equalTo: margins.topAnchor), - categoriesCollectionView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: -2), - categoriesCollectionView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 2), + categoriesCollectionView.topAnchor.constraint(equalTo: layoutGuide.topAnchor), + categoriesCollectionView.leadingAnchor.constraint(equalTo: layoutGuide.leadingAnchor), + categoriesCollectionView.trailingAnchor.constraint(equalTo: layoutGuide.trailingAnchor), categoriesCollectionView.heightAnchor.constraint(equalToConstant: 64), - menuItemsCollectionView.leadingAnchor.constraint(equalTo: view.leadingAnchor), - menuItemsCollectionView.trailingAnchor.constraint(equalTo: view.trailingAnchor), - menuItemsCollectionView.topAnchor.constraint(equalTo: categoriesCollectionView.bottomAnchor, constant: 4), - menuItemsCollectionView.bottomAnchor.constraint(equalTo: view.bottomAnchor) + menuItemsCollectionView.leadingAnchor.constraint(equalTo: layoutGuide.leadingAnchor), + menuItemsCollectionView.trailingAnchor.constraint(equalTo: layoutGuide.trailingAnchor), + menuItemsCollectionView.topAnchor.constraint(equalTo: categoriesCollectionView.bottomAnchor), + menuItemsCollectionView.bottomAnchor.constraint(equalTo: layoutGuide.bottomAnchor) ]) } + + func setupNavBar() { + title = "Home" + navigationItem.title = "ChowDown" + } } extension HomeViewController: UICollectionViewDelegate, UICollectionViewDataSource { + // MARK: CollectionView Methods func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return 20 + return 5 } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { - - if collectionView == self.menuItemsCollectionView { - let cell = collectionView.dequeueReusableCell(withReuseIdentifier: MenuItemCollectionViewCell.reuseID, for: indexPath) as! MenuItemCollectionViewCell - return cell - } else { // categoriesCollectionView - let cell = collectionView.dequeueReusableCell(withReuseIdentifier: CategoriesCollectionViewCell.reuseID, for: indexPath) as! CategoriesCollectionViewCell -// let cell = collectionView.dequeueReusableCell(withReuseIdentifier: MenuItemCollectionViewCell.reuseID, for: indexPath) as! MenuItemCollectionViewCell - return cell + if collectionView == self.menuItemsCollectionView { + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: MenuItemCollectionViewCell.reuseID, for: indexPath) as! MenuItemCollectionViewCell + cell.foodItemImageView.image = #imageLiteral(resourceName: "pizzapic") + return cell + } else if collectionView == categoriesCollectionView { // categoriesCollectionView + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: CategoriesCollectionViewCell.reuseID, for: indexPath) as! CategoriesCollectionViewCell + cell.categoryTitleLabel.text = categories[indexPath.row % categories.count] + return cell } + return UICollectionViewCell() } func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { - // let item = dataSource.item(at: indexPath.row) - let detailViewController = MenuItemDetailViewController() - navigationController?.pushViewController(detailViewController, animated: true) - - // else if categories, reload collectionview + if collectionView == menuItemsCollectionView { + let detailViewController = MenuItemDetailViewController() + navigationController?.pushViewController(detailViewController, animated: true) + } else if collectionView == categoriesCollectionView { + + let cell = collectionView.cellForItem(at: indexPath) as! CategoriesCollectionViewCell + cell.contentView.backgroundColor = UIColor.customOrange + + if let selectedIdx = selectedIndexPath, selectedIdx != indexPath { + let selectedCell = collectionView.cellForItem(at: selectedIdx) as! CategoriesCollectionViewCell + selectedCell.contentView.backgroundColor = .clear + } + selectedIndexPath = indexPath + } } } diff --git a/FoodApp/FoodApp/Controllers/Tabs/ProfileViewController.swift b/FoodApp/FoodApp/Controllers/Tabs/ProfileViewController.swift new file mode 100644 index 0000000..f570562 --- /dev/null +++ b/FoodApp/FoodApp/Controllers/Tabs/ProfileViewController.swift @@ -0,0 +1,143 @@ +// +// ProfileViewController.swift +// FoodApp +// +// Created by gnoa001 on 3/15/19. +// Copyright © 2019 SparkDev. All rights reserved. +// + +import UIKit +import SkyFloatingLabelTextField + +class ProfileViewController: UIViewController { + + // MARK: Variables + private lazy var profileImageView: UIImageView = { + let image = UIImageView() + image.translatesAutoresizingMaskIntoConstraints = false + image.contentMode = .scaleAspectFit + image.image = #imageLiteral(resourceName: "woman") + return image + }() + + // MARK: Label Names + private lazy var firstNameLabel: UILabel = { + let label = UILabel() + label.text = "First Name" + label.textColor = .lightGray + return label + }() + + private lazy var lastNameLabel: UILabel = { + let label = UILabel() + label.text = "Last Name" + label.textColor = .lightGray + return label + }() + + private lazy var userNameLabel: UILabel = { + let label = UILabel() + label.text = "Username" + label.textColor = .lightGray + return label + }() + + private lazy var emailLabel: UILabel = { + let label = UILabel() + label.text = "Email" + label.textColor = .lightGray + return label + }() + + // MARK: Label Values + var firstNameValueLabel: UILabel = { + let label = UILabel() + label.text = "Michael" + return label + }() + + var lastNameValueLabel: UILabel = { + let label = UILabel() + label.text = "Scott" + return label + }() + + var emailValueLabel: UILabel = { + let label = UILabel() + label.text = "me@you.com" + return label + }() + + var userNameValueLabel: UILabel = { + let label = UILabel() + label.text = "MikeScott1024" + return label + }() + + // MARK: Label StackViews + private lazy var leftStackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [firstNameLabel, lastNameLabel, userNameLabel, emailLabel]) + stackView.translatesAutoresizingMaskIntoConstraints = false + stackView.axis = .vertical + stackView.alignment = .trailing + stackView.distribution = .fillEqually + stackView.spacing = 32 + + return stackView + }() + + private lazy var rightStackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [firstNameValueLabel, lastNameValueLabel, emailValueLabel, userNameValueLabel]) + stackView.translatesAutoresizingMaskIntoConstraints = false + stackView.axis = .vertical + stackView.alignment = .leading + stackView.distribution = .fillEqually + stackView.spacing = 32 + return stackView + }() + + // MARK: init + init() { + super.init(nibName: nil, bundle: nil) + + title = "Profile" + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: Lifecycle + override func viewDidLoad() { + super.viewDidLoad() + + setupUI() + } + + // MARK: Setup + func setupUI() { + view.backgroundColor = .white + + view.addSubview(profileImageView) + view.addSubview(leftStackView) + view.addSubview(rightStackView) + + let safeArea = view.safeAreaLayoutGuide + view.addConstraints([ + //firstNameLabel.heightAnchor.constraint(equalToConstant: 30), + //profileImageView.heightAnchor.constraint(equalToConstant: (view.bounds.height / 4).rounded()), + profileImageView.topAnchor.constraint(equalTo: safeArea.topAnchor, constant: 24), + profileImageView.leadingAnchor.constraint(greaterThanOrEqualTo: safeArea.leadingAnchor), + profileImageView.trailingAnchor.constraint(lessThanOrEqualTo: safeArea.trailingAnchor), + profileImageView.centerXAnchor.constraint(equalTo: safeArea.centerXAnchor), + profileImageView.heightAnchor.constraint(equalToConstant: 100), + + leftStackView.topAnchor.constraint(equalTo: profileImageView.bottomAnchor, constant: 48), + leftStackView.leadingAnchor.constraint(equalTo: safeArea.leadingAnchor), + leftStackView.widthAnchor.constraint(equalToConstant: ((UIScreen.main.bounds.width / 2) - 8).rounded()), + rightStackView.topAnchor.constraint(equalTo: leftStackView.topAnchor), + rightStackView.leadingAnchor.constraint(equalTo: leftStackView.trailingAnchor, constant: 16), + rightStackView.widthAnchor.constraint(equalTo: leftStackView.widthAnchor) + ]) + } +} diff --git a/FoodApp/FoodApp/Controllers/ShoppingCartViewController.swift b/FoodApp/FoodApp/Controllers/Tabs/ShoppingCartViewController.swift similarity index 62% rename from FoodApp/FoodApp/Controllers/ShoppingCartViewController.swift rename to FoodApp/FoodApp/Controllers/Tabs/ShoppingCartViewController.swift index c968b96..ad1ee21 100644 --- a/FoodApp/FoodApp/Controllers/ShoppingCartViewController.swift +++ b/FoodApp/FoodApp/Controllers/Tabs/ShoppingCartViewController.swift @@ -26,16 +26,4 @@ class ShoppingCartViewController: UIViewController { view.backgroundColor = .white } - - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. - } - */ - } diff --git a/FoodApp/FoodApp/Extensions.swift b/FoodApp/FoodApp/Extensions.swift index 41cceb9..662a6d0 100644 --- a/FoodApp/FoodApp/Extensions.swift +++ b/FoodApp/FoodApp/Extensions.swift @@ -9,77 +9,20 @@ import Foundation import UIKit -//class GenericTableViewCell: UITableViewCell { -// -// var cellView: UIView? { -// didSet { -// // -// } -// } -// -// private func setupViews() { -// guard let cellView = cellView else { return } -// -// contentView.addSubview(cellView) -// // pin edges to superview -// } -//} -// -//extension UITableViewCell { // not sure which class is best yet -// func pinEdgesToSuperView() { -// contentView.addConstraints([ -// -// ]) -// } -//} - -extension UICollectionView { - - // Example use: myView.addBorder(toSide: .Left, withColor: UIColor.redColor().CGColor, andThickness: 1.0) - - enum ViewSide { - case Left, Right, Top, Bottom - } - - func addBorder(toSide side: ViewSide, withColor color: CGColor, andThickness thickness: CGFloat) { - - let border = CALayer() - border.backgroundColor = color - - switch side { - case .Left: border.frame = CGRect(x: frame.minX, y: frame.minY, width: thickness, height: frame.height) - case .Right: border.frame = CGRect(x: frame.maxX, y: frame.minY, width: thickness, height: frame.height) - case .Top: border.frame = CGRect(x: frame.minX, y: frame.minY, width: frame.width, height: thickness) - case .Bottom: border.frame = CGRect(x: frame.minX, y: frame.maxY, width: frame.width, height: thickness) - } - - layer.addSublayer(border) - } -} - -extension UIView { - func pinToEdges() { - if let superView = superview { - addConstraints([ - self.topAnchor.constraint(equalTo: superView.topAnchor), - self.leadingAnchor.constraint(equalTo: superView.leadingAnchor), - self.trailingAnchor.constraint(equalTo: superView.trailingAnchor), - self.bottomAnchor.constraint(equalTo: superView.bottomAnchor) - ]) - } - } +extension UIColor { + static let customGray = UIColor(red: 0.93, green: 0.93, blue: 0.93, alpha: 1) + static let customOrange = UIColor(red: 241.0 / 255.0, green: 81 / 255.0, blue: 34.0 / 255.0, alpha: 1) + static let customRed = UIColor(red: 230 / 255.0, green: 0, blue: 0, alpha: 1.0) } extension UIView { - func dropShadow(scale: Bool = true) { - layer.masksToBounds = false - layer.shadowColor = UIColor.black.cgColor - layer.shadowOpacity = 0.5 - //layer.shadowOffset = - layer.shadowRadius = 1 - layer.shouldRasterize = true - layer.rasterizationScale = scale ? UIScreen.main.scale : 1 + func fadeTransition(_ duration:CFTimeInterval) { + let animation = CATransition() + animation.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut) + animation.type = CATransitionType.fade + animation.duration = duration + layer.add(animation, forKey: CATransitionType.fade.rawValue) } } diff --git a/FoodApp/FoodApp/FoodItemCollectionView.swift b/FoodApp/FoodApp/FoodItemCollectionView.swift deleted file mode 100644 index 88210c0..0000000 --- a/FoodApp/FoodApp/FoodItemCollectionView.swift +++ /dev/null @@ -1,58 +0,0 @@ -// -// FoodItemCollectionView.swift -// FoodApp -// -// Created by gnoa001 on 2/28/19. -// Copyright © 2019 SparkDev. All rights reserved. -// - -import UIKit - -// WIP -//class FoodItemCollectionView: UIView { -// lazy var flowLayout: UICollectionViewFlowLayout = { -// var layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() -// layout.scrollDirection = .vertical -// layout.sectionInset = UIEdgeInsets(top: 20, left: 16, bottom: 8, right: 16) -// layout.itemSize = CGSize(width: self.bounds.size.width - 32, height: 200) -// return layout -// }() -// -// public lazy var collectionView: UICollectionView = { -// -// -// var collectionView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout) -// collectionView.backgroundColor = .red -// collectionView.layer.cornerRadius = 6.0 -// collectionView.translatesAutoresizingMaskIntoConstraints = false -// -// return collectionView -// }() -// -// -// override init(frame: CGRect) { -// super.init(frame: frame) -// collectionView.register(UINib(nibName: "CustomCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "CustomCollectionViewCell") -// -// self.addSubview(collectionView) -// self.backgroundColor = .gray -// -// setupCollectionViewConstraints() -// print("Runs") -// } -// -// required init?(coder aDecoder: NSCoder) { -// super.init(coder: aDecoder) -// self.addSubview(collectionView) -// setupCollectionViewConstraints() -// } -// -// func setupCollectionViewConstraints() { -// self.addConstraints([ -// collectionView.leadingAnchor.constraint(equalTo: self.leadingAnchor), -// collectionView.trailingAnchor.constraint(equalTo: self.trailingAnchor), -// collectionView.topAnchor.constraint(equalTo: self.topAnchor), -// collectionView.bottomAnchor.constraint(equalTo: self.bottomAnchor) -// ]) -// } -//} diff --git a/FoodApp/FoodApp/Views/CategoriesCollectionViewCell.swift b/FoodApp/FoodApp/Views/CategoriesCollectionViewCell.swift index 8ae4c40..ddf4842 100644 --- a/FoodApp/FoodApp/Views/CategoriesCollectionViewCell.swift +++ b/FoodApp/FoodApp/Views/CategoriesCollectionViewCell.swift @@ -11,21 +11,21 @@ import UIKit class CategoriesCollectionViewCell: UICollectionViewCell { + // MARK: Reuse ID static let reuseID = String(describing: CategoriesCollectionViewCell.self) - lazy var categoryTitleLabel: UILabel = { + public lazy var categoryTitleLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false - label.font = UIFont.preferredFont(forTextStyle: .callout) - label.adjustsFontForContentSizeCategory = true label.text = "Y" + contentView.addSubview(label) return label }() + // MARK: Lifecycle override init(frame: CGRect) { super.init(frame: frame) - contentView.addSubview(categoryTitleLabel) setupUI() } @@ -33,13 +33,20 @@ class CategoriesCollectionViewCell: UICollectionViewCell { fatalError("init(coder:) has not been implemented") } + // MARK: Setup func setupUI() { let margins = contentView.layoutMarginsGuide contentView.addConstraints([ - categoryTitleLabel.topAnchor.constraint(equalTo: contentView.topAnchor), - categoryTitleLabel.leadingAnchor.constraint(equalTo: contentView.leadingAnchor), - categoryTitleLabel.trailingAnchor.constraint(equalTo: contentView.trailingAnchor), - categoryTitleLabel.bottomAnchor.constraint(equalTo: contentView.bottomAnchor) + categoryTitleLabel.topAnchor.constraint(equalTo: margins.topAnchor), + categoryTitleLabel.leadingAnchor.constraint(greaterThanOrEqualTo: margins.leadingAnchor), + categoryTitleLabel.trailingAnchor.constraint(lessThanOrEqualTo: margins.trailingAnchor), + categoryTitleLabel.bottomAnchor.constraint(equalTo: margins.bottomAnchor) ]) + + layer.shadowColor = UIColor.black.cgColor + layer.shadowOffset = CGSize(width: 0, height: 1.0) + layer.shadowRadius = 3.0 + layer.shadowOpacity = 0.3 } } + diff --git a/FoodApp/FoodApp/Views/MenuItemCollectionViewCell.swift b/FoodApp/FoodApp/Views/MenuItemCollectionViewCell.swift index c2886a4..33d08ac 100644 --- a/FoodApp/FoodApp/Views/MenuItemCollectionViewCell.swift +++ b/FoodApp/FoodApp/Views/MenuItemCollectionViewCell.swift @@ -10,8 +10,10 @@ import UIKit class MenuItemCollectionViewCell: UICollectionViewCell { + // MARK: Reuse ID static let reuseID = String(describing: MenuItemCollectionViewCell.self) + // MARK: Outlets @IBOutlet weak var foodItemImageView: UIImageView! @IBOutlet weak var foodTitleLabel: UILabel! @IBOutlet weak var foodTypeLabel: UILabel! @@ -19,28 +21,45 @@ class MenuItemCollectionViewCell: UICollectionViewCell { @IBOutlet weak var ratingLabel: UILabel! @IBOutlet weak var priceLabel: UILabel! + // MARK: Lifecycle override func awakeFromNib() { super.awakeFromNib() + + setupUI() + } - self.backgroundColor = .white + // MARK: Setup + func setupUI() { + backgroundColor = .white setupImageView() + setupLayer() + setupFonts() + + foodTypeLabel.textColor = UIColor.gray } func setupImageView() { - foodItemImageView.layer.cornerRadius = 6.0; + foodItemImageView.layer.cornerRadius = 16.0 foodItemImageView.layer.masksToBounds = true foodItemImageView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner] - - backgroundColor = .white - layer.borderWidth = 0.8 - layer.borderColor = UIColor.lightGray.cgColor - layer.cornerRadius = 6.0 - layer.shadowColor = UIColor.gray.cgColor - layer.shadowOffset = CGSize(width: 0, height: 2.0) - layer.shadowRadius = 3.0 - layer.shadowOpacity = 1.0 + foodItemImageView.contentMode = .scaleAspectFill + } + + func setupLayer() { + layer.shadowColor = UIColor.black.cgColor + layer.shadowOpacity = 0.3 + layer.shadowOffset = CGSize(width: 0, height: 3.0) + layer.shadowRadius = 5 + layer.cornerRadius = 16 layer.masksToBounds = false } + func setupFonts() { + foodTitleLabel.font = UIFont.preferredFont(forTextStyle: .headline) + foodTypeLabel.font = UIFont.preferredFont(forTextStyle: .caption1) + estimatedTimeLabel.font = UIFont.preferredFont(forTextStyle: .footnote) + ratingLabel.font = UIFont.preferredFont(forTextStyle: .footnote) + priceLabel.font = UIFont.preferredFont(forTextStyle: .footnote) + } } diff --git a/FoodApp/FoodApp/Views/MenuItemCollectionViewCell.xib b/FoodApp/FoodApp/Views/MenuItemCollectionViewCell.xib index 3c44fcd..8111862 100644 --- a/FoodApp/FoodApp/Views/MenuItemCollectionViewCell.xib +++ b/FoodApp/FoodApp/Views/MenuItemCollectionViewCell.xib @@ -1,11 +1,11 @@ - + - + @@ -13,54 +13,57 @@ - + - + - - + + + + + - - + + - diff --git a/FoodApp/FoodApp/Views/RatingsTableViewCell.swift b/FoodApp/FoodApp/Views/RatingsTableViewCell.swift new file mode 100644 index 0000000..9e3f2ab --- /dev/null +++ b/FoodApp/FoodApp/Views/RatingsTableViewCell.swift @@ -0,0 +1,48 @@ +// +// RatingsTableViewCell.swift +// FoodApp +// +// Created by gnoa001 on 3/30/19. +// Copyright © 2019 SparkDev. All rights reserved. +// + +import UIKit + +class RatingsTableViewCell: UITableViewCell { + + // MARK: Outlets + @IBOutlet weak var profileImageView: UIImageView! + @IBOutlet weak var ratingTitleLabel: UILabel! + @IBOutlet weak var ratingLabel: UILabel! + @IBOutlet weak var dateLabel: UILabel! + @IBOutlet weak var nameLabel: UILabel! + @IBOutlet weak var textView: UITextView! + + // MARK: Lifecycle + override func awakeFromNib() { + super.awakeFromNib() + + setupUI() + } + + // MARK: Setup + func setupUI() { + ratingTitleLabel.font = UIFont.preferredFont(forTextStyle: .footnote) + ratingLabel.font = UIFont.preferredFont(forTextStyle: .caption2) + dateLabel.font = UIFont.preferredFont(forTextStyle: .caption2) + nameLabel.font = UIFont.preferredFont(forTextStyle: .caption2) + textView.font = UIFont.preferredFont(forTextStyle: .caption1) + + textView.isUserInteractionEnabled = false + textView.isScrollEnabled = false + + ratingTitleLabel.text = "Amazing!" + ratingLabel.text = "⭐️⭐️⭐️⭐️" + dateLabel.text = "9 Mar" + nameLabel.text = "Quinten Kortum" + profileImageView.image = #imageLiteral(resourceName: "woman") + + dateLabel.textColor = .lightGray + nameLabel.textColor = .lightGray + } +} diff --git a/FoodApp/FoodApp/Views/RatingsTableViewCell.xib b/FoodApp/FoodApp/Views/RatingsTableViewCell.xib new file mode 100644 index 0000000..af16185 --- /dev/null +++ b/FoodApp/FoodApp/Views/RatingsTableViewCell.xib @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From c9757422bc5c2057e24e6769b8f788af86f7b146 Mon Sep 17 00:00:00 2001 From: gionoa Date: Sun, 31 Mar 2019 18:37:32 -0400 Subject: [PATCH 2/4] Wall of Code --- .../Modules/module.modulemap | 10 + .../OAuth/FIROAuthCredential_Internal.h | 62 + .../Source/Public/FIRFederatedAuthProvider.h | 52 + .../OAuth => Public}/FIROAuthCredential.h | 19 +- FoodApp/Pods/FirebaseInstanceID/CHANGELOG.md | 137 -- .../Firebase/InstanceID/FIRIMessageCode.h | 156 +++ .../InstanceID/FIRInstanceID+Private.h | 55 + .../InstanceID/FIRInstanceID+Private.m | 46 + .../InstanceID/FIRInstanceID+Testing.h | 48 + .../Firebase/InstanceID/FIRInstanceID.m | 1212 +++++++++++++++++ .../InstanceID/FIRInstanceIDAPNSInfo.h | 64 + .../InstanceID/FIRInstanceIDAPNSInfo.m | 79 ++ .../InstanceID/FIRInstanceIDAuthKeyChain.h | 98 ++ .../InstanceID/FIRInstanceIDAuthKeyChain.m | 219 +++ .../InstanceID/FIRInstanceIDAuthService.h | 91 ++ .../InstanceID/FIRInstanceIDAuthService.m | 302 ++++ .../FIRInstanceIDBackupExcludedPlist.h | 81 ++ .../FIRInstanceIDBackupExcludedPlist.m | 206 +++ ...FIRInstanceIDCheckinPreferences+Internal.h | 64 + ...FIRInstanceIDCheckinPreferences+Internal.m | 112 ++ .../FIRInstanceIDCheckinPreferences.h | 63 + .../FIRInstanceIDCheckinPreferences.m | 97 ++ .../FIRInstanceIDCheckinPreferences_Private.h | 27 + .../InstanceID/FIRInstanceIDCheckinService.h | 82 ++ .../InstanceID/FIRInstanceIDCheckinService.m | 240 ++++ .../InstanceID/FIRInstanceIDCheckinStore.h | 108 ++ .../InstanceID/FIRInstanceIDCheckinStore.m | 239 ++++ .../InstanceID/FIRInstanceIDConstants.h | 63 + .../InstanceID/FIRInstanceIDConstants.m | 46 + .../InstanceID/FIRInstanceIDDefines.h | 70 + .../InstanceID/FIRInstanceIDKeyPair.h | 78 ++ .../InstanceID/FIRInstanceIDKeyPair.m | 73 + .../InstanceID/FIRInstanceIDKeyPairStore.h | 85 ++ .../InstanceID/FIRInstanceIDKeyPairStore.m | 526 +++++++ .../FIRInstanceIDKeyPairUtilities.h | 36 + .../FIRInstanceIDKeyPairUtilities.m | 84 ++ .../InstanceID/FIRInstanceIDKeychain.h | 76 ++ .../InstanceID/FIRInstanceIDKeychain.m | 175 +++ .../Firebase/InstanceID/FIRInstanceIDLogger.h | 66 + .../Firebase/InstanceID/FIRInstanceIDLogger.m | 92 ++ .../Firebase/InstanceID/FIRInstanceIDStore.h | 183 +++ .../Firebase/InstanceID/FIRInstanceIDStore.m | 240 ++++ .../InstanceID/FIRInstanceIDStringEncoding.h | 66 + .../InstanceID/FIRInstanceIDStringEncoding.m | 202 +++ .../FIRInstanceIDTokenDeleteOperation.h | 31 + .../FIRInstanceIDTokenDeleteOperation.m | 120 ++ .../FIRInstanceIDTokenFetchOperation.h | 29 + .../FIRInstanceIDTokenFetchOperation.m | 200 +++ .../InstanceID/FIRInstanceIDTokenInfo.h | 82 ++ .../InstanceID/FIRInstanceIDTokenInfo.m | 188 +++ .../InstanceID/FIRInstanceIDTokenManager.h | 149 ++ .../InstanceID/FIRInstanceIDTokenManager.m | 341 +++++ .../FIRInstanceIDTokenOperation+Private.h | 67 + .../InstanceID/FIRInstanceIDTokenOperation.h | 73 + .../InstanceID/FIRInstanceIDTokenOperation.m | 243 ++++ .../InstanceID/FIRInstanceIDTokenStore.h | 106 ++ .../InstanceID/FIRInstanceIDTokenStore.m | 137 ++ .../InstanceID/FIRInstanceIDURLQueryItem.h | 39 + .../InstanceID/FIRInstanceIDURLQueryItem.m | 55 + .../InstanceID/FIRInstanceIDUtilities.h | 85 ++ .../InstanceID/FIRInstanceIDUtilities.m | 194 +++ .../FIRInstanceIDVersionUtilities.h | 35 + .../FIRInstanceIDVersionUtilities.m | 91 ++ .../InstanceID/NSError+FIRInstanceID.h | 70 + .../InstanceID/NSError+FIRInstanceID.m | 44 + .../InstanceID/Public}/FIRInstanceID.h | 16 + .../InstanceID/Public/FirebaseInstanceID.h | 17 + .../FirebaseInstanceID | Bin 5965104 -> 0 bytes .../Headers/FirebaseInstanceID.h | 1 - .../Modules/module.modulemap | 6 - FoodApp/Pods/FirebaseInstanceID/LICENSE | 202 +++ .../Pods/SkyFloatingLabelTextField/LICENSE | 201 +++ .../Pods/SkyFloatingLabelTextField/README.md | 269 ++++ .../Sources/SkyFloatingLabelTextField.swift | 708 ++++++++++ .../SkyFloatingLabelTextFieldWithIcon.swift | 322 +++++ .../UITextField+fixCaretPosition.swift | 27 + .../FirebaseInstanceID-Info.plist | 26 + .../FirebaseInstanceID-dummy.m | 5 + .../FirebaseInstanceID-umbrella.h | 18 + .../FirebaseInstanceID.modulemap | 6 + .../Pods-FoodApp/Pods-FoodApp.debug.xcconfig | 8 +- .../Pods-FoodApp.release.xcconfig | 8 +- .../SkyFloatingLabelTextField-Info.plist | 26 + .../SkyFloatingLabelTextField-dummy.m | 5 + .../SkyFloatingLabelTextField-prefix.pch | 12 + .../SkyFloatingLabelTextField-umbrella.h | 16 + .../SkyFloatingLabelTextField.modulemap | 6 + .../SkyFloatingLabelTextField.xcconfig | 9 + 88 files changed, 10264 insertions(+), 159 deletions(-) create mode 100755 FoodApp/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/Modules/module.modulemap create mode 100644 FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthCredential_Internal.h create mode 100644 FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/Public/FIRFederatedAuthProvider.h rename FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/{AuthProviders/OAuth => Public}/FIROAuthCredential.h (66%) delete mode 100755 FoodApp/Pods/FirebaseInstanceID/CHANGELOG.md create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRIMessageCode.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID+Private.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID+Private.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID+Testing.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAPNSInfo.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAPNSInfo.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthKeyChain.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthKeyChain.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthService.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthService.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences_Private.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinService.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinService.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinStore.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinStore.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDConstants.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDConstants.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDDefines.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPair.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPair.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairStore.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairStore.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairUtilities.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairUtilities.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeychain.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeychain.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDLogger.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDLogger.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStore.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStore.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStringEncoding.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStringEncoding.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenFetchOperation.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenFetchOperation.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenInfo.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenInfo.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenManager.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenManager.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenOperation+Private.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenOperation.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenOperation.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenStore.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenStore.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDURLQueryItem.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDURLQueryItem.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDVersionUtilities.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDVersionUtilities.m create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/NSError+FIRInstanceID.h create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/NSError+FIRInstanceID.m rename FoodApp/Pods/FirebaseInstanceID/{Frameworks/FirebaseInstanceID.framework/Headers => Firebase/InstanceID/Public}/FIRInstanceID.h (95%) mode change 100755 => 100644 create mode 100644 FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FirebaseInstanceID.h delete mode 100755 FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID delete mode 100755 FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h delete mode 100755 FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap create mode 100644 FoodApp/Pods/FirebaseInstanceID/LICENSE create mode 100644 FoodApp/Pods/SkyFloatingLabelTextField/LICENSE create mode 100644 FoodApp/Pods/SkyFloatingLabelTextField/README.md create mode 100644 FoodApp/Pods/SkyFloatingLabelTextField/Sources/SkyFloatingLabelTextField.swift create mode 100644 FoodApp/Pods/SkyFloatingLabelTextField/Sources/SkyFloatingLabelTextFieldWithIcon.swift create mode 100644 FoodApp/Pods/SkyFloatingLabelTextField/Sources/UITextField+fixCaretPosition.swift create mode 100644 FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID-Info.plist create mode 100644 FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID-dummy.m create mode 100644 FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID-umbrella.h create mode 100644 FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID.modulemap create mode 100644 FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-Info.plist create mode 100644 FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-dummy.m create mode 100644 FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-prefix.pch create mode 100644 FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-umbrella.h create mode 100644 FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField.modulemap create mode 100644 FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField.xcconfig diff --git a/FoodApp/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/Modules/module.modulemap b/FoodApp/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/Modules/module.modulemap new file mode 100755 index 0000000..270ad21 --- /dev/null +++ b/FoodApp/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/Modules/module.modulemap @@ -0,0 +1,10 @@ +framework module FIRAnalyticsConnector { + export * + module * { export * } + link "sqlite3" + link "z" + link framework "Security" + link framework "StoreKit" + link framework "SystemConfiguration" + link framework "UIKit" +} diff --git a/FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthCredential_Internal.h b/FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthCredential_Internal.h new file mode 100644 index 0000000..bcc3248 --- /dev/null +++ b/FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthCredential_Internal.h @@ -0,0 +1,62 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import "FIROAuthCredential.h" + +NS_ASSUME_NONNULL_BEGIN + +/** @extension FIROAuthCredential + @brief Internal implementation of FIRAuthCredential for generic credentials. + */ +@interface FIROAuthCredential() + +/** @property OAuthResponseURLString + @brief A string representation of the response URL corresponding to this OAuthCredential. + */ +@property(nonatomic, readonly, nullable) NSString *OAuthResponseURLString; + +/** @property sessionID + @brief The session ID used when completing the headful-lite flow. + */ +@property(nonatomic, readonly, nullable) NSString *sessionID; + +/** @fn initWithProviderId:IDToken:accessToken:pendingToken + @brief Designated initializer. + @param providerID The provider ID associated with the credential being created. + @param IDToken The ID Token associated with the credential being created. + @param accessToken The access token associated with the credential being created. + @param pendingToken The pending token associated with the credential being created. + */ +- (instancetype)initWithProviderID:(NSString *)providerID + IDToken:(nullable NSString *)IDToken + accessToken:(nullable NSString *)accessToken + pendingToken:(nullable NSString *)pendingToken NS_DESIGNATED_INITIALIZER; + +/** @fn initWithProviderId:sessionID:OAuthResponseURLString: + @brief Intitializer which takes a sessionID and an OAuthResponseURLString. + @param providerID The provider ID associated with the credential being created. + @param sessionID The session ID used when completing the headful-lite flow. + @param OAuthResponseURLString The error that occurred if any. + */ +- (instancetype)initWithProviderID:(NSString *)providerID + sessionID:(NSString *)sessionID + OAuthResponseURLString:(NSString *)OAuthResponseURLString; + +@end + +NS_ASSUME_NONNULL_END diff --git a/FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/Public/FIRFederatedAuthProvider.h b/FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/Public/FIRFederatedAuthProvider.h new file mode 100644 index 0000000..51190e2 --- /dev/null +++ b/FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/Public/FIRFederatedAuthProvider.h @@ -0,0 +1,52 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#if TARGET_OS_IOS +#import "FIRAuthUIDelegate.h" +#endif // TARGET_OS_IOS + +@class FIRAuthCredential; + +NS_ASSUME_NONNULL_BEGIN + +NS_SWIFT_NAME(FederatedAuthProvider) +@protocol FIRFederatedAuthProvider + +/** @typedef FIRAuthCredentialCallback + @brief The type of block invoked when obtaining an auth credential. + @param credential The credential obtained. + @param error The error that occurred if any. + */ +typedef void(^FIRAuthCredentialCallback)(FIRAuthCredential *_Nullable credential, + NSError *_Nullable error) + NS_SWIFT_NAME(AuthCredentialCallback); + +#if TARGET_OS_IOS +/** @fn getCredentialWithUIDelegate:completion: + @brief Used to obtain an auth credential via a mobile web flow. + @param UIDelegate An optional UI delegate used to presenet the mobile web flow. + @param completion Optionally; a block which is invoked asynchronously on the main thread when + the mobile web flow is completed. + */ +- (void)getCredentialWithUIDelegate:(nullable id)UIDelegate + completion:(nullable FIRAuthCredentialCallback)completion; +#endif // TARGET_OS_IOS + +@end + +NS_ASSUME_NONNULL_END diff --git a/FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthCredential.h b/FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/Public/FIROAuthCredential.h similarity index 66% rename from FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthCredential.h rename to FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/Public/FIROAuthCredential.h index be6209e..43b1d81 100644 --- a/FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthCredential.h +++ b/FoodApp/Pods/FirebaseAuth/Firebase/Auth/Source/Public/FIROAuthCredential.h @@ -16,13 +16,14 @@ #import -#import "FIRAuthCredential_Internal.h" +#import "FIRAuthCredential.h" NS_ASSUME_NONNULL_BEGIN /** @class FIROAuthCredential @brief Internal implementation of FIRAuthCredential for generic credentials. */ +NS_SWIFT_NAME(OAuthCredential) @interface FIROAuthCredential : FIRAuthCredential /** @property IDToken @@ -35,15 +36,15 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readonly, nullable) NSString *accessToken; -/** @fn initWithProviderId:IDToken:accessToken: - @brief Designated initializer. - @param providerID The provider ID associated with the credential being created. - @param IDToken The ID Token associated with the credential being created. - @param accessToken The access token associated with the credential being created. +/** @property pendingToken + @brief The pending token used when completing the headful-lite flow. */ -- (nullable instancetype)initWithProviderID:(NSString *)providerID - IDToken:(nullable NSString*)IDToken - accessToken:(nullable NSString *)accessToken; +@property(nonatomic, readonly, nullable) NSString *pendingToken; + +/** @fn init + @brief This class is not supposed to be instantiated directly. + */ +- (instancetype)init NS_UNAVAILABLE; @end diff --git a/FoodApp/Pods/FirebaseInstanceID/CHANGELOG.md b/FoodApp/Pods/FirebaseInstanceID/CHANGELOG.md deleted file mode 100755 index 8876ce8..0000000 --- a/FoodApp/Pods/FirebaseInstanceID/CHANGELOG.md +++ /dev/null @@ -1,137 +0,0 @@ -# 2019-01-22 -- v3.4.0 -- Move all keychain write operations off the main thread. (#1399) -- Make keychain operations asynchronous where possible (given the current APIs) -- Avoid redundant keychain operations when it's been queried and cached before. - -# 2018-10-25 -- v3.3.0 -- Fixed a crash caused by keychain operation when accessing default access group. (#1399, #1393) -- Remove internal APIs that are no longer used. - -# 2018-09-25 -- v3.2.2 -- Fixed a crash caused by NSUserDefaults being called on background thread. - -# 2018-08-14 -- v3.2.1 -- Fixed an issue that checkin is not cached properly when app first started. (#1561) - -# 2018-07-31 -- v3.2.0 -- Added support for global Firebase data collection flag. (#1219) -- Improved message tracking sent by server API. -- Fixed an issue that InstanceID doesn't compile in app extensions, allowing its -dependents like remote config to be working inside the app extensions. - -# 2018-06-19 -- v3.1.1 -- Ensure the checkin and tokens are refreshed if firebase project changed. -- Fixed an issue that checkin should be turned off when FCM's autoInitEnabled flag is off. - -# 2018-06-12 -- v3.1.0 -- Added a new API to fetch InstanceID and Token with a completion handler. The completion handler returns a FIRInstanceIDResult with a instanceID and a token properties. -- Deprecated the token method. -- Added support to log a new customized label provided by developer. - -# 2018-05-08 -- v3.0.0 -- Removed deprecated method `setAPNSToken:type` defined in FIRInstanceID, please use `setAPNSToken:type` defined in FIRMessaging instead. -- Removed deprecated enum `FIRInstanceIDAPNSTokenType` defined in FIRInstanceID, please use `FIRMessagingAPNSTokenType` defined in FIRMessaging instead. -- Fixed an issue that FCM scheduled messages were not tracked successfully. - -# 2018-03-06 -- v2.0.10 -- Improved documentation on InstanceID usage for GDPR. -- Improved the keypair handling during GCM to FCM migration. If you are migrating from GCM to FCM, we encourage you to update to this version and above. - -# 2018-02-06 -- v2.0.9 -- Improved support for language targeting for FCM service. Server updates happen more efficiently when language changes. -- Improved support for FCM token auto generation enable/disable functions. - -# 2017-12-11 -- v2.0.8 -- Fixed a crash caused by a reflection call during logging. -- Updating server with the latest parameters and deprecating old ones. - -# 2017-11-27 -- v2.0.7 -- Improve identity reset process, ensuring all information is reset during Identity deletion. - -# 2017-11-06 -- v2.0.6 -- Make token refresh weekly. -- Fixed a crash when performing token operation. - -# 2017-10-11 -- v2.0.5 -- Improved support for working in shared Keychain environments. - -# 2017-09-26 -- v2.0.4 -- Fixed an issue where the FCM token was not associating correctly with an APNs - device token, depending on when the APNs device token was made available. -- Fixed an issue where FCM tokens for different Sender IDs were not associating - correctly with an APNs device token. -- Fixed an issue that was preventing the FCM direct channel from being - established on the first start after 24 hours of being opened. - -# 2017-09-13 -- v2.0.3 -- Fixed a race condition where a token was not being generated on first start, - if Firebase Messaging was included and the app did not register for remote - notifications. - -# 2017-08-25 -- v2.0.2 -- Fixed a startup performance regression, removing a call which was blocking the - main thread. - -# 2017-08-07 -- v2.0.1 -- Fixed issues with token and app identifier being inaccessible when the device - is locked. -- Fixed a crash if bundle identifier is nil, which is possible in some testing - environments. -- Fixed a small memory leak fetching a new token. -- Moved to a new and simplified token storage system. -- Moved to a new queuing system for token fetches and deletes. -- Simplified logic and code around configuration and logging. -- Added clarification about the 'apns_sandbox' parameter, in header comments. - -# 2017-05-08 -- v2.0.0 -- Introduced an improved interface for Swift 3 developers -- Deprecated some methods and properties after moving their logic to the - Firebase Cloud Messaging SDK -- Fixed an intermittent stability issue when a debug build of an app was - replaced with a release build of the same version -- Removed swizzling logic that was sometimes resulting in developers receiving - a validation notice about enabling push notification capabilities, even though - they weren't using push notifications -- Fixed a notification that would sometimes fire twice in quick succession - during the first run of an app - -# 2017-03-31 -- v1.0.10 - -- Improvements to token-fetching logic -- Fixed some warnings in Instance ID -- Improved error messages if Instance ID couldn't be initialized properly -- Improvements to console logging - -# 2017-01-31 -- v1.0.9 - -- Removed an error being mistakenly logged to the console. - -# 2016-07-06 -- v1.0.8 - -- Don't store InstanceID plists in Documents folder. - -# 2016-06-19 -- v1.0.7 - -- Fix remote-notifications warning on app submission. - -# 2016-05-16 -- v1.0.6 - -- Fix CocoaPod linter issues for InstanceID pod. - -# 2016-05-13 -- v1.0.5 - -- Fix Authorization errors for InstanceID tokens. - -# 2016-05-11 -- v1.0.4 - -- Reduce wait for InstanceID token during parallel requests. - -# 2016-04-18 -- v1.0.3 - -- Change flag to disable swizzling to *FirebaseAppDelegateProxyEnabled*. -- Fix incessant Keychain errors while accessing InstanceID. -- Fix max retries for fetching IID token. - -# 2016-04-18 -- v1.0.2 - -- Register for remote notifications on iOS8+ in the SDK itself. diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRIMessageCode.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRIMessageCode.h new file mode 100644 index 0000000..db653d7 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRIMessageCode.h @@ -0,0 +1,156 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +// The format of the debug code will show in the log as: e.g. +// for code 1000, it will show as I-IID001000. +typedef NS_ENUM(NSInteger, FIRInstanceIDMessageCode) { + // DO NOT USE 2000, 2002. + kFIRInstanceIDMessageCodeFIRApp000 = 1000, // I-IID001000 + kFIRInstanceIDMessageCodeFIRApp001 = 1001, + kFIRInstanceIDMessageCodeFIRApp002 = 1002, + kFIRInstanceIDMessageCodeInternal001 = 2001, + kFIRInstanceIDMessageCodeInternal002 = 2002, + // FIRInstanceID.m + // DO NOT USE 4000. + kFIRInstanceIDMessageCodeInstanceID000 = 3000, + kFIRInstanceIDMessageCodeInstanceID001 = 3001, + kFIRInstanceIDMessageCodeInstanceID002 = 3002, + kFIRInstanceIDMessageCodeInstanceID003 = 3003, + kFIRInstanceIDMessageCodeInstanceID004 = 3004, + kFIRInstanceIDMessageCodeInstanceID005 = 3005, + kFIRInstanceIDMessageCodeInstanceID006 = 3006, + kFIRInstanceIDMessageCodeInstanceID007 = 3007, + kFIRInstanceIDMessageCodeInstanceID008 = 3008, + kFIRInstanceIDMessageCodeInstanceID009 = 3009, + kFIRInstanceIDMessageCodeInstanceID010 = 3010, + kFIRInstanceIDMessageCodeInstanceID011 = 3011, + kFIRInstanceIDMessageCodeInstanceID012 = 3012, + kFIRInstanceIDMessageCodeInstanceID013 = 3013, + kFIRInstanceIDMessageCodeInstanceID014 = 3014, + kFIRInstanceIDMessageCodeInstanceID015 = 3015, + kFIRInstanceIDMessageCodeRefetchingTokenForAPNS = 3016, + // FIRInstanceIDAuthService.m + kFIRInstanceIDMessageCodeAuthService000 = 5000, + kFIRInstanceIDMessageCodeAuthService001 = 5001, + kFIRInstanceIDMessageCodeAuthService002 = 5002, + kFIRInstanceIDMessageCodeAuthService003 = 5003, + kFIRInstanceIDMessageCodeAuthService004 = 5004, + kFIRInstanceIDMessageCodeAuthServiceCheckinInProgress = 5004, + + // FIRInstanceIDBackupExcludedPlist.m + kFIRInstanceIDMessageCodeBackupExcludedPlist000 = 6000, + kFIRInstanceIDMessageCodeBackupExcludedPlist001 = 6001, + kFIRInstanceIDMessageCodeBackupExcludedPlist002 = 6002, + kFIRInstanceIDMessageCodeBackupExcludedPlistInvalidPlistEnum = 6003, + // FIRInstanceIDCheckinService.m + kFIRInstanceIDMessageCodeService000 = 7000, + kFIRInstanceIDMessageCodeService001 = 7001, + kFIRInstanceIDMessageCodeService002 = 7002, + kFIRInstanceIDMessageCodeService003 = 7003, + kFIRInstanceIDMessageCodeService004 = 7004, + kFIRInstanceIDMessageCodeService005 = 7005, + kFIRInstanceIDMessageCodeService006 = 7006, + kFIRIntsanceIDInvalidNetworkSession = 7007, + // FIRInstanceIDCheckinStore.m + // DO NOT USE 8002, 8004 - 8008 + kFIRInstanceIDMessageCodeCheckinStore000 = 8000, + kFIRInstanceIDMessageCodeCheckinStore001 = 8001, + kFIRInstanceIDMessageCodeCheckinStore003 = 8003, + // FIRInstanceIDKeyPair.m + // DO NOT USE 9001, 9003 + kFIRInstanceIDMessageCodeKeyPair000 = 9000, + kFIRInstanceIDMessageCodeKeyPair002 = 9002, + kFIRInstanceIDMessageCodeKeyPairMigrationError = 9004, + kFIRInstanceIDMessageCodeKeyPairMigrationSuccess = 9005, + // FIRInstanceIDKeyPairStore.m + kFIRInstanceIDMessageCodeKeyPairStore000 = 10000, + kFIRInstanceIDMessageCodeKeyPairStore001 = 10001, + kFIRInstanceIDMessageCodeKeyPairStore002 = 10002, + kFIRInstanceIDMessageCodeKeyPairStore003 = 10003, + kFIRInstanceIDMessageCodeKeyPairStore004 = 10004, + kFIRInstanceIDMessageCodeKeyPairStore005 = 10005, + kFIRInstanceIDMessageCodeKeyPairStore006 = 10006, + kFIRInstanceIDMessageCodeKeyPairStore007 = 10007, + kFIRInstanceIDMessageCodeKeyPairStore008 = 10008, + kFIRInstanceIDMessageCodeKeyPairStoreCouldNotLoadKeyPair = 10009, + // FIRInstanceIDKeyPairUtilities.m + kFIRInstanceIDMessageCodeKeyPairUtilities000 = 11000, + kFIRInstanceIDMessageCodeKeyPairUtilities001 = 11001, + kFIRInstanceIDMessageCodeKeyPairUtilitiesFirstConcatenateParamNil = 11002, + + // DO NOT USE 12000 - 12014 + + // FIRInstanceIDStore.m + // DO NOT USE 13004, 13005, 13007, 13008, 13010, 13011, 13013, 13014 + kFIRInstanceIDMessageCodeStore000 = 13000, + kFIRInstanceIDMessageCodeStore001 = 13001, + kFIRInstanceIDMessageCodeStore002 = 13002, + kFIRInstanceIDMessageCodeStore003 = 13003, + kFIRInstanceIDMessageCodeStore006 = 13006, + kFIRInstanceIDMessageCodeStore009 = 13009, + kFIRInstanceIDMessageCodeStore012 = 13012, + // FIRInstanceIDTokenManager.m + // DO NOT USE 14002, 14005 + kFIRInstanceIDMessageCodeTokenManager000 = 14000, + kFIRInstanceIDMessageCodeTokenManager001 = 14001, + kFIRInstanceIDMessageCodeTokenManager003 = 14003, + kFIRInstanceIDMessageCodeTokenManager004 = 14004, + kFIRInstanceIDMessageCodeTokenManagerErrorDeletingFCMTokensOnAppReset = 14006, + kFIRInstanceIDMessageCodeTokenManagerDeletedFCMTokensOnAppReset = 14007, + kFIRInstanceIDMessageCodeTokenManagerSavedAppVersion = 14008, + kFIRInstanceIDMessageCodeTokenManagerErrorInvalidatingAllTokens = 14009, + kFIRInstanceIDMessageCodeTokenManagerAPNSChanged = 14010, + kFIRInstanceIDMessageCodeTokenManagerAPNSChangedTokenInvalidated = 14011, + kFIRInstanceIDMessageCodeTokenManagerInvalidateStaleToken = 14012, + // FIRInstanceIDTokenStore.m + // DO NOT USE 15002 - 15013 + kFIRInstanceIDMessageCodeTokenStore000 = 15000, + kFIRInstanceIDMessageCodeTokenStore001 = 15001, + kFIRInstanceIDMessageCodeTokenStoreExceptionUnarchivingTokenInfo = 15015, + + // DO NOT USE 16000, 18004 + + // FIRInstanceIDUtilities.m + kFIRInstanceIDMessageCodeUtilitiesMissingBundleIdentifier = 18000, + kFIRInstanceIDMessageCodeUtilitiesAppEnvironmentUtilNotAvailable = 18001, + kFIRInstanceIDMessageCodeUtilitiesCannotGetHardwareModel = 18002, + kFIRInstanceIDMessageCodeUtilitiesCannotGetSystemVersion = 18003, + // FIRInstanceIDTokenOperation.m + kFIRInstanceIDMessageCodeTokenOperationFailedToSignParams = 19000, + // FIRInstanceIDTokenFetchOperation.m + // DO NOT USE 20004, 20005 + kFIRInstanceIDMessageCodeTokenFetchOperationFetchRequest = 20000, + kFIRInstanceIDMessageCodeTokenFetchOperationRequestError = 20001, + kFIRInstanceIDMessageCodeTokenFetchOperationBadResponse = 20002, + kFIRInstanceIDMessageCodeTokenFetchOperationBadTokenStructure = 20003, + // FIRInstanceIDTokenDeleteOperation.m + kFIRInstanceIDMessageCodeTokenDeleteOperationFetchRequest = 21000, + kFIRInstanceIDMessageCodeTokenDeleteOperationRequestError = 21001, + kFIRInstanceIDMessageCodeTokenDeleteOperationBadResponse = 21002, + // FIRInstanceIDTokenInfo.m + kFIRInstanceIDMessageCodeTokenInfoBadAPNSInfo = 22000, + kFIRInstanceIDMessageCodeTokenInfoFirebaseAppIDChanged = 22001, + kFIRInstanceIDMessageCodeTokenInfoLocaleChanged = 22002, + // FIRInstanceIDKeychain.m + kFIRInstanceIDKeychainReadItemError = 23000, + kFIRInstanceIDKeychainAddItemError = 23001, + kFIRInstanceIDKeychainDeleteItemError = 23002, + kFIRInstanceIDKeychainCreateKeyPairError = 23003, + kFIRInstanceIDKeychainUpdateItemError = 23004, + +}; diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID+Private.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID+Private.h new file mode 100644 index 0000000..5244417 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID+Private.h @@ -0,0 +1,55 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceID.h" + +#import "FIRInstanceIDCheckinService.h" + +/** + * Internal API used by other Firebase SDK teams, including Messaging, Analytics and Remote config. + */ +@interface FIRInstanceID (Private) + +/** + * Return the cached checkin preferences on the disk. This is used internally only by Messaging. + * + * @return The cached checkin preferences on the client. + */ +- (nullable FIRInstanceIDCheckinPreferences *)cachedCheckinPreferences; + +/** + * Fetches checkin info for the app. If the app has valid cached checkin preferences + * they are returned instead of making a network request. + * + * @param handler The completion handler to invoke once the request has completed. + */ +- (void)fetchCheckinInfoWithHandler:(nullable FIRInstanceIDDeviceCheckinCompletion)handler; + +/** + * Get the InstanceID for the app. If an ID was created before and cached + * successfully we will return that ID. If no cached ID exists we create + * a new ID, cache it and return that. + * + * This is a blocking call and should not really be called on the main thread. + * + * @param error The error object that represents the error while trying to + * retrieve the instance id. + * + * @return The InstanceID for the app. + */ +- (nullable NSString *)appInstanceID:(NSError *_Nullable *_Nullable)error; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID+Private.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID+Private.m new file mode 100644 index 0000000..61d43a4 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID+Private.m @@ -0,0 +1,46 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceID+Private.h" + +#import "FIRInstanceIDAuthService.h" +#import "FIRInstanceIDKeyPairStore.h" +#import "FIRInstanceIDTokenManager.h" + +@interface FIRInstanceID () + +@property(nonatomic, readonly, strong) FIRInstanceIDTokenManager *tokenManager; +@property(nonatomic, readonly, strong) FIRInstanceIDKeyPairStore *keyPairStore; + +@end + +@implementation FIRInstanceID (Private) + +- (FIRInstanceIDCheckinPreferences *)cachedCheckinPreferences { + return [self.tokenManager.authService checkinPreferences]; +} + +// This method just wraps our pre-configured auth service to make the request. +// This method is only needed by first-party users, like Remote Config. +- (void)fetchCheckinInfoWithHandler:(FIRInstanceIDDeviceCheckinCompletion)handler { + [self.tokenManager.authService fetchCheckinInfoWithHandler:handler]; +} + +- (NSString *)appInstanceID:(NSError **)error { + return [self.keyPairStore appIdentityWithError:error]; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID+Testing.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID+Testing.h new file mode 100644 index 0000000..88fabf2 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID+Testing.h @@ -0,0 +1,48 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceID+Private.h" +#import "FIRInstanceID.h" +#import "FIRInstanceIDKeyPairStore.h" +#import "FIRInstanceIDTokenManager.h" + +@interface FIRInstanceID (Testing) + +@property(nonatomic, readwrite, strong) FIRInstanceIDTokenManager *tokenManager; +@property(nonatomic, readwrite, strong) FIRInstanceIDKeyPairStore *keyPairStore; +@property(nonatomic, readwrite, copy) NSString *fcmSenderID; + +/** + * Private initializer. + */ +- (instancetype)initPrivately; + +/** + * Actually makes InstanceID instantiate both the IID and Token-related subsystems. + */ +- (void)start; + +/** + * Without checking any caches etc, always attempts to fetch the default token (unless a fetch + * is already in progress. + */ +- (void)fetchDefaultToken; + ++ (int64_t)maxRetryCountForDefaultToken; ++ (int64_t)minIntervalForDefaultTokenRetry; ++ (int64_t)maxRetryIntervalForDefaultTokenInSeconds; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID.m new file mode 100644 index 0000000..c8efba9 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceID.m @@ -0,0 +1,1212 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceID.h" + +#import +#import +#import +#import +#import +#import +#import "FIRInstanceID+Private.h" +#import "FIRInstanceIDAuthService.h" +#import "FIRInstanceIDConstants.h" +#import "FIRInstanceIDDefines.h" +#import "FIRInstanceIDKeyPairStore.h" +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDStore.h" +#import "FIRInstanceIDTokenInfo.h" +#import "FIRInstanceIDTokenManager.h" +#import "FIRInstanceIDUtilities.h" +#import "FIRInstanceIDVersionUtilities.h" +#import "NSError+FIRInstanceID.h" + +// Public constants +NSString *const kFIRInstanceIDScopeFirebaseMessaging = @"fcm"; + +#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 +const NSNotificationName kFIRInstanceIDTokenRefreshNotification = + @"com.firebase.iid.notif.refresh-token"; +#else +NSString *const kFIRInstanceIDTokenRefreshNotification = @"com.firebase.iid.notif.refresh-token"; +#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 + +NSString *const kFIRInstanceIDInvalidNilHandlerError = @"Invalid nil handler."; + +// Private constants +int64_t const kMaxRetryIntervalForDefaultTokenInSeconds = 20 * 60; // 20 minutes +int64_t const kMinRetryIntervalForDefaultTokenInSeconds = 10; // 10 seconds +// we retry only a max 5 times. +// TODO(chliangGoogle): If we still fail we should listen for the network change notification +// since GCM would have started Reachability. We only start retrying after we see a configuration +// change. +NSInteger const kMaxRetryCountForDefaultToken = 5; + +static NSString *const kEntitlementsAPSEnvironmentKey = @"Entitlements.aps-environment"; +static NSString *const kAPSEnvironmentDevelopmentValue = @"development"; +/// FIRMessaging selector that returns the current FIRMessaging auto init +/// enabled flag. +static NSString *const kFIRInstanceIDFCMSelectorAutoInitEnabled = @"isAutoInitEnabled"; +static NSString *const kFIRInstanceIDFCMSelectorInstance = @"messaging"; + +static NSString *const kFIRInstanceIDAPNSTokenType = @"APNSTokenType"; +static NSString *const kFIRIIDAppReadyToConfigureSDKNotification = + @"FIRAppReadyToConfigureSDKNotification"; +static NSString *const kFIRIIDAppNameKey = @"FIRAppNameKey"; +static NSString *const kFIRIIDErrorDomain = @"com.firebase.instanceid"; +static NSString *const kFIRIIDServiceInstanceID = @"InstanceID"; + +// This should be the same value as FIRErrorCodeInstanceIDFailed, which we can't import directly +static NSInteger const kFIRIIDErrorCodeInstanceIDFailed = -121; + +typedef void (^FIRInstanceIDKeyPairHandler)(FIRInstanceIDKeyPair *keyPair, NSError *error); + +/** + * The APNS token type for the app. If the token type is set to `UNKNOWN` + * InstanceID will implicitly try to figure out what the actual token type + * is from the provisioning profile. + * This must match FIRMessagingAPNSTokenType in FIRMessaging.h + */ +typedef NS_ENUM(NSInteger, FIRInstanceIDAPNSTokenType) { + /// Unknown token type. + FIRInstanceIDAPNSTokenTypeUnknown, + /// Sandbox token type. + FIRInstanceIDAPNSTokenTypeSandbox, + /// Production token type. + FIRInstanceIDAPNSTokenTypeProd, +} NS_SWIFT_NAME(InstanceIDAPNSTokenType); + +@interface FIRInstanceIDResult () +@property(nonatomic, readwrite, copy) NSString *instanceID; +@property(nonatomic, readwrite, copy) NSString *token; +@end + +@interface FIRInstanceID () + +// FIRApp configuration objects. +@property(nonatomic, readwrite, copy) NSString *fcmSenderID; +@property(nonatomic, readwrite, copy) NSString *firebaseAppID; + +// Raw APNS token data +@property(nonatomic, readwrite, strong) NSData *apnsTokenData; + +@property(nonatomic, readwrite) FIRInstanceIDAPNSTokenType apnsTokenType; +// String-based, internal representation of APNS token +@property(nonatomic, readwrite, copy) NSString *APNSTupleString; +// Token fetched from the server automatically for the default app. +@property(nonatomic, readwrite, copy) NSString *defaultFCMToken; + +@property(nonatomic, readwrite, strong) FIRInstanceIDTokenManager *tokenManager; +@property(nonatomic, readwrite, strong) FIRInstanceIDKeyPairStore *keyPairStore; + +// backoff and retry for default token +@property(atomic, readwrite, assign) BOOL isFetchingDefaultToken; +@property(atomic, readwrite, assign) BOOL isDefaultTokenFetchScheduled; +@property(nonatomic, readwrite, assign) NSInteger retryCountForDefaultToken; + +@end + +// InstanceID doesn't provide any functionality to other components, +// so it provides a private, empty protocol that it conforms to and use it for registration. + +@protocol FIRInstanceIDInstanceProvider +@end + +@interface FIRInstanceID () +@end + +@implementation FIRInstanceIDResult +- (id)copyWithZone:(NSZone *)zone { + FIRInstanceIDResult *result = [[[self class] allocWithZone:zone] init]; + result.instanceID = self.instanceID; + result.token = self.token; + return result; +} +@end + +@implementation FIRInstanceID + +// File static to support InstanceID tests that call [FIRInstanceID instanceID] after +// [FIRInstanceID instanceIDForTests]. +static FIRInstanceID *gInstanceID; + ++ (instancetype)instanceID { + // If the static instance was created, return it. This should only be set in tests and we should + // eventually use proper dependency injection for a better test structure. + if (gInstanceID != nil) { + return gInstanceID; + } + FIRApp *defaultApp = [FIRApp defaultApp]; // Missing configure will be logged here. + FIRInstanceID *instanceID = + (FIRInstanceID *)FIR_COMPONENT(FIRInstanceIDInstanceProvider, defaultApp.container); + return instanceID; +} + +- (instancetype)initPrivately { + self = [super init]; + if (self != nil) { + // Use automatic detection of sandbox, unless otherwise set by developer + _apnsTokenType = FIRInstanceIDAPNSTokenTypeUnknown; + } + return self; +} + ++ (FIRInstanceID *)instanceIDForTests { + gInstanceID = [[FIRInstanceID alloc] initPrivately]; + [gInstanceID start]; + return gInstanceID; +} + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +#pragma mark - Tokens + +- (NSString *)token { + if (!self.fcmSenderID.length) { + return nil; + } + + NSString *cachedToken = [self cachedTokenIfAvailable]; + + if (cachedToken) { + return cachedToken; + } else { + // If we've never had a cached default token, we should fetch one because unrelatedly, + // this request will help us determine whether the locally-generated Instance ID keypair is not + // unique, and therefore generate a new one. + [self fetchDefaultToken]; + return nil; + } +} + +- (void)instanceIDWithHandler:(FIRInstanceIDResultHandler)handler { + FIRInstanceID_WEAKIFY(self); + [self getIDWithHandler:^(NSString *identity, NSError *error) { + FIRInstanceID_STRONGIFY(self); + // This is in main queue already + if (error) { + if (handler) { + handler(nil, error); + } + return; + } + FIRInstanceIDResult *result = [[FIRInstanceIDResult alloc] init]; + result.instanceID = identity; + NSString *cachedToken = [self cachedTokenIfAvailable]; + if (cachedToken) { + if (handler) { + result.token = cachedToken; + handler(result, nil); + } + // If no handler, simply return since client has generated iid and token. + return; + } + + // Now get token + FIRInstanceIDTokenHandler tokenHandler = ^void(NSString *token, NSError *error) { + if (error) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeInstanceID007, + @"Failed to retrieve the default FCM token after %ld retries", + (long)self.retryCountForDefaultToken); + if (handler) { + // If token fetching fails, result should be nil with error returned. + handler(nil, error); + } + return; + } + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeInstanceID008, @"Got default token %@", + token); + NSString *previousFCMToken = self.defaultFCMToken; + self.defaultFCMToken = token; + + // Only notify of token refresh if we have a new valid token that's different than before + if (self.defaultFCMToken.length && ![self.defaultFCMToken isEqualToString:previousFCMToken]) { + NSNotification *tokenRefreshNotification = + [NSNotification notificationWithName:kFIRInstanceIDTokenRefreshNotification + object:[self.defaultFCMToken copy]]; + [[NSNotificationQueue defaultQueue] enqueueNotification:tokenRefreshNotification + postingStyle:NSPostASAP]; + } + + if (handler) { + result.token = token; + handler(result, nil); + } + }; + + [self defaultTokenWithHandler:tokenHandler]; + }]; +} + +- (NSString *)cachedTokenIfAvailable { + FIRInstanceIDTokenInfo *cachedTokenInfo = + [self.tokenManager cachedTokenInfoWithAuthorizedEntity:self.fcmSenderID + scope:kFIRInstanceIDDefaultTokenScope]; + return cachedTokenInfo.token; +} + +- (void)setDefaultFCMToken:(NSString *)defaultFCMToken { + if (_defaultFCMToken && defaultFCMToken && [defaultFCMToken isEqualToString:_defaultFCMToken]) { + return; + } + + _defaultFCMToken = defaultFCMToken; + + // Sending this notification out will ensure that FIRMessaging has the updated + // default FCM token. + NSNotification *internalDefaultTokenNotification = + [NSNotification notificationWithName:kFIRInstanceIDDefaultGCMTokenNotification + object:_defaultFCMToken]; + [[NSNotificationQueue defaultQueue] enqueueNotification:internalDefaultTokenNotification + postingStyle:NSPostASAP]; +} + +- (void)tokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + options:(NSDictionary *)options + handler:(FIRInstanceIDTokenHandler)handler { + _FIRInstanceIDDevAssert(handler != nil && [authorizedEntity length] && [scope length], + @"Invalid authorizedEntity or scope to new token"); + if (!handler) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeInstanceID000, + kFIRInstanceIDInvalidNilHandlerError); + return; + } + + NSMutableDictionary *tokenOptions = [NSMutableDictionary dictionary]; + if (options.count) { + [tokenOptions addEntriesFromDictionary:options]; + } + + NSString *APNSKey = kFIRInstanceIDTokenOptionsAPNSKey; + NSString *serverTypeKey = kFIRInstanceIDTokenOptionsAPNSIsSandboxKey; + + if (tokenOptions[APNSKey] != nil && tokenOptions[serverTypeKey] == nil) { + // APNS key was given, but server type is missing. Supply the server type with automatic + // checking. This can happen when the token is requested from FCM, which does not include a + // server type during its request. + tokenOptions[serverTypeKey] = @([self isSandboxApp]); + } + + // comparing enums to ints directly throws a warning + FIRInstanceIDErrorCode noError = INT_MAX; + FIRInstanceIDErrorCode errorCode = noError; + if (FIRInstanceIDIsValidGCMScope(scope) && !tokenOptions[APNSKey]) { + errorCode = kFIRInstanceIDErrorCodeMissingAPNSToken; + } else if (FIRInstanceIDIsValidGCMScope(scope) && + ![tokenOptions[APNSKey] isKindOfClass:[NSData class]]) { + errorCode = kFIRInstanceIDErrorCodeInvalidRequest; + } else if (![authorizedEntity length]) { + errorCode = kFIRInstanceIDErrorCodeInvalidAuthorizedEntity; + } else if (![scope length]) { + errorCode = kFIRInstanceIDErrorCodeInvalidScope; + } else if (!self.keyPairStore) { + errorCode = kFIRInstanceIDErrorCodeInvalidStart; + } + + FIRInstanceIDTokenHandler newHandler = ^(NSString *token, NSError *error) { + dispatch_async(dispatch_get_main_queue(), ^{ + handler(token, error); + }); + }; + + if (errorCode != noError) { + newHandler(nil, [NSError errorWithFIRInstanceIDErrorCode:errorCode]); + return; + } + + // TODO(chliangGoogle): Add some validation logic that the APNs token data and sandbox value are + // supplied in the valid format (NSData and BOOL, respectively). + + // Add internal options + if (self.firebaseAppID) { + tokenOptions[kFIRInstanceIDTokenOptionsFirebaseAppIDKey] = self.firebaseAppID; + } + + FIRInstanceID_WEAKIFY(self); + FIRInstanceIDAuthService *authService = self.tokenManager.authService; + [authService + fetchCheckinInfoWithHandler:^(FIRInstanceIDCheckinPreferences *preferences, NSError *error) { + FIRInstanceID_STRONGIFY(self); + if (error) { + newHandler(nil, error); + return; + } + + // Only use the token in the cache if the APNSInfo matches what the request's options has. + // It's possible for the request to be with a newer APNs device token, which should be + // honored. + FIRInstanceIDTokenInfo *cachedTokenInfo = + [self.tokenManager cachedTokenInfoWithAuthorizedEntity:authorizedEntity scope:scope]; + if (cachedTokenInfo) { + // Ensure that the cached token matches APNs data before returning it. + FIRInstanceIDAPNSInfo *optionsAPNSInfo = + [[FIRInstanceIDAPNSInfo alloc] initWithTokenOptionsDictionary:tokenOptions]; + // If either the APNs info is missing in both, or if they are an exact match, then we can + // use this cached token. + if ((!cachedTokenInfo.APNSInfo && !optionsAPNSInfo) || + [cachedTokenInfo.APNSInfo isEqualToAPNSInfo:optionsAPNSInfo]) { + newHandler(cachedTokenInfo.token, nil); + return; + } + } + + FIRInstanceID_WEAKIFY(self); + [self asyncLoadKeyPairWithHandler:^(FIRInstanceIDKeyPair *keyPair, NSError *error) { + FIRInstanceID_STRONGIFY(self); + + if (error) { + NSError *newError = + [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeInvalidKeyPair]; + newHandler(nil, newError); + + } else { + [self.tokenManager fetchNewTokenWithAuthorizedEntity:[authorizedEntity copy] + scope:[scope copy] + keyPair:keyPair + options:tokenOptions + handler:newHandler]; + } + }]; + }]; +} + +- (void)deleteTokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + handler:(FIRInstanceIDDeleteTokenHandler)handler { + _FIRInstanceIDDevAssert(handler != nil && [authorizedEntity length] && [scope length], + @"Invalid authorizedEntity or scope to delete token"); + + if (!handler) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeInstanceID001, + kFIRInstanceIDInvalidNilHandlerError); + } + + // comparing enums to ints directly throws a warning + FIRInstanceIDErrorCode noError = INT_MAX; + FIRInstanceIDErrorCode errorCode = noError; + + if (![authorizedEntity length]) { + errorCode = kFIRInstanceIDErrorCodeInvalidAuthorizedEntity; + } else if (![scope length]) { + errorCode = kFIRInstanceIDErrorCodeInvalidScope; + } else if (!self.keyPairStore) { + errorCode = kFIRInstanceIDErrorCodeInvalidStart; + } + + FIRInstanceIDDeleteTokenHandler newHandler = ^(NSError *error) { + // If a default token is deleted successfully, reset the defaultFCMToken too. + if (!error && [authorizedEntity isEqualToString:self.fcmSenderID] && + [scope isEqualToString:kFIRInstanceIDDefaultTokenScope]) { + self.defaultFCMToken = nil; + } + dispatch_async(dispatch_get_main_queue(), ^{ + handler(error); + }); + }; + + if (errorCode != noError) { + newHandler([NSError errorWithFIRInstanceIDErrorCode:errorCode]); + return; + } + + FIRInstanceID_WEAKIFY(self); + FIRInstanceIDAuthService *authService = self.tokenManager.authService; + [authService + fetchCheckinInfoWithHandler:^(FIRInstanceIDCheckinPreferences *preferences, NSError *error) { + FIRInstanceID_STRONGIFY(self); + if (error) { + newHandler(error); + return; + } + + FIRInstanceID_WEAKIFY(self); + [self asyncLoadKeyPairWithHandler:^(FIRInstanceIDKeyPair *keyPair, NSError *error) { + FIRInstanceID_STRONGIFY(self); + if (error) { + NSError *newError = + [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeInvalidKeyPair]; + newHandler(newError); + + } else { + [self.tokenManager deleteTokenWithAuthorizedEntity:authorizedEntity + scope:scope + keyPair:keyPair + handler:newHandler]; + } + }]; + }]; +} + +- (void)asyncLoadKeyPairWithHandler:(FIRInstanceIDKeyPairHandler)handler { + FIRInstanceID_WEAKIFY(self); + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + FIRInstanceID_STRONGIFY(self); + + NSError *error = nil; + FIRInstanceIDKeyPair *keyPair = [self.keyPairStore loadKeyPairWithError:&error]; + dispatch_async(dispatch_get_main_queue(), ^{ + if (error) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeInstanceID002, + @"Failed to retreieve keyPair %@", error); + if (handler) { + handler(nil, error); + } + } else if (!keyPair && !error) { + if (handler) { + handler(nil, + [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeInvalidKeyPair]); + } + } else { + if (handler) { + handler(keyPair, nil); + } + } + }); + }); +} + +#pragma mark - Identity + +- (void)getIDWithHandler:(FIRInstanceIDHandler)handler { + _FIRInstanceIDDevAssert(handler, @"Invalid nil handler to getIdentity"); + + if (!handler) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeInstanceID003, + kFIRInstanceIDInvalidNilHandlerError); + return; + } + + void (^callHandlerOnMainThread)(NSString *, NSError *) = ^(NSString *identity, NSError *error) { + dispatch_async(dispatch_get_main_queue(), ^{ + handler(identity, error); + }); + }; + + if (!self.keyPairStore) { + NSError *error = [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeInvalidStart]; + callHandlerOnMainThread(nil, error); + return; + } + + FIRInstanceID_WEAKIFY(self); + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + FIRInstanceID_STRONGIFY(self); + NSError *error; + NSString *appIdentity = [self.keyPairStore appIdentityWithError:&error]; + // When getID is explicitly called, trigger getToken to make sure token always exists. + // This is to avoid ID conflict (ID is not checked for conflict until we generate a token) + if (appIdentity) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + [self token]; +#pragma clang diagnostic pop + } + callHandlerOnMainThread(appIdentity, error); + }); +} + +- (void)deleteIDWithHandler:(FIRInstanceIDDeleteHandler)handler { + _FIRInstanceIDDevAssert(handler, @"Invalid nil handler to delete Identity"); + + if (!handler) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeInstanceID004, + kFIRInstanceIDInvalidNilHandlerError); + return; + } + + void (^callHandlerOnMainThread)(NSError *) = ^(NSError *error) { + if ([NSThread isMainThread]) { + handler(error); + return; + } + dispatch_async(dispatch_get_main_queue(), ^{ + handler(error); + }); + }; + + if (!self.keyPairStore) { + FIRInstanceIDErrorCode error = kFIRInstanceIDErrorCodeInvalidStart; + callHandlerOnMainThread([NSError errorWithFIRInstanceIDErrorCode:error]); + return; + } + + FIRInstanceID_WEAKIFY(self); + void (^deleteTokensHandler)(NSError *) = ^void(NSError *error) { + FIRInstanceID_STRONGIFY(self); + if (error) { + callHandlerOnMainThread(error); + return; + } + [self deleteIdentityWithHandler:^(NSError *error) { + callHandlerOnMainThread(error); + }]; + }; + + [self asyncLoadKeyPairWithHandler:^(FIRInstanceIDKeyPair *keyPair, NSError *error) { + FIRInstanceID_STRONGIFY(self); + if (error) { + NSError *newError = + [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeInvalidKeyPair]; + callHandlerOnMainThread(newError); + } else { + [self.tokenManager deleteAllTokensWithKeyPair:keyPair handler:deleteTokensHandler]; + } + }]; +} + +- (void)notifyIdentityReset { + [self deleteIdentityWithHandler:nil]; +} + +// Delete all the local cache checkin, IID and token. +- (void)deleteIdentityWithHandler:(FIRInstanceIDDeleteHandler)handler { + // Delete tokens. + [self.tokenManager deleteAllTokensLocallyWithHandler:^(NSError *deleteTokenError) { + // Reset FCM token. + self.defaultFCMToken = nil; + if (deleteTokenError) { + if (handler) { + handler(deleteTokenError); + } + return; + } + + // Delete Instance ID. + [self.keyPairStore + deleteSavedKeyPairWithSubtype:kFIRInstanceIDKeyPairSubType + handler:^(NSError *error) { + NSError *deletePlistError; + [self.keyPairStore + removeKeyPairCreationTimePlistWithError:&deletePlistError]; + if (error || deletePlistError) { + if (handler) { + // Prefer to use the delete Instance ID error. + error = [NSError + errorWithFIRInstanceIDErrorCode: + kFIRInstanceIDErrorCodeUnknown + userInfo:@{ + NSUnderlyingErrorKey : error + ? error + : deletePlistError + }]; + handler(error); + } + return; + } + // Delete checkin. + [self.tokenManager.authService + resetCheckinWithHandler:^(NSError *error) { + if (error) { + if (handler) { + handler(error); + } + return; + } + // Only request new token if FCM auto initialization is + // enabled. + if ([self isFCMAutoInitEnabled]) { + // Deletion succeeds! Requesting new checkin, IID and token. + // TODO(chliangGoogle) see if dispatch_after is necessary + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, + (int64_t)(0.5 * NSEC_PER_SEC)), + dispatch_get_main_queue(), ^{ + [self fetchDefaultToken]; + }); + } + if (handler) { + handler(nil); + } + }]; + }]; + }]; +} + +#pragma mark - Config + ++ (void)load { + [FIRApp registerInternalLibrary:(Class)self + withName:@"fire-iid" + withVersion:FIRInstanceIDCurrentLibraryVersion()]; +} + ++ (nonnull NSArray *)componentsToRegister { + FIRComponentCreationBlock creationBlock = + ^id _Nullable(FIRComponentContainer *container, BOOL *isCacheable) { + // Ensure it's cached so it returns the same instance every time instanceID is called. + *isCacheable = YES; + FIRInstanceID *instanceID = [[FIRInstanceID alloc] initPrivately]; + [instanceID start]; + return instanceID; + }; + FIRComponent *instanceIDProvider = + [FIRComponent componentWithProtocol:@protocol(FIRInstanceIDInstanceProvider) + instantiationTiming:FIRInstantiationTimingLazy + dependencies:@[] + creationBlock:creationBlock]; + return @[ instanceIDProvider ]; +} + ++ (void)configureWithApp:(FIRApp *)app { + if (!app.isDefaultApp) { + // Only configure for the default FIRApp. + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeFIRApp002, + @"Firebase Instance ID only works with the default app."); + return; + } + [[FIRInstanceID instanceID] configureInstanceIDWithOptions:app.options app:app]; +} + +- (void)configureInstanceIDWithOptions:(FIROptions *)options app:(FIRApp *)firApp { + NSString *GCMSenderID = options.GCMSenderID; + if (!GCMSenderID.length) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeFIRApp000, + @"Firebase not set up correctly, nil or empty senderID."); + [FIRInstanceID exitWithReason:@"GCM_SENDER_ID must not be nil or empty." forFirebaseApp:firApp]; + return; + } + + self.fcmSenderID = GCMSenderID; + self.firebaseAppID = firApp.options.googleAppID; + + // FCM generates a FCM token during app start for sending push notification to device. + // This is not needed for app extension. + if (![GULAppEnvironmentUtil isAppExtension]) { + [self didCompleteConfigure]; + } +} + ++ (NSError *)configureErrorWithReason:(nonnull NSString *)reason { + NSString *description = + [NSString stringWithFormat:@"Configuration failed for service %@.", kFIRIIDServiceInstanceID]; + if (!reason.length) { + reason = @"Unknown reason"; + } + + NSDictionary *userInfo = + @{NSLocalizedDescriptionKey : description, NSLocalizedFailureReasonErrorKey : reason}; + + return [NSError errorWithDomain:kFIRIIDErrorDomain + code:kFIRIIDErrorCodeInstanceIDFailed + userInfo:userInfo]; +} + +// If the firebaseApp is available we should send logs for the error through it before +// raising an exception. ++ (void)exitWithReason:(nonnull NSString *)reason forFirebaseApp:(FIRApp *)firebaseApp { + [firebaseApp sendLogsWithServiceName:kFIRIIDServiceInstanceID + version:FIRInstanceIDCurrentLibraryVersion() + error:[self configureErrorWithReason:reason]]; + + [NSException raise:kFIRIIDErrorDomain + format:@"Could not configure Firebase InstanceID. %@", reason]; +} + +// This is used to start any operations when we receive FirebaseSDK setup notification +// from FIRCore. +- (void)didCompleteConfigure { + NSString *cachedToken = [self cachedTokenIfAvailable]; + // When there is a cached token, do the token refresh. + if (cachedToken) { + // Clean up expired tokens by checking the token refresh policy. + if ([self.tokenManager checkForTokenRefreshPolicy]) { + // Default token is expired, fetch default token from server. + [self fetchDefaultToken]; + } + // Notify FCM with the default token. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + self.defaultFCMToken = [self token]; +#pragma clang diagnostic pop + } else if ([self isFCMAutoInitEnabled]) { + // When there is no cached token, must check auto init is enabled. + // If it's disabled, don't initiate token generation/refresh. + // If no cache token and auto init is enabled, fetch a token from server. + [self fetchDefaultToken]; + // Notify FCM with the default token. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + self.defaultFCMToken = [self token]; +#pragma clang diagnostic pop + } + // ONLY checkin when auto data collection is turned on. + if ([self isFCMAutoInitEnabled]) { + [self.tokenManager.authService scheduleCheckin:YES]; + } +} + +- (BOOL)isFCMAutoInitEnabled { + Class messagingClass = NSClassFromString(kFIRInstanceIDFCMSDKClassString); + // Firebase Messaging is not installed, auto init should be disabled since it's for FCM. + if (!messagingClass) { + return NO; + } + + // Messaging doesn't have the singleton method, auto init should be enabled since FCM exists. + SEL instanceSelector = NSSelectorFromString(kFIRInstanceIDFCMSelectorInstance); + if (![messagingClass respondsToSelector:instanceSelector]) { + return YES; + } + + // Get FIRMessaging shared instance. + IMP messagingInstanceIMP = [messagingClass methodForSelector:instanceSelector]; + id (*getMessagingInstance)(id, SEL) = (void *)messagingInstanceIMP; + id messagingInstance = getMessagingInstance(messagingClass, instanceSelector); + + // Messaging doesn't have the property, auto init should be enabled since FCM exists. + SEL autoInitSelector = NSSelectorFromString(kFIRInstanceIDFCMSelectorAutoInitEnabled); + if (![messagingInstance respondsToSelector:autoInitSelector]) { + return YES; + } + + // Get autoInitEnabled method. + IMP isAutoInitEnabledIMP = [messagingInstance methodForSelector:autoInitSelector]; + BOOL (*isAutoInitEnabled)(id, SEL) = (BOOL(*)(id, SEL))isAutoInitEnabledIMP; + + // Check FCM's isAutoInitEnabled property. + return isAutoInitEnabled(messagingInstance, autoInitSelector); +} + +// Actually makes InstanceID instantiate both the IID and Token-related subsystems. +- (void)start { + if (![FIRInstanceIDStore hasSubDirectory:kFIRInstanceIDSubDirectoryName]) { + [FIRInstanceIDStore createSubDirectory:kFIRInstanceIDSubDirectoryName]; + } + + [self setupTokenManager]; + [self setupKeyPairManager]; + [self setupNotificationListeners]; +} + +// Creates the token manager, which is used for fetching, caching, and retrieving tokens. +- (void)setupTokenManager { + self.tokenManager = [[FIRInstanceIDTokenManager alloc] init]; +} + +// Creates a key pair manager, which stores the public/private keys needed to generate an +// application instance ID. +- (void)setupKeyPairManager { + self.keyPairStore = [[FIRInstanceIDKeyPairStore alloc] init]; + if ([self.keyPairStore invalidateKeyPairsIfNeeded]) { + // Reset tokens right away when keypair is deleted, otherwise async call can make first query + // of token happens before reset old tokens during app start. + // TODO(chliangGoogle): Delete all tokens on server too, using + // deleteAllTokensWithKeyPair:handler:. This requires actually retrieving the invalid keypair + // from Keychain, which is something that the key pair store does not currently do. + [self.tokenManager deleteAllTokensLocallyWithHandler:nil]; + } +} + +- (void)setupNotificationListeners { + // To prevent double notifications remove observer from all events during setup. + NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; + [center removeObserver:self]; + [center addObserver:self + selector:@selector(notifyIdentityReset) + name:kFIRInstanceIDIdentityInvalidatedNotification + object:nil]; + [center addObserver:self + selector:@selector(notifyAPNSTokenIsSet:) + name:kFIRInstanceIDAPNSTokenNotification + object:nil]; +} + +#pragma mark - Private Helpers +/// Maximum retry count to fetch the default token. ++ (int64_t)maxRetryCountForDefaultToken { + return kMaxRetryCountForDefaultToken; +} + +/// Minimum interval in seconds between retries to fetch the default token. ++ (int64_t)minIntervalForDefaultTokenRetry { + return kMinRetryIntervalForDefaultTokenInSeconds; +} + +/// Maximum retry interval between retries to fetch default token. ++ (int64_t)maxRetryIntervalForDefaultTokenInSeconds { + return kMaxRetryIntervalForDefaultTokenInSeconds; +} + +- (NSInteger)retryIntervalToFetchDefaultToken { + if (self.retryCountForDefaultToken >= [[self class] maxRetryCountForDefaultToken]) { + return (NSInteger)[[self class] maxRetryIntervalForDefaultTokenInSeconds]; + } + // exponential backoff with a fixed initial retry time + // 11s, 22s, 44s, 88s ... + int64_t minInterval = [[self class] minIntervalForDefaultTokenRetry]; + return (NSInteger)MIN( + (1 << self.retryCountForDefaultToken) + minInterval * self.retryCountForDefaultToken, + kMaxRetryIntervalForDefaultTokenInSeconds); +} + +- (void)fetchDefaultToken { + if (self.isFetchingDefaultToken) { + return; + } + + FIRInstanceID_WEAKIFY(self); + FIRInstanceIDTokenHandler handler = ^void(NSString *token, NSError *error) { + FIRInstanceID_STRONGIFY(self); + + if (error) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeInstanceID007, + @"Failed to retrieve the default FCM token after %ld retries", + (long)self.retryCountForDefaultToken); + } else { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeInstanceID008, @"Got default token %@", + token); + NSString *previousFCMToken = self.defaultFCMToken; + self.defaultFCMToken = token; + + // Only notify of token refresh if we have a new valid token that's different than before + if (self.defaultFCMToken.length && ![self.defaultFCMToken isEqualToString:previousFCMToken]) { + NSNotification *tokenRefreshNotification = + [NSNotification notificationWithName:kFIRInstanceIDTokenRefreshNotification + object:[self.defaultFCMToken copy]]; + [[NSNotificationQueue defaultQueue] enqueueNotification:tokenRefreshNotification + postingStyle:NSPostASAP]; + } + } + }; + + // Get a "*" token using this APNS token. + [self defaultTokenWithHandler:handler]; +} + +- (void)defaultTokenWithHandler:(FIRInstanceIDTokenHandler)handler { + if (self.isFetchingDefaultToken || self.isDefaultTokenFetchScheduled) { + return; + } + NSDictionary *instanceIDOptions = @{}; + BOOL hasFirebaseMessaging = NSClassFromString(kFIRInstanceIDFCMSDKClassString) != nil; + if (hasFirebaseMessaging && self.apnsTokenData) { + BOOL isSandboxApp = (self.apnsTokenType == FIRInstanceIDAPNSTokenTypeSandbox); + if (self.apnsTokenType == FIRInstanceIDAPNSTokenTypeUnknown) { + isSandboxApp = [self isSandboxApp]; + } + instanceIDOptions = @{ + kFIRInstanceIDTokenOptionsAPNSKey : self.apnsTokenData, + kFIRInstanceIDTokenOptionsAPNSIsSandboxKey : @(isSandboxApp), + }; + } + + FIRInstanceID_WEAKIFY(self); + FIRInstanceIDTokenHandler newHandler = ^void(NSString *token, NSError *error) { + FIRInstanceID_STRONGIFY(self); + self.isFetchingDefaultToken = NO; + + if (error) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeInstanceID009, + @"Failed to fetch default token %@", error); + + // This notification can be sent multiple times since we can't guarantee success at any point + // of time. + NSNotification *tokenFetchFailNotification = + [NSNotification notificationWithName:kFIRInstanceIDDefaultGCMTokenFailNotification + object:[error copy]]; + [[NSNotificationQueue defaultQueue] enqueueNotification:tokenFetchFailNotification + postingStyle:NSPostASAP]; + + self.retryCountForDefaultToken = (NSInteger)MIN(self.retryCountForDefaultToken + 1, + [[self class] maxRetryCountForDefaultToken]); + + // Do not retry beyond the maximum limit. + if (self.retryCountForDefaultToken < [[self class] maxRetryCountForDefaultToken]) { + NSInteger retryInterval = [self retryIntervalToFetchDefaultToken]; + FIRInstanceID_WEAKIFY(self); + self.isDefaultTokenFetchScheduled = YES; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(retryInterval * NSEC_PER_SEC)), + dispatch_get_main_queue(), ^{ + FIRInstanceID_STRONGIFY(self); + self.isDefaultTokenFetchScheduled = NO; + [self defaultTokenWithHandler:handler]; + }); + } else { + if (handler) { + handler(nil, error); + } + } + } else { + // If somebody updated IID with APNS token while our initial request did not have it + // set we need to update it on the server. + BOOL shouldNotifyHandler = YES; + NSData *deviceTokenInRequest = instanceIDOptions[kFIRInstanceIDTokenOptionsAPNSKey]; + BOOL isSandboxInRequest = + [instanceIDOptions[kFIRInstanceIDTokenOptionsAPNSIsSandboxKey] boolValue]; + // Note that APNSTupleStringInRequest will be nil if deviceTokenInRequest is nil + NSString *APNSTupleStringInRequest = FIRInstanceIDAPNSTupleStringForTokenAndServerType( + deviceTokenInRequest, isSandboxInRequest); + // If the APNs value either remained nil, or was the same non-nil value, the APNs value + // did not change. + BOOL APNSRemainedSameDuringFetch = + (self.APNSTupleString == nil && APNSTupleStringInRequest == nil) || + ([self.APNSTupleString isEqualToString:APNSTupleStringInRequest]); + if (!APNSRemainedSameDuringFetch && hasFirebaseMessaging) { + // APNs value did change mid-fetch, so the token should be re-fetched with the current APNs + // value. + self.isDefaultTokenFetchScheduled = YES; + // Wait to notify until we can modify this token with APNS (or receive a new token) + shouldNotifyHandler = NO; + FIRInstanceID_WEAKIFY(self); + dispatch_async(dispatch_get_main_queue(), ^{ + FIRInstanceID_STRONGIFY(self); + self.isDefaultTokenFetchScheduled = NO; + [self defaultTokenWithHandler:handler]; + }); + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeRefetchingTokenForAPNS, + @"Received APNS token while fetching default token. " + @"Refetching default token."); + } else { + FIRInstanceIDLoggerInfo(kFIRInstanceIDMessageCodeInstanceID010, + @"Successfully fetched default token."); + } + // Post the required notifications if somebody is waiting. + if (shouldNotifyHandler && handler) { + handler(token, nil); + } + } + }; + + self.isFetchingDefaultToken = YES; + [self tokenWithAuthorizedEntity:self.fcmSenderID + scope:kFIRInstanceIDDefaultTokenScope + options:instanceIDOptions + handler:newHandler]; +} + +#pragma mark - APNS Token +// This should only be triggered from FCM. +- (void)notifyAPNSTokenIsSet:(NSNotification *)notification { + NSData *token = notification.object; + if (!token || ![token isKindOfClass:[NSData class]]) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeInternal002, @"Invalid APNS token type %@", + NSStringFromClass([notification.object class])); + return; + } + NSInteger type = [notification.userInfo[kFIRInstanceIDAPNSTokenType] integerValue]; + + // The APNS token is being added, or has changed (rare) + if ([self.apnsTokenData isEqualToData:token]) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeInstanceID011, + @"Trying to reset APNS token to the same value. Will return"); + return; + } + // Use this token type for when we have to automatically fetch tokens in the future + self.apnsTokenType = type; + BOOL isSandboxApp = (type == FIRInstanceIDAPNSTokenTypeSandbox); + if (self.apnsTokenType == FIRInstanceIDAPNSTokenTypeUnknown) { + isSandboxApp = [self isSandboxApp]; + } + self.apnsTokenData = [token copy]; + self.APNSTupleString = FIRInstanceIDAPNSTupleStringForTokenAndServerType(token, isSandboxApp); + + // Pro-actively invalidate the default token, if the APNs change makes it + // invalid. Previously, we invalidated just before fetching the token. + NSArray *invalidatedTokens = + [self.tokenManager updateTokensToAPNSDeviceToken:self.apnsTokenData isSandbox:isSandboxApp]; + + // Re-fetch any invalidated tokens automatically, this time with the current APNs token, so that + // they are up-to-date. + if (invalidatedTokens.count > 0) { + FIRInstanceID_WEAKIFY(self); + [self asyncLoadKeyPairWithHandler:^(FIRInstanceIDKeyPair *keyPair, NSError *error) { + FIRInstanceID_STRONGIFY(self); + + NSMutableDictionary *tokenOptions = [@{ + kFIRInstanceIDTokenOptionsAPNSKey : self.apnsTokenData, + kFIRInstanceIDTokenOptionsAPNSIsSandboxKey : @(isSandboxApp) + } mutableCopy]; + if (self.firebaseAppID) { + tokenOptions[kFIRInstanceIDTokenOptionsFirebaseAppIDKey] = self.firebaseAppID; + } + + for (FIRInstanceIDTokenInfo *tokenInfo in invalidatedTokens) { + if ([tokenInfo.token isEqualToString:self.defaultFCMToken]) { + // We will perform a special fetch for the default FCM token, so that the delegate methods + // are called. For all others, we will do an internal re-fetch. + [self fetchDefaultToken]; + } else { + [self.tokenManager fetchNewTokenWithAuthorizedEntity:tokenInfo.authorizedEntity + scope:tokenInfo.scope + keyPair:keyPair + options:tokenOptions + handler:^(NSString *_Nullable token, + NSError *_Nullable error){ + + }]; + } + } + }]; + } +} + +- (BOOL)isSandboxApp { + static BOOL isSandboxApp = YES; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + isSandboxApp = ![self isProductionApp]; + }); + return isSandboxApp; +} + +- (BOOL)isProductionApp { + const BOOL defaultAppTypeProd = YES; + + NSError *error = nil; + + Class envClass = NSClassFromString(@"FIRAppEnvironmentUtil"); + SEL isSimulatorSelector = NSSelectorFromString(@"isSimulator"); + if ([envClass respondsToSelector:isSimulatorSelector]) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-performSelector-leaks" + if ([envClass performSelector:isSimulatorSelector]) { +#pragma clang diagnostic pop + [self logAPNSConfigurationError:@"Running InstanceID on a simulator doesn't have APNS. " + @"Use prod profile by default."]; + return defaultAppTypeProd; + } + } + + NSString *path = [[[NSBundle mainBundle] bundlePath] + stringByAppendingPathComponent:@"embedded.mobileprovision"]; + + // Apps distributed via AppStore or TestFlight use the Production APNS certificates. + SEL isFromAppStoreSelector = NSSelectorFromString(@"isFromAppStore"); + if ([envClass respondsToSelector:isFromAppStoreSelector]) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-performSelector-leaks" + if ([envClass performSelector:isFromAppStoreSelector]) { +#pragma clang diagnostic pop + return defaultAppTypeProd; + } + } + + SEL isAppStoreReceiptSandboxSelector = NSSelectorFromString(@"isAppStoreReceiptSandbox"); + if ([envClass respondsToSelector:isAppStoreReceiptSandboxSelector]) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-performSelector-leaks" + if ([envClass performSelector:isAppStoreReceiptSandboxSelector] && !path.length) { +#pragma clang diagnostic pop + // Distributed via TestFlight + return defaultAppTypeProd; + } + } + + NSMutableData *profileData = [NSMutableData dataWithContentsOfFile:path options:0 error:&error]; + + if (!profileData.length || error) { + NSString *errorString = + [NSString stringWithFormat:@"Error while reading embedded mobileprovision %@", error]; + [self logAPNSConfigurationError:errorString]; + return defaultAppTypeProd; + } + + // The "embedded.mobileprovision" sometimes contains characters with value 0, which signals the + // end of a c-string and halts the ASCII parser, or with value > 127, which violates strict 7-bit + // ASCII. Replace any 0s or invalid characters in the input. + uint8_t *profileBytes = (uint8_t *)profileData.bytes; + for (int i = 0; i < profileData.length; i++) { + uint8_t currentByte = profileBytes[i]; + if (!currentByte || currentByte > 127) { + profileBytes[i] = '.'; + } + } + + NSString *embeddedProfile = [[NSString alloc] initWithBytesNoCopy:profileBytes + length:profileData.length + encoding:NSASCIIStringEncoding + freeWhenDone:NO]; + + if (error || !embeddedProfile.length) { + NSString *errorString = + [NSString stringWithFormat:@"Error while reading embedded mobileprovision %@", error]; + [self logAPNSConfigurationError:errorString]; + return defaultAppTypeProd; + } + + NSScanner *scanner = [NSScanner scannerWithString:embeddedProfile]; + NSString *plistContents; + if ([scanner scanUpToString:@"" intoString:&plistContents]) { + plistContents = [plistContents stringByAppendingString:@""]; + } + } + + if (!plistContents.length) { + return defaultAppTypeProd; + } + + NSData *data = [plistContents dataUsingEncoding:NSUTF8StringEncoding]; + if (!data.length) { + [self logAPNSConfigurationError:@"Couldn't read plist fetched from embedded mobileprovision"]; + return defaultAppTypeProd; + } + + NSError *plistMapError; + id plistData = [NSPropertyListSerialization propertyListWithData:data + options:NSPropertyListImmutable + format:nil + error:&plistMapError]; + if (plistMapError || ![plistData isKindOfClass:[NSDictionary class]]) { + NSString *errorString = + [NSString stringWithFormat:@"Error while converting assumed plist to dict %@", + plistMapError.localizedDescription]; + [self logAPNSConfigurationError:errorString]; + return defaultAppTypeProd; + } + NSDictionary *plistMap = (NSDictionary *)plistData; + + if ([plistMap valueForKeyPath:@"ProvisionedDevices"]) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeInstanceID012, + @"Provisioning profile has specifically provisioned devices, " + @"most likely a Dev profile."); + } + + NSString *apsEnvironment = [plistMap valueForKeyPath:kEntitlementsAPSEnvironmentKey]; + NSString *debugString __unused = + [NSString stringWithFormat:@"APNS Environment in profile: %@", apsEnvironment]; + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeInstanceID013, @"%@", debugString); + + // No aps-environment in the profile. + if (!apsEnvironment.length) { + [self logAPNSConfigurationError:@"No aps-environment set. If testing on a device APNS is not " + @"correctly configured. Please recheck your provisioning " + @"profiles. If testing on a simulator this is fine since APNS " + @"doesn't work on the simulator."]; + return defaultAppTypeProd; + } + + if ([apsEnvironment isEqualToString:kAPSEnvironmentDevelopmentValue]) { + return NO; + } + + return defaultAppTypeProd; +} + +/// Log error messages only when Messaging exists in the pod. +- (void)logAPNSConfigurationError:(NSString *)errorString { + BOOL hasFirebaseMessaging = NSClassFromString(kFIRInstanceIDFCMSDKClassString) != nil; + if (hasFirebaseMessaging) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeInstanceID014, @"%@", errorString); + } else { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeInstanceID015, @"%@", errorString); + } +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAPNSInfo.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAPNSInfo.h new file mode 100644 index 0000000..92b2469 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAPNSInfo.h @@ -0,0 +1,64 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * Represents an APNS device token and whether its environment is for sandbox. + * It can read from and write to an NSDictionary for simple serialization. + */ +@interface FIRInstanceIDAPNSInfo : NSObject + +/// The APNs device token, provided by the OS to the application delegate +@property(nonatomic, readonly, strong) NSData *deviceToken; +/// Represents whether or not this is deviceToken is for the sandbox +/// environment, or production. +@property(nonatomic, readonly, getter=isSandbox) BOOL sandbox; + +/** + * Initializes the receiver with an APNs device token, and boolean + * representing whether that token is for the sandbox environment. + * + * @param deviceToken The APNs device token typically provided by the + * operating system. + * @param isSandbox YES if the APNs device token is for the sandbox + * environment, or NO if it is for production. + * @return An instance of FIRInstanceIDAPNSInfo. + */ +- (instancetype)initWithDeviceToken:(NSData *)deviceToken isSandbox:(BOOL)isSandbox; + +/** + * Initializes the receiver from a token options dictionary containing data + * within the `kFIRInstanceIDTokenOptionsAPNSKey` and + * `kFIRInstanceIDTokenOptionsAPNSIsSandboxKey` keys. The token should be an + * NSData blob, and the sandbox value should be an NSNumber + * representing a boolean value. + * + * @param dictionary A dictionary containing values under the keys + * `kFIRInstanceIDTokenOptionsAPNSKey` and + * `kFIRInstanceIDTokenOptionsAPNSIsSandboxKey`. + * @return An instance of FIRInstanceIDAPNSInfo, or nil if the + * dictionary data was invalid or missing. + */ +- (nullable instancetype)initWithTokenOptionsDictionary:(NSDictionary *)dictionary; + +- (BOOL)isEqualToAPNSInfo:(FIRInstanceIDAPNSInfo *)otherInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAPNSInfo.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAPNSInfo.m new file mode 100644 index 0000000..d1f9d08 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAPNSInfo.m @@ -0,0 +1,79 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDAPNSInfo.h" + +#import "FIRInstanceIDConstants.h" + +/// The key used to find the APNs device token in an archive. +NSString *const kFIRInstanceIDAPNSInfoTokenKey = @"device_token"; +/// The key used to find the sandbox value in an archive. +NSString *const kFIRInstanceIDAPNSInfoSandboxKey = @"sandbox"; + +@implementation FIRInstanceIDAPNSInfo + +- (instancetype)initWithDeviceToken:(NSData *)deviceToken isSandbox:(BOOL)isSandbox { + self = [super init]; + if (self) { + _deviceToken = [deviceToken copy]; + _sandbox = isSandbox; + } + return self; +} + +- (instancetype)initWithTokenOptionsDictionary:(NSDictionary *)dictionary { + id deviceToken = dictionary[kFIRInstanceIDTokenOptionsAPNSKey]; + if (![deviceToken isKindOfClass:[NSData class]]) { + return nil; + } + + id isSandbox = dictionary[kFIRInstanceIDTokenOptionsAPNSIsSandboxKey]; + if (![isSandbox isKindOfClass:[NSNumber class]]) { + return nil; + } + self = [super init]; + if (self) { + _deviceToken = (NSData *)deviceToken; + _sandbox = ((NSNumber *)isSandbox).boolValue; + } + return self; +} + +#pragma mark - NSCoding + +- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder { + id deviceToken = [aDecoder decodeObjectForKey:kFIRInstanceIDAPNSInfoTokenKey]; + if (![deviceToken isKindOfClass:[NSData class]]) { + return nil; + } + BOOL isSandbox = [aDecoder decodeBoolForKey:kFIRInstanceIDAPNSInfoSandboxKey]; + return [self initWithDeviceToken:(NSData *)deviceToken isSandbox:isSandbox]; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + [aCoder encodeObject:self.deviceToken forKey:kFIRInstanceIDAPNSInfoTokenKey]; + [aCoder encodeBool:self.sandbox forKey:kFIRInstanceIDAPNSInfoSandboxKey]; +} + +- (BOOL)isEqualToAPNSInfo:(FIRInstanceIDAPNSInfo *)otherInfo { + if ([super isEqual:otherInfo]) { + return YES; + } + return ([self.deviceToken isEqualToData:otherInfo.deviceToken] && + self.isSandbox == otherInfo.isSandbox); +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthKeyChain.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthKeyChain.h new file mode 100644 index 0000000..347ddda --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthKeyChain.h @@ -0,0 +1,98 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +extern NSString *__nonnull const kFIRInstanceIDKeychainWildcardIdentifier; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Wrapper around storing FCM auth data in iOS keychain. + */ +@interface FIRInstanceIDAuthKeychain : NSObject + +/** + * Designated Initializer. Init a generic `SecClassGenericPassword` keychain with `identifier` + * as the `kSecAttrGeneric`. + * + * @param identifier The generic attribute to be used by the keychain. + * + * @return A Keychain object with `kSecAttrGeneric` attribute set to identifier. + */ +- (instancetype)initWithIdentifier:(NSString *)identifier; + +/** + * Get keychain items matching the given service and account. The service and/or account + * can be a wildcard (`kFIRInstanceIDKeychainWildcardIdentifier`), which case the query + * will include all items matching any services and/or accounts. + * + * @param service The kSecAttrService used to save the password. Can be wildcard. + * @param account The kSecAttrAccount used to save the password. Can be wildcard. + * + * @return An array of |NSData|s matching the provided inputs. + */ +- (NSArray *)itemsMatchingService:(NSString *)service account:(NSString *)account; + +/** + * Get keychain item for a given service and account. + * + * @param service The kSecAttrService used to save the password. + * @param account The kSecAttrAccount used to save the password. + * + * @return A cached keychain item for a given account and service, or nil if it was not + * found or could not be retrieved. + */ +- (NSData *)dataForService:(NSString *)service account:(NSString *)account; + +/** + * Remove the cached items from the keychain matching the service, account and access group. + * In case the items do not exist, YES is returned but with a valid error object with code + * `errSecItemNotFound`. + * + * @param service The kSecAttrService used to save the password. + * @param account The kSecAttrAccount used to save the password. + * @param handler The callback handler which is invoked when the remove operation is complete, with + * an error if there is any. + */ +- (void)removeItemsMatchingService:(NSString *)service + account:(NSString *)account + handler:(nullable void (^)(NSError *error))handler; + +/** + * Set the data for a given service and account with a specific accessibility. If + * accessibility is NULL we use `kSecAttrAccessibleAlwaysThisDeviceOnly` which + * prevents backup and restore to iCloud, and works for app extension that can + * execute right after a device is restarted (and not unlocked). + * + * @param data The data to save. + * @param service The `kSecAttrService` used to save the password. + * @param accessibility The `kSecAttrAccessibility` used to save the password. If NULL + * set this to `kSecAttrAccessibleAlwaysThisDeviceOnly`. + * @param account The `kSecAttrAccount` used to save the password. + * @param handler The callback handler which is invoked when the add operation is complete, + * with an error if there is any. + * + */ +- (void)setData:(NSData *)data + forService:(NSString *)service + accessibility:(nullable CFTypeRef)accessibility + account:(NSString *)account + handler:(nullable void (^)(NSError *))handler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthKeyChain.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthKeyChain.m new file mode 100644 index 0000000..ad758da --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthKeyChain.m @@ -0,0 +1,219 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDAuthKeyChain.h" +#import "FIRInstanceIDKeychain.h" +#import "FIRInstanceIDLogger.h" + +/** + * The error type representing why we couldn't read data from the keychain. + */ +typedef NS_ENUM(int, FIRInstanceIDKeychainErrorType) { + kFIRInstanceIDKeychainErrorBadArguments = -1301, +}; + +NSString *const kFIRInstanceIDKeychainWildcardIdentifier = @"*"; + +@interface FIRInstanceIDAuthKeychain () + +@property(nonatomic, copy) NSString *generic; +// cachedKeychainData is keyed by service and account, the value is an array of NSData. +// It is used to cache the tokens per service, per account, as well as checkin data per service, +// per account inside the keychain. +@property(nonatomic, copy) + NSMutableDictionary *> *> + *cachedKeychainData; + +@end + +@implementation FIRInstanceIDAuthKeychain + +- (instancetype)initWithIdentifier:(NSString *)identifier { + self = [super init]; + if (self) { + _generic = [identifier copy]; + _cachedKeychainData = [[NSMutableDictionary alloc] init]; + } + return self; +} + ++ (NSMutableDictionary *)keychainQueryForService:(NSString *)service + account:(NSString *)account + generic:(NSString *)generic { + NSDictionary *query = @{(__bridge id)kSecClass : (__bridge id)kSecClassGenericPassword}; + + NSMutableDictionary *finalQuery = [NSMutableDictionary dictionaryWithDictionary:query]; + if ([generic length] && ![kFIRInstanceIDKeychainWildcardIdentifier isEqualToString:generic]) { + finalQuery[(__bridge NSString *)kSecAttrGeneric] = generic; + } + if ([account length] && ![kFIRInstanceIDKeychainWildcardIdentifier isEqualToString:account]) { + finalQuery[(__bridge NSString *)kSecAttrAccount] = account; + } + if ([service length] && ![kFIRInstanceIDKeychainWildcardIdentifier isEqualToString:service]) { + finalQuery[(__bridge NSString *)kSecAttrService] = service; + } + return finalQuery; +} + +- (NSMutableDictionary *)keychainQueryForService:(NSString *)service account:(NSString *)account { + return [[self class] keychainQueryForService:service account:account generic:self.generic]; +} + +- (NSArray *)itemsMatchingService:(NSString *)service account:(NSString *)account { + // If query wildcard service, it asks for all the results, which always query from keychain. + if (![service isEqualToString:kFIRInstanceIDKeychainWildcardIdentifier] && + ![account isEqualToString:kFIRInstanceIDKeychainWildcardIdentifier] && + _cachedKeychainData[service][account]) { + // As long as service, account array exist, even it's empty, it means we've queried it before, + // returns the cache value. + return _cachedKeychainData[service][account]; + } + + NSMutableDictionary *keychainQuery = [self keychainQueryForService:service account:account]; + + NSMutableArray *results; + keychainQuery[(__bridge id)kSecReturnData] = (__bridge id)kCFBooleanTrue; + keychainQuery[(__bridge id)kSecReturnAttributes] = (__bridge id)kCFBooleanTrue; + keychainQuery[(__bridge id)kSecMatchLimit] = (__bridge id)kSecMatchLimitAll; + // FIRInstanceIDKeychain should only take a query and return a result, will handle the query here. + CFArrayRef passwordInfos = [[FIRInstanceIDKeychain sharedInstance] itemWithQuery:keychainQuery]; + + if (!passwordInfos) { + // Nothing was found, simply return from this sync block. + // Make sure to label the cache entry empty, signaling that we've queried this entry. + if ([service isEqualToString:kFIRInstanceIDKeychainWildcardIdentifier] || + [account isEqualToString:kFIRInstanceIDKeychainWildcardIdentifier]) { + // Do not update cache if it's wildcard query. + return @[]; + } else if (_cachedKeychainData[service]) { + [_cachedKeychainData[service] setObject:@[] forKey:account]; + } else { + [_cachedKeychainData setObject:[@{account : @[]} mutableCopy] forKey:service]; + } + return @[]; + } + NSInteger numPasswords = CFArrayGetCount(passwordInfos); + results = [[NSMutableArray alloc] init]; + if (0 < numPasswords) { + for (NSUInteger i = 0; i < numPasswords; i++) { + NSDictionary *passwordInfo = [((__bridge NSArray *)passwordInfos) objectAtIndex:i]; + if (passwordInfo[(__bridge id)kSecValueData]) { + [results addObject:passwordInfo[(__bridge id)kSecValueData]]; + } + } + } + if (passwordInfos != NULL) { + CFRelease(passwordInfos); + } + + // We query the keychain because it didn't exist in cache, now query is done, update the result in + // the cache. + if ([service isEqualToString:kFIRInstanceIDKeychainWildcardIdentifier] || + [account isEqualToString:kFIRInstanceIDKeychainWildcardIdentifier]) { + // Do not update cache if it's wildcard query. + return [results copy]; + } else if (_cachedKeychainData[service]) { + [_cachedKeychainData[service] setObject:[results copy] forKey:account]; + } else { + NSMutableDictionary *entry = [@{account : [results copy]} mutableCopy]; + [_cachedKeychainData setObject:entry forKey:service]; + } + return [results copy]; +} + +- (NSData *)dataForService:(NSString *)service account:(NSString *)account { + NSArray *items = [self itemsMatchingService:service account:account]; + // If items is nil or empty, nil will be returned. + return items.firstObject; +} + +- (void)removeItemsMatchingService:(NSString *)service + account:(NSString *)account + handler:(void (^)(NSError *error))handler { + if ([service isEqualToString:kFIRInstanceIDKeychainWildcardIdentifier]) { + // Delete all keychain items. + _cachedKeychainData = [[NSMutableDictionary alloc] init]; + } else if ([account isEqualToString:kFIRInstanceIDKeychainWildcardIdentifier]) { + // Delete all entries under service, + if (_cachedKeychainData[service]) { + _cachedKeychainData[service] = [[NSMutableDictionary alloc] init]; + } + } else if (_cachedKeychainData[service]) { + // We should keep the service/account entry instead of nil so we know + // it's "empty entry" instead of "not query from keychain yet". + [_cachedKeychainData[service] setObject:@[] forKey:account]; + } else { + [_cachedKeychainData setObject:[@{account : @[]} mutableCopy] forKey:service]; + } + NSMutableDictionary *keychainQuery = [self keychainQueryForService:service account:account]; + [[FIRInstanceIDKeychain sharedInstance] removeItemWithQuery:keychainQuery handler:handler]; +} + +- (void)setData:(NSData *)data + forService:(NSString *)service + accessibility:(CFTypeRef)accessibility + account:(NSString *)account + handler:(void (^)(NSError *))handler { + if ([service isEqualToString:kFIRInstanceIDKeychainWildcardIdentifier] || + [account isEqualToString:kFIRInstanceIDKeychainWildcardIdentifier]) { + if (handler) { + handler([NSError errorWithDomain:kFIRInstanceIDKeychainErrorDomain + code:kFIRInstanceIDKeychainErrorBadArguments + userInfo:nil]); + } + return; + } + [self removeItemsMatchingService:service + account:account + handler:^(NSError *error) { + if (error) { + if (handler) { + handler(error); + } + return; + } + if (data.length > 0) { + NSMutableDictionary *keychainQuery = + [self keychainQueryForService:service account:account]; + keychainQuery[(__bridge id)kSecValueData] = data; + + if (accessibility != NULL) { + keychainQuery[(__bridge id)kSecAttrAccessible] = + (__bridge id)accessibility; + } else { + // Defaults to No backup + keychainQuery[(__bridge id)kSecAttrAccessible] = + (__bridge id)kSecAttrAccessibleAlwaysThisDeviceOnly; + } + [[FIRInstanceIDKeychain sharedInstance] + addItemWithQuery:keychainQuery + handler:handler]; + } + }]; + // Set the cache value. This must happen after removeItemsMatchingService:account:handler was + // called, so the cache value was reset before setting a new value. + if (_cachedKeychainData[service]) { + if (_cachedKeychainData[service][account]) { + _cachedKeychainData[service][account] = @[ data ]; + } else { + [_cachedKeychainData[service] setObject:@[ data ] forKey:account]; + } + } else { + [_cachedKeychainData setObject:[@{account : @[ data ]} mutableCopy] forKey:service]; + } +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthService.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthService.h new file mode 100644 index 0000000..1fb715e --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthService.h @@ -0,0 +1,91 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "FIRInstanceIDCheckinService.h" + +@class FIRInstanceIDCheckinPreferences; +@class FIRInstanceIDStore; + +/** + * FIRInstanceIDAuthService is responsible for retrieving, caching, and supplying checkin info + * for the rest of Instance ID. A checkin can be scheduled, meaning that it will keep retrying the + * checkin request until it is successful. A checkin can also be requested directly, with a + * completion handler. + */ +@interface FIRInstanceIDAuthService : NSObject + +/** + * Used only for testing. In addition to taking a store (for locally caching the checkin info), it + * also takes a checkinService. + */ +- (instancetype)initWithCheckinService:(FIRInstanceIDCheckinService *)checkinService + store:(FIRInstanceIDStore *)store; + +/** + * Initializes the auth service given a store (which provides the local caching of checkin info). + * This initializer will create its own instance of FIRInstanceIDCheckinService. + */ +- (instancetype)initWithStore:(FIRInstanceIDStore *)store; + +#pragma mark - Checkin Service + +/** + * Checks if the current deviceID and secret are valid or not. + * + * @return YES if the checkin credentials are valid else NO. + */ +- (BOOL)hasValidCheckinInfo; + +/** + * Fetch checkin info from the server. This would usually refresh the existing + * checkin credentials for the current app. + * + * @param handler The completion handler to invoke once the checkin info has been + * refreshed. + */ +- (void)fetchCheckinInfoWithHandler:(FIRInstanceIDDeviceCheckinCompletion)handler; + +/** + * Schedule checkin. Will hit the network only if the currently loaded checkin + * preferences are stale. + * + * @param immediately YES if we want it to be scheduled immediately else NO. + */ +- (void)scheduleCheckin:(BOOL)immediately; + +/** + * Returns the checkin preferences currently loaded in memory. The Checkin preferences + * can be either valid or invalid. + * + * @return The checkin preferences loaded in memory. + */ +- (FIRInstanceIDCheckinPreferences *)checkinPreferences; + +/** + * Cancels any ongoing checkin fetch, if any. + */ +- (void)stopCheckinRequest; + +/** + * Resets the checkin information. + * + * @param handler The callback handler which is invoked when checkin reset is complete, + * with an error if there is any. + */ +- (void)resetCheckinWithHandler:(void (^)(NSError *error))handler; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthService.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthService.m new file mode 100644 index 0000000..8c33c44 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDAuthService.m @@ -0,0 +1,302 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDAuthService.h" + +#import "FIRInstanceIDCheckinPreferences+Internal.h" +#import "FIRInstanceIDCheckinPreferences.h" +#import "FIRInstanceIDCheckinPreferences_Private.h" +#import "FIRInstanceIDConstants.h" +#import "FIRInstanceIDDefines.h" +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDStore.h" +#import "NSError+FIRInstanceID.h" + +// Max time interval between checkin retry in seconds. +static const int64_t kMaxCheckinRetryIntervalInSeconds = 1 << 5; + +@interface FIRInstanceIDAuthService () + +// Used to retrieve and cache the checkin info to disk and Keychain. +@property(nonatomic, readwrite, strong) FIRInstanceIDStore *store; +// Used to perform single checkin fetches. +@property(nonatomic, readwrite, strong) FIRInstanceIDCheckinService *checkinService; +// The current checkin info. It will be compared to what is retrieved to determine whether it is +// different than what is in the cache. +@property(nonatomic, readwrite, strong) FIRInstanceIDCheckinPreferences *checkinPreferences; + +// This array will track multiple handlers waiting for checkin to be performed. When a checkin +// request completes, all the handlers will be notified. +// Changes to the checkinHandlers array should happen in a thread-safe manner. +@property(nonatomic, readonly, strong) + NSMutableArray *checkinHandlers; + +// This is set to true if there is a checkin request in-flight. +@property(atomic, readwrite, assign) BOOL isCheckinInProgress; +// This timer is used a perform checkin retries. It is cancellable. +@property(atomic, readwrite, strong) NSTimer *scheduledCheckinTimer; +// The number of times checkin has been retried during a scheduled checkin. +@property(atomic, readwrite, assign) int checkinRetryCount; + +@end + +@implementation FIRInstanceIDAuthService + +- (instancetype)initWithCheckinService:(FIRInstanceIDCheckinService *)checkinService + store:(FIRInstanceIDStore *)store { + self = [super init]; + if (self) { + _store = store; + _checkinPreferences = [_store cachedCheckinPreferences]; + _checkinService = checkinService; + _checkinHandlers = [NSMutableArray array]; + } + return self; +} + +- (void)dealloc { + [_scheduledCheckinTimer invalidate]; +} + +- (instancetype)initWithStore:(FIRInstanceIDStore *)store { + FIRInstanceIDCheckinService *checkinService = [[FIRInstanceIDCheckinService alloc] init]; + return [self initWithCheckinService:checkinService store:store]; +} + +#pragma mark - Schedule Checkin + +- (void)scheduleCheckin:(BOOL)immediately { + // Checkin is still valid, so a remote checkin is not required. + if ([self.checkinPreferences hasValidCheckinInfo]) { + return; + } + + // Checkin is already scheduled, so this (non-immediate) request can be ignored. + if (!immediately && [self.scheduledCheckinTimer isValid]) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeAuthService000, + @"Checkin sync already scheduled. Will not schedule."); + return; + } + + if (immediately) { + [self performScheduledCheckin]; + } else { + int64_t checkinRetryDuration = [self calculateNextCheckinRetryIntervalInSeconds]; + [self startCheckinTimerWithDuration:(NSTimeInterval)checkinRetryDuration]; + } +} + +- (void)startCheckinTimerWithDuration:(NSTimeInterval)timerDuration { + self.scheduledCheckinTimer = + [NSTimer scheduledTimerWithTimeInterval:timerDuration + target:self + selector:@selector(onScheduledCheckinTimerFired:) + userInfo:nil + repeats:NO]; + // Add some tolerance to the timer, to allow iOS to be more flexible with this timer + self.scheduledCheckinTimer.tolerance = 0.5; +} + +- (void)clearScheduledCheckinTimer { + [self.scheduledCheckinTimer invalidate]; + self.scheduledCheckinTimer = nil; +} + +- (void)onScheduledCheckinTimerFired:(NSTimer *)timer { + [self performScheduledCheckin]; +} + +- (void)performScheduledCheckin { + // No checkin scheduled as of now. + [self clearScheduledCheckinTimer]; + + // Checkin is still valid, so a remote checkin is not required. + if ([self.checkinPreferences hasValidCheckinInfo]) { + return; + } + + FIRInstanceID_WEAKIFY(self); + [self + fetchCheckinInfoWithHandler:^(FIRInstanceIDCheckinPreferences *preferences, NSError *error) { + FIRInstanceID_STRONGIFY(self); + self.checkinRetryCount++; + + if (error) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeAuthService001, @"Checkin error %@.", + error); + + dispatch_async(dispatch_get_main_queue(), ^{ + // Schedule another checkin + [self scheduleCheckin:NO]; + }); + + } else { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeAuthService002, @"Checkin success."); + } + }]; +} + +- (int64_t)calculateNextCheckinRetryIntervalInSeconds { + // persistent failures can lead to overflow prevent that. + if (self.checkinRetryCount >= 10) { + return kMaxCheckinRetryIntervalInSeconds; + } + return MIN(1 << self.checkinRetryCount, kMaxCheckinRetryIntervalInSeconds); +} + +#pragma mark - Checkin Service + +- (BOOL)hasValidCheckinInfo { + return [self.checkinPreferences hasValidCheckinInfo]; +} + +- (void)fetchCheckinInfoWithHandler:(nonnull FIRInstanceIDDeviceCheckinCompletion)handler { + // Perform any changes to self.checkinHandlers and _isCheckinInProgress in a thread-safe way. + @synchronized(self) { + [self.checkinHandlers addObject:handler]; + + if (_isCheckinInProgress) { + // Nothing more to do until our checkin request is done + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeAuthServiceCheckinInProgress, + @"Checkin is in progress\n"); + return; + } + } + + // Checkin is still valid, so a remote checkin is not required. + if ([self.checkinPreferences hasValidCheckinInfo]) { + [self notifyCheckinHandlersWithCheckin:self.checkinPreferences error:nil]; + return; + } + + @synchronized(self) { + _isCheckinInProgress = YES; + } + [self.checkinService + checkinWithExistingCheckin:self.checkinPreferences + completion:^(FIRInstanceIDCheckinPreferences *checkinPreferences, + NSError *error) { + @synchronized(self) { + self->_isCheckinInProgress = NO; + } + if (error) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeAuthService003, + @"Failed to checkin device %@", error); + [self notifyCheckinHandlersWithCheckin:nil error:error]; + return; + } + + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeAuthService004, + @"Successfully got checkin credentials"); + BOOL hasSameCachedPreferences = + [self cachedCheckinMatchesCheckin:checkinPreferences]; + checkinPreferences.hasPreCachedAuthCredentials = hasSameCachedPreferences; + + // Update to the most recent checkin preferences + self.checkinPreferences = checkinPreferences; + + // Save the checkin info to disk + // Keychain might not be accessible, so confirm that checkin preferences can + // be saved + [self.store + saveCheckinPreferences:checkinPreferences + handler:^(NSError *checkinSaveError) { + if (checkinSaveError && !hasSameCachedPreferences) { + // The checkin info was new, but it couldn't be + // written to the Keychain. Delete any stuff that was + // cached in memory. This doesn't delete any + // previously persisted preferences. + FIRInstanceIDLoggerError( + kFIRInstanceIDMessageCodeService004, + @"Unable to save checkin info, resetting " + @"checkin preferences " + "in memory."); + [checkinPreferences reset]; + [self + notifyCheckinHandlersWithCheckin:nil + error: + checkinSaveError]; + } else { + // The checkin is either new, or it was the same (and + // it couldn't be saved). Either way, report that the + // checkin preferences were received successfully. + [self notifyCheckinHandlersWithCheckin: + checkinPreferences + error:nil]; + if (!hasSameCachedPreferences) { + // Checkin is new. + // Notify any listeners that might be waiting for + // checkin to be fetched, such as Firebase + // Messaging (for its MCS connection). + dispatch_async(dispatch_get_main_queue(), ^{ + [[NSNotificationCenter defaultCenter] + postNotificationName: + kFIRInstanceIDCheckinFetchedNotification + object:nil]; + }); + } + } + }]; + }]; +} + +- (FIRInstanceIDCheckinPreferences *)checkinPreferences { + return _checkinPreferences; +} + +- (void)stopCheckinRequest { + [self.checkinService stopFetching]; +} + +- (void)resetCheckinWithHandler:(void (^)(NSError *error))handler { + [self.store removeCheckinPreferencesWithHandler:^(NSError *error) { + if (!error) { + self.checkinPreferences = nil; + } + if (handler) { + handler(error); + } + }]; +} + +#pragma mark - Private + +/** + * Goes through the current list of checkin handlers and fires them with the same checkin and/or + * error info. The checkin handlers will get cleared after. + */ +- (void)notifyCheckinHandlersWithCheckin:(nullable FIRInstanceIDCheckinPreferences *)checkin + error:(nullable NSError *)error { + @synchronized(self) { + for (FIRInstanceIDDeviceCheckinCompletion handler in self.checkinHandlers) { + handler(checkin, error); + } + [self.checkinHandlers removeAllObjects]; + } +} + +/** + * Given a |checkin|, it will compare it to the current checkinPreferences to see if the + * deviceID and secretToken are the same. + */ +- (BOOL)cachedCheckinMatchesCheckin:(FIRInstanceIDCheckinPreferences *)checkin { + if (self.checkinPreferences && checkin) { + return ([self.checkinPreferences.deviceID isEqualToString:checkin.deviceID] && + [self.checkinPreferences.secretToken isEqualToString:checkin.secretToken]); + } + return NO; +} +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.h new file mode 100644 index 0000000..bccaced --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.h @@ -0,0 +1,81 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface FIRInstanceIDBackupExcludedPlist : NSObject + +/** + * Caches the plist contents in memory so we don't hit the disk each time we want + * to query something in the plist. This is loaded lazily i.e. if you write to the + * plist the contents you want to write will be stored here if the write was + * successful. The other case where it is loaded is if you read the plist contents + * by calling `contentAsDictionary`. + * + * In case you write to the plist and then try to read the file using + * `contentAsDictionary` we would just return the cachedPlistContents since it would + * represent the disk contents. + */ +@property(nonatomic, readonly, strong) NSDictionary *cachedPlistContents; + +/** + * Init a backup excluded plist file. + * + * @param fileName The filename for the plist file. + * @param subDirectory The subdirectory in Application Support to save the plist. + * + * @return Helper which allows to read write data to a backup excluded plist. + */ +- (instancetype)initWithFileName:(NSString *)fileName subDirectory:(NSString *)subDirectory; + +/** + * Write dictionary data to the backup excluded plist file. If the file does not exist + * it would be created before writing to it. + * + * @param dict The data to be written to the plist. + * @param error The error object if any while writing the data. + * + * @return YES if the write was successful else NO. + */ +- (BOOL)writeDictionary:(NSDictionary *)dict error:(NSError **)error; + +/** + * Delete the backup excluded plist created with the above filename. + * + * @param error The error object if any while deleting the file. + * + * @return YES If the delete was successful else NO. + */ +- (BOOL)deleteFile:(NSError **)error; + +/** + * The contents of the plist file. We also store the contents of the file in-memory. + * If the in-memory contents are valid we return the in-memory contents else we read + * the file from disk. + * + * @return A dictionary object that contains the contents of the plist file if the file + * exists else nil. + */ +- (NSDictionary *)contentAsDictionary; + +/** + * Check if the plist exists on the disk or not. + * + * @return YES if the file exists on the disk else NO. + */ +- (BOOL)doesFileExist; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.m new file mode 100644 index 0000000..2c32222 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.m @@ -0,0 +1,206 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDBackupExcludedPlist.h" + +#import "FIRInstanceIDDefines.h" +#import "FIRInstanceIDLogger.h" + +typedef enum : NSUInteger { + FIRInstanceIDPlistDirectoryUnknown, + FIRInstanceIDPlistDirectoryDocuments, + FIRInstanceIDPlistDirectoryApplicationSupport, +} FIRInstanceIDPlistDirectory; + +@interface FIRInstanceIDBackupExcludedPlist () + +@property(nonatomic, readwrite, copy) NSString *fileName; +@property(nonatomic, readwrite, copy) NSString *subDirectoryName; +@property(nonatomic, readwrite, assign) BOOL fileInStandardDirectory; + +@property(nonatomic, readwrite, strong) NSDictionary *cachedPlistContents; + +@end + +@implementation FIRInstanceIDBackupExcludedPlist + +- (instancetype)initWithFileName:(NSString *)fileName subDirectory:(NSString *)subDirectory { + self = [super init]; + if (self) { + _fileName = [fileName copy]; + _subDirectoryName = [subDirectory copy]; +#if TARGET_OS_IOS + _fileInStandardDirectory = [self moveToApplicationSupportSubDirectory:subDirectory]; +#else + // For tvOS and macOS, we never store the content in document folder, so + // the migration is unnecessary. + _fileInStandardDirectory = YES; +#endif + } + return self; +} + +- (BOOL)writeDictionary:(NSDictionary *)dict error:(NSError **)error { + NSString *path = [self plistPathInDirectory:[self plistDirectory]]; + if (![dict writeToFile:path atomically:YES]) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeBackupExcludedPlist000, + @"Failed to write to %@.plist", self.fileName); + return NO; + } + + // Successfully wrote contents -- change the in-memory contents + self.cachedPlistContents = [dict copy]; + + _FIRInstanceIDDevAssert([[NSFileManager defaultManager] fileExistsAtPath:path], + @"Error writing data to non-backed up plist %@.plist", self.fileName); + + NSURL *URL = [NSURL fileURLWithPath:path]; + if (error) { + *error = nil; + } + + NSDictionary *preferences = [URL resourceValuesForKeys:@[ NSURLIsExcludedFromBackupKey ] + error:error]; + if ([preferences[NSURLIsExcludedFromBackupKey] boolValue]) { + return YES; + } + + BOOL success = [URL setResourceValue:@(YES) forKey:NSURLIsExcludedFromBackupKey error:error]; + if (!success) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeBackupExcludedPlist001, + @"Error excluding %@ from backup, %@", [URL lastPathComponent], + error ? *error : @""); + } + return success; +} + +- (BOOL)deleteFile:(NSError **)error { + BOOL success = YES; + NSString *path = [self plistPathInDirectory:[self plistDirectory]]; + if ([[NSFileManager defaultManager] fileExistsAtPath:path]) { + success = [[NSFileManager defaultManager] removeItemAtPath:path error:error]; + } + // remove the in-memory contents + self.cachedPlistContents = nil; + return success; +} + +- (NSDictionary *)contentAsDictionary { + if (!self.cachedPlistContents) { + NSString *path = [self plistPathInDirectory:[self plistDirectory]]; + if ([[NSFileManager defaultManager] fileExistsAtPath:path]) { + self.cachedPlistContents = [[NSDictionary alloc] initWithContentsOfFile:path]; + } + } + return self.cachedPlistContents; +} + +- (BOOL)moveToApplicationSupportSubDirectory:(NSString *)subDirectoryName { + NSArray *directoryPaths = + NSSearchPathForDirectoriesInDomains([self supportedDirectory], NSUserDomainMask, YES); + // This only going to happen inside iOS so it is an applicationSupportDirectory. + NSString *applicationSupportDirPath = directoryPaths.lastObject; + NSArray *components = @[ applicationSupportDirPath, subDirectoryName ]; + NSString *subDirectoryPath = [NSString pathWithComponents:components]; + BOOL hasSubDirectory; + if (![[NSFileManager defaultManager] fileExistsAtPath:subDirectoryPath + isDirectory:&hasSubDirectory]) { + // Cannot move to non-existent directory + return NO; + } + + if ([self doesFileExistInDirectory:FIRInstanceIDPlistDirectoryDocuments]) { + NSString *oldPlistPath = [self plistPathInDirectory:FIRInstanceIDPlistDirectoryDocuments]; + NSString *newPlistPath = + [self plistPathInDirectory:FIRInstanceIDPlistDirectoryApplicationSupport]; + if ([self doesFileExistInDirectory:FIRInstanceIDPlistDirectoryApplicationSupport]) { + // File exists in both Documents and ApplicationSupport + return NO; + } + NSError *moveError; + if (![[NSFileManager defaultManager] moveItemAtPath:oldPlistPath + toPath:newPlistPath + error:&moveError]) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeBackupExcludedPlist002, + @"Failed to move file %@ from %@ to %@. Error: %@", self.fileName, + oldPlistPath, newPlistPath, moveError); + return NO; + } + } + // We moved the file if it existed, otherwise we didn't need to do anything + return YES; +} + +- (BOOL)doesFileExist { + return [self doesFileExistInDirectory:[self plistDirectory]]; +} + +#pragma mark - Private + +- (FIRInstanceIDPlistDirectory)plistDirectory { + if (_fileInStandardDirectory) { + return FIRInstanceIDPlistDirectoryApplicationSupport; + } else { + return FIRInstanceIDPlistDirectoryDocuments; + }; +} + +- (NSString *)plistPathInDirectory:(FIRInstanceIDPlistDirectory)directory { + return [self pathWithName:self.fileName inDirectory:directory]; +} + +- (NSString *)pathWithName:(NSString *)plistName + inDirectory:(FIRInstanceIDPlistDirectory)directory { + NSArray *directoryPaths; + NSArray *components = @[]; + NSString *plistNameWithExtension = [NSString stringWithFormat:@"%@.plist", plistName]; + switch (directory) { + case FIRInstanceIDPlistDirectoryDocuments: + directoryPaths = + NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + components = @[ directoryPaths.lastObject, plistNameWithExtension ]; + break; + + case FIRInstanceIDPlistDirectoryApplicationSupport: + directoryPaths = + NSSearchPathForDirectoriesInDomains([self supportedDirectory], NSUserDomainMask, YES); + components = @[ directoryPaths.lastObject, _subDirectoryName, plistNameWithExtension ]; + break; + + default: + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeBackupExcludedPlistInvalidPlistEnum, + @"Invalid plist directory type: %lu", (unsigned long)directory); + NSAssert(NO, @"Invalid plist directory type: %lu", (unsigned long)directory); + break; + } + + return [NSString pathWithComponents:components]; +} + +- (BOOL)doesFileExistInDirectory:(FIRInstanceIDPlistDirectory)directory { + NSString *path = [self plistPathInDirectory:directory]; + return [[NSFileManager defaultManager] fileExistsAtPath:path]; +} + +- (NSSearchPathDirectory)supportedDirectory { +#if TARGET_OS_TV + return NSCachesDirectory; +#else + return NSApplicationSupportDirectory; +#endif +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h new file mode 100644 index 0000000..a62fad1 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h @@ -0,0 +1,64 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDCheckinPreferences.h" + +@interface FIRInstanceIDCheckinPreferences (Internal) + +/** + * Parse the checkin auth credentials saved in the Keychain to initialize checkin + * preferences. + * + * @param keychainContent The checkin auth credentials saved in the Keychain. + * + * @return A valid checkin preferences object if the checkin auth credentials in the + * keychain can be parsed successfully else nil. + */ ++ (FIRInstanceIDCheckinPreferences *)preferencesFromKeychainContents:(NSString *)keychainContent; + +/** + * Default initializer for InstanceID checkin preferences. + * + * @param deviceID The deviceID for the app. + * @param secretToken The secret token the app uses to authenticate with the server. + * + * @return A checkin preferences object with given deviceID and secretToken. + */ +- (instancetype)initWithDeviceID:(NSString *)deviceID secretToken:(NSString *)secretToken; + +/** + * Update checkin preferences from the preferences dict persisted as a plist. The dict contains + * all the checkin preferences retrieved from the server except the deviceID and secret which + * are stored in the Keychain. + * + * @param checkinPlistContent The checkin preferences saved in a plist on the disk. + */ +- (void)updateWithCheckinPlistContents:(NSDictionary *)checkinPlistContent; + +/** + * Reset the current checkin preferences object. + */ +- (void)reset; + +/** + * The string that contains the checkin auth credentials i.e. deviceID and secret. This + * needs to be stored in the Keychain. + * + * @return The checkin auth credential string containing the deviceID and secret. + */ +- (NSString *)checkinKeychainContent; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.m new file mode 100644 index 0000000..88cc40a --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.m @@ -0,0 +1,112 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDCheckinPreferences+Internal.h" + +#import "FIRInstanceIDCheckinService.h" +#import "FIRInstanceIDUtilities.h" + +static NSString *const kCheckinKeychainContentSeparatorString = @"|"; + +@interface FIRInstanceIDCheckinPreferences () + +@property(nonatomic, readwrite, copy) NSString *deviceID; +@property(nonatomic, readwrite, copy) NSString *secretToken; +@property(nonatomic, readwrite, copy) NSString *digest; +@property(nonatomic, readwrite, copy) NSString *versionInfo; +@property(nonatomic, readwrite, copy) NSString *deviceDataVersion; + +@property(nonatomic, readwrite, strong) NSMutableDictionary *gServicesData; +@property(nonatomic, readwrite, assign) int64_t lastCheckinTimestampMillis; + +@end + +@implementation FIRInstanceIDCheckinPreferences (Internal) + ++ (FIRInstanceIDCheckinPreferences *)preferencesFromKeychainContents:(NSString *)keychainContent { + NSString *deviceID = [self checkinDeviceIDFromKeychainContent:keychainContent]; + NSString *secret = [self checkinSecretFromKeychainContent:keychainContent]; + if ([deviceID length] && [secret length]) { + return [[FIRInstanceIDCheckinPreferences alloc] initWithDeviceID:deviceID secretToken:secret]; + } else { + return nil; + } +} + +- (instancetype)initWithDeviceID:(NSString *)deviceID secretToken:(NSString *)secretToken { + self = [super init]; + if (self) { + self.deviceID = [deviceID copy]; + self.secretToken = [secretToken copy]; + } + return self; +} + +- (void)reset { + self.deviceID = nil; + self.secretToken = nil; + self.digest = nil; + self.versionInfo = nil; + self.gServicesData = nil; + self.deviceDataVersion = nil; + self.lastCheckinTimestampMillis = 0; +} + +- (void)updateWithCheckinPlistContents:(NSDictionary *)checkinPlistContent { + for (NSString *key in checkinPlistContent) { + if ([kFIRInstanceIDDigestStringKey isEqualToString:key]) { + self.digest = [checkinPlistContent[key] copy]; + } else if ([kFIRInstanceIDVersionInfoStringKey isEqualToString:key]) { + self.versionInfo = [checkinPlistContent[key] copy]; + } else if ([kFIRInstanceIDLastCheckinTimeKey isEqualToString:key]) { + self.lastCheckinTimestampMillis = [checkinPlistContent[key] longLongValue]; + } else if ([kFIRInstanceIDGServicesDictionaryKey isEqualToString:key]) { + self.gServicesData = [checkinPlistContent[key] mutableCopy]; + } else if ([kFIRInstanceIDDeviceDataVersionKey isEqualToString:key]) { + self.deviceDataVersion = [checkinPlistContent[key] copy]; + } + // Otherwise we have some keys we don't care about + } +} + +- (NSString *)checkinKeychainContent { + if ([self.deviceID length] && [self.secretToken length]) { + return [NSString stringWithFormat:@"%@%@%@", self.deviceID, + kCheckinKeychainContentSeparatorString, self.secretToken]; + } else { + return nil; + } +} + ++ (NSString *)checkinDeviceIDFromKeychainContent:(NSString *)keychainContent { + return [self checkinKeychainContent:keychainContent forIndex:0]; +} + ++ (NSString *)checkinSecretFromKeychainContent:(NSString *)keychainContent { + return [self checkinKeychainContent:keychainContent forIndex:1]; +} + ++ (NSString *)checkinKeychainContent:(NSString *)keychainContent forIndex:(int)index { + NSArray *keychainComponents = + [keychainContent componentsSeparatedByString:kCheckinKeychainContentSeparatorString]; + if (index >= 0 && index < 2 && [keychainComponents count] == 2) { + return keychainComponents[index]; + } else { + return nil; + } +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences.h new file mode 100644 index 0000000..fe459af --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences.h @@ -0,0 +1,63 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +/** + * The preferences InstanceID loads from checkin server. The deviceID and secret that checkin + * provides is used to authenticate all future requests to the server. Besides the deviceID + * and secret the other information that checkin provides is stored in a plist on the device. + * The deviceID and secret are persisted in the device keychain. + */ +@interface FIRInstanceIDCheckinPreferences : NSObject + +/** + * DeviceID and secretToken are the checkin auth credentials and are stored in the Keychain. + */ +@property(nonatomic, readonly, copy) NSString *deviceID; +@property(nonatomic, readonly, copy) NSString *secretToken; + +/** + * All the other checkin preferences other than deviceID and secret are stored in a plist. + */ +@property(nonatomic, readonly, copy) NSString *deviceDataVersion; +@property(nonatomic, readonly, copy) NSString *digest; +@property(nonatomic, readonly, copy) NSString *versionInfo; +@property(nonatomic, readonly, strong) NSMutableDictionary *gServicesData; +@property(nonatomic, readonly, assign) int64_t lastCheckinTimestampMillis; + +/** + * The content retrieved from checkin server that should be persisted in a plist. This + * doesn't contain the deviceID and secret which are stored in the Keychain since they + * should be more private. + * + * @return The checkin preferences that should be persisted in a plist. + */ +- (NSDictionary *)checkinPlistContents; + +/** + * Return whether checkin info exists, valid or not. + */ +- (BOOL)hasCheckinInfo; + +/** + * Verify if checkin preferences are valid or not. + * + * @return YES if valid checkin preferences else NO. + */ +- (BOOL)hasValidCheckinInfo; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences.m new file mode 100644 index 0000000..2479a85 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences.m @@ -0,0 +1,97 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDCheckinPreferences.h" + +#import +#import "FIRInstanceIDCheckinService.h" +#import "FIRInstanceIDDefines.h" +#import "FIRInstanceIDUtilities.h" + +const NSTimeInterval kFIRInstanceIDDefaultCheckinInterval = 7 * 24 * 60 * 60; // 7 days. + +@interface FIRInstanceIDCheckinPreferences () + +@property(nonatomic, readwrite, copy) NSString *deviceID; +@property(nonatomic, readwrite, copy) NSString *secretToken; +@property(nonatomic, readwrite, copy) NSString *digest; +@property(nonatomic, readwrite, copy) NSString *versionInfo; +@property(nonatomic, readwrite, copy) NSString *deviceDataVersion; + +@property(nonatomic, readwrite, strong) NSMutableDictionary *gServicesData; +@property(nonatomic, readwrite, assign) int64_t lastCheckinTimestampMillis; + +// This flag indicates that we have already saved the above deviceID and secret +// to our keychain and hence we don't need to save again. This is helpful since +// on checkin refresh we can avoid writing to the Keychain which can sometimes +// be very buggy. For info check this https://forums.developer.apple.com/thread/4743 +@property(nonatomic, readwrite, assign) BOOL hasPreCachedAuthCredentials; + +@end + +@implementation FIRInstanceIDCheckinPreferences + +- (NSDictionary *)checkinPlistContents { + NSMutableDictionary *checkinPlistContents = [NSMutableDictionary dictionary]; + checkinPlistContents[kFIRInstanceIDDigestStringKey] = self.digest ?: @""; + checkinPlistContents[kFIRInstanceIDVersionInfoStringKey] = self.versionInfo ?: @""; + checkinPlistContents[kFIRInstanceIDDeviceDataVersionKey] = self.deviceDataVersion ?: @""; + checkinPlistContents[kFIRInstanceIDLastCheckinTimeKey] = @(self.lastCheckinTimestampMillis); + checkinPlistContents[kFIRInstanceIDGServicesDictionaryKey] = + [self.gServicesData count] ? self.gServicesData : @{}; + return checkinPlistContents; +} + +- (BOOL)hasCheckinInfo { + return (self.deviceID.length && self.secretToken.length); +} + +- (BOOL)hasValidCheckinInfo { + int64_t currentTimestampInMillis = FIRInstanceIDCurrentTimestampInMilliseconds(); + int64_t timeSinceLastCheckinInMillis = currentTimestampInMillis - self.lastCheckinTimestampMillis; + _FIRInstanceIDDevAssert(timeSinceLastCheckinInMillis >= 0, + @"FCM error: cannot have last checkin timestamp in future"); + BOOL hasCheckinInfo = [self hasCheckinInfo]; + NSString *lastLocale = + [[GULUserDefaults standardUserDefaults] stringForKey:kFIRInstanceIDUserDefaultsKeyLocale]; + // If it's app's first time open and checkin is already fetched and no locale information is + // stored, then checkin info is valid. We should not checkin again because locale is considered + // "changed". + if (hasCheckinInfo && !lastLocale) { + NSString *currentLocale = FIRInstanceIDCurrentLocale(); + [[GULUserDefaults standardUserDefaults] setObject:currentLocale + forKey:kFIRInstanceIDUserDefaultsKeyLocale]; + return YES; + } + + // If locale has changed, checkin info is no longer valid. + // Also update locale information if changed. (Only do it here not in token refresh) + if (FIRInstanceIDHasLocaleChanged()) { + NSString *currentLocale = FIRInstanceIDCurrentLocale(); + [[GULUserDefaults standardUserDefaults] setObject:currentLocale + forKey:kFIRInstanceIDUserDefaultsKeyLocale]; + return NO; + } + + return (hasCheckinInfo && + (timeSinceLastCheckinInMillis / 1000.0 < kFIRInstanceIDDefaultCheckinInterval)); +} + +- (void)setHasPreCachedAuthCredentials:(BOOL)hasPreCachedAuthCredentials { + _hasPreCachedAuthCredentials = hasPreCachedAuthCredentials; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences_Private.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences_Private.h new file mode 100644 index 0000000..23b55e1 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinPreferences_Private.h @@ -0,0 +1,27 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDCheckinPreferences.h" + +/** Checkin refresh interval. **/ +FOUNDATION_EXPORT const NSTimeInterval kFIRInstanceIDDefaultCheckinInterval; + +@interface FIRInstanceIDCheckinPreferences () + +- (BOOL)hasPreCachedAuthCredentials; +- (void)setHasPreCachedAuthCredentials:(BOOL)hasPreCachedAuthCredentials; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinService.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinService.h new file mode 100644 index 0000000..9d05eb4 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinService.h @@ -0,0 +1,82 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import "FIRInstanceIDUtilities.h" + +NS_ASSUME_NONNULL_BEGIN + +// keys in Checkin preferences +FOUNDATION_EXPORT NSString *const kFIRInstanceIDDeviceAuthIdKey; +FOUNDATION_EXPORT NSString *const kFIRInstanceIDSecretTokenKey; +FOUNDATION_EXPORT NSString *const kFIRInstanceIDDigestStringKey; +FOUNDATION_EXPORT NSString *const kFIRInstanceIDLastCheckinTimeKey; +FOUNDATION_EXPORT NSString *const kFIRInstanceIDVersionInfoStringKey; +FOUNDATION_EXPORT NSString *const kFIRInstanceIDGServicesDictionaryKey; +FOUNDATION_EXPORT NSString *const kFIRInstanceIDDeviceDataVersionKey; +FOUNDATION_EXPORT NSString *const kFIRInstanceIDFirebaseUserAgentKey; + +@class FIRInstanceIDCheckinPreferences; + +/** + * @related FIRInstanceIDCheckinService + * + * The completion handler invoked once the fetch from Checkin server finishes. + * For successful fetches we returned checkin information by the checkin service + * and `nil` error, else we return the appropriate error object as reported by the + * Checkin Service. + * + * @param checkinPreferences The checkin preferences as fetched from the server. + * @param error The error object which fetching GServices data. + */ +typedef void (^FIRInstanceIDDeviceCheckinCompletion)( + FIRInstanceIDCheckinPreferences *_Nullable checkinPreferences, NSError *_Nullable error); + +/** + * Register the device with Checkin Service and get back the `authID`, `secret + * token` etc. for the client. Checkin results are cached in the + * `FIRInstanceIDCache` and periodically refreshed to prevent them from being stale. + * Each client needs to register with checkin before registering with InstanceID. + */ +@interface FIRInstanceIDCheckinService : NSObject + +/** + * Execute a device checkin request to obtain an deviceID, secret token, + * gService data. + * + * @param existingCheckin An existing checkin preference object, if available. + * @param completion Completion hander called on success or failure of device checkin. + */ +- (void)checkinWithExistingCheckin:(nullable FIRInstanceIDCheckinPreferences *)existingCheckin + completion:(FIRInstanceIDDeviceCheckinCompletion)completion; + +/** + * This would stop any request that the service made to the checkin backend and also + * release any callback handlers that it holds. + */ +- (void)stopFetching; + +/** + * Set test block for mock testing network requests. + * + * @param block The block to invoke as a mock response from the network. + */ ++ (void)setCheckinTestBlock:(nullable FIRInstanceIDURLRequestTestBlock)block; + +@end + +NS_ASSUME_NONNULL_END diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinService.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinService.m new file mode 100644 index 0000000..8a2711d --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinService.m @@ -0,0 +1,240 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDCheckinService.h" + +#import +#import "FIRInstanceIDCheckinPreferences+Internal.h" +#import "FIRInstanceIDCheckinPreferences_Private.h" +#import "FIRInstanceIDDefines.h" +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDStore.h" +#import "FIRInstanceIDUtilities.h" +#import "NSError+FIRInstanceID.h" + +static NSString *const kDeviceCheckinURL = @"https://device-provisioning.googleapis.com/checkin"; + +// keys in Checkin preferences +NSString *const kFIRInstanceIDDeviceAuthIdKey = @"GMSInstanceIDDeviceAuthIdKey"; +NSString *const kFIRInstanceIDSecretTokenKey = @"GMSInstanceIDSecretTokenKey"; +NSString *const kFIRInstanceIDDigestStringKey = @"GMSInstanceIDDigestKey"; +NSString *const kFIRInstanceIDLastCheckinTimeKey = @"GMSInstanceIDLastCheckinTimestampKey"; +NSString *const kFIRInstanceIDVersionInfoStringKey = @"GMSInstanceIDVersionInfo"; +NSString *const kFIRInstanceIDGServicesDictionaryKey = @"GMSInstanceIDGServicesData"; +NSString *const kFIRInstanceIDDeviceDataVersionKey = @"GMSInstanceIDDeviceDataVersion"; +NSString *const kFIRInstanceIDFirebaseUserAgentKey = @"X-firebase-client"; + +static NSUInteger const kCheckinType = 2; // DeviceType IOS in l/w/a/_checkin.proto +static NSUInteger const kCheckinVersion = 2; +static NSUInteger const kFragment = 0; + +static FIRInstanceIDURLRequestTestBlock testBlock; + +@interface FIRInstanceIDCheckinService () + +@property(nonatomic, readwrite, strong) NSURLSession *session; + +@end + +@implementation FIRInstanceIDCheckinService +; + +- (instancetype)init { + self = [super init]; + if (self) { + // Create an URLSession once, even though checkin should happen about once a day + NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration]; + config.timeoutIntervalForResource = 60.0f; // 1 minute + config.allowsCellularAccess = YES; + _session = [NSURLSession sessionWithConfiguration:config]; + _session.sessionDescription = @"com.google.iid-checkin"; + } + return self; +} + +- (void)dealloc { + testBlock = nil; + [self.session invalidateAndCancel]; +} + +- (void)checkinWithExistingCheckin:(FIRInstanceIDCheckinPreferences *)existingCheckin + completion:(FIRInstanceIDDeviceCheckinCompletion)completion { + _FIRInstanceIDDevAssert(completion != nil, @"completion required"); + + if (self.session == nil) { + FIRInstanceIDLoggerError(kFIRIntsanceIDInvalidNetworkSession, + @"Inconsistent state: NSURLSession has been invalidated"); + NSError *error = + [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeRegistrarFailedToCheckIn]; + completion(nil, error); + return; + } + + NSURL *url = [NSURL URLWithString:kDeviceCheckinURL]; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; + + [request setValue:@"application/json" forHTTPHeaderField:@"content-type"]; + [request setValue:[FIRApp firebaseUserAgent] + forHTTPHeaderField:kFIRInstanceIDFirebaseUserAgentKey]; + + NSDictionary *checkinParameters = [self checkinParametersWithExistingCheckin:existingCheckin]; + NSData *checkinData = [NSJSONSerialization dataWithJSONObject:checkinParameters + options:0 + error:nil]; + request.HTTPMethod = @"POST"; + request.HTTPBody = checkinData; + + void (^handler)(NSData *, NSURLResponse *, NSError *) = + ^(NSData *data, NSURLResponse *response, NSError *error) { + if (error) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeService000, + @"Device checkin HTTP fetch error. Error Code: %ld", + (long)error.code); + completion(nil, error); + return; + } + + NSError *serializationError; + NSDictionary *dataResponse = [NSJSONSerialization JSONObjectWithData:data + options:0 + error:&serializationError]; + if (serializationError) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeService001, + @"Error serializing json object. Error Code: %ld", + _FIRInstanceID_L(serializationError.code)); + completion(nil, serializationError); + return; + } + + NSString *deviceAuthID = [dataResponse[@"android_id"] stringValue]; + NSString *secretToken = [dataResponse[@"security_token"] stringValue]; + if ([deviceAuthID length] == 0) { + NSError *error = + [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeInvalidRequest]; + completion(nil, error); + return; + } + + int64_t lastCheckinTimestampMillis = [dataResponse[@"time_msec"] longLongValue]; + int64_t currentTimestampMillis = FIRInstanceIDCurrentTimestampInMilliseconds(); + // Somehow the server clock gets out of sync with the device clock. + // Reset the last checkin timestamp in case this happens. + if (lastCheckinTimestampMillis > currentTimestampMillis) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeService002, + @"Invalid last checkin timestamp in future."); + lastCheckinTimestampMillis = currentTimestampMillis; + } + + NSString *deviceDataVersionInfo = dataResponse[@"device_data_version_info"] ?: @""; + NSString *digest = dataResponse[@"digest"] ?: @""; + + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeService003, + @"Checkin successful with authId: %@, " + @"digest: %@, " + @"lastCheckinTimestamp: %lld", + deviceAuthID, digest, lastCheckinTimestampMillis); + + NSString *versionInfo = dataResponse[@"version_info"] ?: @""; + NSMutableDictionary *gservicesData = [NSMutableDictionary dictionary]; + + // Read gServices data. + NSArray *flatSettings = dataResponse[@"setting"]; + for (NSDictionary *dict in flatSettings) { + if (dict[@"name"] && dict[@"value"]) { + gservicesData[dict[@"name"]] = dict[@"value"]; + } else { + _FIRInstanceIDDevAssert(NO, @"Invalid setting in checkin response: (%@: %@)", + dict[@"name"], dict[@"value"]); + } + } + + FIRInstanceIDCheckinPreferences *checkinPreferences = + [[FIRInstanceIDCheckinPreferences alloc] initWithDeviceID:deviceAuthID + secretToken:secretToken]; + NSDictionary *preferences = @{ + kFIRInstanceIDDigestStringKey : digest, + kFIRInstanceIDVersionInfoStringKey : versionInfo, + kFIRInstanceIDLastCheckinTimeKey : @(lastCheckinTimestampMillis), + kFIRInstanceIDGServicesDictionaryKey : gservicesData, + kFIRInstanceIDDeviceDataVersionKey : deviceDataVersionInfo, + }; + [checkinPreferences updateWithCheckinPlistContents:preferences]; + completion(checkinPreferences, nil); + }; + // Test block + if (testBlock) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeService005, + @"Test block set, will not hit the server"); + testBlock(request, handler); + return; + } + + NSURLSessionDataTask *task = [self.session dataTaskWithRequest:request completionHandler:handler]; + [task resume]; +} + +- (void)stopFetching { + [self.session invalidateAndCancel]; + // The session cannot be reused after invalidation. Dispose it to prevent accident reusing. + self.session = nil; +} + +#pragma mark - Private + +- (NSDictionary *)checkinParametersWithExistingCheckin: + (nullable FIRInstanceIDCheckinPreferences *)checkinPreferences { + NSString *deviceModel = FIRInstanceIDDeviceModel(); + NSString *systemVersion = FIRInstanceIDOperatingSystemVersion(); + NSString *osVersion = [NSString stringWithFormat:@"IOS_%@", systemVersion]; + + // Get locale from GCM if GCM exists else use system API. + NSString *locale = FIRInstanceIDCurrentLocale(); + + NSInteger userNumber = 0; // Multi Profile may change this. + NSInteger userSerialNumber = 0; // Multi Profile may change this + + uint32_t loggingID = arc4random(); + NSString *timeZone = [NSTimeZone localTimeZone].name; + int64_t lastCheckingTimestampMillis = checkinPreferences.lastCheckinTimestampMillis; + + NSDictionary *checkinParameters = @{ + @"checkin" : @{ + @"iosbuild" : @{@"model" : deviceModel, @"os_version" : osVersion}, + @"type" : @(kCheckinType), + @"user_number" : @(userNumber), + @"last_checkin_msec" : @(lastCheckingTimestampMillis), + }, + @"fragment" : @(kFragment), + @"logging_id" : @(loggingID), + @"locale" : locale, + @"version" : @(kCheckinVersion), + @"digest" : checkinPreferences.digest ?: @"", + @"timezone" : timeZone, + @"user_serial_number" : @(userSerialNumber), + @"id" : @([checkinPreferences.deviceID longLongValue]), + @"security_token" : @([checkinPreferences.secretToken longLongValue]), + }; + + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeService006, @"Checkin parameters: %@", + checkinParameters); + return checkinParameters; +} + ++ (void)setCheckinTestBlock:(FIRInstanceIDURLRequestTestBlock)block { + testBlock = [block copy]; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinStore.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinStore.h new file mode 100644 index 0000000..5e1b119 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinStore.h @@ -0,0 +1,108 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FIRInstanceIDAuthKeychain; +@class FIRInstanceIDBackupExcludedPlist; +@class FIRInstanceIDCheckinPreferences; + +// These values exposed for testing +extern NSString *const kFIRInstanceIDCheckinKeychainService; +extern NSString *const kFIRInstanceIDLegacyCheckinKeychainAccount; +extern NSString *const kFIRInstanceIDLegacyCheckinKeychainService; + +/** + * Checkin preferences backing store. + */ +@interface FIRInstanceIDCheckinStore : NSObject + +/** + * Designated Initializer. Initialize a checkin store with the given backup excluded + * plist filename. + * + * @param checkinFilename The backup excluded plist filename to persist checkin + * preferences. + * + * @param subDirectoryName Sub-directory in standard directory where we write + * InstanceID plist. + * + * @return Store to persist checkin preferences. + */ +- (instancetype)initWithCheckinPlistFileName:(NSString *)checkinFilename + subDirectoryName:(NSString *)subDirectoryName; + +/** + * Initialize a checkin store with the given backup excluded plist and keychain. + * + * @param plist The backup excluded plist to persist checkin preferences. + * @param keychain The keychain used to persist checkin auth preferences. + * + * @return Store to persist checkin preferences. + */ +- (instancetype)initWithCheckinPlist:(FIRInstanceIDBackupExcludedPlist *)plist + keychain:(FIRInstanceIDAuthKeychain *)keychain; + +/** + * Checks whether the backup excluded checkin preferences are present on the disk or not. + * + * @return YES if the backup excluded checkin plist exists on the disks else NO. + */ +- (BOOL)hasCheckinPlist; + +#pragma mark - Save + +/** + * Save the checkin preferences to backing store. + * + * @param preferences Checkin preferences to save. + * @param handler The callback handler which is invoked when the operation is complete, + * with an error if there is any. + */ +- (void)saveCheckinPreferences:(FIRInstanceIDCheckinPreferences *)preferences + handler:(void (^)(NSError *error))handler; + +#pragma mark - Delete + +/** + * Remove the cached checkin preferences. + * + * @param handler The callback handler which is invoked when the operation is complete, + * with an error if there is any. + */ +- (void)removeCheckinPreferencesWithHandler:(void (^)(NSError *error))handler; + +#pragma mark - Get + +/** + * Get the cached device secret. If we cannot access it for some reason we + * return the appropriate error object. + * + * @return The cached checkin preferences if present else nil. + */ +- (FIRInstanceIDCheckinPreferences *)cachedCheckinPreferences; + +/** + * Migrate the checkin item from old service/account to the new one. + * The new account is dynamic as it uses bundle ID. + * This is to ensure checkin is not shared across apps, but still the same + * if app has used GCM before. + * This call should only happen once. + * + */ +- (void)migrateCheckinItemIfNeeded; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinStore.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinStore.m new file mode 100644 index 0000000..96f8071 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDCheckinStore.m @@ -0,0 +1,239 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDCheckinStore.h" + +#import "FIRInstanceIDAuthKeyChain.h" +#import "FIRInstanceIDBackupExcludedPlist.h" +#import "FIRInstanceIDCheckinPreferences+Internal.h" +#import "FIRInstanceIDCheckinPreferences_Private.h" +#import "FIRInstanceIDCheckinService.h" +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDUtilities.h" +#import "FIRInstanceIDVersionUtilities.h" +#import "NSError+FIRInstanceID.h" + +static NSString *const kFIRInstanceIDCheckinKeychainGeneric = @"com.google.iid"; + +NSString *const kFIRInstanceIDCheckinKeychainService = @"com.google.iid.checkin"; +NSString *const kFIRInstanceIDLegacyCheckinKeychainAccount = @"com.google.iid.checkin-account"; +NSString *const kFIRInstanceIDLegacyCheckinKeychainService = @"com.google.iid.checkin-service"; + +// Checkin plist used to have the deviceID and secret stored in them and that's why they +// had 6 items in it. Since the deviceID and secret have been moved to the keychain +// there would only be 4 items. +static const NSInteger kOldCheckinPlistCount = 6; + +@interface FIRInstanceIDCheckinStore () + +@property(nonatomic, readwrite, strong) FIRInstanceIDBackupExcludedPlist *plist; +@property(nonatomic, readwrite, strong) FIRInstanceIDAuthKeychain *keychain; +// Checkin will store items under +// Keychain account: , +// Keychain service: |kFIRInstanceIDCheckinKeychainService| +@property(nonatomic, readonly) NSString *bundleIdentifierForKeychainAccount; + +@end + +@implementation FIRInstanceIDCheckinStore + +- (instancetype)initWithCheckinPlistFileName:(NSString *)checkinFilename + subDirectoryName:(NSString *)subDirectoryName { + FIRInstanceIDBackupExcludedPlist *plist = + [[FIRInstanceIDBackupExcludedPlist alloc] initWithFileName:checkinFilename + subDirectory:subDirectoryName]; + + FIRInstanceIDAuthKeychain *keychain = + [[FIRInstanceIDAuthKeychain alloc] initWithIdentifier:kFIRInstanceIDCheckinKeychainGeneric]; + return [self initWithCheckinPlist:plist keychain:keychain]; +} + +- (instancetype)initWithCheckinPlist:(FIRInstanceIDBackupExcludedPlist *)plist + keychain:(FIRInstanceIDAuthKeychain *)keychain { + self = [super init]; + if (self) { + _plist = plist; + _keychain = keychain; + } + return self; +} + +- (BOOL)hasCheckinPlist { + return [self.plist doesFileExist]; +} + +- (NSString *)bundleIdentifierForKeychainAccount { + static NSString *bundleIdentifier; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + bundleIdentifier = FIRInstanceIDAppIdentifier(); + }); + return bundleIdentifier; +} + +- (void)saveCheckinPreferences:(FIRInstanceIDCheckinPreferences *)preferences + handler:(void (^)(NSError *error))handler { + NSDictionary *checkinPlistContents = [preferences checkinPlistContents]; + NSString *checkinKeychainContent = [preferences checkinKeychainContent]; + + if (![checkinKeychainContent length]) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeCheckinStore000, + @"Failed to get checkin keychain content from memory."); + if (handler) { + handler([NSError + errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeRegistrarFailedToCheckIn]); + } + return; + } + if (![checkinPlistContents count]) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeCheckinStore001, + @"Failed to get checkin plist contents from memory."); + if (handler) { + handler([NSError + errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeRegistrarFailedToCheckIn]); + } + return; + } + + // Save the deviceID and secret in the Keychain + __block BOOL shouldContinue = YES; + if (!preferences.hasPreCachedAuthCredentials) { + NSData *data = [checkinKeychainContent dataUsingEncoding:NSUTF8StringEncoding]; + [self.keychain setData:data + forService:kFIRInstanceIDCheckinKeychainService + accessibility:nil + account:self.bundleIdentifierForKeychainAccount + handler:^(NSError *error) { + if (error) { + if (handler) { + handler(error); + } + shouldContinue = NO; + return; + } + }]; + } + if (!shouldContinue) { + return; + } + + // Save all other checkin preferences in a plist + NSError *error; + if (![self.plist writeDictionary:checkinPlistContents error:&error]) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeCheckinStore003, + @"Failed to save checkin plist contents." + @"Will delete auth credentials"); + [self.keychain removeItemsMatchingService:kFIRInstanceIDCheckinKeychainService + account:self.bundleIdentifierForKeychainAccount + handler:nil]; + if (handler) { + handler(error); + } + return; + } + handler(nil); +} + +- (void)removeCheckinPreferencesWithHandler:(void (^)(NSError *error))handler { + // Remove deviceID and secret from Keychain + [self.keychain + removeItemsMatchingService:kFIRInstanceIDCheckinKeychainService + account:self.bundleIdentifierForKeychainAccount + handler:^(NSError *error) { + if (error) { + if (handler) { + handler(error); + } + return; + } + // Delete the checkin preferences plist + NSError *deletePlistError; + [self.plist deleteFile:&deletePlistError]; + + // Try to remove from old location as well because migration + // is no longer needed. Consider this is either a fresh install + // or an identity wipe. + [self.keychain + removeItemsMatchingService:kFIRInstanceIDLegacyCheckinKeychainService + account:kFIRInstanceIDLegacyCheckinKeychainAccount + handler:nil]; + handler(deletePlistError); + }]; +} + +- (FIRInstanceIDCheckinPreferences *)cachedCheckinPreferences { + // Query the keychain for deviceID and secret + NSData *item = [self.keychain dataForService:kFIRInstanceIDCheckinKeychainService + account:self.bundleIdentifierForKeychainAccount]; + + // Check info found in keychain + NSString *checkinKeychainContent = [[NSString alloc] initWithData:item + encoding:NSUTF8StringEncoding]; + FIRInstanceIDCheckinPreferences *checkinPreferences = + [FIRInstanceIDCheckinPreferences preferencesFromKeychainContents:checkinKeychainContent]; + + NSDictionary *checkinPlistContents = [self.plist contentAsDictionary]; + + NSString *plistDeviceAuthID = checkinPlistContents[kFIRInstanceIDDeviceAuthIdKey]; + NSString *plistSecretToken = checkinPlistContents[kFIRInstanceIDSecretTokenKey]; + + // If deviceID and secret not found in the keychain verify that we don't have them in the + // checkin preferences plist. + if (![checkinPreferences.deviceID length] && ![checkinPreferences.secretToken length]) { + if ([plistDeviceAuthID length] && [plistSecretToken length]) { + // Couldn't find checkin credentials in keychain but found them in the plist. + checkinPreferences = + [[FIRInstanceIDCheckinPreferences alloc] initWithDeviceID:plistDeviceAuthID + secretToken:plistSecretToken]; + } else { + // Couldn't find checkin credentials in keychain nor plist + return nil; + } + } else if (kOldCheckinPlistCount == checkinPlistContents.count) { + // same check as above but just to be extra sure that we cover all upgrade cases properly. + // TODO(chliangGoogle): Remove this case, after verifying it's not needed + if ([plistDeviceAuthID length] && [plistSecretToken length]) { + checkinPreferences = + [[FIRInstanceIDCheckinPreferences alloc] initWithDeviceID:plistDeviceAuthID + secretToken:plistSecretToken]; + } + } + + [checkinPreferences updateWithCheckinPlistContents:checkinPlistContents]; + return checkinPreferences; +} + +- (void)migrateCheckinItemIfNeeded { + // Check for checkin in the old location, using the legacy keys + // Query the keychain for deviceID and secret + NSData *dataInOldLocation = + [self.keychain dataForService:kFIRInstanceIDLegacyCheckinKeychainService + account:kFIRInstanceIDLegacyCheckinKeychainAccount]; + if (dataInOldLocation) { + // Save to new location + [self.keychain setData:dataInOldLocation + forService:kFIRInstanceIDCheckinKeychainService + accessibility:NULL + account:self.bundleIdentifierForKeychainAccount + handler:nil]; + // Remove from old location + [self.keychain removeItemsMatchingService:kFIRInstanceIDLegacyCheckinKeychainService + account:kFIRInstanceIDLegacyCheckinKeychainAccount + handler:nil]; + } +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDConstants.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDConstants.h new file mode 100644 index 0000000..cd2e131 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDConstants.h @@ -0,0 +1,63 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#pragma mark - Commands + +/** + * Value included in a structured response or GCM message from IID, indicating + * an identity reset. + */ +FOUNDATION_EXPORT NSString *const kFIRInstanceID_CMD_RST; + +#pragma mark - Notifications + +/// Notification used to deliver GCM messages for InstanceID. +FOUNDATION_EXPORT NSString *const kFIRInstanceIDCheckinFetchedNotification; +FOUNDATION_EXPORT NSString *const kFIRInstanceIDAPNSTokenNotification; +FOUNDATION_EXPORT NSString *const kFIRInstanceIDDefaultGCMTokenNotification; +FOUNDATION_EXPORT NSString *const kFIRInstanceIDDefaultGCMTokenFailNotification; + +FOUNDATION_EXPORT NSString *const kFIRInstanceIDIdentityInvalidatedNotification; + +#pragma mark - Miscellaneous + +/// The scope used to save the IID "*" scope token. This is used for saving the +/// IID auth token that we receive from the server. This feature was never +/// implemented on the server side. +FOUNDATION_EXPORT NSString *const kFIRInstanceIDAllScopeIdentifier; +/// The scope used to save the IID "*" scope token. +FOUNDATION_EXPORT NSString *const kFIRInstanceIDDefaultTokenScope; + +/// Subdirectory in search path directory to store InstanceID preferences. +FOUNDATION_EXPORT NSString *const kFIRInstanceIDSubDirectoryName; + +/// The key for APNS token in options dictionary. +FOUNDATION_EXPORT NSString *const kFIRInstanceIDTokenOptionsAPNSKey; + +/// The key for APNS token environment type in options dictionary. +FOUNDATION_EXPORT NSString *const kFIRInstanceIDTokenOptionsAPNSIsSandboxKey; + +/// The key for GMP AppID sent in registration requests. +FOUNDATION_EXPORT NSString *const kFIRInstanceIDTokenOptionsFirebaseAppIDKey; + +/// The key to enable auto-register by swizzling AppDelegate's methods. +FOUNDATION_EXPORT NSString *const kFIRInstanceIDAppDelegateProxyEnabledInfoPlistKey; + +/// Error code for missing entitlements in Keychain. iOS Keychain error +/// https://forums.developer.apple.com/thread/4743 +FOUNDATION_EXPORT const int kFIRInstanceIDSecMissingEntitlementErrorCode; diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDConstants.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDConstants.m new file mode 100644 index 0000000..81f4620 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDConstants.m @@ -0,0 +1,46 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDConstants.h" + +// Commands +NSString *const kFIRInstanceID_CMD_RST = @"RST"; + +// NOTIFICATIONS +NSString *const kFIRInstanceIDCheckinFetchedNotification = @"com.google.gcm.notif-checkin-fetched"; +NSString *const kFIRInstanceIDAPNSTokenNotification = @"com.firebase.iid.notif.apns-token"; +NSString *const kFIRInstanceIDDefaultGCMTokenNotification = @"com.firebase.iid.notif.fcm-token"; +NSString *const kFIRInstanceIDDefaultGCMTokenFailNotification = + @"com.firebase.iid.notif.fcm-token-fail"; + +NSString *const kFIRInstanceIDIdentityInvalidatedNotification = @"com.google.iid.identity-invalid"; + +// Miscellaneous +NSString *const kFIRInstanceIDAllScopeIdentifier = @"iid-all"; +NSString *const kFIRInstanceIDDefaultTokenScope = @"*"; +NSString *const kFIRInstanceIDSubDirectoryName = @"Google/FirebaseInstanceID"; + +// Registration Options +NSString *const kFIRInstanceIDTokenOptionsAPNSKey = @"apns_token"; +NSString *const kFIRInstanceIDTokenOptionsAPNSIsSandboxKey = @"apns_sandbox"; +NSString *const kFIRInstanceIDTokenOptionsFirebaseAppIDKey = @"gmp_app_id"; + +NSString *const kFIRInstanceIDAppDelegateProxyEnabledInfoPlistKey = + @"FirebaseAppDelegateProxyEnabled"; + +// iOS Keychain error https://forums.developer.apple.com/thread/4743 +// An undocumented error code hence need to be redeclared. +const int kFIRInstanceIDSecMissingEntitlementErrorCode = -34018; diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDDefines.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDDefines.h new file mode 100644 index 0000000..764dfe5 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDDefines.h @@ -0,0 +1,70 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef FIRInstanceIDLib_FIRInstanceIDDefines_h +#define FIRInstanceIDLib_FIRInstanceIDDefines_h + +#define _FIRInstanceID_VERBOSE_LOGGING 1 + +// Verbose Logging +#if (_FIRInstanceID_VERBOSE_LOGGING) +#define FIRInstanceID_DEV_VERBOSE_LOG(...) NSLog(__VA_ARGS__) +#else +#define FIRInstanceID_DEV_VERBOSE_LOG(...) \ + do { \ + } while (0) +#endif // VERBOSE_LOGGING + +// WEAKIFY & STRONGIFY +// Helper macro. +#define _FIRInstanceID_WEAKNAME(VAR) VAR##_weak_ + +#define FIRInstanceID_WEAKIFY(VAR) __weak __typeof__(VAR) _FIRInstanceID_WEAKNAME(VAR) = (VAR); + +#define FIRInstanceID_STRONGIFY(VAR) \ + _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wshadow\"") \ + __strong __typeof__(VAR) VAR = _FIRInstanceID_WEAKNAME(VAR); \ + _Pragma("clang diagnostic pop") + +// Type Conversions (used for NSInteger etc) +#ifndef _FIRInstanceID_L +#define _FIRInstanceID_L(v) (long)(v) +#endif + +#endif + +// Debug Assert +#ifndef _FIRInstanceIDDevAssert +// we directly invoke the NSAssert handler so we can pass on the varargs +// (NSAssert doesn't have a macro we can use that takes varargs) +#if !defined(NS_BLOCK_ASSERTIONS) +#define _FIRInstanceIDDevAssert(condition, ...) \ + do { \ + if (!(condition)) { \ + [[NSAssertionHandler currentHandler] \ + handleFailureInFunction:(NSString *)[NSString stringWithUTF8String:__PRETTY_FUNCTION__] \ + file:(NSString *)[NSString stringWithUTF8String:__FILE__] \ + lineNumber:__LINE__ \ + description:__VA_ARGS__]; \ + } \ + } while (0) +#else // !defined(NS_BLOCK_ASSERTIONS) +#define _FIRInstanceIDDevAssert(condition, ...) \ + do { \ + } while (0) +#endif // !defined(NS_BLOCK_ASSERTIONS) + +#endif // _FIRInstanceIDDevAssert diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPair.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPair.h new file mode 100644 index 0000000..a1aa5e1 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPair.h @@ -0,0 +1,78 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface FIRInstanceIDKeyPair : NSObject + +- (instancetype)init __attribute__(( + unavailable("Use -initWithPrivateKey:publicKey:publicKeyData:privateKeyData: instead."))); +; + +/** + * Initialize a new 2048 bit RSA keypair. This also stores the keypair in the Keychain + * Preferences. + * + * @param publicKey The publicKey stored in Keychain. + * @param privateKey The privateKey stored in Keychain. + * @param publicKeyData The publicKey in NSData format. + * @param privateKeyData The privateKey in NSData format. + * + * @return A new KeyPair instance with the generated public and private key. + */ +- (instancetype)initWithPrivateKey:(SecKeyRef)privateKey + publicKey:(SecKeyRef)publicKey + publicKeyData:(NSData *)publicKeyData + privateKeyData:(NSData *)privateKeyData NS_DESIGNATED_INITIALIZER; + +/** + * The public key in the RSA 20148 bit generated KeyPair. + * + * @return The 2048 bit RSA KeyPair's public key. + */ +@property(nonatomic, readonly, strong) NSData *publicKeyData; + +/** + * The private key in the RSA 20148 bit generated KeyPair. + * + * @return The 2048 bit RSA KeyPair's private key. + */ +@property(nonatomic, readonly, strong) NSData *privateKeyData; + +#pragma mark - Info + +/** + * Checks if the private and public keyPair are valid or not. + * + * @return YES if keypair is valid else NO. + */ +- (BOOL)isValid; + +/** + * The public key in the RSA 2048 bit generated KeyPair. + * + * @return The 2048 bit RSA KeyPair's public key. + */ +- (SecKeyRef)publicKey; + +/** + * The private key in the RSA 2048 bit generated KeyPair. + * + * @return The 2048 bit RSA KeyPair's private key. + */ +- (SecKeyRef)privateKey; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPair.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPair.m new file mode 100644 index 0000000..52b27c2 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPair.m @@ -0,0 +1,73 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDKeyPair.h" + +#import + +#import "FIRInstanceIDKeyPairUtilities.h" +#import "FIRInstanceIDKeychain.h" +#import "FIRInstanceIDLogger.h" +#import "NSError+FIRInstanceID.h" + +@interface FIRInstanceIDKeyPair () { + SecKeyRef _privateKey; + SecKeyRef _publicKey; +} + +@property(nonatomic, readwrite, strong) NSData *publicKeyData; +@property(nonatomic, readwrite, strong) NSData *privateKeyData; +@end + +@implementation FIRInstanceIDKeyPair +- (instancetype)initWithPrivateKey:(SecKeyRef)privateKey + publicKey:(SecKeyRef)publicKey + publicKeyData:(NSData *)publicKeyData + privateKeyData:(NSData *)privateKeyData { + self = [super init]; + if (self) { + _privateKey = privateKey; + _publicKey = publicKey; + _publicKeyData = publicKeyData; + _privateKeyData = privateKeyData; + } + return self; +} + +- (void)dealloc { + if (_privateKey) { + CFRelease(_privateKey); + } + if (_publicKey) { + CFRelease(_publicKey); + } +} + +#pragma mark - Info + +- (BOOL)isValid { + return _privateKey != NULL && _publicKey != NULL; +} + +- (SecKeyRef)publicKey { + return _publicKey; +} + +- (SecKeyRef)privateKey { + return _privateKey; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairStore.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairStore.h new file mode 100644 index 0000000..02c2896 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairStore.h @@ -0,0 +1,85 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FIRInstanceIDKeyPair; + +extern NSString *const kFIRInstanceIDKeyPairSubType; + +@class FIRInstanceIDKeyPairStore; + +@interface FIRInstanceIDKeyPairStore : NSObject + +/** + * Invalidates the cached keypairs in the Keychain, if needed. The keypair metadata plist is + * checked for existence. If the plist file does not exist, it is a signal of a new installation, + * and therefore the key pairs are not valid. + * + * Returns YES if keypair has been invalidated. + */ +- (BOOL)invalidateKeyPairsIfNeeded; + +/** + * Delete the cached RSA keypair from Keychain with the given subtype. + * + * @param subtype The subtype used to cache the RSA keypair in Keychain. + * @param handler The callback handler which is invoked when the keypair deletion is + * complete, with an error if there is any. + */ +- (void)deleteSavedKeyPairWithSubtype:(NSString *)subtype handler:(void (^)(NSError *))handler; + +/** + * Delete the plist that caches KeyPair generation timestamps. + * + * @param error The error if any while deleting the plist else nil. + * + * @return YES if the delete was successful else NO. + */ +- (BOOL)removeKeyPairCreationTimePlistWithError:(NSError **)error; + +/** + * Loads a cached KeyPair if it exists in the Keychain else generate a new + * one. If a keyPair already exists in memory this will just return that. This should + * not be called from the main thread since it could potentially lead to creating a new + * RSA-2048 bit keyPair which is an expensive operation. + * + * @param error The error, if any, while accessing the Keychain. + * + * @return A valid 2048 bit RSA key pair. + */ +- (FIRInstanceIDKeyPair *)loadKeyPairWithError:(NSError **)error; + +/** + * Check if the Keychain has any cached keypairs or not. + * + * @return YES if the Keychain has cached RSA KeyPairs else NO. + */ +- (BOOL)hasCachedKeyPairs; + +/** + * Return an identifier for the app instance. The result is a short identifier that can + * be used as a key when storing information about the app. This method will return the same + * ID as long as the application identity remains active. If the identity has been revoked or + * expired the method will generate and return a new identifier. + * + * @param error The error if any while loading the RSA KeyPair. + * + * @return The identifier, as url safe string. + */ +- (NSString *)appIdentityWithError:(NSError *__autoreleasing *)error; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairStore.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairStore.m new file mode 100644 index 0000000..c913daa --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairStore.m @@ -0,0 +1,526 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDKeyPairStore.h" + +#import "FIRInstanceIDBackupExcludedPlist.h" +#import "FIRInstanceIDConstants.h" +#import "FIRInstanceIDDefines.h" +#import "FIRInstanceIDKeyPair.h" +#import "FIRInstanceIDKeyPairUtilities.h" +#import "FIRInstanceIDKeychain.h" +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDUtilities.h" +#import "NSError+FIRInstanceID.h" + +// NOTE: These values should be in sync with what InstanceID saves in as. +static NSString *const kFIRInstanceIDKeyPairStoreFileName = @"com.google.iid-keypair"; + +static NSString *const kFIRInstanceIDStoreKeyGenerationTime = @"cre"; + +static NSString *const kFIRInstanceIDStoreKeyPrefix = @"com.google.iid-"; +static NSString *const kFIRInstanceIDStoreKeyPublic = @"|P|"; +static NSString *const kFIRInstanceIDStoreKeyPrivate = @"|K|"; +static NSString *const kFIRInstanceIDStoreKeySubtype = @"|S|"; + +static NSString *const kFIRInstanceIDKeyPairPublicTagPrefix = @"com.google.iid.keypair.public-"; +static NSString *const kFIRInstanceIDKeyPairPrivateTagPrefix = @"com.google.iid.keypair.private-"; + +static const int kMaxMissingEntitlementErrorCount = 3; + +NSString *const kFIRInstanceIDKeyPairSubType = @""; + +// Query the key with NSData format +NSData *FIRInstanceIDKeyDataWithTag(NSString *tag) { + _FIRInstanceIDDevAssert([tag length], @"Invalid tag for keychain specified"); + if (![tag length]) { + return NULL; + } + NSDictionary *queryKey = FIRInstanceIDKeyPairQuery(tag, YES, YES); + CFTypeRef result = [[FIRInstanceIDKeychain sharedInstance] itemWithQuery:queryKey]; + if (!result) { + return NULL; + } + return (__bridge NSData *)result; +} + +// Query the key given a tag +SecKeyRef FIRInstanceIDCachedKeyRefWithTag(NSString *tag) { + _FIRInstanceIDDevAssert([tag length], @"Invalid tag for keychain specified"); + if (![tag length]) { + return NULL; + } + NSDictionary *queryKey = FIRInstanceIDKeyPairQuery(tag, YES, NO); + CFTypeRef result = [[FIRInstanceIDKeychain sharedInstance] itemWithQuery:queryKey]; + return (SecKeyRef)result; +} + +// Check if keypair has been migrated from the legacy to the new version +BOOL FIRInstanceIDHasMigratedKeyPair(NSString *legacyPublicKeyTag, NSString *newPublicKeyTag) { + NSData *oldPublicKeyData = FIRInstanceIDKeyDataWithTag(legacyPublicKeyTag); + NSData *newPublicKeyData = FIRInstanceIDKeyDataWithTag(newPublicKeyTag); + return [oldPublicKeyData isEqualToData:newPublicKeyData]; +} + +// The legacy value is hardcoded to be the same key. This is a potential problem in shared keychain +// environments. +NSString *FIRInstanceIDLegacyPublicTagWithSubtype(NSString *subtype) { + NSString *prefix = kFIRInstanceIDStoreKeyPrefix; + return [NSString stringWithFormat:@"%@%@%@", prefix, subtype, kFIRInstanceIDStoreKeyPublic]; +} + +// The legacy value is hardcoded to be the same key. This is a potential problem in shared keychain +// environments. +NSString *FIRInstanceIDLegacyPrivateTagWithSubtype(NSString *subtype) { + NSString *prefix = kFIRInstanceIDStoreKeyPrefix; + return [NSString stringWithFormat:@"%@%@%@", prefix, subtype, kFIRInstanceIDStoreKeyPrivate]; +} + +NSString *FIRInstanceIDPublicTagWithSubtype(NSString *subtype) { + static NSString *publicTag; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSString *mainAppBundleID = FIRInstanceIDAppIdentifier(); + publicTag = + [NSString stringWithFormat:@"%@%@", kFIRInstanceIDKeyPairPublicTagPrefix, mainAppBundleID]; + }); + return publicTag; +} + +NSString *FIRInstanceIDPrivateTagWithSubtype(NSString *subtype) { + static NSString *privateTag; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSString *mainAppBundleID = FIRInstanceIDAppIdentifier(); + privateTag = + [NSString stringWithFormat:@"%@%@", kFIRInstanceIDKeyPairPrivateTagPrefix, mainAppBundleID]; + }); + return privateTag; +} + +NSString *FIRInstanceIDCreationTimeKeyWithSubtype(NSString *subtype) { + return [NSString stringWithFormat:@"%@%@%@", subtype, kFIRInstanceIDStoreKeySubtype, + kFIRInstanceIDStoreKeyGenerationTime]; +} + +@interface FIRInstanceIDKeyPairStore () + +@property(nonatomic, readwrite, strong) FIRInstanceIDBackupExcludedPlist *plist; +@property(nonatomic, readwrite, strong) FIRInstanceIDKeyPair *keyPair; +@property(nonatomic, readwrite, assign) NSInteger keychainEntitlementsErrorCount; + +@end + +@implementation FIRInstanceIDKeyPairStore + +- (instancetype)init { + self = [super init]; + if (self) { + NSString *fileName = [[self class] keyStoreFileName]; + _plist = + [[FIRInstanceIDBackupExcludedPlist alloc] initWithFileName:fileName + subDirectory:kFIRInstanceIDSubDirectoryName]; + } + return self; +} + +- (BOOL)invalidateKeyPairsIfNeeded { + // Currently keypairs are always invalidated if self.plist is missing. This normally indicates + // a fresh install (or an uninstall/reinstall). In those situations the key pairs should be + // deleted. + // NOTE: Although this class refers to multiple key pairs, with different subtypes, in practice + // only a single subtype is currently supported. (b/64906549) + if (![self.plist doesFileExist]) { + // A fresh install, clear all the key pairs in the key chain. Do not perform migration as all + // key pairs are gone. + [self deleteSavedKeyPairWithSubtype:kFIRInstanceIDKeyPairSubType handler:nil]; + return YES; + } + // Not a fresh install, perform migration at early state. + [self migrateKeyPairCacheIfNeededWithHandler:nil]; + return NO; +} + +- (BOOL)hasCachedKeyPairs { + NSError *error; + if ([self cachedKeyPairWithSubtype:kFIRInstanceIDKeyPairSubType error:&error] == nil) { + if (error) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeKeyPairStore000, + @"Failed to get cached keyPair %@", error); + } + error = nil; + [self removeKeyPairCreationTimePlistWithError:&error]; + if (error) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeKeyPairStore001, + @"Failed to remove keyPair creationTime plist %@", error); + } + return NO; + } + return YES; +} + +- (NSString *)appIdentityWithError:(NSError *__autoreleasing *)error { + // Load the keyPair from Keychain (or generate a key pair, if this is the first run of the app). + FIRInstanceIDKeyPair *keyPair = [self loadKeyPairWithError:error]; + if (!keyPair) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeKeyPairStoreCouldNotLoadKeyPair, + @"Keypair could not be loaded from Keychain. Error: %@", (*error)); + return nil; + } + + if (error) { + *error = nil; + } + NSString *appIdentity = FIRInstanceIDAppIdentity(keyPair); + if (!appIdentity.length) { + if (error) { + *error = [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeUnknown]; + } + } + return appIdentity; +} + +- (FIRInstanceIDKeyPair *)loadKeyPairWithError:(NSError **)error { + // In case we call this from different threads we don't want to generate or fetch the + // keyPair multiple times. Once we have a keyPair in the cache it would mostly be used + // from there. + @synchronized(self) { + if ([self.keyPair isValid]) { + return self.keyPair; + } + + if (self.keychainEntitlementsErrorCount >= kMaxMissingEntitlementErrorCount) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeKeyPairStore002, + @"Keychain not accessible, Entitlements missing error (-34018). " + @"Will not check token in cache."); + return nil; + } + + if (!self.keyPair) { + self.keyPair = [self validCachedKeyPairWithSubtype:kFIRInstanceIDKeyPairSubType error:error]; + } + + if ((*error).code == kFIRInstanceIDSecMissingEntitlementErrorCode) { + self.keychainEntitlementsErrorCount++; + } + + if (!self.keyPair) { + self.keyPair = [self generateAndSaveKeyWithSubtype:kFIRInstanceIDKeyPairSubType + creationTime:FIRInstanceIDCurrentTimestampInSeconds() + error:error]; + } + } + return self.keyPair; +} + +// TODO(chliangGoogle: Remove subtype support, as it's not being used. +- (FIRInstanceIDKeyPair *)generateAndSaveKeyWithSubtype:(NSString *)subtype + creationTime:(int64_t)creationTime + error:(NSError **)error { + NSString *publicKeyTag = FIRInstanceIDPublicTagWithSubtype(subtype); + NSString *privateKeyTag = FIRInstanceIDPrivateTagWithSubtype(subtype); + FIRInstanceIDKeyPair *keyPair = + [[FIRInstanceIDKeychain sharedInstance] generateKeyPairWithPrivateTag:privateKeyTag + publicTag:publicKeyTag]; + + if (![keyPair isValid]) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeKeyPairStore003, + @"Unable to generate keypair."); + return nil; + } + + NSString *creationTimeKey = FIRInstanceIDCreationTimeKeyWithSubtype(subtype); + NSDictionary *keyPairData = @{creationTimeKey : @(creationTime)}; + + if (error) { + *error = nil; + } + NSMutableDictionary *allKeyPairs = [[self.plist contentAsDictionary] mutableCopy]; + if (allKeyPairs.count) { + [allKeyPairs addEntriesFromDictionary:keyPairData]; + } else { + allKeyPairs = [keyPairData mutableCopy]; + } + if (![self.plist writeDictionary:allKeyPairs error:error]) { + [FIRInstanceIDKeyPairStore deleteKeyPairWithPrivateTag:privateKeyTag + publicTag:publicKeyTag + handler:nil]; + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeKeyPairStore004, + @"Failed to save keypair data to plist %@", error ? *error : @""); + return nil; + } + + return keyPair; +} + +- (FIRInstanceIDKeyPair *)validCachedKeyPairWithSubtype:(NSString *)subtype + error:(NSError **)error { + // On a new install (or if the ID was deleted), the plist will be missing, which should trigger + // a reset of the key pairs in Keychain (if they exist). + NSDictionary *allKeyPairs = [self.plist contentAsDictionary]; + NSString *creationTimeKey = FIRInstanceIDCreationTimeKeyWithSubtype(subtype); + + if (allKeyPairs[creationTimeKey] > 0) { + return [self cachedKeyPairWithSubtype:subtype error:error]; + } else { + // There is no need to reset keypair again here as FIRInstanceID init call is always + // going to be ahead of this call, which already trigger keypair reset if it's new install + FIRInstanceIDErrorCode code = kFIRInstanceIDErrorCodeInvalidKeyPairCreationTime; + *error = [NSError errorWithFIRInstanceIDErrorCode:code]; + return nil; + } +} + +- (FIRInstanceIDKeyPair *)cachedKeyPairWithSubtype:(NSString *)subtype + error:(NSError *__autoreleasing *)error { + // base64 encoded keys + NSString *publicKeyTag = FIRInstanceIDPublicTagWithSubtype(subtype); + NSString *privateKeyTag = FIRInstanceIDPrivateTagWithSubtype(subtype); + return [FIRInstanceIDKeyPairStore keyPairForPrivateKeyTag:privateKeyTag + publicKeyTag:publicKeyTag + error:error]; +} + ++ (FIRInstanceIDKeyPair *)keyPairForPrivateKeyTag:(NSString *)privateKeyTag + publicKeyTag:(NSString *)publicKeyTag + error:(NSError *__autoreleasing *)error { + _FIRInstanceIDDevAssert([privateKeyTag length] && [publicKeyTag length], + @"Invalid tags for keypair"); + if (![privateKeyTag length] || ![publicKeyTag length]) { + if (error) { + *error = [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeInvalidKeyPairTags]; + } + return nil; + } + + SecKeyRef privateKeyRef = FIRInstanceIDCachedKeyRefWithTag(privateKeyTag); + SecKeyRef publicKeyRef = FIRInstanceIDCachedKeyRefWithTag(publicKeyTag); + + if (!privateKeyRef || !publicKeyRef) { + if (error) { + *error = [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeMissingKeyPair]; + } + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeKeyPair000, + @"No keypair info is retrieved with tag %@", privateKeyTag); + return nil; + } + + NSData *publicKeyData = FIRInstanceIDKeyDataWithTag(publicKeyTag); + NSData *privateKeyData = FIRInstanceIDKeyDataWithTag(privateKeyTag); + + FIRInstanceIDKeyPair *keyPair = [[FIRInstanceIDKeyPair alloc] initWithPrivateKey:privateKeyRef + publicKey:publicKeyRef + publicKeyData:publicKeyData + privateKeyData:privateKeyData]; + return keyPair; +} + +// Migrates from keypair saved under legacy keys (hardcoded value) to dynamic keys (stable, but +// unique for the app's bundle id +- (void)migrateKeyPairCacheIfNeededWithHandler:(void (^)(NSError *error))handler { + // Attempt to load keypair using legacy keys + NSString *legacyPublicKeyTag = + FIRInstanceIDLegacyPublicTagWithSubtype(kFIRInstanceIDKeyPairSubType); + NSString *legacyPrivateKeyTag = + FIRInstanceIDLegacyPrivateTagWithSubtype(kFIRInstanceIDKeyPairSubType); + NSError *error; + FIRInstanceIDKeyPair *keyPair = + [FIRInstanceIDKeyPairStore keyPairForPrivateKeyTag:legacyPrivateKeyTag + publicKeyTag:legacyPublicKeyTag + error:&error]; + if (![keyPair isValid]) { + if (handler) { + handler(nil); + } + return; + } + + // Check whether migration already done. + NSString *publicKeyTag = FIRInstanceIDPublicTagWithSubtype(kFIRInstanceIDKeyPairSubType); + if (FIRInstanceIDHasMigratedKeyPair(legacyPublicKeyTag, publicKeyTag)) { + if (handler) { + handler(nil); + } + return; + } + + // Also cache locally since we are sure to use the migrated key pair. + self.keyPair = keyPair; + + // Either new key pair doesn't exist or it's different than legacy key pair, start the migration. + NSString *privateKeyTag = FIRInstanceIDPrivateTagWithSubtype(kFIRInstanceIDKeyPairSubType); + [self updateKeyRef:keyPair.publicKey + withTag:publicKeyTag + handler:^(NSError *error) { + if (error) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeKeyPairMigrationError, + @"Unable to migrate key pair from legacy ones."); + } + [self updateKeyRef:keyPair.privateKey + withTag:privateKeyTag + handler:^(NSError *error) { + if (error) { + FIRInstanceIDLoggerError( + kFIRInstanceIDMessageCodeKeyPairMigrationError, + @"Unable to migrate key pair from legacy ones."); + return; + } + FIRInstanceIDLoggerDebug( + kFIRInstanceIDMessageCodeKeyPairMigrationSuccess, + @"Successfully migrated the key pair from legacy ones."); + if (handler) { + handler(error); + } + }]; + }]; +} + +// Used for migrating from legacy tags to updated tags. The legacy keychain is not deleted for +// backward compatibility. +// TODO(chliangGoogle) Delete the legacy keychain when GCM is fully deprecated. +- (void)updateKeyRef:(SecKeyRef)keyRef + withTag:(NSString *)tag + handler:(void (^)(NSError *error))handler { + NSData *updatedTagData = [tag dataUsingEncoding:NSUTF8StringEncoding]; + + // Always delete the old keychain before adding a new one to avoid conflicts. + NSDictionary *deleteQuery = @{ + (__bridge id)kSecAttrApplicationTag : updatedTagData, + (__bridge id)kSecClass : (__bridge id)kSecClassKey, + (__bridge id)kSecAttrKeyType : (__bridge id)kSecAttrKeyTypeRSA, + (__bridge id)kSecReturnRef : @(YES), + }; + + [[FIRInstanceIDKeychain sharedInstance] + removeItemWithQuery:deleteQuery + handler:^(NSError *error) { + if (error) { + if (handler) { + handler(error); + } + return; + } + NSDictionary *addQuery = @{ + (__bridge id)kSecAttrApplicationTag : updatedTagData, + (__bridge id)kSecClass : (__bridge id)kSecClassKey, + (__bridge id)kSecValueRef : (__bridge id)keyRef, + (__bridge id) + kSecAttrAccessible : (__bridge id)kSecAttrAccessibleAlwaysThisDeviceOnly, + }; + [[FIRInstanceIDKeychain sharedInstance] addItemWithQuery:addQuery + handler:^(NSError *addError) { + if (handler) { + handler(addError); + } + }]; + }]; +} + +- (void)deleteSavedKeyPairWithSubtype:(NSString *)subtype + handler:(void (^)(NSError *error))handler { + NSDictionary *allKeyPairs = [self.plist contentAsDictionary]; + + NSString *publicKeyTag = FIRInstanceIDPublicTagWithSubtype(subtype); + NSString *privateKeyTag = FIRInstanceIDPrivateTagWithSubtype(subtype); + NSString *creationTimeKey = FIRInstanceIDCreationTimeKeyWithSubtype(subtype); + + // remove the creation time + if (allKeyPairs[creationTimeKey] > 0) { + NSMutableDictionary *newKeyPairs = [NSMutableDictionary dictionaryWithDictionary:allKeyPairs]; + [newKeyPairs removeObjectForKey:creationTimeKey]; + + NSError *plistError; + if (![self.plist writeDictionary:newKeyPairs error:&plistError]) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeKeyPairStore006, + @"Unable to remove keypair creation time from plist %@", plistError); + } + } + + [FIRInstanceIDKeyPairStore + deleteKeyPairWithPrivateTag:privateKeyTag + publicTag:publicKeyTag + handler:^(NSError *error) { + // Delete legacy key pairs from GCM/FCM If they exist. All key pairs + // should be deleted when app is newly installed. + NSString *legacyPublicKeyTag = + FIRInstanceIDLegacyPublicTagWithSubtype(subtype); + NSString *legacyPrivateKeyTag = + FIRInstanceIDLegacyPrivateTagWithSubtype(subtype); + [FIRInstanceIDKeyPairStore + deleteKeyPairWithPrivateTag:legacyPrivateKeyTag + publicTag:legacyPublicKeyTag + handler:nil]; + if (error) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeKeyPairStore007, + @"Unable to remove RSA keypair, error: %@", + error); + if (handler) { + handler(error); + } + } else { + self.keyPair = nil; + if (handler) { + handler(nil); + } + } + }]; +} + ++ (void)deleteKeyPairWithPrivateTag:(NSString *)privateTag + publicTag:(NSString *)publicTag + handler:(void (^)(NSError *))handler { + NSDictionary *queryPublicKey = FIRInstanceIDKeyPairQuery(publicTag, NO, NO); + NSDictionary *queryPrivateKey = FIRInstanceIDKeyPairQuery(privateTag, NO, NO); + + // Always remove public key first because it is the key we generate IID. + [[FIRInstanceIDKeychain sharedInstance] removeItemWithQuery:queryPublicKey + handler:^(NSError *error) { + if (error) { + if (handler) { + handler(error); + } + return; + } + [[FIRInstanceIDKeychain sharedInstance] + removeItemWithQuery:queryPrivateKey + handler:^(NSError *error) { + if (error) { + if (handler) { + handler(error); + } + return; + } + if (handler) { + handler(nil); + } + }]; + }]; +} + +- (BOOL)removeKeyPairCreationTimePlistWithError:(NSError *__autoreleasing *)error { + if (![self.plist deleteFile:error]) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeKeyPairStore008, + @"Unable to delete keypair creation times plist"); + return NO; + } + return YES; +} + ++ (NSString *)keyStoreFileName { + return kFIRInstanceIDKeyPairStoreFileName; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairUtilities.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairUtilities.h new file mode 100644 index 0000000..b8baa6a --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairUtilities.h @@ -0,0 +1,36 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FIRInstanceIDKeyPair; + +/** + * A web-safe base64 encoded string with no padding. + * + * @param data The data to encode. + * + * @return A web-safe base 64 encoded string with no padding. + */ +FOUNDATION_EXPORT NSString *FIRInstanceIDWebSafeBase64(NSData *data); + +FOUNDATION_EXPORT NSData *FIRInstanceIDSHA1(NSData *data); + +FOUNDATION_EXPORT NSDictionary *FIRInstanceIDKeyPairQuery(NSString *tag, + BOOL addReturnAttr, + BOOL returnData); + +FOUNDATION_EXPORT NSString *FIRInstanceIDAppIdentity(FIRInstanceIDKeyPair *keyPair); diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairUtilities.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairUtilities.m new file mode 100644 index 0000000..3298752 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeyPairUtilities.m @@ -0,0 +1,84 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDKeyPairUtilities.h" + +#import + +#import "FIRInstanceIDDefines.h" +#import "FIRInstanceIDKeyPair.h" +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDStringEncoding.h" + +NSString *FIRInstanceIDWebSafeBase64(NSData *data) { + // Websafe encoding with no padding. + FIRInstanceIDStringEncoding *encoding = + [FIRInstanceIDStringEncoding rfc4648Base64WebsafeStringEncoding]; + [encoding setDoPad:NO]; + return [encoding encode:data]; +} + +NSData *FIRInstanceIDSHA1(NSData *data) { + unsigned int outputLength = CC_SHA1_DIGEST_LENGTH; + unsigned char output[outputLength]; + unsigned int length = (unsigned int)[data length]; + + CC_SHA1(data.bytes, length, output); + return [NSMutableData dataWithBytes:output length:outputLength]; +} + +NSDictionary *FIRInstanceIDKeyPairQuery(NSString *tag, BOOL addReturnAttr, BOOL returnData) { + NSMutableDictionary *queryKey = [NSMutableDictionary dictionary]; + NSData *tagData = [tag dataUsingEncoding:NSUTF8StringEncoding]; + + queryKey[(__bridge id)kSecClass] = (__bridge id)kSecClassKey; + queryKey[(__bridge id)kSecAttrApplicationTag] = tagData; + queryKey[(__bridge id)kSecAttrKeyType] = (__bridge id)kSecAttrKeyTypeRSA; + if (addReturnAttr) { + if (returnData) { + queryKey[(__bridge id)kSecReturnData] = @(YES); + } else { + queryKey[(__bridge id)kSecReturnRef] = @(YES); + } + } + return queryKey; +} + +NSString *FIRInstanceIDAppIdentity(FIRInstanceIDKeyPair *keyPair) { + // An Instance-ID is a 64 bit (8 byte) integer with a fixed 4-bit header of 0111 (=^ 0x7). + // The variable 60 bits are obtained by truncating the SHA1 of the app-instance's public key. + SecKeyRef publicKeyRef = [keyPair publicKey]; + if (!publicKeyRef) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeKeyPair002, + @"Unable to create a valid asymmetric crypto key"); + return nil; + } + NSData *publicKeyData = keyPair.publicKeyData; + NSData *publicKeySHA1 = FIRInstanceIDSHA1(publicKeyData); + + const uint8_t *bytes = publicKeySHA1.bytes; + NSMutableData *identityData = [NSMutableData dataWithData:publicKeySHA1]; + + uint8_t b0 = bytes[0]; + // Take the first byte and make the initial four 7 by initially making the initial 4 bits 0 + // and then adding 0x70 to it. + b0 = 0x70 + (0xF & b0); + // failsafe should give you back b0 itself + b0 = (b0 & 0xFF); + [identityData replaceBytesInRange:NSMakeRange(0, 1) withBytes:&b0]; + NSData *data = [identityData subdataWithRange:NSMakeRange(0, 8 * sizeof(Byte))]; + return FIRInstanceIDWebSafeBase64(data); +} diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeychain.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeychain.h new file mode 100644 index 0000000..0bd2a49 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeychain.h @@ -0,0 +1,76 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +/* The Keychain error domain */ +extern NSString *const kFIRInstanceIDKeychainErrorDomain; + +@class FIRInstanceIDKeyPair; + +/* + * Wrapping the keychain operations in a serialize queue. This is to avoid keychain operation + * blocking main queue. + */ +@interface FIRInstanceIDKeychain : NSObject + +/** + * FIRInstanceIDKeychain. + * + * @return A shared instance of FIRInstanceIDKeychain. + */ ++ (instancetype)sharedInstance; + +/** + * Get keychain items matching the given a query. + * + * @param keychainQuery The keychain query. + * + * @return An CFTypeRef result matching the provided inputs. + */ +- (CFTypeRef)itemWithQuery:(NSDictionary *)keychainQuery; + +/** + * Remove the cached items from the keychain matching the query. + * + * @param keychainQuery The keychain query. + * @param handler The callback handler which is invoked when the remove operation is + * complete, with an error if there is any. + */ +- (void)removeItemWithQuery:(NSDictionary *)keychainQuery handler:(void (^)(NSError *error))handler; + +/** + * Add the item with a given query. + * + * @param keychainQuery The keychain query. + * @param handler The callback handler which is invoked when the add operation is + * complete, with an error if there is any. + */ +- (void)addItemWithQuery:(NSDictionary *)keychainQuery handler:(void (^)(NSError *))handler; + +#pragma mark - Keypair +/** + * Generate a public/private key pair given their tags. + * + * @param privateTag The private tag associated with the private key. + * @param publicTag The public tag associated with the public key. + * + * @return A new FIRInstanceIDKeyPair object. + */ +- (FIRInstanceIDKeyPair *)generateKeyPairWithPrivateTag:(NSString *)privateTag + publicTag:(NSString *)publicTag; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeychain.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeychain.m new file mode 100644 index 0000000..c5f1606 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDKeychain.m @@ -0,0 +1,175 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDKeychain.h" + +#import "FIRInstanceIDKeyPair.h" +#import "FIRInstanceIDKeyPairUtilities.h" +#import "FIRInstanceIDLogger.h" + +NSString *const kFIRInstanceIDKeychainErrorDomain = @"com.google.iid"; + +static const NSUInteger kRSA2048KeyPairSize = 2048; + +@interface FIRInstanceIDKeychain () { + dispatch_queue_t _keychainOperationQueue; +} + +@end + +@implementation FIRInstanceIDKeychain + ++ (instancetype)sharedInstance { + static FIRInstanceIDKeychain *sharedInstance; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedInstance = [[FIRInstanceIDKeychain alloc] init]; + }); + return sharedInstance; +} + +- (instancetype)init { + self = [super init]; + if (self) { + _keychainOperationQueue = + dispatch_queue_create("com.google.FirebaseInstanceID.Keychain", DISPATCH_QUEUE_SERIAL); + } + return self; +} + +- (CFTypeRef)itemWithQuery:(NSDictionary *)keychainQuery { + __block SecKeyRef keyRef = NULL; + dispatch_sync(_keychainOperationQueue, ^{ + OSStatus status = + SecItemCopyMatching((__bridge CFDictionaryRef)keychainQuery, (CFTypeRef *)&keyRef); + + if (status != noErr) { + if (keyRef) { + CFRelease(keyRef); + } + FIRInstanceIDLoggerDebug( + kFIRInstanceIDKeychainReadItemError, + @"No info is retrieved from Keychain OSStatus: %d with the keychain query %@", + (int)status, keychainQuery); + } + }); + return keyRef; +} + +- (void)removeItemWithQuery:(NSDictionary *)keychainQuery + handler:(void (^)(NSError *error))handler { + dispatch_async(_keychainOperationQueue, ^{ + OSStatus status = SecItemDelete((__bridge CFDictionaryRef)keychainQuery); + if (status != noErr) { + FIRInstanceIDLoggerDebug( + kFIRInstanceIDKeychainDeleteItemError, + @"Couldn't delete item from Keychain OSStatus: %d with the keychain query %@", + (int)status, keychainQuery); + } + + if (handler) { + NSError *error; + // When item is not found, it should NOT be considered as an error. The operation should + // continue. + if (status != noErr && status != errSecItemNotFound) { + error = [NSError errorWithDomain:kFIRInstanceIDKeychainErrorDomain + code:status + userInfo:nil]; + } + dispatch_async(dispatch_get_main_queue(), ^{ + handler(error); + }); + } + }); +} + +- (void)addItemWithQuery:(NSDictionary *)keychainQuery handler:(void (^)(NSError *))handler { + dispatch_async(_keychainOperationQueue, ^{ + OSStatus status = SecItemAdd((__bridge CFDictionaryRef)keychainQuery, NULL); + + if (handler) { + NSError *error; + if (status != noErr) { + FIRInstanceIDLoggerWarning(kFIRInstanceIDKeychainAddItemError, + @"Couldn't add item to Keychain OSStatus: %d", (int)status); + error = [NSError errorWithDomain:kFIRInstanceIDKeychainErrorDomain + code:status + userInfo:nil]; + } + dispatch_async(dispatch_get_main_queue(), ^{ + handler(error); + }); + } + }); +} + +- (FIRInstanceIDKeyPair *)generateKeyPairWithPrivateTag:(NSString *)privateTag + publicTag:(NSString *)publicTag { + // TODO(chliangGoogle) this is called by appInstanceID, which is an internal API used by other + // Firebase teams, will see if we can make it async. + NSData *publicTagData = [publicTag dataUsingEncoding:NSUTF8StringEncoding]; + NSData *privateTagData = [privateTag dataUsingEncoding:NSUTF8StringEncoding]; + + NSDictionary *privateKeyAttr = @{ + (__bridge id)kSecAttrIsPermanent : @YES, + (__bridge id)kSecAttrApplicationTag : privateTagData, + (__bridge id)kSecAttrLabel : @"Firebase InstanceID Key Pair Private Key", + (__bridge id)kSecAttrAccessible : (__bridge id)kSecAttrAccessibleAlwaysThisDeviceOnly, + }; + + NSDictionary *publicKeyAttr = @{ + (__bridge id)kSecAttrIsPermanent : @YES, + (__bridge id)kSecAttrApplicationTag : publicTagData, + (__bridge id)kSecAttrLabel : @"Firebase InstanceID Key Pair Public Key", + (__bridge id)kSecAttrAccessible : (__bridge id)kSecAttrAccessibleAlwaysThisDeviceOnly, + }; + + NSDictionary *keyPairAttributes = @{ + (__bridge id)kSecAttrKeyType : (__bridge id)kSecAttrKeyTypeRSA, + (__bridge id)kSecAttrLabel : @"Firebase InstanceID Key Pair", + (__bridge id)kSecAttrKeySizeInBits : @(kRSA2048KeyPairSize), + (__bridge id)kSecPrivateKeyAttrs : privateKeyAttr, + (__bridge id)kSecPublicKeyAttrs : publicKeyAttr, + }; + + __block SecKeyRef privateKey = NULL; + __block SecKeyRef publicKey = NULL; + dispatch_sync(_keychainOperationQueue, ^{ + // SecKeyGeneratePair does not allow you to set kSetAttrAccessible on the keys. We need the keys + // to be accessible even when the device is locked (i.e. app is woken up during a push + // notification, or some background refresh). + OSStatus status = + SecKeyGeneratePair((__bridge CFDictionaryRef)keyPairAttributes, &publicKey, &privateKey); + if (status != noErr || publicKey == NULL || privateKey == NULL) { + FIRInstanceIDLoggerWarning(kFIRInstanceIDKeychainCreateKeyPairError, + @"Couldn't create keypair from Keychain OSStatus: %d", + (int)status); + } + }); + // Extract the actual public and private key data from the Keychain + NSDictionary *publicKeyDataQuery = FIRInstanceIDKeyPairQuery(publicTag, YES, YES); + NSDictionary *privateKeyDataQuery = FIRInstanceIDKeyPairQuery(privateTag, YES, YES); + + NSData *publicKeyData = (__bridge NSData *)[self itemWithQuery:publicKeyDataQuery]; + NSData *privateKeyData = (__bridge NSData *)[self itemWithQuery:privateKeyDataQuery]; + + return [[FIRInstanceIDKeyPair alloc] initWithPrivateKey:privateKey + publicKey:publicKey + publicKeyData:publicKeyData + privateKeyData:privateKeyData]; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDLogger.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDLogger.h new file mode 100644 index 0000000..ab93976 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDLogger.h @@ -0,0 +1,66 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRIMessageCode.h" + +// The convenience macros are only defined if they haven't already been defined. +#ifndef FIRInstanceIDLoggerInfo + +// Convenience macros that log to the shared GTMLogger instance. These macros +// are how users should typically log to FIRInstanceIDLogger. +#define FIRInstanceIDLoggerDebug(code, ...) \ + [FIRInstanceIDSharedLogger() logFuncDebug:__func__ messageCode:code msg:__VA_ARGS__] +#define FIRInstanceIDLoggerInfo(code, ...) \ + [FIRInstanceIDSharedLogger() logFuncInfo:__func__ messageCode:code msg:__VA_ARGS__] +#define FIRInstanceIDLoggerNotice(code, ...) \ + [FIRInstanceIDSharedLogger() logFuncNotice:__func__ messageCode:code msg:__VA_ARGS__] +#define FIRInstanceIDLoggerWarning(code, ...) \ + [FIRInstanceIDSharedLogger() logFuncWarning:__func__ messageCode:code msg:__VA_ARGS__] +#define FIRInstanceIDLoggerError(code, ...) \ + [FIRInstanceIDSharedLogger() logFuncError:__func__ messageCode:code msg:__VA_ARGS__] + +#endif // !defined(FIRInstanceIDLoggerInfo) + +@interface FIRInstanceIDLogger : NSObject + +- (void)logFuncDebug:(const char *)func + messageCode:(FIRInstanceIDMessageCode)messageCode + msg:(NSString *)fmt, ... NS_FORMAT_FUNCTION(3, 4); + +- (void)logFuncInfo:(const char *)func + messageCode:(FIRInstanceIDMessageCode)messageCode + msg:(NSString *)fmt, ... NS_FORMAT_FUNCTION(3, 4); + +- (void)logFuncNotice:(const char *)func + messageCode:(FIRInstanceIDMessageCode)messageCode + msg:(NSString *)fmt, ... NS_FORMAT_FUNCTION(3, 4); + +- (void)logFuncWarning:(const char *)func + messageCode:(FIRInstanceIDMessageCode)messageCode + msg:(NSString *)fmt, ... NS_FORMAT_FUNCTION(3, 4); + +- (void)logFuncError:(const char *)func + messageCode:(FIRInstanceIDMessageCode)messageCode + msg:(NSString *)fmt, ... NS_FORMAT_FUNCTION(3, 4); + +@end + +/** + * Instantiates and/or returns a shared GTMLogger used exclusively + * for InstanceID log messages. + * @return the shared GTMLogger instance + */ +FIRInstanceIDLogger *FIRInstanceIDSharedLogger(void); diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDLogger.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDLogger.m new file mode 100644 index 0000000..2600d3b --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDLogger.m @@ -0,0 +1,92 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDLogger.h" + +#import + +// Re-definition of FIRLogger service, as it is not included in :FIRAppHeaders target +NSString *const kFIRInstanceIDLoggerService = @"[Firebase/InstanceID]"; + +@implementation FIRInstanceIDLogger + +#pragma mark - Log Helpers + ++ (NSString *)formatMessageCode:(FIRInstanceIDMessageCode)messageCode { + return [NSString stringWithFormat:@"I-IID%06ld", (long)messageCode]; +} + +- (void)logFuncDebug:(const char *)func + messageCode:(FIRInstanceIDMessageCode)messageCode + msg:(NSString *)fmt, ... { + va_list args; + va_start(args, fmt); + FIRLogBasic(FIRLoggerLevelDebug, kFIRInstanceIDLoggerService, + [FIRInstanceIDLogger formatMessageCode:messageCode], fmt, args); + va_end(args); +} + +- (void)logFuncInfo:(const char *)func + messageCode:(FIRInstanceIDMessageCode)messageCode + msg:(NSString *)fmt, ... { + va_list args; + va_start(args, fmt); + FIRLogBasic(FIRLoggerLevelInfo, kFIRInstanceIDLoggerService, + [FIRInstanceIDLogger formatMessageCode:messageCode], fmt, args); + va_end(args); +} + +- (void)logFuncNotice:(const char *)func + messageCode:(FIRInstanceIDMessageCode)messageCode + msg:(NSString *)fmt, ... { + va_list args; + va_start(args, fmt); + FIRLogBasic(FIRLoggerLevelNotice, kFIRInstanceIDLoggerService, + [FIRInstanceIDLogger formatMessageCode:messageCode], fmt, args); + va_end(args); +} + +- (void)logFuncWarning:(const char *)func + messageCode:(FIRInstanceIDMessageCode)messageCode + msg:(NSString *)fmt, ... { + va_list args; + va_start(args, fmt); + FIRLogBasic(FIRLoggerLevelWarning, kFIRInstanceIDLoggerService, + [FIRInstanceIDLogger formatMessageCode:messageCode], fmt, args); + va_end(args); +} + +- (void)logFuncError:(const char *)func + messageCode:(FIRInstanceIDMessageCode)messageCode + msg:(NSString *)fmt, ... { + va_list args; + va_start(args, fmt); + FIRLogBasic(FIRLoggerLevelError, kFIRInstanceIDLoggerService, + [FIRInstanceIDLogger formatMessageCode:messageCode], fmt, args); + va_end(args); +} + +@end + +FIRInstanceIDLogger *FIRInstanceIDSharedLogger() { + static dispatch_once_t onceToken; + static FIRInstanceIDLogger *logger; + dispatch_once(&onceToken, ^{ + logger = [[FIRInstanceIDLogger alloc] init]; + }); + + return logger; +} diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStore.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStore.h new file mode 100644 index 0000000..2b4a68a --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStore.h @@ -0,0 +1,183 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class FIRInstanceIDBackupExcludedPlist; +@class FIRInstanceIDCheckinPreferences; +@class FIRInstanceIDCheckinStore; +@class FIRInstanceIDTokenInfo; +@class FIRInstanceIDTokenStore; + +@class FIRInstanceIDStore; +@protocol FIRInstanceIDStoreDelegate + +/** + * This is called when the store has decided to invalide its tokens associated with the + * previous checkin credentials. After deleting the tokens locally, it calls this method + * to notify the delegate of the change. If possible, the delegate should use this time + * to request the invalidation of the tokens on the server as well. + */ +- (void)store:(FIRInstanceIDStore *)store + didDeleteFCMScopedTokensForCheckin:(FIRInstanceIDCheckinPreferences *)checkin; + +@end + +/** + * Used to persist the InstanceID tokens. This is also used to cache the Checkin + * credentials. The store also checks for stale entries in the store and + * let's us know if things in the store are stale or not. It does not however + * acts on stale entries in anyway. + */ +@interface FIRInstanceIDStore : NSObject + +/** + * The delegate set in the initializer which is notified of changes in the store. + */ +@property(nonatomic, readonly, weak) NSObject *delegate; + +- (instancetype)init __attribute__((unavailable("Use initWithDelegate: instead."))); + +/** + * Initialize a default store to persist InstanceID tokens and options. + * + * @param delegate The delegate with which to be notified of changes in the store. + * @return Store to persist InstanceID tokens. + */ +- (instancetype)initWithDelegate:(NSObject *)delegate; + +/** + * Initialize a store with the token store used to persist tokens, and a checkin store. + * Used for testing. + * + * @param checkinStore Persistent store that persists checkin preferences. + * @param tokenStore Persistent store that persists tokens. + * + * @return Store to persist InstanceID tokens and options. + */ +- (instancetype)initWithCheckinStore:(FIRInstanceIDCheckinStore *)checkinStore + tokenStore:(FIRInstanceIDTokenStore *)tokenStore + delegate:(NSObject *)delegate + NS_DESIGNATED_INITIALIZER; + +#pragma mark - Save +/** + * Save the instanceID token info to the store. + * + * @param tokenInfo The token info to store. + * @param handler The callback handler which is invoked when the operation is complete, + * with an error if there is any. + */ +- (void)saveTokenInfo:(FIRInstanceIDTokenInfo *)tokenInfo handler:(void (^)(NSError *))handler; + +#pragma mark - Get + +/** + * Get the cached token info. + * + * @param authorizedEntity The authorized entity for which we want the token. + * @param scope The scope for which we want the token. + * + * @return The cached token info if any for the given authorizedEntity and scope else + * returns nil. + */ +- (FIRInstanceIDTokenInfo *)tokenInfoWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope; +/** + * Return all cached token infos from the Keychain. + * + * @return The cached token infos, if any, that are stored in the Keychain. + */ +- (NSArray *)cachedTokenInfos; + +#pragma mark - Delete + +/** + * Remove the cached token for a given authorizedEntity and scope. If the token was never + * cached or deleted from the cache before this is a no-op. + * + * @param authorizedEntity The authorizedEntity for the cached token. + * @param scope The scope for the cached token + */ +- (void)removeCachedTokenWithAuthorizedEntity:(NSString *)authorizedEntity scope:(NSString *)scope; + +/** + * Removes all cached tokens from the persistent store. In case deleting the cached tokens + * fails we try to delete the backup excluded plist that stores the tokens. + * + * @param handler The callback handler which is invoked when the operation is complete, + * with an error if there is any. + * + */ +- (void)removeAllCachedTokensWithHandler:(nullable void (^)(NSError *error))handler; + +#pragma mark - Persisting Checkin Preferences + +/** + * Save the checkin preferences + * + * @param preferences Checkin preferences to save. + * @param handler The callback handler which is invoked when the operation is complete, + * with an error if there is any. + */ +- (void)saveCheckinPreferences:(FIRInstanceIDCheckinPreferences *)preferences + handler:(nullable void (^)(NSError *error))handler; + +/** + * Return the cached checkin preferences. + * + * @return Checkin preferences. + */ +- (FIRInstanceIDCheckinPreferences *)cachedCheckinPreferences; + +/** + * Remove the cached checkin preferences from the store. + * + * @param handler The callback handler which is invoked when the operation is complete, + * with an error if there is any. + */ +- (void)removeCheckinPreferencesWithHandler:(nullable void (^)(NSError *error))handler; + +#pragma mark - Standard Directory sub-directory + +/** + * Check if supported directory has InstanceID subdirectory + * + * @return YES if the Application Support directory has InstanceID subdirectory else NO. + */ ++ (BOOL)hasSubDirectory:(NSString *)subDirectoryName; + +/** + * Create InstanceID subdirectory in Application support directory. + * + * @return YES if the subdirectory was created successfully else NO. + */ ++ (BOOL)createSubDirectory:(NSString *)subDirectoryName; + +/** + * Removes Application Support subdirectory for InstanceID. + * + * @param error The error object if any while trying to delete the sub-directory. + * + * @return YES if the deletion was successful else NO. + */ ++ (BOOL)removeSubDirectory:(NSString *)subDirectoryName error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStore.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStore.m new file mode 100644 index 0000000..7467cda --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStore.m @@ -0,0 +1,240 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDStore.h" + +#import "FIRInstanceIDCheckinPreferences.h" +#import "FIRInstanceIDCheckinStore.h" +#import "FIRInstanceIDConstants.h" +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDTokenStore.h" +#import "FIRInstanceIDVersionUtilities.h" + +// NOTE: These values should be in sync with what InstanceID saves in as. +static NSString *const kCheckinFileName = @"g-checkin"; + +// APNS token (use the old key value i.e. with prefix GMS) +static NSString *const kFIRInstanceIDLibraryVersion = @"GMSInstanceID-version"; + +@interface FIRInstanceIDStore () + +@property(nonatomic, readwrite, strong) FIRInstanceIDCheckinStore *checkinStore; +@property(nonatomic, readwrite, strong) FIRInstanceIDTokenStore *tokenStore; + +@end + +@implementation FIRInstanceIDStore + +- (instancetype)initWithDelegate:(NSObject *)delegate { + FIRInstanceIDCheckinStore *checkinStore = [[FIRInstanceIDCheckinStore alloc] + initWithCheckinPlistFileName:kCheckinFileName + subDirectoryName:kFIRInstanceIDSubDirectoryName]; + + FIRInstanceIDTokenStore *tokenStore = [FIRInstanceIDTokenStore defaultStore]; + + return [self initWithCheckinStore:checkinStore tokenStore:tokenStore delegate:delegate]; +} + +- (instancetype)initWithCheckinStore:(FIRInstanceIDCheckinStore *)checkinStore + tokenStore:(FIRInstanceIDTokenStore *)tokenStore + delegate:(NSObject *)delegate { + self = [super init]; + if (self) { + _checkinStore = checkinStore; + _tokenStore = tokenStore; + _delegate = delegate; + [self resetCredentialsIfNeeded]; + } + return self; +} + +#pragma mark - Upgrades + ++ (BOOL)hasSubDirectory:(NSString *)subDirectoryName { + NSString *subDirectoryPath = [self pathForSupportSubDirectory:subDirectoryName]; + BOOL isDirectory; + if (![[NSFileManager defaultManager] fileExistsAtPath:subDirectoryPath + isDirectory:&isDirectory]) { + return NO; + } else if (!isDirectory) { + return NO; + } + return YES; +} + ++ (NSSearchPathDirectory)supportedDirectory { +#if TARGET_OS_TV + return NSCachesDirectory; +#else + return NSApplicationSupportDirectory; +#endif +} + ++ (NSString *)pathForSupportSubDirectory:(NSString *)subDirectoryName { + NSArray *directoryPaths = + NSSearchPathForDirectoriesInDomains([self supportedDirectory], NSUserDomainMask, YES); + NSString *dirPath = directoryPaths.lastObject; + NSArray *components = @[ dirPath, subDirectoryName ]; + return [NSString pathWithComponents:components]; +} + ++ (BOOL)createSubDirectory:(NSString *)subDirectoryName { + NSString *subDirectoryPath = [self pathForSupportSubDirectory:subDirectoryName]; + BOOL hasSubDirectory; + + if (![[NSFileManager defaultManager] fileExistsAtPath:subDirectoryPath + isDirectory:&hasSubDirectory]) { + NSError *error; + [[NSFileManager defaultManager] createDirectoryAtPath:subDirectoryPath + withIntermediateDirectories:YES + attributes:nil + error:&error]; + if (error) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeStore000, + @"Cannot create directory %@, error: %@", subDirectoryPath, error); + return NO; + } + } else { + if (!hasSubDirectory) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeStore001, + @"Found file instead of directory at %@", subDirectoryPath); + return NO; + } + } + return YES; +} + ++ (BOOL)removeSubDirectory:(NSString *)subDirectoryName error:(NSError **)error { + if ([self hasSubDirectory:subDirectoryName]) { + NSString *subDirectoryPath = [self pathForSupportSubDirectory:subDirectoryName]; + BOOL isDirectory; + if ([[NSFileManager defaultManager] fileExistsAtPath:subDirectoryPath + isDirectory:&isDirectory]) { + return [[NSFileManager defaultManager] removeItemAtPath:subDirectoryPath error:error]; + } + } + return YES; +} + +/** + * Reset the keychain preferences if the app had been deleted earlier and then reinstalled. + * Keychain preferences are not cleared in the above scenario so explicitly clear them. + * + * In case of an iCloud backup and restore the Keychain preferences should already be empty + * since the Keychain items are marked with `*BackupThisDeviceOnly`. + */ +- (void)resetCredentialsIfNeeded { + BOOL checkinPlistExists = [self.checkinStore hasCheckinPlist]; + // Checkin info existed in backup excluded plist. Should not be a fresh install. + if (checkinPlistExists) { + // FCM user can still have the old version of checkin, migration should only happen once. + [self.checkinStore migrateCheckinItemIfNeeded]; + return; + } + + // reset checkin in keychain if a fresh install. + // set the old checkin preferences to unregister pre-registered tokens + FIRInstanceIDCheckinPreferences *oldCheckinPreferences = + [self.checkinStore cachedCheckinPreferences]; + + if (oldCheckinPreferences) { + [self.checkinStore removeCheckinPreferencesWithHandler:^(NSError *error) { + if (!error) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeStore002, + @"Removed cached checkin preferences from Keychain."); + } else { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeStore003, + @"Couldn't remove cached checkin preferences. Error: %@", error); + } + if (oldCheckinPreferences.deviceID.length && oldCheckinPreferences.secretToken.length) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeStore006, + @"App reset detected. Will delete server registrations."); + // We don't really need to delete old FCM tokens created via IID auth tokens since + // those tokens are already hashed by APNS token as the has so creating a new + // token should automatically delete the old-token. + [self.delegate store:self didDeleteFCMScopedTokensForCheckin:oldCheckinPreferences]; + } else { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeStore009, + @"App reset detected but no valid checkin auth preferences found." + @" Will not delete server registrations."); + } + }]; + } +} + +#pragma mark - Get + +- (FIRInstanceIDTokenInfo *)tokenInfoWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope { + // TODO(chliangGoogle): If we don't have the token plist we should delete all the tokens from + // the keychain. This is because not having the plist signifies a backup and restore operation. + // In case the keychain has any tokens these would now be stale and therefore should be + // deleted. + if (![authorizedEntity length] || ![scope length]) { + return nil; + } + FIRInstanceIDTokenInfo *info = [self.tokenStore tokenInfoWithAuthorizedEntity:authorizedEntity + scope:scope]; + return info; +} + +- (NSArray *)cachedTokenInfos { + return [self.tokenStore cachedTokenInfos]; +} + +#pragma mark - Save + +- (void)saveTokenInfo:(FIRInstanceIDTokenInfo *)tokenInfo + handler:(void (^)(NSError *error))handler { + [self.tokenStore saveTokenInfo:tokenInfo handler:handler]; +} + +#pragma mark - Delete + +- (void)removeCachedTokenWithAuthorizedEntity:(NSString *)authorizedEntity scope:(NSString *)scope { + if (![authorizedEntity length] || ![scope length]) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeStore012, + @"Will not delete token with invalid entity: %@, scope: %@", + authorizedEntity, scope); + return; + } + [self.tokenStore removeTokenWithAuthorizedEntity:authorizedEntity scope:scope]; +} + +- (void)removeAllCachedTokensWithHandler:(void (^)(NSError *error))handler { + [self.tokenStore removeAllTokensWithHandler:handler]; +} + +#pragma mark - FIRInstanceIDCheckinCache protocol + +- (void)saveCheckinPreferences:(FIRInstanceIDCheckinPreferences *)preferences + handler:(void (^)(NSError *error))handler { + [self.checkinStore saveCheckinPreferences:preferences handler:handler]; +} + +- (FIRInstanceIDCheckinPreferences *)cachedCheckinPreferences { + return [self.checkinStore cachedCheckinPreferences]; +} + +- (void)removeCheckinPreferencesWithHandler:(void (^)(NSError *))handler { + [self.checkinStore removeCheckinPreferencesWithHandler:^(NSError *error) { + if (handler) { + handler(error); + } + }]; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStringEncoding.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStringEncoding.h new file mode 100644 index 0000000..8f2f369 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStringEncoding.h @@ -0,0 +1,66 @@ +// +// GTMStringEncoding.h +// +// Copyright 2010 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +// This is a copy of GTMStringEncoding. FIRInstanceID wants to avoid +// a CocoaPods GTM dependency. Hence we use our own version of StringEncoding. + +#import + +// A generic class for arbitrary base-2 to 128 string encoding and decoding. +@interface FIRInstanceIDStringEncoding : NSObject { + @private + NSData *charMapData_; + char *charMap_; + int reverseCharMap_[128]; + int shift_; + unsigned int mask_; + BOOL doPad_; + char paddingChar_; + int padLen_; +} + ++ (id)rfc4648Base64WebsafeStringEncoding; + +// Create a new, autoreleased GTMStringEncoding object with the given string, +// as described below. ++ (id)stringEncodingWithString:(NSString *)string; + +// Initialize a new GTMStringEncoding object with the string. +// +// The length of the string must be a power of 2, at least 2 and at most 128. +// Only 7-bit ASCII characters are permitted in the string. +// +// These characters are the canonical set emitted during encoding. +// If the characters have alternatives (e.g. case, easily transposed) then use +// addDecodeSynonyms: to configure them. +- (id)initWithString:(NSString *)string; + +// Indicates whether padding is performed during encoding. +- (BOOL)doPad; +- (void)setDoPad:(BOOL)doPad; + +// Sets the padding character to use during encoding. +- (void)setPaddingChar:(char)c; + +// Encode a raw binary buffer to a 7-bit ASCII string. +- (NSString *)encode:(NSData *)data; + +// Decode a 7-bit ASCII string to a raw binary buffer. +- (NSData *)decode:(NSString *)string; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStringEncoding.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStringEncoding.m new file mode 100644 index 0000000..64b6d3e --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDStringEncoding.m @@ -0,0 +1,202 @@ +#import "FIRInstanceIDDefines.h" + +// +// FIRInstanceIDStringEncoding.m +// +// Copyright 2009 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +// This is a copy of GTMStringEncoding. FIRInstanceID wants to avoid +// a CocoaPods GTM dependency. Hence we use our own version of StringEncoding. + +#import "FIRInstanceIDStringEncoding.h" + +enum { kUnknownChar = -1, kPaddingChar = -2, kIgnoreChar = -3 }; + +@implementation FIRInstanceIDStringEncoding + ++ (id)rfc4648Base64WebsafeStringEncoding { + FIRInstanceIDStringEncoding *ret = [self + stringEncodingWithString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"]; + + [ret setPaddingChar:'=']; + [ret setDoPad:YES]; + return ret; +} + +static inline int lcm(int a, int b) { + for (int aa = a, bb = b;;) { + if (aa == bb) + return aa; + else if (aa < bb) + aa += a; + else + bb += b; + } +} + ++ (id)stringEncodingWithString:(NSString *)string { + return [[FIRInstanceIDStringEncoding alloc] initWithString:string]; +} + +- (id)initWithString:(NSString *)string { + if ((self = [super init])) { + charMapData_ = [string dataUsingEncoding:NSASCIIStringEncoding]; + if (!charMapData_) { + // Unable to convert string to ASCII + return nil; + } + charMap_ = (char *)[charMapData_ bytes]; + NSUInteger length = [charMapData_ length]; + if (length < 2 || length > 128 || length & (length - 1)) { + // Length not a power of 2 between 2 and 128 + return nil; + } + + memset(reverseCharMap_, kUnknownChar, sizeof(reverseCharMap_)); + for (unsigned int i = 0; i < length; i++) { + if (reverseCharMap_[(int)charMap_[i]] != kUnknownChar) { + // Duplicate character at |i| + return nil; + } + reverseCharMap_[(int)charMap_[i]] = i; + } + + for (NSUInteger i = 1; i < length; i <<= 1) shift_++; + mask_ = (1 << shift_) - 1; + padLen_ = lcm(8, shift_) / shift_; + } + return self; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"", 1 << shift_, charMapData_]; +} + +- (BOOL)doPad { + return doPad_; +} + +- (void)setDoPad:(BOOL)doPad { + doPad_ = doPad; +} + +- (void)setPaddingChar:(char)c { + paddingChar_ = c; + reverseCharMap_[(int)c] = kPaddingChar; +} + +- (NSString *)encode:(NSData *)inData { + NSUInteger inLen = [inData length]; + if (inLen <= 0) { + // Empty input + return @""; + } + unsigned char *inBuf = (unsigned char *)[inData bytes]; + NSUInteger inPos = 0; + + NSUInteger outLen = (inLen * 8 + shift_ - 1) / shift_; + if (doPad_) { + outLen = ((outLen + padLen_ - 1) / padLen_) * padLen_; + } + NSMutableData *outData = [NSMutableData dataWithLength:outLen]; + unsigned char *outBuf = (unsigned char *)[outData mutableBytes]; + NSUInteger outPos = 0; + + unsigned int buffer = inBuf[inPos++]; + int bitsLeft = 8; + while (bitsLeft > 0 || inPos < inLen) { + if (bitsLeft < shift_) { + if (inPos < inLen) { + buffer <<= 8; + buffer |= (inBuf[inPos++] & 0xff); + bitsLeft += 8; + } else { + int pad = shift_ - bitsLeft; + buffer <<= pad; + bitsLeft += pad; + } + } + unsigned int idx = (buffer >> (bitsLeft - shift_)) & mask_; + bitsLeft -= shift_; + outBuf[outPos++] = charMap_[idx]; + } + + if (doPad_) { + while (outPos < outLen) outBuf[outPos++] = paddingChar_; + } + + _FIRInstanceIDDevAssert(outPos == outLen, @"Underflowed output buffer"); + [outData setLength:outPos]; + + return [[NSString alloc] initWithData:outData encoding:NSASCIIStringEncoding]; +} + +- (NSData *)decode:(NSString *)inString { + char *inBuf = (char *)[inString cStringUsingEncoding:NSASCIIStringEncoding]; + if (!inBuf) { + // Unable to convert buffer to ASCII + return nil; + } + NSUInteger inLen = strlen(inBuf); + + NSUInteger outLen = inLen * shift_ / 8; + NSMutableData *outData = [NSMutableData dataWithLength:outLen]; + unsigned char *outBuf = (unsigned char *)[outData mutableBytes]; + NSUInteger outPos = 0; + + int buffer = 0; + int bitsLeft = 0; + BOOL expectPad = NO; + for (NSUInteger i = 0; i < inLen; i++) { + int val = reverseCharMap_[(int)inBuf[i]]; + switch (val) { + case kIgnoreChar: + break; + case kPaddingChar: + expectPad = YES; + break; + case kUnknownChar: + // Unexpected data at input pos |i| + return nil; + default: + if (expectPad) { + // Expected further padding characters + return nil; + } + buffer <<= shift_; + buffer |= val & mask_; + bitsLeft += shift_; + if (bitsLeft >= 8) { + outBuf[outPos++] = (unsigned char)(buffer >> (bitsLeft - 8)); + bitsLeft -= 8; + } + break; + } + } + + if (bitsLeft && buffer & ((1 << bitsLeft) - 1)) { + // Incomplete trailing data + return nil; + } + + // Shorten buffer if needed due to padding chars + _FIRInstanceIDDevAssert(outPos <= outLen, @"Overflowed buffer"); + [outData setLength:outPos]; + + return outData; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.h new file mode 100644 index 0000000..177ec2d --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.h @@ -0,0 +1,31 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDTokenOperation.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FIRInstanceIDTokenDeleteOperation : FIRInstanceIDTokenOperation + +- (instancetype)initWithAuthorizedEntity:(nullable NSString *)authorizedEntity + scope:(NSString *)scope + checkinPreferences:(FIRInstanceIDCheckinPreferences *)checkinPreferences + keyPair:(nullable FIRInstanceIDKeyPair *)keyPair + action:(FIRInstanceIDTokenAction)action; + +@end + +NS_ASSUME_NONNULL_END diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.m new file mode 100644 index 0000000..365f321 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.m @@ -0,0 +1,120 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDTokenDeleteOperation.h" + +#import "FIRInstanceIDCheckinPreferences.h" +#import "FIRInstanceIDDefines.h" +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDTokenOperation+Private.h" +#import "FIRInstanceIDURLQueryItem.h" +#import "FIRInstanceIDUtilities.h" +#import "NSError+FIRInstanceID.h" + +@implementation FIRInstanceIDTokenDeleteOperation + +- (instancetype)initWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + checkinPreferences:(FIRInstanceIDCheckinPreferences *)checkinPreferences + keyPair:(FIRInstanceIDKeyPair *)keyPair + action:(FIRInstanceIDTokenAction)action { + self = [super initWithAction:action + forAuthorizedEntity:authorizedEntity + scope:scope + options:nil + checkinPreferences:checkinPreferences + keyPair:keyPair]; + if (self) { + } + return self; +} + +- (void)performTokenOperation { + NSString *authHeader = + [FIRInstanceIDTokenOperation HTTPAuthHeaderFromCheckin:self.checkinPreferences]; + NSMutableURLRequest *request = [FIRInstanceIDTokenOperation requestWithAuthHeader:authHeader]; + + // Build form-encoded body + NSString *deviceAuthID = self.checkinPreferences.deviceID; + NSMutableArray *queryItems = + [FIRInstanceIDTokenOperation standardQueryItemsWithDeviceID:deviceAuthID scope:self.scope]; + [queryItems addObject:[FIRInstanceIDURLQueryItem queryItemWithName:@"delete" value:@"true"]]; + if (self.action == FIRInstanceIDTokenActionDeleteTokenAndIID) { + [queryItems addObject:[FIRInstanceIDURLQueryItem queryItemWithName:@"iid-operation" + value:@"delete"]]; + } + if (self.authorizedEntity) { + [queryItems addObject:[FIRInstanceIDURLQueryItem queryItemWithName:@"sender" + value:self.authorizedEntity]]; + } + // Typically we include our public key-signed url items, but in some cases (like deleting all FCM + // tokens), we don't. + if (self.keyPair != nil) { + [queryItems addObjectsFromArray:[self queryItemsWithKeyPair:self.keyPair]]; + } + + NSString *content = FIRInstanceIDQueryFromQueryItems(queryItems); + request.HTTPBody = [content dataUsingEncoding:NSUTF8StringEncoding]; + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeTokenDeleteOperationFetchRequest, + @"Unregister request to %@ content: %@", FIRInstanceIDRegisterServer(), + content); + + FIRInstanceID_WEAKIFY(self); + void (^requestHandler)(NSData *, NSURLResponse *, NSError *) = + ^(NSData *data, NSURLResponse *response, NSError *error) { + FIRInstanceID_STRONGIFY(self); + [self handleResponseWithData:data response:response error:error]; + }; + + // Test block + if (self.testBlock) { + self.testBlock(request, requestHandler); + return; + } + + NSURLSession *session = [FIRInstanceIDTokenOperation sharedURLSession]; + self.dataTask = [session dataTaskWithRequest:request completionHandler:requestHandler]; + [self.dataTask resume]; +} + +- (void)handleResponseWithData:(NSData *)data + response:(NSURLResponse *)response + error:(NSError *)error { + if (error) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeTokenDeleteOperationRequestError, + @"Device unregister HTTP fetch error. Error code: %ld", + _FIRInstanceID_L(error.code)); + [self finishWithResult:FIRInstanceIDTokenOperationError token:nil error:error]; + return; + } + + NSString *dataResponse = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + if (dataResponse.length == 0) { + NSError *error = [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeUnknown]; + [self finishWithResult:FIRInstanceIDTokenOperationError token:nil error:error]; + return; + } + + if (![dataResponse hasPrefix:@"deleted="] && ![dataResponse hasPrefix:@"token="]) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeTokenDeleteOperationBadResponse, + @"Invalid unregister response %@", response); + NSError *error = [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeUnknown]; + [self finishWithResult:FIRInstanceIDTokenOperationError token:nil error:error]; + return; + } + [self finishWithResult:FIRInstanceIDTokenOperationSucceeded token:nil error:nil]; +} +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenFetchOperation.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenFetchOperation.h new file mode 100644 index 0000000..83ac714 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenFetchOperation.h @@ -0,0 +1,29 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDTokenOperation.h" + +NS_ASSUME_NONNULL_BEGIN +@interface FIRInstanceIDTokenFetchOperation : FIRInstanceIDTokenOperation + +- (instancetype)initWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + options:(nullable NSDictionary *)options + checkinPreferences:(FIRInstanceIDCheckinPreferences *)checkinPreferences + keyPair:(FIRInstanceIDKeyPair *)keyPair; + +@end +NS_ASSUME_NONNULL_END diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenFetchOperation.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenFetchOperation.m new file mode 100644 index 0000000..c2df1f7 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenFetchOperation.m @@ -0,0 +1,200 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDTokenFetchOperation.h" + +#import "FIRInstanceIDCheckinPreferences.h" +#import "FIRInstanceIDConstants.h" +#import "FIRInstanceIDDefines.h" +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDTokenOperation+Private.h" +#import "FIRInstanceIDURLQueryItem.h" +#import "FIRInstanceIDUtilities.h" +#import "NSError+FIRInstanceID.h" + +// We can have a static int since this error should theoretically only +// happen once (for the first time). If it repeats there is something +// else that is wrong. +static int phoneRegistrationErrorRetryCount = 0; +static const int kMaxPhoneRegistrationErrorRetryCount = 10; + +@implementation FIRInstanceIDTokenFetchOperation + +- (instancetype)initWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + options:(nullable NSDictionary *)options + checkinPreferences:(FIRInstanceIDCheckinPreferences *)checkinPreferences + keyPair:(FIRInstanceIDKeyPair *)keyPair { + self = [super initWithAction:FIRInstanceIDTokenActionFetch + forAuthorizedEntity:authorizedEntity + scope:scope + options:options + checkinPreferences:checkinPreferences + keyPair:keyPair]; + if (self) { + } + return self; +} + +- (void)performTokenOperation { + NSString *authHeader = + [FIRInstanceIDTokenOperation HTTPAuthHeaderFromCheckin:self.checkinPreferences]; + NSMutableURLRequest *request = [[self class] requestWithAuthHeader:authHeader]; + NSString *checkinVersionInfo = self.checkinPreferences.versionInfo; + [request setValue:checkinVersionInfo forHTTPHeaderField:@"info"]; + + // Build form-encoded body + NSString *deviceAuthID = self.checkinPreferences.deviceID; + NSMutableArray *queryItems = + [[self class] standardQueryItemsWithDeviceID:deviceAuthID scope:self.scope]; + [queryItems addObject:[FIRInstanceIDURLQueryItem queryItemWithName:@"sender" + value:self.authorizedEntity]]; + [queryItems addObject:[FIRInstanceIDURLQueryItem queryItemWithName:@"X-subtype" + value:self.authorizedEntity]]; + + [queryItems addObjectsFromArray:[self queryItemsWithKeyPair:self.keyPair]]; + + // Create query items from passed-in options + id apnsTokenData = self.options[kFIRInstanceIDTokenOptionsAPNSKey]; + id apnsSandboxValue = self.options[kFIRInstanceIDTokenOptionsAPNSIsSandboxKey]; + if ([apnsTokenData isKindOfClass:[NSData class]] && + [apnsSandboxValue isKindOfClass:[NSNumber class]]) { + NSString *APNSString = FIRInstanceIDAPNSTupleStringForTokenAndServerType( + apnsTokenData, ((NSNumber *)apnsSandboxValue).boolValue); + // The name of the query item happens to be the same as the dictionary key + FIRInstanceIDURLQueryItem *item = + [FIRInstanceIDURLQueryItem queryItemWithName:kFIRInstanceIDTokenOptionsAPNSKey + value:APNSString]; + [queryItems addObject:item]; + } + id firebaseAppID = self.options[kFIRInstanceIDTokenOptionsFirebaseAppIDKey]; + if ([firebaseAppID isKindOfClass:[NSString class]]) { + // The name of the query item happens to be the same as the dictionary key + FIRInstanceIDURLQueryItem *item = + [FIRInstanceIDURLQueryItem queryItemWithName:kFIRInstanceIDTokenOptionsFirebaseAppIDKey + value:(NSString *)firebaseAppID]; + [queryItems addObject:item]; + } + + NSString *content = FIRInstanceIDQueryFromQueryItems(queryItems); + request.HTTPBody = [content dataUsingEncoding:NSUTF8StringEncoding]; + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeTokenFetchOperationFetchRequest, + @"Register request to %@ content: %@", FIRInstanceIDRegisterServer(), + content); + + FIRInstanceID_WEAKIFY(self); + void (^requestHandler)(NSData *, NSURLResponse *, NSError *) = + ^(NSData *data, NSURLResponse *response, NSError *error) { + FIRInstanceID_STRONGIFY(self); + [self handleResponseWithData:data response:response error:error]; + }; + + // Test block + if (self.testBlock) { + self.testBlock(request, requestHandler); + return; + } + + NSURLSession *session = [FIRInstanceIDTokenOperation sharedURLSession]; + self.dataTask = [session dataTaskWithRequest:request completionHandler:requestHandler]; + [self.dataTask resume]; +} + +#pragma mark - Request Handling + +- (void)handleResponseWithData:(NSData *)data + response:(NSURLResponse *)response + error:(NSError *)error { + if (error) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeTokenFetchOperationRequestError, + @"Token fetch HTTP error. Error Code: %ld", (long)error.code); + [self finishWithResult:FIRInstanceIDTokenOperationError token:nil error:error]; + return; + } + NSString *dataResponse = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + + if (dataResponse.length == 0) { + NSError *error = [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeUnknown]; + [self finishWithResult:FIRInstanceIDTokenOperationError token:nil error:error]; + return; + } + NSDictionary *parsedResponse = [self parseFetchTokenResponse:dataResponse]; + _FIRInstanceIDDevAssert(parsedResponse.count, @"Invalid registration response"); + + if ([parsedResponse[@"token"] length]) { + [self finishWithResult:FIRInstanceIDTokenOperationSucceeded + token:parsedResponse[@"token"] + error:nil]; + return; + } + + NSString *errorValue = parsedResponse[@"Error"]; + NSError *responseError; + if (errorValue.length) { + NSArray *errorComponents = [errorValue componentsSeparatedByString:@":"]; + // HACK (Kansas replication delay), PHONE_REGISTRATION_ERROR on App + // uninstall and reinstall. + if ([errorComponents containsObject:@"PHONE_REGISTRATION_ERROR"]) { + // Encountered issue http://b/27043795 + // Retry register until successful or another error encountered or a + // certain number of tries are over. + + if (phoneRegistrationErrorRetryCount < kMaxPhoneRegistrationErrorRetryCount) { + const int nextRetryInterval = 1 << phoneRegistrationErrorRetryCount; + FIRInstanceID_WEAKIFY(self); + + dispatch_after( + dispatch_time(DISPATCH_TIME_NOW, (int64_t)(nextRetryInterval * NSEC_PER_SEC)), + dispatch_get_main_queue(), ^{ + FIRInstanceID_STRONGIFY(self); + phoneRegistrationErrorRetryCount++; + [self performTokenOperation]; + }); + return; + } + } else if ([errorComponents containsObject:kFIRInstanceID_CMD_RST]) { + // Server detected the identity we use is no longer valid. + NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; + [center postNotificationName:kFIRInstanceIDIdentityInvalidatedNotification object:nil]; + + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeInternal001, + @"Identity is invalid. Server request identity reset."); + responseError = + [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeInvalidIdentity]; + } + } + if (!responseError) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeTokenFetchOperationBadResponse, + @"Invalid fetch response, expected 'token' or 'Error' key"); + responseError = [NSError errorWithFIRInstanceIDErrorCode:kFIRInstanceIDErrorCodeUnknown]; + } + [self finishWithResult:FIRInstanceIDTokenOperationError token:nil error:responseError]; +} + +// expect a response e.g. "token=\nGOOG.ttl=123" +- (NSDictionary *)parseFetchTokenResponse:(NSString *)response { + NSArray *lines = [response componentsSeparatedByString:@"\n"]; + NSMutableDictionary *parsedResponse = [NSMutableDictionary dictionary]; + for (NSString *line in lines) { + NSArray *keyAndValue = [line componentsSeparatedByString:@"="]; + if ([keyAndValue count] > 1) { + parsedResponse[keyAndValue[0]] = keyAndValue[1]; + } + } + return parsedResponse; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenInfo.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenInfo.h new file mode 100644 index 0000000..34ad716 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenInfo.h @@ -0,0 +1,82 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import "FIRInstanceIDAPNSInfo.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Represents an Instance ID token, and all of the relevant information + * associated with it. It can read from and write to an NSDictionary object, for + * simple serialization. + */ +@interface FIRInstanceIDTokenInfo : NSObject + +/// The authorized entity (also known as Sender ID), associated with the token. +@property(nonatomic, readonly, copy) NSString *authorizedEntity; +/// The scope associated with the token. This is an arbitrary string, typically "*". +@property(nonatomic, readonly, copy) NSString *scope; +/// The token value itself, with which all other properties are associated. +@property(nonatomic, readonly, copy) NSString *token; + +// These properties are nullable because they might not exist for tokens fetched from +// legacy storage formats. + +/// The app version that this token represents. +@property(nonatomic, readonly, copy, nullable) NSString *appVersion; +/// The Firebase app ID (also known as GMP App ID), that this token is associated with. +@property(nonatomic, readonly, copy, nullable) NSString *firebaseAppID; + +/// Tokens may not always be associated with an APNs token, and may be associated after +/// being created. +@property(nonatomic, strong, nullable) FIRInstanceIDAPNSInfo *APNSInfo; +/// The time that this token info was updated. The cache time is writeable, since in +/// some cases the token info may be refreshed from the server. In those situations, +/// the cacheTime would be updated. +@property(nonatomic, copy, nullable) NSDate *cacheTime; + +/** + * Initializes a FIRInstanceIDTokenInfo object with the required parameters. These + * parameters represent all the relevant associated data with a token. + * + * @param authorizedEntity The authorized entity (also known as Sender ID). + * @param scope The scope of the token, typically "*" meaning + * it's a "default scope". + * @param token The token value itself. + * @param appVersion The application version that this token is associated with. + * @param firebaseAppID The Firebase app ID which this token is associated with. + * @return An instance of FIRInstanceIDTokenInfo. + */ +- (instancetype)initWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + token:(NSString *)token + appVersion:(nullable NSString *)appVersion + firebaseAppID:(nullable NSString *)firebaseAppID; + +/** + * Check whether the token is still fresh based on: + * 1. Last fetch token is within the 7 days. + * 2. Language setting is not changed. + * 3. App version is current. + * 4. GMP App ID is current. + */ +- (BOOL)isFresh; + +@end + +NS_ASSUME_NONNULL_END diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenInfo.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenInfo.m new file mode 100644 index 0000000..a4d284b --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenInfo.m @@ -0,0 +1,188 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDTokenInfo.h" + +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDUtilities.h" + +/** + * @enum Token Info Dictionary Key Constants + * @discussion The keys that are checked when a token info is + * created from a dictionary. The same keys are used + * when decoding/encoding an archive. + */ +/// Specifies a dictonary key whose value represents the authorized entity, or +/// Sender ID for the token. +static NSString *const kFIRInstanceIDAuthorizedEntityKey = @"authorized_entity"; +/// Specifies a dictionary key whose value represents the scope of the token, +/// typically "*". +static NSString *const kFIRInstanceIDScopeKey = @"scope"; +/// Specifies a dictionary key which represents the token value itself. +static NSString *const kFIRInstanceIDTokenKey = @"token"; +/// Specifies a dictionary key which represents the app version associated +/// with the token. +static NSString *const kFIRInstanceIDAppVersionKey = @"app_version"; +/// Specifies a dictionary key which represents the GMP App ID associated with +/// the token. +static NSString *const kFIRInstanceIDFirebaseAppIDKey = @"firebase_app_id"; +/// Specifies a dictionary key representing an archive for a +/// `FIRInstanceIDAPNSInfo` object. +static NSString *const kFIRInstanceIDAPNSInfoKey = @"apns_info"; +/// Specifies a dictionary key representing the "last cached" time for the token. +static NSString *const kFIRInstanceIDCacheTimeKey = @"cache_time"; +/// Default interval that token stays fresh. +const NSTimeInterval kDefaultFetchTokenInterval = 7 * 24 * 60 * 60; // 7 days. + +@implementation FIRInstanceIDTokenInfo + +- (instancetype)initWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + token:(NSString *)token + appVersion:(NSString *)appVersion + firebaseAppID:(NSString *)firebaseAppID { + self = [super init]; + if (self) { + _authorizedEntity = [authorizedEntity copy]; + _scope = [scope copy]; + _token = [token copy]; + _appVersion = [appVersion copy]; + _firebaseAppID = [firebaseAppID copy]; + } + return self; +} + +- (BOOL)isFresh { + // Last fetch token cache time could be null if token is from legacy storage format. Then token is + // considered not fresh and should be refreshed and overwrite with the latest storage format. + if (!_cacheTime) { + return NO; + } + + // Check if app has just been updated to a new version. + NSString *currentAppVersion = FIRInstanceIDCurrentAppVersion(); + if (!_appVersion || ![_appVersion isEqualToString:currentAppVersion]) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeTokenManager004, + @"Invalidating cached token for %@ (%@) due to app version change.", + _authorizedEntity, _scope); + return NO; + } + + // Check if GMP App ID has changed + NSString *currentFirebaseAppID = FIRInstanceIDFirebaseAppID(); + if (!_firebaseAppID || ![_firebaseAppID isEqualToString:currentFirebaseAppID]) { + FIRInstanceIDLoggerDebug( + kFIRInstanceIDMessageCodeTokenInfoFirebaseAppIDChanged, + @"Invalidating cached token due to Firebase App IID change from %@ to %@", _firebaseAppID, + currentFirebaseAppID); + return NO; + } + + // Check whether locale has changed, if yes, token needs to be updated with server for locale + // information. + if (FIRInstanceIDHasLocaleChanged()) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeTokenInfoLocaleChanged, + @"Invalidating cached token due to locale change"); + return NO; + } + + // Locale is not changed, check whether token has been fetched within 7 days. + NSTimeInterval lastFetchTokenTimestamp = [_cacheTime timeIntervalSince1970]; + NSTimeInterval currentTimestamp = FIRInstanceIDCurrentTimestampInSeconds(); + NSTimeInterval timeSinceLastFetchToken = currentTimestamp - lastFetchTokenTimestamp; + return (timeSinceLastFetchToken < kDefaultFetchTokenInterval); +} +#pragma mark - NSCoding + +- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder { + // These value cannot be nil + + id authorizedEntity = [aDecoder decodeObjectForKey:kFIRInstanceIDAuthorizedEntityKey]; + if (![authorizedEntity isKindOfClass:[NSString class]]) { + return nil; + } + + id scope = [aDecoder decodeObjectForKey:kFIRInstanceIDScopeKey]; + if (![scope isKindOfClass:[NSString class]]) { + return nil; + } + + id token = [aDecoder decodeObjectForKey:kFIRInstanceIDTokenKey]; + if (![token isKindOfClass:[NSString class]]) { + return nil; + } + + // These values are nullable, so only fail the decode if the type does not match + + id appVersion = [aDecoder decodeObjectForKey:kFIRInstanceIDAppVersionKey]; + if (appVersion && ![appVersion isKindOfClass:[NSString class]]) { + return nil; + } + + id firebaseAppID = [aDecoder decodeObjectForKey:kFIRInstanceIDFirebaseAppIDKey]; + if (firebaseAppID && ![firebaseAppID isKindOfClass:[NSString class]]) { + return nil; + } + + id rawAPNSInfo = [aDecoder decodeObjectForKey:kFIRInstanceIDAPNSInfoKey]; + if (rawAPNSInfo && ![rawAPNSInfo isKindOfClass:[NSData class]]) { + return nil; + } + + FIRInstanceIDAPNSInfo *APNSInfo = nil; + if (rawAPNSInfo) { + @try { + APNSInfo = [NSKeyedUnarchiver unarchiveObjectWithData:rawAPNSInfo]; + } @catch (NSException *exception) { + FIRInstanceIDLoggerInfo(kFIRInstanceIDMessageCodeTokenInfoBadAPNSInfo, + @"Could not parse raw APNS Info while parsing archived token info."); + APNSInfo = nil; + } @finally { + } + } + + id cacheTime = [aDecoder decodeObjectForKey:kFIRInstanceIDCacheTimeKey]; + if (cacheTime && ![cacheTime isKindOfClass:[NSDate class]]) { + return nil; + } + + self = [super init]; + if (self) { + _authorizedEntity = authorizedEntity; + _scope = scope; + _token = token; + _appVersion = appVersion; + _firebaseAppID = firebaseAppID; + _APNSInfo = APNSInfo; + _cacheTime = cacheTime; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + [aCoder encodeObject:self.authorizedEntity forKey:kFIRInstanceIDAuthorizedEntityKey]; + [aCoder encodeObject:self.scope forKey:kFIRInstanceIDScopeKey]; + [aCoder encodeObject:self.token forKey:kFIRInstanceIDTokenKey]; + [aCoder encodeObject:self.appVersion forKey:kFIRInstanceIDAppVersionKey]; + [aCoder encodeObject:self.firebaseAppID forKey:kFIRInstanceIDFirebaseAppIDKey]; + if (self.APNSInfo) { + NSData *rawAPNSInfo = [NSKeyedArchiver archivedDataWithRootObject:self.APNSInfo]; + [aCoder encodeObject:rawAPNSInfo forKey:kFIRInstanceIDAPNSInfoKey]; + } + [aCoder encodeObject:self.cacheTime forKey:kFIRInstanceIDCacheTimeKey]; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenManager.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenManager.h new file mode 100644 index 0000000..491b99c --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenManager.h @@ -0,0 +1,149 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceID.h" + +@class FIRInstanceIDAuthService; +@class FIRInstanceIDCheckinPreferences; +@class FIRInstanceIDKeyPair; +@class FIRInstanceIDTokenInfo; +@class FIRInstanceIDStore; + +typedef NS_OPTIONS(NSUInteger, FIRInstanceIDInvalidTokenReason) { + FIRInstanceIDInvalidTokenReasonNone = 0, // 0 + FIRInstanceIDInvalidTokenReasonAppVersion = (1 << 0), // 0...00001 + FIRInstanceIDInvalidTokenReasonAPNSToken = (1 << 1), // 0...00010 +}; + +/** + * Manager for the InstanceID token requests i.e `newToken` and `deleteToken`. This + * manages the overall interaction of the `InstanceIDStore`, the token register + * service and the callbacks associated with `GCMInstanceID`. + */ +@interface FIRInstanceIDTokenManager : NSObject + +/// Expose the auth service, so it can be used by others +@property(nonatomic, readonly, strong) FIRInstanceIDAuthService *authService; + +/** + * Fetch new token for the given authorizedEntity and scope. This makes an + * asynchronous request to the InstanceID backend to create a new token for + * the service and returns it. This will replace any old token for the given + * authorizedEntity and scope that has been cached before. + * + * @param authorizedEntity The authorized entity for the token, should not be nil. + * @param scope The scope for the token, should not be nil. + * @param keyPair The keyPair that represents the app identity. + * @param options The options to be added to the fetch request. + * @param handler The handler to be invoked once we have the token or the + * fetch request to InstanceID backend results in an error. Also + * since it's a public handler it should always be called + * asynchronously. This should be non-nil. + */ +- (void)fetchNewTokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + keyPair:(FIRInstanceIDKeyPair *)keyPair + options:(NSDictionary *)options + handler:(FIRInstanceIDTokenHandler)handler; + +/** + * Return the cached token info, if one exists, for the given authorizedEntity and scope. + * + * @param authorizedEntity The authorized entity for the token. + * @param scope The scope for the token. + * + * @return The cached token info, if available, matching the parameters. + */ +- (FIRInstanceIDTokenInfo *)cachedTokenInfoWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope; + +/** + * Delete the token for the given authorizedEntity and scope. If the token has + * been cached, it will be deleted from the store. It will also make an + * asynchronous request to the InstanceID backend to invalidate the token. + * + * @param authorizedEntity The authorized entity for the token, should not be nil. + * @param scope The scope for the token, should not be nil. + * @param keyPair The keyPair that represents the app identity. + * @param handler The handler to be invoked once the delete request to + * InstanceID backend has returned. If the request was + * successful we invoke the handler with a nil error; + * otherwise we call it with an appropriate error. Also since + * it's a public handler it should always be called + * asynchronously. This should be non-nil. + */ +- (void)deleteTokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + keyPair:(FIRInstanceIDKeyPair *)keyPair + handler:(FIRInstanceIDDeleteTokenHandler)handler; + +/** + * Deletes all cached tokens from the persistent store. This method should only be triggered + * when InstanceID is deleted + * + * @param keyPair The keyPair for the given app. + * @param handler The handler to be invoked once the delete request to InstanceID backend + * has returned. If the request was successful we invoke the handler with + * a nil error; else we pass in an appropriate error. This should be non-nil + * and be called asynchronously. + */ +- (void)deleteAllTokensWithKeyPair:(FIRInstanceIDKeyPair *)keyPair + handler:(FIRInstanceIDDeleteHandler)handler; + +/** + * Deletes all cached tokens from the persistent store. + * @param handler The callback handler which is invoked when tokens deletion is complete, + * with an error if there is any. + * + */ +- (void)deleteAllTokensLocallyWithHandler:(void (^)(NSError *error))handler; + +/** + * Stop any ongoing token operations. + */ +- (void)stopAllTokenOperations; + +#pragma mark - Invalidating Cached Tokens + +/** + * Invalidate any cached tokens, if the app version has changed since last launch or if the token + * is cached for more than 7 days. + * + * @return Whether we should fetch default token from server. + * + * @discussion This should safely be called prior to any tokens being retrieved from + * the cache or being fetched from the network. + */ +- (BOOL)checkForTokenRefreshPolicy; + +/** + * Upon being provided with different APNs or sandbox, any locally cached tokens + * should be deleted, and the new APNs token should be cached. + * + * @discussion It is possible for this method to be called while token operations are + * in-progress or queued. In this case, the in-flight token operations will have stale + * APNs information. The default token is checked for being out-of-date by Instance ID, + * and re-fetched. Custom tokens are not currently checked. + * + * @param deviceToken The APNS device token, provided by the operating system. + * @param isSandbox YES if the device token is for the sandbox environment, NO otherwise. + * + * @return The array of FIRInstanceIDTokenInfo objects which were invalidated. + */ +- (NSArray *)updateTokensToAPNSDeviceToken:(NSData *)deviceToken + isSandbox:(BOOL)isSandbox; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenManager.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenManager.m new file mode 100644 index 0000000..0c4f644 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenManager.m @@ -0,0 +1,341 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDTokenManager.h" + +#import "FIRInstanceIDAuthKeyChain.h" +#import "FIRInstanceIDAuthService.h" +#import "FIRInstanceIDCheckinPreferences.h" +#import "FIRInstanceIDConstants.h" +#import "FIRInstanceIDDefines.h" +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDStore.h" +#import "FIRInstanceIDTokenDeleteOperation.h" +#import "FIRInstanceIDTokenFetchOperation.h" +#import "FIRInstanceIDTokenInfo.h" +#import "FIRInstanceIDTokenOperation.h" +#import "NSError+FIRInstanceID.h" + +@interface FIRInstanceIDTokenManager () + +@property(nonatomic, readwrite, strong) FIRInstanceIDStore *instanceIDStore; +@property(nonatomic, readwrite, strong) FIRInstanceIDAuthService *authService; +@property(nonatomic, readonly, strong) NSOperationQueue *tokenOperations; + +@property(nonatomic, readwrite, strong) FIRInstanceIDAPNSInfo *currentAPNSInfo; + +@end + +@implementation FIRInstanceIDTokenManager + +- (instancetype)init { + self = [super init]; + if (self) { + _instanceIDStore = [[FIRInstanceIDStore alloc] initWithDelegate:self]; + _authService = [[FIRInstanceIDAuthService alloc] initWithStore:_instanceIDStore]; + [self configureTokenOperations]; + } + return self; +} + +- (void)dealloc { + [self stopAllTokenOperations]; +} + +- (void)configureTokenOperations { + _tokenOperations = [[NSOperationQueue alloc] init]; + _tokenOperations.name = @"com.google.iid-token-operations"; + // For now, restrict the operations to be serial, because in some cases (like if the + // authorized entity and scope are the same), order matters. + // If we have to deal with several different token requests simultaneously, it would be a good + // idea to add some better intelligence around this (performing unrelated token operations + // simultaneously, etc.). + _tokenOperations.maxConcurrentOperationCount = 1; + if ([_tokenOperations respondsToSelector:@selector(qualityOfService)]) { + _tokenOperations.qualityOfService = NSOperationQualityOfServiceUtility; + } +} + +- (void)fetchNewTokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + keyPair:(FIRInstanceIDKeyPair *)keyPair + options:(NSDictionary *)options + handler:(FIRInstanceIDTokenHandler)handler { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeTokenManager000, + @"Fetch new token for authorizedEntity: %@, scope: %@", authorizedEntity, + scope); + FIRInstanceIDTokenFetchOperation *operation = + [self createFetchOperationWithAuthorizedEntity:authorizedEntity + scope:scope + options:options + keyPair:keyPair]; + FIRInstanceID_WEAKIFY(self); + FIRInstanceIDTokenOperationCompletion completion = + ^(FIRInstanceIDTokenOperationResult result, NSString *_Nullable token, + NSError *_Nullable error) { + FIRInstanceID_STRONGIFY(self); + if (error) { + handler(nil, error); + return; + } + NSString *firebaseAppID = options[kFIRInstanceIDTokenOptionsFirebaseAppIDKey]; + FIRInstanceIDTokenInfo *tokenInfo = [[FIRInstanceIDTokenInfo alloc] + initWithAuthorizedEntity:authorizedEntity + scope:scope + token:token + appVersion:FIRInstanceIDCurrentAppVersion() + firebaseAppID:firebaseAppID]; + tokenInfo.APNSInfo = [[FIRInstanceIDAPNSInfo alloc] initWithTokenOptionsDictionary:options]; + + [self.instanceIDStore + saveTokenInfo:tokenInfo + handler:^(NSError *error) { + if (!error) { + // Do not send the token back in case the save was unsuccessful. Since with + // the new asychronous fetch mechanism this can lead to infinite loops, for + // example, we will return a valid token even though we weren't able to store + // it in our cache. The first token will lead to a onTokenRefresh callback + // wherein the user again calls `getToken` but since we weren't able to save + // it we won't hit the cache but hit the server again leading to an infinite + // loop. + FIRInstanceIDLoggerDebug( + kFIRInstanceIDMessageCodeTokenManager001, + @"Token fetch successful, token: %@, authorizedEntity: %@, scope:%@", + token, authorizedEntity, scope); + + if (handler) { + handler(token, nil); + } + } else { + if (handler) { + handler(nil, error); + } + } + }]; + }; + // Add completion handler, and ensure it's called on the main queue + [operation addCompletionHandler:^(FIRInstanceIDTokenOperationResult result, + NSString *_Nullable token, NSError *_Nullable error) { + dispatch_async(dispatch_get_main_queue(), ^{ + completion(result, token, error); + }); + }]; + [self.tokenOperations addOperation:operation]; +} + +- (FIRInstanceIDTokenInfo *)cachedTokenInfoWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope { + return [self.instanceIDStore tokenInfoWithAuthorizedEntity:authorizedEntity scope:scope]; +} + +- (void)deleteTokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + keyPair:(FIRInstanceIDKeyPair *)keyPair + handler:(FIRInstanceIDDeleteTokenHandler)handler { + if ([self.instanceIDStore tokenInfoWithAuthorizedEntity:authorizedEntity scope:scope]) { + [self.instanceIDStore removeCachedTokenWithAuthorizedEntity:authorizedEntity scope:scope]; + } + // Does not matter if we cannot find it in the cache. Still make an effort to unregister + // from the server. + FIRInstanceIDCheckinPreferences *checkinPreferences = self.authService.checkinPreferences; + FIRInstanceIDTokenDeleteOperation *operation = + [self createDeleteOperationWithAuthorizedEntity:authorizedEntity + scope:scope + checkinPreferences:checkinPreferences + keyPair:keyPair + action:FIRInstanceIDTokenActionDeleteToken]; + + if (handler) { + [operation addCompletionHandler:^(FIRInstanceIDTokenOperationResult result, + NSString *_Nullable token, NSError *_Nullable error) { + dispatch_async(dispatch_get_main_queue(), ^{ + handler(error); + }); + }]; + } + [self.tokenOperations addOperation:operation]; +} + +- (void)deleteAllTokensWithKeyPair:(FIRInstanceIDKeyPair *)keyPair + handler:(FIRInstanceIDDeleteHandler)handler { + // delete all tokens + FIRInstanceIDCheckinPreferences *checkinPreferences = self.authService.checkinPreferences; + if (!checkinPreferences) { + // The checkin is already deleted. No need to trigger the token delete operation as client no + // longer has the checkin information for server to delete. + dispatch_async(dispatch_get_main_queue(), ^{ + handler(nil); + }); + return; + } + FIRInstanceIDTokenDeleteOperation *operation = + [self createDeleteOperationWithAuthorizedEntity:kFIRInstanceIDKeychainWildcardIdentifier + scope:kFIRInstanceIDKeychainWildcardIdentifier + checkinPreferences:checkinPreferences + keyPair:keyPair + action:FIRInstanceIDTokenActionDeleteTokenAndIID]; + if (handler) { + [operation addCompletionHandler:^(FIRInstanceIDTokenOperationResult result, + NSString *_Nullable token, NSError *_Nullable error) { + dispatch_async(dispatch_get_main_queue(), ^{ + handler(error); + }); + }]; + } + [self.tokenOperations addOperation:operation]; +} + +- (void)deleteAllTokensLocallyWithHandler:(void (^)(NSError *error))handler { + [self.instanceIDStore removeAllCachedTokensWithHandler:handler]; +} + +- (void)stopAllTokenOperations { + [self.authService stopCheckinRequest]; + [self.tokenOperations cancelAllOperations]; +} + +#pragma mark - FIRInstanceIDStoreDelegate + +- (void)store:(FIRInstanceIDStore *)store + didDeleteFCMScopedTokensForCheckin:(FIRInstanceIDCheckinPreferences *)checkin { + // Make a best effort try to delete the old client related state on the FCM server. This is + // required to delete old pubusb registrations which weren't cleared when the app was deleted. + // + // This is only a one time effort. If this call fails the client would still receive duplicate + // pubsub notifications if he is again subscribed to the same topic. + // + // The client state should be cleared on the server for the provided checkin preferences. + FIRInstanceIDTokenDeleteOperation *operation = + [self createDeleteOperationWithAuthorizedEntity:nil + scope:nil + checkinPreferences:checkin + keyPair:nil + action:FIRInstanceIDTokenActionDeleteToken]; + [operation addCompletionHandler:^(FIRInstanceIDTokenOperationResult result, + NSString *_Nullable token, NSError *_Nullable error) { + if (error) { + FIRInstanceIDMessageCode code = + kFIRInstanceIDMessageCodeTokenManagerErrorDeletingFCMTokensOnAppReset; + FIRInstanceIDLoggerDebug(code, @"Failed to delete GCM server registrations on app reset."); + } else { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeTokenManagerDeletedFCMTokensOnAppReset, + @"Successfully deleted GCM server registrations on app reset"); + } + }]; + + [self.tokenOperations addOperation:operation]; +} + +#pragma mark - Unit Testing Stub Helpers +// We really have this method so that we can more easily stub it out for unit testing +- (FIRInstanceIDTokenFetchOperation *) + createFetchOperationWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + options:(NSDictionary *)options + keyPair:(FIRInstanceIDKeyPair *)keyPair { + FIRInstanceIDCheckinPreferences *checkinPreferences = self.authService.checkinPreferences; + FIRInstanceIDTokenFetchOperation *operation = + [[FIRInstanceIDTokenFetchOperation alloc] initWithAuthorizedEntity:authorizedEntity + scope:scope + options:options + checkinPreferences:checkinPreferences + keyPair:keyPair]; + return operation; +} + +// We really have this method so that we can more easily stub it out for unit testing +- (FIRInstanceIDTokenDeleteOperation *) + createDeleteOperationWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + checkinPreferences:(FIRInstanceIDCheckinPreferences *)checkinPreferences + keyPair:(FIRInstanceIDKeyPair *)keyPair + action:(FIRInstanceIDTokenAction)action { + FIRInstanceIDTokenDeleteOperation *operation = + [[FIRInstanceIDTokenDeleteOperation alloc] initWithAuthorizedEntity:authorizedEntity + scope:scope + checkinPreferences:checkinPreferences + keyPair:keyPair + action:action]; + return operation; +} + +#pragma mark - Invalidating Cached Tokens +- (BOOL)checkForTokenRefreshPolicy { + // We know at least one cached token exists. + BOOL shouldFetchDefaultToken = NO; + NSArray *tokenInfos = [self.instanceIDStore cachedTokenInfos]; + + NSMutableArray *tokenInfosToDelete = + [NSMutableArray arrayWithCapacity:tokenInfos.count]; + for (FIRInstanceIDTokenInfo *tokenInfo in tokenInfos) { + BOOL isTokenFresh = [tokenInfo isFresh]; + if (isTokenFresh) { + // Token is fresh, do nothing. + continue; + } + if ([tokenInfo.scope isEqualToString:kFIRInstanceIDDefaultTokenScope]) { + // Default token is expired, do not mark for deletion. Fetch directly from server to + // replace the current one. + shouldFetchDefaultToken = YES; + } else { + // Non-default token is expired, mark for deletion. + [tokenInfosToDelete addObject:tokenInfo]; + } + FIRInstanceIDLoggerDebug( + kFIRInstanceIDMessageCodeTokenManagerInvalidateStaleToken, + @"Invalidating cached token for %@ (%@) due to token is no longer fresh.", + tokenInfo.authorizedEntity, tokenInfo.scope); + } + for (FIRInstanceIDTokenInfo *tokenInfoToDelete in tokenInfosToDelete) { + [self.instanceIDStore removeCachedTokenWithAuthorizedEntity:tokenInfoToDelete.authorizedEntity + scope:tokenInfoToDelete.scope]; + } + return shouldFetchDefaultToken; +} + +- (NSArray *)updateTokensToAPNSDeviceToken:(NSData *)deviceToken + isSandbox:(BOOL)isSandbox { + // Each cached IID token that is missing an APNSInfo, or has an APNSInfo associated should be + // checked and invalidated if needed. + FIRInstanceIDAPNSInfo *APNSInfo = [[FIRInstanceIDAPNSInfo alloc] initWithDeviceToken:deviceToken + isSandbox:isSandbox]; + if ([self.currentAPNSInfo isEqualToAPNSInfo:APNSInfo]) { + return @[]; + } + self.currentAPNSInfo = APNSInfo; + + NSArray *tokenInfos = [self.instanceIDStore cachedTokenInfos]; + NSMutableArray *tokenInfosToDelete = + [NSMutableArray arrayWithCapacity:tokenInfos.count]; + for (FIRInstanceIDTokenInfo *cachedTokenInfo in tokenInfos) { + // Check if the cached APNSInfo is nil, or if it is an old APNSInfo. + if (!cachedTokenInfo.APNSInfo || + ![cachedTokenInfo.APNSInfo isEqualToAPNSInfo:self.currentAPNSInfo]) { + // Mark for invalidation. + [tokenInfosToDelete addObject:cachedTokenInfo]; + } + } + for (FIRInstanceIDTokenInfo *tokenInfoToDelete in tokenInfosToDelete) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeTokenManagerAPNSChangedTokenInvalidated, + @"Invalidating cached token for %@ (%@) due to APNs token change.", + tokenInfoToDelete.authorizedEntity, tokenInfoToDelete.scope); + [self.instanceIDStore removeCachedTokenWithAuthorizedEntity:tokenInfoToDelete.authorizedEntity + scope:tokenInfoToDelete.scope]; + } + return tokenInfosToDelete; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenOperation+Private.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenOperation+Private.h new file mode 100644 index 0000000..68d9db1 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenOperation+Private.h @@ -0,0 +1,67 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDTokenOperation.h" + +#import "FIRInstanceIDUtilities.h" + +@class FIRInstanceIDKeyPair; +@class FIRInstanceIDURLQueryItem; + +NS_ASSUME_NONNULL_BEGIN + +@interface FIRInstanceIDTokenOperation (Private) + +@property(atomic, strong) NSURLSessionDataTask *dataTask; +@property(readonly, strong) + NSMutableArray *completionHandlers; + +// For testing only +@property(nonatomic, readwrite, copy) FIRInstanceIDURLRequestTestBlock testBlock; + ++ (NSURLSession *)sharedURLSession; + +#pragma mark - Initialization +- (instancetype)initWithAction:(FIRInstanceIDTokenAction)action + forAuthorizedEntity:(nullable NSString *)authorizedEntity + scope:(NSString *)scope + options:(nullable NSDictionary *)options + checkinPreferences:(FIRInstanceIDCheckinPreferences *)checkinPreferences + keyPair:(FIRInstanceIDKeyPair *)keyPair; + +#pragma mark - Request Construction ++ (NSMutableURLRequest *)requestWithAuthHeader:(NSString *)authHeaderString; ++ (NSMutableArray *)standardQueryItemsWithDeviceID:(NSString *)deviceID + scope:(NSString *)scope; +- (NSArray *)queryItemsWithKeyPair:(FIRInstanceIDKeyPair *)keyPair; + +#pragma mark - HTTP Headers +/** + * Given a valid checkin preferences object, it will return a string that can be used + * in the "Authorization" HTTP header to authenticate this request. + * + * @param checkin The valid checkin preferences object, with a deviceID and secretToken. + */ ++ (NSString *)HTTPAuthHeaderFromCheckin:(FIRInstanceIDCheckinPreferences *)checkin; + +#pragma mark - Result +- (void)finishWithResult:(FIRInstanceIDTokenOperationResult)result + token:(nullable NSString *)token + error:(nullable NSError *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenOperation.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenOperation.h new file mode 100644 index 0000000..58e0019 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenOperation.h @@ -0,0 +1,73 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FIRInstanceIDKeyPair; +@class FIRInstanceIDCheckinPreferences; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Represents the action taken on an FCM token. + */ +typedef NS_ENUM(NSInteger, FIRInstanceIDTokenAction) { + FIRInstanceIDTokenActionFetch, + FIRInstanceIDTokenActionDeleteToken, + FIRInstanceIDTokenActionDeleteTokenAndIID, +}; + +/** + * Represents the possible results of a token operation. + */ +typedef NS_ENUM(NSInteger, FIRInstanceIDTokenOperationResult) { + FIRInstanceIDTokenOperationSucceeded, + FIRInstanceIDTokenOperationError, + FIRInstanceIDTokenOperationCancelled, +}; + +/** + * Callback to invoke once the HTTP call to FIRMessaging backend for updating + * subscription finishes. + * + * @param result The result of the operation. + * @param token If the action for fetching a token and the request was successful, this will hold + * the value of the token. Otherwise nil. + * @param error The error which occurred while performing the token operation. This will be nil + * in case the operation was successful, or if the operation was cancelled. + */ +typedef void (^FIRInstanceIDTokenOperationCompletion)(FIRInstanceIDTokenOperationResult result, + NSString *_Nullable token, + NSError *_Nullable error); + +@interface FIRInstanceIDTokenOperation : NSOperation + +@property(nonatomic, readonly) FIRInstanceIDTokenAction action; +@property(nonatomic, readonly, nullable) NSString *authorizedEntity; +@property(nonatomic, readonly) NSString *scope; +@property(nonatomic, readonly, nullable) NSDictionary *options; +@property(nonatomic, readonly, strong) FIRInstanceIDCheckinPreferences *checkinPreferences; +@property(nonatomic, readonly, strong) FIRInstanceIDKeyPair *keyPair; + +@property(nonatomic, readonly) FIRInstanceIDTokenOperationResult result; + +- (instancetype)init NS_UNAVAILABLE; + +- (void)addCompletionHandler:(FIRInstanceIDTokenOperationCompletion)handler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenOperation.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenOperation.m new file mode 100644 index 0000000..dcfdb84 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenOperation.m @@ -0,0 +1,243 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDTokenOperation.h" + +#import "FIRInstanceIDCheckinPreferences.h" +#import "FIRInstanceIDDefines.h" +#import "FIRInstanceIDKeyPair.h" +#import "FIRInstanceIDKeyPairUtilities.h" +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDURLQueryItem.h" +#import "FIRInstanceIDUtilities.h" +#import "NSError+FIRInstanceID.h" + +static const NSInteger kFIRInstanceIDPlatformVersionIOS = 2; + +static NSString *const kFIRInstanceIDParamInstanceID = @"appid"; +// Scope parameter that defines the service using the token +static NSString *const kFIRInstanceIDParamScope = @"X-scope"; +// Defines the SDK version +static NSString *const kFIRInstanceIDParamFCMLibVersion = @"X-cliv"; + +@interface FIRInstanceIDTokenOperation () { + BOOL _isFinished; + BOOL _isExecuting; +} + +@property(nonatomic, readwrite, strong) FIRInstanceIDCheckinPreferences *checkinPreferences; +@property(nonatomic, readwrite, strong) FIRInstanceIDKeyPair *keyPair; + +@property(atomic, strong) NSURLSessionDataTask *dataTask; +@property(readonly, strong) + NSMutableArray *completionHandlers; + +// For testing only +@property(nonatomic, readwrite, copy) FIRInstanceIDURLRequestTestBlock testBlock; + +@end + +@implementation FIRInstanceIDTokenOperation + ++ (NSURLSession *)sharedURLSession { + static NSURLSession *tokenOperationSharedSession; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration]; + config.timeoutIntervalForResource = 60.0f; // 1 minute + tokenOperationSharedSession = [NSURLSession sessionWithConfiguration:config]; + tokenOperationSharedSession.sessionDescription = @"com.google.iid.tokens.session"; + }); + return tokenOperationSharedSession; +} + +- (instancetype)initWithAction:(FIRInstanceIDTokenAction)action + forAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + options:(NSDictionary *)options + checkinPreferences:(FIRInstanceIDCheckinPreferences *)checkinPreferences + keyPair:(FIRInstanceIDKeyPair *)keyPair { + self = [super init]; + if (self) { + _action = action; + _authorizedEntity = [authorizedEntity copy]; + _scope = [scope copy]; + _options = [options copy]; + _checkinPreferences = checkinPreferences; + _keyPair = keyPair; + _completionHandlers = [NSMutableArray array]; + + _isExecuting = NO; + _isFinished = NO; + } + return self; +} + +- (void)dealloc { + _testBlock = nil; + _authorizedEntity = nil; + _scope = nil; + _options = nil; + _checkinPreferences = nil; + _keyPair = nil; + [_completionHandlers removeAllObjects]; + _completionHandlers = nil; +} + +- (void)addCompletionHandler:(FIRInstanceIDTokenOperationCompletion)handler { + [self.completionHandlers addObject:handler]; +} + +- (BOOL)isAsynchronous { + return YES; +} + +- (BOOL)isExecuting { + return _isExecuting; +} + +- (void)setExecuting:(BOOL)executing { + [self willChangeValueForKey:@"isExecuting"]; + _isExecuting = executing; + [self didChangeValueForKey:@"isExecuting"]; +} + +- (BOOL)isFinished { + return _isFinished; +} + +- (void)setFinished:(BOOL)finished { + [self willChangeValueForKey:@"isFinished"]; + _isFinished = finished; + [self didChangeValueForKey:@"isFinished"]; +} + +- (void)start { + if (self.isCancelled) { + [self finishWithResult:FIRInstanceIDTokenOperationCancelled token:nil error:nil]; + return; + } + + // Quickly validate whether or not the operation has all it needs to begin + BOOL checkinfoAvailable = [self.checkinPreferences hasCheckinInfo]; + _FIRInstanceIDDevAssert(checkinfoAvailable, @"Cannot fetch token invalid checkin state"); + if (!checkinfoAvailable) { + FIRInstanceIDErrorCode errorCode = kFIRInstanceIDErrorCodeRegistrarFailedToCheckIn; + [self finishWithResult:FIRInstanceIDTokenOperationError + token:nil + error:[NSError errorWithFIRInstanceIDErrorCode:errorCode]]; + return; + } + + [self setExecuting:YES]; + + [self performTokenOperation]; +} + +- (void)finishWithResult:(FIRInstanceIDTokenOperationResult)result + token:(nullable NSString *)token + error:(nullable NSError *)error { + // Add a check to prevent this finish from being called more than once. + if (self.isFinished) { + return; + } + self.dataTask = nil; + _result = result; + // TODO(chliangGoogle): Call these in the main thread? + for (FIRInstanceIDTokenOperationCompletion completionHandler in self.completionHandlers) { + completionHandler(result, token, error); + } + + [self setExecuting:NO]; + [self setFinished:YES]; +} + +- (void)cancel { + [super cancel]; + [self.dataTask cancel]; + [self finishWithResult:FIRInstanceIDTokenOperationCancelled token:nil error:nil]; +} + +- (void)performTokenOperation { +} + +#pragma mark - Request Construction ++ (NSMutableURLRequest *)requestWithAuthHeader:(NSString *)authHeaderString { + NSURL *url = [NSURL URLWithString:FIRInstanceIDRegisterServer()]; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; + + // Add HTTP headers + [request setValue:authHeaderString forHTTPHeaderField:@"Authorization"]; + [request setValue:FIRInstanceIDAppIdentifier() forHTTPHeaderField:@"app"]; + request.HTTPMethod = @"POST"; + return request; +} + ++ (NSMutableArray *)standardQueryItemsWithDeviceID:(NSString *)deviceID + scope:(NSString *)scope { + NSMutableArray *queryItems = [NSMutableArray arrayWithCapacity:8]; + + // E.g. X-osv=10.2.1 + NSString *systemVersion = FIRInstanceIDOperatingSystemVersion(); + [queryItems addObject:[FIRInstanceIDURLQueryItem queryItemWithName:@"X-osv" value:systemVersion]]; + // E.g. device= + if (deviceID) { + [queryItems addObject:[FIRInstanceIDURLQueryItem queryItemWithName:@"device" value:deviceID]]; + } + // E.g. X-scope=fcm + if (scope) { + [queryItems addObject:[FIRInstanceIDURLQueryItem queryItemWithName:kFIRInstanceIDParamScope + value:scope]]; + } + // E.g. plat=2 + NSString *platform = [NSString stringWithFormat:@"%ld", (long)kFIRInstanceIDPlatformVersionIOS]; + [queryItems addObject:[FIRInstanceIDURLQueryItem queryItemWithName:@"plat" value:platform]]; + // E.g. app=com.myapp.foo + NSString *appIdentifier = FIRInstanceIDAppIdentifier(); + [queryItems addObject:[FIRInstanceIDURLQueryItem queryItemWithName:@"app" value:appIdentifier]]; + // E.g. app_ver=1.5 + NSString *appVersion = FIRInstanceIDCurrentAppVersion(); + [queryItems addObject:[FIRInstanceIDURLQueryItem queryItemWithName:@"app_ver" value:appVersion]]; + // E.g. X-cliv=fiid-1.2.3 + NSString *fcmLibraryVersion = + [NSString stringWithFormat:@"fiid-%@", FIRInstanceIDCurrentGCMVersion()]; + if (fcmLibraryVersion.length) { + FIRInstanceIDURLQueryItem *gcmLibVersion = + [FIRInstanceIDURLQueryItem queryItemWithName:kFIRInstanceIDParamFCMLibVersion + value:fcmLibraryVersion]; + [queryItems addObject:gcmLibVersion]; + } + + return queryItems; +} + +- (NSArray *)queryItemsWithKeyPair:(FIRInstanceIDKeyPair *)keyPair { + NSMutableArray *items = [NSMutableArray arrayWithCapacity:3]; + // appid= + NSString *instanceID = FIRInstanceIDAppIdentity(keyPair); + [items addObject:[FIRInstanceIDURLQueryItem queryItemWithName:kFIRInstanceIDParamInstanceID + value:instanceID]]; + return items; +} + +#pragma mark - HTTP Header + ++ (NSString *)HTTPAuthHeaderFromCheckin:(FIRInstanceIDCheckinPreferences *)checkin { + NSString *deviceID = checkin.deviceID; + NSString *secret = checkin.secretToken; + return [NSString stringWithFormat:@"AidLogin %@:%@", deviceID, secret]; +} +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenStore.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenStore.h new file mode 100644 index 0000000..861c87b --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenStore.h @@ -0,0 +1,106 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FIRInstanceIDAPNSInfo; +@class FIRInstanceIDAuthKeychain; +@class FIRInstanceIDTokenInfo; + +/** + * This class is responsible for retrieving and saving `FIRInstanceIDTokenInfo` objects from the + * keychain. The keychain keys that are used are: + * Account:

(e.g. com.mycompany.myapp) + * Service: : (e.g. 1234567890:*) + */ +@interface FIRInstanceIDTokenStore : NSObject + +NS_ASSUME_NONNULL_BEGIN + +/** + * Create a default InstanceID token store. Uses a valid Keychain object as it's + * persistent backing store. + * + * @return A valid token store object. + */ ++ (instancetype)defaultStore; + +- (instancetype)init __attribute__((unavailable("Use -initWithKeychain: instead."))); + +/** + * Initialize a token store object with a Keychain object. Used for testing. + * + * @param keychain The Keychain object to use as the backing store for tokens. + * + * @return A valid token store object with the given Keychain as backing store. + */ +- (instancetype)initWithKeychain:(FIRInstanceIDAuthKeychain *)keychain; + +#pragma mark - Get + +/** + * Get the cached token from the Keychain. + * + * @param authorizedEntity The authorized entity for the token. + * @param scope The scope for the token. + * + * @return The cached token info if any for the given authorizedEntity and scope else + * nil. + */ +- (nullable FIRInstanceIDTokenInfo *)tokenInfoWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope; + +/** + * Return all cached token infos from the Keychain. + * + * @return The cached token infos, if any, that are stored in the Keychain. + */ +- (NSArray *)cachedTokenInfos; + +#pragma mark - Save + +/** + * Save the instanceID token info to the persistent store. + * + * @param tokenInfo The token info to store. + * @param handler The callback handler which is invoked when token saving is complete, + * with an error if there is any. + */ +- (void)saveTokenInfo:(FIRInstanceIDTokenInfo *)tokenInfo + handler:(nullable void (^)(NSError *))handler; + +#pragma mark - Delete + +/** + * Remove the cached token from Keychain. + * + * @param authorizedEntity The authorized entity for the token. + * @param scope The scope for the token. + * + */ +- (void)removeTokenWithAuthorizedEntity:(NSString *)authorizedEntity scope:(NSString *)scope; + +/** + * Remove all the cached tokens from the Keychain. + * @param handler The callback handler which is invoked when tokens deletion is complete, + * with an error if there is any. + * + */ +- (void)removeAllTokensWithHandler:(nullable void (^)(NSError *))handler; + +NS_ASSUME_NONNULL_END + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenStore.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenStore.m new file mode 100644 index 0000000..baadc89 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDTokenStore.m @@ -0,0 +1,137 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDTokenStore.h" + +#import "FIRInstanceIDAuthKeyChain.h" +#import "FIRInstanceIDConstants.h" +#import "FIRInstanceIDLogger.h" +#import "FIRInstanceIDTokenInfo.h" +#import "FIRInstanceIDUtilities.h" + +static NSString *const kFIRInstanceIDTokenKeychainId = @"com.google.iid-tokens"; + +@interface FIRInstanceIDTokenStore () + +@property(nonatomic, readwrite, strong) FIRInstanceIDAuthKeychain *keychain; + +@end + +@implementation FIRInstanceIDTokenStore + ++ (instancetype)defaultStore { + FIRInstanceIDAuthKeychain *tokenKeychain = + [[FIRInstanceIDAuthKeychain alloc] initWithIdentifier:kFIRInstanceIDTokenKeychainId]; + return [[FIRInstanceIDTokenStore alloc] initWithKeychain:tokenKeychain]; +} + +- (instancetype)initWithKeychain:(FIRInstanceIDAuthKeychain *)keychain { + self = [super init]; + if (self) { + _keychain = keychain; + } + return self; +} + +#pragma mark - Get + ++ (NSString *)serviceKeyForAuthorizedEntity:(NSString *)authorizedEntity scope:(NSString *)scope { + return [NSString stringWithFormat:@"%@:%@", authorizedEntity, scope]; +} + +- (nullable FIRInstanceIDTokenInfo *)tokenInfoWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope { + NSString *account = FIRInstanceIDAppIdentifier(); + NSString *service = [[self class] serviceKeyForAuthorizedEntity:authorizedEntity scope:scope]; + NSData *item = [self.keychain dataForService:service account:account]; + if (!item) { + return nil; + } + // Token infos created from legacy storage don't have appVersion, firebaseAppID, or APNSInfo. + FIRInstanceIDTokenInfo *tokenInfo = [[self class] tokenInfoFromKeychainItem:item]; + return tokenInfo; +} + +- (NSArray *)cachedTokenInfos { + NSString *account = FIRInstanceIDAppIdentifier(); + NSArray *items = + [self.keychain itemsMatchingService:kFIRInstanceIDKeychainWildcardIdentifier account:account]; + NSMutableArray *tokenInfos = + [NSMutableArray arrayWithCapacity:items.count]; + for (NSData *item in items) { + FIRInstanceIDTokenInfo *tokenInfo = [[self class] tokenInfoFromKeychainItem:item]; + if (tokenInfo) { + [tokenInfos addObject:tokenInfo]; + } + } + return tokenInfos; +} + ++ (nullable FIRInstanceIDTokenInfo *)tokenInfoFromKeychainItem:(NSData *)item { + // Check if it is saved as an archived FIRInstanceIDTokenInfo, otherwise return nil. + FIRInstanceIDTokenInfo *tokenInfo = nil; + // NOTE: Passing in nil to unarchiveObjectWithData will result in an iOS error logged + // in the console on iOS 10 and below. Avoid by checking item.data's existence. + if (item) { + @try { + tokenInfo = [NSKeyedUnarchiver unarchiveObjectWithData:item]; + } @catch (NSException *exception) { + FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeTokenStoreExceptionUnarchivingTokenInfo, + @"Unable to parse token info from Keychain item; item was in an " + @"invalid format"); + tokenInfo = nil; + } @finally { + } + } + return tokenInfo; +} + +#pragma mark - Save +// Token Infos will be saved under these Keychain keys: +// Account:
(e.g. com.mycompany.myapp) +// Service: : (e.g. 1234567890:*) +- (void)saveTokenInfo:(FIRInstanceIDTokenInfo *)tokenInfo + handler:(void (^)(NSError *))handler { // Keep the cachetime up-to-date. + tokenInfo.cacheTime = [NSDate date]; + // Always write to the Keychain, so that the cacheTime is up-to-date. + NSData *tokenInfoData = [NSKeyedArchiver archivedDataWithRootObject:tokenInfo]; + NSString *account = FIRInstanceIDAppIdentifier(); + NSString *service = [[self class] serviceKeyForAuthorizedEntity:tokenInfo.authorizedEntity + scope:tokenInfo.scope]; + [self.keychain setData:tokenInfoData + forService:service + accessibility:NULL + account:account + handler:handler]; +} + +#pragma mark - Delete + +- (void)removeTokenWithAuthorizedEntity:(nonnull NSString *)authorizedEntity + scope:(nonnull NSString *)scope { + NSString *account = FIRInstanceIDAppIdentifier(); + NSString *service = [[self class] serviceKeyForAuthorizedEntity:authorizedEntity scope:scope]; + [self.keychain removeItemsMatchingService:service account:account handler:nil]; +} + +- (void)removeAllTokensWithHandler:(void (^)(NSError *error))handler { + NSString *account = FIRInstanceIDAppIdentifier(); + [self.keychain removeItemsMatchingService:kFIRInstanceIDKeychainWildcardIdentifier + account:account + handler:handler]; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDURLQueryItem.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDURLQueryItem.h new file mode 100644 index 0000000..3a3a1d7 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDURLQueryItem.h @@ -0,0 +1,39 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +// Stand-in for NSURLQueryItem, which is only available on iOS 8.0 and up. +@interface FIRInstanceIDURLQueryItem : NSObject + +@property(nonatomic, readonly) NSString *name; +@property(nonatomic, readonly) NSString *value; + ++ (instancetype)queryItemWithName:(NSString *)name value:(NSString *)value; +- (instancetype)initWithName:(NSString *)name value:(NSString *)value; + +@end + +/** + * Given an array of query items, construct a URL query. On iOS 8.0 and above, this will use + * NSURLQueryItems internally to perform the string creation, and will be done manually in iOS + * 7 and below. + */ +NSString *FIRInstanceIDQueryFromQueryItems(NSArray *queryItems); + +NS_ASSUME_NONNULL_END diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDURLQueryItem.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDURLQueryItem.m new file mode 100644 index 0000000..59b4865 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDURLQueryItem.m @@ -0,0 +1,55 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDURLQueryItem.h" + +@implementation FIRInstanceIDURLQueryItem + ++ (instancetype)queryItemWithName:(NSString *)name value:(NSString *)value { + return [[[self class] alloc] initWithName:name value:value]; +} + +- (instancetype)initWithName:(NSString *)name value:(NSString *)value { + self = [super init]; + if (self) { + _name = [name copy]; + _value = [value copy]; + } + return self; +} +@end + +NSString *FIRInstanceIDQueryFromQueryItems(NSArray *queryItems) { + if ([NSURLQueryItem class]) { + // We are iOS 8.0 and above. Convert to NSURLQueryItems and get query that way + // to take advantage of any automatic encoding + NSMutableArray *urlItems = + [NSMutableArray arrayWithCapacity:queryItems.count]; + for (FIRInstanceIDURLQueryItem *queryItem in queryItems) { + [urlItems addObject:[NSURLQueryItem queryItemWithName:queryItem.name value:queryItem.value]]; + } + NSURLComponents *components = [[NSURLComponents alloc] init]; + components.queryItems = urlItems; + return components.query; + } else { + // We are on iOS 7.0. Manually create the query string + NSMutableArray *pairs = [NSMutableArray arrayWithCapacity:queryItems.count]; + for (FIRInstanceIDURLQueryItem *queryItem in queryItems) { + [pairs addObject:[NSString stringWithFormat:@"%@=%@", queryItem.name, queryItem.value]]; + } + return [pairs componentsJoinedByString:@"&"]; + } +} diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.h new file mode 100644 index 0000000..da6ebad --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.h @@ -0,0 +1,85 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +/// FIRMessaging Class that responds to the FIRMessaging SDK version selector. +/// Verify at runtime if the class exists and implements the required method. +FOUNDATION_EXPORT NSString *const kFIRInstanceIDFCMSDKClassString; + +/// locale key stored in GULUserDefaults +FOUNDATION_EXPORT NSString *const kFIRInstanceIDUserDefaultsKeyLocale; + +#pragma mark - Test Blocks + +/** + * Response block for mock registration requests made during tests. + * + * @param data The data as returned by the mock request. + * @param response The response as returned by the mock request. + * @param error The error if any as returned by the mock request. + */ +typedef void (^FIRInstanceIDURLRequestTestResponseBlock)(NSData *data, + NSURLResponse *response, + NSError *error); + +/** + * Test block to mock registration requests response. + * + * @param request The request to mock response for. + * @param response The response block for the mocked request. + */ +typedef void (^FIRInstanceIDURLRequestTestBlock)(NSURLRequest *request, + FIRInstanceIDURLRequestTestResponseBlock response); + +#pragma mark - URL Helpers + +FOUNDATION_EXPORT NSString *FIRInstanceIDRegisterServer(void); + +#pragma mark - Time + +FOUNDATION_EXPORT int64_t FIRInstanceIDCurrentTimestampInSeconds(void); +FOUNDATION_EXPORT int64_t FIRInstanceIDCurrentTimestampInMilliseconds(void); + +#pragma mark - App Info + +FOUNDATION_EXPORT NSString *FIRInstanceIDCurrentAppVersion(void); +FOUNDATION_EXPORT NSString *FIRInstanceIDAppIdentifier(void); +FOUNDATION_EXPORT NSString *FIRInstanceIDFirebaseAppID(void); + +#pragma mark - Device Info + +FOUNDATION_EXPORT NSString *FIRInstanceIDDeviceModel(void); +FOUNDATION_EXPORT NSString *FIRInstanceIDOperatingSystemVersion(void); +FOUNDATION_EXPORT BOOL FIRInstanceIDHasLocaleChanged(void); + +#pragma mark - Helpers + +FOUNDATION_EXPORT BOOL FIRInstanceIDIsValidGCMScope(NSString *scope); +FOUNDATION_EXPORT NSString *FIRInstanceIDStringForAPNSDeviceToken(NSData *deviceToken); +FOUNDATION_EXPORT NSString *FIRInstanceIDAPNSTupleStringForTokenAndServerType(NSData *deviceToken, + BOOL isSandbox); + +#pragma mark - GCM Helpers +/// Returns the current GCM version if GCM library is found else returns nil. +FOUNDATION_EXPORT NSString *FIRInstanceIDCurrentGCMVersion(void); + +/// Returns the current locale. If GCM is present it queries GCM for a +/// Context Manager specific locale. Otherwise, it returns the system's first +/// preferred language (which may be set independently from locale). If the +/// system returns no preferred languages, this method returns the most common +/// language for the user's given locale. Guaranteed to return a nonnull value. +FOUNDATION_EXPORT NSString *FIRInstanceIDCurrentLocale(void); diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.m new file mode 100644 index 0000000..6b7ca96 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.m @@ -0,0 +1,194 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDUtilities.h" + +#import +#import + +#import +#import +#import "FIRInstanceID.h" +#import "FIRInstanceIDConstants.h" +#import "FIRInstanceIDDefines.h" +#import "FIRInstanceIDLogger.h" + +// Convert the macro to a string +#define STR_EXPAND(x) #x +#define STR(x) STR_EXPAND(x) + +static NSString *const kFIRInstanceIDAPNSSandboxPrefix = @"s_"; +static NSString *const kFIRInstanceIDAPNSProdPrefix = @"p_"; + +/// FIRMessaging Class that responds to the FIRMessaging SDK version selector. +/// Verify at runtime if the class exists and implements the required method. +NSString *const kFIRInstanceIDFCMSDKClassString = @"FIRMessaging"; + +/// FIRMessaging selector that returns the current FIRMessaging library version. +static NSString *const kFIRInstanceIDFCMSDKVersionSelectorString = @"FIRMessagingSDKVersion"; + +/// FIRMessaging selector that returns the current device locale. +static NSString *const kFIRInstanceIDFCMSDKLocaleSelectorString = @"FIRMessagingSDKCurrentLocale"; + +NSString *const kFIRInstanceIDUserDefaultsKeyLocale = + @"com.firebase.instanceid.user_defaults.locale"; // locale key stored in GULUserDefaults + +/// Static values which will be populated once retrieved using +/// |FIRInstanceIDRetrieveEnvironmentInfoFromFirebaseCore|. +static NSString *operatingSystemVersion; +static NSString *hardwareDeviceModel; + +#pragma mark - URL Helpers + +NSString *FIRInstanceIDRegisterServer() { + return @"https://fcmtoken.googleapis.com/register"; +} + +#pragma mark - Time + +int64_t FIRInstanceIDCurrentTimestampInSeconds() { + return (int64_t)[[NSDate date] timeIntervalSince1970]; +} + +int64_t FIRInstanceIDCurrentTimestampInMilliseconds() { + return (int64_t)(FIRInstanceIDCurrentTimestampInSeconds() * 1000.0); +} + +#pragma mark - App Info + +NSString *FIRInstanceIDCurrentAppVersion() { + NSString *version = [[NSBundle mainBundle] infoDictionary][@"CFBundleShortVersionString"]; + if (![version length]) { + return @""; + } + return version; +} + +NSString *FIRInstanceIDAppIdentifier() { + NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier]; + if (!bundleIdentifier.length) { + FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeUtilitiesMissingBundleIdentifier, + @"The mainBundle's bundleIdentifier returned '%@'. Bundle identifier " + @"expected to be non-empty.", + bundleIdentifier); + return @""; + } + return bundleIdentifier; +} + +NSString *FIRInstanceIDFirebaseAppID() { + return [FIROptions defaultOptions].googleAppID; +} + +#pragma mark - Device Info +// Get the device model from Firebase Core's App Environment Util +NSString *FIRInstanceIDDeviceModel() { + static dispatch_once_t once; + dispatch_once(&once, ^{ + struct utsname systemInfo; + if (uname(&systemInfo) == 0) { + hardwareDeviceModel = [NSString stringWithUTF8String:systemInfo.machine]; + } + }); + return hardwareDeviceModel; +} + +// Get the system version from Firebase Core's App Environment Util +NSString *FIRInstanceIDOperatingSystemVersion() { +#if TARGET_OS_IOS || TARGET_OS_TV + return [UIDevice currentDevice].systemVersion; +#elif TARGET_OS_OSX + return [NSProcessInfo processInfo].operatingSystemVersionString; +#endif +} + +BOOL FIRInstanceIDHasLocaleChanged() { + NSString *lastLocale = + [[GULUserDefaults standardUserDefaults] stringForKey:kFIRInstanceIDUserDefaultsKeyLocale]; + NSString *currentLocale = FIRInstanceIDCurrentLocale(); + if (lastLocale) { + if ([currentLocale isEqualToString:lastLocale]) { + return NO; + } + } + return YES; +} + +#pragma mark - Helpers + +BOOL FIRInstanceIDIsValidGCMScope(NSString *scope) { + return [scope compare:kFIRInstanceIDScopeFirebaseMessaging + options:NSCaseInsensitiveSearch] == NSOrderedSame; +} + +NSString *FIRInstanceIDStringForAPNSDeviceToken(NSData *deviceToken) { + NSMutableString *APNSToken = [NSMutableString string]; + unsigned char *bytes = (unsigned char *)[deviceToken bytes]; + for (int i = 0; i < (int)deviceToken.length; i++) { + [APNSToken appendFormat:@"%02x", bytes[i]]; + } + return APNSToken; +} + +NSString *FIRInstanceIDAPNSTupleStringForTokenAndServerType(NSData *deviceToken, BOOL isSandbox) { + if (deviceToken == nil) { + // A nil deviceToken leads to an invalid tuple string, so return nil. + return nil; + } + NSString *prefix = isSandbox ? kFIRInstanceIDAPNSSandboxPrefix : kFIRInstanceIDAPNSProdPrefix; + NSString *APNSString = FIRInstanceIDStringForAPNSDeviceToken(deviceToken); + NSString *APNSTupleString = [NSString stringWithFormat:@"%@%@", prefix, APNSString]; + + return APNSTupleString; +} + +#pragma mark - GCM Helpers + +NSString *FIRInstanceIDCurrentGCMVersion() { + Class versionClass = NSClassFromString(kFIRInstanceIDFCMSDKClassString); + SEL versionSelector = NSSelectorFromString(kFIRInstanceIDFCMSDKVersionSelectorString); + if ([versionClass respondsToSelector:versionSelector]) { + IMP getVersionIMP = [versionClass methodForSelector:versionSelector]; + NSString *(*getVersion)(id, SEL) = (void *)getVersionIMP; + return getVersion(versionClass, versionSelector); + } + return nil; +} + +NSString *FIRInstanceIDCurrentLocale() { + Class localeClass = NSClassFromString(kFIRInstanceIDFCMSDKClassString); + SEL localeSelector = NSSelectorFromString(kFIRInstanceIDFCMSDKLocaleSelectorString); + + if ([localeClass respondsToSelector:localeSelector]) { + IMP getLocaleIMP = [localeClass methodForSelector:localeSelector]; + NSString *(*getLocale)(id, SEL) = (void *)getLocaleIMP; + NSString *fcmLocale = getLocale(localeClass, localeSelector); + if (fcmLocale != nil) { + return fcmLocale; + } + } + + NSString *systemLanguage = [[NSLocale preferredLanguages] firstObject]; + if (systemLanguage != nil) { + return systemLanguage; + } + + if (@available(iOS 10.0, *)) { + return [NSLocale currentLocale].languageCode; + } else { + return nil; + } +} diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDVersionUtilities.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDVersionUtilities.h new file mode 100644 index 0000000..ec5a76c --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDVersionUtilities.h @@ -0,0 +1,35 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +/** + * Parsing utility for InstanceID Library versions. InstanceID lib follows semantic versioning. + * This provides utilities to parse the library versions to enable features and do + * updates based on appropriate library versions. + * + * Some example semantic versions are 1.0.1, 2.1.0, 2.1.1, 2.2.0-alpha1, 2.2.1-beta1 + */ + +FOUNDATION_EXPORT NSString *FIRInstanceIDCurrentLibraryVersion(void); +/// Returns the current Major version of GCM library. +FOUNDATION_EXPORT int FIRInstanceIDCurrentLibraryVersionMajor(void); +/// Returns the current Minor version of GCM library. +FOUNDATION_EXPORT int FIRInstanceIDCurrentLibraryVersionMinor(void); +/// Returns the current Patch version of GCM library. +FOUNDATION_EXPORT int FIRInstanceIDCurrentLibraryVersionPatch(void); +/// Returns YES if current library version is `beta` else NO. +FOUNDATION_EXPORT BOOL FIRInstanceIDCurrentLibraryVersionIsBeta(void); diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDVersionUtilities.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDVersionUtilities.m new file mode 100644 index 0000000..d6b0945 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDVersionUtilities.m @@ -0,0 +1,91 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceIDVersionUtilities.h" + +#import "FIRInstanceIDDefines.h" + +// Convert the macro to a string +#define STR(x) STR_EXPAND(x) +#define STR_EXPAND(x) #x + +static NSString *const kSemanticVersioningSeparator = @"."; +static NSString *const kBetaVersionPrefix = @"-beta"; + +static NSString *libraryVersion; + +static int majorVersion; +static int minorVersion; +static int patchVersion; +static int betaVersion; + +void FIRInstanceIDParseCurrentLibraryVersion() { + static NSArray *allVersions; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSMutableString *daylightVersion = + [NSMutableString stringWithUTF8String:STR(FIRInstanceID_LIB_VERSION)]; + // Parse versions + // major, minor, patch[-beta#] + allVersions = [daylightVersion componentsSeparatedByString:kSemanticVersioningSeparator]; + _FIRInstanceIDDevAssert(allVersions.count == 3, @"Invalid versioning of FIRInstanceID library"); + if (allVersions.count == 3) { + majorVersion = [allVersions[0] intValue]; + minorVersion = [allVersions[1] intValue]; + + // Parse patch and beta versions + NSArray *patchAndBetaVersion = + [allVersions[2] componentsSeparatedByString:kBetaVersionPrefix]; + _FIRInstanceIDDevAssert(patchAndBetaVersion.count <= 2, + @"Invalid versioning of FIRInstanceID library"); + + if (patchAndBetaVersion.count == 2) { + patchVersion = [patchAndBetaVersion[0] intValue]; + betaVersion = [patchAndBetaVersion[1] intValue]; + } else if (patchAndBetaVersion.count == 1) { + patchVersion = [patchAndBetaVersion[0] intValue]; + } + } + + // Copy library version + libraryVersion = [daylightVersion copy]; + }); +} + +NSString *FIRInstanceIDCurrentLibraryVersion() { + FIRInstanceIDParseCurrentLibraryVersion(); + return libraryVersion; +} + +int FIRInstanceIDCurrentLibraryVersionMajor() { + FIRInstanceIDParseCurrentLibraryVersion(); + return majorVersion; +} + +int FIRInstanceIDCurrentLibraryVersionMinor() { + FIRInstanceIDParseCurrentLibraryVersion(); + return minorVersion; +} + +int FIRInstanceIDCurrentLibraryVersionPatch() { + FIRInstanceIDParseCurrentLibraryVersion(); + return patchVersion; +} + +BOOL FIRInstanceIDCurrentLibraryVersionIsBeta() { + FIRInstanceIDParseCurrentLibraryVersion(); + return betaVersion > 0; +} diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/NSError+FIRInstanceID.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/NSError+FIRInstanceID.h new file mode 100644 index 0000000..b533dc4 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/NSError+FIRInstanceID.h @@ -0,0 +1,70 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +FOUNDATION_EXPORT NSString *const kFIRInstanceIDDomain; + +typedef NS_ENUM(NSUInteger, FIRInstanceIDErrorCode) { + // Unknown error. + kFIRInstanceIDErrorCodeUnknown = 0, + + // Http related errors. + kFIRInstanceIDErrorCodeAuthentication = 1, + kFIRInstanceIDErrorCodeNoAccess = 2, + kFIRInstanceIDErrorCodeTimeout = 3, + kFIRInstanceIDErrorCodeNetwork = 4, + + // Another operation is in progress. + kFIRInstanceIDErrorCodeOperationInProgress = 5, + + // Failed to perform device check in. + kFIRInstanceIDErrorCodeRegistrarFailedToCheckIn = 6, + + kFIRInstanceIDErrorCodeInvalidRequest = 7, + + // InstanceID generic errors + kFIRInstanceIDErrorCodeMissingDeviceID = 501, + + // InstanceID Token specific errors + kFIRInstanceIDErrorCodeMissingAPNSToken = 1001, + kFIRInstanceIDErrorCodeMissingAPNSServerType = 1002, + kFIRInstanceIDErrorCodeInvalidAuthorizedEntity = 1003, + kFIRInstanceIDErrorCodeInvalidScope = 1004, + kFIRInstanceIDErrorCodeInvalidStart = 1005, + kFIRInstanceIDErrorCodeInvalidKeyPair = 1006, + + // InstanceID Identity specific errors + // Generic InstanceID keypair error + kFIRInstanceIDErrorCodeMissingKeyPair = 2001, + kFIRInstanceIDErrorCodeInvalidKeyPairTags = 2002, + kFIRInstanceIDErrorCodeInvalidKeyPairCreationTime = 2005, + kFIRInstanceIDErrorCodeInvalidIdentity = 2006, + +}; + +@interface NSError (FIRInstanceID) + +@property(nonatomic, readonly) FIRInstanceIDErrorCode instanceIDErrorCode; + ++ (NSError *)errorWithFIRInstanceIDErrorCode:(FIRInstanceIDErrorCode)errorCode; + ++ (NSError *)errorWithFIRInstanceIDErrorCode:(FIRInstanceIDErrorCode)errorCode + userInfo:(NSDictionary *)userInfo; + ++ (NSError *)FIRInstanceIDErrorMissingCheckin; + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/NSError+FIRInstanceID.m b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/NSError+FIRInstanceID.m new file mode 100644 index 0000000..560a5df --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/NSError+FIRInstanceID.m @@ -0,0 +1,44 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "NSError+FIRInstanceID.h" + +NSString *const kFIRInstanceIDDomain = @"com.firebase.iid"; + +@implementation NSError (FIRInstanceID) + +- (FIRInstanceIDErrorCode)instanceIDErrorCode { + return (FIRInstanceIDErrorCode)self.code; +} + ++ (NSError *)errorWithFIRInstanceIDErrorCode:(FIRInstanceIDErrorCode)errorCode { + return [NSError errorWithFIRInstanceIDErrorCode:errorCode userInfo:nil]; +} + ++ (NSError *)errorWithFIRInstanceIDErrorCode:(FIRInstanceIDErrorCode)errorCode + userInfo:(NSDictionary *)userInfo { + return [NSError errorWithDomain:kFIRInstanceIDDomain code:errorCode userInfo:userInfo]; +} + ++ (NSError *)FIRInstanceIDErrorMissingCheckin { + NSDictionary *userInfo = @{@"msg" : @"Missing device credentials. Retry later."}; + + return [NSError errorWithDomain:kFIRInstanceIDDomain + code:kFIRInstanceIDErrorCodeMissingDeviceID + userInfo:userInfo]; +} + +@end diff --git a/FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h old mode 100755 new mode 100644 similarity index 95% rename from FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h rename to FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h index 97777e1..d95995a --- a/FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h @@ -1,3 +1,19 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #import NS_ASSUME_NONNULL_BEGIN diff --git a/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FirebaseInstanceID.h b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FirebaseInstanceID.h new file mode 100644 index 0000000..78c9ef1 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FirebaseInstanceID.h @@ -0,0 +1,17 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstanceID.h" diff --git a/FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID b/FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID deleted file mode 100755 index 128d0bf09622e5cf772bfd5f318673e2f783a0ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5965104 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

q~23@-sq`V8Stq6X@@ZO5s;{5e-~KP|J9qST6h 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

}x5{A6NZVEhM!Poujf!|1VjYKyD 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

d}g6G`4ic#Kqn&+51 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

^m?^j#%#!@^hgUbL9%OdGOi7K%U4Snl=K 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 PU zu~s>(DF5zRsK9Vj`x)fuM6%!B)AW){T5;vE5z~>Yb!na9K*WB?man=#-V|xt|DsZq zZ)^z93%q~4l-C`)(qPD$_pLaz5W|CslY&Me(xaPPF4s#Dv+=^SCk=)+!^wHZ34wvR zOAVtYiBY+`Wop^V8dpdIMigAc8d@562c^02|H@&@3c@OT!Id|`o6=M(Dqc7r0avoI!?L|q#qA@ z_-OW&-G?$h51hIs=;8G%r!@ynJ$`7&l2odrX7TZdL$8TyVn z>~GfLSKGrrt_iEqoWHX_?2p#rADV`r+aLC~?s1=a`0xS-a@pFF^p<;uP3>O!@XnR@ zvpCu5?b+%0H|}9mPF~oU#9284mcRAxkGH%ybNE}o z_%Qabj{JAuJ%452=S5q8{^LKsmGHoKY)7^v|M9i=4}JVX#*76U{?=PF|G6Lh@VDhl z_fA{#?}J_E@msmpg8|`9&U)(>^NIte;WJE<6$6!Y*;N%Y-Y_>0Pp!EC3quUUUyTg? zTe~4p-Xz!`wk$*ryx}QL^7~&M6Z(lJ`Lxum22FC) ztgZt!n&gX0#vA6T$z9!n_eH~zV}a39*NlZB%?TUs3%%ZN?5Hh0tJQ66TZY7PZJT-} zAbc|lwx_t~K)c5D*_QE!r&ZI1Av?1++#mW`zp=Qs^sElIv3l#*4<9}tKheMqlJ20# zeh`Z{5TMxHV{wgbpY(K{`EoX1q9O0OOf@;r8&`~8hcVv-`Kf@H*WVKo#JM`7v_CBG zhg;Gkr9!Np0TH!||En>+|390Cd>f)mO~YM%Kln+|(#ii87Q8$!FhF9~g&}i_qGC>F zCBhh%8Pe2FbKUtu$rYe%H=YXk+0&!6S+)MhBunI_n85})Yk0cjh33MczceeJUv`~| z5B<3CQcJAjsdT+TT8Cvpy|wz$%Ln>~&#)>k)_h{!{H4#c_fGA6?v}9_|l|8y58Ch~Ss|6|S{FVNbt8 z*}Xx}N37N;M0^_xd;1l(Js9+F5y9*FEhKM%!dt3>^o>!mYqMq;r{%2qmGyZnniw=> zjW<~2{b|gkA4>)o&P_O^{o%iSB&cGvOWqeFLy8=?r)>YpKt3-Zw|6Y@V#f|U+;@*l z7Bk+^`D^+9GoCtghV6J-3M`bB@K0gug?~Hn$q=iInZFeJ^3{~qTBQ@oY*);>W5K^j zkOGLvn&0kUI>^Lx)!~Krm%M|>!hM;&KYXw=h#%l!0^!WLs`l>%g%i2J#Piqp z8-~1sALEv+!0+pU6Qes!V@6zkPn+TCMHFbrV zjX?n;2IWMoo^rS_)R+?y{$%7wrj?22@F%S~_HBnkPe_?L0V7s*g(c?&4N??O77mM2 z6bo0TwhP5!XI)vc;@XVPpio8eqy1rzD2m}LEs;UW>Ghz3JaK9q^yIw$(=u@yIcQdc zIE@=LyH%W?3VI}6KJEU8vHKsb-T%1K{g1NlS0lS$ZRmcrqx;ou-LD?)el@Q9RjKDy zQ_rgfJ+Bt_yjs)qs;lSK_MTVMyI;-gesx~wH@ntO>kUe>!qY*4Pg`1t1pMZOH7ctL)xAl<6lV` zz1gyLWx+0E_e<@0)4yEX5&iboKbF~Fd+xPAopOBo-L)T#cz0sZxct`lr4hLa6JI`b zt!D9S_5b?KkN^5Fo9h2{aq{=i?92bgn*Z~m<=KVH-~G;q%f379N8kLf;>P=C{^rSV zJ@WC=XBKR*z3<$4VZp#Dbq=%93k3JoClq7fc%mf7g8a$+T^I4;9sq$@#|0 zBUfuXo(o=;`H6Yz+kh%<$vdgzv#q!B7gW!=AUX`TiWir|Ma-c5B&MmUw+c_ zarC_(Uj6BU-z5CUf1RsqyguPOi~s!hrytGy-LyH~rob76W6c4l+Yep4lJfYYqYho` zUc36_E8jVH`O5A|$KQYVZ(E+Zul`@(-TUIkwWBZo@xwi9*CcQJ&Cf5GA71wO`@ep# z`@a`_@aqxl0-pNLZ+?p@VThch=7M%v(uXowPj%?g_(KB3!xXK;eQSfyXFc@3eAefDhBJ# zQu82LZRP#)b^YPCpofn)v|*L>BG#&TEj3s!)dX=qZ)zEHd_>sg_ONs2;Z^40f4CBM zr64RR{P5Vb*bRu`Jfqb7($sw`r}k!N>hK0CcNXzKbylacA?O;b+>P3=Au`it_Gnt50Rt#p=gHs-`8MrX^I z6SIeZEDgU}5O$$G><`xA=S*RjQ3_Ms*fR&X0Dmtg3Og8Q`l7Iw|0p23H1f&x?(8X> zR!%)$5Gx8&*n-W9hK?umueA?n1fmyVogQ^5X6)GmW0wa+)8Ux0SM0%aR;^4werRfU z_QMFs=Le@<$e!8?c&P2?L%6(M0)MbAgSB(ViUofN54*fS?8AbvznRA$crOz>3HM@o zeijZiXQqZ-4(Ft&Dm?6}IjpKL>@Qb_{>2pbkvZ%gne$FT*mZN*htlwC?O}iEgN2~? zIqgH`9vFs&a38l3xZ!i`+`aG(dp@WsK7KDXny|$RS`?jU%5DuElQAZ?{blQsqesie z6&NEDUyB?Q^XSp`Co4J@2S_iP8=t$sVbgoDRabH`R%g)PgRv2%JOqqYv)nOfEi-r_OMz&)N@Nb!p>ZiOm$f+mTZ zZtfdI`d=c`X7s4Nwuo6}S65UhrnFM|XZ@yv+G^Z@<-O4*_{C7It*(42zC2cCb6_)7 z1_d*+P5F*`M+NpGvHi%KW2SngP$r8x0sooea6__cVLa}}niDLRgyfWjl!vM-tIBJt zosKG}iFRj~S2A_>W4pP@H1u_I zcKC5~`oW|_eWAUfE3+e#LSGK}l{vj7`B0zf*P$z4$w>-*4A%@?URzW9ErpO>Fzo8#^A# zuliAb)q2;l)^GjljbHuX&)?dy_D9Em-WGqkqAFs`n+cQNPffTdHTA93?In9Fu+708gt1CLk$#Oy9q)&Q z9G|vj<w#er3vp71GQsA;@XPtlQ%yezAM(3O<6Qea+hUDJ9x_Z-{P=PA&;zY2UVtC_ zgNodx+gTI-7)lrP2Vqi=j z4@)zw;h`7KjR-8=+gUZa@N{Tkky@SuC{HfR6OQu4qCE4GtKZ#^@*J@2i$C;=wme^# z>u0)LKX~*`Lj4p3swEn+D{=I$#Cvxo-nT39{#}VtyB>(%l^C-taol>A^hK03q71e7 zSF@7uIF2;IhlALT>{X4Xn(Fc@KAdrXu*Dd(=#V+M*c$Mq5tC93EAyKQ7fkO~tMy`d zTV&*;#-_}e5r;(eWMvq>bS8eg;Q$K0Hrx=jtZ<#_-UQRB5i1WOIt_ys8&8ZEVE3xU zM&tO%<`JQb*cx1H4WF6f510yY8!5DXyy1ZLfeE?kfya!&4n{2_D?IdCSFJH7vdR=> zkybt(JkGfK{-cGV`(3F`nemxO6c%eZAjO(v;#Lkd)*tRPBgJz84>Uc!I@5elyXRWW(HIl^5FV|Ro(X2XP1n?08S1UiP~7ckXtJD2w66ZCqcySmUDF_NI&fm; z$u^4Sp^{Ib(MrJwA}humH2rN?Xi;b5Gr@_*BZco41Vd^L`ql3ex2?Fyj)_0JNs|5r zbd(`Su6sOoDkT?04~n)Lr~fL_I_p8JA$u&w0f(zKaNH2JK@8hc@~4%Ff!3Adr8%hi z>=rbE^*s3|P7bGUkPO9xrL468hH|-EOKcmQ>fgT_b7}loBxyv@tRY=B5o+iB^7?G+ zr&h$g4e@ZrcA!>_QRWVZvAOWDD;@kncCE&5JJPO_n6?zfcjB7Vyu z^H`cmHD{`Rt}-k2M@2057SJ!#+VV#kuh--nJR*V0q-LRKtqDirN7AUMZb zXfieed*|_&mEkK4a)w!Z!qsLw2--`m(B$?jTMfBzf_182mPwd*fk@9 zvI8>B9jn^gu|%-Mg|a<`zf|g0*oOWfWtw*ndU<#0;MFUJe9dfl79~|ijohNp{s;_u z*;s3A4Uop7E}mJgSj1PZ-S=pAJ5 zc1SBtp}Ruug$>UHTaIEdiHtnEVMQpUHEd)BY-HUlVEMEa7OKz$SEu)?Kk0bEB)_9W zN(>7h*PPrp|G3cS`vA52zXczUV@r9$ci9f? zUjd)LMR^W<`m5RxMVUqdH-e8X9GNe{PrhT5OJBSjQNGuy>Q4Zl_FvZ8hyKIhv;02< zpXH-I?K}lO@qX~t@{-SYgHoUGdQ|lppEck=1U~=baLD-@Bw&v!UeKL&iQKE6#V_lt+Yceiu+vkH9tFU~{N)(gHiZg{7-?B`#=*ZMgVeEK;E^H*&g@J@3%zZmc_wRY$GBKX9U!RPp) z`uUQuKMj1X{VrjDmY4l^z#otFRp8TK+M$Ez!6*JU_$I+;xq?s`7*eDkgAXX{8=yZC zeEweIC*Z4bV>@{QeAWw}pV#`c5PX*Rci?NwyGrPP>ZSiZp+5|nYW3d|`VWDxwg0}* z|B9FXUxofNUiyO(MEdiBm;RT)r~lvb(*KIk|Gt<0v*5G+yaT>F4#-peQ?DhY@hTHk z<&Q$lzNEwd8u-aN{QvFxUsN2vC_8sMp8r#R4n`Yfe^&q0_Vx()y#A|yD*tZB;h)Vu zzmtOh<-cbUlVXlzLF@l91)L|c9?P~V&mzZqK3D4bE53fc{28<7*k(=7ojz;&%=ZRTbZP|{eZh}Q->S-q=>ggx>)=$>cPw}mv zs;8gkTR&YEsqvaQTYZfNek9m085p624843TX5SfEl%NdE$^E-Xzxi2o184CQIg4)S zEPi5VN!7j<#C@(?Qa>TJq%-NjHyo&3{BV;GRO9h1FHU~|&<53aP4qK$YQdsg4T*lL zA<@E2l~)w-m!SPYTN<#Z^`IN=J!J zedm;Sgd*zYjC!k45%2V{! zl{MuRj@pF9b&e8`$l?ddv+;vu<=4s8MT?4U%7(q1tfIWs;ViFoAg1ZRX?7U119*HB-&(=d5J%W!jJ-OIX+vp+C z{7%?|uYE_0vRUse!;hrv)8g&i&5tjyu1n(<{=(|&g%yrUd-3G*g0ku=$K)ARh)q?o zV@A&8T)btd2*2{4oL^ovd3N>U+G59Kk4%JD?uV=rDm||!9(AES!K74%@+t(K+VFU? zPn*I=eW)sOg?L$2Yedn}uM$sxSs6A_DXL|sy}U}3xn}}xwRlQ2_2MbeR*avQc6eTj z^EH|S2RYB%MDAzA^luXhQ=VN;c?3(n(WE{hHc33EWfRZ+)rquvo!`?3@qE}M^?^aL z-CZ}Ssv7SYu$SQd1bEa|*Odf|pIj0W_0uHzOOvdhCdFTxRQ)t*{?eptDoMUPX=Vx{ zoqTN{Sb+%{`q^2`{_?X}d}ZjKFx(eDcSdA?haf+EGf29E{KCOAAU|T}M=S}wK73a~0w3R}=(&jf%rp4z z1Tpo9Kfu9!xChEO9EASo@EhN>=)pHcq_?3@Onu_LkZ*zQ)A;Gq5#U{r6H`vyje~Z! zLXY1Yng~0ugSQ!a#MC3+gadozm3&t)^Ir$ba`KxX#H&GRXBq5VM>;3$xWH?G9b(!c zt`T~r(7OVD6Z95=R|Gv`>Jcx%fqM;=GeNNjDS!Wi@#gnGNE1Ps-#FN5%Ru@xd`A$x zXxJg99b&|BPb=^u$nOIl2{|$4#6}$SKM<7muHkzYI}o2YP*0zsfT*wS#MCFg4EbgF zc?Eu72fhS3G3CU3pDXR)$3J@-kk1z6+Y8@~-4)nr1IE3I?ZlK5 zFNM4r_!G$20M|oKOgS-r1S-dU5h&wT0!shpA>9S!gZ|m`9C&k(j+p6)XA1p1q5lZz z7^F)?x^0MS72=o*-Xx?WW;)^tkoUn3V&7v19tSxw<;3AQu(wos1K*|KbLETDmG6Ii zhM&q1Q!fxY*Kk5VFGBAO(qD$X%ix`d9x?v9h|faKeu4hc^AYeV$kl#Ad=dxt=;iNz zu>I`^rrq60$9@uNz;}4S+lh3<`0FC>#=(BG4V3z?fwKJV!tYb?dp&q<8o!B~AwLN_ zd9d3G?1G#ae_g~*9PAg1KZL;O zIQVVQn+9GY^oa4-MLY=y?M?uteiSIn5sq}7h}&w!75?zP(sp9}brEBWea}(Y>4x11 zV4Q9z#$OjP^m$KL{w@G+`-D=2dr)LEZ7B1GIr)1Lq{#xC1*Ko)#|auMs7X-zNjYL9 zQ|3twzh%mdh>@2}nLjazn~&jF#?a+ww&iXh9Od%}FrNk{zX7~tagI}|0Ow4@zZY<*=La?Cc$&e@NBz0a+cf7r zNT{am*6`og@Gool7zf>@w?tppEeG&=^`?IT}0 zZocwTQtu^;`d&!&T_fUEk~*)6{QvxB!2aD%?tKo3yIPyFjJjNc^{=(Os?cNqM^blI zyp*`yOd%2(}Rf7;V*k7B+N}rG|`u3t|Mm#-lzVx039H`YUwhr z>-a$PG!`R`ap-VMsS`E1Ow&Ueb7-#yIvv=HTm5xJu0m&A2yZh69D1)9ACgeNYTfWT&ls-U#iF`a{w1mpFQNW-)~sS7q-{qevhNIfn0T^;!^fp_H6dn6xT zhgtjc%=M#a#}IbRZH;=WeDO>-l{JumhGX%%j&y0RX?{hwsx+iihqNCFls0FhTZb6^ z&{K6x_x}9I=vG%2Q@8jyBQC2I2zrXzk2dO5SFTbFb;}tgrJ`XwgL zJyD!isZZOZTTe_PjXlprIH$-ow$NOqgXXG_jupNycrUk1-BQ5DR=4ak>ddl(9;wq! zj8zJB`Md=^P#gEET0c`Uq@f6Ox8Hmnd938~uus`Gr6krCG1s?~)}O+oq&I1GnRTQL zSOH>A^JNB5DWY5Nhq0QWtW+&e+D&L?;_RS92qAVhyKOh#juLkq{wmZ!~5c*_M0Evx5nQCtp29GtUjzg_icE-L2uZamEawf z!!+M%C&%o0B;vMTGZGH(BS{tQQuRphThfPdC}J+zA9vqFWcSTo&%4 zmf3!D@O?Y*#rwW3{`P0N<9Xk{Z00S|s^+6%sX3|VQ)H3yvDAhnk*-Q@stxpyIiqY` zeM&y25RP+VBP#gVR5se~ak62<%SOx5j(4u#Go*BtmEaD^`2HRz85i%7WZ+w3+|jLj zoV%8c$*~ltE6MnPO^+mFA5!Eb+*OeJFlB!lrF+1PZ? zI+AKNqlRkq3rNZ8d!&hN1=3cv2D6f>YCYm&XisBWzwRbTQMG=jB+5uq8EZ;^0h>$u zJymO)W-zNI4)w>@d4~)vVtc96w;0`X=!vGV`8GN9u79q5~5Wk8f8 zUT?+9K=8fOO*YolkNBhX(XE**KdpEfc=R6C{(yTn_}h==gW{gupU8ldvF7Ye>QiJy z+mD#az^%KTWuW;;hYVc1YmkA?YxUq*VW)(BSSRIUDKy`ThR&zROrY@N5s zjCC#|zCVkUNmm^8jth=hm6fqvldyeGs*wXpCVZJ?M5i8Mjv2J{z5AO=H2-&@=*>vc z?Voc+w|}iTRo1OAx}{h{`MI;&2APz{3yI=Uppm3H1pM2o7Lmq0fpg)K2uTX*KlEYC zG5D?%H0yapiacF5wcqq&F^{`>kM-r9Rhl-dLv~A>8p1lMs7ZR%e~~{ zE%2vlR4;1}qIx^{5Y46-d50vt{btx51|tMB(bd!Ox7D_%Zx!nL?(SFEf8FV(0gBU2 z3Kv!DK2`_g>88G-B@x}Wcoy2FOr8?m60b%+7<27Xda$GG>874CRm*#9eJqY}10_Cu z8GAuu+HXql^xh>d%xQEM^w>rDioq)vmB7ouDIb)@Rb}uoDcz}TCVtn#jZupuhT*UB z6;-o;v( zhFQOAzXf_KO~N#7-3nDL_8CN{sjRvZ4&$)+UAJAgW6>H zJFu-c{(80b-AS`bMO#1Cb#J2{(yfg~h8}HF{O#68V}-2E34a~ioblJb%>{pL+Nh@y zAxH0>nE$msUKHJ8&&nA|lwFE#FNd>=$e7(;=(W7iYrXZG9DNw+AtfEIjkg~ya`0xp zzW?3#jriG;jjgS%oxOtuR+U9{!aA!uK^;@qesxf>t;gV^zDU33Hb>v7+mH$6qparH z)CzkoO-`szj>&4%@O>(sRHfbGwk>hiV z&N#mt(|VD5@s?~}UNLgBz4*r49liM4!#mlzHRJtNO(Xwwu7-Mc(~WO#@X`B!;pamT+M@n5e&lPux@K_7jD*JszVxU zgjl6nms>n`BChePC@(buYJw<<2m-%z{A)-4`k)lmc!Y7U9)P&Dpn3j}2Fk8WyN?=L< zhpEvfCH*~8@B&8%RE}EYNtXrZ%udj*aq8@ar2UncXR#L8ax2p3XDhgO6k6j;iurR4 z{8nV(vq(~nIvZ+H6BD7}HI;OwYUkkB)rvW(nOS%}oeaqN7?Q!~jeNy12FZa+2E#{> zR2&6;Y6<-a*wuovRRDhyku|OKr}4UEiNRV4GNO!0EISN5g&J+FbtxCTQrKsbm$1C( zT2T274blxud%uP~4)QnAUa(2{vj{ZxTj57ygG|Eb!#~@^e-3`yJEe=#y956~&dd7y zVWWojtLdWfm*MxrGwmPKg{?JaIcPAsV(B>?_Y~|8(?#$9h<;Fj4Ihe2=g@Q!{yF-{ zCfsZqv>}9x@OEHiPt+VgkB!iuahu~pY&?13Hplyc<`CSbxB}_l!#>kM&_cKZ^aQ&A zG`Ut|ug?6sj>6Jjv-zb>gPbyC@yMXHI3juW!nvUjXf4Ke?R-{DBIeJ-!B=P^=`+TM z(3zxJ1ge%fmB&wMGt;qe|KRJi0dA&T*<62ehbm^0#tE$6tR|c5%#KZGKEAOH()*B{{0->&){BxdnazPAAJ$` zPq<|`ZyAhxEbhs;Nfu~dveWq_3dxON0!9_AQicXFvljXK(Ss_OS>zkUJ*gh^^)vCo zqcR3j2=}JS(_sB{cNiY^k8S9aJ|17!093`)Y;YiR~<2_BUbgf1}#slI%QTn zmWd)|QeK?_6PChZ(F(2m zm(a!xecCy!QmpzuP{>@ht?#LFcc{7k26?F;IU&#sO*9hcEzm80j)5XF&;TW*#{~-L zg>I;a@?la^4V7Pw+eoL@6~PoCR2DDRlF|>u_0otv1E?*=gN=W}XkTM%6Z4O}y zomV>a?scyB$l zAyo#KRzfFI?;_zyBvmNXP~_iZrA)o_*BbE^=sc~Vq?((hO?A>6vC@_r@nxt(t&uX& z&^l_PPJX?kI}qL*5e|j-hN7nYybvaT#F6mcP{&kM zInpxyP|h~5MEXaKw3(%!3SvSz`#QA59(vg8N~fj_=`T>fRwHf$!Oha&Q4q!nigD{z zPK``acyJktEL0KY0+b?HFJv`DJ;+RGgRNIee?svUPQO9}tWtWTnK_dBy& z5OPX5vaGzCQwz+0{rekgqBAhZq)V zPN*^v^Q%UB1BKN~e?>0Fl9uIobL!T&ItC{4%CYqkt1CxTvjR{f9MKToySj43g*?i% zFuZqRcxY{SD4q|LkF3fYS;L8kd8TSpP8DxkryDhc_chVQ2G}> z0({U{j({N5kb=J68-*iE!y$*H8}NVtp}|F5{i;I`<%K}hNxaSJXC?d>D85rty+GbL zy@keR!V23dRy7|rz?{)gLww|6f(PBfGHEm8gqCvkfz+zN#^BYJp~Q+xA{%WSjr~AQ z@P#~1%^=!!Xd{Zb*i>MY(&ktveaObV5y-u?GMEvK%Fi2FO!|d;LpdSD-~v_RNah(8 zB+4nRObn@mjy^m<2P4|i51^!3+7L@fD~hSKVJ14E$n_9K%kAOWu+;kOjM9OiW#DMzdXuBjsHqg<3Hy%b!CF0|BjpgRpb93sqq*0V;o}VDS8R? zL9#Q9rgyv=P9-`!Fi7PHwX~IJ3s)hxIg1SO8%cFCI4DyJwDIH z*&aShpwCUZEmO${*yclL+5p=srCPbxE?g&JmHf+3h;mc|L{Rmw8DJ~$^H2_uay{c5L^YbViU^^*5ty^nX;s1n8@pNu;L^o0D7KQ4(NS!%AGAa29dFk<2 zl~HllD-;a#1m?wlo>8o=fDL3TV1vO{zF^+>U!Ys1)Y0MPJmqHEDn zf;v(8p|Py71vYSCd{T8;dAQ_6p|!9ea;rqqd#b-Kqv0HLZe3qt!E$_+5}Z-TFfHrC zg|<;IN)#S;0lI>Q6O7+_h0r$I-civ%BuH1(P{m|suH!5)eEzTNt{!WABN>_N%Jni~ z%D5epl0j4bbbGu`Feldc5vDwzE-CT39iaQT;S^)P!CjaV^NXa!FV$CfrlFh}w?Xj8 zDV#p{n!UkFSp9^LL=oJi)HReIXSQ!}6jqP#`+^dDTCqA-~!&=F)m|e?56UX9AW9( zvSm_tMz#BdrV+oK2n3D0J>@IM>>H=8M(Xo@R7wyIY;l6$rhjx=BKU zRVPnqY%2s$PZo!ZN1xpvl3QZCZ2P)^l|eG4b?h=>p|mD&d&I@`4Xpi&_PkG=H$JBK z+F)U+C4{rV1~t zu6nW(MYUmulw`IBqb3CoMRU%EY)K~NM($F8KamCa>E} ziEwT2=Fwg0?3J_a2mNUL_F&zy-+3DungycEPGtq&_m|uEh)~!`y4$o-={)(;q2A}O zW=eERWs4#0y@Df|*zz#>$P5kB$1BgPOb)@(VYxqaNPanr790M}*n8u&je0>$k@sv5 zbPc){12+GNo}+S^ooiJ0HE5d2Bb9|_Y<*t|2g4I~y_gh`{TZM{kitSE4 z#>U=fRu%m4l4q&afLt%-_mQ9EtU;tV@Q3-owr}AnfqjdVZLS$PJ;=U=7S=4tWCe`o z)M`4OUxeu&EIgrWHmA=O?U)-5$5i&)R1VwpWJ%&jO@{%A!8;OeSx>UHo@Q$u#F!YX zP>^w)j45X+eyPmH2TWzb!qg=XvYFL2@z#A{ilZ>hyC%%r)D#D%=w+BvV%jXk zsx6eAU}MEJtYf}iIkF5h?aE<=H2);M)0m%^3PYM zNC@_TU@Ai+gsr8loi;G?)rCzC-+M-?1aeS#BrkYpW$@iFEJ?7!vJXJYB}*sit*4oq z0Ffg>sJym$mh6Ao1j##WawM2o1X(g=L1%*>2DW3}f!Q*rZM$pBAGsZtKZHt?0>Wg~ zv#_J|Cv}Qdv(o9tpV#Sjt<9pc<%=@%P!JgNg258}ebXl2*3L6La;2?DFOQh<6YB52 z`0uYTFIs$eT=?1f&)(jY{dtr2=AmM*k5{KInd-jvm4s6VZUz49tII#OoGjWn;M=U{ zYDf7DTyZk<#nsZczTFcfP+4K?ZUpT47L*69S1>xXKSr@al-t}d^=rY`YWWc176zRY z?e)Pt#L_d)=M2_Dm~&dj_Gw?SpLmKpw*D5WW@{tzws>LEga3@`0<&sG&J)K~-!rRL zmBYQpIJ%;FbYbDy~^U|ou9Vt^bczH7l#Kzmn>-*%UdF5e?72Yyo%Z8QGWfP-w zt=OzJHUWb#dXz=_VH!tUjoCeGs%4vR{H%*TUY3^=zaHZ~P+00X9MhMnn2v9D$ctn` zUys%2Z8M3mt#F%7-YzdSPvuxEdyydK+&-bp8!Mf}@g4bPkG<$|%9!8A0Xu_b__Ds3 zshk_N$@jYMep7dqR=3Fu%%Y4IsrD>vEYBDeEn~@N%04WyQrm7g5PMV?771pw=e{f{ zfBd|3=chv^%4hetvu8I;b$x1z7c5ux{!GJtJlp)WqH=ERCSTdNaHmi33ha;GKM?*y&#_KCQOC9 zY_eOWbZ2+rQ?X0SCwDOJ=cJ6XiVS1Qu>sqx)bb4nnu9zl=VlNo8vn8xTK%Su3cKQ# zv0P)M{kkq9plG(%XvswLX4q16`?|O7A92fdFHN=C_;ya9L--yqwSXn5OxX5?ZbbgY zD6x>GSz~kHy`1h2CRSFw=j09OVQQr1bMe@rk`LF51gr=!kM|rT6Zu6uEbQr*B*L#9 zX5Ffm-B3I+LUG%1_jLK<4kpX&Z7zA#8S8R{!cV$(hWxqyc2?X^3ikNLD{Pb3Z|)=W zwwW+QLf`5uz%T_sAWQbW8G{-?BcjAKOgoMEoYFQwmf5#a^=cGFbBCdi>lP z?1C|u#v8(4WYhY&VNyvG<~}vIYM;eJPx$AT&Ji|!z6gy|newc0#ts1*b>5%%3 z;EU~=O_eI2=vYqXuj{^?SSM8vUtiAguTC40zYOUXIlK8;A^F%D_BA1r%j-pUeE!}6 z)~n>P{W==MJo~s%$(8jYdo}{|MZama`PtFKhV`GK$$u<**z*1{Nur4Yr}O;>QH76C zywrWbv+@i5?OgcQ6no0P$4JRfh6GT;H0x)2E=%ZW)fYa5du=X3kp=j}F-qyO68?XhjM&Yf(rca;m`&z+2P zuvMYCj2P-AvVK0=KVhhs?b7F+Z^$0KU>#7$Xh@XUOYZsRM>?B<0w&LZ=w**yw;s@6 z$9{}Y)eXZp?;q6{;|HJU&2?y z6(eSS0CXOc+8rjvu-xNXk22!9@@;S1DOlC10(xm#R8nw>dOV}okdH29#OzN5KO&Cd zm>Y2#f&(-H5lNncqJZGOHY0=W7&+H<16mf98WNKv5a~MNtQfYu!Ar;fl7KJNrYnWp ztYwtB4zG~KpYPqPH2pabA19|#^BW3IM_TL^?$x`G_xp@a%aRL7Q&74?_(=~H8_E~_ zZuTMk=w6H-l)X^!ccq)AcPjX#ugay3hy#xDaa?Mp(kYCf241#ulo6R1%UzMqGL{s; zIuDn7(ls*~K}km(`+7n5&T%FUa(ZPNqc1}o_EJVzT~&_&b1?pK*RrU#ku&fs^h!g` zfPp(~e)eKC8bcJh=evI>ZL%R1hH}DW(g({YnlV{B+PgE8Q%^6SWEQ7+v{_zF4d!_* zy_d1envu{CJ=iPU>&PPqHZZyzL*|+SuRGy=>JZ1kQzpE$o7cE{&>UrWOYXVX^K4_M z3N4-C<%7y9??^}Va{eM0MyWKsBv}`~US@p^dGW{#BBV3mtWGQ=K*yrtrI);t%<_8o zQIAcC(;+;iqx(}{CV~<1j(J{}HtifQWNVjASLboA+GXm~jG!4_zS4h~`h#S$kP#bV zAx@)9>@%H&XUoj(OB@w!!(&UfEUNDDA^QX(l~Gcv#5oo5Xbn>p&_#`EhAk*B6I)PL zFo96`$kI5S?b1oM{bM%@mQIw8iFLQe$89@fOGIOytP)s1IeyG!m32()O7YT^Sedmv zw&an8MebYLRj)-d1^Uq3%3I5RlsnY-t1cP8WmY;Y7G)opwfXA8pQ3DJ&Uv*_-D+$_ zZt`okA|}c~F|<)1JJzd@Y8sR3Yo)xPwpm!mqzXzuiTyOVFmEvTXfsi7RoFu{O|q~w zFSL<=EEa~=@sHJ&BMXFFga{X5sdZtG@IEip*!19_f(q{!*yJzd*zeMaxyO3@_v-jZ zUxx!q8xCFIaHx!bJnQhW%AP|fO0TFKxJR|?VTMb;S>{y7KYpZlsOKMX^ztMB*qY(g zz(2mPak$)pUf~~GlulRq$EFf#Bma0u?{tlS+^)3$iGQTU8UGmJOiWoi)bsE*>8M(v zJ@GK@DMxXw=OBsvT20=lTHOKWT*ad9iMpZNk24paTq`(O&{w!DG^XCQn&o)fQxg&U zZAsb8WH-&KMnBEYyzbMqj@)Zs%+U??JfqvTc3Roe5zINODA>iCQL}V3|2VU5X)OPk zAzL0#j}8}~+=eV7glQwHz7G9x{}-imr~jnXAMBB&o9A};NYoo!Zd&H+Jj&3 z`(neKJIhZmI-dKp#Ob1&-$DQEw7D@~pV5`|xiQCKTX_$wf}#1{rrSCll+8->sHqLB z+q*P2$)WzU9$_1Y<`0@~+w)*`q|jF2QXT*58%srgPc~{ia$>#+of4&pv;MUQ;4dl( zzLg31$W}tI4w^;bHBbOt+&ekklLXje0Yl00?n0q3hDQH=PHllL%CiR z2TyN)cWXc|Un|u>2)}g?m*eYRyS#GNYNqzSwx4|Gt*5^j_x1kQLY53Vzv9HOr}QUA zRld6aEx*^jgsXgJ?LL&2_sOQglV@al^m<(3=(lc7ps-x~Lgj+hOPe3_^0ZQUR&fTt z&J47R31&(?+{f9x`>yY!PkeawM%nW-#=E?7`L4Xr_>a`7&mI03tZkirZtB*r79N}3 z`uvgmJHBnb`C&|GeD~t{vER&lG4EVf;Sm@BJK5^zmbCfU#ggQZ$0C=XPp`=eeRFx! zABUy!o_W8dhW3gW`wEPMvCFuU#YcyHo;ObQ{p&nDM=Sp3Kvm8rwMXAL{~dx=Zo;*?Kc z{P&uLH;bn9`0Dcy7cCj>^zW0Eu$T7C=bwkRXhMXVHeQlMnB?(|!NkYpTynC*MmA-Eu1(jQIA}6Fxs(`+eWY zrl4aBuL;JSX^PwJ^K#RXt2Z7W|9QQ(O@439S1142Hz6Y8hLgoyE0QwTn{;-KWv`v` zIl1uL_loZIeeYQ62ltNpY;b-uk7s3UQH=P_rprME_r*hbs<)nhbX3fHpD!$Nd9|>S zW7n--n?E}L%l;)Qc~F_5Fd1_h-GbV#UhJ=9zOhsDByWCw}>c${T*(F>jqb|3m1} zkv2z9D?&e%Onc>b#p2+hHfO(AEO2w}`|`=(mrOh5lUFh4xv5gWw=QRe?)+uWu}`1r zxl=lDc~f#tao-(ZT@8(05i>sCb9qz!wUIxM?g>+PAwQ4)DP?76i*-9!ZqM-@I&4+t z?|$9}v!kM+Czr?qiZ|z#v>X@}Gc0fO38>h)D(JR z`&jUHJA# z-)lU{T(3bBE`s@iFML`4)9gjhQQ1r-B~HG{ASpFdW=YZL7KS)Ef$sfxzqKSV#~UY8 zWo8zRf90)D7CyIR&qr@HHKw5X{IFX zscxa~h*7gP|6ZjWwL9-5G5N@lt1Gn6O&L4)U|ZFbX{B~4qOj{xR^6mbs`r{+DtFnA zH+E@16=*|yy<1+_e{Z?Rm+$Ovh|FWkCw}tG%b)3#eH;t=g?v++7^H|9EBrxstSGH_ z!l6AcDQN$AMPo{j0UI{l$h@;<#~W|_v2Wyi;mf~GS~PV}zY!;lZ}`6Ir!R7}J%3gg ztci(S+^lnpyArb{aNeZ8?z2D3ef;^>w(cx7HOmWhb_;rK^7PJa)0AzvTUT@Kiy1EY zIcm@R1sO7J*ir|#pzK@CQ$q^Q?il*U~)(_;l~!1r46# zilg>!|74Zi|LIHB>vqyEF=vC2p8Wr7gYdsL2>-+eq4xOR(|IFT3$a@rOtP~?fo~q+ z{)s)pY{kDi+asjq&3|nY{;%33G&RWv`-J-Gs})R^Z!S~%iLF&#kAAkQ6abmNxn2kcbCSvpQT~#RR;OW~kh4zsg+wn2m*=YkE9>Zw zN}Lq?S(GMspX2e`ic4o^R5To)(Qu-%;@qX&YmMJEoTxofapgpH>50Z`4VQLT)LuKW zrJ~`>6Ah7eZ?CScz5dONZ@#O(R(oQ`soIJ&S0dHB9Znut^V1}4;{Io{qWcZbdZTxL ztO)=llJ92#t*(JE6^BDT%_S!mUkw8}&4Gk|e`v*z54#VO2xQm9te5uxU5i_mqp|02?hs2g7sD zOBM3!W$B`9cUYtwgZO1GJ}#@}t`lKBaonMT!f+M#AK8WTbg?2fZ)l!kcll;*bp`Cf zrKOc62U`W!`g!NbDRW#}1!qgeV5^Z9%cAmDLC(*st*>d`NudoUFL$|Un9cEm9A9Le zktdTKp{$Q1Ykl`HRdtSUn#!vJ8eLctq7Oys1ioDU%k;L$zi=t?S0aB^5)6rXTfuCd zyi@+ekViLBIBSoN_LP$Ji^QTn@@r*zBMN9~mg~KSkp)eUUW_n*=V5{)pLow`*1+x> zG{yNbtM8@AGs1&>lx3CT2&IHMdoss&wk8&q*gjYwFV6@s>#0$mRES`Babk`_ej#Gj z5c@A2bbD=VBQn$nM+qt>WoRV5VTzdnH$}Oc43}V+Q!chEL{)qlDp3aEdMd+bD1%;( zGU%ub5uM5~mn{Ql?-JV|kROS?OeQNVaUBHbZizf44*D6V+sY3Xv{mQ+{IaB15WCUj z@B9&!=Ttzr?e`Km*T zi<4BTY3Y@feXmoDFAzg`q3>0C{+ePp^lhN$UwxU^E-H?W9ggR(fLDqh`HAqa7_iJi zF412Jiv4Zx%({7~jJjUB{iA1W4m&heg?IKOx9ox+zL6ho|S zj!%?r&J`wBl@uU+yyy7b>3Jw@Yy=8B&|@I#DhG9S$hs)|3hI(&fqKB4n*PqLN>ds$ zrY{?)$Qv4-lwZDin|+lA1`u;#0P&2%A#Z49FHuria)xjy4Ay0o(8vC`vN`_>scsbnEOdXAxO4mB3a@ik@6jNe>N^qJ>%8P&(Fzi-XYc)WZkgl1Ky z;P9KOOSL~PD;b`iXSE>l<=(m9*Q{|+TrbF3hvrdey-ES0Q}l(B~H1U;)Xi+P+$IQj-jM z)$dc*`lS(rg8P9fGkb`qiznb{h`+Q7PUoPZ4Q}&~a-+MZqTHWY00Vqg2Y3 zC~aSbmyI3KlmnW|K6%NuJO!z6e8$fez-O*4n51=}Q(EKMw7d&AaVW^4Ztc+07eysG z=smde(do<7Mk2Ke*b6gBm--1&iR(%z;}n!TozO{Z!}MiiHp*2!(q1Y+n7{K?YFEXX zu=%*sTU4&;ukku`Sr03-Y(H5YRra~#C-aqeE@^Z&;kT?bm$EfC84sCH^+DIzUUx3( ziY&a=;0%qd>wnsatLR3jivZ_t`v*jaMY*T zEP`wk%dBE@wZiRRi|ckwc>a>HZOEx@)KJ^-jNDwWuzkE7ofaql3kH-wVc``fO>zJ-P@IDU zEcVhWa2|lCZlbYlze{x{DoOd=+J48Ro;KsQ$+>Pzf;~zb@BCabZT%gTDbt*XifgPc zirhuzi0W zClLekyI=OQR_Lk96Cl>Rk6lTu)!E)nWDb6){oN@*9;C4Hm+Rh5ue%@4zoILd`eQEJ zn_=`GtQ}ZhCfFtsDltf&WZdO1e3NKw+Ywu7$QS2om>zT2iz|Iit9|=~+~?Vz5)B=F zVR6;JMFac5^sT3rS{ZB?Yd6PEA}J6sRBv3H7p_A!3uufg6U{D5)~rT-2TVnqcc+eU zl0rOv*-0A8Hj^|s(g;?irj8)A2Crn;Ohe2TRj2mWla&vy9n)Y%V;YIi^ExH^h2J(? zElxbvJNFy!@xf)!>vZy-ho;-lUNg9HsP*ssT%mfbMk1F9X-+X+%=SypkWckz6##H) z6%Xlm`YL4aEwIXevkn3fT!vopVC~BuDQmdyhei;-e~ehg>R6?;{*!)(olX^tR*66- zb%@mGpdD@FhmD8RXsK@;rBbc###Nl5Zb)&wq6m-|_7lwoNgbQV=Q zT0f7cN(FihuCoj>=`0Ve(=}X1Ly2X3O5HMzP#ELJ_ms*FIlF~(eRLQG~6C@MiVTiIXRXS&REezUysgk;(7sZcF1eoP*-Z4 zD%KAyA0l8U4Bb#)CjDT&Eyh4Stv41^Kd7R9(3ASX4bJHD2BC?E_o7}hC2t5fOT_eE zN+aY2;|R&M*Z=l`f6`C?Khy`tv2B(cuez8YvVGtI#PfIl<4@*?KhgZ~qwg%u4?p^@ zV}AJ2cOCP?kG?aRAMWXxAAa;*r}^OqM}4x{{IH&#AAW0W5$ybsT{~?bYcfB?gkqrS z{16k&@t#lQ_U7h?6pHy_#}bU6AJTq+`TVfZ8q(iL>jE7le)=+Bngzs)X%=wCFbmKs zV6ztQ8rJ6AzKF*DCc9?ZSutoQ+xyXca7fab$!AF?!Sgyz)p6_k&AAg3on$TzxwLG; z5-tX`J-4lIgz}QCS&X%hts1)<1g2;`JNk$f-Rz=fNLM=xlhI>%zdXmbZ?!M%w`2NV z=arUJ)L*7l(ENkeZrpq#oaPhdw6{@6ZN1Z+2a#}T6`Wpm3+s`t);14JE+~!vt+@s1 zY40YAXXoIa3_Hgfw~Y}91a|haQg&^#GDo~oZ_CUZCd6FjW%?q{T_U_%(k~rA9dh&_FcU}8Ue{}4@NkwUI27G;{$kXBAW1Dy8VeG-i zgGw~7`)TK}>0`30YEW$<2c8TV>q5{NKuKq*CjFgna{CgOY_Kn(?6%+$>>F0ZRQ-#Y z?`!Yxe47hw-~!9J!2FlEz;-UMK*YZ3;X-eI)-ki!Z>YOcXIzOjMyous(A&Gmp|>xX z5w0|m2fGlvNXgnqv3iRL$XA*yiX&bZ-T5x|aKS2BZ+Cg6IA11V4wvVs2e1iEM?x!f zIkJXwYhx?Rosj#J%P$zCWWusv9baFgw>^y&SDMPUoVotIP+nKCdPYeGZDP3T{x#oL z*eAz%U!D*XeOa!c_NLgc&e_c^NRbQW$v@-?^Cn->*WO&_e{0<%ZoW~$SdDZ~%~RW! zPUhDpo1!*ps#Ghmc2m9a#DJ8;(l`XLW7nZgbHDF>Mio<)geAmIK}l?|66JG*cth83&vL$uYpdm6?qJHw<{X)|<1oWsVcj_8>=N2>DJdT~yCx-7 zbCxz0XswZdSUKW*mCXW|fmQZ4$IApBB4OF@j?XFwW`(`W?v{lqnGxUXY!o4T>y%hbLYzSX92)&`+dc>~2B1iogTSMJ!bJeR#a%Dx89W_)j zBiG+hL%%z|!3_FYb*LjRjs5l(DedoxiIN@4K`(}V*b!Q2|EAR-gu*cFrb;ZN3o}rv z!C?;SUa?<}G!$3=xN>$KTU_>(}sGF01QtAy`7YVV3C z$98`b)ovB&raL`9W$BZTZo=FpW2pc^PieYOq@Wk%2wJ>!^4aAGirqv(Q!+NildvSn zb$LsTJ9zcO{*a};6h1_6zZ-QWD3<73hgXN~-hBc*J5|A?y;M1*+Wu|YLU@dVYASZ? zst}|q91(F z57V##zRaEPYaEXHQBd7r3i`Ni@L-yuwJQ;XUr21HAcd1qi46$!$b;4XU;D}yK|&7- zYTLyNWIZ<>Vt$YsvM&@KzJ9{m=~;x=Xqhwaqkk^QSpcEYS)UFl?-8)E@^G=kAE*Sj zZKbJ&p{0+1SooNsmF}v_@jYFUqi|6UUhkAMShDo6p?WUFC}(Tf>RC5TyufP5>jRop zGUqK9N?zHzbH$cJ9UVqPjPi+dISRkvT?>Y3bGijD=;&GMUe(RIsxOLsRVDK%mfNiu zrdpf2(N46kV#T_`TUPl+l%((03$;D>HLlodlBDhlHpxuYuKHmqf*u-^B;~K^Qjp{T zB&pu+7GmdbyVfwF-ETKucIdoUH(SpY0sRK86Iam=4l!_Dkl>3d$a=OWCND-&;O+8M zx3G+*`Zq__4i7r!5$v{Zo2FJVvT^vqV;-@ut|w1(h;oN^fGncNuE;b`JNt6APviTB z?da0q4O8L5wE_GdkvjAXUT{TC8e_!DHT;~p@XT;y#6(qk$7FircraOm#*ywjd|Tl# zY(7|H6TjQDaXq(n1iaNL;4Kmh+LoOdx~t={zT>gEn<&NG$RV z4VV5du3RJ14=E3rue=n+oN|fz8$eA~znHv{5nfT^(qO4SU#9ZmZ!7!^Wh(ix=i7!d zl@BlL6i}v|D-#KPmtee|zU))l6xoPP5$y@u2(iZAv7UBEQX(-II!Mcd1ll`M+G00V z!R|7jP|y~u8|^Zy@>GcMv<%ab97kGd9HKpyWx+I?Qrggt>owYv4)05gjaoMHixgSl zN?8udeE}!hYFC9H-l0xT1D*2rj4k2ADUY>E=9`A zj9ApU7QV_Yok!aqxjjAb# zU8gNWWbwBYxvV!uUQCh0=TqcnHu5owEEstJ2X(l#3WkY+Ygp6s`~N4n{r|gG!6ob$ zl{A+f7my~>o%(tZnTo@FmiGVo`Rv99t2K`cj_>uC3g*{}t>vGd2^M|4uJ`jg=8xmn zeO}33lbGdh^;?~zebCy|3v8=@93Cl=4ilA^1YCL}B)5KP)9Y zFN^Zo13K=2KrT_c6$#v;xZTbSmo&dqE;8(IvF9e-KHLWIrku_PYDnH0b`_kc!C^{{ zgz9ahaTQE_qqD-lF@LsnHgH{#o7=mms&>LwCw!;x4ecO=GCtd+}g zIG}!}E>hJK?4nQUvCh!jk{r;rK!NjKxPDR@KDIg0-TRf4oM(6S*!kAHoPSmJ43?J^ z|>W<`W5Y)Iw zxfPzt*(A8@p5mtXI_DL^n|%u0$}Z--Dk$uG$W3-Vr&w^VZ>^i|mz;kKD*MTM$)a<& z3*PaX(n}LV)ZurcC`hF>?2-sKDrUh?=Pf@uvo^(;2;LtHmo9R5;r0f{qv8IBcs=0S z;G5{NaL2O0?8gHxibvOYgbjqNhVXd9CCvbgf?*Z{$2Jy|3Ov{Z-vitc{%ydC#}wbz zi(x+E@psK|(j7+e4g<%3WBd!iX+2p55T+oEcr)-m@P7}yFOL&Fj@SUAJ)nEQ5yco^ z0g%e*giN}d;6cEtTwcIU%QX`?u^|RH$vsQ|5d6XjIGu$j0jKgA%9RhC_^<%DDIZ85 z7_Aw10mq{;{#khFeE0}(>VpjFTm(+~6g~k?`5W**fcJy{JK!XH23(HBX>W>%q4Kf# z5UkgMQ#pG8r~C;g{zUNjAQPPGWh!tg=V;)Ro+17M;FRu@z)ktK9C#q`r-28V#6JQY zY7vLkGKK?ed`1O4JLuT>s0uMksq^mN}Bwr;m zBYJGm=1u8Y1ROJITg4moyG7Fof*JQ>HGk=8u&`!VQ>xQy#<`oKV_D_ z7>UOL{~GutllW7CL)4kU=#xy_ZyIo-XB2Q#dh!7hJ!D_Wl%9VB2P>F#;HXk#y}S>c z;^8CsPVMV+-~)gc1E>DLK>r`W0Wp>M15%CYh|xHyT<3wC^34@EnkZ8ToaBO)2ed~8 za1Z$DQs8EB5qJh%%wzDfI2jX60gfiapy?R-KnGlFfK&Sq!cFP1bmGPLfKxyC6mIGl zSsVnP29EzsHf|)#;c%}2BtEXjO?)!Ya}PMOVYcHYy4ZB^qBWRC@ps}j#K$A!&f_1O z;r_s>zq)|i&|ir_XDV=_vlTb1yA&BvxefrQdU6qT^pnJgX5du6{ee?Ch#rdn7(k+j z?0p*Qm*P(bPUVjSPVX7wXTd}Hr2|KjM*IkHDld*uJC(Nzcqs6-z(e@>)}Y@RiBS9h z6u6qliLvp(DIK!+YTz5uGXpsBOA4Io(?CxqaH8K6xGDWBfD`@0ft%95gHLCYNqqc# zh&ckB_%atbvSZVS!+ZgJBHWjNPcYz!FaU|ucyk804UZF@!+;Y#Uzns%e2xT8^j!mP zpr7)c4%`Fyec+E6(n0(efD;{kgdK81>2Cy1_3jTGq#60J4>;Aw1mK4Hg_k+S<0)qN z72x9$o&!7vF7cBx3_#*kuG7Fx%QXr(mFogH z=qFpNru1uo6a80!o6`RxaH>Bm%n_-7C3>hH*8`{by8}1mOZZOURKJ6OrTaxUv5P?ggCqvlX~0e})35blwDRpp)b? z0yy#KL*Rybq4Z|~C;HC=2MI>{Ujk0_w*WV#{}tdwzbzWCDgEyQCwjbqo6_?!aH3~0 za8r7|08ZnC3OI&fBcCq=C%#VrZXDM@=PlrrzSb;#0f?vcQ_Rwr11GxwWr9&exZ2DqWV5RLH!PWdhYZklf(@PWWr0UrR@Ah$DsQ+f9SH!W{Aa4PSo zz)j1$o{#^dS^T&8__xjCR|Cg?raNQ|MKR`k4Iuf0fSbydLqCq5CxM&N(+@b&^9*oP zdep$FoXde@s$fh%4mink5pV;4sD9`1@%I8Z%tNTZdJ8!5p&YnrzQ=$Q-@gKGs9%bI z2RNo9%r)Rc;SxWo9gXmUEW_Uul}X_Sd=Bt|@P`98@Sn!y9v^Im zFXnNz8D0o{7|Qh&a3x#=-;VL|mz%}^ipO6!!+!N|F_HachmpB;=}({zW;x(um7w1eF@_k^^1m!_()e*^jtuEOa0G4j5pM88ZJXR zUEy8zdtK4fRla|h&i~iqcg3H-OJ`T^JZ~HLrV^4g^>%bBc z!Xv}UO1CyWJC3#Y9Zn{$Ve>vYGdVpm*#}0z6BeeEdFCXeN$`YcESjtsL*_|1(g^EpGi(n7#{~xVAUo&d2HJJ+1j))*hP7UDDd%x9dPm_Bqe7hW~OFj z&(BQAo|j=j(_mX9Q=67BmwjzQ*tqb7@ECPmT!L4EMM^tj#6-u%Crla>IcCzB@!@0W z1vc!7G4W9elhudnLAXyB)<+T&<}6H4Oi1uaNbnCCI^ANSA8PxG%|GzLn)V5@RL0?5moeC+7UQzD ziO;Z=XsD>p)#nppLU*8lS9CwjzDs8dUYx8bEfmAow}ba!?)W%XSUa!><-o_6tI5uy z;N#0xqQ(044d|krzQel+@Kc&{K-m=sx-?>Aq4<8j7K-m@u`GTMDT`lMW%28(EdHI! z;@4GK9%3TMLTUUhmB!z%3wHVkT9Q_OPKGU3ng8%-;*t}|ELn6`Y;xv2ZF+Kgc86H7 zqB4HryxGZ_9iRnS@ej6`aR`fA%s4=4$XK0`k(QdsS`v!a&NZMh+S$ozT(4k>1p!=z z8hW|$aS^GB*{So>wV6vEN@xIAh@Y*GA@jAR4#ymwNZ zntM6e(#s(xvEx#oOO8$tOU=%*#K=Hp*NhDGrDS-+X~>uAGK+;+^K1shq@4u?b|ssC z)g+V!K@Ie?P{ct0E(A3&$WV5*(RST~h&t_A?UJncl+>(<mj8N@N$AX?^Q37M*UsE7q|U9B07L7c!^6tN)xg!!|dPE1Iimyx|BAyJ!{ zl5CIywSf$SC996CO~z*Pyf|?-qVZE>$0P{SxN+QzpBhl;gorrH69hwKMB*u!G@+|8 z`2kYRImX)aGNGG>AI`Lz3CK<~e1gn6FqU$kAd7==5LfG+OX(A2vA%=2`ZkL@oU3Ug z%F!^~to}F}hI9329@nfp;o}Av_~(@nJw7g8jj2@vz1bzd4LmfNbomUo$cy1Y7ShIy zDOw#CgZZ09-W%TFWU1?#>@bl==JgU5uvEpU!^XrIrju!Di{|;jE@?(840ig!^j?x+ za2KQ^G%@?DQMsvZYWgC~irI!SFKcdGa(WW`oSB@Ktj*$ZOqD?>3u_l*PRs>O zO3q%GnLb&YwlG=HRZmCO24|Y49k&qX?EI2avof^VP}0EKh)dusOm>|}Co`rqS>~jr z&PmQrokt4?ZDzJlhB7tSm}u4#nxp<_6IAr^WZ^G-e#Vj~h(cI643C_|6}VHS$Far% zW9H9=K|-Ek#3XeGf09fX)R|`Rn58%&Arbi`q$H<-Dg4SKft$!8$>hZB1gw!@`7nXj zBiWhr9~za4KR>JMs(9%1*2p_8$Gm@Hmdvv<0?f-!PDuDCl1#vi>_L|K_y%^tAs^o$ z%P$0X`9esSV)&5RF^oEN)dC*!mTCLrnWauj0;m3`iFLsyzb@J2XPHfYU9!oqYc@S} z;++uqKcBGkta>s7hDIS*7UaPn^C62Z#>YRP%j*5hld{A#ZTegvZDt~M%n1qq^fV8} z!(?)7ayps)Or~j&#WDtB;bggtfv9G-M?$BPg{eArEtVuKQg-USkOQR*lcJeRy5vYF zgQQ$9o<+SsHgKS3$Jk}i#tPfNp|e^zFWFb=gMZm6Sj{XNK2(cUNAl3r`B}pW<;-l) z(@H0uP*L!;$ZU>2Dl9J^xZL&wGrF7kupKQol^ zOf?LT|4gD7A1!c>9Uv|9i5(#=zJk8Lt5>?*`g_P=_fHIKJj>WY@}C(cEtQ;x$u3Gx z1IMl!k_D7%DB1PGe;krS%W!s=fT>u`8kIODf_6!=}vSP9+ zZ*sK4(N2deU7W7)aOdL{ZX3n0FJo~gz?V$H*B<7B+8C499^61RvVxr-K{m6pGLz?I z4arQNyD&|gIV62PL`0jEKzz#Jlj^(`VXOf*g?Y)@DRgFKp&r;py`^oa&NO5tr?C_m z%APSl6-Mqev;G1pK7KrfmU8j&e}EGv$3SK@(3<>VeBd@$InMrP$40CK8tN%^kv0>8 z`aeBO;>9Y^lFa)AS*$&u;SXaOI`NL9LDNGei(=~&(y0vp#PZhAP?Q#n}YVK|m}@4;?XCE;XGoSq||dvO6mEf4qw2x#8z)ksE$pl*{j-<)Y)J zE~xLaT>fU|`k$|0`I7ltE*Tv=S*Fn+vTkV$)88QN7VFY~c!FWi-{kPgT$Z@gr#}%U z|KKhNKwIdt!}AGH8VTrp2xWxXQz)J*0hYNE;Ac*8$5GUuP#s_piOyZQPe8y!sRpz8 zBPojl7|_91ObzH%%2*uUk7FrA65!i|1G7&+i0LaGXH%A$90)n=n#qB_Y+7aqR2@0)k zlM>oe;i+NgEe}pWe1ag|mYQ&op*yqKgmH4kO(so_u8he%aCT)%0(W}VdDg5D5hIV4a+4GmqiPBUk8;#(BsZbh6=wCVyGn>#Q(icPg`^fuGkH{WmiFpmN8%SI< z!_3lfNcJGta7@O7oePeGGIN|iRx`+)dHgP7bjcrd#X=nx( z8Od3ATbnsIIeVyfb}FOINX!~KH+>;9bl#k_`C1Olnm;F-89E`0%~55N@85l#jF0e= z@w0_-j?Cd1_^{I6hS@tFSfnGfi~P8@kv|M~1mXqpt`A(4cb+HQaJVkKD~3B8{yKcq zN8uOXCcv$R#wXZ=VzNcd-c!J;B+M@IQ~KmTgm4u;kk<*Bz4Tk_eF!H%g_C~|!h=E2 zi=giy{BI+i{1i_9Qrt<%XDi&{a5uvZgS%M5Y@Y#|DBb{ko1XzZ3OM~PoXRtUcZa}@ zfnSV#BSD_($Rp^c9EaL$={4S4*Ar&11|CFX}H9X7`!(HbXbAElYm9xJ@Qk!?7`C z{Rk(&H^Nm2mm=H;elLWRpWY{bU)+?R94_T2L;NVv3HjOU3QU6d4kZTM!0diS#f&?A-!v zE#4w~{1yXCM|{ILK>l&Ksa{mP8vvKyAH=)8cw7pX=&?e2 zBJcdlF2a%7+YEmL!VTje z`M<+W<*$WH<6jM2HC#PhqVoXn?%`efohjkl;Zpxp1efSv%e#w^-wn{0hW42cEED;W zpXeb!e(!piev>*0KkZDXcMwi~3Mc;zgj2t?`xR!d2L8ziH}q5FpM-Ggm+qrH)8HSE za6>;u{&Bd8o-p3^gG=;!^R7Ewns<;bRf>1tnhU?dyNz%O{|+w2JHq1!dAE#r--a8D z@Dgk0usi6@EJD8ttk{~_MSdy|`8VUH^j7okV#KckKU9z>9k5KqCqKm}e;UH8;o>*t zdl$h?K{)v-ocu`$Cw>$ozYO?iAl$$o@=u~T$S(#i$xj&NhxyPV)WG`Jd~7cPa9e;UGx|9f6#_RfMo9^r=iAb%{vS^1PPd#Au3gK&eql0OnR(KDKN zec)0#ym(g*m*kLs`$_TIgj{$t?>4|C{2RF8a1ZhLKHlBUyF1`g`HO{|ye`^;`4F%o zVTZhue?4wWuYh;65q~52;fnfy0a!ZXlb^~@e&}yFTm_fpH4|>q|Ht09fJIex{hwiA zX4G*Q6%}-#0Z~bj21Mj$4h$lg8eTF=%NYcP0vQ1jFWGR>K_eTLjLHnu%E}6je66gw zWq7IZ@)nt|f#UrVqM>=?|6AvrVGan^_kHj8Jb-z-pvh`zyg@&w})O6Css%#*X>C5&U7FXvZbsPTDc=6HM|G zT!(aj^iQm9cN_E5B@wo=&&FF>a58(YsCz#R+uEtIE`x+tj*Ifv;2#XPt z9B=SpAs?>c!+eA>NMDXH4q*l#!l(G>+o69g>YoVQ43tMOl}9klg?+vaA@x_XB@&5r zf+?L~Ez(KBf=jm62{s-Xp3g`*0#Emvj*#o+lp|5>-zLW#E z3v>kIDk;amk8$fkw-I!)D1RsTZ3eCgbOhrnA-E9f-hlIwUJTfRbb@h}6yx7Y+$2{f z=%P^1{ckZlmH?LqI)ZVP5Ii3@wfkJ2-`C*x9B`;x8$W`d<>^p|&nNbVJ}{nQftw6E zf^n4)JOSzSzWD?A%m5sTbnE*k!GXA^pgaxe6472h;1d9xH|Pk)RYI^Al><5P&b7lI zuqTzn%S|xZa+m`?D2lBg){HxxfkRhqs~^GkJRiKXkm&}x+V~Khj~mmDy$K;?muDd) z*vP|)Jgn#8SRRhy;V2%~@^Byzqkb$uFCJF&Fv t#$I<6#6WT*JfF2+`XfLu-9V=OmAY578bBmIL-` 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

I0B^o8nrtEh_R&X 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

8eMb9IClw*IdvKDbf%5tXqS_&Nyvb=*Ku3 z52vHYW%|db9paCK_ba9!s+?Y>n0B%|XsubbDPNUD=Ur7vwrZR^p!2tps*kW=g|DES#wFR$Z5x+{w_K_h~M*;kmKPYZRI%G>-_-^u-ns; z>-pbhU3GgR{vuK)y0ddONuLTb{8ip%7UxQ8mdRWzhKCB z+z=cjciAs9OP=Ve~8(}8zf*a|xBd@(!}2eFUJ=ydnV@X&6H_rlGUhLf$+n$nCoHGp#g zU1`&5kZi3z;)|MAuY)}}cZ&16_2o-G(`qg?Yd+7?e6JtZaylif3uihmgnkSIs!|d) zIGF#gSW|>UdcCH|q4`U<-(Pf^ul1UDdCI$4njXF8b8g5LyXG$rXi%J?gLyP=OTg(} zSZRo7#V?G2ZFJ(AP8TCiHt6{GNOC!08M?F@|B=ZfBkbEuN88);$7ZR6VxJEl8GdKG zecr<0J7nA@{e}leuiv@-ATr_!N}pxLQMzTtK0Z^X=vG=v9^a^PJ4qGG{X>*O>YyGZFunnky)>F5&Y4Y;^YT84|E!kukV>;^yQ4R7wh ziQ`((otBauDk^PNVWFVPm77K%Khu@c&B)ha=qcv+*nl972)>=p( zqPFVjzCYbs;livgMjwrTx=8-p^OJFtu^!(gijGf+PMC;$lhxeRS{?V5z5a9@pCB|DJzqYEYd2Q>Q>U27>N=e?^@>PI=tlR;!#4dCpur`Q*1J z$7dFuobg(1bkuv38=v}a_G`6!qY7WE&3v`?wK?y?4XNFe!eA< z=##3Ai;C;hjObcTX~`X}6<>rL-4%cna)_!ga0ZT#b?y|_?Xbg4#XaeXa+3|XF#lKg&Zxl--VZfS)n%^? zjfs3htE?3^A6v}cpI12P`CDxdciC!#LuRTgTJDIwHu`TSm(}xXSytgsW%z`;Sw$*dlbf!A0tHh5xdV z-r-otb~wcwqr)3wl6B*}Ye?;|pJ>zH^U9lcx8A?ZUa9LyF{zqsQs!0Zf}1K=O&7{; z*1Qw5wAYY#hIVP`b-(;Q+KauL+Yk7s?N~X|f84p)koyl<7ws=R(H#8Yj$OasH(60< zUF>}v0{1{53Ianwu7zS>D^jxygIKnp!&fpN4%bxR%lWxWcID(t4AMdO^( z`c%H_r4Y(=44FEHEgYtXkFeXUc`N3mOG36aILJ#~A)9t_OWiD!KmS77#aoWR6`62F z7+hh3E9|v}C-l}2ca)#rH#zMm*2P;+KwuFBVke)AEqvgB)v=%5Z%ckkWdGp_gB12qcTE(cT@ys;6Pf$fwYMS(r!DDHu*rBKF@;gwHXzs_?RJjV8+iuxdKD9I^q+8wGrtx*@Ks`e{l z@7DP*)VS6C@gQ8^6&K5P-48J;l&Cuo`2NN^nXH* zQ6lt*%KGu^(V||;mgZYKZEx4!?;YWTG_r6}ow|VNytal&j8pH+(kn39pf@yrZEB9z zeuNO=d&yL-A}Tm0(idi|)ef~l+NAaGOi8b~zhZftBMXU#$7-5wi05ery`VYD`9FWZ_sdQrzcy)_b)(q0nz7B? z)~rXNx80#V=%-tUC`Tgag&`j__=#1%H(j)M(a@Y7j*-l#9hGsBiWNIrHo!|%HO|j? zurjs@xyCA693e|0f@Ab>cIAp7W!%ADx6YJl4(mjPHm3t*GvR<^&E`9F=7Zs8MQpt_ zxWU|}n+0piQiFal4f(No$b*)H;XOkrxT?gume2f=Q{+(0-iE)$-mT~|ccROj)SWos zUuef*n$(Wo6oPJ*qS=SBLxnM-L4m=dGX-MZB({;nZiiUfnEVfSv<$&$%lV?aX*Wlm zi?ve^y(=7IFE>DJA;c%E|@xdLK&B(|TlEv7=FAr?LY+8X>&Xb)+t zsoX*RpEipQ&k6tol{5JM%jUzJwA69j0bj!bUpYS+zKAZla0P~`wlGy!9p*hf#wf+> zI{Ag(NzlC2ww8vZU`&FtSrKXa^V*AE!6##tsrsC(AdEzpxl_!?%6! zGS~igs8D?QqO5HtEza?xd#33s6&i#>ZBfw?otmwJ>dMldtqvvnr%(il2Cm1s zVca&w-#5kS@a-U!OG^jbP{FT#>DCZ+1ioPfVgTr;KqtOPpN7OZr2h>1SQq+(O#Zq= z{vpumc_csBI@(3P8uYu6p1|rr`pKSCpwoR>t3ju^T`ac?bn(o;Yue~Ws~fKL7{1$~|ieVj({ zV;ksmUFh__+Sy14!r!ibeh2h$&}q}*k1rSP{R!yQ#zaGsrz>$B;*HKl_Ms`9e!#^O zZW8EZKflIvkzWov`F9rnsNSTX}C4LfG)-f*>jx9PnF1D zVDfV%@;`!3<*fjno=X(Vy%Pf{m0Kmz^C0MC=d+-@+W9c(a1-|i=)*-lAk;DW6B7A- zO#VxW{Bb7#FNyp`CO;B`ud9A)Y_ewx=&tsJfll_^Es>}9z>>U0BEOKyKO&JYWb)5Q z=lfNL5r}x;C{68e}e`oT6m`q&jt3hWc`H7&r);9`ts_zVm zd^(d~ERoM)^mU+9TvNNN(V=WiPn|?hJ(GV`qUQjUKPr)bpUIz>$X^0|9LmG<5WV9e z${m8v8xHy??CV_Y(SuI)nhLtBA2L8EKhSs3T>Y>NbUgRN(f89LT=YE2^w=eOUSxV+ zmgs2#o$Nde`dAk|T})4xM9(#*=Ld-%dJiz!KOD!|uJ*@*PWDHE?rMJ)=p;wqs}si` zYL{h5kbjnfJ_acE(`wK$lyeV*PHRJ+jsoqVQ~#}W(L>_{eSd=Nq3`Xv+Vd{xWY24$ zyV~<-CVyNaPwxRId51(k5K2k^HHrKr&`Ew625(pWvzUA|=&tryn0&fK{xK$RmdO8< z$*+~jzX3YB61N?640TTb`~`GWfqMaTgrt)`2~H#X-;n4}WAqae`eH`EAfcBs`adM} zCmB5ejRg~&<-W-1<0SOAL8tjK8FX=eq;?E}kz{AJL_VI;pOert8T~gBdLHO^LC^0& zzgx5i`d_okN?}png4XV9K+-jDGp*laU4@(aCbM}da~!gC9lRjge8}A6YalQJ3ZO&Nxvt$ z4D;V4r!~F)yaV(AMqi5g@LsG3aL!`S3eax!ifejhTL0J4@$awh`+_5nue5d}8y(|O zIy%;!e4Jhs<%;c02%L0~+&>#liY z2XITATerjw;Fh@9z6Q8FqwTb!uY}}jY!6n(4dB?g_`Vu@p93%8?}@OKZ1ALY0O!Xg z_SM?&S#nQ02WXx+w}BZqKnuhREg+6U_;LgPaJZz)_Ze=Y<74>OQO3viA6}#51wZ~j z?7a_MR8{&verE=TL55*e)G-kUM56>8hCkw;so_tCiHb^PrZIzzLZKj_qP6WHC{$FV znNm>;trcy$i{%=XTOd|!nvuCJ`LPzvTy@=+Ew_*LvHHHBd(Rza?#ux8X@B3}_x0NQ zf_dNPdCqyxbDneVx&O{RkL1uu6uPF@b>|WVA4zivUDJCG!2{A9LfyUR5Ii8sktEdJ zYmOwL4@z?g2c`EMLd{)P4Rk*m_~ixNS;C5cNs{AMScfplt6P#JM=VS0)geie&cM=6 zmpOyFq^IWGbn}8mcjP)FwNQOMf~|O-jWG0!pQ3xKQL^N)7D`T*xRh~?UhEN^c=g73 zQROyV4PFzr!lCGxC?RkMRzJX+?WJ++%53?vDR&N{Gg|b`b^5_pFIZljclU~1Vg44s z%ffHCuwABg<-5%5Vk!6lBmBN~9mO@_X_sU&Ne~QA54c!6;2Ii&smwlMx!0>w&aVQo z{Hn4HvSfr{kxg7mqj=3ctb9R})c8hQZCj0HC*n#Bg(-1`$%$80@CvVMQ7pfzre`|D z#YVg=UNPe*DHIkg`PtOrEaSHBigV46<-+VbYw7Cb#8?V?Vv8*-E}KR(?p75SuPU;w zwyv03m|cKnL8i{Zx`Ea;w3N%#*@dOHJZqV4YF1(1)WyZ?N>|vX4syIWm->ub{j(lh zLNG4j;1c#(?{yXUIK0Fp{P83Z-Vd;!@Az^vQ8>V^M!9f&T}_U`4lltVFUOY<&PZ~A zT}{b8j<2g}{h=IQKSAFBN7ql#=KJ6pG(uArzvj2FP$;I`vh`tO80HogVs%_=QCXIk zCD)yEbj3wrv%KA?IaLei9b0(;txW2r0R9Z`?UKh?4zGbN<{HB+%PlD`q!oP2V%8Mr z=G(0K2*!ogioBW<7th$;$`h10}#{1r}n(PcCV&$jalzgp1s?e zG?1;y-t$ZwC{GF#_M7Z-SMF}Ga}nFCF?jkwg~uDbTO2=NGsgR9$M^voGCt8qSp&K> z-iJ@)2Xtz@=vB#8fBb;nF#7NYz6SCgEiKOI!yCo{y4dZ~`F#7O@aX@bvQ*tFY zsQk)k&bw^y?P46zR|!6Rl`x>M5{wc{yxsIml6c#NYnApN9Ff z%RuL0XLg$JuJNszbA=)m!_XyB=ohY z+@IqC1UuX5#Wlxi4RdM5gbF8%O)4=c*`qPVM-!fg3N1$puI@33r=~%!Nn9SWu-Zr; zO}L-tR|spZdq2su_@l0mG1xtFxfQE2TE$l{v2=-skfPph`nXuz>ca9^Tct)*DDykrHq3(9!qX0Zq!FX9(dm@qTPeIq_? z=kSjy6&~^vGG5Fz0w;qWM>cFw~?JE7#?NV2Bh*^ zfuy$usE6J?0-73uWKV;Drg|XeFJ(rlY`>;5PtQ zVLBYm_W~|=0LczJkn$~KbPl647^VP8zk$(V3{^nN&oTNUj3PZfKuX`u=)(+Y6&Fgs zo6$QMQrvV(Z)Y^k*CRbSz%{@aM(cr;PRD3JhG%emQ2K5l$-5YRkl}71<{@P@3TUba z4hK#18iDv?nV=qT+RWD@OK4A zG;nzzun@Z!1zdg#NdD*qVqR9(VF68hfTiF!0Qr6(;PMh6rC$c5dM^>sl*9O$K=NOP zfF?8JCj!Zj1_4bmjIRfhf5HSb=@?%PBtK#KB0`fN<6p+$g7@NCmjpCnZ5H01b3irt zX9P6u2U7pp!*Dml1|Zq*0Fs_M0ZlYtnfMhz%2&eZd?4wy2xwZu_*p<|w@d*|vw$VY zN8>A|s%IGlG(`h3&oV1YKvNiy{HkS0<2{WxCxBG$QHHHRvS$wvLsC|=fTrDy-w4E^ zoYf$piN;+VT3I^;G}Qqq|9uQ$8$S*d31~te;>%kGq~jn5Na-_y=rVlJ4WMZjlP5B{ z9!U11kJCvaD^x&}0hqyY8a>bkM4NKg0RcSS37iAE4Tv%{RKJ^nEx_5pX5dZ0MqoOS z>XQa^08@drKr_$|yb)Ldya8AO#5_Yy0T8xoEWnw-B|xl@tjPvW2ck?a1!x9N17e@% z_G=8lBw#cUb>!_g0(GF{fm+~Hpb8iV1kn6@p3Z0V3Ku*F`5mBpfVTp>fh6w&&INV? zqkwI|CBRl7)xQNe5!ej89oPt@^6G&RKnLU30;zmE5M7A(1EntkeH+jM#C&|d{)>Ux zpcer%foLnf{tJOApdsVyk4o|NUjWpDKOd+As(@PHJRtVzyAZzq`1XabAIev@flt`T z(9Y1p(9BTJ5WuIG%Zp0n@{CNmJX9x_H_P_OA#1??4p}{ZTjcxYa`|p~ zGk)t74uxFaBR_-vPWe&%cKe<3lgkfdwN#|^+mGJ{zefDl`qkn0lHxMbpHZB{?_vK= ze?LXNe}jJ`aJRBqxnJq0XizpP_W-MvwaOj9EB8~a_#6WH%mc45C$c@+C?%1-RJDGx(yeNaPC zV-Pf{>(p}j#h^ayH>exc0rEY;Ex`fuhTz6v)IPW&7-a_6BY&Py5$G-4d74C)j}U&7>lkP%(M=wj?sc^3tBTmt3C04BzbdY0@%8aqq> zBarA?M%!8W4n|L6<<&F#719U&Cs-XnWaT$9`F%`(GowENlKvJ(FJ<~$8Ledc+ZcVq zPtY%3PruCccQQH6#Ug!OjD8(RbT^}CGW|V_{wwNE@^g$XX7-EM(|?)K zo2Y$|#sH+PlG#fqAKE&oJ)yG`<1;V7)Nb9mG43;nEoZq zA77Gw$YbCK+OkL===qG!Bmcl(Vt@S`(U9NDua53~(u z`eGT~!1Ud~= z{|(buK=s4^?M&bAnSEE7occA%bD7-A> z1KQG%kMftY{P$CRLH~l$ce4DK8BHIel0FOc(DoGRgRGI!?GpMJWE$|qIB$jI4;Pxo z2~9Ba-zn%@N^%!EhU7SFi*eXC!Zr<^E9k-xTMPc#P|DMEUF}NSq0g08OXSZ=iA7$-Xp==c9ej{n_;(Pu393l;*Fo_{CmcZ!?K7aRBp-@#fOH;-1_U1^48xv=$bL z!BAZuUk*~D%di3inakJTl^Gt15UNNDhCZV zGv=zS8*~ofRhc&M96de;^mMVmIlCx(QR5VNI{@MmonmJ`;k`+MFM-jQAl{b%d<3aZ z@i36Rk@6)-bPBv$o-nZ3IIuW=U@@dHd76jG;>#~l;MKB3&wR|Mz63^Jf_Ps7@L^!G zXosZnl6(mgodU0xCk!k$4lIrzSPUslPVz9B`P3=!YFVOFEU9XOFM-jQAl{b%d>EMM zVIb?Lz66O*fmh2D1{NbK7nK@6aH>JXf{p~ya<6tIk=XO}h{^k6HmPTQ35*bs$-d-1 z1qtq_Yhk)0ugmCRgZMVqL%>>taN0SuLBvdlXou5}tPb&_ zz^esGPI3Qbgxi$@KD`hXI5o5J#FxMb0oBTv+_!+wXYf&8vM)iBQ{c6Vi35uh1{ND3 zrpgSQs$VR9Wsch(ZWy+S@l&TI>-#rD|E^xx7k;s%XmVnrUZ0p^VCgNx2D{czNS>CQ zY=}=@nPP~y8CS+nH%?2*H`)@d3Hd9g=dUov6_XXh_Q7|5{{gqL{H+@O;I^A9!M!=B z$3HfF{>YsprjM=b0YTuPJlI4UxBK+IgkMX5__?{|wu*Av6E9} zvp9r!TX<<=C%(Alit|tD0XjCRK2Z-nH>b^xO5zcRbHk$xw~gYRW7>w3C)GzUd1%99 z4t{e;^f9&*#JM1}sw}>tEEA?mIK>>j2c}KW|6)B4rq8_7IcY#Noln8^(F7Zsoa0g7 zXr}KGavHW)=yTl|+sR`3*pylFUq)(9s#DChvWnI+RwkZRkpC>OZ#WRmB(aap3ufu1 z{xjow2W<~hC&Sjoo|6ld=R^mz$4Z*6yJnS;LTaD*+*i*OSYQ;{cMkSR>q<#jeGAuH z@z#u|-Rmnp_to=K^cU#!riY0|ea_iZ()xnlDNrL|;e z>tyx4jQY~E8tKOLIj7c0^_iLfvsuP2ymTi2Wj@*8$6a+Yec}W!kN)Ri`U+Sk{b<+R zp1u_8OUDPo(w0l@yUg^7$6GD*k$ttWk98qQ|H~^ZUs0TIW5wp?(mKs9Hn7xv>jj}3^A+ah+VBfJa5GGR>-!A zak4oUCtC)D?j2(MXo`sq-|=y+dlaL7<0_+g-GY=S->G9Xvz6*D*73Aky+?c0+qIseZKn~Vp8VrlM~a0`I(rpD zjC0YiVytx0-)#t+C`~sEU5d(aZJW~*xow~0AE)i(u5BTm}Mo^6&4> zKwn5lpGZR-^VAp7N47y{=r_0j0el(yi2TLxtN6I-&OYE;rr0+qw!0XAy+pUl&8UtRM^+i+@{F=_`6kaz)sITOmHSlk-?2`>0IO2Vz-b+mX+x4}H$ckhWQbFvR?9`Ys_ZeK2%lPEcZ} ze9RF}miG*+=l7h>8t&ZJTf;Bi{;O-ew~>1v`fk@4z{mpO#kSDzV6pFi;cyXBo-TZFn^U;jhLT*;qB>v2DfUlt#p0i3R@ZJKw$cHYsz7SxDW%S6$~k3mXyul)68Hc&&lA5 zY-?7P7r^8dc*T=be2;AnS70q;Ch$hm*Q}VsoPTSXtu({7(z>pwyo?hrh-dTFo8eJm zX8?P*u=b=FVK@r&-L%`vGp%LWrM7e{zGBSBi<5%%Qd_=lO?e@{=$paCt*EHLCvzxo z-HLK5NPMu(mnu9o=gsD6kGF0Dmv0t+*X5lWPxrsfg9CYv`P4N4^Aw%{6_ z^3wnRW+OXfzG?KeK@5y^|f8 zKeOKdtvYjjve_^rg-c_&-e@2iB)8tlN+cFia%+#?7^vj!=F2?AqtJvBosNIU2|CsKeQ*3oGk-tG;;9FLkyOQJA?I2#k%Y6LVrZ8?Z zLg0m;Z3^y>?A8=~R2B|ZoiYOw*KCXqu$RM^TsowFhQAT=-`Z;}QSvz0~lNjTF@HWK%E_oN5ZDuyO5S+@bNG zH3c7UAAi*9!+ylAPtLB{got}&KVK0S%lYi55Mpnj?DaL}DFGW07q39^3m9Bcvk?`s z*CZFzlr#pEb4L+vkOJ80$#T>pBCJOi4wH^~IJ0(RV@-*!W*w^UsM*k1Q>qKtQ~?ht z);0%}8EQ%$HOVNe3vTb@^yeZF@((Q)e$s+=3AeB9tU)VmD1lUkifl}&DQ&DtMlQtc zYYx~LU9*w<*aE*z=&20V1MQu-Jzn8xvkD#N?_`;5M( zyuPMHi{Okk$#7j}!1{u!wdk4XQT=X5PdJO_B>3si;mcVp@XhJcN#8d7Di z*^n7P{)fX6_A#?&J%>?PR=@o2kq;zXG#Pix8h*=|jFSXfCyBzU@+e)u;JakLCzKKl z4>Q`CK5mC%=I->F+$DX;zp^!L2#yI$^dY@nnlHMPeSMnqJ(^3|nyY~$_cV~o03PT6}jy@5ZMC0L1glDbp zNZEtxSIs)8Fzx6_>FSsX57efc>Z_*jsG7AOWmVm5wl=n1-eBKzsEe!e65YlTQS9@#y6X*l!;}8P1o-eDVgR1Oo_aglx z+>&H%Cs*69JUHhE^t@kkJ)FZH*!-U}DV=owb0+JiQZ-DUzr}B4 z)b48hd|ut;2py5-s0*t0o2R|)_TnX^4ER6Bo0sAK*$ zq1pvILmdkyhibEL2z6xN7OGviIn=RmSg3YUWT<0Na;SE3TBu|3(ok*A{h^MW(opTK zi(=|iQ`;Z>?V=|8%calS4}A5k{q+&n4)w5MxqdsZ@sHXWN-xy+g^-M>!Yb{{sjc8%@IyH2fEhjTCP)81RIjJvetL6bsJ z74Tr#M6Tdv^^S67&K#@}jRaORlu`}<3wzjq{>mS%2&W&v5FM<^_3aU!%6xJOhayf1hTNTsn z_^S%GX493^CjP>1y*Xf$C7`@Zd0rb(ikQ~?FRs|i^o;)s&zW+vXUzSTp=p()(<+1S z?;Z15YS;;D*!{RbkDyx}3g~VP?>2|O*Bf>Lfz?yPyK!66I|g@CxaYaw8jhQpi}MvG#7CVvBu`?1UZ{rB_r0m&Gb zFZ&~GcZt3xw?1H#qo&+mGs@Z*^p-j3IeXClHsxD=L7y8!aB+#N;lH*i`}g~TE;{(@ zWByuv%Cl}Z=y0Ckwc+MxN&NSRraIE1yV9atWIC7H&FH49$zh4GxpB*)Hvgp-RAkEr zZNNHRO|C9ry$Yf312)ioU;rLuY{YpBw}L4(xp)TANH>J^v|>rBcjbptaKVbJ-aYkb zl+1|Gf{4&=PTk)?m2|Uo$olqJ*wdAEU5`Ar1x;{hW^L7sx{j&)5x86d58u$1KE0(q z1$sKuXS8-qzapQx8&}V`m%yz>$Ajc;{g&*;E!o~I$IU8i#-%`MO3fxqO^L&Yw}WT4 zRGIcyjiW*l{+zC=Q=(1!j7-f~#<@BcX(_iD%Iw_o$%{cjxk-R^tm zhrIFb7g7JTWgR(ky6@nXyyxHk-T61-ChW?6XLsWHXFlrqa_#gvVb31E?CjDN;v3CNiIR7C5|X?XVL2l>p# z8(%zQvG0n~3ToDy_rE;$(7jQIh1VI#J|@1TN=BAaa!WvH!l?1;ueW1e5u)2Pokhv% z_D8F6N<V;AMcod$0oy>xg%7pH7Ze2*cYLF^KiH9lPA6iNOwt{ zmvl^fK}>BQuYG-6U(I|;y>*?7r~>kk%R%Idy_1 z?NBQ>`Oyj2r@=fNK_QcKbXk)FHGJQNDgP5N`a1Q*$DEzJ*>B67Q3!l5_vbr|C7`-$ z^K-+h-ixY~qlc3zrRnX5s${wSPT%&d<%vVt#(tlcFKl_oV%Qax&FPT?9_fo-vdM7K zrPDqZ8gr}ew#k8^%na>Ez7J9m)>N#eo49Ego_z7N5PCGE@r$mY-fx*(Z!5qWJbA*8Nb_n zQ&7kIq8a9Q1D}4WCE!wKN?nG0tfed)m3%TS~1xF6LYxv!v9} zId?>~cqki2$K0m7YqE2cbc_%BI8JTqH>dV-|GA^K?(9FnqK<8Tdziw-D~DFKkJu97 zazwng-}0|RJqi70bS`Zvu(r9Fu_<;*v!O9dG^6^rJ+dInW3@B&qsK&N>wcINs1h5g zK4?s=dirBnAd5O#o95iHEps(nE9S`MtgoE8aA;Cc`ukBb8S5+8Z|LO*b~|UMp3p7( z=NlytbZC?3m_@IwysMQTjP+t)xqIremkr%nBecvbja_5nX6VkknDJ%Mt_kWNw)dOy z{g$~QTkq>PBY$(pO`59ielsq#_r6@!e%E%V86WnRJkeorG2^zitp(QBC&W|Bdh_X& zW#Fd->ttRXys$I`R_ZvRh`~md+C@ZFz}4LKIep^AZXQNt!GX+DuN0owxvf+ z8{gL$&RK-x6m`}`KJmA6*-pL z!|!%nQ|G7UP_muprtdBb-@l!c6GbN(&QcqCJbl9mGyjTSMB2Ly&}g_oBykfuoE!b*@)@86DD2gnao)-#YDQue_r1kFkQwe zcn5*qrk%4YaA7x0a?VcJnt5>UmDEhGtwqdc$T(?@)NGP-N}Q4T4JJ()*|mT_VED%6 z^!rj9ORx%@d9(@%Ib(Qz)Y##;IS!nB^E-a&*Xv}_@_Yr zP1l??k72u`Zfg<}_*t4eLg%-K2>hzhTdXW&dg$zkV1cU$`Kpa^k+!#AGbd^e`9?49 zj=C+C?J7dktZJrr)KaUMKy$W-aXUuc)x@|}nhV^b^=Y3x(4<*X>wkMTzx#;MP?h#c zpzYeNGv2YQ?@ASR&sa3q*sk62wC+O5mfP+A!fscUsf!h*xu72{>~?6rY-CDrUE+U- zpj2~5{T8YOC&K+?-7RWz3dkU0c|$=C*<@%NcihkN;gP?X63; zh`YBH_~$b2Lfsa&`^a5={w0iy(!^a9v6gYORsN;@3B=v$^@=jah3RY;u2GaT?pi#@ zW4lPZu0O4~JEK{#o^fxyTqW+Bx)mE37k6*s?#xz21>=^b)QG!FoBcO3ZaMBr*e*<8 zDD1+MRlRE;dN+3KjQ85q555~4{;KXmrXtDAI*{hHW#g&SYaeRTOs}sxD&v?3vz?K-Nar?6e^ zmW7#YSHERZ0oz4Cv9sOAsu>P`x8?UoUK!=5ZW*Okx7-?|Zu!?ib&D-g-LfSEm;+n} z%m)?$%YpX+tATaumf!DCx4hk;Zu!%0b;}ofpkqJ&TV8ql<(GrUy<+?IE2Dzrj~VYjJu#y7JfC zsV4kx%U*rU-joy0^J@;wZ|Gd%*OpvVcSH8{Fa9`k@6yc2H$9g$>hYY0oabJ8 zJm>uFOLMOCdnnvgar8>1ze7K3<;P9iZdGQ~YhRE>W{rA7t*ky@a;SdZs5k0pudROG z;~SrtpY^LFWv|a?ynog|e9Ol=ZI$Esq|wjDKVP+IHdo;Pz;AYUzZR+c;;ikv#e3o& zJwM~?JKv1?>ya~s%V$kE@=?j_YhL@2+npGhVos?|{q^%z57kx{O!iw6wf&RlA|nIW zUbFAIhUHOdwY4v<3w`!O|LD^BFO+XQ`HRuR-=D2m7$N^qHnMNTw(69JXMb({{<_Y=!-lI~R7^HM zHGTOr>wood@wYEG{CV}~L4W>NNHskL9sa@S&FM)azl|R2_-MtZ@BXei^7Wq+$A2IC z(vcP4En9W}kzHS0SvKwdKYv>O^mf@OXBGBsjk)&7cawJg{ruV|VB%iex3j)qKe8*5 z>J_m*YX31==BZTGu;aD!diQ)iE@t?xwdTz623f}b9f`8{xs0kQ!x!Eh%Kbj;_@YCU zYf(l z{KeAnBS*?F+`D}J-!46|>-@(r-}lV@Z#=f<>pO4GUJ6tA{0~?+buZod!AHffKC=77 zQ@hR|?Q6IpW7oTX+yB&)Yj*whQpvc_vR?V*{A=?~*Jqz;n1BAO{r?k_7ktP3o&TCS z_0cbEGye65xHtavYxzyb&hLm@@Wuy`A3MItzvHcM#FCzBUO$t&?qQWitI6wXKHn3W zr++d~HoEZDU&?krFjJM9`s8SyjD|h-&GrRxUhL{ zY-8v2)gPa?#=nu3_2~KYug;A5;GuIt!(Y06-^xF|{`ft&%R3@Mul*qE`LP}y&+nB3_?$*9)JXD1T$t3pM}MxAMvN=YJ45?``|_`P1+Cc)YwN$2Pp+%qm)E&7sZ1IBp7g z7MN0X$Qr)V@BqDw$J5{aidhGRCy{-j>n#EI76eSA`C0+f?0DA5&-=my;LH9{yTM+Q ztE$13Mrl1BsaD2d?!lKmnt!!n5``iUkD}=*HUE3c8iv_2hbu8jO!={c9xzX@=YLx} zQt-N;pTmHM)3dH@o_RunnHcJK3u{W2)RdM~VOAI(sF&knrm<%1vBe=@@>4P})8lh< zNUvUlc^V1&XiUGM`6|aTiK{aFR1YRijlUoZU#VM|g6G){cwU~lP*#^eo}F*33JIOf{*j=?ON&tO1xYO>~{mL^WD!Mp{7W({U~^acGx zueo5*yv1|g%GO*qXuiM<2M0}N_}ZZO=p8)HN8`2!W3EyEY`Weta3$3(wT2*Q&=(9~5A&H#XwtPRGJ>eT9s>*Rb)faTN{QTiZvD zqR*UH7q1UoSrVgPSrQmHb*g@~we%iasUBaY==pCzg;l*=7OPrhD_>W-1|Mmxvk4!L z6t1_$rt8^P6RxZ|tF5bSdip?Q5Gg*xx&eDJ&^2$M+|CQnk2nHRVp9nm%QUJ|`_TH8-so zhT!8HJ^f5ny|<)JAAL{!=EjSMRhtiuo~U||7^~wq_qD#QPBnD&sk+o12^k6MkcCGL znX?l+`oca^cT{C2sB`4+Yoimm1iz!|4!QDA>U3RoYEnlR{TP%hvfnqPSn;zXb!?7t zM15mXRr~?Ns|mXduf>mf&G>pt;;W4_UZ3`w@xaS1uNjRm8eg9=ecDTg1FygQyy3Oq z8(&+v`TB{;$!{d@Ixy|!83&AG5)QPy^4dbp-wqj9f4<1N;+1>K=1iPY_Umzz&T%hd zJfexNLBr@a0Pm@ml+>r2aJaVMZ9>Q9vtjQv1>+qPdMf6Vo#T%m?n693pc~tOqx{<> zh47XM^KDWb{H?oH&vAc*e57AS43hGX8>%f2y>RoW15+apM9L3L9d=-9$bqRN4n&3? zm^$`AJ5%tO5|T0|4irjNWK1WTS1yu-FYamItWB#35c&!Z{6Ix)he$# zzx4rCoMFjnwd&i4Wn<&bPip-XuQWet(au&6yVkGWKH;t}8sCi9PgKsv`)>2-T_cuR zS|%#DfN+GoGD1B~9j42gR+3Rt**;>d&M{oEJ22H?c<8scR9l3CF8AK19x+~F%(Em$ zsFeBtoYU^FoSB!M0^-}2DeWa4W~IgOsaZ)Hj$hNS!FVn*LKh$10CVoYJgVyBHoN0I zNq-If=AeXbxsjBXkkX>H$_%}WS!YLNhxIE;j;<JG;4dVz2BJUn59=K*Tx4_Y5jg_WR)>Y zZLgK}+V#52RR^`#@#V|liXf9ik)Yc=yy_6Bo`6kbR|aksYEkmg%#y0J@~ZKCEvxQp z-PNOf?GJ61Iit{=vg2sZdjIGi**H~uZE7#5zN$AvU-9bzfkHrJtO_W-x3c{a*5GI6 zI?~N}0v3n26O>d<@UynqE|b*08F@1zAbmkw z-M&*c3iddLJ^89_iU0fj<0`A3UuPW0N;-e6(33*H6ght=?7$H~&)s$ym1op&9N$zg z>*c-uUTk^HzT_QyolZATwOO__EZuNQTd&d`HL6n0u`A58)pe86sbfY*wYFJq=6kq) z!goy39R=X?!&X|w8uZ}3O@-OSeu)8RS4C5nlhpJ6t)S+Bz1g%z3ETlT7g zUaRA>e-rym_=hJ?pCA5P?3|~a-(d%NCMq*<@EJywrro&0d@R0OJS3vDb*eP`U3}fM zRh!$FMQ4~FkwxqhyL-u)I<3n=vU^1K(N^u|vEo6rQ8v61hoIP-cHd$U`t=pZ^*6_k z3z?=}qRY`=j6shV49FhwTxoyugSVKUVTVrD8{P7A{q0fzxV?gG(xW}v?-HvDeuNq#vjSn{bh^Heru01@szeD5GAX3*sD|2 zXSB77h)~hE-e+xEt%9DG-l?RnOnrJQx^F0YxdC0)uKR3f1lm|J5}mjy9$ow~9735$ zc^i7eexxi%%08s*!@(v~;|S5y@uR0>pplNBkE!bvIgl&43)#ovFl*N&3X5x4^?XbP z90TqC{;8LrHOEyr64dL*s45LbX1|*_3l4NTSnk|PN^UZU4^=52onJ=!rSg4@u9tA^ zaMN@#pFSjittWN1+7a#7-Z<%4ezg3weAoMWy|Q0V`dRTYGwGrJiSmP$bN`z!e;!d55x86SW3C3hmFE;g;8j4WImU8@~CuZ1~epx8Ywumkl5ObQ>=HTsFM_({1?r zs%@YbGb8m|Mfu6Dk=2pcPF8K1U!*<8A7}Yfhn?9R zF#V8aL#0*~8d}}EwQcqxeHA|k(dnDe41>}St4?6E>iO6ko<1ElGtWYoRyVGl*nYp` z57CaG@cc2Vn@UpOenh9kbz%F0iH6xs0~8df^*eqedH9z45(KDqZ%*%1YUhF-vrohby!b#a|=%Bp3C}0iX2l1(WVwMEbga{BbV)wcukC6891K zM#ks#9QQ2v$)NpF2-So15WgGz7|^r8pThWLzaJbzdRKu@JyR@q0{GOvmEa>*my>S- zKMnLV;HNV_>Hj78q_-D*Dn~5$H{jD$kYJn^wTw^Yz5)JJ(Br{3xTL=Tz8>^E@UcFO zv)o}=Ln{t+5%`o()Sm)A)&D8*6I}RrgP#cc82Cvp{Aa+YcEu}eikaio^D+3>fu05a z^)CD$!H)&K5_~FOEH`GfK<@zG)t;r`lRX{ayV_F+z5)Diz^8T-^&AAB?7S9Ea<#J$ ze8l|WmVtkROZr$Wwv-C`N${y1L_KT3r*x;lztM%i2Yf1b9Qtp(3;z`ONXlh_50iL3 z)GmJqpVq6Q4Wyvo562shl?cYuGd``CmHwB@Zmbnf`4>9fe+s6 z_^19>hX1i5AL#=@plGfR|CEo{gS2|^ssAi>k$q!VoVy1^;>AC8uVS1jG=y{H%e^ZkF z4=nu&N&5d{>H8$#_;t9LX_8pE+NcD;Y-_@S$z^8hpNYdX7KHqO$_*AcaFv)Kv z*cZoV^4k{hN&lnZyXt=$eA54%iylh<2KZ6nw}U?sDEjR$OwSpKp8sZgzLV$~1?5!k zXn*%|W5K6#W59Ry!(1@ufS(C|CM(w;I$r=k8MFg@aU3T8r{GTq|84M7T+)w5U2$aW6~nkFs3Tzsl0 z_m3<>{7#$PJokBJoQDUtA}GX7Qx|7ON-knnRE|78h(1LJo}_>VIFXA=GkjDJbO ze~a;l1-kp;&y25^@c+U1$r6454l440mV`fn@$)47X^fAFX>R^s06z8GN5B{RC-swB zmcCPxzLD`ilki&^|B{5?#rVU9xtDv6@%0iu4H{IhWC>r#_!KM4wf`6xKTpEXWPFO% z<(l5Y_>V~V6^y@I!gnw}#Yl72(+oZx*R+=IETDLNeGWdQQ{y6^u1Cb<;#=_PxYdJC z=YNquVv@k0CgD$E{P_}o2IJc#{N;>)pM<}j@gI}$A7%XCNchc+-!9>|Gk&*(f0FV4 zA>n_`_!P^}wZ7`fLVd?e_>&kvQNq80@#jkTw=;g8gkJ(aU7v3RUmTyQKR*jTjeC2* zC%M>OAAwKT|DS;$Bl7*QbFI*R!*KtFOK4~MRPbqB3v=Zouegc#oP?xT+(iCk;6sIT z6ZwAvpUx}dCi1T~eLgxFhDhfo>UjcuI-iJ}$iG_s|L*i;*Z&Q_{ij|+&-jlY1V8M+ zbs-(+;wBz1|F7_?^zQ4~iT3w^Pv<3Z6Zw-cXn3oyFFn5ci357Pjc>mAzV!IwU#*^h zcY0rT{#^WjxBb5QgD?C4-S+q@_vhmOT=x6&o3HclfB3?P^Y8Y9uXgdp_ciW?Vi5Co z9g+h+F8%n8;wV#0SiGy~eFmI++!h>VD-S!D4lc*S$JU|+X}6^33h@Y|a_2AhSkJFt z&W9m%iyy?x+#?6^EN`KDyrhkb_nA7*n46nEJDmb(Sl5&<=3|HO6V(>kR@zE!YgX7O zLX&6ADM^jpql0=gA;Gr^iQdvD`A(ngUO1caNAvpx`>~9*H;vPLYfN$1m?2&2Sk&0x zeDnDgu6d2VVm?jxW<?U;ACtzq~M?$(MWLQ+TnoB*AN5Z8I9&YumpdwsS#aA2l`(bN~qcmDph%puZZu zc39&8J=Q4rPg=$RJ<=$6NA&8=w`RGnX+EH1jb1xm!T=pFA>Q4wu0_G4S;Z@?MK*7( zl`ufxOb|RMsdK^reJ?@q;GEl17a{Vl+mOn}QmkmsMy0a2ffh06Z5^r}aqaJ`%H*=x z_f_TdSf~5ya`WTtRb_EmN&Kqvxh)BPRXKex4xU?_clU~1+v<|?jkzmm4SilOdPu6+ z&*v`|W=!(}fyu|olNAY}qWjY>S}=GY@lZcVpK>XcPSM^?iA(T$FeeBHv$MPNfdfSY zGIOa<3$X+fypDSbUJu$t;h=R_ieQ57dWA@WiIQLyC6 z%WUvkw?waXOY&N`B(HT#@>;hfuXRgG6gx{)?$yTC_U6|liB|+)C3*EqlEf=4tyixk zdG$)N#4Cbdlf8N+S>hFzR^k=GhGa>Lv$S68mYnRxgXq9>Qq!_-T0Gdm%=<8V(Sqz; zzKqnIoJGR1E8)c@3(oRj3*Pcz3+|G#rwRV@U<(fOU<)4eU<)quU<*F;U<*$3U<*CM zgYCVR)4bPmn)h0!c&}wje1AjnYusY8Ea%T2EKWSX@9|AgzRO2JECnCFp8t3z z&RV*H%6G}i?^@TD7nj=jbS~M4U?k#LIPdXR7B3%K4t%iW7FA}syF=HN;-;(I8Bb@< z8X=;N4RJQ}%e*BOF3#K}nbtCan_hr#hKA&C1gk+VUjbug45e=3Wt7lNt8C@$OQ(%P z@QZ7#93ekAV*cDU#cQnP#j6WfAlhij(9}621P#S9+F;{Yr`Qbce&RdQVDKXkwYw_|F(|e91SIt?<>xslE~E3{d7Z=7oQxUEh5TUo7@dcr&Nr z8<_{sCj|2vS~W7*xIDO4*I{|^)Ue%cR31Es`=C5{dXyj;lLyZ;z>qw6W)wKkh&;H0 zfd=HkbGwhntjG5c$hqzh%e+7B7jAjPi)Js6`?Fk9cs}rV{{$UFq!16?`zPp3mGdb9 zf8Qm9))qfv7bBp@uz2HQ9QZPp*W2?}cN z;x$2GiC0tN;s+>&UO)`;1|ln$e+QA9bJLO>RESlE7!Y zZy3m$c(K*p`z79I445lHQVGdGK#!w^I!M)u4dJaTuqzUm7hu`WFIoA2=!@Iu|M2~v)L4xR4sXd}cz2{02d@$5^ z7XzH=*wCjJmoZt7#YXt2GegxaUNc@@E|(W0SC`S_y6q~n^CS7y<#D;ty1I;RS5Q}% z)%S%FYbcl3BZ6jhAdmMWt_OqgoYnn&&tEaDv97jxoF$8-N{8|UP|}z1FsiIvs%OwQ zb`mA|xVsm0^j{?{;6qV+Ru1o6d>n(~h~hlT_{ZJu&Y+8*@{J{)zL4q^9+fBf7`hXD zj4+Af2;*)8UeieR3lH5B#c@NL-p7cMD2^D?^x_!oato6?Pz`huR$HM?^m`HVmoN>r8~6}D^*bS;sf+Os1CckYO+eE@#%}>W z2>u=cP0fto0IUPQUO>|h#;*l#1HW28lb!L)fe(XUBA_V;_y}mK7toXed=xbK0cc8O zw1Ls|Z7$ib2a+E0H_)VIG_?=WD&TLB&JRd-Z~~gHz$4Fte+fu@>JLEEMIfa=2c-H? zKLVP1fRw(Q@u~k2zY9p|j{?ar)Ng^N!$3-pH~>7K`aALW11WtAko-%>3DDFGr1Xu9 zPsbPW>w%Ph2awvyA)u)aNa?E?pN?n9P31uHV~K#KY+y6er2z5mU{<1lrWhc;z0Hai z(4+-YIu%3eF)x6=guw^jKxfgn;y}|m;EUk*07>2r#OGgGU5wue+yQk5uwpy?8j_!oi0z&|ITsR#Ht z_khsr(8?mjLliOjePArhLX<2E;dkSxW>oWdkW6t(8D}GJwM&Hw$Qr z20jPA8c5~(F}#9};tbPWva zfx(dP5YSWyBz@IPUIA1?UM`@i1W0xjFgdMd@ht4g7I1kckn)?EJOvnp{D}gZVi-RP zNdDFfXbJ-cg4PLW3I$R*Y9QHr1!LT=P|jrmm!AVtIXyshhWw$0ZoZOlE(l^9t}j-%!(4wqz9tuv%&;4>43Y?lv-dtPz8KaSU!k* z0%!+)6Oio80G0sLfn;AA&;m>al6__%*>@w5?8BM`8t`b18BGchHfjt&e6y?}yYQ{I zMh~10)B%x(w__TR>_`9t=$l!dpTy{=2~p`^0{c+8HNYOA71#|#*_tk37O)j~Kd=S( z3t%(wK42s8USK_N6VL(N2&8eP0%!+r09F9k151GGfCWIbmBs?Zb(&@guoRdLTno$u z!bci2uoxH(Tn*F%(Y6{L@KK-&cn^>R-VMBrM!|VVL*s-E*aIvCb^~#~(R4C?8?XR$ zE3gjO%=nGKRiNvE4+3i$-ws>}x&r6`7BIdAm=Agh5a$C;CU6DN49o+j0C9fML<3`h zdLY_XqXSxiTHq9*3YZJzfOi2e-X1W5fV z8#ob|38eI9;2ppeU?k80r1a51>YsXG1W*U0^jhE&pbDr5azILd8T~aC*aw^dJO`xo zJ;2+5-N0~Q7m(6-0_k{Z1I7Ydfwux%fH}Zs;CNsoa51nRxCrO~jseyJvw?QtLSO|@ z3oK#$0$>_w3lJvq$0?PIJls5>4wwnVKW7J~0G|OGfKLIVf!l$4;4MJt=H)72189H~ z9{^4L3gsxN9}!Z&A*B96*n=O!HinH1?F=mp%?$MnIfgwb54*}XhK&sE3@r@J4D}2F zd_K8+hoW8~mtT@!misBXk2&4*Zr^_$dmCN&@6dmdWL_%yM~Dv`iirC6|Zk`0Z0&!mmBBIuM2h?!a$DU?YC_1h(L}HSi#QI|Gm6_e5Yf ze$ND+!*5^UCH&flRS%QP>xMb-+c2yVzb(V|qd6zkS0l4I|fb(?+84(JpDW3~!N+Z>|t-%1?`+h|(wDt*Y+tKrg?qYPeTA;fb{m&rKD9^c2B-w}bJxm@pT%gY}dTEG2 z_c8jZV1d5O=mVr5`gG7i+owz)7bwtUk&fyggMLoipP7CYlaFHdYZ<+m*{@@CBGn&x z`*5Yu{swLq#5 z-5=04hS7FLzlU}qxr5QKGJC}PeOe2JV{*C=qU|K?r1U2kozBV= z@6Ru={?y0h-!M5{9MN``>8JZS+8$^6>3)y4JuE-n7t*$$f=JUu=W=F`vhuV$P-xlIXr1~KJZbok;dqKa< zXj*fH=vGGeP=5mbDWk8j{AU?GgW2R3d=u*(Icq- z@J%1um9}`Y2m4weZQG&OmA*pyAxmNMGV-Sj{VmxKoo19nn~CZReFm03kJ)Qt<$pu= zf#+c9@1ycu==;e&(Dh9IH1v>v7P0&}&tm@kh{^9^_TI+i z8=1W;7)|S~Qu*r{UB>LapV8Y{|9pti`^a9D`4^_Yi`n-ilYd3_;Qt%3d{&Z$NpvJzc3nqTNF#VUAetI58`TdwY1T@(rjyLoik9gwwWE0ARO6T?>WUlll5_t`Tu5#QP zyU}PqH~LeFzFQ^vizM`mlJa&+=v@;1Z%F9168Z-TeXB&@Nr}7%{&B4z?Yq)PB>5vG z^!Jkd*^>OnBy!GUIx;7n65z2;f=7z}Iay2{rjPoVoy z^K~V47pIzDWhZc%qIH!yJ?4{LWqy~5Y|2S^y!}|&N$vbVPV1nzm##N;Xjpu zV};k`tMiKr*VshTwmQ$2pKr^LTV0&L4ll(eW1QC+jouqn_*#YYoQMY2Aak^trR*ah ziF$mz;`Tw}RknoNY&+E2bDB4p{B#9xb1FrdWTuA5rX#uk>wJ+b%zNOc(}*l*LN_j- z&~wT(H~3cu?Awtcq;&rtVF($#emy&cd;^T#%ZHHN_kcZ=+%8A@P?Ez|*N<<9U>NY#!stP^@zqJcg3ot%naKgJ9I0jG?5(<&gO8(GaSO)Hqyye+fJ^6_RTiw+||Z zrorWkX~s}%DgEAIs2Sb9{vDcm{a23sN2){1BwR?+XLMIN0*cMe6_u|pnJ$hEC0I0Zh2zBr>Zg`}`}r@&WMBtQjId{)q>B-tr(mMPBJ6qPvz z!X(K=UpW$-0&i!NIHObSs}k|f6kZiTiaJgc&GKkOpOR#!L{gO`UxGwmf&^azBLuK6 z-YNH5g?_Qb5+Qf8&$>A!&U|bpt1m&4r+_t|Q@}TaFb5vf#Koe$+HHiGYUfPlG(%9@ zFYuaO$ekn>;n8wVi9~I(FF}&0K=4PRQ{dH*1gBV1k`V%`pi}NOd%swcUC5p2vw}{E zGoLsSSOC%Draq7fZ4Wxs5(6=#)tECHoR2`4S}h5+pbUUQIVbOcivd zl33C&@Sa`B%@w6*&oSo4`>JS)Psuc=L{f0Fr+~GwFF~SH;MLRwr&v;w5dw07Q|>i; zzgUu8$ZcRQ01Ed$($1XXQ!>pdk!Vi#B}nomNc1I0a0KAqjGy{{*n1POrjG7$_-26w2q7S7fPj}pMMRB=%Bl%L1VtMat!qhG6f8ny6PLDu z071nzSgL5%23M@wqNPf!ZNpNFODzJmxHc%Z*s7(j&}#jkxl0mh-}?T3-}61s_dU=5 zwwSqd&YU^t%$YN1=FZ$ZJ{UJ&VsjEF)8xPKx$N;lK{!4kcw8`z{Dlvf`Y|~!4t+OiN%4VG7$$D_T3+M|AJ*@Vrdlp z1IwV80M_v_9RA>Pg}+jGR`H)MzfKY&MrGi_se5#b{$SajxDpa_Qu1@C8~7p5HJR_} zln~bB(S_*25G@H7(a*Ezp^YyV7h=)!0(wi(Ir5C9WG;Dzz>HDpLZ<2G!_6X+znWfRpN|=l zN&!7|RLzv%pC0-K7P?Z&AI#62q^J0k{Dv@R*apb}oDp9$syk-Jf0!MUO6Pr0DekJ!E%q(M?6%Q1s~2{(o!VI*Q(3RHJqS zJ`&hzm#;u9lDQ_#!Jmeb+FkAU1+}-y1Ivw`s)S$M#4Sxi+|$J^ge_B^l&eN z45lD|Fu5Pq9?wi?1^$U%8k}tl37-q>Rm8SSJ9ro!@uf~T&r1fX?r|bnDR8dv*Yv07QoTSX;6chcp zxVh8K6&ome>JwyM5749A+KgpRfj^+uPRYE4gcs>aekAi@&meKBetH=_qJ7hrE0?CE z!TYEC%e$GPN6UK(==Hn$$(sZ(%2Ougz!E1MOiBj+qAcd3cxRgf(RM8aWc-DxOgHCi@hNREvgB?I=21>Kgwp*;?0So(ZtQA&^ z@-fJ#;RyDOY#U6$Lc zST?TL$l?;^6mU<|16}DNiEY7H1x?q;8t~z>H8PMZ^1$O)r3XOHasw;j;`2uA!oyb> zAS=kL!OD?5G!KIrSf3@Ih{k`C3+2;wq4G#y5B@=4&(=f&4^Thom8hS^yzs|T)`8vx zHt=NyFl*q21A1owFRTwA13yLUbq6M=OQLj0 zmou^ket3g5=mi}-B6uS65T2zC++ewU$imdE5Zbg_>J7<3)1>RO)E#MG&ZfE$F4AW= z2P5nP>Ud_f!=91(Sb4VtnGbu7%ex0)V4FgMN2H_PL2&Ow+G-!%Ll~ipVM+R`nOLnQ zPe{-Gc>@2WD*_$teqA$*Y~O(dT?v%uawUD8V4F8st{-BINf)7SI@9Hmp8gYUWY0HI z8H@h$2h>fMG1G7(aEvVamn>r(Bq40lNVS6zbWHL__8;0tX&pRUGX-oa8f)lhg?j=`Vwu|Use{za?$LaP#_o#hu1HT_I z2mJbEq4j~j5m?_-AFOXV8*R=1yZ?8w&;#A>GSFpbKO24m{t2cJM1Ok0pV$$fg)@yS zsQwr21M~#;LG$>8qJipt!m|1BW%_f5{$9bv%HLvQzpI(=ZbLE{2P1#--|6479O<{o za+bP4JU_Vt{q0BW0L>4ri$8~9ebC;0NiXQ+e_pqd@PTAG)b5r#wB*GoGq->5Xwq-? zx6S8o@eVwH%MSi*;m^i2{@;)>%XcTSE_AU(fyOCVU*{xptVD7@=3=$ovn745pm&(Y z=+>~XayW~jdjh%@K|e-3p*BG{$fpcuxc;huE$qfAq@8uYBIz5jYAyJg0YqQ9LD?+b zUyvQb`OI1~{KYW|^>?D}sJL|or9Hs zz#90grtf+Di+X{wlSrA6UdH!6|MZ{Q1LdJU_B1o<0OH{$OJwq|2u6%+nONVAA0r9< z6ZhGq-$Uu%0bt)rf&<+v$-Mv6-bfx3y){^0AISD#siT?ZTUg)Y!IHkm@BW?64Hmon zW)iD>52hx@Ld&+G^+C&l#w0p!>mCd8J3>1XQ)c8fUy^$Il>G8`v z&XMEC;~%0A^d(I`V5D?J`!h2>HBM4vFg-q2YZmmvc0=88&@=j*#Nhtw#lYfWoGX8} zW-^R@Q7{I|U@VM;F;RNpY38YF6rUkG!qix~mq5~YgY-Yn7^ETJ`Qa;H!gvX>ql}D^ zX+KHphSoQokM#6xjTGu?s7B?VYd9C4W(uJ`SE$zw>URg22xxi$O-^|q#C>FYf&PGJ za_pt#17C}Hqw7L;{BZ1xdAA|&_JqH;CFGm@z9kJbo<9OVV3~);pFbgnLV0v7@G|?N z<)wKu!Z`DH8zJSObwt}ZZJ&>PNMA$bgKwepyJvF=dqq4vgxDYDBVTgEhgp8}CZoKI zH8>FU*GG0Q%3%cGO4BeVVBmYOK3I~{sZlHkzi5oUL6jxqEfeoPzB=sYRKE<}w3`GANEFeTk_acc=$q88s95xCyc(F+mnjLKe&RK)zkC zaUte9v>!nHApi9@J|HgEvj&=R!9UQvqc-Xv%cJ%^{@Zx7KL8&=>#Q4m11kGZIzsX5 z=bAz0dNgD?R0rLkX*rQS(KO#;VZU=3?{BMS3C(4-&^BSn)-Ccjkaho)u92^=W4W5k zzk~HvP;L58_0#r-Y=(|IVEzeljWdijFUIYtPt|HHXupf~ZT}bAD7G|?kPv+Z$^9aI z(ckE!{`M)$jo=;G^RC^@3&_VtG1Rjka9&f7}AR^)*7wLeQYcNN7Xio}RCartT+D zzi38Kr{Nn=flk>qZ&pQBq6RkZ!xCZ`j%~uDWL41L1 zifnIku8e%WAMlDZkniCFt@>(IhO|BPXIN@#FY@oEdyKoGlbmOpaUc)PJE*$gXNCm+ zX@Ea0H77@v9Xfh6x!+@?Dl0QDEjukU0~W+bk#GA}s?xGY!6MOUYL6E-W%_LMYrn}2 zCeqxT)YxQrd*O>fi(M{%gOMAA{+9hu+j#zlWU*7{#R^~8Bl9ANWYpqq%NWQ+i8v}P zEqNp@9(v<>T9PsclrVZ(c4h|P!E0wTaz+yCpYm5`$Nz_|H`F5?`b!e8rsbqg&WHC8 zfhwteW1(oREja|>(Ulp=S($0c32Dg~>=et*N`ns~ zLjegS0XT_DrvGUpACeOUeStpg6+`;O z(9$*r+~&f+V*@3V#1iirvr*%E2cy)SS#h&cvQ_XTCdGTqc$7n^%Nri%|MND<|6$u< z@t_l&Xh0lT3IO5K)A5YV96U8G2hT}Of!r)$9E*KrcES(|M%xy=M?Wz)4TOS?vnlCV zW_AK49Yz>eE|f~hAind5A&n$Z<;dn)lBHa_91Ial&s@3`lz`e2Ob9-dM(c=Z%hm8+ zevF_*8V5}fu>ULB<;pBjE_%`OKUwf%Q`4$Uc&G`%sPnZ`}`}KYZ#-;4jmEKXdd)UWOCY5C z!(S%f%lL!%;)Sa}{g?6gGW&R${M7L}6A%6Cryl$NNBGP5e;I%OZ|l#=#5tMhFCWCJ zFI@fM{r$%a$p3>Izn9@s&jDYC_P>RvWu)amc(Fv8o1Q}rA+pSjC231@vxtxk#u?&U zRhhXtvFK|65CcSKX2D=jd~hZdfu-r`nJcqpDe39C>B=lA5r7~7F+QO&?FE8F5vr!B zlB*sVOz`i+Exa!>M~Uc7o&CxT@>pGHCc$8KC=nPE zl_1*F;g!RgKo%5$ZX+|3S3w=vi6XF@SEVN?wY zq54-qhLoUXh{IEoXXhr8N`k70eKUlFSb9pv(wtO`;0Y0WVb2p0d=XUwGZ{pNj(`puTuz z_Ui~^7HJF?F@FpM;qXN|WGC4mC8a-v3(8%t1j&eS4t$xqM$btO(iFSE)@QaNhi)AI~Nc(v05 zIO*~dU9J*c#yqckd0Z{xC`-?v0D32Kkb~r>ZvItFP#c=c?+G1_csR$M#21=+w# zkOlFt$%B@a^b?^QL|}Ltp;L5O@eor#<-XHU<1|s@h$fEQ639t4A3)_lCs9IW=(iSV{i*AtV`zJ+!)rb z3De0!bTW6HEVM%w3hCPV@Fq=oi_E=}6<#Y1D`G|HSqgrqf&W0x$E5t*Vuwzge@D(= zE^+A8@$a-)-xTog02Hf~1=lo&!vn7xS;)D@@LEQAvn-@c7J3e77K9jNKq>_L36RAO zw=luI9{zF#|Gt2K7f4|azv=k*Bo4Q5hvjnq9UcEJ)}je-mxW-Ou#>=vCcH=%Rv~jY zG=}Zbgtf>*nq}@4tgt<@u-byKlbWzv20()=S(3WOuv%$oohIbmKl9(o|E^MV)!?)0|?U7VtrS@f2iiGLyA~XJOnF3 zoP!iatZ;)Yw5~DaZ^|6w@KC_NS%bvC-@|_>=iih#{017p`HvL*pXB`eE!I%iAE0(m zj2%&=3EwUYfp#flg}1ZB{5~=NP7nVcY7`K};b%GjVT(1C>XbMfl%JPy2e)TUBx+oBfZr#d~lq-eK7dLp>-~qk(vfASe3<~6khI?GC7yXO-V&ztA^I$Xt{s}=WI46ek z|Lgt!m)=hzX4ItP+mO)>R;RH#*#_5id?#^>rLh?HYGFFQixI4`FN(*O))Z87jcC0$ z7UDp(?l_=GQYqjKC{kAnoCmOPR^s?+Hp6QuufRJ_I54tOjF*X}k|LYPn{nK2HuYnr zsd}4+n{k3|sf8^u1DH!2TA~JE>u`97A;hkM-Z8d#axwc|-#ta}&&{GLowHNirZT%C z-|2!qXG9DkJgKl1Pf>TB!@MO}szJo?TQqFC&@4cU8!?#I)U<|jZ^1a-b=ICOZx^zZPTd@Ux&0h&ur*= z9%B{tyvUZtf#(Z4Oq@aTG{qnP1JM4mftSTK;jY7CXGht*``peBkA17_=>YV6UuBfo z3>eF=#@(L8n1DctFA6WJmWqxlu+Er`j6F$gMH!~|1noT&`e1&|uv126ThA&Lc*pPI zg|8J>`4ss&TI)9L5lZ6jE3uH+QU-g7kF~BMT_}lfO~&TOmNSZm?6=l!E_0PEYE8mc zo!-J=4;^H!t4tP3lJ6_9t*3R2qM_9~J{ULNm0uJp*=1o0 zLw@n{_7w$7_WYvKw=)9g6tOtmIga@vd`@n#%7`8DXT2lmG=C3jsX1ft8R)oaj;&`E zziHd#+Nt$7F@aZ9^F@HwP1SA4`CiTW-Jij{KW>V^S@TT+gA3ndP^1`F7%}@1>~~lk zOnwB6?rj(5{A$(_zxg(zmZMIXen~OHa9TY+8k5%s#@OYm_qh~Ksb;lSFL2F26fF6{ zn(624<=0p+i&J{V*#MROcm}&?VAxJz%ekH$ewj}eK|vh&DmRV8SNr7n9u|c2MJma! zXYjiQ#zM zyXt!o#=v0nV>(xn*85gXaN+&Y%~4T?`|eS)s8aQM=oup26y5=)SH7r6S>)-|1X}Uk zoOq*vHL*r#L3KuU|g!c4DMRUp8N*9>1AU zU%+ZV0`fL_M-H}09s^usY^lU)ekm|0!Z)R;pb@tQu*+E-f#6Ic4hFV6n!RV!u?y>G z^*{p~7+Lez18T5JBL0SpZJJ-Y6$Hb#1$`of^7D=`8P@_(+v#SWj}MlFy=%lC#evKC z#0j7(i4=;sEwJ9j;ma>Xo(osO3(l>u0o4%i=GCx5Q#C3zCm+pqH90WNt7A=2!~Yt4 zB}54={M9}D>PAT=?P;nnidw=o70_xU`~tXA;cVVZq!#jc6$W2wF2Ap9=or^{GY@Q4{?XvM*hz= ziGLI);Kg!%v0T9t_ZBDQb5_W;D|)S99s)tX%W}Y%*j7pGstndZ8&afe+DDx{?1|k6jmvt`Hik1#=j2{zaazOGWKU(VH-3f=Nrg2bw$m z3-c}Yqn|Q|7coZ`G2Ndwj6SIeu5Ju|+5iD`7{tw$jo~$nusy7Z3KT(xJ!OWUgdmc* zJ;!o~IQ1zLqO@RLh3q5R(#Flh9kdQozX-Y7=0V!iD)BO!he0m7MV~ zGYQtNR=|vfgXU(S5SX#x+60&j>9jd&txKDkD>ZP~5LT)QEo&UTM}q>;LlU5DwZPA6 zk=_bbM`^VfX4tF=^n3k1^+ z-4cgBP`<(Xrl}Eo>|iDUVKGb+V9qe28mgYfwOYWn8jo2Dh-R3uQt+SJlz&ISe;{@M zQV%5mMVq?iDL89VITK*n1wu3&P3Khd)sj*j9+# zv%D<{u}`*p=Dl+^_Qu)D&0D_iT-En=+=hg88tu-Q|LD248Pkqcxl}bK#?GuG+o{Cu!sP*yKV(^tz+0T@GSZ$s#8B zdh~o(!HM!I8Ml456PsKvYpZ9R&Z1HOJF_j!`!3Xg_5Us%eNAoSOm1Kb(#Rg3{D6?gHCyXwDA7g{GwEo2hJ z6rA|kSG{!8A|dueGKJ~uj@EYW*rX>#?_lg0xRQHo6M7vz&@k{*PX@d$*>A3@?`x03 z&rDTK)$mYNpS!J9aZ_~pVfwkBJXEMGIJS3V$10 zVksBw%E9`oSG8G2Je(IWSD0Z&(2W3uLly|Rh(e+nK@bB7H710vI9-h+hUs5#;ArKX zb;nuDzBObOd+j%?ZR1jdN8|~UVxF@FNHK5vgJM>JV(>}!0rP~bEh;z+71Wt32*dO3 z`SXQu`r9zcW%=tP;(fU*D*VFm&G!5SLW2n~V-x_g5TMrnP>O!9xoO^XS7`;KZIq;1 z?x=Gn)TAr%gJy&tK)_81x^hNSG^q0sZ?GtGxbJm->U%7^K_y4cmg0P#v6B11Yzx&N zXjl%`@0skn$lk@KK?HW~x1V*^#d?RiZhy?150Ym2+r35;jtN^`YTOB zOL6C+O~4Q|Io84WeYL8mK|Po59IC5T-cmj49Gz(a2{cI5m)+ zxr1@w4MksrZmtWysa>WFMG{g^2T&1siRA(dmWv}L$64#=rszOy?)P=yzW1* zTl{d26C95~nhev+UFu}qtwmz;K}VkC3xCls;@&y57xUc$y{-rKx<3DTcf?OEN^XIY zLW`2Gj}YAxm(Hb2R_uV1_fg6HBSaVVCP&t?3e?hq)Uxqom7!6*fNn(j8vy7)fM*}8 zDjU_W(ts8n0E`H5w?@_6C^46)06;eaTsxv_X~0dYZ`lHXp50NMK~|+3LCl|rPYhy*iH{<9&)p)t+e*pY8lg|RE?#s=qI*m%oMv%rjS zqrNJv$b_K&Oz48FA?Fmm;*!<1>EMBPU0OhX>aQUQ0q+4p01ZaD28{~ zT$kTlP*)aRm)b*T@319=x7v(Qy%7*{XavkZJH7+z=y{)2B*Qi|U12d`rk(|6pV7U#n_sY$b}EXTZ;FwXT?mr|vp)eV6RdX_6voq=YwrFA zYF`f+6+@K0>WAggp&?~#@Ea?H_W?(KbQ5I8U_aSN%)82bMbU%OMX@p zBZwJ3Gf%Q>67D;u$6-cs6-UV~`?`_^#O6 zq*!P!d1_NPztf^*!O()zCTtqB-TpOrxSRLSd(8`xFvflqDvh`q~}HQfYQ4S;$C z*mJZgh0n5Zwzdm*g|UxYkUY+gbZSgDmAnZhI|-5}*ojV!%T0j$0AOrJB)?)8I8tLaSBWWH>%8NqES$Y+7TZjBmI-K1L>i_t^j zg7+nR3QTdVB6r>7LVOy;u?sS9G-#^!n!}ZK!52ItubIM?SKci}AGK-NmW=w#9rdgo zYJKOHO*lghMh}DWt+k8MMF zZ*DNx)qiTibMlJM8Vs{z^|Z8EN9$6RLW=-LHGk0!anl?pKYHkE3mBCrj2vMK40V|U z2Ziufn!9cF#0}F#)}PUAsLTAvS2Sb}xyO%*->|{AG`%+F(?z<1d6 zLQpi$VM6b9x%D+x0;Eng%D`m4$450`fP*dyr#^3mbp`{I5qa>BL2&y^yV-g>41F(; zyh>u;c&(#wF=l{(fxN^~+xooQfFIg zBMm|A)jHZO-3T}YKPaD9KDX7cxE)h72zDVyQObVb`k0%9pi0QfD{pBNYQD#qY5)_u zSCrQ7D(Q!Frd_^(#YGHB01bn>-gk3fKx%5t&tK#8S1e?gBx)o|_^^pOK!9xo>Vck> zey)yjx-y%gQ%j899`@m6x09F2s`yb*JUp+;t2xtGnK_ zl1j$RcB7aII!t9%H~804$(qO!26JvRm8@$R(Lp5*kpbOQvbiCkhe2}D5;?M$N(S)! zsM?WU$s}h~SK)9f>Dk5brx+MI!kq9+1SS=(G zV0G{il{@d%Fp914rba5M4cRUWr)mv{2lW)f$o9wxDi_$ANQvNos9_?75YaB1M2X

Tsjkqd{A(P)Ul(9($IvOLkQ_0?j(R-*QG*c~=l+THyC{65YB$De!9*JaJnWJUO zJd6VVc%mc8JpSr&2%(a=qf=Oc&L(oG%;P5&Kf;_;QV8B-oRX;AJ1zXBR1)^eq*2Lv z#|Dx{2Ys?-AZe0Pry;*nNu|RR!63?(`8UN>61u0HPNuA+D8V}LDyr6@E1cF)xxm01 zRIcw#r?;r&4KcrpO11{MkqjvLKg->yK4E)MMI|9uM<2q(v^M%q)v1WJE z3Va`-T1-ccB#Xo76($SBVr$llgBEDVN~+V9=qXG@=%NI zNGcicGJq^o;Ls}Tt2&pojcM4poB={w& zA0lT&CJ7HjCJ7HjCc)Q`We5jD6-Qo$%0*sWy!2Pump&36UA!XsMB?eZ$?x8^9e%|n{@92^>949TebjSw zvDcCl4d?QTx81dkn5u4)4@|q|SUW((ZVy`h3lNY~N1b|g80|4;w`>6;p zFAxEg-y*<{IjBU}!07Ox8cDzU8!0p8e*0PJmutC^`I5n$I21lUNF zh~M@KDv>q`0jdumz}`GmqSlR&;S|~>)(uZ6qyd` zcD10Or5YZoZ8B86zvcEt@rloChYvp6ruzJCQHMWXGe@O3D5;+-)f{GW7g`NCW*fk5$k3l&zcGlhQBvwL zjq5n()3+mod<*W57g$L~4wx3>bR%ecn{%mjvY{yW+l&wDXw;R0!or{c$2p}EUD2mz zCi!EyY2G$*hkrkDH}tC?m*!o1Z^pX|lX6y_oN?m&ZCh@)-Cw)&%@gZx_08K^($d;Hn-v zVm$1VV0z^Z!KYu9a&22{xw4o6hH&44;jX&2q}6}i<)3} zJzX^6%^$Aic+8*23z~nVe5l@$dt}YJn8@wX>9$jjtlH|C{K=0``fAQC`Qegsl`4GH zcRz=IeLXRERosLxZ=KEhGH&O^uOA!bB^wxuh#ZqI2u`}5I7Q`|1Hrq4~^ zW0T5`yc4=BlD&&H)HuZ3W`*0MpHf1{T^se)uMhXU|Jvp&jp;WRjvD#hkGXwyhi1QH z>m0Iw&hYF7JHG=ZmZl_z%)j{C$?y;M|CnJrhAHt@N&F97R>^k`vkL8G4n=+&zhGG$3I0 z24?YxhwgWKZyUozql7wD-%uXy=8{sebFKA)iVv#S=3I!L@A~Pm4+;l98g|LxEm~1q z@UCaTu}jhJ!S!CEX+fAQpdhHZHfsIRyH15;1=Hd>WC32m4$+}O?{E3}!NV(WOmDl; zc>K!ti9g&@Li=5G+~kPOI;xFAcDIJdt_gU%MjI73pjEhr%klDy`DDuED1fZSlE&k4 z+O|f|PZ-Kj(U?m%Y5oeSwZgl0iBTPm58QF}(XqOKulC(e{prdZOTN6e)FWi(e*cu$ z+HxLNjC$q7ccHnU+)Y!9$Dhr4`2L}VQ@q*!kwfo%ASzC6Kk{9&q>|4myQH4vx>4Wl zGy0ofZ-qSDwr}^rS^H)T);EV7p1PH^;>o^~tHh%7Gu~-@`0&cJS>OGbv1`}4-n;v@ zTzfb$!eR7?v7_6{74;S)6YL}d{>2Ul+LZ?o$9`yzavl9 zcwcoQZuHrok##if|M_9=5g{j^z8h zJpO!R{KacYiSrjt`t|ayzVNl99DeLN`ccHBUu&nGXnP2?4&8kB_KJ|$_HWN7t=c-{ zjgQY}cofW>;CJR$W=QI5oA)=~shxOtqNe@9arcJ7#y?3>iQF znqlI*jJL$lB11}UD;@cMSu>!CYQwc(U3+lUZwYJt_O@M%{@T1DImqb~+ZJBAhBqnj zP$1q=6l^b09t>_xa4ZLp=D#6H2)nMD^|tb8Rzps(;@rOVi>Xv}a$fm9Zd%!(d47q5 zrh4!Cs;W|5npe*C^4@oGW@+@G6J^##w^fFObNkMojQe0SGUvlSV_)Z$N@LpG>@En~ zjzmYrILoTb*UtEAh|z6>4`wG#b>^MP>Rb3GnEk0eLAQ6dHQoaq1c12Nx0_Z2*LN&g!B(U>mQ?O2={Pm$qhAMe)7JYby(et5jy)c6ZpORP zJ3ZU^Zo3JmxoiKGTOkowOEj$+y3b~OeD>_9!m&(AR=i6IVQZS79{pYy{=xgdrnf{) zpQ35V4GoRGSTI#Guyp&xEkEaYRI`%{Iyyt%APi*!_@D1?caC4g@jr4YdDre`V&qDd zUv__V{Oo;k#NCMrs6%<~+mf4kIIs#8`JjTA1$2R7_Z z@R-4GI}7F=LD;qXnHk^RZan_}Yk6%yhqh|0W5Z_7-I@~aICy07#fy~{L$778?uZyQ zY@Li4H}6W?bvNR`SVN=z)iS-849YwQSW4&bmv# z{q7btx^2FG&9-l?Kl?F95IUW6;X+Ew$$;ZqZn0y&Rg3m%4|MkZ0o`ivt^6;-_y2n8 zxAEH-?*sRl+%bL0mRq6YG~{&uZ#{Cto5wrv1V%i|`!z-vo&9+@p@Z7rM`mhof4*^` zWZRpaINK`i&1i47cP;lu45K)p(R(sm$h#1?A&x6co*@ee6u>Z%c)WSE<0ddg*IB0* zXKpxqANs?L&u`z#p8wIpb(>1Nx0G@jn+bd4Ua)PJtgmohurO)Xww&*7E1%SD_vK%> z^?T^uottmLiUp5qc>A-BcLTo&_~36ETD(O#eB9_ZEz$n7&t`wFgHD~>#nlAgcI3M% z_l%s}ic8)VlxNQf{k8VNjPM7(Q-hOpW*$$rVM%T~@ja9eN2WCBUui9Bj20G8+b-_e z7_OZ3)OwMs!G6l36{kG3i?Ys){AN-1`G}?Qb6bYH?8s@G`Rb0`ACy~mY)wg5!UZ3^rksq$lzV`(uVeS2IrzE`b_?kB1%~+4g z@w4SKQ@)=w@AmP*Z$0aKGFZ*94aN(s-16~48~-|7V;|a!7dcK1_9}K+kndIEx~$Gi z>#@4mtJG_Ku=lzl#3zD}z;ph0VaaJMS1oGl6fJRPM3l;47G4$!XCUCLM&%0LPnZL_ zeS0h~5;ow&VHD94u@!-)aVK`zM3k{2&gGZos5mhCz!3zMinCh9LMJ?Mt?M~Qv}wIl z?2sXLxY@(+k@Lq2nmn$wS zt?T*O4)oJ_mc!Wf7nd*znXP z3oC`&#SS*1&heD1-Im|gU6@7RqELVJHR?Ut^)%_((!0#&pj1C zL%_c;=4TK)w5W|-M9x=oey^B+3v+m=kNM^`k4m&t++u)BX1j$vhBQ;D82xU7`t z8sh4!E0>&VZcg=nC)QR9YZF3(6)Wumt?!TXGqS+mp7>z8oZXxWGnczmQ( z3hx%@VsDq>m?E$cYj5T<1w(zf>PpB+3M^FXPV=PV#un~*o@{LRSf2gNb7IM%#yNrCSZpl&9Ix@l^s&4jC!CH^6dtud)zNVE{Gx`gQ;WLJbT_nKE&QeX zde@nbGYvnTY2I_D`*ATNXq$ay9UXTrFS>la`In9}i_Ud4oc}30 zr25R~HF495H-7ukw?j4_I=3;SLcux!z6c$Pw6leccPn8(?68 zy@!H*$hx`UFw$I&*+Kl!3udM*8xPL3}4%G^I0K^bMRjZ^^t7cJH4vyL5p z%e4IACaF6v9lPuRWU#T0$qXZR_#*vst$iuxjm;A1rY{pFf3tE_$FWB1 zD6s&0bdeF5s1V~^>ysCR^(vWsf+uvdFXOBrVBN^Z ziWLh>&H%z(KnMhc{QBc5y@i=)1=f%dupp;Q3ZQ1mO{6TilsJZshu;BgDbW__oNH~v z_*gr~PnLf=SaKyjGg%jg8i4)XW9K(b`qiya^V|hhR(!TNQ6B8YwO%Hj#CY~SBMXk( zjS+7H86Jz7orSD05}K-<#8^k@JqU1j*YoO2rJY5%u)6p!o;LN0lI5-Ds)g+2cio&X z{l3HQ*xee2BabcFo2xDp3VGbZ`ZdAR)r>K~n=Sk;EWvw^@gjScyK+GwA?P3mbf8bZ zx>GM>PV5RaJihprLC%@< zkTnCX_1c8g%)u20_20~`f9G(a??S6>jM@g%N@CQxW8c4t9U*jdFMZ)%jxPL4#1=;K zcPRTdk^L9S7D$lpoKuDfUOXz!KQ)17x?`S1KHM{5zy} z^k3Uq(N-i5(&efJ%RO)(>nUJX^1_LQ@2t~_nXV|X|Sob~n7d3JsK}R`Jc$^tw!z^36 zF8OWzC~_EO;4lt(OuKoEx3zw` zYi-$;z#Qx2DLsK1XM0?)Zf5XM!rJ|KN~y+pC9nlKl6wZAmahY^6W#({&y)S*W`;AM z;kHmvSPT@l7Xm4{7tlPYU$M}7uDEWbYy@=GdY2%m*Us&DN~P6CpjHUfmPrBa7@(Cb z1Zu2NspJD>B@Pd9;c4yw_Nzo6hBH4{kbzNIZz0pUY6F4>Rkrg;uu5Z1HrLpbr1anmG#PLCM*U z_bx}>yLu1m-l1tIdlr%X9x+_)McM0#>}4n$-;T0l_M>d*|9dd#|L3Bva@9V2!~@EG zu(x#$aZPVy!I8FO9mALayy|JPwGBbG84l*|=VsMt|AwldK0qU2`&dVTgU}CJl0)mK4|<6q^f#g^sLU;A~npM0{>Eye)K|!7XGgD4Hd? zLyQ5ayS-Ca?*&m7R-oR-y-#+UIhkH_GHz;_Kt=pz=Ra`@J*^JIK1`{&w_MSzN!_gXeoT+n>bN^<+XYH$pl^7Ox$I-`at1WepJO|e7|lbN z*EBR}fg`A%Jkk}sFz_H5x>oOTlo|n3rGQX?JVj;fVD2fiz&AEi0?X|d`^S6cUw5v(N=5JDu?^3g2ugiuS-0w;+@Fb zMXWWE&3iFlh(u7-FxbX=ft+?7t;4qt(USp*I!;kbF`Y}>{PYre=O*#VEX{!xxl!oHKX~zsb}1YsvjT8 zU>+UKzh5)sNzk+!UOfIfKF0Rb4o2WK1KcDDeqU14a%7`it%jkH14V&GowiM2%8>eUvv{;vu zknVLA-vfOKqCa!)sQ?)p+JGz-u;Oau0=krLj+m`EdRYF_NB&ATt%knwaC5k%R1EDdur_Q zsm>vD*9QRz8;wATg?pza0q6z-c@14)yAwb-0b0_q_r|*OH!!cUVN~3&o{=BPjkAb( zkGxv%I({V-=Q2CowcD!?T!h$#*@COTSkYnge%3|^ZR#NEao6ssJFpF+o*um zJV1As?uE<7bS)v`GH^>>HVYI5H5~4jwt*k;mK z%k4V;pk0e%gDGTEoHZw>xtI{94KyWx9k|4%+C-y4YfAp2onN@jRLwGTjme3d4Q^DY zR3H9?_D<@vnz!ipw*!;rYjQA@(|idg!USQF`Cf`O$1Svm=9=T z4#ZvCWq{U#qMbVkEgzwUqe?xYQndr1b!ef|9u1)Vfnq1`DiCTDR4R)_XucpqjS~p2 zSclM}0Ik6r&{E0)trn=s7No*#Xe6Mu3w`|F0fEw zNQHUPtl-&+chzVfGDzgp*e~MNF^aCG_CBkuHjbx!UGCgE9w$xlUIEa34 ztrCYL>qOj3&drBI-9>u#8GZhhZU||AfRMI^am+TEmG07F-QizjUo%JVt~h9zV3^BL z0YWDroB{+LAT&cn%deSZ6e$j3p#blYYo{KHT5g)@x`~+pIX|~P7duQxxQ55psp`A- zZ7+nl?-C*IJ`}Vz5V33#5zFpI+1vwEEV~AUtLLKb*buSog<(W28}$Jh%f3YdpCX{@ zb(P{BdvhSmhw%V~uQhJ|7U640l>#CYQ1Dz$vBe~HqO&|tEtrT#%@`;n@UIXQNykuO zr&n}+DTA1fmhcv<6jP|7_l%!#431{J7xi9D4Xdd4HXRnvx>RHl?H!3`^tGXdBD7$! zB+y!>GDp+-yQw&!J@RcH^8hjO19Pj{_Qw>zi5euu@u}eTV+ydx=asy`;EjXSihsG9%pm@qKDbunc_q>ik#L~P5DS+eb@*y z?e!Au#Loun2|;#1r^S|Cvxc9cmeoq$P^opX#CigXWQXPB?7yvHrR|i zJ6Rr2bzC%QA1N^03+Z48HwxZsU_|<((42_scBl&lWtJ1|_X@|R-vfyRsJgYP=o?6) z6NnQdCpC!QZp+~op!Fak1j#A1jl``j=E)0e&)0kg+)4!4=?1{k$w8!*4Ytw=*2%_b zdfDSM2nED28D=E3Zwk%%S+%usHvgL%#tLgDlEKx~A1cvJ&hZ;m*usRVb zvO;gW`ngjqDon8bh^i2f4UwL|w*c>lSU^V;&^^=P!e|lRG@Bkrx33?`tslI|Y*Xil z2RHu22lYs?H9xEEs+t^tcie$pvy%TgKJ}TZUgH6ydpr#M*&SB1oc6-#uIDg2!nCjX z?VahJ8*B<7n!Qq4<18ZVrrE0EZ=o!+5KKubnj2dIHY6F$1uJVVcrSY0`CpLnLLAQ; ztK_J-7G0y)nKyygi&?kX_e$6+!#ki#0V;N}V6!3(Y%U5>tnyekeDkRM8pN#~;`W|u z+R-3rC|@K9=1>}ZU5I%||;tOySx z{U4eW*~GM1_94Xq^_zDn?lqpn*TF0VO=4J~Uh8%{6k0gZIIH6wXn_bv>_;W;$Uy9; zBlZh?J8ZW24dn~&AEbltb9;tFde@ofk6rPq%oV8b6Dz5!{e^_KG@j+_>d8qHD|FpD znTthz#jlv^Q|H|P24nodS%e)}XAr^bZtkQ}6M)D=FqJq5;gZqrgIycuq}t6^*iD*e zr<2=-#%u_Z*sTfPAQszw81S|^7Av0bK~GPXd`(Bsl`iAJU!mw(IrkD3v=z@Ure~VP z^FK8wFPM{k=Hym7R4$%>#GI@*Cp*o_0(y2cLZmW3~-tnBj{#6vuR=}i1 zGTD&GZH*j#<^~;t$q%AQ5sC{V4?i>~W9Zl|^6(6Ea;`bK2qnQmw(Q#Xb`UcW%Yt!i zVTmsc_Hi)o;V|w+LGV!t;e`U$p%`N!d_ghXc^DWM1A;*Um`aG@tjC}j&K1^}I(ZOv z>Cu|D0xd<=Ng>EEqDA2>gcb^DjUIsJGcJ=H**DnY^7P!uOsAZk-lr9)7q13+;7Iza1)f=aU*K;%#e&PsMdIHh?7 zg;T?Tns^{k^VZ)IW=MDsRP(WB(VNN#Dc1pHVet|q54a=Sl> z&^4q@y*oH^D~-914Ks>hm&l1(QIw_lVl5HLwS;J3^dXv zBdP~oN*u%N;rDMm)g(^g@nEKJ9IqM{?9M~HK^RBSfFI&ofn)HNJ~$u37kC#vVSF#@ z7_7ch@E4=Uqj#|2uYzLcP2YS!?3KcGO!bgzzn=MpI_Bx&!r}PN!cEMc;laaI@DWyY zrNFxGL3lvt#Hvty0ryC5d-yPfHT*_V_j33}7y5MpgcyKdg7g6Rb%x(z@H-uT6D&R$ zf$-3k127->oih-_eBl?pp9;ef+ zYBS^`IGx`}+V{Oe=0J!C9{^N$8ABWrPeJfYq7Qby+8MyJ9Fo9XUyl>UeEJ={hs@R zdEd|He9q^5&gXp2x##{n_jd4a0c}Nq-Ynz42tHH^4}(96^U3}{fKT)9z2K9*lAV77 zei6 zGvZ&gCqxi#1)us1@j#0F5Y*iTKD871LW=VcyhQdi`1CGWI{qmi=^^>&z()uQbMY^= zFUcPUAAe#WgvrcK6x7G{RDvhh^D);`tI%@+e9GU9fATApO9sbIW%fJ;o?K5N_+-zs z_?O$01wPsH68`1(Ea!UO2VbtInCs~UU#@2z_~g&C_&4HTvgapUPqfBg&y(O&98U(H z`UlCAe|`l%#o27|rT$L!`Va6&g1;DiIu?lX@bf9IXSqVpIq)xoTqXF_W|BSeMyBT> zg`Ug7Cwpk+GPyn1fKT>32fo}MJNR@S{s-`rfTBIH^9k^&J^l{9)Gw%BAAwJL$6&ao z@lvvXS_112iQpqd86Wa%z^AykfFSox1eA0g! ze7XJ4fKPfZfNvzkM*3gp{Hd74$@LF_Px`L`U#_1zDd}GZzFdDi_|)H>;LF?ba`34g z*Ml!_$7{I!Hii6kT>fE&{O#bAJssf7?O6vt+4C~^a(i02{QC;|ygh|1ZFo>u=-oZz|+FxqP2O{w?tB(DN<$ML@A%pupJ}#K_JSFj8)(1$?rz z1WdV|H-b-g)`Ks%b2a#6=Y!zO?cB`e_bB9_;PM`Y{O`E@Nrn77T>cA%{O914{RWJ& zNMhp^4EzRsvVT1Ia{I?5G5ISM@{_?Qd9y;^3_jI&0r>Lz=7Uf5T>-wlzN@)>y+Zz8 zF8`oH{t58Oe)?dn-2P|4Cwra;UvB?P;FCSCfiJh`UGT}CliCXmVuD=L;u!P(2Be%Z{e6qh3e7XJif=~K4fG^ko z6Yxp@kHMGge-V7JgrDI@uK#85N&gGr%k{qtK3Kx*_>s$h06xjT1-@MVEAYV*PUA-| z{~h=w{|WeV`SFOqVdFzKgxQXlx_53+~m+n0k+b_{_p&0}d^v;cgtgz=-$L*Uc-$!74S^D^o$pMj4ljqp79MxbaX>>mRm z(*HL2a{X6=Px=SIm+Q~x@*~3is<@!GdpXPzPz^8nqhxCtz6G;E>z&CO}wb#|)liYuTFW0{SeA52~ z_;URYE*}};FMki0p8>vH{t57@zB%B_>-$UaDNdGy4>LqNDL`HVpX?|GUy2iu!U^yT zf$P9u1f+VAeBvyo=LqEdrnFdk%cL{r7PB2?l@p zpK$rB!I#Vb3VgErdhq4-JqAAczX*IIknAUWJ_Vora4-0B`-i|M`GPec;RO$pfGCye*Tbcqj&+>=^*x2$byE#Px?o`s;rje9}J^e7XMLa{0Lm z`FFVdQic2%T;8dWAB~d=(%-C*zY=`%&u;ML{z(O&>a`bqxqk|{{2_(>&0PMdLcWU2 z_bTM;x%_}a-p%E|Q^^06%ZEn!+w%gKj|E?D{{b$asE|JaKE-Di`11Ds8~Eg(#o){R zAC8kU@=q1`a{Uv)C;zMiU+$k-;FJDs;LG)22R`Y4N}+!h*Y8p2cXIt*3jHly{sV>l zb}s*sLVgdIKd+GA$K^xD_}hOBe6oKs_;UL{1fT3TgD>|_NHX)!BJkz@F@R70xfy)9 ze`av`3WdCh%hxI7^S~#2wt_FW#|}Q(vlD!|Jua^QWrhB&T>ond{kypQNrn7gF5j<^ zKf>j|QOLi=<+Wq|>-!P-WPc3!a{DiUPxj9SUv7UqE*_G6fkHk5e3CCw$lnb9jo`b$ zUkIdeh8+Ji_!PIl2VdSUzW|@wu z%cXH|Oe#A*n!qQ0WDoJL0-xmb!AB^v@eqbMz$dv|!IzhN5BM~`JHf}FSN^x)CxdPT zGezQ41=HB|lV5>P=~OO_=VtJ)20Z}&Oo+0A06#~9I4~{E5OH}x7@AZlbu#D z<#s;B`O6gi1Dt=Sg8we(Z&L6-<^0DKe0@4Aw^PA4a{lWIekSLCpx`gz{I3-JJHbcM zLil)g%~$eUJC~mazP!G_;rv?_{NvzfK#voAi{v->e!F4uDVb zD3*(zOz>xcJ^}u0i4Q%i!KZfAK^dh>cD8~~dd=Wdd`bLw!AFw|IdVScTGA%n6CzBI zm_Ui&3O>cPv`PH`lV=|JXZdHVk+qZ3&%Xhm+FRNr|Nq0tt|Ke?Ry1O&!~{z6zXJcC zq32S|y;S*smYtX5dMm}fv`K!r)VRG=`~SDe|Fiu0&(d?L{=ZcDAKL%_Q-1iN>-E3Q z&zD-?OSS(}uN=V8cS&P2ptN&XD@(U-svbbTX`J%P#%#J^Pg|5@^vswa@&{#kkg z#d9EjAbSGwJNWfSsp+M77yv(lGjGH7MGfxv;hFWX{tRAGQO<&#>Z;m0dsW?1tlm|% zT3nQCiDQ+c#!*$`n1v<1iq=+D*()8TMJ20ffv>97MZ}$DR^cb#xgdW@zNoImk)NCE zSXW-+$X;7lmS1{SW-hQ-a6Rp05Tl5(Y~ zX7SHfV6UyqDRY$ESzfiQywV}%%v8x~Hu-1eE345uYRq?1X0w`a%nIjRx71NX?y1c! z7Z+Kx*KF|SS96kC;U(tWTzj3J+kxCS&bvORD5oHM>C&RaBEP2KRpe#*_3vzHVt%3e61v6jv+n4h!k#w8>-f64qsIrEpY1gW$|OK)0I zu+&jYYt12|R+X<_TVtoi;}m7d@~f6M%bX_WP%ChjIbFrRS>}u&IV`FC! z_3|Z%Zu6_ktYouVNy*7UN=gya^2yUdn`>54Epx2cgOXEKVl$a}&A;VlB{P4i`Z77A z4*g|bMRm!Ys)jSisb^*GQxulM9H*KiMb$YeL7bDqoa5IFqMaf~#s4X(YSl;y5=|-0 zJH8?ouC24LtZ*QZmpIm}g?EA%$ihzPg&=-Q$rKwf)uhsZsb-dztd_=np(rVpRan*E zsjA_S8YCQ2S#5mIxPIx4i!fZ2+bha9UbG|6N>%M=sX_W#nn|p1n%Y>I#sWi8;WXw3 z)e5JnwtiZW)=x_>Dq6L+s-&oBR#8!U=GFfaWW2<3lHw8Kmh!r?`Ss= zGlF#X4A$8#YMtGpIviSp42PB!(E%2f``1n)s+vuZyz2c7Tn37@Z^?-@sCJ||QJlGz-j!OSYQ#Q;@O58~utL7eO##EX`)6QbbJn#{%@bBfvkWLBRtnuE<5&BG>*bV~Q5>MBQY zL)52^=3sM2GoL&v11u$&mr|IQhUE!zs5GatX_7frZJuOK<%3nKYU`)+!75dCuu5ge zbaSfOLEW6n##M8w>cE<&KCq?*8(7o0t!b*Zs!!m|!DevgG+u)=)f%Mn8l64kypUkQgD04cuHC@$K^*NL|*d)rF!E2DAS_3{~GOJFR%o#i~GE^gj z&ySRG%I84pqXwS}4a*ZOwlO!7rr_UeBrLSo;6hX#7PMEJh~LHrLW`<9_}ofqo+Ze9 z*o?_mHLbMosC3qCC@QhzBtRTTpd{OOL}Dx2`vw@o?16Q5+`3%7D!VKyTG0w))U# zQ5sO)Sb^v~*cEE^!r6-ix$_ zCM`=Oz>eY@K@q-t$>@_9iWIw5#wKcd}Uq_Q2T*Sj4j<(66H>8V9UCDqOiMP-f(Gzp)(7Kt-j8Vd0V zk0N}sqkJ{K2!a`HT}`z@RMtRZri=KwwyxT_z)@FHhRZ46vrR5?2=H?YyF$LOy3|qO z$G;JEg9oZsFWpdE=cweD&;3NWM+>S;?1-_NlGGY|RcUplSUuiZ3ca9Wp#D+>Iz4ty<~QIVHu{=vwin?W-lnOajZl~on27Aa`w{dwKXM<+5Wy{ z7s~k2Wme_)7#-Mg*Kc@WEH*w!`(pR^la*5H?B!JfhKS(BOCv;ZsqZ~N{2(KQ|A9h2 zL=^dr5&m+)2MOjll~JNdeV9-iC)5WD^^ro}P~uP#+~IyBMQ~BxHWwKv{Cy)EDf|=E zhYEigzpsE5&{70$FC|eQIxzh==4_nnB_sX|4Jv$+#l_GXZaG ziW+cQSw>Ges6?nZ!&f`$RoLLD5G~-LUF57TucA{`|F5ITswAFW1-NNGtm=OEn*9sL zm|t6aiIvA)c3y;9#c-cp)n&NT9yFIFKrX~_Kqt;hHU;(x&nKRmsNC{RMs%y4e;x`g}gir_3?XRqOXBRN&Ik0wj*^^ZB+kPm8EMv?cPe1MusE>>-}WXaKrQd3O9 zN=*si#gw34OyOSiT?j!a^I`(ER|=e^)?O)+w^VDDlCBJpVfX1TR<0DbO1}j4W(vG1 zUQ$Yh`-UH;W~IV!EFF$gOUJOOR@+p`3#zqEm3*PFH8p7D;2N%2l&>|0-M+twk5VOH zD9e>%O4ZslxJL9rn)-nzO^P9f)-=gC>RKfaDRW7_QO^Yrd9Nq_Ft_xj%BmmN(*n3K zEvO6ArOv6SY`WAfRV$kwz_IB;9h(lvip`Y{PpX7$I$X%o)oYj@poZx|YnTzBh8aO? zn1LFKwq&SJKQaOYNk-5h$rv`6i1+?4(m65$3?LbjKUCW&LmEIV>H~;Hs=uP;EmGU6 zYPG-}qF*dW~$`RlSp~;e`1LRZ0y!5ca#Tt-i$Kn8h2M*MG zVW62X9y$ox#KY&p(sKtFvnkMw7|$LAFEP+~krLc@DN?K|eNK~Iu@TjMPE%m!JDT;X zjh?CAQ7|j*Fk(j1pdpc<;BNP{?@OHh}f8L4VC(hN074QZyz%BH!gTG?rV z;yf*QTcvqxl@_2@G;!o*2dEWI5}5=|3)QR(G$F(@3qkAcof6`?g#enp_NNE1KhU%g z&o2Zmn=Rx}kWi02prNO+@)CVr|q0`(Q|tWG`Vy^}j-U!i$jkVq0|dzUl< zU*uY~_0f7GU2{9YFm z_MMa8DBeOH?nru=f^+?SL61`eN(eNPTcqezs-pS4>c~hldjACJnF#5y=T+r>v_hFf zN*FdqN~+Q-SQ(f0bVZj4X1km7L)buK+*;VtHSJ!8S8StML6#CV~8 z4_T;O@x}f9I`zxl?3SJ1BN_ZAUY(t;t4l8k%J6F3p1}=YLG9+RaJ8edyzXj@6vEY| z<+b#N%+;jtYA3EcJ8Ffi>+ChF9d%dRSC$K<_L}wORn8J{Z>$yd+hnB(!XPLe`^?8M zJ~3SQ*QlgB!KCeOt@!O8td8fuoq?4va@X$zDdjr6ND!qs6U zrx6N7d5vJD1>}f-mh^)!mIHo2r$xI!p9Fn5)**dA zL+f7PRPZ~1(}DFsqeiHxV|ZHyko1;vT)}Y}#{!PI9OnY5922kx<;-MgO#-d~oygE? z1Y+6$f>?&uXy6sd7Y>X7h5@Nu3JAg>RDy7jBdz&LG_46s*u$}#V;4sc$Nd~TId*Vt z=hzCQ^0xuW{(9hzu&<7xwG2q<#Xw3gq#KVo#5%mfYnIvVrV@AB>e|~RlxlWt$Tr#Z#R(i zwgE}b4XgxiV`#k_SOL18p|uQ{1-g`>bp??0ECZ6B0^prU&tqt{0q208%g|~9l6(@7 zRAmxh%mH=ZITEl^qF9b;WhVb6^N~E7O^o@-9 zpoJObj%HIK`{5ybF$hR@HwgO3h8&9Wi)yzeD z9Yd=VcopahhSn88(zgsq$NNGc<8Y4$7;)CvHXzc=$z78PeYbQRi4QPQ}D?_Urh~+v8wlTE2 zfRwKuNb(iHbflLtw3Y&?-o*^9D}Yq)a)#DIAeEN~BtIkpM*$Ooq&EggdZU3fABbXT z4Fgg>fv2AxA+B9pK;K+SMg9AMlF|-Z>$&LXa`Sm1_;-s7NyMUB$Kk#bg z+sDwl7l>tj3OX2Cw*kq%CLqbz0cRrJ$B>T!3T1$asUok`L3PR*t1|<6m8Cvsz zWS&Y#GRBODKK+{bY*$K4!vaBStc4M=u00k41^E{4{- zdAgHmq?Z9nZUrz2a?2T73we4TPqzW-_%@fJH4zvI+6W{&V}PV5ifHh|8Ct`DGeCzh zvV0j+0&WXBmG`K2F7dV3jKdw^Gh-vuOp9RMaGeLq8MCvZCGy$r3pfmqA9 zpq-($4HyT%wlciU4HW$XoCY};Lo1!f62A_Z0KSuP5Z?wW2xDjs0peSs1p-6sd5yRR zdchDwD}CIT^bPn0Zv5v0fyH7KrDY=u#cg& z6NqKi3-&U!?gmmj&^ICpR{&=KmjSVsdO;yWYaS4xT#(DqY6FrVEI=wZ6-e_b6GJO> ziFO%zdJK@_Et;V<3P|}ehZEx?jAIBx>j|7LQ~EI=>F)w!s$Fn|q16M#l(OIeL+d^u z$?paVIL~fpXx#xM|Fi;0&o-}0Lw*5{Nrcv!K=OAY5JO>sk)aiBEc!c| zp_RtlllWAW4H&Nx3?|@zfHrcP#@8Ouq=eFG{QM*6ULeslZoUiJ!|6^Sd~9gvv>SLF zw2RYD;M<^!Ib8_s25sZC3HTOhBd4Q)$3P359>lotCg@(ESU&J5Xb-15fp36r=d>Hx z1=_`FC-5-nVonzVJ)muzHUam8HgY-&_-oJtrw7qUFM{p`isb`;3EIQyPT&im+d1t9 zJ`dW(X(zA~bTOw3fxiH4C=S5y+D9~J}Kt^5NH9NK=BWp0wg_zM&K5tQ+`UP{P@ndm|w&3 z0@BH!e*!KC{wI+9`aY1xxA%bL-*e*Qg>#iu%U@N&h$?>4&dH{gZ$o>HErtPWbt2l+zCU66gjF0$YH82D*SB0n3120gHiW zfqB3$fHvUgKx$_J`jUX_KpTOd0jYgI1ycL21%?6t0)(vSk0E4R4;p0(13>%>e*^Xc zZvyrJ&j7oDU zae^j)+kpK*3y|s`1FQu`0Z#$LfW1I~AoT-OC6xR?NcAS9A415A=;7GT(Z#Wtqm84H zBS6fj)fyAE+UOX)_K2oSqtzbJc<|e<*^S>8%{Glj>(aDf-=%57Z-rB2IT{$AZa?C;feg1;@)9jezhg|>uh zwdY5;@axhy>9yLP(399d5b6mH(Y1!Ph3yD~En#QzI}mmzOsnk;>&I_**a`gZ8@Yd^ zM%yuR-$*Tf_m0$S+eYmerPsPgwT^t!@q0ePh2N7Ay%De>>LfID zN1ce$YWt%G@OvQI6AgQ!Tcb7FmS{KjTcWo`L(jOOaj+Tql0p$L+?idt58{XU7hWMeB_{GghPR9Xo*i-m(2-Lv$y{_m1x$4;v?(n4s0} zpKxG8i0-U$$avleEyhm#?lyK9wb~uVcKn`=ABxv%cgJ_c>$R=%ZP@RR8;FAiamV5i zMR5o4yDiR*-=Wy^v3hNP>_9A1V~=6~K&%J9?$}oRHpRAp-#=wwie7tSN)LWJrtF=9 zXqntQS+6}dxqC9&Z}ML3w@u!G{j-yXCc#IOdM6=nC+(Z0(e9qq2~OLj9r)cg$&Fvv zq$d2HjTwqT-D3Lj>xnsn-;S8QF^KAz4(zwb>_#sdn0RI)%9_|a5s^9ZB=%2C?3oy% zb5CrY*am8U!hr6dtU zL!2JX{bA((>EZgF+=n00V2%2kxV?1WkMs#fR^GMb53+AOqrav>9P$<}|2g(aK8(vB z9?R$`PERHKkbgg~-)6E8bPuOrB7Mjo!{y&YT}i)<>pw^KBi+c;Ysg;ENu0g`2L{qN z#P!j)2r1pf)9aB&?SBS-q%8@tVHkmQ-u~f~AM!S%m@NFB`~%rZD2KK%)LXQd4nWva zxPSH=MN%;Hc<^xgAh*}T>24|?`fh_?XnUIK2VTrXMrZN*nr5x zbpM0Wm-F-!K(c>1PuG$@q}TKG6z-2=p6;H+(%X3YXH-Arck=X9YCq)P&(l}&_RdQX z#LddvyG)X&bjbH``O%aPdWh4Nyu29hzn8c_Eu5xr3zGbDPXCem2Xqwj^8U=@y`GoX zL;Vf%^;~`e>4*I;o?glIxAF8BsJ$S+pVNDId$n-+?W7;&E$8L!=l#je(<4w1(%;7E zH@UtcltY_`+hgJJca-#_yckX=lReO1%=On&e&}mAirIzlV3$~bE`JlZzn;^}xj)Ky z{#&^}I(YtSZf_^2qo}`XFb9JiZ8JD6J+H8l_kZd61iH^a^3wANbRUT9b@K9_fE{FS zmr+zFWbpnx#Qk}g;tlfkT%Mi_Ao*@CKSc2gx`)#-e7x-CbP2D24BC;lhj{#2IDLrs zhvl4piN}9Er+cY?z~610zKZmryaA)APPmop+t1S*xqX8?o$fbM{vMv*!SxMs`b%nm zYERUgw#lRq`iG1nDJF4?=4r!al{TIgb zU(5AHaXKHi(D*W*$K!ome-F?97^Q1)yn|laUZL{9i{bf~@_6Xw>G51%e69oXGkCi6 zyhsu0M|nwzW7_@$y5;l}JbtC)#d+94>Hosz)8SY0=YDSQBV-T8;~{SEJg&c<%WvWO zdbs>Hl83%lp8j*{AE1B6=@%(}L3eYS{6O@_oW7dt58>nSDew)U=%4T_Z9m4o0Xoa3 zGy2!0AALxgFZ5CWhEMi$dAbiJr(fp%Q<_iokw4KtjNIR4WIyu1#Pi=p`a%B(r#Dc3 z&_kR)Lh%fG4EhaiPg4JZjEn0_Apf9#(|LWCQhgwQ6_W>(b<`0Xx{quPGLedBM z>p9)d%e$S^=V^RK`YKM-^8!S#<+KGzMxMr%;o=+;v4iXPQMJ_ z5Z%S;QM|pD^Za%ie~|tOPk)lzbB@y;bo@biom~E>Twf?IUeoqRiZ|pR&1oywcLk^K zB7Ml;$MZkT^+lnbXj{ki-N5C4$@P_TdJ^eF{wZAk7H*%Dr_ZDQi}KfVx(Mw`@>g>C zT@;T9he}TT8)ASqy(d#*##`V>6`d%L2_j3A0Aju!)G_B=N8E&m{fg5kxqpsu`j5Q*-{5pKkIx6WzKz_TM>)Np$J3LXeu2l+)13Y#>4QD=?OWOg zc|7%V{Wo)cFY@%w+`bDuoxb5t`495+A9H>0aQYbOL;6WhPbYow$5?(o;NEE)8Enf44S?nMce1pe_($Rw`U6VN2I^Z)0gu0-NMry+}_{w z^rv|JALi+g^LXCL=>Zzgp|6L_Yq-6|+}@XXyg$d~|3du<@~64{qrARJ)0w^W+yk}O z8t(riR3FeAIK7(77jpUQ$R3PAot*xh`jd>NZ=M_Q@8Rk5acq~zjS=wjq|suvg4nfr?>FqC7ziQB4zW5QWQ&c5>J1I z(_x&xhSNq)f6VD9PPcGc;Pk7Uj^Q-jPe+m7jqXFr>097iIsG~8m(yP>*#5 zY$d*%QBrni(JFg+g`yM|O5!?>f^UHwzf!~^ph#^kb}lGey=+(o*=prnP<_QVzv2Qc zE$EdI7bYB5iu6)2f=hfKr=+s9qP)r>kq#`OUs~!YomE*~x)$%^sKzT>k&;~YLwvFX zrg+~S|A9&v{>mX$Ciqv#V3zoPT4K@ndfUn;?p?_Dd%XkZ%g0{SqPN~Ivih$ti?^un zlgt08p*C>wHwbwQ$w$9n(wFp}nPj_9`NiH$^Y5vv*V=1JdC2pnI!T~p*aEV|Rb4I? z77Tx%RWeKMrCcdZ@tU5*CfAGKEfZfll(@1tRwb5KP<(As;);UGh31AQ`YpvK1Ybr` zT zu)yZ9@frtIys1{{%!GB~YwDS_=l`ZGfA7^oDZ^uVmdIDlk>S;)7U;8l$^Nm5rTM%W z6)9o@d!0Tlkc^nXWKsjk1WYiec(bV5>`V6bB)`rw%bXls10}=Z=HOEJP)ne8@FoPb zz(gXfHN~rSA(Kfz6AA*$$>Ib0>wq3bgaQ68Lh7QBFQF7 zSMe&?C^kdV?X8aVQv2`})_j@66QtOn6t$9u=ioz2hBqZpdx#ROQ>T-#xa-?9r+Jya zJ$&^=s+Fq8e97KQb9+*}83WnllThYO_U2VBl#;2Ly;6Znz~`ML>y0a|x-7Y4pm6sMgpO~zcFV&k*(OSNQKx3Ub#hW*fh$x{}Y%*mPeNB7R#uwFv zuLP>QG$7v;AOkBg1=_@hP*faW2U0IbnY5?k1G8m#W;T9_32Heqyg5|eA||WlOAns!BFW~o05u52$A|x< z%8Psc4wA-buT6>&OYvsLCn|@zm*u7eYSuvMSlTmy)4e%VJ&5H})$@T(tH`N|jgj+(nY{DN-qW zpn;ks$j4qm)pGDfSgAHXNks%xsM91=0!RYJ#{9z36ztd=h=c)p7y-QoW!} zU!^LtTP!Qn94l95q^+{pSEgh*>?=z%N;68*FdC$k+U>Kdr5p8s_~vil;ZZ8_RxSPD zHnLERd%=Pc|Jd-@hR}n1&4IS4U$7Jx<)Mw!MAAQhoB~&}>m2oUB)~SdSfNDu(1vF= zXd`{NMJ>2~B?v8KScu@luXihwzJz08ETuk44<4ftHxCTKEokqC+u43wQPJuWe6X^< z#Nn(fsRZn3suMj0pFkhk7ijZ-xrYlV^&P|WAhhYYk^j_!gC}(G4CGTZm6pDHHcE5^c>-Sp2LLay-1(wu=u{VSC6#A z?@oC?siM?J&wJ9A#6TF}`r4q6Vh$UgrtxiDpY(MZ#1DNC$(Qct`ko@Auu0FUFlu<) zaDBDxTQhi0sVFylS+*qYd(U8yv-aaTGg9q=ee}o~Y*e$)yDFekUlI?zLawg^&n1z* z&LiUc5;uCUh4c+V9}h`2`{;u!qP$X{OQBCN4)>Xuk^kT} zd~L0aq0}e!d$|#0pR{osB@+G@7f|)CeX4BV7H%INvl6#3Bj4dLynir#Qcx@H>yX-m zXH0@VvTq3f%k)<*QnL7?RaA$?pY)ve13Yj2G=C+5?4wT((E^l8`=sZ#r1lM)&g1X3 zK<&G-ysiXaXynBf6%`cRywGQZn?IN3b~9cS^eM+YpEUIc>83j4D)kxnGXBjxQ~NJ3 zrcZ2-@=E(^M|st%YGr-baeY#KzlJ`=CJ!aD4_`{P<2#ybtFTaJDeTLY%e%Nfm*n_; z%zs_*A0E}DO-d1o%kawzUmD=!)LEkfV8fs7M2z z7HO#CT_MkYtJ6Gm7WMoZb^JT81KGvu6D{hK>Kz6<|2|!K)@KVXi6FF6zV#YmAMwL9 zuHW=(!|v~cjZ*!5Jf=^oyX3oG`0U%ea$!>rY?}vrv!8{n50TAhZ+sbcYM%WzM|emo zm-K$Cixc(BeM5YIe~=%tq4$tje`cTU+|&`m^9^{_l4$Zh@6{@=LmndLcvNozlf8_wqKC>=}}kNo`2wN@?eUq6)9b}ajGiL4cWW=?$lig=(U<{R(}jnqUsHanORt{k zB!7?%#Q&*YNN*WM?G(L71A7F`weOXROA+{dL@^+hDfM?88{AE(k8YrG3F(n+!Fq~f z|Dt%6@|@C7O(q%gIi{`A(mr7@-P0Ai>%xNTmh?&W5yvXjN3tzNQMSD8mGvs|md*Sm z)kV_ved0&0ZshmVh(T(5vRBe4wFeGE`+WAJ?M3@p4D{*Z5ZfAYER$l~H%3Wg78_%~ zz3Y1P<$Uz%JoN4Bp8aO^f@jg!#jy%?rRA5RsXzPcWOd<4cVyO2qJQySAy&uF>6FLfI6c;(t8JYq=P`R+6yuZFehIB5)EZTszA^HHx{ zv}w+>sHfPL7j#r#|M`Hjy}m>{QG2zI@Ncgx&@L`&GuTPv1^HBpYZ}AlW63FuC6q3W zA#9Go#+G0@B;8WIrE$;~|6B*`W3hzeu^98x96^d_-#h_z9(K&7m=aw6@kH?-4%-CqUIsxF--EAe{3=Pr8N05QSt@F#c4i1 zOLFJMSY0-tHDcK;&Q@ftx$0Vr?xh+!6Non$9r92*3 zd$Vzf?4f?3#Xs#&0+OCSeoRs7l4R9nWLI`0v=4jw{kULTYcx*HVo2^7x_S(YJRkK)laK+~*?xbI=dw zJ$t?ybKS$@u_t;Wj$NN%o~eE=!rClatP3Bv_#9Z?Z=^mTjR*2rBikiAAAxV^SkkA6 zVYx189w@cF{J1OWCw(**VsoyEdqRgDeVl?6h+aU%FFFgL)CP7E5 zb&Bhgv7`e4C=)QKh^zhyxbiDtgbtJ)>Rwv@ew08%Xp__LrIyvyvm5{!gY?S zI^(LE>Plm!qq4eY!>j;#oOC5i%24Z{W1Tr2mfEKASAV8iWID)1Z^8abX5CU=QDH1~ zR5puDrSmPgppsYwDJ+ zU71^6<0wI&+mPkW;ENU?PwI>mmswJDv1A_5rPYpFDr$Z`LDkov~J8N&(3E zLWQGhbzPZIQN4P>+NzRV$I7*lZEjPc9yR!uPCqEKor^F9i@czHRW{<-y5G z=#ip9J+{7gu%e;mT7`=oF}TyEEI!wed3pS>B9w@6Gh9fhEMHxNy6_Zgy8Km(92nC} z1-}<~;GH@#=Cf!|a(R}($M7O=ys3BG|Kt9bJV5gznke}lPut|J(kH9xx&wX1xJ7%tyt!ZXf|Eo!XrCFLi4|98k=7C-Il6fXmxbl5M6e ziw(0xJmNYJ07@W|aGfvpS|qPaP8Ef(#Z&4uuM|Z%53KJo9aPHrP5k6l_`oxfZt;ny z2u?TF)WtS0$MZoN&KYP*w=&$6_~@h0JpK1S-n;OfeMNt~=HLEt?#9uJU9^5g0!|BP z-J{Xk1hI|AL0;c5{h{oxko?f7dSif3%4|c|%Y=}MD5c|F>_V~g0u z;*Q$mKiV15n;n1D9(&v#51q#}@le&JF+sR_Lz3R*Y+hfct93U!%ScsyeRG{tzcER_ zp{%i{xVf%O?}DB2M>R1g`{H0pe?sj0J7eD$;y*};JJ}F_G&}zN_Sl|;xc7HPK;Y!g zh@PFXhYrRHhvGii8FBnz+%bCq``6burx!MFEYsJM{bEIAmW$a>Cd8f$mc6aH&Z1wR zq=(u63WMvLH=rV}=Jc{=XS=>mIF=CGgDPu`WI1Y)5ZkMXhe>Y@b7sqi_GV{H^IBBj z-MqfNxh6)xu^t}Kt?AI$nwo3e&FLts8*U#Ii~|X={e5Vu`1gy^F7d84UCn5P^-iRQ zp&}bB%{A@K>BtqP-`Jtwkkq_Ec&`|Ko7&qD|3O21f0$3 z=p$kJS|N-=E>FMS6f90`ai8prLwAGyR1vx5l-=3vbOy^_9Dlqo_TtT{*c+h^-5P!%X`<~c&KR`#b#}4$x!2?Hj#veNvOZ^UI zWlue-@#tKLUUzeC656G4jjMU1@LIyu*BatJI2ecEM@4wJdSZ`a4B1J;&PST%jceS^ zce^Og)0d0A2BBM~zssWoxjqSgBmTd}G_NaeOzUo5)2(-P=-0P3I}zCGt^W!78iuUC zxMS!Vp4gr~sBi=| z&gMGoBf?ws=$m4MG_FI3viX8!6AfsGvSTsepm!fii0j!I@fx~3hCZL4(e!Q9Ug*~~ zG0k<h?fMNJ=-r_d04Dv0ux7+?x~q9T8m?U&9Fp|w@|xF`>DJfl zF_t3LX=3AQW1Ul9+oo>+{|#~fy&-O_FuJhPG(of6b%*W)6Ghdv_(*7;CuEr`v`J$& zd}fUNqR?>K7J0@US!s;?tT6IZo8d#7q0(mfxH$4-?01KL85Q}3EwZxMFxVaXwarCsPQ?+%;lp!Vb+-M7=j?09?8>q1BUN(`BzC})6FIO#fr!*7qfpFW%x8$_G39&I~wP->N58= zTmyp-9G;7ccygxf%dvFpvV@PK3};YfA&M+VEu!!NhDez7mtoF4GPgU&vh8pds^4{Z zPIpe`Hl6hVJkVe{(U{qm1LsUZSp#r;y%2Ra%J78~Efra5G7J_*dMy2i;mJAssZmgo zxjS+)yK|->SCh_qqH%8P;km+{Cc_u*$U$4=XP(eI#n$XIM*gihvL0lw;Y0WhJMEFD zyA2hcq2HJc-w07(^%}m6GJFJAtF?Zv6)~{y;M@a^Vp%#k6IGVl-4nWNq|4FxmW4&# zSksu(gN84}7&z-Ooa+w#V$cBn{e_19?$Ca>;cGYTSDGR}H%6WnBc!t1&}WMr@CAuG zC+k>_rA0TVHD?NZwOco5-$4sP5h3LBGn)QOw3i?TwwoeQG#;vaaVxfaTjSiO98%>u zJZE(RGeVgzKd0nv^KA7;N8^{>pmo~49%JG9rQ7fqGza=%I|cS< z!D6o)RnX1#ptBs#9Hz}2i6A-MN!l z4i7XEf8elXpKi+DhHJJpUL)jM_tS8Z37@M~e{m!=mMQYHVzDfb;WLaj-q!DIsAn^= z-4P*YDW-I$O5-lU(ipLYkw(osp)1F_QhIEKdS~dAmaW2D#X9?V&!h_D&oy*&1mEqU z^9mKAd#x#Z>(-HnQWi!T?>Hn(dN-u+z8PWNsoAc*BXy-K#)S;vB=$a| z_{}&Wd0O5mW9jCQhZA=<;pcSIPIvU!g6-QzHzh8NYI!486O)LKd6}+r^&b|d*@QAr ztR`v2|3?xHc4PEn|FL_=7lDls0y)`&W4<=I%D3eR$t<^JLhc*88z`{cT;MNZC3Is;b7iY zP2%*?p-~Ui#n{rr8WN(67N@Ib#SG?J{r%IEF4*$sHO+l^TmnAq^1gj5t{TMlW?Nra zDSX@2sEJOzE416ady;Mb@e(2K4Y#H>(Gl9cy+6jbux6!TeWOVeec5%P-L0)Lwwty! z2nQQ<`l#+lVkg^f-R=-7^S5YDTxJgK{>iZzn|*Al@Id|pnq@OagmypH6k{tNYZsn- zW4q?WjEvCk$Ct&}*3{UA-@ma%v+VLIrZ(IdozrxAeyIE3&cxX6UgBw*ga_es?tQ@_ zj5yk&Nlnsck;uH#B%L8@SM(g)*4M&>mCLs39xzy(wg}H{hIc-H4Ariyu)3)$Q|}dt~Ix*Nv9uJ8fS22*>-*uwkdhr z9d)j}M-FB`r7PVNVhDQ|S@%#$H-+Rs*LBksiD_A#pNu~Ut$8<(Ts7vo$%64;9PYaI z@qJe|?$+t^Zb?Xtvk0#GN3xG=g#Mp}ZVy|YfINd+n;x;>^pq}lZ}|4famEry_lW@^ z;i{(H3-qZEy^!ogp>5;mEqO|}qwCg5iJL99?(2>B?S3SC?1SaG&xLJY@KD<1w5Y%4}(1m(~`!~tkvYf8&w|_fD z$Kv?f<+0i4bTg-IEy{|$W0K|HA9HV+R=CE7m5X&})*!ZZb8n9`t~+rDdeM4^YkjZq z>Q#-6I(^yglcM0uul6K-jDQV`?SAP?7OxkI*Mxjn)Yjdvq z^?4{oh;N{K&f_|8ZnUmbmsQqCCtElnC~K_4rGovs3>W?yBkUNMyA2x$4V7-gI-7oD zvAzxyt0;X9PL9N190_ZUoc~LabJd~ViT5;2xLz}{tRdo_zKO5d;|H?EOA8GVzWu(5 zxGqAct>Sfvn{!_o9KAbg)V`=u6@#N+G10^ghhmy8b?zc1c?r>F3DG^!+!uEwJMJ~8 zZHPOB>o?i)M-Rq+)DVI5wzqcTa#3u516^ym2bYL&A*XL5&J_C-;(G0`PC9>RcK5t1 zdbL+~9-Mvt(43aWtZj#9W7dhu+J15R*?G`%OlR#9531+2b9U=!9!eA5!=ti>HWwK; z7q)LMEN(0s+PpqWzc!}12q#R%I7`Dxj2@@ab>is`t{WA}&VDu& z;A|;RU%%Y^?V;K3c}d;#k~%dpFzi61rQ@*Wyq0EdO^3Ip2Pkf%3ujbPi8yJqG;b`% z*{z;V<%dS#3WU=LtMoW^u5&eye`of2?G;VhtDCe_T(T+;db;!_USk`7LS6YbOhpf4YOpm0 zI@>od@r?M9++)y*i%;!1w+^bj5;0&KwbM3wrzaGF@tM)^iOGPdI1@!vJk0mMv_)26 zGU7CR`n$^X8B{2F#);p;jkXrIF}ZYiSJbXC zhx+TrzxCPQAG@up`So9Ccowm@ojL8DVbo4^ujBDVaEA-*~P3%gzYh(1t zc`qj(HFRBe!ZT?>sFB^!aK%O49@Fhi&W{pol&d?#H7&dQC%ONjd1K3Di|!42ii9qt z+rD#6z=!OFXGS^m!WN!7S7k1$x`VJ?gJcgv(ue8LxH)CX& zcp2Ok=YFH2S(r9*F)P(n=V_XcA@X%y{MbXSmO1TTJl|hj_IRREFp?4LZ2veMH?Jiz zS0ftLsrzlh=*fjXWrb7LG#h=&9)q%^DYnyd8n!gKFZ;ld^z_WEm=Ap7-8ZgjHhIO* zxW3*RA!ug1G?Wg$A6vaY}!5vm;cFeuIKbK!w%gMuKi`?O!|_=I@@RK z_aAhp=fkH+7P`OlOk3Udc(!r+ruly;%xLV?jXmu7rtx5v%(Zq;oOY|PfL*V8ezfIY zpMAR@)T|G?V!PM(U5UD@qPP6cCvfCp2wdqC2%FuwBxZ9$^>&y?HuPw|TJ3B-)R`eg zfxB?$wCo;=f)C4zpE%^n$hR?T&$vEF?KL#aAG=Eso2vH(?TGuK;g#{%B!*<=?TB-~ z5_@;Ey!8y%NZ4`fA6aBr+flktq@r06L4GfH_r^; z?Gp%l5(1?@fvAQ0_hyDa;}ghx4g#wr0bz2+vRJh18P~cwmOJd0ClZ+#grpDLYtq`^ zG9tF-blz+ad%_pV=6Gjw@pLKh&$!;7+xe)b)YrHVZ1lt(dcfDX-+a~EwK;q3b|Y(= z_TS{p-_$+(z87@w|K0QcX8T%S&R6gD#Lauqm-CK)cs|+OAQO1t9#7mRuYl*X=50Sq zSQ~2BH(hA>YV_g1CTcX)R}t_v*$s1=;`8xBmkYFOPt^FC2;K9Whul$R32WBbUQSy6 zW>m5-1_l=Q8V+73#elIiWHiOVhUtib6^McEs!@o6dwpI^x@N?uQTIq*bj20kKkCug z@G74`Spft*K7sBhM?HZ@al9j0{Y{;R>@JyCzqr!b95ut|)fG4Q?$FRs69Pku^}Bzy zY5eG%k9{@N-qtWD#4ObiUHW&M-W{DIbHVl^xIiY*e`wR%Q8|D1X_!_54aq(YAxAf* z85+;{1YU4JgIB=yMf4avJS)WR?J6EaJ?!&+!Xt-mbMoD+Be`GHE|?$lc{q@ff;(KjO~l(3gC@Iro!8rTUzci3hd3`F^|h z;PuT1*ZCsj#orY_ci1^6zmt`9#!(Z~*mz3Ll|I{s?=WiOp#^tuj>G#e%m-vaH z>n8nC8t*r;0lQeA_;X#TUiY8UVYgFv{EwRZH#gKteX>XM#u?Y6T9o#j|y>M5}qdD5eg-_byp4 z&He3%*%Mc2=_9^ub0sWU5jna*&=^4@u<=fL?y0|O9v^AMbJTp>lDE%lO4Ee6KpXKd zc%nug(0??;CAKPc1tDhI^M5b?eMpq=E_P1hn5jeUmkY(BQYLfmoN@CAoVB9!(~ppo zxP0pSu9-ryQ6%vbGwrK?7(-1OQK`uFM1A}heW7Wz5QCweZCmnQxz=-Nq2MW&IHuf< zIrDNx8^xFFHN@SL_iSE;zn=SI@4LnYJzAE_b35w3eC(v#1dS6MUiafS?0NxuyxW$% zU*zx8-Y$4t5)1xWyy-afu;Vz`Tk@RO7vAk>^L@+i`|Av$xKPRzGwp9zEGbpFH6z)`s{ z{k(m{%I71D;>-LbA|$4VMK8cap-W5kn2KvD$?BY9qWrfw3zqwO}$w5W!)ACJn?81W+9HM?e!I(4c%4zO-6pKf z)^EvruOV(g(=obz)&gNm7EaUN6NxQZXL=2%_%1}g=DRpkJI{CTI5;7X?=EPF?&Z7f zUD{8y9ry2iu&z+QL14RUahsm+-ios`zPrYV`+TB+VOOWVeU|IDF`ty_*YD@M10#w& zd>8lDyZCOszP_99b~euG<-5+tj6v6Lg-=#?Ovk;!seE@rXzN3Zm%U84_<@}UTt^RE9Fd#0C9A*Kkd&Ji^=`~3u4$tg zYoOhb%2-tKsCRA4N;(c3J{7|GZo~)e;iU1;jDU)lI>SXk zqrx=Bv<_Y>Dl0NGyi_2llvsGFD6O!xu*^f{Th{TM^Z!13uRRQ#Vf6gp&gXsK&*!(5 z`R?^R&wAFgo^{!4uf6u#*V$=HiQi3j+D13Eltjn1K?CcL#SPb?OBC4DD)AAq2 zv~r8)Zjl{$PHUGvH_N``_)jkNBUcPhUX&f$_>0FwrXODK;LfMLB0F$$v0e7|x9vNo zl@6?b%4FE?pluwQU@-mQeVjW#bl?I1%Ke{<=V`^hU#fT%tc0w-m zwGQrrzuTinW>Py0JZErN$=M61KRVQ!*y-!q2bpJfYMip!=?f;OW$g6DTBqggG`HJ+ zB|Ckk(`gMmeT{Q|n4P}d==3~0buM)hl6u|wNFzHv?fgzBJN?nQQ|-(Iv~RLFNa`Rv zh5d)wsZs5q7P5lJb2sF|De6F(op5@+WKtD7McvxWPOI!9ckrhjGV9JV72`Mr74)kUu__wLjUv$*{J0S=G93x3uncrE2#*_umttjE)}u zWMi3K)bJ0o#_ig6?$F7z*MkCe&%f~Hwfd>AO+0xy@8FzQ_D`Ap?(vZ!P)u*T1&~96pn^@1d%ICqBtq`OpJf&Y%5y-|DQDPd_sI?CIFTRY&F=-g))< zj#n3L{W-NT;)jny(e`V#_lv2CuNq5!Dm74ss~?Ht{Qy>ipea zXO^X|FP)t0zieT}sj;f7hu&`4IWnv!qT&0Yo5HHNj&Ecx8r2x?oNV2y>j`yBUDvI- zp=?p|6*;JQK*h>#15?5-r98ScdQX;f^8H@X&Qnx3N^`s;5`*1b)|E1U zr9Qo6Mfv&kB_67!FPt!}{{4q%Kfc)g){befJi0z>)hhj8PX0W3o!x|lH2vM1u0`su zj@r5@&QNsZ)#gWU1RkCfu!-Cekg{#zoGt(5y!3@{3!mJ%;In6*PdZyz_~hahXU~39 zc>k;CXBnSfpE+*!cWOh-4*N>&uGbZ3G=o3w$S^9e#11`rSerxDPzp21C#Z24nuube-sq4{Sm*hUS+kK*@rY|S|U%yg=~t8 z{&->K@tVg&|B0NgFZaD;|AFIsLasb}w)xt!$XQ;yPJX@oGu?CVUQTbHnmx(&^yMEX z|4{z^$#3=@L1w<4T-Y%?W9#KZul^J**nM5SWYlYCbA6}iUKnxq>b~F$0pA}rMoiJE z&YsQtb-$|O-OJarmgw~-Pp1C9=-E%^xjkc-8gVLMQ}p%luEo!n3YDt#z^+8{^hN$Lh==P;cs7k{=?<_;Vb&lMWo0@bI=xJTpWCXTMSa`C&VKTI3O z+M@6Kqn(N!9ZVsQy2PzhmUW!oJfzh0VEH<=!>(=Ba_?Oqu8)@wR&iM&(Z;%rT@!|X zni|&WYVRKT!gS<&*u^fV;qTYX-qSUEI56u%*JH!e=grfWpS>F78TXgcZwzZZLuSxS z;|K-S!uA_KJiqnx>j%GoI^&J#OF@VAlS+>+pFBKd%hvbO!*wGwKFoUb)#4);9yxz< z*6M@0yz(olg`YkA?3T;FTyNMb$zZ^t>XTQ4-pOq&3xW+gm=^8UfF=ptU(Jn1f%R;toy^^qE^_)*~ewwHl=f$0A z_qz9L&~T(7OAUKzciRzt(iYZ7j?5l3@qxC6*S|hdJ?5Tg^#_A4HW@y7?QeT#p5T0g z#yuy_Bk$5qec+Re({I)+xpV7#qkxnKPHO ze!ait$$dK#l@)DIhi~%s%D*^yZl$(*)`kSHj5B+)ejfM1j>#(@JbB`c7v>u8`b0Kx zLZR>JT{E5-of97L;+g04+b2Kl6#CM+7ZYFp^FM|@z9X{m%DLAIehv5{Y}HrwPfa=T z%7`PYu7CIG;flXa_;~N1-^%~tyZ@TlQJ-?+N&km_@%wE5gP-in`TiIG3k~_-o*A1x z2Kxu$9*Fjm3RarDS}uBJxXW~vu@Pm>RWVrJh_#tD%Up!jKv-B5>=HBTC@ntq%Fqtr z#Y#u;&th~~3)5Cqg_UA!ummq23k)4r8|`RCr>4TQ&5hRnT-3VeYF)9$q&q^3&tWfJm4s*SZS(AQdTVU z;8(`g6#LPtqE33sa8+xU(u&7bJ89V|elHm40TaIp(*EOWT0$Z$)ro9qj@T@$RcXd! zovAlVrktaNDlR9oDvS#&@{OffHH-&sg;;P`TjBY^0@rK&iWMw`!7`1D8WonY1Z#Xp zUTDJdy-{bd$hUaZg-%*5`JHT3hR3`Jtct?2qqYPemJzJ3#hpvdJpFa7@j={C5Aw?) zy=jHxBQjdg*ycU5+hCu#t~8X;L)Ib8{Ru!Il`T5F0I ze~q zWzO|_HLa2PS!;Ke9@U|6n+9TaYR_uxi^E_WEr`a_NW<~hPnAxs!b+m%2viwvl}6Yw zC}mW2vva zow8P>`^Re7XYVXYvuN8d%`EKubqg-Ow@2^P3A=;&u}#;^n}+%2r!QTeZOHe_&BJ$) z3~Bh<8Q!R}OlYPdKZTNt&CAXfR9SLkX}2{^LVlhxJ-;w3y2jC)W8+P2Kww}%NN7Ol_`IClEMp%3 zdMv40kd;HRV<*K;#wbmhRT^$>Ue4qi)vn*HqJhzxzp>6OKE9bu*-s<+SIE>r@;B8-D@^YOr7Ywed3r+6L!D6so)K# z)R!kd_YwIXmG2=}J7eUTCa|#eyWXq{#N>l5f0@V?i^PQ`3UWkzIVd;ZCbL ze(KJlZ7NoX?ZCn_tk=S7x>(%N(cFpw^%D=pxWS5OKZtTPt#+yLzGCkF`Zq&7qr9^h zg>)RKsm(dCWt?5z_E(;JkNZ92p{yWCaokp~4!6>;9HX_S^#zVy5mA{BtEy8~S1Y4` zEYo;2wj5H7vA1_GNlplCiTa_yROO*bP?i+u`o*ZDhmB-08`iII%$;06#{Ssgl4RrH zYlAM-W;srdn&IN&t7xiyTE4FHTh22uqE@Z2`=YX}@sR24{F`2yPY~Ts;S{ay9ymc= zZD^@2ic!1de)Yfx!JLNmYYaikO8Sg6x2U|S>wwFQk8?a#yUzz{?td#iVSnz)#>~&R zTzv14zg=44qH^Ew54dbPo#Xk^-t$2V|NK^Z!+!QcutCFdGofR!B9`|JrlGj9<^$91 z*S|4jIhM5qyWJ(Lv>(5CS@KMm4R{=61%hxlO{m!5$HQgttj1Ixz*I}z#Zg@ugZ=NTAYw88qvM( zkax>`qse82I&LNh*V>V5ZwzW1q%;TeAM0hby$=Lnr7arTSs1KSVzH+y8VZ)F=a_)a$BiuH$lRQSQiXVSRm-arN7 z+^0CS4slq~(r7{vwUsK%oO>$BtBN>qD~r9?X*_CA1fseKwczWRG_@LvXjXBNeIsm& zflW@Z$phsVAr=p3&~Tg%GJ_RyeEDDn30GEYpZWAFPi#6^!^Ph;+(9p~U_HI}9lxWp z|ELun1dpa3*Qsnk8Pdqk%Uzn1kGF0!lUAl@EzK+}AbpJ?NelS!X_1X-sYX@~KcP~Z9V!HI{pPzQotfu~^^;sex<;gdAatV>UYKc5Q zlca}#2I<-gA`9h9c^OdJf4{S2V8Yd=ePpVy-DrGX%@b+V^i;d=<;=XaUzeS>-8-#wYbJ`*AWV^`tQr3Mr zZu2Z3aV^=UF?mbV;F4y$hY$Zeu=uq`=jWPaG1tj5FId*}NLjJEv#F;xm1L9z|L#BF zAQ}`U*Ezj@h}fW}#>W`3>hH+cC|gL4qz@Sa;uLH6#BRD(_t-s#VePQcU+tlP08arGae{;JGa_yZPqq}-ROj2 z@{aGzBU`std!jd;tTDZvTWj}l^fqViTD{DzK`y(xymVyu$yRiD(f(@gm3CRsz|qB; z{E)6dr{(IlpsDdu6AMlHO;MUkpARZ;MvqYJx3H^bd-5A2ZX~CzE?(Tl9b6Vse^#Sb zj^250Rh^|)DmEV5_QZX@B|RNk+?R^&pC>!{j|pqGk85{U)PFkg zh0dU`0$C$^{}Q9dbSgJ~K#kjWWaY*HdB;`zdn-M6AS)$HG$yeF_$YFn!A_peG28X%3 zXmAPYK#vydFksK!4z0g67e8ZP9Hm|#@^eH*R6|eWXrH6aj_Q_AQFBk7mIXbQQmh%B zYert7FFozoq~yW?U~OMiPqkDCUuKpdu5i3QsH*@Zs*Sq_Gs>&6SW7W z^ae^P@w0~;n$_3s;yatgyxedpoaxXSqEwVrKDSLdCBmZOk6tT(AIm(4E9B9a&U~|b z)E>)LIZgH+>^vne)|6xg404^>eMj6~RqWbV|DhHYP@}XDZ<=<(7^}ygRBb`V`;9?6 z^H#p&-8kZ-gSB7IuYOct3X_b(A5e5BoEqUWaS->0;>*v=-ue8u^4h!yzAfSF^gtwV zG^@z%oZa1`_Kvw>_q0Fe;V}$@o}|rlC$xP~Ssab)eOuf=uFjr-1}PTKFK1Qe)4{Ih z(*-@J1+Ee8uaDkv-0AU&A-LWQC`s-d_RVgm{lO{82{1p{aM#-1P6hVSxN6Quf48W- z8Q08sTr-E_nyJM#v#2WfB$xjA7Q_38{7cg@=9!4jz6JtQA+Qz#no+N(1*Hx&wwr^>&cI5Dl>#bh&uA7GjCY7F?N}X1tZYa2=HFFTrSG zu{XH;k_#8v{~1b}{h>rQ3`%NMBvt{j`cf$QEE;0nq@)Ogis{o7DN&o7wiMq1Ydc+G zmD&->RmDLvAqJ8YHbQcX7FOMp2CK$mAjb`c!pikf*j|Qo9~=#_2m>;>gN&bpVV>bm zh-rpGTl}LCt6K+cUywHAPH1aDx}}TRV8)=~@bVg6@22;R_iAhFK2maT565+IW>0Tm zbSxj?B6rE~tkiVaDfZ|Cd>h=4jBXy-B(s0RrBuD6mTFMZri93^8lP>?8{aw|BU(R< z5GR$$o*wJ*3+KH$pt`|5%4f<~>W=k)P2e_Ot&BC@`In&VD8-r>RInCd%y6OQaJ&Z% zg}4FuTVy|m!?CthSb0W73%38>LYj@?$EW z>!fk?s~8HrV|vQlxJehK-QXN^b(F@(!4W-1(=uEax(B?Xl+|f?eY8^DioTnz1Nea` zyAtgBQ;9Chx6)bYc8Y1-f8*H8iib;Nv}X;CNfwnye-Gdfg9c%oiF)bU%#SDj`Pf*K zMp<%^YnPo@#~wJCV29DcP~Tnrm0x9fiO01(SdMG?g?#gs^vu|f!4=+fYIMsqm&$g& z6B#v!?kDKRBYE^JjYWslK33CCmt4BFNS?N1v_-F0e^33LD%D?G-pBPMQGxThf8G54 z0B&W6NvV}Xeb?NSbesp^+`%z%j&SY~rm20LD<4?-?HJSc2mJqWN|yhndA!xNHMvFe z9=heliZ%9IlPl5B%c8Xn>mR-!qb~3#c1GRHr>H>a>yf zxlpHRr2y&%tJAdwJp-!M{D8`jybYOPw;cZ7rpM21V?A;g4#G9xqa@i?Jv{VaZRh;% z4KCpd7xbFy7-I?bh^9IE%awL(V%~jDGt4tkTaWs7L|Oje786>@qlYwfTT=a-7lsIY z`HXr>ZBag7jD<&iALHWlRMl>!v3AkgI=6?E6ZZXiW6z~l@h-cjal^ZQ67ONUPDY=U z#k|Ik+0^K5*B8ZDT;E%_n)GxN8Lxpc!yHS!D;>9KXsAWy;aKhY3nv?R_vMmD?1}+;2>X~XDyR0@jP_YR z9w&Cx(M~{5vkg7de)K(S(SvfObR%V;t}&3t_MYe(n_SQ}8tuVN;JJC!`$nJ?o4v%_ zEWS-*Nte0p+;2-rrC#A^ac`+OtcU|w81J@KEKu}}tWoR_M@S||uh|tpR^i~e zxHCD+MWz01yIopKC*A87DF&BZ?72Poagywc`S#$OK>LLjHPmC9DTZn&e^+rsTk36L z&knt4&*>ohgSY|ME#3eWKT$1nqdR)coN$9D4&Kq3JWE9_$BrgO+(M!@uTBUjlr0M|BD8UF6EbbHsflr4?5ANTa0KP5W{ zM6hWaZt#@B>~87dtHnn22v_Cyf?dYJsj(OjVLGH~cGan%lUm$uuv?Hj65cb$cG4|K zy;>xmxFi0gF_xP|M0eSXM@55&OjP7Vy+s)prjTk&)M+0LczFf83YFxXN!}9W?QWho znl>lerQ~9H@=)ACT}&u(vm=+(J(0+jKG@*hJ`8qS&}X0-BsjZ477H^rP4EpT{4@qX0FKWDD1uD3g?a+u3Hya<7O;S!r|Bu`A((T>bLq%VA zZx8P|jWnN*5U070=0)|K>Mg36Av{{eUw32B?)uJ~#N#?qi*eJ=)3`kB#&x0<7m|6n zkoe$2qQ`}#9s)*ONTP$$^K5~@hY(1DKuZ*wd8*okp_vP066_%y#rITM=&9_(Fd~Z` z0nIWMxM~M*Ywcb+AJkEde(xHM6IYYiG<0aOchJO}E4n+46U4MMVBA3i#snHLzJ!sW z{e7fuB54~6F|9Mi8c3{@#PUh(Fo`8W%r1hmX*K&Wy2%B zUs?j6i1TzDNx|w`Oah~PeF^^miFVs4939EJbmRXxEE^3Dqik{BO;Umk= zYK3DLe>qHdj@HI+{7&hy$vAlQ2v%!qwu&_&<$=eATCR1Q_@qV4>>iZxC0%YEF&yd~ z-J!0HySq@Vz`q6wGlKlg>#sj0(=;GIjJyeZEczOa{&d-_B z;NBCX?UN9oLC9P->N9ABxy8W>*?TH3Una+h_?j$6vp6bue0v zUuHvqhPkiNTnWKRxNAy$n-RBE3T1sde(V% z|Fw9#?499Vp2k;-cgi-6@*S?eTD(X0(Ws)~_1B8)WUY7946k)Ac}aFk(=c4CD%mSr zKc-{2XW4~_IWE*(z2!vS^3ZgY1L!eqlUgN1qAI2KL- z(n0tp{^BvHSqa< zL|6K7+)~g<%@NSa2Rz-6<4m9rMED%&6i<|YjL|zK^ru0mvCLJ_hl=vh^E&8L5SHV6 zVN)5M?70d$vcXLQo$kv-{r>_T(YOTA{TZF)C!(T{LHJ?NM>9IvKL_-?5dJIZQH)OV zkAXf9;V(faKazf;e*yXkgeR#v4xjKcr~4b|w0$pDj`Muco*~E#*_{SD&7+HY=7CP} zcY;p-6XhQQo$`MObf`4bi$R=&@Q0w&{DY|HL(oai3uTO~o9UMrU28$7{Qd?yl~Ww( z;q{Q8BS9y> ztpnZCZ!Su|DAWv7omhGTZc_S%v{ihp` zM$qa0gM3EuNDs-kf==a2by2J*B>x5IO$hts>{5BA&UM>S&tpDV#1->J^cK*` zpQA14RDUjjj{jT)=$85YoyjLkL|zLz=`WYa$20jI68Q|!XF|RK^yxq< zFH-Od=#<}ofG*~j>^uNE`A0FpqW+^@oC2NF^#onaFUem9o$Qq#@K?dbZ1=}ps9R)hs zHvx3fe)4|^=x`l(7wDGt|6b6^&kulZnXeqCzfhw8QP8P>s|H={-$;K0(|<&w|5K*_ zyhQ(xO#hD({jNTOJp)lVmiF8UI^}l^=$84N&ggf6j;@+7N3tiC=~*n%vxdp%OZ035 zo#H=kK_@*2n4Xs;dOl!!8ZG3ho?K<}7bNnEv4Z_SN#sX^PX1Rp_0I2PChr5fWqubj z`6!9Jk;&gDk$)U?3^BQU&}p1V{V?UL7Idm_rJ#%Tjp&D%{0`7@IWxD5>!8#1buZ|2 zy(K-A-|%t5xa$Jw6GS@nq<~K4XOBUqWj!ncox&qPw;UHe20Hm60CdZ8e~!t=N#rjw z`9DeIe`E9<3Ek~ZL4T=)KAzFB(4bek(Tx6@gnmDxACu6RG5UE4eLbW9D539UbO)E- z=^kYCkrMi8Mh}+IuQ2*730>wZ&-`bQ;%)<(tOj-<8O(W%Q3E z^v#U^y@b9ObgE~vfkOYv>qmhf13eUU575Ib()}HDst0pG7q8=V-B*tn>TL?>R9{3r z6BvE9gdWG}PfF+yF#1apdJ&@^mC&CA-4E$~2D-nPu9D;40evFE4!GGOzUa3rpp)If zpi}!3=@ZaMsNPSvq{CO@AKUy|8LX(@7Di+*Z%*hdi9^q z*T3tB|LgMq*ZuiN)x$qZ&;RxM@SnE74dZ4EWz2_oT^NILDvb}sL!|e29qCt3KiAVk z(2t>^`4IK@m*4*6`=kH6dj2T+|8;u$DaSv`&VK#hPrCi}Z~s&D{_1&u^nYO7Y;C-x z!?<}MtIbO=UfzQHO+15qX)kC=NwG8VX)gM(THyk`p_aRpfAMU-_zkfDytbCKJU15~ zl1ocU&7haqa+f9%H6YLmJ?J58A7c_fh{Zl(#>Wn}5<8@KY<>DtL+UE_K_^j1bSnR~ zHC{)k6&+!>p@Z2mH|Flxq*#6Qf(1!FNxkg0@>RwjVg0NHiAnRP&zL@c`kdJ56qo1C zo}L(=bYJxRq&d;ErwgP7)AiG16X(vil(r%p5Y7{=Ne4vqq$@Sj@;g91Qhluph_sew zptk=+0|Twb2(l3)nCDq_rsWs8dZc(e7u=gbzUjw@0f8YlQVivJv&iF;(z8r3K==gP zZOV$@Y2(Fv7id6Wmf?uRrv~j5ov)bmvY_$1sZSTQG9REF3 zx-QR3!+6D7&lzsR$KjIE6E+w?_s#d_{b>_CY_&rQ7yK-7K)8)wHQcJp!fm)L+^WmM zZMZB#o0OOGU}{o&jWZZC(5OD7IFg z_z#6zq~wFX#Cq}p5mx)M2+8#>@%{uh{FAsoLed;~!GH)!F)^yuwjLoVASP?ICyS62 z4U@InhecZL4k9Jl6*NRjvdfQl10p4PV^phoi?o`z$S|>ZeUfI)S&$fwv2_x8aBkd! z-h*??OT1Xb79;O~NQpm~-4cH=3nl&#WU+6C6=N{coE06T$B5r{JxZ8AH$kYd(TR!k zg(@qd1q5mZ=k}!w?(It#9Nd>KxVSGpv?m8VlOKQdYq%&ZG{M_wR{H3e>3Z?zDLZ>b zPC#m2juGFh&JS2#ke(*9H7paqP|gaH|8Vl{egJw2-+Kt#yYR_oXJw=pX62;gN^8h3 z3@~c5B6tyeJ$ylWZWTZ2Iup}udEZA02+>Q!i_>`5q0^k1bRe`YoOwTvtc}E+pZn$GJ6Sw$)_mW;I zF2Ke$>1q1BrAyQE*@ioCdO=>Ufxg6^v;sFaVOm@Hy;W*#tSDqQDJeD2xGE_#JsXKI zP7*(~q-z+q>`B5FJy}b!0}$?`3iI=9il${181wL*blR9Fz>uFx&BUf-gwMr`ZN&PQ z%c*=rZRPj&lvtLqwM++uM)Z@%fY3;rncy$*X?-)X#AdAiKf7)_o-sSCpwPC6`9tlt z#l(pK+ftU_dbcgv>ud2syDy-ZT*g~4p z9{Z2&vaR*m);sNfdhOoAtlLiN)o6HbKA;Bza6)&NH+Ry zThWAW+m=L6uWd`p+-chq>eXl4671b&3su*m&ra&qX$zf|&}%2%>Y0k3e}0mblsJ81 zBK8eT#n=H4Rs0wxvFXhZ!xV*DRTOqRikL;hJ(D;c(5pkS@?=JDA>MbE)$B2TfQn{ZP=K*if%WYf znX2A5?&gBxHRPlhX42CzE5*g%j9QzE>1{(ndNyx?IL&U%%gV)sdqMA=BCVPd5YEWf zQVEE#aD;ST1Q)DKvD|GtEFjW)(t%oAX$PVPTDut!46+$3*oMiL!xZL04IA{Q843+d zFJDWf50fMgr#rKMv(WME$)@3ZzhXPM|eVI-8DgCjkMZUg2Z|$ zaZM1q!G7CuK#*7|q_NQF*@%Tg`a_;qiT**c_PsO&1c{|8HBM~MRvi(n6)YEfTlV0J z<)^20^?KkP5G*=Zl2)+jR_ker&XvXz-D*7+oXZ|!S5x!3ggxZ4 zS~#KoWIfbo)ghXyaw{7|M@cg*Rt@VJ7AuG}mRL2c#tPR;hIW$2VAd;RxJ}oGONXw# zpM~|KQgpm^Ge!4HG8Zn^HS4kZab&nnM~3&~$Z(sE#IrHsHpAlKm{0>@a-XMTmNh_l z+|YZV$`5s|j#RUyN^Q^gO9n5gv|3E6!Nv+4X&ai$Po4I)9*@_o7i)yrx0(x%e@fFk zw=^s-TxINcSZO~Ozq<$K^_n5 z`r33G&+3>}k|$@@sr0SYh;4B9)MH4dD;88#Q0GHxewn*E-?K1;U_S@2V!C?nm9oW`&Z!oH99iw1xx@~ zOTU5fr}o3Y&iItRwfGu1g^q6g*;&b-8t>rIaT9;m_~K_X>77+;`lmWlY+;SQHGZ1N zhjP3(-N%1bE<$`iM7CCb4Q$b}S`cI26aw_y%J}SEfIj>Sw}^lB7V-H_V31A}{;cJ1 zD$219ORjx^d$C=LkAON2qq_rN23;+n?k3VB`EDT5DSe=>lZDA%3U>fWt_?_fDW5>y z5f&!DP>WmZU!DlxC$7Kc$EU`%7A!3RBsYcw-)G!aFKvIBk&~RWdbSwVj$^F zWT?@#710+2jK+>ZIqTKZ^0_qfuf731(5XJaAx@dqLJ&n1k_z(^b5dgpmzwUYiIOEhI<+AU|7k} z1jH*U`n3Y;3W1bfHp6%z+2sQ~Np`ZZJ1`dU)B@_1K#F%0>;6gpIuNgz>bnKhbpcO; z-pTkKz!>n)38-sh{1(RF4{X7wA?gKOQpfnUjK3Kejri39>MDWFkS`N(i3v#d6ap#T zY#`Z{2}E1drwOQA%=n3nuLq(E>Ei{|(R=(9KZ5bKz`MZr6Hw<1B)`)>06?7=kS|A| z4s;g*bxKC(fat39H_>kabvJN?kbv2A%&G=P7s>hWA>XLz!egeY?;Cl%B0uKSND+T^lhUXZz z0V%x}AhoMT0d=(B1huOM0d@O+3aD!UQv7-# z*}qpnT`dsrMeBD6sH*`6BfMEaT@^48;YtB@Cg9tsr)vdVQV1lwvw@Uu8j#8>SwP)F z#!q1Ucp&*FPC(sMAlc;wJPcF<`TW@n<<-G(Kal8afh3;{d83nZUtoBSVH@x`_(y=`w*~=q`+Z%yOjPch3 zDZfPm>I#8mS2p9P0Vjf=ETC>Na2&!51=J-1$0D2{pe`Or=|=(g0V9B<&x_IBfn=8p za6IBE1=P{LN4^NtCh$Pr4U9A>UN?~ByMPnGza*fp6G(Pk5Kz|v9E?1X8-0 zKuT8+Bz;jpsuv+Z((4QKK|CJ;bsj*9rv?&V38eO=5Kwm=of+x5%J34y3k=TzDc%v_ z7{qH3P`4jQ*Y|n>b$fthM-9*$^vwd|%Y7WDLAX*toe7BjC-iFt)D;4$T^R*jk_jYx zlYx}(LLk+%L;-br#*btCsX(e{5d!M8jPJ|%UO>F!ulEp8r)G2|5L*c76$0w6%lZ9N z^xXpLI)Rja2XF-B&Izb%WAs)aT_;-v)Exnm-TN7TFA!Tw=<5X3)iQn!<5vT*&xXEA zKwTM-{8z+K59G@ih6*9w(qK0(b)QTA(xNbRPiJ`2cY#)@uaRc>u|8E)0<- zpKc>Vy1yg)_W+fMS1X{dhS4_z(e>)91=Ljm?GdgNP*(<|_-ldaLi9xf>I#9Bzifud zK$1%YqG{<91k~vn9b*NdodQwi^jZORen1qB-d8}K21xm72jYHK)d+kSSPy&%Sj)oI zz@-SASl9@hk8m;zCjjRm9L2&~;9P_?EUX63Mi{{BuLD8{uRjt<{)qrmeu<7h+Mh_3 z3B-OyssvyvFdm5gGgOe}jsSguDL^$4;|JPCi^dgvI%9wugx>^u02_cLcK}FoZvX*w zPp;|$J_76nJ`C&tq6}2+z%{^D;A&taa1{``xFTRZa3!z~xB^%UTn?-OqRdp)z>ZKfp+s(U^nntAoT;!06T#@fE~c?Kx+TnfDOPJU_J0< zU@dSfum-pVSPk3@Gy(4h76CT_jlj)7>IY^4lY#4j3xVYK1R#8%qJDtnqkvBWBY-o3 zS|G{$0(rjz??KoDSPfJIHv*Nw89wvDnS|I6xFZlWc8#ot)D}ne^nSd3*BA_GC2rLI?0;wJ(17RXx zuZW(2F!~z4o|u3La#WtlC@09-M=_*wq%f5qVJChF8yVIzG%-wO7{yS-kYm`1bZ~0l z$dK}DhcM+AG(MliHz7=z%rJ_fh9Q9G%jLDQJu(M*wQRFYF0YhT;kRh5T%M39muo|0 za$l`n?&~L)@0HifAuHd5-wyc&{I55I4*C?E6%O)B zMU?`Q16l{j<#hx0;|2lyi<9_^ouRa+1kSPL)n_{FXU6$UB`b z;kU!-0x0cH=kR;O=_YSGu+4ct&Kq4@T#<@vy{m(Khiffmf^=#qPvyIkJt-iF`3?)Z*`e2@EHobPe3!*7*) zHGXdnHi3S9@Xf&}o542*JIGrGx8nTB;70t`4&H;`%E49mtsc60DCCElhRNk!!>;1D zW7q}!R(Vu=ILO;Q&v`n?TRq!6Tu&_-z<*1l-mUZTP(~q7%PYM|9(Nk5`=+()HTxRq2k(iwY|qN0q(9iMZ&i z@Rx~;7ahm!5k^CeK%=K4ff_TyQ7jzhEXW&~d;sYOKc4aHDLw`W?HE+iaSTZO1javw zbF$}>z~;g!edsLm5C}QcsX%5Slixyo$k(tuOc^NflNo;)*#r4Z7N&hKdHqa24*i1) zag?tK`jbJYFvr6A#D~pYg9Lt;LWu7JIvsZ*pDLV3@jVgxcFM0scsk?9GyWWwKXG3B z1L!6DjLg1=)Izw3g*_0D_$C$(VEM0MVVY+mek}{1qVy21W8tODzx6Ea%HlV$@MM$) z`9qvX|CP!U`Bk#=JIM4mGI?Lpk2u||{9a}0wK9Ip5F!0a7LJ82D)=l6`J%&v^do)( z^XFBHk1{D@>6J5kt6BU(RGyGGGWog0N4T1WyP1F5nY8OJ{QGB$5B?S=zlz!m!Y5exI{6>r^DG=p`Ny9x^XGlAMFpGcaZ^o4KE+2GV*j|2 z{DJttv-o#Xeqp1D#h*s`1^-`+AI|I_0698-p!CVtukk@Hlk_7^Ez5sB`4|3bW&To; ze&`#_;y*|JL)e#vXOsUBzKew?Q2wE>fa&{{@(2D5#($ILKaGXwv;3@MVHMer_%E>d z|04e){-caPp84|y7T&@19b(}~rmvZW6-?i!Oy4(5-#3h}X8JsUbUaD=kpA~fUc>ZF zV*Kw}`7UDNr{HI@Zz&5qF!{f*Fzstf{4Fd@^ZOKji-p&+_$OJ|o%#0?3pcRx{DFm^ zXZq-S9CSRy^bH#-gx{g~h*Qbx1Jz~A@CLFEWmd=dCCIB~ID_m#{9TMch50v}>Cd3@ zhK?Joe%_$|)gt_Nmj6N~{~?pN$K(+mf2I783=3~${w!nik5T@>AIkVESb6PX{P~n$ z@W(R#vnWUM=X;DloB8uA79LIZLq3qne?@6S{vV8gfYo1T)_%*GeUVI_p8t{j5XS!i z*BbIyH}g*+E058Pzl7{X8gVRsBrBisjQ=Fcjrf_2PxFMNPs{vyk^G4=2|zj0F`M#- za0m+zr2HYA&cc_dyb;c2;g=|X2ybWMD#{+7x*-Q3Wgz0&v z3O=l6{L|278P-z%VUuRBpno6nEyDDCjrx!kjBgpMmnROmBmPze^Hsf zaV_J2B}u;k{x%_FnTS6>hTfb1i zziq{&tu8jT@`{Z#ZCh^vNmPrwX)rR@xAj@cD2Z{4m9Jbjzu;IBi7i{_Y`pQv-Oeit z(l;L@3N7Df#NK&UR~vJ}B2MAOS7zp|i$#3TLz1sv&aixm2dP_m75%pIXnqZ&CkMS> zr~uvS?qR*?JqyxVhAm!>lVoDf0%74a6SV%)X)m`Sr+7P>e-GGVH-!E~EO$(h`h~r~ zX^zV4L>=N^*YHWYjYW1n!sdNRZew|&l~}a4)8=j_61Vj#d&{?>n4D!>>Rw^|cySd)4kW#9)_u{;*UYNZ?DV4SU>L+Uz?Dc!HAhpkq z7euwXzXgi7?^{S>6|%ONUgSv@y^3UN9{dKH{JLI|DqN!YCBP!dEZB?63rb%E6r=Po zd%efR*?Iw3crDqch;)kpo5IpdOW)lam)MNo`-NniqW!+TZ8Mg539@a5jhDP_YX5KT zC1F!@&)eZB?my&3JDbVf)*JpdHCS_n#Xc1_tfm`on;jNmy)VUn4E>}R(jOz37=8O$yzMFYr@wfCW`@-a2(iQau_m%F zgH@fr3|4jeV}zL*R_zE4Cr=3*5cS@T7Oyc{&v`J>`F9S3a7J~+b`m{obKx_a`PgCo z`Jg{WgqdMAN8x66e^oNfEFm!{lo))@Ld<8uW?`$T1%XX2FiS~P@(e50M~D{6&5Vsr zN-s)HHx?!p(n}bjeZ0XMN`H)qz6|DFGsCLkVYbKgK{V_uNV+5NSR!s;3n|x%J zl33Ei=<6MdW2LqU8iV`uRey|#{utqAM!#*0B&=8xYL00&?;*C?!DhC^CqZD4&&+(Q z+I!f2Jx4M5dKKJzP%i9K#cL1h<3H9m`!a+|7-42uH7DFQJB-*uRW}PtvK`VNBiPKa znsN}>czAz|Ff+qy z{z7fDL(J^{s&BAaLgJYqFvxRezSZ=5*nRy+G5Jyrq$@9fQ`&n+Epf zNeNF&4NnORH)z9x)6!FdwAzr=a6?*XMqqk)T0kBp&W;a%|KXo_tiVr2(+{T6xhTv% za~k~N@Wfv$=AQdI9`_PB$rJ~N7{=o^T1U&_kr96+B^9O@6|w+8cq6+fEIkwTS>dePH_snb0dQ19pQu})^!|l?Y+_HK_tD4d$$czZHT-5xo?|Rd1p?Jd!8i2i%-37^9_KkegSSmEoV7nV$MkR<1vGB*tkPFODD1l>cdu{Sj=Rx`iTT7pUTGakn&Niy$&f~(~FBfPLe*=7t2G+msU3^ zU!ty$e%6hclaR(|&8}ZQ9u@aGr18CuLSF2T4T``S_UkqLyGLBm=t@UT+B(JHF?-7J z^L5$IYWG3?Gt;(rZt%!11 zo$OH9ZhuAXkZ*EW&Hv_fstPoW{svE(c(ilaBgI4SmJQ1+9{9+`VaE-lx}ry&X&U)K z@xY$*i^Dp+M|SP>y5#NEVHkB^+`HY*d(=+*)lS*n&hKhf-)LR0Yh15%s=lqgZc=*( zrnSaz^o|)*_TKmjJHGr|@Zk%pCz7&!fBzxi-6yX_>aLF3x~XMrp#P*tn}7c4(QQND zeg1EU)-Ha;bJLkUYv#BfK5^M+*^Lz+UNM9}eC@%(oDX{L6;a7i>exGcqJ@4qYS8+) zCOaVot(F<(tT<@~=lto-HzsnA3zgBa^i)W_1dGs9OYeiGO;q(dFwNbzN_% z@=RuRnGZnSTTqwz?m3fZtA)C4BR{V1aok6>quq>fTteM3S@34NDA946RjGE#$#%)i zLq1_jcYAaPt#TRvP6ZbaLHOaDd z4MDzp22H4)KcQlf@3y0wl!~Wv-t+hlZ$HM{X$E$Ae5cvKpOsJEQNf+z;!Ag`d?%Yi zxHHLhu}`~e2AV=VzN>x7o`lOM?{$_7B7WPM$az0Or1OxAAadjhJ3&ONEOlk1xh{fq z^P%_ow0xs?z3|hi>aG_b3GrDyA$j2XXD4LF?s{R+7a)}ff;3vS{@IsmKnnT}q{o9m zx&+dM@gU7VUitdHitMN4iv~2^cYpo8UfEA67p*&b-@*EOL$aSzEgH~rpXclM>Raap zdAxi6)t~?VaK_dp-!40U`H{0{zxmi>$*9-PUfXg|f5+~VX(b^p$NzTVq?BW|_-3oa+y2)pe69*d=Dv zQS^E{y)v`|c(KwEZFaiWSiH5WYb&ZMG&-zNI;@JXFd7|J8|_vURTwoDo^5WbtJSKD zTGw2y>(||??gUk^x@F`S=q0^J9yN^0(5|0yq;yJqY~+5ssYgnumf1~d>vms}?64-& zAv_b^w?nw80)4tM*JMEYVA^5 z(FO1HYU6(|7`)#1_G&2}`M$yav>jHi``P9@%ZMPh3|T(bhbrK2`^Z+&ntdlIU%PND`Ah)VYRPA zeogV>uhpunjjGEDs-LxEn$ARzx`Zpx#gSjgMxi*lRT}>NIxb~Yye78N#WT{=r+Q=5 z@z&PN(FscTpl3Ziy=S&o&(qhq$+%75zFB-?{Ca-n-dui1v8)y8{;`_-u#s+7Ualo+ z7Ts@XX5oh87F?{iDn#7gyCRwIR;=%eWSP)RLw*V+6`PlxEvT~O#?scq8jP1Q+fta7 zUa%5-Fy|)~WUWq5m=&whr>{uQ#<)5=T|+l*niWDmFgHNk{cC)&IaBUZf6N$Y0|EmB zLP7&V$8%$p+=wa-m!mD=_B1Kwo%UmtjYKeNn`;#(T}nr5gI(T_YSV@c2yU+R_`sz! zKP1@2bzhs>CumSjZB<9d)z21x_C@P=9q%u0>p1$sH!~tf`93-BrMuTXcIwqrV;|ew z_E_%bMqGklM0=wFoU>EDFY2+w>V?LdSRJZkeQacVbICVe$9E3I-~!F;8;mCS`oW#X zWfZrUoI~5xJ*882pwimuYD=f00#`Sqi|3Z1tf86_@Hd9Zlb(TC|48} zA)u2zr}1a0XCmkmK)Z}TvWwCsJ@+y_^lpQto+V6=JLr~r3P2A)e0q=5-$Kt$rsrOX zo)=$~Jio;?yhwC3L%atA@zFnP+?B+yCE zr=VNvi2$AK=>*-Mg=&k?3) zu|yBOw?_7)O7vU+eKhDrpnF^B`6tt}O`^vE#*v;{iJnoQPXzr<(5d{ze9Z!#{PU$m z&wQrm8;PDQrswYxJ+$8n=^2Z*iBofVJ;U_)fo|!a{h-s_Of=|$OrFZ?8_>yb`Jh|+ z4J7^$+dLupLp((KV$iYt+kA-h|0gfFfzEj!VxlEYB{S89Up$3Txlhjp&_YiHaGR%j{!Gq!mX5NM*$c1)GQH=!W43vDOoCbcZ=CH~~oo@=BkP(WpiFFpv7tvNAB;zViWSp^G(DPU1c zkTnkmNjzw&#bUmAR-9RjHD3lveA&+oGY#SsXp2%P>s^yDcAuSvud(GWolaBV_%;@% zz^CWu=jF%ZfyjUALt5hVxquuzO0~UsSI<9mG;dn`-}>l_Zszyl!96j*{|Po)7;SPjJe8^50pg}Y(-AYdnu z!tFpcu#tu9f%Ix+EelrzF&t8vSl9@}vnW+E3nu_^AF7ICVJ#51C@KvLtAQ9w(IZ(t zy<{Nn|M`7$Fu}v`n}cU({QgO}f8q7ueu3Xd3D1N0eUvb+=l4;fS3)(2KM;sK)4T<} zl1ld<^r|b}fAHzxRzNk8evo(Zpt%6r|3W-I$BAY5Fz!2OKL+v}9m~mRi!lGbD|FDD z2^}=CLGc0n@gs{L#p3UyF!c?_vBAjBjH6>y$qJvKjvrg&|YR_H!(iV4H5r0#-GRdwTyocg)t`}uA>N| zFe;w74uaxZhW|lfR1hs&hwv}>!7_Y__^3qUIt6?1U14K8OYaiwpl~+}FJfU0(xrpk zN_>7%2!Qt2qi`#ezmJ7GS$HA~cd+mmEPR87*RgOH3y%f5TI6>UOON(Lq~me?QF^p5 zA|0>ekHQ`-Oz-1TxRL2w07Mc!hot+neN~aZfn?cJ(`Cc5)0fKLMprD2B2|wOqAd~W zwSp}QlSb)#wT%e#U=8V!)Bz~cNieGRU81bLJZ*F3gK^j=-3(tBG^5bs8M*)fEL+X z)7B4NTw|Zj)>~RxI&MW9Ex)#!N!KoQRslgH2i13u4z>x4rLr`!^dJtAnMno9c>PhLkNpz*0iGDQr!$IqJZlHhc z@6f~woLY*5Lk#1R!q0nRY{DP6yKd5p^~0o(P8;KeXAT%pm;_D2uf<0Zd4hCZordX2 zV38VO5Ow*+yM^ZijBEy`uR#24qEw%e>7(%!9kibm>8po6cDm-%4l&|Stm;K z*K~X@0OuhpW?{x=A)0H;OL;IgiG4?t!g0}w(PlQ6$*yOj5lRgHh|~c4NEh5GviL|$ zAAOaPg?sBOlIZh*KB-N7ME1kJt~AO7mOG^hL0U zQ7pf$$Zv?HVs_5-iJwgBQyv|x{;p*5MHoa|9)0bzy>6GDo6xaX0Pb(M)W?^v`Fk|~ zAA4^D7iE>jk3TcdFf%F)BcP%T_<(4rs3Vc`ngfFdW`!@6xfU}jiiJ7?;%ha$=uldr zk+H42foWmuwpi4%yY4oC8JV?YZjqS_iiTxLiiM@??|Yt?nTG+?_T}^c{C@v^3h#5z zJ@?#m&pG$pm$}cqp7o`3_~?<$gwF9J5oFEi%l@vvFV-p2bH?#x84KuLr9H=%gO}w$$IqCNBFAqL>6sJ) z)DC(iKO5xNUjTJe@kqdg0^m6Cj2Gih;M?#{$TZh7-o>9k%y6@CKLk)o&FT1~hl->> z5;d_e)djCN{ah3xXoonf_`TSfX(x&RZ(X<-NR<+ZT>Vi@@9)%8=sa|(DjqYlY?eq55Y2X)%& zWHUaw*1&w!d5;41QSP}~#B3#=CAyY}v${;eHAZE9!%UYi_EMj#>yuF?%4uNua-{s) ztgNnf(3HoAE12(EG%pS#e$eyHqEJd_fd8}N49Q1Hbr0y1h770kp1-2*sK42x?n>=u zY>zuax{>HuMA+5!NvK7v4MKULPq*_J3R;eMP4R`7;&~$3$S|M z?JWftV#V29D14MzntLC=8{37?xG|V+U-vUE6w1la2kufC0x5S!7lKD&8EzCN!$nT^ z%4d{e@$p_|2)Xm^pV~Nwzi!{Ch+{1JA)4l+5lE-Mf9Iic`u{rw{x8kTf$!_}JLIED z7kxedsdV!7-8z6i3M_`ciJyO0-=^polQAylq4gOVm@dMg5+9v7Ngj)eHr*O!!uMVI z6DJWSlPrdEBoSm1!+c}{Dx!=Wi!p`WJ)2BD%%hFXaV12Kio84WK6jhp8-}|z@zI{x z-I`zT0+a89ufkY^_E{wVjD7Il5cW;&gEt8K;M-jL;B$KHgWoFO2Om34Jrj*C4@wVe z8`VX8DasiiExW*Q0(w2nNBV^Sc$FS1qKz6K+(AaH`)mdyV_EggTN_Nc}2X<~^Q{mdI zq8#jb%+lDwXUHK%;PKXAaDol($0`lSn2-~p!Pw_`C@JJv1#R9uR_OzT;WC>X}Z zepJNnn3UzPRcP{RujbD!Eo)N*xCtAg&ea$FCq4ojSgsGwGF9SRAg<8Bd5YK3AwO0 zvr4lz!m*b5!~(euZz%{lQQ-3luT5+eJysXeVMjFh5ab59Y52j);AV?Yr`6D@;J%_g zf3$J6SM8UqgAHUA(Vko?OGCSBD_nZF`)uNv0j6c#CNj9;_9g6xdU~6}_)pZG=Vu6F7yM67kv=!GJ%cx>^ zH6#=l(GJBLMPjizuG$>5#T-+ORMw(vb?PqSkmNeuX`}DOCUpnrd)lZwYxD(8VdHQc zQx4>Y1Z-HZZHTWaz$V<78X}dj-yB!VCYBW?)Fj1X!)y&}0-wI88E@?81t%Bux^M8Y z2IG6aRQIjP_cZ6bESCN_>agZ;DMlhIRgM&GkG-M84`+ob+6U3Z~Fhq{1&d@9mv@@?;41qHS| z$2eJjGiFa}7qLOusQa21#d)x8)OB{~E;Ol6ru&|;=%^Mbs{-Y=C`?V}n8t=!Z0D@0 zi*cG0nNy{{r<}U;Ejn=3sn=bwK}}St)7XEVPD;GU?5&GwG~e!I6Zf-0d->`VLx4qz zEeb@jojJai;J0rv$5+=4Yj22YXH7@36WJVtjnBPT{}QjPiygW%d|Br@sLC$w2X(wG zI59hGQjV%nMswaJE74L)`6gp=Y{+8K4A;XAun#@Lu@bHiG>vc_*i`N^d%@=%#(vpKBGu9w z4F5yl;8gk?DhNJO8O*FJb-=S(Zs748lYn4zOoD6GYH}GZd8$;+YUB0Xiz)c4%3yeD z@Xv2BmvK(nZP*2Wz3i5dBdvzxm4?PjpH48`3h&K3>Wbj{f{-Q;UyWMO*Gyn3rl+qv zQxH;bHGIPR{1foc*jL^f3<(^l3^`n9Aa{+jl7=5rI9WTKUa2ED0(vQ0X?Lt+4u%dt zSU{W5;WJSY(aSk$*L-^=^;TyTbBk7%IyPXZ@*2&gxxBN5$IH^Jce04C#wKPP!5y{aZP z`CK43#&Qb(3We3Qr6Il%8=o7{e&gHBL5&UZux;$?FEt01n&X}li?LVQ?WU5*HMR2l_m`oamg>$msfB&?7u{_fj_xpgg(3l;3v4mR!3XjU2c%-V zJB{o3D5j|>;V7JE5jmf7eAZx&FEa-@8{)BpyNNzQ2r6UacbVZ2>Fb9Y1yWBHw(uW8#&UptLUrg=2*Xr}xFP7@QgolCuhZjP3a6Pw)S`@Ph zPB`j@*dD^1=nEfps+wFh9A+oq#h|ZQ#_29ubZ6j2(XEu~;7)Plm?{x&Y6teXqwio7 zjLLf<}D5OxJb7<-(<#d@pfuo4(FrTZ$6e*o3AAa%H?W;rim6*$_l) z&9RW1;Nofok5_a%lY*V}=&E8N>fW?J(-&P8-0yh{Ulu$q{Hjau)di_a%V(wtq2D~B zUT~S-6y=ljGngG1o-=6}*U|E#f3c}t@9nQ#pqv@#Fj^yY)_Qw*y-G1~l2-%g?yI2g?v`}7V>F)3)wb9-@-n6_qLZy{6<|{U6|74Wr``8sI)6{ zRa&1zCQe^v+7zoa)~3A>Hog4HKl=H#E-5){Q%CEy#j4aDBkvkGa>hTe-FhG|rr~Yw zNasCSCN7|+d<5h5ryV1Nw3H7o-jmAd{aRK&8$Gqmc=?)t?B66*E+Di%?MT4P`nGHL zw9RYBLmYT2CAbEJ*jwZmc{hS@uBHs?p4=J->7&qXMySW^8?c(gVoV@KB4&g z1*_=~b5hF{1&v$B4^}-vW~}yb&P%5#to~oEfEx;Mpx!wJI#_kT<8lHBH-Q z7=fYMGlCrc=BG@vEL1UR?`oNy+l%xgXT0+FF%N8p$iEL?`ecOl!sEB37H8}X2}@QM zn2yEi-%_1?nhB`8vtq^2{WFytztk2+ZFxx*_Pll2$kIQ0|2?9hX=BHFqkE~e8LNEgt=EV_$MH3k)5ru&}5V8cnns<%xv*k}V924khV zj_Q-%_~JFIGQd_axEY_pwgw+a3O?961TzB6O)y-?OS8p*KBx_|gI2?1=yv%z0?kLP zUcp!DCzK{fG$lt=*G;%mA74@wx20hMJZd%EIJ_Jign=LL4>3fX;C7D<3Dt0n4HMwc z;dSvL6dchmHeqi$m`M!{$O;W;W{9y9Nrt0V!(*Yr=g@gsy@sKiiKL0cMlYWR|-VS=pmguNBL6So@BKca&7?LZZjmRYS~` zWd3s;HW8lcdc?I*kk`BjulW^Tle#u$1UlAMXx37PuE8WudUs@C{)Nd1x_ivj`qChV zi1?iDqLccv&KqlRr&W_*?Z~$k;rltvR%nu<)$G<3Yu^hsPkYikbXe$&yYFhf^4N=? zoz7o#WxDyJ6{{~lmxqswf2iFN{?{!_*FIqQ&GQ+DYr1ZG^wZO)@QGpBs4sHYH7Ab0 z<%#!mLWbS_{)5Yu#T!(=VZ1kGF~!`>eA9a4#<~{&G$Uhzx5THo^Fv1z=ci(ew;fT7 zCQp}b*H$v#Qz?}`BOdh$GcZ*V_#_|4_re+b6=7vcV*oi_`Y`x=JDXzkvP1|ADfj|- z)>CyIGWu;BwQ;w*`I})=$r`(}2sN z_bxQrr}}ZidVYLG;;RQO+RfpC3`bn&o2utLRmTlZvrAGqwCCX>#kg%2UJ6XJ;_U28 z>Y{n!3ME7JtY+7Z9;;Kom0G9}8JKh5CkAhujDg?pjSV~z)=w=mke>a(LgN-00~cTa z%2Fa@;A-YObxkq`79ajoQPOxf1G|5DN!>6nyiWL~$C*(y3;9m;se{l`uRz9j#Ym;+Iz!R zRX<^M@AAO(vcin;kTn0heI9#$gu8m=z+(sedoOXrfWW1ooGZHlF~VBt7=fSz|Oy>^jEiTATOY+7dgLUB%ez1QfKZlA4bTh8DAoxA4mn z;O1RTIxe3#Cqba51x2P-FZ|>kN$ZkYu!V2KIoY@2$y=C!l%WB03Ib**1|<(H+nF>o zU}sXl0E;O$eWA*(9l@A`Gc9WG3!28^-mA7KhR$dl&OL5C`kmTl3w_*vr7r#5z|y)+ zR}>dC=HQi_CRjl1svBMc5ap>U2r3g_cNGjv5wh=7XLGLXib5g#LX$ecRn8m%@gwze zi-33s7PQ22a!s0{0^(ssaF&2LQc*Z^|&IW zRD883N0f`NAX*{5mKBcP<;JZNUw0_S?3G>>!%PAL1Jw(-=+~NR>q#PtBelt=`oDF5 z;4daVwd}Kl-)~sB{@}hrKQzCboBe6rTW5nmzwMcEj5A-e;Le1755C@9sLcM=cyq9o zQ!9zx=DXF|xAe;kR8**R_s?A(vuNsHS}Wf4aIbbIw@r1hf%gXM zth4iDN@jjBaG?qWlb;^QtgEnX+LZjlu(WAR_VbZtb%mC_W3<}M%GY1zxJd6qdkgK= zF~&FgE5kn2+Q)rY99PBl>z9}`G47$;r|#UT3a?TBy}jgec-rttLr8$~7u9p;rfah+ zn*36WW<(!b$k{VjsuIsl4AQ^c@J&JLgleuRq`uro`*CY0b1>UfuDfIR?%P)m3RYLN?&^{yn5z6(6_IoI6V`QeQzksO|EKe-=Y>po|MEjq7PIwvG0&aJ zjGObDw;X3rXU5*+{c%IwlfS!=lIk@>m1cRhIWwA@;b0GD|MrUSpvV%FU*HFCt*x>o zskS-eEXudO+xYd5nq(T5SH1kv{uz!>-26Vh{Og2)vlRYGeseW5oN?F8UIW5PRi7yQ zO|f%SntlU(dK$HB?wGxxJY?{`8IiZV|KmotsEomvUQ$l|aP-6(zMJQc+Wu_j)%w#* z*Oxy8AssL#&PWRg2~B&Vp=scRi4&b8ZrPUfn-d|!kIs8BW881lEpO4C z?-+2N(|u*sz0E`3PS17me)4SSO;xAL@Lttmgi8p>+rriRcFatm#lM zw-!dT3gHdT9at1N*?sOn*pRxDkfmzlF-+47~f6?yp7ilfsE zW-nbv2N;+qn8%Lg<|HR2;d^v#uo| zs8?SfA9<(z^a2z6-#EL#3VWFYd+}G9`7sF%c~pP!@+v+4)>wMKb>N@udzGW-Cp8Z& zQua$SIydgne#o6GNh&Dj0$b|uR^7jUb+cV-P;$GH-pY?jE({-UKVPjF=&drnmc)%v zPg53J^uC+@yeF%|73w#|EfL`Ui`X z7APk2-&6l$(>u*?dCz!j+0c-MpGVE8`$J~MmSykTz5cO1^wzh=H4L%WZC7|Jjm=Rd z1^bo_ZQ_`sapqwvOLeA&UG{lYO~G5#2=Q1s$PS^uYAP>Rn!`i~E4bQm5%zE2dXPUp zO_XhE76~M_xOzROs`u*LZJE9)Na^LhcxW*fQ&2rZz0t4G(lH=*;9);)*)VNRlKFd+ zsc=C1opogp>cGImQF^mYX}!a{|43C`%MfQ+`AAN;PL%BIqU>+D-Ksn1Gykx%VS!q^ zrN}hRdy7g{=M339#%ZVRf6Om7IZ@|n9m|H6Wq%%JJor|oy>P|*rp(W`7og7O=a&J8 z9xI36R1r$HLSy>q5JkmVjLKC!XRwSAZGlbk=;-oot(#hyq6gHW+Qw*oTj8d21vb@? zrsoSs4_&T(!B{?0uO4%-jxFYj?18jJ?-y#~VJdjgL+-{pX$)=UguPe(D#ax)vWXGe zKWmb?`KFBiFNY&9*{GCP6g|%;?bkw{%l|^2@8o&XGy1>kQ4S++vE$3334x2Zu>x=D z|F~5f50eYks%!23bpxN>Z8vT5DM=2s3vH+iZOF)}`N@vJdn%*;#inqY%g|%xTy_5D zU*JXH|3Ao!SjTR>7(W}xvhW8MN13*xAel`XpVb(moocIFbceThxT?+`JTI(8<6S~J zp=t^B+_X>9(Mr^j=3sPYO0n@9pVV8=*(Y`B*37| z%^$tTpQ-X9j1J$acSIsD(fSC=Abq5WacLGu;S~JQ`4{65eu|Ll@ioF}2#sX;;zM}! zOoY*4yB~8NjdeCcT7G6Y+&>SvH{!`KRI)3AYr}C*JK+9^-vzjz489X^AH*{Nr+gCr z?*Si<_#=RGBAi}61e|2C8E|4t!fzJw%RKOZ06Y|UHGqeS_(X^H8dLlez(>g7ae$9R z{4(I9Wbh2YMWqI+10PkN{x1Xn@kbVo6Lu0*h55*#$P08VFW#N&_T&EsQS+z5CO;&RKZ$>W7XfYr?63Hv?~Ek;HvpfA_&4~YbP3)DIPG^1 zR>;o!06#wgPG|i@0Zx1oJ{E15Ko||#$6bJvJP1zT=ZyiJ>iH1h68{8G5%E_8F3F9~ z@OcdIF~D~KK31ed^!Ec!a(^9g(lcK!=$r(6FyfyAE}cn2^t%A3wr~z`$!>|hH;k3) z^-mc-!AAg2`Tf!MqPiy z5BN5~Y2Wb_z$JSlJvv4F;Yu zO?H0)aB2sDdVaI)jcfRmmjc#{af+XH@9glBrdmH4=X{0=Q2 zM@V!~?r6Zt&UXPW`6ZIuJ%AG*bk>y1o&hffob2@rIUF`3JyIV)A>m1n1kV6`oCHKD z!7Bl$@}))Dew!u(f?1ue=a}wq5YFwrAOkkO7sh!a7you|Gwz-#ZL@m z-<#a}g8y7P|0(>w==25uZ}Z<*xqa!YFZ`d&=YNV$Uwm#y`wx|j4WVR*|0#H1<@N<% z2!GLAdw&UVxLW?9vy#rkA7Tt@qj4jD^`>zDMtJx8TE)%eZUoQ!{P>ja_cZXJ-fn#0 z6MDONRV-z^Z1ej~;7S|te+DXT6}}1dZd-?W{O&azKamIaR>$#CJ+76M2=usSmrsyg zd!lgP=po|vyzNu25HRJU+1n=oGWy}TKUP>BlL3VrSZw$)fx;afle+`O`*6Ag#oKeb0|m^9#$KUhTp+pP1c0*60(B2)dY~qT~8R?e=w+Ab#0(*Z-yC z#Y96HzwAG6Ktit}Sdj4E&4i?6-iG=pT{0n@dnVdYABd6(^^xqhpuP}XI(o1#jBfVR z2U1V-=>yTjdiucX#d!L_>~1@PXl2GDT&s1x;gIk>a3m*wx4j6KIzyJrbBrXSi`cHO z_3?dL-{$l|~%db2$_db9Zuq2!Ao9FR3 znyt4nN3%vfj|%phcRWtY>#d|oo?u}hgQM_z!;bL;3)ndJt~cz7#y;SZ z8FX)T<0nRW;tS*__93N-y^9IMNl!ZB(6L8lr6Fau!2eB-DEpw^hj1qLA)Tl`q(dkF zb(f|fg{U6Vkw%w2xxfD4Ql#%OICNQ8-$!%uY$hvk|B9%zyhFL#dqOc){`kRv^1S1g9qp ze^_qsk)8q|J+%Ic2P@9qpFA<0ejmWoBb~lyrl+s;vKyrD64Pm26;BWPwKvG$c!T`M z#dH&hWlUyiHKU^jwo#coxaSg&0#7XW56X%NYIbu8&A>pS8VWJV?ohT;) zp%>ucLYQbkh^ov86vD&+gm(Z>i;(E6gfNkWLhw$=hv;?)VPY-98Gu)dVHHBE&klqn zk8&YQEEC}+2&taMLYTM#A(gX62or4xiGH>aCRz{@-*XYNfX@-aM3l+%ohpQhCWLnZ zFIo%!0{T6c50gYVeoNxxSj*QLA*>jL z9KtAsdW2&UVlzAa#-Jmn@Ee-09rButum#~Hgv|(VL)e56JnCu@f+t-yLj0DYt3n8Q z>B>cTDZ&Yemmq|^bZZb|Es#HdbUeZ=#347`ToIm*FcR@pgvkhF5PBmtB1D~a5eV^H z9e*w((GtA+#YR z`dJ7`4;F-Al|R3f&M{3#9KUVy=aKUAM?48}4oLW4P5)5XBIHv$#jrvQ?P6#VLz5VC zVu*mxuT;*Nt5l}WP%6t6I}}P~v7!Y3uGyeeX4{m?4n-%ylqE`~a+k6S|CTFv;NJtv zM*MqJ*^GZXm0kF^m@Q$I$}+Yb|L$U|@NX@jf4fprN@Va zA&Ymx&gi^P8$xr5E8!R*MA}*Bi$yZ+r@P95A?){aq=hh3=-qTV*E=n zUM9vji~Q^o<4!TXR*YN3^hPm0PfVBm>`AbH$5`9^`jp!q;L_T_+r8x39#r(-)dVeu}fSBGWrXLmQ z`-$n>#rho))2E2>FU0ssk-x9S_&SQC{E=e*5n}pfG5vk9{BdIXIU(4g{K z0Hfzkq7Mfqorks)^^nI&&J=%8q_>awM|^`Aw}|o0V*F{)B>Gu^(?fe}ba0%~`DnCv zMjnr$I2^81%zv5eMHc@Ya2*_`JxQSV6{XAKxs;Ax<`Xg9Kyh?XEn<8y@O@Dysl6b| z?~{@2dj!&G-wgdGPY?PIKE6SW-z%n5yQe2sq?ZafJ^w(QXiCp~yvXCZ9&zgT}G4(;TpBjFj>pF_CuT)!4v ze|FSM2AZe#_49%U=e@0^_fm^q(Qa@0C*xko zL=iW2)NPOT8nLD~X(6;ubW=GbE8#PUQtE99NfM36gi`{$mK*p9wFH$dAxR(?B0s~H zpgf}IVk6VXqNjTi^}#+-q-ynv(S7B#FFMlta$o7vLUmv1ZdOUYeKO-(r@k)Mzwx6^ zU;Op5(tJHsNvgzV+=Ki{ymSh3Z%ZotImx{xAOj8zrbCjur;6)EeI>Y$Pwq7v4pH`? zC#>wa4_D^1d06lGC^}xbSAu;dxDQ_Logf{=+?}Af(AHN1;E)F$z}!1Q;SA=9E`;t4 zXndau?z5Y_vm>o+@x@N0bDX=Ui|o1*WNmo-t)g4&_Ja;jhz@k_jSigvjp|M8nJ((v zmC&2h887DUL0qf^PK74obU1YP!bReJCh+-;ePp9kq={@_>F$JX>te3+rDHhvBb+8J z#D#a^U+H}5i4$*)j*h1E-p`kwjZ2y`Gh!CpHhIxRYm9YKbkwcZ*oDUEMbXAvZ(F>0 zVdmt8v5OaohfHIP(%U)H7L3gp4u5!PKVUP)Dt$f1X~HPQPI>U?#W+RjkM@<)bF=46 zt40X;M307ArPy@aL}RcX=S(kIxG*Dg&B9DuUPhjEfv{pK`Fs(6e*&yCUj zEkpVxDMo;M(u)Zf;9@dUi$x4^Xvims!)g~%oXbl;BrRVeLOki&M0yiM*>-@Q{1Jzl zE)eJ~mJ<{fRb9zU1?opniDk8#$jzesXfcN9 z*_SD3eWAxAJI9%RpX+gs^IRHWNScV6l>(bWy3anUG#fA-}nNO80-{^`%SWJn5O};|M&GKAgz{z4Y9^ z^l|-j#M4E3PFARJ6X<#RD4|5*-y5AHuAd^%xlhbg3O|2+dV;;seb-BIQ=Vsi7mM_y z`koQ{4H-`!_P6l5=ZM=xdKHpC1wGQoT*yyURX39vi8P@A>ZRQ0i0fA=7+RYkY-a8~iGzb&6+mGdMR~o<~ZT&KOr9{Uj@#2Yv~8TEsKKpTlQJ(%Iw! zT);v70|w!&YpFcKkE*BjrhO1-V8fS z-h;A;e!%}1WeWV8E)Vx&_7&i>Wl8tM&(-yB@43qIbtpxAE1FYjs8px*byb(HT^oXP zeQAqYKlm{8z!|drzMp!N_jQ}2}U~uNXmbVAFe(0Qf;!U9Qe;?l@ zFX;?_sSZ@N%A0DB{}eR>LGuLW=k(;{gXcMS3@|Y3#si$ zak=jL@?jEvR@5cYk=hoe^~0SASr0GmvOGMxOX64FR;6|(@!!)22sT4>d*erf%l+aY z1v5#i1JwzB?Fi+?$aofH%G(O%lkAOfSP`cM{#)XSd?+tdv*M%g?^mL2qV2E89TI4t zB#&#pjLV-(v`#JT-o|;pd9dL>GsZH3BgK$0){YMfx%O};(*Siw(!e?RWY5Pfx5#(v14dz~){ z_gU~`1>%8t4M3S>Z>=7En0yRCxIchTsSh2ZV4{1=Lv_LL!@NBYcF`5?5gG2ye0Qgk zKX$_9f90~2>{Y6_*`;T}KB>-wq3b(9zqhi9KjQO#rJxJB{Sf{s@vaj|AA~RIiqcQA zLquOLgcZ<9H;_60o4Aa{8D@6 z81Cq`2IWUrR(Rpg7d3D-uq`dxQ$P5h{A?YB@H;_p#$ z*_|W{d07%ns;9gyk({LTE}6VY2B&(l+ZHyEm$6$Pf{w8HVp8W2!6(V-6COV<68#lF zUPAvQ=|f(A3(M{ye0lzp>@dDOIgec!0$ZHGM9hy z7xEimbDiu^=wv9`sG(aqKgwhwr*~O|2O@8)D2tzXy$)2i2L9hPc zZ@PR+Y^zjHN!Oq8wl3(IczzN^`F>NPN%YW% z9HD-=#pUmX{zZ~K>BjS(E69_VZO^eF>yjn;vYvA4$)}`iPuZPBxztCsiG7E}voJ;z zbmO*{?(;#E8-TG6bgqD1bRQSeonoEv%W|DdJP^;shi6~SdC~ly+M-Zyg^J=rpC;Ik zP%qM9K5*|B@q5-^$RpK7YRhupNqL9|>aPVE4B`8})1u!J$`gE}RR7Va?9hs@hw3lsi*zHk7fwlA zEz$o;^K5ZVN$|yFGlCziz!=eA%hY7`7si+T9cYRvpJ0hG;8{&iIM&U-%p8r~q`tsaj%d@8-aKvOdcK{X$H1?9-Wy2%p%r#b`jXp$ zq-RfiEppka(1!Dr$^3YRkoRXn@e}_SMqr?%5~Y7XTFyp6L~)3(e4Mk#W+Bz zHDQ~X{fL~Fi5dQhJWl*Gc4lj+9zJXUKeh{C@J?lRzZX!blLfS?49j3K943VJlgw6Y zh(JSrH(+-f%&UFnw;-=P-!+y+pP)sb&<|qQ+u?BL@}&tv8Q=@ zkMyxZT;7M!8aK&P;)i_L5AnU=EtJOJA>HtWy7oS%@uVx&ubp+#cl#I(e2i=k(f+Xl zenn_!B*RO8Q}S)iA99prNV3Bm5WZyyd?(H8q`qF@r$uZtEg1I_FH$~`XHZS5q%E%n4jZU$p2Wuv*>?#-y-(~*YhEAJn|V=R;V$r(7;}L z`i_h68)PHWcv5IPLVd4@avsLpH;o0l&x_?_ez|_guH1d3AX9l;mTX*tN#hc^z6Jea z-CoxIzVBlWFU^lhr{wofiv77npT-izANCX1ToK0%^0H_SBIjQkdkFqfng{l*Kgs8s z=nr{&f6&cW z6DIkK?mDOWnS0IP4UaW)xovyu1@?XUluIu{y(-`voivsaeQ1C9&kFcG(v6^7VQqr& z?C=SMCyk-qG86h1vf-=id!Ji$Z};8DANHN_8KCd-87N=w3%cj+ecU0(zt%u=P!@ho z1^BRR_T zCvUG(8{+#Z=tjhK+rDQ%{yFvIZrhjE5Qp%#@9y7){$UXO9<7@RKEl;s_vptZ-HCmO z%g(1kc2gn46!>2=)^)_+FnSsL3-xu|w$wK}X>Kg*o5RGu`DWx{pO^eEkNHoH5Zb`v{Q9Fza2`c8Qrq_H)% zWx4H9-J~`y*@)b>u|EuJ_Dqx>^^@l#94Vite_>s}4+%C$zbi^|pfQA;FMqU)Tz>69 zvQM|n2$#yB-#B{QmoB^O{NKS*W<_*)@+8%b%9ZX$r@Bk!NHD2RNDH|3tJezc4EtNi zLO9@+LjI&z+D#TiVA^&`GUT5b_!snqlsR~jHk~mRF~aA`MufKT@J})Rr3jz011~OW z)$)`^dCGA_TpY9`B5g)v=qq0$z*D17LtWHpKaeX=j67uqA}LayQh5q}6BsU~G|E%x z>pvH@c0{s(CO!4y%g+k2i)#Fm6)ToxXO3UGbkVp+GS}LyOLLfoIhl+{60;$F1GC{y z{LS9rkv3k;HeUD+VO*cd!Z9TH9eSjR{$uiEOjC?}q>rx#`0dMFmNnOGU6_@*NIZ2Y z_d#Zw6=zs2;__B-OEPi5KcC8hjdXC&fwDV2Cv(|~{7hFGYG%z_x?=g9rOPro8*RNK z^xnS|5lXk(Y-x*djlj~pwf8U0%bJ>#vmyr{FMt;k6}NE3s_aGF@)dd9f=n)Zg>@0w zT8!HVI3VESfu+mGb3&FIl|y;O3VM{oli`c7E?k(Io4a&Dc4j0ul~~HoTn5&1xn)ZM zUcQ9OB<{F~akoYrC&r8(&)vT?JDbl5@hyA=@_Hn5IZpQyBsTuK^JTu3dmzlJD z(QIpeCRii3X0KY1x7L;!CzoR!Un*pB?{X_x6SN{^Cb^TC#>+I43u+RaqaCi4!KI3^ zzv%4)EI}0@Mhc#`BFB9=)*S1SIM??t6p@&@dxfhI+HuG&&E;^YRL;`Od}wGjs>0=2 zm)uAx%a$%78Hjq}tuSrz-IqV?p+cg^y$`U7imK%j6*DCr&ut zTzJ#S&Rk+$xRzV7JTv$DI{250&xm4Xui_15@v7|XwXhAo4rnb|yxjX@gl@2(Vx+s~ zd4mm$xvqIE!r^RrnPeGqtCh?nOA?Gs7VefPG#s%da(UDgdAYcZ;Ck)xCJXLMBO({G zW+zGJ5h=8qxEtAmkW(@RnIB0fHzIGd?sgzBE0x4at%k32u3+>GUu$NLDXg2}CtDXj zvdT7f&BE+eFgCu3u*gx7cSqirA!HC6LywFigA%fYhLHCoa<{?j*}P)a@;qkFN}lu$ zu%y0*Y1Fu0`Io`nqdn5`duzAHGe17n?e=)4-zfjTn;z1wbnNf-s2|Q$==OM~cS}UX zGu`u(8P9Z;2LaFY8ek1;Glzt=r#Lrti zxL_Er2c!oey$3`F;AHQ8yk0lIr`&qbz#vfmnB=(sVi4m zv*)bfzfWa^@2e;s1CC|ZJRmGzn#b_p3^8z&{Fr1K#-Vr97f#k}i~x8HK8Fa7!{{-4 z=|X#i47+m3NPbv~JG9 zm04&HeI$0*n@qN1GZHi@2n$-~htSmS$+hsd>z-@mO7je+$Ml!!bxO)~JCcBmnjbXA zG2(bJLsSSuFV`{l-u>wRp#PJ=btIrgnjU|&rq*p5gEmMGobM|cC1Z* zq8~Ed8pY(xA*LySP$F=cWHAIL#UBD(mVc#~A2dXY4*`+M7m!U;fGm=JXnjV;?97GW zB=J$cT)vciS3c7eG@PSbQ zG1|a8`$ugnNi7ZF%+pGCGee`2RcX4?t>FjKlV%odX)QYaq$+KidL|m#n-Eq|+o&$$ zOHt1FXxRmZ6GitG^DK{Wmtkr5(S{yl9>^iL@&*GRA=&)Iks&N|X3xdy78koZ1 zL)MTpl|Js9hbw&!D?&i3QDFqKV{L@SZgZ^8VslF!wk#sGW{o4yrdb!ES({aqV{znV zY3$$=*AxdHZw&?~ZJ~x^m4;(X$cfP4;{_pyl0uGE7@9+ak5&2r;drGFU29xtVCsWU zRQepL3qEY^ga6fQ9Fx)=>#{U!h=0B!GS2zz$3qRrua~{tkr$&`9iai+kAmSfjB zuB_7J8XY;Mj!7u131aVHxb{#(TPrjba?Ap~gxFU$I-rHsHl%7%k+m_7oC?PzSO)izC$zMZNmh^7-DefRsV>_~)zig#9jV0`0Yj9gq$RVqt zy&(8PrB7RHFp6lbG&ENFG=>JB3#IpCmXMQ4A?<>ZR0P)-gfzMBgmdJTJ8XJQeuQHZ z#FeVa&nj98YlIcKMGftrfyx-(wnNDXdHzAl;5J=Sy-~AP>mX8g$LdrK$s9tC(B!8& z@|pIekgqBY_Bt}5!$~3amBDBWEv>=OU3;aWtkKe>GICG;c{^XN)vPY3(${1a_jXXv!WZql#cfwJS0i3Ag%PI&y5ekPRc?k=fq_qcTb5APtMLuxj z3#tp2KTVc3oay&JhsHbP|2ee(qC->rF#}A?jDCu_%)>>MDyMQz(3Yvp;EH4R$%n}d zeepBBpHVTWLSZ#+X^3wuN+@fHX=3Bs%t4I}@kfi|OU<#R=Acq@T(db2?=^J^2Z|D! z%t7UBLQPV9F`HPyT6C>W-9_A=nWQ^w^ljyI=hAh{Ount9x^qqHQ+nMwq%!5^nCgav zGS*aWjy>FvP@_m_G{@^+q+*#fKsNfGX7t~7=$2V@7xcPsK#K7_U#k1o zO_uZWCu%3cs(Toix3>=#RQ zU$*E@n{>-6h~e`_UsR-{N&Ssp*J;<;V~bg2k7bI9bJU`kO>mmyY8zsE2y>!ur(Soe znyP=HL)V$EJ7w}c4+(I(OBUUkblrs}HOl%CVh>?diN!?;JIt}r%N91_C~MSRHtNoG z=)NVTpd!9srt3PJ)X3Fp^1a0Qo;LbAhixfJXk!za8se+#hVj~rX*9<-vmuDqnqwh1 zytFsO)UZK&3vS<1bUTxhSlf_LToemY_on@szOaF1M&I)mzAUHiJgV%{dv!sU((;*Q z@`p038>Uwuh}mDnTLPO{ZN9yxAYs2bv6hW3V`FO+vAc>Acj4U}bl9BG$R_f35>#V` zea5*>rL9zVQLj7c)SYfpLt2Lyj>tJKI zJK4njWK<*#*lkTwVv7P%=qSEcFgCMjd+n?VF6b~CujnOuNbeHd1sXz!?hIcRY#vp1 z={+d#%w@7SMXCLXK*#D*8da{W(BwBdCSkl(2cGZlaEz_C7fanJ+cGRg)M%iy|Hd$DkI;dnX^Pz>U z?B^VcyCN{RrQg*33oXgqj6n6ya!z%yxCQ?<7F+P|d&Qx~ZT-ylaQ|Y{FFC{es@C*T z-kNPQ0s}|>(rCCV%4&OIQK1c~niupb{>r8G+`xBKp)ZWmZkuSWc=_Q%?k<1TdoOUQ zpB5)YRrf0_yDKpKFrx3Ml8%h>-ey%ifqDB1%;BTLQu}j@HmaTt-&Kr%P8C;{2Kdd` zwq-zZ_+9$)!v;klcG~qf-eGThhY2$=Sx$o@V*V|64IDY+pVwZD{4)B8D%wAOYU;u( z{uZvDv9sEUBtP#8uYMEl!`j|u)|GN>M6%kuqTfOlb1yewtt>ye}OB zOLA08F5hz05R+c0>gN}ZucRwlP5ozWWyaq9ERV9fFs19o#$Ouh9{8u%)=}Y{W#!X+ z;ZtTQKAKWl?<~NQM7VwPuXc^zS^VC$t^G@Y_VVM&fKJdJOgj=Vv%c+Gy)yO4@Yrj` zSVdtBF{YgK9-G)Uhd@z&UZetNEA_{&W=1YW@fgbz?Rm2L?%O^sU21gAL^W#RXzo3^D4HQjX~ zlSxc_MiDS_wz{dTCeUG zEoOfG-Ybf-QL*Z#7j^}jmd#qo{N=qZihx@lP&e(EG0e0oX9@E~+D1j$ExXlCzsVkI zdNjw%Tupmb5zrW@)f-}LjKb&86N)+QVZ8dTz4%k}=;UDww=fmv;)r;4>CW(BrY%tq zGqKZOQm95hs4m@Q&|0zQBVy+6fI!ppISZN0Lr>@zGmOQ5<@9Zew$c7-ebs?L)6N{{ zMzj`g>h2?pm|q`K_ydI-wC9kWJuqf0t1JEOM5Wy_D0I8mwtI_NP04-1I!ODigIcEk zwmb9zVb6O#_@}H-wWfjVg1L+zQfH_1d-mG3$k0;Nq-l)4I!yJ3ss2#K`-NU%_o)U9 zZk*dMQvW&#mOa<%e4RaTF5G2`89PJ5lIsiDw!J#dZ-Tk3%%(TbF=@X|ny?duO5gOG zKO!3jzVxMK8>_3&F_XUnwCN9FbD29@`zw}zrdS^Rnif}y{Bamlkvr04I{PF62WV?Q z`qM1?FY=wr$q(P}ZPV!HRy&_MF{tv>Nl)Hi^3eOb#+TM+wy&}T{e7(Y_pGMhU(3|g&U8l2jj`F)PY-0~ zRC}wR53VTMNT^BE=c;Y*>zeA5JLlyyhT9_9!c0xOHFVv$c)LApdnM>b@ALjkw4vh3 zk?m85yx(-EX4;{-#Si@{YsA@M+6Weg*?ua(6bc!aZcZ7T{AmHZuVm3kL@fm~j=Uaa zSd(v`wf!U-$l%DPLs5YVHv7EoNx?$>C!!a!7LRrYBU8}d_fA9AbX>J* z@_@>(or>jUZ|GZehL&mZ1NMF6RH%-=;f-j;i_>D53Oz_LcO(z^2zaWLnm{B}+wDO^ z$9dJVn#j4_E@)u%xC2L6jb1-{-n=cKo7H5u|7LqAiVS#@vNukh{jQdIbzc7mHM+Kw z)9y#)(DZo&R>H-w2i`Qm18E0G-WPe{;b+m94b1D_JG|DazE2QLddgfw(&ZtG!on<< zeRhV1rI_A<2huU2`xZUp+`2zX6>qbDs2ibWc8}!VX{x$mk*&PGkHtNn8eLFc{44%KNKIsi2 zS(O2{g2Bz8+!}l!DfnRP5G;gZNftv9yfj-3X9}>!7<|0d@EDe-_@z-=hP8SHU#Xu^ znjF!T98q02;YxjcNm1OEh6$KGRbv>BNgRtYb{s$5!_;zud-m6mP>p$C!-P_dz}eU< z^$D0~?P3%5W))?0dCk&#&C_~K>e`sGMzb>Av9fC;79njIvthtybgZ?o7$W9YX)s{J zI|g7G7#3pi*0pghMrEm*HFGCkb#bK#1c&>JVyYTqt|(DfVsXQhM48)|Ua>LVg5ox= z)@xP;Ix@-~>+D#m!}t@!GYtlxIWdlPD7REI3Cn9;UO5=TaX{0oD|O`A9fLlea78(~ zSUIj(8Dy8$9TOr9nD?5fBJ(1==2!Gq5gWfEZ7EtQP{Sfymsfr&zch_i$8yJ@B~X)T zz;6418mAh%JJ0F9GV0#OtOt_?lka85_q0=e%B94P0hn>qJcys0kF9dckdajoqid{^ zRX7GMBjWulO#>?B#4#Jy>n<97K?+lhY|KDyx=T(SW~SLKy7L_a+Gu8~ds`@!@f|xX z-=bNcrJ0PSbu5{3Sfq8>($|?vO1Y>-yBhU72iCXc4f^o>55IhHx#Qj6M+aQZe?BAa zhaDmL&%B>@^8NDd&%e{U_VPP3HfMai`oY`Bzr7`G>5;@&9ABKu*;X6*Wo2v4hUt&L z|Nd)}6egTr#pIhTCVj*H@Fd|95tH8&s@50%GBt}d2cw$j_^J4xZke{qRK01;%zRU| zCA#SDkrMLQCsm=lfV@k0FzUDqx%j12eF`CmTO(OF@;l6vDl1{P`5%mGb76=3RHf=u z34QI#1oJ&E+Aa1cRh5K3C+LpoE*E;64(Kxo{kxSjisrh|uK>N3(2s`gxUF=M37sVd zAWVEk^e?L`_inQ=c8WGDzDvv3<~^%N&EZm*-+HBF;dRXf=f2SSPrS*#F!X($x_Nq` zg8x;=qA8nnJoM;Y$@u9CSRi&}-#JUk@4^EG;`ydOHv|`c5sq&>Oh~R~|1=!gKXYe4 zntVL;xGVdNkyRA~G3J_3_wJ^Sk)PqIy(A(>?6w z-zfI03u@GZlN#3e)az3J{`AbiLu30XgUr(3pkzb%30;JaeI!7A(OvDlCl#x; zkI6VTu#fm|I^jkrdj<%PyAi5JvA+#ace)X3wgaI;LSUZppGRs+eX(O-Xj{^PZ|sYs ztG~B&$P}@3n9ZS&>z5>KH8^LVew&4Tgg={?gwU*b=Ml@V>q{R>GxC~Z&e`vt)S^qu z^D7i;+pKtMnNw}A9^n z^?lYX8NwbQq{|Qv#a7R=u8|@91O$r=VR>Bj&em7lmhk2(XK?*lx4ljOrbYLVweC)c?vYc(Vx9AFFIsf=rwdN1T&inlY<)9e_1Ux-I z@SiRdOiqRgM#2Ouq5}5L4LmotpPIK#dvH@o|Kp*xcS{X$|E3CRK`n6y-rZC^0PS^F zTHUdYNeA2#D%cGPeeIUe$vf-5+Gv#_y!Wy*Sb5HkkaG_Z3SE6UZ{*Co?*>Qe99m{_~9?(J>({*ElCS@Gsx+m-s#1(Kvnb9RO$Ws#(I|IV_p zp<;ns3IDtglFD~0;hWbiPc=AY2q*7v(N)S2-mJDfRd17-@xi$*x;h!c)qPI2lmDGv z30|t%c}wcXIFb&!1+=jS0{X^X|F4$T#W}1pgb&_?fWCDjtXo$1!p6|I-4vet0|X>P z=)bac@DXdpKDQCpjyHU5JUUnEJg&S2mpy;X%+wV#lSW_)cVP1~K8oRfk7$a&FZ{c% z=&6x)f~%@#FRaHB^A~Bj@zDisuXkNQ6bc3YimVN5RO?nM%H}2EcbsG!* z>K5$fubYAkyWEmL_L*YoM#W#Zae`sBv~QYP*fHyg*V#j#w?65peAk_`?%Sqd7`u(hKpI9Z0!|5WJUudH1%on1)a-Y~Y`FX`;)m({6y%b1zk&ju!w&YE?l zK6Rs@vw+VVR{65!Zk;8cuZ%CgDCx|inRBw?IbX93;pBIf@v2TYLfMx^6V5dl7pI|f zf|lWGmp^9u(aOCc^@LrQty{SR)DwR7SnWTp5pTF%?A|GPj*8peZvM#QjH5KLDH7)z zU{=7`gVV?OrH=RJwxdf{5%HIjBK=gqoF4F-qB#a&oU?arHFa33e8X?czoS6S(CDGP1sZzMG<_T94bxdY4+w}PjYLBWqn3T{>ujJ8%D z;71HX8+?6sSke>x-3!E$Mbr6;s>qKe6DFR~q2K$22A2hLf_ti*mWr2)clvlp#^7Q#1RL^!ZVAXae00HH#L@Z+y6UfToD$Taz?KQtNY z*5qB0e#O6>UKZT+NB_UH__4p1MmW`M*rUp&8$(?Ug}eB~)I!tjCz8MOf2ywX19icb zTZR=C{mMrSZ^5oX^i*y?JAbH5~r>`VDq>7X%V4N2y|u-*2fNhjqx|j z%Gmb4a_bXyA4-j}V)>I(3)5$#F&2JM@59vHYgfPq@iZ$gFPYij?sSbLY;#8znnCmE z7~Yx1SLBbYSRJ?~vY(%1vTqOe5ApuPbE^I#Gup+Q2l%RwPgi;oGccIEx8C{t0P_%(pz)3HRKbGs zO&8|RkDYk#0hd>+C>#IULxD3Q`vr(h=;sa@65{>G=iCx`ZS!vjtN-cl_u7uVbDOSV zv&2L-JLde!`l6&iY%?kBUWsfgt02>*wzhbG?Ln)3UwFF2#={TIA2YG> z0lx^*e^;bW7#|;)HP+3>YeS%ziQ8SWX#ZmK*g@*=-E1tn09iD+WKqq2b@}8WN77-p zGyLe$l~)@qi`{J8_jc_%t4YSj$&C5ej5}Ox9DcmAHQ>j{m8(t5vgSA2?sGS+)Q@U6 zEa-T{U4cJm&9_Xv;+7+~HhTQNK+`x^1=6PvyFa@4UYDS`>gd;g71${WnmKW>xvc-r z?X~e0-$z#^2Ifm+Ab75lVa=nxzj{veTuxoY9X@-9Y#MlHp>V~7MHBFf`mO#&>!m4A zH9P%Yc0CPETnMkJ^9MInNeIpjzZ`sT14}vOUIo>zZcEIi;2i&qM%wsNb-l&mLkFMnuSe zF~*esnP%^H;NUUQKlacgF+p207zKxjh_i0V!j}e6T% zZrU`=#DA7A;!HcCXFtYl49Q~M=X^iS(B;K=yFSP>hkri#Lua(W5&RwYFo#`wJ5;?F z7l!au0CDQiYJB@mvQsMGeu48&Yk>y0a+=*Zql2HBT4= z<;w)RGHyy;wV^X#qp$dGw#`*Osf6D*_l59d}g2c=MYy3DF$>)|9HB7<+*mNA;uTx#1>ClvJN}t@etN*(B)@W&Jq3 z`BBE{?E@X{2}i@L zFiInbSCu!eBpMztmr24rnr_;}@d*Lx0RRSb9{qx(uKoSGxw6EXl2&}MTFWDb^IXcgU`?^Hz)h(it;`$M4aS@awXi@ieai) zkwv^3K2{cSu@(ud1gbclU{oxBMXZ{0D^@?u|IY7k|3@YaCr<12R<%T*(>trJ_7e81 zwvS)6)6uF%v}$)Q@AQs3D~Xj~-ofsk~jFI{eJ*^19;9Yh{Ewo)fde&ZeMKKD5Fj*P~&VO~E70n2Q2D zEGKLVj`7B~kY7mr0ex5wHDda(qtT_rlDhC2FLE1wc!oEjflr~p`3y~ajO$s`jkeL~ z290|MhoUX#y0_4WH%nsf(geWa5q)@3$F$IgcR9n_=)-ER$3^-O?%F{g?%|I9 zias1KT241_wtg~mIIXiJn?fyT@Edj!JAE$hlhDodi{VsT<$8p=STCk8JU)^kv8IM- zd@PS5S@(!037brj6ssJzjMnY7DFCHX==O?__*_)NeqGliny%BaI0j{1R$E4gy37&? z=nE{1!~%+NpXIV#5>5Hn)ESDJREJ2pEh_hk$1iVfh&|<2p&243`J945aiI<)+^aP7 zA)v)WX##hB$gpl&H<}hkm_8&GgGN!G=);klxm4@JE->2W*%C6E=7efPAC7Ja@uYel z;ni{6lfK-$OXEeOo-JH&n%4UPcMMH{YGXL$2GIndHq>38af3F{gFtFNg@UDSqY1#c z_Rxo)XuJW1~$GMiggB$9yPi&oDjG9ybB*r4^_03i`1sh7DwpmbZ_KTT= zmjeAvpsxk`pNPH%H2oZ){{-l3nx}Nq^w6;f^dSi034M4|<6S~Krh}T%735*Zjr9ZS ze)k`(SpCz?hR1{Us=Yp)1GhK=xA;zGw~M?*sEd!Z{~pq2>L17~vN#v4I{MulP`B{0 zn_`?-TtneI+tjrmPvIoyRdMU@je_}RPU5O2 zZoTj|i>v`ptvY<34X7&+dMd1?vl?b@sZ-w*I3`ZL#HoL;gO@e!tYydE3w`Tq7bz1* zNE_-)RqBOnz9z0Y53Bdj%UY0iWg#zRL3mu8LU!S2IO`tUAy%mexmJg1tr71G40yOG939g-GA9g-GgK%bG9bXrR_lQ0T84C zK?e}D*w%g7HdwLydSJs$Z5|NVB-#$HcOIMNU*0jlYTuW!sk^VAoY}OtRxm8lR$lL1 zn&t0sWq#29FDue^H-0{ox1mbJfAGQY=|6TgF10G|W2yF=>+9McA_?=2n(Gj3e>?Wb0Hq#yH!4vlF|$}PG&bjQZT zr)!#0^WQ#3u9ZG}XUEo^1=0z9$NYFY@3+Lg?dKe04z#9;ezzUF@s57cl5+3$a=6+# zrd2+wbNOc>isKydn#<8G2SqmLqu(4fIi@){!S{TLJ+WWHRqU2&BzyLW)<|9EZ%~g? z^f`3$Kb|^2d!0RDRUDeU++Np|tRA2XRTMhuw2DF(U6Z27RmW2njnaiGm%8h;%B5bq zCZ$fQ3r%^=U#CrZEm+r-Qa(W!nz~l5Yf7z{tP4$hGfLN#wqcqsR8=@br&TR`N!O$* zoUP-fFH6#eroW@qHKkXpB1dL<&9>|)OzErdH-bpxt~ehVy4kNiHpte0ij=E3I%Sf2 zj^bhHyiKFFI}H3{nc$VUDawb@8C&4%2}e$yzyC0qPi*mN_nr5Tx4x`c|HAE%@pL+Q*0w$w{E+wjKKbg?9e27i zKJh&F~;E9&SBwB`w9W?cz%%Lj9|n0V-0Udj~Hi5 zF|&2s%6Z-QO1PzXkvdnzi&D6&!`=*+Iok-^udAhrbHab&&hxpt@5BM|g>5TbET1*j ziw4TxtS2f@*w>4OeDHRSWxrS6d+S;fzxk5os@lGTtTZe7M7wMsd}vlx!^IiLR!j}u z;KrHSFsefEcBQDgSU=p_oqsYWCTv+tNHr1KX1_vvaNM-dcHGHGeJ81~^qMNk(Qe+( zQ_7`J?`^tt{lUl86Khwm%q%L3e!caVu`75Uv1!p$*541FaChj&^n0XxZ0kg|qj@`|7!qPj2(Ov#Gu5{-WThIhDV( z<-S65KkAM91ghWZayr;Puc&J7T=L{Zn>Wti+ID5O_xjeGz%RU%WYq2}DQ&;&;}rI~ z_Iu@PP6xejU%!5ENSIxFllbXiJ~lJ9PtCm8g0d5LeRTg8eBOHR<4;KTAiQ7NBr4o%DKdkgrmrv2`FG8C#e>=82TVb>FimIF6D;u%( zcFwJ>DAgT1uBk-T?`>+AkJ2CE96saS-r7pq=!cnOojs;sYkK74zwA=uk12&qqix?W z=&F17jCX5+!{l*~|CP1p=&9!Yhn8RZsP&hkCv%2=`nf9UwdI#GPc46cO~J2++%|r8 z>queI#J=yhHU%Euv*6shvG;z+%_AjrVgKw`r?;QK_+WOK-O{8f@#~dX&<-77A}needyXU=iik-I@o@pdUZB9o{hK0`&FZ3^Gn!NUv@_||H&Th z8qABHAKCS)yWSor_xUas@2>hU>ZBLTst(V^qbQ$Tb z?f6M@I9l-bt)BuiW`FU<`RfO-S$Lq?+9hy3T%v#cZc)+1z{^+ej<0!dVk?Y~Q&_}C zbgX=E+TsJxz836jz5O7l@6w~Ki#J}7f9W#tKr5)%$T1&(``9OgoEisbc#bK%bLZp1 zVbecuB`;~bawpg&fqP+~g?2v(8Y70(ecF-RkLq5V6VnfcGjZAa*0DeAFAG7B@S6C7 zwP%aoQj(5dWI~B_uxLlq9pxKW)DoANHjk&R8VZY)?Y6Bx%}?1yEXOcoO#Pz zH{NKe!;jt zF~0U^w?(-OkJhyl_B+-e`)c{M*6I6>jNbu4Llykt*1&gGe13DwyWZ0`-VXom=(OlJ zKxM{39P+bX|9RBX!~Xy^KEHJKrpud~vVD$vUd{}Up()TVr4x4S{Pup`_z$n$?f>$= zbuZ}ch5JVI@wBMWy;rT%2d(<##1B7LWiNwqS@!n$+SRvHi=1OFpC6K>1z!i9Kl$+x z())l<-dTEXESZad(St8~3+*hTz+u45#MHQV^3UB-{(7i-q&GR9?_c=#XVh`%>LrX&I0MU z2{3BSk_mgXtu&jJ%B8a+iUNvi6mtHX4SsKLyo1i^^7)}_R$RJNwc&-Y7ccFY;QiuC z%7N~D^zkv9`8&`3Of~`ck~t3D+8TA>z?>I0eh%8O#)kBKmw#V%<)?>F-z~iM?Txbe34(*vjbyAF`pk1XDm zvhh5aot@(W`pA3eff?fW{-P%R{BpRqt!>rre|GF{9qo5;e(NW{{*Y&FTYKouoKKG& z3kls__rrk?z4x`Xd3gT&>FyuB{0`nY{n>wh_}R*~wv#JqIMTc&#A994quhc`h3~Jv z|M1;v(7bJt!9|CEuiv=-QQp5mA-Dc>|M(A?Q2RxU7Om{n|NI`)3d8m7kEgO^PPR|p z{am+hZLdbMuJx|ZC*y6ewceyGr`y)(@N#)ngq3w|Ez6}*0c84}oFb<%?*pxme)h{6 zv)&L@9v$@Far?T;W$fJ-4z%Va{W?1Rvr|9jTwVD3hpqgmshfL?2hS0~j*N`DrvJfi z^%WK5#ltsVQ86|;#E)_dwp(^yyA>?_BIewkus)Uv@h`pQalI}fE}(ssEq}0VL#F?> zU1|#_^-3|?Qe?l?>&1c;{j{Lk)AM)l{nTo~p8a1;Sx{U5&8h`^kK8}K;KSxVW!tx0 zeS7>JM}nQgIFz3HaqKbOumeBd^l>^3_ZrUqsO3Y^EGx17$_v(RKF0Ab&wkzU#*Wl= z+v9@9zva-DKc!XeJTG|mrJs&e58K+5`Re&;)7!7yD!el7eGG%kp6oq(XMQJgfiUypGLf!!(XtbR*uJwPodtTXZkacmLqf@YP;No?Kr2k4DF> zz z9n-_J3p>_DzOZXsviizf8|Uioov2E!hzfT~erM75P8nO)gujxxsIBQ!aKJ%DoWkIuS%=T{Qm8X9lO4NC#(L>_wVMObiZAle<}0! zdrQ9Gb$ipYxKs87u@4p})L%0&Lk`WCPFBQIBx? z+Jp=}jxR$Pk}k0z$+Ux^LJZFamh&c@SyB#9V7&&Lha<~!;dKzXJbc4|xXkH{JwCX4 zUD7vO()YUuP!h276*c3d;;@zaxN>N^WF$%;X%Utow%#^u7sBYFC~DtWRTCx!@D4cz?1&X z#qd%K!6n!f4G-SJ^K|gz4Z4!-)}jH}B7r66I2Ht0;# zxVq2@AQ0HUeKT~N4!$;(pRg(`sw#UG+5@j3fcIBa70;obFTMp&7fMDnUXa5}0|vnx z0KS0+l*j{c*YW*ayKHzGQDT=(?lh)%JCn#~v35@+@VH{%M-}+o;x7_j`^jP#9Nb1* zcuxY9>Q5{2p}*7D2SMB5xjz`G)5??k&T7Y(^I(U05U31MBqqooO-UIVDGt@yI0ZY6 ztXL;I+0v3RJXYx7v&qrPHKL_r#xniu9O5-e(cHmHs^2`sc^LKuEU&=3xBH~$dWzF? z`}7$zM!Zm&w?LIAh8Nk1;k|LG$?!sEctf_l0N#ZN??O{9R>i6E3-YqzU4I2C>RoA> zg(|O5@k~|TVt5}O8;V*8uPGEq;hUY!pM_UH;k)#blf&c*a?j*s^2V8XHNFsj1UID2RM@P?`CN8AX z{oS+R1%NpVvomvZ@a2ADWEY>g5IKa72^~FJoDd?Hr{uxwD>IT`Rb|f0$X~3?hIdQn zWWvh;^N5pUal~K&R70FOE#%5Zj}XGjkeK+$M?-V~kPCorF93%CxOv(}E@>kAoVVfm zMf%!^W}J~km-;mkE*EWhCDFb%FZDYsa`Pp8`Dbl-zJg0OO(F14sMCgG|EA74Z8n^M zCYc~jaaJ-O|EVc>Iaps@&VRw}nxfq6%)K+C zqO;FT-dpbNdDg3D?fq$c%WFNe_LfI~P`)?ji?bf(wR`utM`zbYXKx@{b!*P4?LA98ZDEj;uARsiqW=pt>CI1dYdxWsFDhJ0=q90ol14-a9$^V3bZ z60H;y#8mj(pFf#gBgCc5ZMy}L+J$SZpDJFnj#a0uAw-ea64hM43y%lt;WY8;kPdsT z#!4>HubyS4J7-s6&)W*$o~%m|mJZfD<7j6Kh6}@O>_+n&6=Tv@&aSk!yQ`DSSBM?k zEW9i(4iP_^XW61Fo&ms;wW4xIhXkR9lhhd}(-*4C9f!Om)D%|*g~B18C{FI`C;duP z)z|Tik4;E!$Q~D|+g=f$cZArftW-GG=&VCzT1B&7A0o1Oc6?*iY;KBvxOWMxx=?L= zusZo2@1VL70*e6}g>2Ag4mU+2SPF)n8bqR?QK$T^K?fZw;EBEw0?UCg ztS{L0bD&1Jb5MN(qc|OLZ^~sh@E9z#D^V~U8@~m{+Vyi7>$VIS>)dh}>+!Q;ti@h1 z*6RjRn<129f*20hF#SR_t#PJYSIgxkS_ro_)}OR|@8BmEZh+4-G|w7rAxPG87R_Nh zn1f_}h_GK+aJY??2ftD6o#Gz!eZyK>rCZ{1wJVsuSBx6ILJg)(;HrLNDe5F|9kla$ z+i?KkqZFHKkJbN?_Kb#h_2-9?oIbF{ z!m^OE?yi(d4dZuS?)RophxUm6Dp4SI(|T#eRgINOwBy*Ud3CBFjZcS<8;98^qZCu` z4m29m##Oak%L|Ivikn$uIzkWzzC!K1HNRUybGNHk@k+kAOE^g*KLDfhm6ph&R?*D? zla36QmD=i5VuRP2ZAFcI!ab=jRRGz z`drMnOmP@AtAq5J5I(?88^BJr6^t{)ahp!^reXr_rv--LcK@gYM7eB10?` zWNI86b3=)V3Q4P&&sk%@H~I4Y$hOWX7CV;fM(|laGs#LfR;D{c#%Qiw^1#DY?{k0# zwgE7!|9qjS__Pgim?*x>;X2IGE8T-Ym4%I@D&r;Ai&2%W_>B!?&g^=7lqk;%ED!b^ zfef0^SG@_oN+|_>Zb$>4nt?tw2z~0v5#UqfF@Ac;AbzSq?Hf;{+B*SR2daH8$2rSs zycf7=@}m?Jgg+cHeub3bZUMyAZ-m5Ql$cDiFo$DR5siWjYp2r@f}d*H;tpP-p$2k* ztIfia?tJ5fr-dJ!)fE@RFdmEY0r!J>KY9dr=-JreVV4VX8S+Y1s)U$911 zAwNnnJg5gp{rTaf&&0i7C3;yfZ^{N=b^aRSBH`lr!xD>Gu@+%3i;`Te>#eG?21K5( zwV`wx8VtWymKsIwix)(Suik>N>wx)MdAnq)#PFrRPnK-_08Rx-9Rbu8 zFTUAd=CE)COGyi81ycv)Mh(t(^n=^F>6qK{HnMJe*CDp5`?g<+baE#(m`7|Zn8)(- zF-@LwY1`&OHL@zM+Nw!*Dm#)7&+bd+hW^oS+Kz_bjM+QzekeZ7@6BPz-}B@FiWi;1!_kkQoMADTbT?c=zW=kmHQ| z?n?A&!MrZm{o~ac;)R<$tY+7}lsnlOb~)ex-w5E!I>QO!wtHSO&hbplxtCo1hU*}H zzy4zaw{VV3v22+D`rV28{kTNPzpY_%rTpTljk!&F2(6)F&}}kq4X$Cut0Cg#TFfcAd=AF>cPnagyLTIpa9Z zP=md>LwMDqpSg~HrUCs-7Y?cXsCTgr z$0~xLnS;&%X0ya#L4cUIps7u;P{D}+d!^=5*2#3npdUXaN-P>D+adQ5g=ua~7Y%1w zu{vHhyigsjRfu)M6Yq`>mC!k}YfQ6elY-wa9v~bZ_VC4NDU{BWspo0;s!?s<+m^=m zp|caWH(s9qy$!b*)Z%TyE}1BJ)v&{x6o*`eJl`sntWx2;l`9|Vo;!kVdG{PD!1CHX zf&Y|6FJ2XufaTGd+LIOIY!C3S`bAo3gz?X!W=640dx=%)V1blC-vT-D1M4E^bSGyw z{Xpp64Cr3ab-LD;W#f+>(2=!|ggZ@l^-y+NG*b!TlM@r*Hf@c?rQ16RS4Ubv zTW&;LkO|#R66MySmfR*0W|?6Yq#WWOj#wBg*l1BeaKj)7_(ehcUaDB-te1@0;vt5H>mb9&OHq8EZNTI2FhfnBOnF|t2e<%|*TE!Rf0)=0M z5-Ylc&59`&7>Dsbku!BuTw3HZW-7AhqGYPxc7wXiQ}jgN5t`ojOWDe~I=*W^tH?C* zj5Xx6Kwi|*--Ws0P=d=DpWJtIn~L8X)fH}24g=Xa{ZWJ6_nqBF;u_!RDG!WYBp%#o zo1nHl==v2s%RUj^$DQ9yp#8At6Bw)17^@;NR(bY}(WAk3Les%^m@l~^M24`iftLE=MNjEk@7(cAV# zt9*iPv~&_$wAcy*XSge-$L=^Yi?l$_wTASH%!{KS;qT9nA#L_W(q^L}e(GaM=Nd7# zhBtw6u8MiP#mzH0+FC9*(P9k;GrJWF*Yv&Syrka$N!Egqf;LOE*@FxD>O(M5KV(n5 z2~ie`dJtvFT1P%Pjb-H=RPfzE8o57dw$qno+0F4_%jjEo6vxcZ?T*v>o$BMA#OCC2GD-~^eu0Qg zmOHw*?{h=;@zR=!T@V;zPdIba4tK}<2gr|{Pd82%{MLbQM6KR{Tc&w7X&v%gqE25WRsBE8Ie(5RJ~4u(Re(RxPItDRZqEzuYnhwOc=@C!$Cpy0{BlVGdSTeN@NgFyRGhp${%exPEbRX{OKHS67`-a`( zGPNVtCaKy@6Xt2%^NjA=%}8_=>oFzs!1(_bkh%JTQ_*8O*MY8X33``L(fy>LuPU}d zU$uesRer)Y@OAhhR%|iNGZkeW)zScGmoNj(1b}X znp%x0(ZZ(QN{E$8aEFQfY`!{%Og1-Sve~i&bI_m39CRDP`n_}x`m3SNwK~Zv5{zRj z)O5)b?!l;jLRP?^Yb89!RD^W{R6>@;UB}uVS<)?8FTcnM*+MEF76ado4yjnw;ZG~t zj2OB#bnV;Xa{vPla1`|@>=@Iy(7ocwZdqJFW@K#NqdfYqEr ztMopCr*@((=qJep`e{jjF5B<6kbV-3C;$4?vXlK5i<>Li$^Vo<}8;_ z|B_BeEG86n-^hBYRUTHP29f&OUBffP+*vq&-F4*(9CbGwyzMZ$jXp4A#e zK!jwhSv2MI?(_!=Y^hAC{t1-o4-OIMzXG#oIm-5!u4nyq~h~T3X!#i!@Z-4$2GRET^twbL= zY09ImdMBJfMNH_>lKb*;0wr^j;SB1^r8*mZU(`~!4k58%SE3pb zEJFyxBwtlbfGSLd4QGa>a2Li_Qdj?RL)ci@?Qmtx47*EHSpst_8zHx9R3tSZGQTgP zY?#BgD4Wv3C7$pP-^*r-Fu#)H4tc0gM}wmBx`fMxkeh|ECI}~R6VI14*szT15gHZD zyE#ef^-u<=hvPU=oP9=PiRFfwfbedvrisStMP;T8OLOqufM%n$vj3L9i0c)<*17@XG&JYQ zQ{X@YFH!|hJdBrBq74YP`-q{kQdp-EPdsq94=8sK2`%S*`Y zbTR3~?U2<)(&LXqzpS=IHT{_+9)|YV1@;K-z>iW)5Z}Sy{`@FXXK}vD*E_5#zOZ(b zS}fFDC)zlPwp%&%kHaj`={6JGl&M00bv>k=<54F^=J3@D($#K8B^K7A2cEwGssO+V z^GLeRqqfF8^1NZiq-#55fmjfTZmN8AqdTWM&n%u)3B3P#qT9B))!cXNDwMpGbwYLe zkDyJF<3XE#t$-p_RreHTag~DZBYrMrr9Xdu(d0Ol+j^nmQ&qlelP(8#2-5ktR zC8D={h5Rg#2IN@LBR1uK$CAeMM!~qMVy7?RPjw^tN6&GtJueuyP40Zle%ED8i!pP$ zeM693*Jzj35dOMfmW*E{BL>4O&=-b9466AWQrS)(w?k1DxMW1EbAVVgL9DhdRP%y9 zz$~|o$8`)4SI%Hc|9b064=u6L0aQTYBptgr#AdK4+FjJ}W%04? zkH&(C`t^krIq7G;Rn_#Mh^Dw)$jYdKT0=taI-K)5(Ya^Eu1+`Gsg2NdDixH+bCO!Y zOJgqF79M5sG3n#TQr^1|{?;-%=es`I*W z{Ou)HE>?^+-!?R!?wZ*Vw7q1sJt>*dkY?6FP6AnGMkZF*Ni&0eIzSwUS(u)j1kS`* zp&df8st0|)1NkLw8>>;Vl@Vd2}Alr+GHx&4zoUs&#i+^3gt>) zLG0Cid=XzR8A6PeT-?|9SzUj8ZZBoG(y!stH#G#rl{P1tEUV93f;K44QPsFM(mdWHXx3HYj- z8;6N0*7>zg=#7I&cRHWRSSUX^i5wGZp8@*M5`CQ$Z_2w;H9YuRQWB{qpJA)8NVIs5 zQ*RZ<%eW>aK8JW-O{btllkMk(fGKjm&YCGzZC6yvg~A^`gd9(dbK(2Vj+*T=n8=m^ zkxlG&qI*QN!m4m)L~2H*^cCr!9B#N9Cx%xT@U3B3MWMOJJHAdSQ3FYkX@`d4 z_bDvHRH_@u^;&XWxfElOmR_%gz=FMx#Q@@o3R;cx2#7_{TS^AF4%naHI8@C4?trC` z_gghN>@Yuu%@X2C7czwREjdatwaWM5aDh)^sk}$s8P^bL-aW24 zlDi$0!RoieGTN&^4$etxiL0{|u6#l*_)wx!duO?K@Jepo>&coo_6>sfW(?k#Gd{>r!WruR*WfR+j*IKNWV{t^kl9!4b=DtD?E_&~5k%y} zLuwi7+6galE-2p3@NWpPU!Y#NA?|3*Ov{gB~znu#4)aTnK@Wb=d{ zUsA*KV5?=mfxLm*PyraF-5b;e+>>D|->qPMD&wV&USZQ5|M^MupxI3hh8w8fZ z%^jTm*X>f8*lc%q*u2{gVx5Ro} z$t&~GjhNJtXX#rpVv;y0NLKR=>EzJM+<>JM?cy#2I`5zkb5=PibVzt++3f}mq zTdgnNujAP3xSXuR+QD7tJ!}Vy$By9%8Ho&Sw=Kx{n_p)!|mbi#-3k-V-w(NwG60VoE4VsW!x{@jHw7K6N z&JMAS@r^T_D>X2fboAV**{UTMVL%?sAI3LcA@5C=hKSuv+~n>Fuz@+DH|S`hpc!*k zTq`BlnjY}y*QsDnRfkU``p_B~_=%Tr4P$gHq@)9(N+Gwt2va2sSnBBF`a=x^$r{9P zHq;THP;26 zuvMzm6+)x@+WXdLye)o)ttAam^yj(qUnEn;S6a%}2GzY-kz{puojnK%Eb)gCj?J*F z)v?U-#nKerA=<<`mX&3crf2jOospGNj;Kk%w-+^hKQ1;fjb&25*}ZJHnPpO+^6En~ zWd@Ua_ouplwmHMv`4D}Z1*sz)YB86q_l35W|IbII)atE+{ zbwEev(sxF=$FzKO?VebWo@Ut$7PtKxla|gMETpGHZ7U)zuHDNOEVvl~S%BJ-U-z|L zMnm}G{Nk%nK*f~wUSTXR@F|^=c4U|NFBvfwZ7Eo+o*)ygkRBmJ9Lvt>>T8MYtA;@5dc<7Ix2++V{O0sq9}~523Cnp{|cXT_?3!q(v|lt8>?FP~G+9lAS-! z)#}J3@&=hi4#9L&OxDo0ll%4@FfZIj=7lezHaCDaLlel4QcMt3Or-W?V9bQ+7J2S9 zwWQ*lMfyf=QQ9F_F-)}OLQVgZ_Xm#SKVBRH1(g0R-WHGPO^O#IB%TNOTtPEj$%Fr( zo`H$Zo9w+Ge`j2`gL|6K8RnS^?`pV=%!Of_JbnH1#cMUJypsK7Vldbyew1Q@=nKcp zUQrxtD)u^zo=31eL8y!8`F{Fh@?8g{Q#fITX`O4mm1EWbQHO`fPHbE6KQU{;U5LPu zHW+rxNteJOD>fs@icJ*Gj&HIGIdSCj%uIwYk_#>t^;qp<&5@swbL6iLQ6O?>=P|=d z`Mwy=t}C3pG;%$_1J?tpWvr6e!Fbt&0+@1Pu}8i~7Rstb>zIiCZ1^T9;BUdreQOHh zwB6HYiwPDZ1e2k3q;UT6BD?(fnpK94o#^;S5IAI*n4W3wukowk`32FdD*Dy`uwWTUW|9P5(XK zn+=syai}1yf$q?|+c=k5rJz`kL&Gmagr6s}TxK%c0xO}0 z-61U-r1TutHU7LOXW#F3Idu`c>VCJ&Z6N%(l2~O$IESW8c`L;guP(gkt1Nu2)&S@=5pM+3v$D-G{e0q`M(}K)(|O zCiYn^LB}VZ_%P1Si^WZ@-D2@(p#W@h8;3`%oC_Nc_}95z~|%c zT6dz=W1_K$o-b1yh^tCHExPCBtLIqN)L|_OtiQo;zB|kMAH~VqIU)7v07hc9_w}%l z*pU}lfnED40T zqfwGu;cH5YMH^tkSjVwTQWUyZM8F<oiyEN-^?_TFAEg+^ACAn;Rj=?$QkTcj z)5BBHr;1?<{rLZaIrATi%F82}!Ix_uw0>xm8YIt>BCTo_di_g7g zpmN-)upT;e;OY8K&iu{gAMi>PxR5Wwy$I*}8MapETh(`Nesi-Aq>kLRM15!DJFYHA zWcP438bKsJP=8tB1b(;}k1MXU*}*X<0-R}coPf{X=J35cB$rh>V(t2m558>KGR=_1 z-`K>=xHd{MO3RsaQor+iF?+_PoZdK%?PyaDI|lIs)qlxZl4R*9Zu7hTV0_lc=?!WT{F_W6Mq zV`e*;w~)2OA>DeA?e3VJYlFKkHK4Jqs#G7WN`;uLN*xzNE;CWXd3Th!{@Ui?&8us8 zB?*Rs{jhsr7omTQ-)t=$V{sVji3wvyVm+}F>xr`@`E)%|2!-x!%jnXR84y4lVE%l~ z^z_Hi=r}I6m7t{!!~k3#vkXmb>yzgugC=% z2wZR(`B93Qz4O!_Tg>-yi_gt91QFOBCtilc%8F|PH7=Q92ANxee%=Ar`|PVFg&%jg zw!J@K?2U#^vO@Q|2-tTcfl6=98;T|AeOApDY?0ij9B*Hnq&#ECD>>W!D9RBBB^I&=wr3mFLD#KI+JQPw)y`pa|e7WCR3BA>c5I$9<$-nu1dG^OJ>8RK3F{m13Xpx zjoeAq2S&msJ}Fo|waJRWImxKhFg*Y&ZziM{Xp#yrds3o_HNt`cD= z%aZ;AuVw0$JUE8RWHGKZh~b!u#6C$1y zyTn}*Nj8a|i{iXE)LswsGW;mT1cCmqKc54SM#FW74cDFPehO>9!;sC?K7U<^tKpHA zS!Bf@{25$N^_ABTV!3OdHUQwG6dT&~uz!y>6}l4<&()@XlGhp9RQOl6>0XaE=~LZh zvOl(I14~Y{e5t-LZPKU0gBT5B0t$C94740V?b+91-U;&UDFeMS!o~)tmEkkp8eB9| z;wG053p=cm01fdTyP>(WA{pyM=q)H^?J*igp{f%P+%2JYBn!`yW4@ zN5yRIF79Ff8V^O0b~m>pcSW#pwEAuBKJKn@Zlm?5wFkJL zjgK6yKCAtRdu2k#XyUH+WA43)y3x5mX%BNtCe@6V{iZ$2-8rdcbnL&ipKyPf)HPZp zEcuLEC4<)iT9q_%Kash4*4dOaaj(dr*94)0!O+5g{dgP1XW%=EC36(@>}nYOomvqm z2>crX1W#Zgq7{yFfDXq*3x9FH*b3bEN`H_JKVQH(e3$QICxXD77k~7V7)cO60FHWK z4+{y_G%f`EG2ocr4FMd_BR%507YG8^9Ngd^U}eBv03QM0<$w=o;WEIHPpT20X@FyU zasX%AgZwiAcLjVE;9~g8v~v~U`27RGhq3Sv0LL20=YZp$Scd)r;O_AK0pNI^!T$v~ zw$Bl6iuYk~7q}S377VzA!Nmj-130!X6aE2KBt6+qz_Gttz?uG{Jj(&cIqP=7ksrxl zOc0*}j_tSvI2;=8`#pTYcKpuf1N4?ajB|uxAf$dYJ>J(D@Id%31w4qxQ7|(A$2xl^ z;A2?$>wsfkQ3W`T1GWeGtN|SRvmJ2uIPL@-+y5!xzBE1ZzXCYYJp>#lG7O)e0mu4U z9~XjLD`jvV2p{=40nX;*54Z^MXu$CqAclT2;P^ceaBMGwCjdSWzGniCex1SR1CDZB z4mb>{0bd7r41C`P_;eb__J0ew9KQbocnAv@dl1BU`0fw3G=YWB0X!1E=K&tY!nXk) z2H%eYKADAg0X`GHqjJ8)!Y7U1;gx`6fA#>5wu}A3cJ8L}1{RLv)c`ok z{UYFlSo9r$LA4D0Z9NHMEPNjd_&63G0eCcgpAGm_7QP;E zQl5ZMW8v2UC-nhv_I;lMj`!{3+Vj2xy(s#TfV1hx0FLzIjp(NW9t!x&fTO$_`K$#T z<@+w+2`v0On*UEm{GZYMEx}0Ha&Yvf`Z*kM>^H+d74RhZo(=dM7Ty4OGJHP`_*@n~ z42%us;0Dfs-LD|Pv0pO4+4oJL=@X6U7t-{Ljp$bbj(WBh@Nm|BzW^M%MqC6Onr3MK zzW|3O5?s(3IAy?Hz^S2~i~`)?f5aeTzyTtn;U94M2Ksq`gJ~0s00+}C;BNqqdh-t8 z<5~D=z$d}?OMuH*cpq?rU>d|gU=Av2;NuH8`VBeYA{s|M4+Go|zRv*MmW9UwZUf)v z0&dOVplfphhao3FV)z%wQOJin1>gesju?C;aXt*t4#3gg;8q5|$`?W$1swhm0q`GQ zhkTH}9dPtN*jL6*k^T-%A8SPakfujpz^1nZXNdgg8`1X#9Qo%O(T}3(ON{8fX!=z~ z^r1BUCL{W(fTO?I2LCbs6WgBxcptzH!+)0WAJg9jG<^eLY#GzmF0Y|-m z32?Ln#8DsC01hsjc$LK;<u)2b_^Vw!Z>!SHLF%4zAwN-+h4NI3@wk9>*hq_#prD zfMb7)0B8624&d1SHvmV!#mLjrpCG`@h~0o2>=z8ym&Px#aiB{E9Pi8Fb@Rve7Xps$ z90WMiPHf2QH2qK(J&+NVH121F*V25Zu=t>z*3mJxj_O~2cSz8G+n&ndte z`QUhc2srB7BRFR3TN};4zeUgXchUUa0cW>g5Jd5v3^*fakUvd72yk}$2Lw~?^fjXQ0vy{JWkf%f zrdJu!r_%JV8PONh^c#)n-=^tnjp#oH9R5#y4mgOM(pyKE=KzTIg~r9$7uv;dfDb|# zK(<|oAPI!i#1O#Qa&QA2`{e^TTMpqgeT)(PT$(=3h<+L1*d8_D@PEoK;D##z$M%!~ z$Zk(H&A%FOc6$!e{PzRSZqEh4F<<`zaLh+Y`vv}e;S1ik57-)9 z)AaEBI6c~Pho-+^L~l8sYX5yB`eA@$`}rUYcKavL^kTr-{e6k14=|!%3^>X;4sd9K zLC$r614OKWf7o(93^>Yp1K?~qw*iiF-UT@OzFmN0J3j+_2>d1eC-g-CH%0nuM)X4g zNBW0G^y6uITdSV@6KMJofV27M0gnD|65wpV^ghjJff1jNX+Fh9e7>aV-!r1WN7ElL zqPLz%_3NAw{RqIZU$>0t<$%uyoC8Vk%kY=c^LGFT5fHNgXUl&p;3)rOz}fOY0yxS& zpM|5|wgHZMyAp7=-aZ5z;B0xm2)HxQUj^I={xWtU2ORmsZ+7+I zp8`1Yhu_-k!G9^u-wkj!|05ZD5&bNh{;?7Lt2BLo+n(*Ipy@pTXSe@Dz=so%4*)KP zzl>d+2ORq~&xp?tfMYwC8}aEQr{4edF5n;*gB<{W6-K50g1|zupBr9{9KdJ_G(T`g|X7P<+zD_{9U=>GRW?CmAM#n3LMzrKJEhwlX}9PREUz)=ow8S&2s9Obab zi2oXz{&OSx9W;HX5&a3kV}Q@^fJeh$Y!B*Z{|H+D`}fp;7r;sV2b|FpY^Oiq$#DHV zz>`>fHqd;UjreS$`J6H0Qx71OblyNdO$jpV5;zntmbRXlICHd&&Vvzw;0H2SjAR zTL8!FD*$K9;W~})G{T<(E&=*a0hcm-pyLy#Q2qJ|a6C`m7x0CEkB0BVKnNZT4*jYE z9OV)P|G*`N_V1VMh2wzO&{h^WUc9zq)hY`M=#^px%r!+px2)|6@IY#&c8ZR}%`+(7++}<<7 zhtv2$BYYfd<=L1(;jH&0>EJiiF<&v^{p6iv@Z?_4^A1{|1OO? z8Q~w%xYP(gN8?dO_#GNo8sR)}E}n3|BEY?v`$9X%06rSN?*JUnGxqfg;Mnd9fP;%R z;O_#Cc7BtM+WqrYK34F3PoQxf?DD|2mJqLIsaL?{aO0TAk%XD zvwZ$zc?g4cuoS!ovhEH#JZ}W@Z+S!}l_SXL1=zGI^Xe&))a%rthttz1j8uDZICK_J(Ie{mayRd@ta(v@s?@J#0Tr=HZ!;*CudaeIhwD zJTxbJalSG;KOTO~E_)vNBXx1AbXA@zJ5}WkKXI2_ke#hus7gytO~)U+%bu5vsJGMv z?n9pOHF3s|JmYWTOaOT%(8QS_@=UOaGw_>uWD`uaK}t13YN{1dsu@yK?T`j62#<=3 z%0^kFs-nWCs)}NjnR)RADG5cns_7w9LX)RWPKZpNDUVBzkx!ePOhWOKqbG+ZOpi;B zn;bqlZgNcM&K6zxaF;DoBzRYa$Qj#J%Dn5aI?MUkCo_F$=2KIV0Z)uQ; zws}i~d%wa*V(JPXshKN$$a74eV&daTMd$|q*bQ$VUvi9m{7j6WkH5(l1ej?-U=KmY z7NlflrY0!oy_}h!0Yj7zL*$*yfd8E|2ZlHyXMrj^IVK+TKNWslQWcSvlcLND$;wGx zK(#z5IXMNt!H+#IPK953gkPRa&R>|zpjnylD~igjZ3$jy_lfAtXdyGF@tHl}0#i7d73{@J9E>0q?*58zi@;50Oe>0--Hz^u_GotYi zChs30G2tQuObQ{uj1U5zPYBA~+^978x!BD7B6OaU^YU`?#!`X^FeQiplY$5^BZvS> z5R5&>#FO_hYjy!9gIIu>AQoschy|JnVu6(GjMOU7jPnXK>AV8XIIqBf=TgM193`WJ z#$ym@DiaDcDV{(x;t4V-o**;g2{I|3AT#0#^6TmO;MbF4#vDtUHVys}UQ-h-8PjD_TZ z^!5pv3sqxPEOQDrm7WGuV(vDMn1Y2VsywsS5ljt&k>&=QaqPjAV7u=UmP!7ywUUlN z)Qm<*rBt{7&1<7un@>^$5IJ7{e^8AQfZLMZc&0_wANH0H)|(S(=!{Xxv7oR z$FyeonA0qn)G+x*a&kbBxtwER<~(#AAOuX-$n+yBJw~O1Y!sbHq%u1#O9cU#&g3(* z3t?J9jlGY_X{wKD4fQdnp*}E`q4T4^rM=1YoZH9L{7335Va>AQ^C2Veo@7b8=PEsC zS>955vSO^T=4KmGUl$H;DBCrexk`P57eGvt=jZ3Kl6p{VM9Dgd;Q)r0 zAw_kE*{IRixOh1tajN`+ylg11nDl_=rWsP0X8?nl%B%tvT;E$a{Y?8jKXX3M50Vzs zLi022xy&W+QaXEQj5sEKT0y=tB}?_35lBks`Njj~Z_Xb5P4}A4;Y|;&|MR74X{s!! z4Pe-3XKZxIVQdCtzLdrKn@ZlK{ynTO(44n;&byg#7XBtp52hBq3@y$UOb>cMuj)YO zh5>rf!87P7jO!L(S1pCSWcALb`Qv)6JC?{?HXuAvwNh#R&Mt z#GCFgwApm<3N&)gOb<=wmQs4&V-OQrjfFa>QCdkeq31jXY6dn6`wVQ9SuwEbA)x0k zf8cG@ONNP2FPU~5^^&1B?R$ew_cGY1TtG9SXB);14EAL-VPtYtOnibI>egg++pP95 z+Q6!TL!H^QWatTq;l^}djpr9kGfhjzcy7T^2b*X;6v(3FA<2gbJ@zM&E-WWRp}0EJQoy0e&>>Li)H?vHiZ z)GTH8Ja1)QD(Y*G?!;#(^HgckIrHYJ^2{q9GN=?hcbGRuKXff%bab@5+SNHE)q=bm-{9kchpX^NekoSKtcl$@c; z0xhELJvoG2paflm{4!Yy#n*Y+$+%vbpO<4yYT|O37W?-?4yOXlint(`HgxdOV_&7B zNB4XvIoaQAS>(T5&32uCB`Y6OLiCpU0d7)ga0=#0f0R4mP#Wv)k|48!d)_%-a=>3c zRW#j|0GOin(v<)ojyZd!x&l#!@f6+hi!T0Q8PG6EPEHQ=|0~(`)RMoEcQ0xK>t($P z4(!U5+645jHUZ|<=DBCcW=9NWzT|u@9FoBp*wte`Fq4bQ=1CT-^2sUsSo37`jN3dB z@S=6;zjHG)BY&Qon7RDF+}k^K$r5VR3sUI}X)z|guq7rZdtO@R;#_5ZYDO~d(I7K# zaLNS>Rj^|T{-?}a7~tmxnMsz)D>G+tAY$`!a^}HOnKE@uW^6`IwrWiG7NjxZux%g( z^64?rnJHu9a|-fORbzT&FtoVHA@yF^Gbe>}ti+zmKd8)}I;Kijue&3Vej|qOy^Sx*ICh1IO%sm8YGJ!WvyqWz)thA;_-re)w zhU^lv{GO+}-6Wfp@$F2ux`)r}(S_a<{r{Th_fQBb(KmlhuX(c9VHIOG(Y~Hl65GEV?s&_IEPXr+}Whe$NK=n(Uiv&7aTp&2f9K zRNowf|CZ^Si}Z9jc&-&gb8UG3Jpb=W^#2yFkZqXA9gF=#G0Y2tz_fIGN ze{0tNcQWrydob_sRd$g0n-(}^{=HsgR(qa1^EWqY;Bk8<{^qQm%KObxbf^91sAxBz zWR8ZN^qZptUS^W^=eUKLtH+wXyl2KwNBi!SKe-eJBtI{A;gWs;M_x?NJHVN%mAlQK<{nr@pkAo>4c?`^>1s;>S2GcUl902vaJ zkO(*=B%%VD;dMxI;t)_tJ1T0ds7ZkYB2M(@x-ZJj%`f7T-MI-3S?_FBIYWrd@uJKmY)>ZA; zlcqio;M!e7*MIkI%4m9fd*DmHWP&6`~*4xIPwQL3%0 zx^r)BMcwS$G#ieeUpZZ?QTPEhNG^13&`{vFGVNTM=Exd>ao=QA`PFHswT`$9DD!SE%kLrOei zqGr=x)o_>9tWl+Tj+x=|om5_owO>Ot9aWw*Va;q`GqM7Dc$RPKT1p#H9@iHBg#;Is zE9Q&>zXwoeuLgVQN2z~yHORs!3O*XLFtoJBP?kEjG*_N1b%X`{;+++8mCLe=sx&tX z8jr5b2~6O_E84DStLvzy>)Ez|Z79x`Lp;F}qzY`vgU1wy)Qa-L_u42&9sxrF&r8(> zsa5SO?S`p67SJczYF}yRQhO{gm%4e>&ZTZ719Ihr41JEekqpcgGMYKGue_L>s^(sB z;Y~=6_U1DuNWgMJ1}rB?z;Z$cEC&JOr(ZNT<+(vZlN&NLxfdH6?W;zrOWNVd4HBN* zkm11-hEJaTp%Z!S-~yYVZO^My@)}G)G~cI@$tq<*C8c&ZUMlFjvU!WS+Y2 z1?Eztq+J(cbx~ti`_dbCP#%Vy#_m5aNYL^^2F)HMX!ejnvj+*9J!H`A*#X;H{Kg;R znHlY^o;_rQ?doU@=oh=XnriloJxJ*6Aw!ps&|Oq-{_~eExu^5d2^u|}A8>SW{mtSr znhUH|`D*6`#3o-I%bKyt&k0rQ==9TO*~-}y1pPm!BaM&^QmD8w$a3sHbGiK=b^z5Pw=!24>uc~kZO!K zJaH4OWHkudF{1NUrQ*OC+0-Be$wyl_bsv9$>pJv<-9=qV_caoM)NEw_?18Rz%+AdT z+6BSR2k{V2$S%kXHVEmQFGSZVXM$>={v~(bs8OSnORcE+PA&txI5YHc&ZJ)WmwH}? znDV1USTVGG$4R5+vpH%$dOAn@%ny&}1R2?(Pp_0mbb=MB1}rd=S?Zdvy|QHGm#L52 z_?^4p))OUJc~WO)3Fn?ZYb?`cqCgoB>nKU$_iOw{9i*k9&#Umnj#A1Oe2?q|X?C`{ z2?=a=wz~1qZZLC%)Av)CJ^={1HYS`gB^OwaUhxmDbFHQM9 zTg2D7g>D;I7|*uoy!7Ny;5x;RP~_#* ziY8q2qeB7LWN>Hlo_a0=wO-WIM010tb%3G#N+nE{ZH(XZL~~T-=XKQMW}kxVpz|`#=;jA&d45){$nnoSauisJ>Q=B|<*R#4pTBC3V8Qa8 ziOtC|XPBr>&!5|ni+K8on-cIWkaj9PffQ7uMn0e<-LsDz1VduDoN`m zODVl-XH9)Ney@|#@pCObkDN}WrMvJmTGbvYy}qLE&Z_$KifuJgWkub-nq98#NWEc? zQo6%e2Q8eypFw;AdQLhe^aRmY<9&NHb>dGezfrHKrFsCS_+rfLso?_p3D!GAwmJFJ zP$^9f_|q!Ci}emN(y0I31@dp<8tI!sTKRie?}bvU{@O6ghVMM$Pb)skN3@}{BD0p> z8bP`7eOdfz=~M7c5t>R6Czuuq2@PE-mg?sT_8>F9hcqXCmKdQgMg7P>N8dmn_resc zf8*%mM3_zl$v?~=A4!FOTJ=x!M;Oka46XK!@Jm;{LG-CM*85+Lz6GdUvjtehcgS;h9$d#nH#LFvTOY*7!+F68iOkR{7Pe59VJ7>$e0c ze~Lcxg=q|bn&Za;1*XmT)2cr;Sy2ZaKX%p!i?4(A!TfizK3IG^Sl(N`QEV5;-(lt;)648<_ANbM;S+`1m5_GE)ppB1F`qzTHYAhjn&P_}^7jyRC= zMS*z7ar${|7b$%br1Wu+(nmn@e~@{C*$$F@6Z0UmlJ%QG8V5xzr?NhZX=ILLdry9k zf!L-y&j`w1kjn38eGk|SeYc?81wH`TBPe%*G~PP|t%wgsr)648<_JZV3J4ofVg5+0= zpnQryluN<;Aa53woglTR7*xiI;8ur7m+c_M)yhm|T0rtA4s1kz zv!EOW9)@fZl#L+8SrU||@zG6+*Ca@B9tWxXGa$8V7^HFsK)hnx=@pdwK+4y{dJnS$ zJOsOTLAezqyC&8j1l`a#2+H-~mm#|Z$6#J1#xKW zOcRt-Kpbj0ErN19i0>6T;{;_hh~pDyl%Q+^!yy|5pdWChdTx3c97!S!Yl=;++wDc(=8yaj}oU(<2aAx5%31E z7c9YcrAKgU7f9uFGTWK0%qEchtp^+6k4sRl2Faf-;69|63d&CK9>~RlauK)}vO`d| zgEU^V1-GVw6u%UZ>al>dT}u#@<3ZZ4#R?t@6_nFJig&7@oB)!2 z97y(2;N8%h1Z5+Lb0()GC{N)$=yv!yDY*3=zR})BnHGnSoQ7}t>B$VZxNIaf;%8L z2+H-~HpnhPnZB1y&cjlPxIIcbd0DP7{<Dl|-bMGM!8Z zSPr}Og0dAXBmV{ERB#LVFDNH~6sLH>t!9wwGZA5D6qL^|6z!Y>X@4^bu7-X>P#y;< z-x+W{(nkel514`UHjv`f0@D7e38egPLAe1`+6m?%y;e}J1eJDzl)nTdI|q0R?A8m) z*&rR4SOw)&knAlW9cRU{90k&GmJy`-B|&*QR@5^DZiT)Vq<-sWb~4*Rs=o!i9r>FC zWjA;mV3R1ol zkjhH{DPJ6DgPmDWjshv4Nl-p-7VVj0j)RnM1T2N!u%JA|>4P8+-JJu1vKPD+@(Dq? z52X5gz%`(Uo)S*15pj-q}KiipRkow{L0`{9Z4pO~iAeA=^ z(l{6rln22Z$ZtW}3sOJ!fr`H%jb9JT9UzUzHjwJC2dUmtkn)u$qyGue$;|=+*mCr zm$SZ<^(7!3H#!C7B9P*l0MhYFJVJi+W^_Aoun4v_q7 z0dGY8O@gu;bmIR(LAe3Ugj_EuyFgn1YX#*}klI@UZUCJim1_q}V3#c@TfrM3rwPgl zAhpvBQag+w<(rBU=OdGX@;FH4kAb8g2FZSadWay#h6|29Fn6{PmG z2+D4d%5MP4e-}vgl!N$0yK{@6yqVLT;OCHDEGQR&Dbk{``EAe*&a&F)k>Nf>h5CNaYNGR8JpB$9KJgau0Y7U{Pqqlkn?YJnN(5ymNb5~f~21S>9}}YP(BCJaq*a-JPMNi zFi6|40hUjIwEgM>X&iQebo}TM+*%7dkzNVj36_Gi9Fnkn)d%l>ZD!>(i*9JOW+?d00>$1lPmP3sOD(Am#4`DSsEU6WoA&9fEQj zr#FC`(XM*Itu9Wl1!dS*3(Dmnm0!wwCrHO5#e%W}qPh4|lm|ho-wRT^`as%W_HueRNacD!+Fy1G${ir>FWUv> z7Le?kKsruv3(5^3mG1)Afu$^$fMo9k*TBA5P>utsJtn3ElHC+m=5*Li3d$4U6_CdT z<#QnQ*O;I@3R1np;0AC2r1+fxsk~k=4fZ{Pau-PTb~4*RvTFgagk6)M>;|dcgMxAc zNcGkW%C#WXTM1IVB_Nes1XBHW)>}a;KNVb!{3(L61x$sUASjQA3A-~O*^LUyBj75? z!-DbvNagi|DM;@VlzTv`-^2P&a3%B|f^r*3{P#yuxkZ%aYB{%1wpzH;4iOYFHQ0@fDk9H87N@ts(+yc`6rAbge2-5zg zK~Sy-F%+FHLAe%07dfj1Fu1}0#f-0nK+hF>TxjbOq^RP z^`(Fqx=xFr91l`GX4Xf6=sKrKP&R^Sf>RQdrzK%O3ChTK2Bdb3f-rH82+Bhs`PC0n zyt}}1u$|e$`hzUHKq{viB>yS}g&%$R3ty{Co`A&9V#p1LSg+OTgblcCc&($01u- zHiPd$mRO!dF&1KIoPQPU;Pf`|QOGo|9|5a5y&OCWxfE;x?VL{SJqS4!ycaZa zI<@xzWE!vgK^mV_?=ZL%90Y4Yv`tC(fOkRe0KWvf!5@GP;9{^E{2cnL6zqrW0AB#@ z-~uoeBz-(cdVr1>ly*#mZus+8umPL`UEp6pYTuthYTutgYTqPS0)7M*gA#-v=$=IWQi47c_&v1t}h9K?xiK;fwSe5OqlJfaBn=LFlBn!BOxnkmB?! za1caVj2HYR*blx5_JSi|H~4eV1HJ)vfUkpXAj*ho0bc{%;1JjVz6!d)pMcfiAXpCm z7%T-}21~$~z+&(;=m1ZFcJL%<1-)P@_#@B)9tY#WKF|z451PQ|KtTF0&;b^qpQs$f zR4FGLq;fWb7Vv72$|(e?oU1@8=UNbu3czAe4^lZdg5(eSN-2kEf&4@EgY=aD8W51s zhYG3QVrfHZF6!T$iw;Afx-r12two!~UaC)rPevEVrP4Wy5OWIqbh zco+tcfrB8%xUwBt0QN)vcck}%F_61K8gCx(ey{_KMtU1a^OW`SBgihu zTfu5@KGMs~2OS{U(KtQ{(m4J%FctgLBpS!=aAm(5Ue0td zEli0y7AEYxOb^q|EN42H7N*1;Gje{Whv{aPGaXC|Q(}%`JwoWiy-W|&%`9g+m=>nQ z9K(23@-sb5H?y4SU|N_Ga}1d&|0rfi3LgfqNBq2;?qRx_y?#VDs?+N|`Yyd*-=c5T>-26=k9ia3 zgN7kPgnqy{XpGSJ8&6=~W9&8R^j*dtqaO2aEO#2au-s|%kWJW$FxZ6kV(tm+3e)L3 z!aQMm%sa8%7S@5~wy<{0C&DH%KOg1}kI;97cVgZa-j4Zr_yp!>!pFjO`jPN6;qWkg z6w5>5BUl~^AI7{ZqB}yb?~CY$l4H$}E!K5aS=?WAcM+DX$C=HsRb%m*WfBK7(ckzUOE=bf0R*LTnB znP)U~&hyOcg48yzeV$I=GOrEGE%RD2pNyP>?O5bF%sb|H&PV*_H(}m4zkhy&esumB zEDz5g!E#qrcNC%(<%xn9(Jj#t`twolXuW&1oP=d z=P~bI(z67J-e)Z8ERS9iuvTSDa`wp_b=D!dzSYtM`V}xE|1Vp zET6=@>5`U95clQoOAzC9xIr@q`JiQ$q>Em`^57A;pu_m4s2B~*mQSqk zu0RV`wyZ=8R=8K91uLeJK9Mq+0&R*nMW^pgIf3Qgl)jV*y*s6e=Bt`k!DjX3>InUb z)n3edR`;&Pdc3-4HR8Iud$md5vAPq>O{-g=ome#q`_WZrRz>LhQu|Y3pW2%W%hYbn zJ1_TK9-(i!ycP55)bpuWhf=4JKAAd|YSNFTp2PBR>IibRUD198EU#$20)2i(6P5?B z7{c6p#Q;+JuQ+jq(a>S-w0f-YeT{bw*5Nf>n76HIUxOH|X@f1bfr_()+>AbWeI$IwG1jon|x)r46TzfMeEk)^YeZnK_k-^&#^N z=7X6-nHZs&gP9ninFE<7eP3ojmOC>&NN>;V#BzIP2j-KuDVt6|Zkx1WwAdzWsNFVV z8wI_#0ox$hYwNT1gB`X`n+NR4>dorQLa*lz<|6L7y_kD)yD)Fh?a0NJEw?=vYe8-s zmYZ^0vD}o~g87LYZw@@j@nG)F8_0tPc^#Nf=bneTJ*`< z@wM2Rtm|0^Ki74w!?<79iTRmzW0*Hx)p8Zq^bHdm5W5X$Ht6)j8%8%^d~6umfRZ;1 zV!3BSFVed<^kBJbLpSDa1?>eG-wrqC6OKs->T*mtP?uxeVbYH{MzMUt;YE6%;{=xb z9Q~Mk3kM1@3JQA)(Ym76B8>Z@rXob3@H|pZ6nU|Hrf3ZFiK0o&-B&kVjk>OG$Gq$6 zZp{0x?#F!m>Iuw8t{%Ob_MKl}g@YgLc-85a`Qo6cC0nGNBRLYs*ttR;j}!Vf*6*Z) zIvhlGu>7kPLiVtnf2qiC;ruTw5&CY{-%ba4I3}Wt<22o$DCDs#giQB2lHSYu%jhH) zvW4ZVaXb?<5B}k#gr);HJ|fx7GF@kk!7*ERx+pITzEXSBkWSOQm5@+^E^{twsZVEwiz;a?Bxq3Or- zAtSAqA8pR*wkFx&r+<#*%Z{hMLS-zI)gZ((mE4Y6>+`bpNeRLd6(<5B}G}|xa^6BJ) zrvD;)#NrdwLsJ!x2l~;4Cc3YO>NBx@3i(6hgY}CRKt_Ai=hI5LJ~P{Yun2m@$I9{f z(rQtjh4tf$g&fbaiOPdN`&Nniv)CU8*Y{1XPkr9)zmrA&RL(zfiIA-<{}ewCkpFg; zzsBYNhRdh>#+32N<=fal2iv!E`Nb?h&*hh><#G9?EZuEgV0A76#?;kY2 z{NxvKW<>E*pU<0yUzER^^M8-VH{xgK_&q}X4ZVx?cToM%J6OMw>u+HF7;it^EX(8% z^0%=3MJgY18_R3C{0^4CL;j&Zb|Wq{ZKHUg|J@v~h{YnmhwVS+^`V&kS!LkFl=m>(kFxzQxO@lKmxygE`B%^W{fxFh@NbO$>xqMm{u<`|trp0rZv^Qy z9p>$&iR*jMBFg&I~IK0^78c=jn(=;u>?=pPIB58WR@^{dZU zt|x!dzCmu^4$>ok#N{IY(bXcqgY(aWpOjyH{_@w!LRO!*{4TeroZFMn?NOh%e2)7^ zeZG?JfM?jh;X!`{FY4&$M#RLAN!Vj93@c6Q`{Murncd$G} z+cVg^SiX_RR|m_l^Y+Zl@w|rgh=-fwF^}Sfc$RZKVxmQP>hqKi8t>41_;|q(CG_-M zA5C;$8`ZBqKluUc-K_rw`=dS|xtjI#oFPr$;QaI)B27)KA7J_4Y5NO*T^zqb)a5Ui z)ArEMzx@<%*f+ENi!}Zr{~OD{psd-uA}lJFy47Qe3#^gBKsqV);(e`Nc9J!JUb!u~%`^+7+y z`jy@0-^}t2 z9M4p=gQfy5ub%aEKR%WBD9hiZ@({0Lw*Mcjhot`j>sN7k&$8ac<-N}Oaq1t~f5h^i zX#It3wu$;z()tQHp5;$zyg|0GJV4_K^)G}UG(FGdUB&u-F0Yd1KhgSy{4SPX;qvyf z{0Nl?eFw{Qzd6aTu-s1Np}zm-`rNcWK>rukf06S?WD0+-Bj}Iry zGM9G~%kjKE)w2B6%S8T0mOrEZgFkPvKe61t=U8vz_PxsTuX+4`9_7$9mLkgg8|yD+ ze=@U#{sS7XDF0=)f0D=Rde(O@6#8pH@`rqLCb?jd$Z~sfUyg#u0^E6(meXPHO+8=}C zKwiI|pzW8R{5KlU3lKNf(|xi2@*C8D(EpkB?^66B8}mdw={ZB%UQDulI&8Mw9WG>t zUDzL|{zv`qaCy)2`1*wXe|!=2C_jqJ`#O)exNMPsDYthu%TLhwg?${`AE5R_wy^w5 z8b6RT)$+JK1uWC^g`~fZ<@=Tj`AaPCBmbb^&vFI%hyGp9_3t46pg+R;cX)mH9P1CT ze-E*~nEmTu`5Ww?hvg}bUkk@;2d_Vyxx9Vs?|-s=!BXMR9jq^6e}Be$dTxjOtz>-` z`};fAKg9Kwt`+gUoBAK)XNt$qOIS}x{vVc$sC|&H?QG4K%W1Xm7h3#wg!;(70d_Rqz_O9$ zD_QO`2tD10O7?XB7fp2E{}=L*tnM%AzD~;D!ulR6 zA8G3G%a>3OittUe>@RyD_{*CD^bZ8&|8;;qH&7oSKM-L5vw-?41N6rN@^25Y|25+1 z@9%*Cy)HoC86eaBh5q?}g?RbPug#k+AI5n1*VhH)r~B~z_4fzJKMIhsI?u9yBtSnE zQ2sXp{9A@~#lOCPhu|+C3n>3-j8}jC@c^0bll9jR1n3PITmJgfSik+{n*#C=2lU_C z0R7p3@{IxdR|DFATR?fZmv>hE((Esx_<=gh@0Rs_NmUAbpW$_T>**b2Gw%_fW8tr&m)jQ72Y*l|8(#R8mdckj0*amWzD14i zi(GW!q2HG&1$+@Rz>Di|zCrn3IVa=Advo5RiO8#M4hU<|FK0@%%Dax|)OB@T-R`=7 zreV};0hP}E9Bn`~vjWRKKPw9KMW}#6eFKfY4;!HK|M+P@RqCtmr68|*xk;zFL|a?)Oz&VW{Y54G6#QIA4TGOfKH$k!u-Ba9bl>Gpi{&k6zS{1kG5Aul*rH${Rwr@2sq?*#+aWTXx}1o|R=cRnaHdRdv<(Rh1b#cUSJk`$DlDomHr2v-qvrHM{QFeV0ZSbuIM^)|?zUAwTkYfe-BZfA*U^ z&dUk)QHX!`6Rm-z|L?!l9KrX!D*RvZ(sYVRZpZ*%^rxa{1!K0`|AGqUzFRzSkca+6 zkTm=AqZEhG-y9{2nZ56wdn@WHd4s)k&z(0{?SiEB0b5F~tiq=(ckeH&uBydn_jrI) z&+gqtZ#1v;eT%dViONP_>&5Y^F5q3nYBFtzX`^4Jylz=d6&rTtWzK4n&u~_%VyL{u z*zco(YL*%0tPkf&pH_T||1RnqIw5`9Ua`Hps*;=Qw=Y542$YKwsu;m5Q zK!I(e*nMMHwH>d6$C+RmJkGG?2Fs)<#7B~Hd^TFUtqiDx7M~qD>jl)dEMN8@d#DV> zLj9H#;;$@bA{$y~qug`%!5KD1F}tTkaAy?3>cgkh)LKL(_Boxd7Uk1uMlIi`p1r@u z=cauc&5Sc@Uq&7?d6ZG3y+{vskb(i=t1VcQ6$_1GZ8^TIK2Jp3p$J}KcCcJQ6}Bv2 z7R`uUKyAyU>|$VGi3Wx*!KN$*JtRYCsNJhsv&~9+jo65K^3=?}_^6-Cn5z+y%b%-I zHwbezB8xqk!j?xGrQKLUhiu>N3OGhZ_xo~dHc(NE)hj2oCDcKx$PS$mYGl;jI%WB? z`XVSA9aLe%uaO~+u`@_bBOtVuZAKqZad3r|iWJdSs>oIS2rMDrrwO*k%~<&Is-wV{ zSF^k9KDAP`_|6i23rO`vGZ)lBdmz`B)#r-nff!~f%moK1wq@aNkOm9;(T1EPDXnJC^l3pX9s4qwDDW5y)Cc~%EEH>Y# z4$NqutKkjDTm{#aH&-LFKoPtPaw(Tq!-AD&%L$T0N!Q#zXZy<1i~`i~Pis4u<;&=c z4{u3GA+~UtLENEq8VbH5H0!o0dfryf=|xc)z5uJ%Cd$kXW|$vLqoGi@4ZbXz{@HzM zUj)?d_GvUT=4A&9YA$6|TC6OE*p24+EU^@HW0UQ3#OI=j+l)ffLwq|^jiaXi0%}{P z&pTS8uFjUOEi5dnYS>=osxMQ1l0;JA(LML6qR|-lGdTjT=-`V~zQQ#9wJCayB87KZ zb39SE5k5`OJ&Vu67h!eu%+-kY*-4?{i!Co$4k&_lajq|uX3J;PKL0q%IiWK`9em4_ z9XjufI@XB&ZJ=duU&U9Q;Pf7U3nMf{|l~SqhNHwzxY$b>TvM&le)4hmCw0C zoRLrIvv+>#D(cf{t~+*8i*b_|+7jyED@(2~ug_z#3eG5kjci*^u)I*9My(xlcCai^ zAWM+*0zcjCU&b@CeC25d$(9*fPik5@$x6ghS=3rjeFe>3IejW^AFQO;C=$t3cd-7? zCynBivZOsm=H}+jxKE+&Q=U&B(CttJ>AGCXqR|W`J=DQ~uPRMfazd-|`Disjn%Nb# z=(;S$bP?e?DC zyYQny{r<9htcn+y7nW?Y<(G+tEW5gp#|xRhgH@i=xnSB#UxrC@3A{CDT`6 z(9PzIiDuAAO#{zYP(WjBiblhOnH+Nmpsz5^Ds5Jue%6;taSNoh(zYhoZkd^^Gm93n zEaoU9H#^&6$+YI?g$XJy*HF5i!w(!CgnYZQhXs5rA&AlU}oa-=-b!yEAt%xN;ng}7mB8G zl;=N@ul^I4x2LL>yd!^$3N{zaSX5J>F}amF?#qr8{@LLlIR!(qk|1{UX?K}Jn4D^rQw@Z^nnInGaNE!zH@Gr0|GQq(`P5t)Wl~rtCR_1hm z;W`!oy8m05`2PNKl*b`u#cbgChHtPD>2u2C`|`iQ*~&Lus61ukU$e8~&Z?SSJ9Y=Q z_uE{a+O5Y?UceOCAG>$DDz?{SOQGEUQ|2u4x9{ch+??n|c@)1v#E;uOD~zk46BW=} zqr6*8k;h>_4w;Pc2$wXBS}3d@+yFm@nBul)dVjw%WnoT#R6ad6u>^nr?DX-iKYV8D z2Hi8C-m8D+(?;nL#G`GI&hZH`4n%qFe>F(Yju{p`d)5&5EXki55*7Xh>13yaonCU^ zL^@R_``;QC&$7oo29ROeO9P@{o`BpNHf4M<1?Qc zbdRWYnaDT%jW3Ww`Y7rWb*Mg3eN>L>!*3T!k5HRbU&v0P^0`fo^T za_H&rDxK-~C-KU;Pwy>)pM~&!<1_I45wD@_O{!;%$u&>^n(q8+EDN2Uz=XFoRR zo~3wF9crAHqC6#!;v28!Y^ZKpW@){vB``mgqb=%08c50y*t(c@2DHt;glBl=O4 z@2^+W)jm^of#s-nsnZ`seE-x`+icu+Yr zPCmW25OLgycosY}T{h5-@|7_%U8Y0Y>~TVM`^Sr9M}*WzbyED)zE)#L`A6JQ2yENoISSx2Ae^>BmaZ>37L`6Qq~7oN%?A>?;_3+ z$l#VeC`m1GEfp#5{$IOecO8z5sw(jeh4`(0t+Z<|?#)zgd)c^qckNn9-2DtIsdo3B z*X-T3UEFQ5vue*C>?{h&BV6?Hv!k1_eQuGkR;sIV)mCh;QheOB>!ylbcUG<4=W|-x zvv-@?457PV-2T-DvyL5o4++%omu}fb&x}~=cU!jCRpGWOONB+bXUI~qXa7zd9@W)s zhh{%+da&Gukg3z4*lnpIy&F@R-tjJ_U6e9dCa`n*4AaI!?>jjdJ(Oizlr`nC$G-j4 z-+uY!>wex>_R9@V{QZ*~=HKXc;y5cA2d3v~AE!@N_J50DA8}~qBL#!TP2uLu{6}?7 zQLDmC%aV-$w#{w1TEFqp`5TR~nQ?Yg{O9Lo9&Raai?bA7)AE$GEOVoAQ%qZI%0NlM zjfYy#Hoo_uvEZ8U8?i%mpq@+4t)3>obRAN($*?Wqor0uu#}ZyXlr)-r>06GZca9~U zIh63qp@g^G32&TCdIQVHqTf$WI(I1PEpNiuvFNvw6UKFk(jHU9Jsr(;lBuq^dA}** z?(*ikYQq6jbA5SpZhW(=9NGwP!l^@v?;lH$4kx}+k@Wtt=&^#NS1JAOL$94dM7#Y%%P-L3XL#4pjv4 ze_um$Zb|cj>WBvNUulS+=Suc7$q8pdW$$RNw@2(tjey(t!QqDH{b-20Ik&pm<%y`5 zhLRIT(PW*4JVz^%6UKB&aOt%*6C0G#~CJM)?b5MBN$(trepBhqQ;6Hiq)9i##8(hEq&qHs`B>s;dGu68!j#VP;mO4JlM{vz zYOUUHIe;-x-MGIYVh`07aZdv^S?zasbkigaHN#}B^#NMA)SWAJMH`c)SHn9m{|6Gj zEUo_kM<9(rSF_6%YS@$~y>T|-%&~;QW6@K`(C=8Slr_kccrRc<^$5p$(O!-DDj<>i5Sc?!_S-W3bqNyXfyJ@uC(#)w&sIw8n?Nn%36S-SRHY% z*8p)}D#js4=0mJI*aV$T9KuldCXAk?Ci}KO zx#kC?mXqPXjhAer4hs#ktE4x=SA0TCx{h4)D^lml@NKc~tWk&6=)(4O6SjkNy13|Y z`9_P=9KLO1i8EgRZim^j=y2uXwuD7ZMPIjAUNt6H;GOOkoO{4FbA@T1rSgbzQA$@6 zX74r~Yl~axY-^q0WW3HiV7#w0<+|8a&VPJlJUThw?J{pSN?}8>mh2L|_*H*}r7>S` z?cenHiqCbN|4rn=vv;<9;0n(+o6RYXQ@6blcjKvZpIuexY|c7Af5mm5HH90EVYhdz zl)_%LU#n#K>}cojo@{eC+N1?}n{F`SJeD>tv*Aq_O z_K(OMqcJ85(?XMJk#S+sBhuohMZR?fE6(3=&iU|I+GmH07cE?#W;&Zt^I&SlpTFFt z|K^uBhK1{N`i=U^GomqH+3c8F(~|w^qUC0DcJ;d{!m>h_^1)X+zq}DIkk#vSjfRLr z#=U1&Dy?6W=1%!^(G@r&i&<~7TpOO6vN*gtB{sY}WkL9ON_2SYs`T*cRZGLWS6vo9 z{@x0uyw9He`{?Bxmv3*CJn@hIC3zhW4OM+@JZK?CEZh}rO5YwEX6)GAT3)JsY`w+R_e;WMl#-q?_S-+i&8 z@jA!0t4o)!d=AM&pL1PPZO|QQTVa|0=Jz(H#hSBkyyK>*;X9TsHm(b;*| zNF~2UwtYvcS6He&CvGZ^MduE`6X!+Z{YR!(TBcWc?-hOY<;Tp$`b$5`WmcDp@C<8JmGi@V8aY&DLQw&3-q*Bme|>c)C_Pp@HZbtA3V zw6ATf$8M(Ikmtt##^{QYn4QBh2PR{7w#D4zh&WIlQ9m61fjOcME21*rITo|W!s*W| zDObKVw)Fl(aT^aU*?1`W{n}NfYR!p8d-rMk`Hkz^4YH?kT~i?z zE@?fzezcPp|LsG?q<=-DC>8-4vEPeWa`*;_i~>yQh!f zXyBf<<~nQh{&K@T#mYedjy9&lW{wFuBCy5WHyu`&+U&A4mvuy7lUMI_55{7C=MA4(o}53?7Bf{6^JjC+gmuA{-<;(`e8e76nyYzF z>Fd3Qb)$vr`U|KzO@{m?%p2b@Y-~E$mb~)n2cjM_uYUT!T=)OzXA^bn*5CisvGMQ! z;QZ%a{M}UVy<4tdSoU(?iL{uXy}D+{?dKo=@8AFV?oXAK;PLZLe1yU{LfZ0krgU+%21wiGQiiK`^*Ja-J54lQ1|O@{3*^da-@$;sHd;cUm9XfEAcWo`G%{^F?Vq<{8n_J%iZ^2`2} zhshZ_qZWS6YlAu<&B3@ z9(4$LRQHqR*P4#EnQ=h?bt7oMJ|!)9;4%7c0sc$wuS8hzT_bPI_#aFg;#79L4nJyYHH%Du50GiJQ~ z+-dK^BL#j2pH_Hd5BnLs^^$kRkqSS9m$rLjPx%>q=_lUIBZvG99;))j>er}Mcz?&ELPg?QP4$li{6Pl@nLMrU~Yt)ibN$-&O8en-#<&(PH`3?yuKw^q|WJ`AWmvkn| zkrEZBNBmSiL6))A6pVXUa*-bMz{Csq#OB@I&$>lA^7j@U*bvcxQ zopI$24#OEp4$31Pjn*I0!Q?r|Fr>_+4$HDw956(#zV>Bf;l_Af>fl!vrXJpy>UGz7 z9*A}ScE#ai4_nQKW1EhwUi`q?m)%h#JxGQ_!cj|;*E+Dg_3{V7V?i5?S^cJsA^^Oh@${ig}r@L_x90;jQ;P`9XE!_j)odr<&~1 z=8CCrF3fi>xb=56e|up(=|?}Q`P*&RX20^&SErsX-J10Cz3+ej;BBvc?I%Bfv0=kw zPoJ$%{MGoo-}(MaRiETsckTS&>^}amYsudSZmGqwl5yii-|u20zWMdG$dyTZ8=qa5 zw&QCBQ+d^CYnnf(Dv7UL@chp!OB$Zo{ry+#_aBH_{_0;`|8q%S#_xU-5$R37a+Us# zhdCw@Oz{H^_4oiRT@{mbmc z^ynY_tST`%d6{eP{`(FcIr`8e|Niy=IQG;t|L42kd*O#CU;4>UU;o9getq`65B~6{ zzkc$mPWmqPCJ$mg$}+hV2F@nzh||d}h4!Y?tsC7q-NqjK?x^>r1%EKdOu1vSqBbU- zqLb@{9o8_#tnrc|gFIL$w;JT3hE`lvxEH4+#W>-LIN&nS8LOpv*-&f@4hqg%7wobw zcy}^pvLq(UJdpSf&fJp|PgNxCupV7^qH!ILT>1>_Pc*J?GOQb#jJu~i;@;|rJi1;H zk>_s4F&bU>z`@IO7>eEJZZ0!5-yPpv*U`Mc<51ckCu9CN7V}px4mu3ma2Q2LSjzlN z1)V?*9KuDC@HgA&;3&UCnfITzw-?%54C~rYDQj6+Fh#^~hn zLtWC2_#5pw7VB(WH&l|s4Z+oehKPoa8=X^a3n&6fUs6sFlj)4_ew}hin4CCS5x)6I zqkZV~y52$=0Xcta{kg(*Ef7z)zBCUlZQcieaLobNLply^c^3y+-kA4FV*X-XdGd{d zq;qGN;tcK`IM7s(8#7^!`J*dlmpSIo)|g#mF&|CN|Hu;ap*7}5O3IH)Vy3Mz?@0@$ z+G0K$LkWhTYl1vTpq<0QTjd8a*t?-#b(XGKT9fp zf8KRxI)0qD;z6j4?3|38%XjbGRpZ)SkB1j6RMgEiJ1KYJn!+ouv~1p3P=Me3O{U9R zEtaROhutlwO!{r}R+9wfBto2z@(KilR9WQ5{9!_{Ys<6?K z6?M~Zhs>#2QkHQj>hy1~%Usyuscp0!w|+nCYt|QROJB%*u{Znsp0zLLy^wkQx!xBt zGoQ(PaczFye_D^f_}sUxFMKcag&PlFzA`uW2f1H6p7-3^ScKVBZfeG8UxKp##}Y<>(#Z z$G?!5T`_;5qZSM2cHFfW$AP#a@Jgh<&UEtO__%9KhjnRPh1PB53CX7Lu#HhG!;i!s zE|=zyo6R?v+hQ9HkpxS&eWN*Q-nEe#D@J1*Pe}#V{;++f zYoZ=D8c&ul9VtkSJ8Uw2VAL(MITo6Yjr-kAo?{ukZ_j@`x6zGmRIcyb@xV#6=^C_Y zA=;FRHkD`ZdUY6WI&14sH?;e=>0abnWV~AGBOJ6zBPFJ(TMTNmVvlDnIi9ujc-Hdc zS(hBoN;qywI-Zq$JZnW4HTNKz8&|D#q4X!KsCxx%UBUzxeRA<7;neq)@>5g#fudC5tX7pDI`l}lKHD;{nt!g-I9nExvf4{0FbJweuFr;)~ z!9fe%q$-8+AO`FhrA$L5g)jepmATOpbv$Z&+ue7BXAYysmsjJhnqsQ3DBl-DpBE{8 zPCxEtmn4NHIigpUjI`>CtRsga_LqcTcSZIy>dN|ts+x3nk=<|B?dErqk z^wC1=_DF~IG0Ad{gf?0OXe`jl!6grT^bJ7DiZyJUcgz*%TSG?*9hXtSTM;OCN=I`1 zE>nWFqsr7&KH#R|KYT1P!$QMfiPb^VcnYFlK)u>glx-~i!b8e-;$-@{)7H;h+csgd zV0ag%j-$nqGx?6(kFIzSHCUETRrJq{8^?-xTWYJ>Xeb?xIP}h8H;+4Ac#)&r;TT_q zs!r1C**&n@sBSS%Z8EM5e?Wh@+&ce?L*em@4aW}W49|PByg9lh-6TCuTOxOw#T1@? zc9|~Tl|t+BnB8HH`r@f|xBxm+_ZO+|7}R~M=jd7e;Y4<%?PxiM8|-%#tbQ=oP^c@g zb{y&GXtcpP3WN8Kwxc_I2Homr;p_c7A|E*P;4N0;RvL5$8gx6hMa@JY?CWBbQRj~wY0%Q}YcV{8t-2)LZ4vjGWyY9SG-ZD_Z!qfz z?yJVN2jT73Hgr@aqhpe!`BSEoUy_2ExpVqa0jatTNiaU=fR*pXZY{tb3CcIQLB z0sI;L$jB4f(R4d>^nSzFakjb~qzmIxiX`ntI-PO<9_h55qI46|4?Vm>aO32IM%L>2rSJo*lLPKO&v_=!-}v zf7SBmp-l@R??*bWBq{0Se*)6!D$s*Sr)I16DG;dqNBql&{W_#m`=3TSwU6wnoLi7i zvKQ%UdntVv+mHI$Q+()K_Lsw+rd0eX^%^DVyGX}tgOxOD2c;X~;CZCu)uvJr{^&Pd zB^?#np`&)*ia*sKvTw#8`R~FX>{v);@ z4zLf$k0Mn5dja+Fr2Ch@ z0_jx#M@aWCpYHu5f97MI^tUf%`(&j1+uwt9S}$az`^Gu^X+%2yOPi1m*L;3HghVR; zrhxLFLOS_V9Z>#hq*MHx{OqZ{Zy}w=)8j~|^+S!rACPW_+=Fzy0@;`TDblGuKR~+L zk5tYgto+GHr+0+<$1NM_Eve^wr>7$_!82ozGS4+F_h}hex#GU2I&+h zHNBb3UypSE@}K1LZwe^?he%(E{JW4&{!%&Q;26?L{tD79oKEf1p);^ak^T$m5EXkG zSE)#+ZRYbxSK~(O(RE0t_P&I4e}8EEOznLe>Hh6)WP9BEG|T=QY#)tE{q0|1`^%B; zU;gWCe^r3}M{IvbfPDmlNdDX%V806K8eK%MHO?n{X2 zY9gqn$0BBzX{6tb^lXjv|F7HsZ^hw%tDJvzJpZ5aGXi6f)@OB6$J=_O)Bazb)bxLK z9RA-{{w}Py_^(V`5tD7S9W%85oo>Nao@7y;6)8)Z{RYO_cOlN$DX(>#_2xE>r(u*N zt%p4{Y%^>@tur#U?6ZQ~XKUH#1h>!Cvd;@{Z&y@mysp1leT6h`a-7l3jZj9uRy{Ur z@QQ3AD06G_-PakiKAUFXY#}0N(+r(0MC@$2zSl$J=1||VW=lha)Mlrwb6*3jrlM?m z>nPrP6_7F$01RFAh0HUF8oglC?1sz`-H>UcO2rF!=}y)e>87e3S}n~Kf!7-P8JStW z$A5#}UV5STM$#i_bDzD^bVT&0wj-if1D@>46f1*v4$*;uImGIqokKI$Ss`MbC5C)J z9a$j)nw2G9HH#-rYHF+MGWPDNs+<*B+)#ZpZm1S_SMR3B)5QgOC0lLHj;i{aomGfw zMO}S{%UWYsO!x_QKXbq9_x>+qW((y7%d<|T!Z)PZ^J$6Yn(OP*4(^%Z{7B)HM6QItnYIVJA5m;`lxJ> zR;YtSyA|qCnY|gx$W+%m?Of`Z2+UAI|tU6-Y9h63u!3fVhZS^OS+|AQ0d zC;{8l3VPZ}IUh@>U*qxqd#xR^lwP&7ram1<1X6ls%^rI0D4j}3cj2LKJo%N5eDN>)!=cfIy`3U+K$v4_9!Jgl({-<#{y3KaOGz9MCmjQ;7?0ms#DZbIf%158agEElMNlpRsT{iY zNcplsTw8Ej1!ek8HvP%UEP)>^A)&y`P zw@!nUJ^@Cd+;Ks93@n7*8Nsb1U=ieD!L36ewa*KZzx^PU(*xqNuCrTE_OQN#_4K1L z#i>pK=OmGL!--_bbT14&r3^an$s*OQ~G)g z4U*S^CJ@(?FjOQdA8Y{AKo@u=Nd8>`mV=jrrC=&p0;Yhdo37QzIKUO49ZUwTpaq02 z{nikJWxAFfL-o@q38{Ygs??9)kd*rI+nAERnq?U*haLP6cQ7qXKuOo@OE&BEjv~E2 zK0&89$LsaxIHRFQ->dJ#b1Uuo4!us_3hFU$!~C3XT&LHc(0O&R()H^4z%FCAvBzjM zbQn909`L-uZEP~?_2Y&KgVAutFlIOh4jV=cqXxYmH`-$EHZ&P@`e{&)`FWH)XdE)? z^j_m2a(ayeMw5QrIDz?;aT+P3VQ0eh`l;|~JScP~d<^s6@V;=JzB{}Z%iZBUn0JJC zVm=-=5f-7Jh?tCs(4UJKkAQu|Sj0mZg!G+gb$S$?8-qXfeIVr|W8kRo-=N}0u{ z}bd4|)< zX`QfzH|?l7*9`F{mymQe%!YVVVK&4qPkUMs=XRbZpKWx~1d~A)E`m4*edg2c2fwW` zdyRlVva`~3bU~PPt!H(B&6j8YJj{w22WM`M(wOke!wBr-( zKlY+zt}h+mx01Wis1yf%X=NZ2NLJ?dwv$4f^|nyJIym2HC5u-6JnR(}LQWY$H=uvSnV%R;bRDxA;T4zxJB7kIK;Q?ofv zyU}KwoOYwlCOK{Dg+d_?lPN=+Sk`c(Jt>;)G1}ySK}GC|VE?eS%|j*o*t35a8Lf(j z8ALp-?H{skx>9s8VG&{Jkr833Y0(iGX%T6vu=JR4Rcfj(6-Ic%BOKd3)MA~*DDj7f z?jMqmbw^LtYg~+h^5Ci9!xW@Hob9mBU$uLfO&dKtL=Q^{M*cSLcVaETw6c51zi6Nh zBpzEkfO?(|?KkPUj*D_w0-7FvS!xQWq|8W5v#`x>OK&ev?c(7%`%a0+RxqLVv!dAk=%4wwc_Mm$uD(^^&kZ>6Xpg@FGS6<$ zE@*Nmju5s;?9<58V?HqLGwjjJnxo5S)7!SkM4q0|ubM#5wvK#Je15jRY}v9fQ|m8JcN?Y)Jy)xX}q-%&^-AJ;eFdOTalOFb6)}fr)44GBI6PB%rLB-2ze_~hTRJj#i1tm` zeLRnP2=*LXx~lKAZ-;ue=WJODHXqN6VS5sMnE4+H8=FJ6gKv(1G1*|XwqHtiHMIe8 z+hxw`J0cyIm&zL_W+E~>z}_hE49Ze7tnAhjZNa7`+0@MR;%un;qh8QEE1Q%z(GKE) z%g1p1JOX)|ZGPT|{a4_jC)PN!wR&^ZhmbMs*Tyrj5i5F~_|c*qqGQ;?RO-Oj1=RK4 zLJjIy$LfN09&>sv(vn;()7~#3If#)Lc4!x(Jz?YZhFHv&BeW;gO^~->dsGHJS^HGx zZPG2$vlg@?{f5rp<8Wvrv}X(2Q3$tuDcUaB^(2}%(59Ajxpw93eKvRG+tbvpf<0Z{ zF6qJ{;5h;IQRBCx4kn$v^@Id?YrPcYMY4;4P1nEMZt)iFMtMmWaDKcybJ7a0mz`uY zOFO9-=+NiAVP_QY+*tdski(slXVhz`?jkFF;QE@NH^dVsAJF7wWhFxo$gsVI3?VaW zN8+P-tQhj-I; zQCkaoMg6O_?s4{Uk?&478=a=Ke@ACAzIl_r|F7jxT}3T(z*D&LWQBK@5blYW}* zr_c~0oZcX&C` z9NP(h`%60B#+JFF*$L&EXft89`G|*i#XhF_*%x^ah!wZ*z^?qh5;NWhcutp?%6%n@ z+tuPux3ONXV8k50Gvc>kt@lbdrxTZ4sGQF18c*Plv)#?<#{LrT+r-xe*aNrahjieb zu~FL(%!u56(_%iW7I(Z&Wo;>OI`PUy`(==fgmnVPD<|`o84S-m7p@k2-M%wZz%iA= z8ne2@>vj<8(UJ!l^Kzp(8MffVpiibTljTv|-Xt@2T~ol^xrKRoPl*kFE^}wM*qi13 z7HpT_#vHq)M1106H*w`w_zJL|65mfT~2d-^AlJfPiF4ixhSf<|Gmrh z=3xjwCe*{Qul-DmbyhbH&*tmNnATb?eT4K(WlKL!m#A*PLw3K6dL;q=)7>YySddyS{ZfoE?6F z7wTtb9<1||UQm9T9|@A~kZfDVVx5ouKuf&(ju=pgyCn8`{W9N=ac|C~yUoB;K0yx6 zCZ7Pp*ecYU>toH~TsiDs2D(9c+27C~j!q|zo(sReYs*9Ua$w_4YiE8<&94WmOD382 zU$h4!Uk@4)Gmh$iZ{bvobyG0rO~%+a31i@s+wbO0#2VX$9ear`j*-1_PUVgLvN!hT zbY+aLS9z119P`SJYf46W8soUtUX}W{!D8Q4-U+hAUdxH!gAv`oJAb4-VE!n_nu+Mk z&}NzU?(Y`Lqj1aJ`@0`DzYxE|p29TmV_!wGG1Ot54F3P_o{aKpk<-7mlk3|LpBfg3TL>c_43;To0QPG(x-HGJRSP-C#lN1w7 zF=_QuQp`2W zJm_C6wFru#kHUrXGA0m#U?ABTy1qkK|JVm7P$AsMGa*@7>CBvH^`k1r0x5hvWB#5d z1TVtbw=qoL$yPVF1-vq=Fe8V&IG;gbmYevz+1cs2JqwlT8QB?dh(N6W!`$f7)BheT$iVRdHw<=V;;`bg^?0|C zL7x+3rOqag8YDcst-#h>nVVOr4LnKdVH!y?jlm*Dk3cnPBXH|e}ry& zA=!z`$}d3n-0ZxxnIQrhe00S(93yBB%)kksVo`OJ^!XQTvfq?^sk3Jc zXyu&;ulw@YuA7jTgWF{T(#UTQKA6oX3zKju#JTo)LYJS5m(#7Y(+gJ{CqlMw7Vr*+3Q*qc+(Jv|LgRA_vS#FFqz{LkyBU~Om&@4)S@I2aM54vkW)21GN{=7dGi4}_UH;bHtw^`p3=WD!J2 zZH}ZkKD#<#q_s?9@KRfBa+5c+i~^pii*my znM(dHiT~F0N|g2>xnOz9+AyQrn#W$(qiBBjk2r|Ze-*zz+4su$2EyAbKtcGek0&r%Ity( zMuOqo0&b&VF!-=PIj3U%8o{NEugRs1j2!Z)T;|Klh?JphE*$B=7ZaQ>!L)N?*&GID zV6SfWHPn)8spBvSyV(y8YMRgc!KYITS#)l9w8#(kiO<4eMlC!(`N6vLanAdb62_Q) zALP1cc6Hetc#Z=9Y(*?MXWd?r@#6<%FM(O>0yuzDmPIuZ!|G9w z!uM;%WL_Hfw$Uz!MP06n6lIGP@B~F3u`E0Yi3{MXqpA#!I`TKVXxkmubooWp1+ItS zX^LEdDIqt%Ya$N>;pPZ(<2+EE9tNHCF|1MdAXO zvPP9n?cSu7iE5bB(loijxhkrm-Opq_Oso=hl1mRp!?ZR`Zo@iwP5j{9MS~8&>aRFv ztvF`4C}wL(>{k4a?|eLdP=h#jcTtQnzVq(*=tl7X<~!DX$Yn+jd)qhU?iXO?x>0&l z?taDSo}+R{h-6=E$VzLD(C zoOl0sqx3ta$N5Ggb^W?KJeQE4l1Axeqx+RccZRH(uNABI)(-?H@S(CB_Q*wGc)(t9 z?Anq+yEQQ|>AgF?GZO5L?+nAmr6n;;>A(Z=o#A|CWBnle{KGJLPL=zwjqcZ3{;47s zoU_^Y#z*gcPa*zv#;giWS`VD4BZFEEYV52zpfVlGxwlzy3 zw-S7*h#=Z%;9kNHUJ*aArnXZ{eRPXheHtdxiulMF(uGAJ`Dzxja60V@V8k9F$cu zc&!-sQ8gatl^)+GyWeb-USvFeWmd!wULhvi|Il8uz7=6ih;EFBCdV8X*GMlaJ?_9t z{dM>38dmM0dyVe53@!+wQ$Qi{<9C(&k4EXtDvyg*9?WQupHv>_p_%rpf0`X1U}AqG zbh{{~rk<*78gR0e?o48oB9RGJzgwHgxzRhzR7A;_F~Obn(|Olt<+I>95QD7(UZ2Vq zWs2dJaDm<>pY>9hpXjnM5x;4`oL9jPn3!}jF+N+mE5x)5*MA4$mjIT}{e4ds`N7j5 zJUYUep?R*v6bY06G)-WRfGbGQq#377ue6zN9xzcdm=xeHK>H96kmMx~?hT{h{z~Rj zz_8Oare?T_vhO(Ve`n19XvS1I)i9q+w|J6cy=bvg+PVCDb|_Py)vD>oql}j-N4bTG zE@@YKlMrGAdx#K}c4yk^k^U*>Q>|F%Y4o8rE&1J}>y+)6s1-eAr7HiR9QeWEqyh>de=3mi6HYP%2Smjz5 z{k))L$L1nLq z?*7u`bxA(zCw8SX8N=6#c6T2rP2O-$p-%ZFi&^~f^P-3zG1BDc&-tiloJ?h29bPKh z-9sFQJMf06OFf*W@=fUqb^e$%=EU$aQF>1gieUz=?HMXkSTzDkWxfkC#C@vdzY4H#D@c5zSM65t!HUVc>HTq}C2kQY(= zz`A~;Jv{x-8$}C{s=_^aD;y5?SXXpXG-6y9+#x=;IQn`s)8ptkX}rw6ahsQ7%g78> z!pH5O-amr#i1_`7?w&mkW*KB~Cm1x&hbdpJe&w)?={??QY~kx}OWb{{#w}JAqPZrG zm&Us=$!~!Ev`1>?!OO_V* zTTv=Ly~Axuz`QLphNwzcZ1LPxWawoG^EDJ2c6fF_Ip;-I5AJsjUR8Bh)WP%6+w!In z-qq0+xE!aug%djTl8x?-QAeXzD49zuRi09>A(!4-v#s2#$Nl>yhdkFlY7E$N`w^$f zOY2@6JxhzD*1F6ok#2s`dPXD;n?aw1`x*_yJ8bUuBu{OZ_Qd{F^dy7GDe3eo?Z5cW z?XtXE(EZ}11WE8mnuvr_Sv6O-R%7YXzz!FTMdFR+sWI-p(aNMIV^R7EnF~{KSS;qeYCbyAS93=k9I)*E=3-~h zM5h}w$N4tM7=!9)qF+BZuA|@A&XQdAs3{Nnvu9jyZ2%JGjPq@#L>FZLSNu)Zk-y0f zBSalDS$~sHk;LLH?y7~dAC9;@;G!uMSB5|%2s+@){{pj zEcvoo??ac8v3hs^h%1Hh=<}&H&%BRJ?Dyexx7Lp~{tsZjkz8Z;Ds}2xYUvuYZqQmW z7N0TLj@5_;ZpCtxbtiS#$-Iv{E~XvaT_;*(R@C=ny;lt|)-NL;nS7PuICJq_xyx(? zoL`nLFkrKf1sJ)mjKY#Hx(rJ`eT4%bnWxNL8NgxP!19s-E9(1UtBbAB4mG*toD}3d zrOMgTB_}*f>*2-vyZ}9g=TJ&dse5ySYsK#4v7l~97x?`x9gge*^tW1<&2pl~}Jx4A* zUeyyPg9eN*a1NQfd0}a+4-NovEXEiL6*8w3Hzyx)Fqw{+qfXT&iC-p*HTcJb9d=u5To)+g=(Z%PE0qnyw_GzEtp24$^Tg^ZuC7g@ zuTRX8U8$5~7NzRE>e`zsId7yv6mjjS@|xk#D~}}TLmjsSKY}#>$pH!;p(7)RX5)m zr;FZTme>6weszlkc^Mxsb*rjj0z>H58O z6(K?mk|Q<;XsXvFoX?4qHZmb4HR9q=jKzyJQ_UiJeumMn?irzs8nM?2?F%?Thkg*R zhIMTo!98_m-1yr~@=Hq8eS4>g@2Yk@=H<;dR#i&7z46V@m8!Ty=n>IwI) zPg;6zJ@4!Lfy(%p&{YyQ(w8~JI;#t^Z_-`=qfB4B-2k{CJ%5$eMnWW84?F> zw5r_KbCjRdv7!TuOpSQNzqK9fbQ>*HY-<gLb*;D4A>|X*$%YLd5MU)d|DKCmNH}U0Xjef;Tg(fzRD3^CaQ=E-k zlr4LwB5`2VB<~#sifi3n+py{g|E>etob%t5D0JgNE6STuTjlfwY9RQ*4RH?gTe5I? zv4rpS-Y*mnaeK4U)KD!^i?jTsi-tQnvk44WJ^SX?eHa+hulvOG(uu>TxIebBQMTJD zI%z|7l_#qbZ>VbPjs1pKP@9ohQzz71(zR>|Oy*i}j(SF)i65vAT4>#ej|8XcSDF*N z(`VvM)oqIeHy;UJsQ9zHtG7_8`)$7H>-M8rovN2OAL}Bm5V+L3>^@wa;St{ui2G*{ z4;rscM(w0B|CH5gk%8E1j&x3XNfoyAeer;-+OuUv>1GN4x?5XWrw$oj#Z^GRC+_el z)$<24<~uK2q3pBt*wD5zHK@*+lqhS{b4|mdcPo_M$wRBk5;uob6}gbrGVU?TdwuOZ zDB6`#Q0HTxC5gIzs$L?A5g{dEjPmV2I)4{vV810}lPLl&e^9eSB4@A~HBb^JKJaA6 zJ?mKMbKO*1e)EswFTEHQsV)1sRsNn*k?Mqg&Tvc{{7<%ZAOAQbN(P2Ss}ch0MeXvP z7%2#|kHO!ok9*TdMx^Hv4ALCge8*ME7DHl#+uNU`n`?(N#tL(q5yy0$+A7&gRD7C6 zF@Zfr5`&YuQW0g>f(`74aD1iie5aK55wQU!kuu6%6I^EYG?4K=?okAsX;HuG%(&4f zbnFu!80lC2u2sb^y;eUP6;}yK+$x`%U47Q7;;Z+&&rx+`RG7E8$F0&hNB@kI%z&9g zO(^&T{>puu9&`e^6u2u^*)litD(GP2$)_13^Qg8-GiLtYlTOSM+MLn@0Y-bAg>Z~) z5dWzXPJVxWL|fC>(Imjo*vy_HMl49(D9?JcEM_CpVCdtXC5a!#uBfvXa+@0(A8R4c z9K6;hP4REGW%Yd2rmSAq%KG$Wv=fD*6anY&RsBoCxS0x%4?NTLYI6vqHOW*F@Gs@) zHsCoP4az=7`O-(0_ULETpqB$?QDd3znfo$6Ht*c9eZXyla>cI2_ zoyeu%fet;qVqEUw-`2XUtjArKMp%{gYcIAe3&oh!-KMNdZzW`OQnQ5F|J*8vu5TD4 zmf>7hXi%@uyk^vNVpOJ7NVCB(No>_?u6cbjlVOJlzSlUVq%LizWC8@zfl)H=pU@i` zoJ7+hANXeuwD8aDq;g8G=;}P$$$4z@xCWAc#%KlLOg zE7VDKdZ+ufs0IVEGg+dohmu`J8=WdTs3*D2 zZm1t*5OY6o7WXUVf8zXl1^;txNz7h8ZBu=01&=-F6tb583G7Dm&rST#9pZsi{LgFR zN2~dt6>+_G@IQ_5gYNQl{eX8Uh-&7#RuwJbrU|<8v1UjGi-Jr+)~nxM6zT+;%4u`>HR7`s2P7qp}F1;R(I=IsPo{kX&vWn_TaFubX?@` z&HcRC(OBfoC-80Xe}u4g6UJv6`UadZY+jYGa(RN-0cTqb&cwdrYP3sX75lU1o_xj+ zEuT(U^HSe8>zT=uDnxtss>In(&z3fY^=Vi0b(Qvy>BlCFdf~^eQD1dxyC-r`_RNN+ zFB*5g8JaO!TsNojD`-h5rx=)OF#0 z9_eQg_u_xXREhg?Kg+t_EpjH++T+zJySt%jMD)&e*R_4lADZB_@=ZyX$*x28c)gU} zJ>krV>Rs#fx`o*h1~29Lq|f)JBu0;&{b@(9PshD^V{vKt_@7Jtf&M@T^r7bzK;P-J z1nB!KfF5s5J7}Cx#KbB@Rj!koa6ppXR{NxHQE%nWwoT!grL|u;Ib|5@m>uITE%GY& zWZD#o-_3NHRo$VTzxx+&bw4QjDq?YT`ipzyE;(N*E*RgO9PfMJ>4L<->~FKrTpj+3 zS2t#Ds>Cow>o1zJ_sKVc4$BOX;_9Li!B4zZHT<#tr+Yj`Vo{$mPIUPk#E`iSxTVuiducE4aG$dvn9(`BQ)EGyS6@KjfXwdG_sN z2jj=r-jTlg^>_V)VqHFl_wD`J{nluv-+8~?r1dw_3Zs9N#=bUo!NzGX|Df(3*7DM} zS8#vT2cEfUZ`p3ym&bk?R4o}dUh&}%*}MKoaH%|YE$jog5vPvjR6O}-Zpr$~cNKmk z-`9M0Wo?&jUw%Izd8ylec;J@%O_jcR>`v%_O>;^v{JLw9M{m)`Wpl3mc4p$-=ay#7 zy0>HIhVO4&-#2K{nq&KK-QCemnR)HPx{+VMqXqo@)34u|2KcM{H!O^Nj)UVr@v3RZylYd}SL(C+Cr-=#=*P=}ADsJe+m)8g4}w4Yp;6cW z`KjxF*q;*mN9?p`Pv!oxaB7c$tLrZR^4{GSw!O0S-*cjW{9@&|mv+51xZklgxi==i z)+PDUroo4<{<87Yg(E+@bkn!Xw&zZKJMV)j{r*TuPq<%YuhgKV9z89F-7@$0KfbnW z%9r<+o%#3AzrQ%=t8ae@^B)~4h;s4A>B%ol%PnciYvj3ZiTT&b`kTK`ap_$-eCacs zxZc+78~EekAI@IBGiXtW2Qe7?=nv&fm&DDSnKWX}PcgCAx@=f;FeB#Cp=GCXll?}z zpE{-)F!iMlU&7b>PiW0oApW<1c;?Wx-{#$W{QV#QJ^T4h)zNO>&W`fA^vo&E?C6-J zekFB<`v>)X>(sG=#;@GAymG8+c8o`H*{OW_y>?z3H0OWbJLu)t4qXci%HFo&va(>( z;MYp7=H6O(U{29heg4L2(oe4F7CilycwK{JNca4WUEcci)K3K`;D`RyPw%XH-Ns$~ zTS1)^r+(QLJ*Z#FYM%E5)ZRr?pA{qPJ?g9an_-zxe%hzgrei#o`W2dh_>GJmSGgm?*7kx3hLw9lhf}~L&eXX1SCz|l()YD%NDuEm5bXZhu_~dzc5h zK$}S{TuG&Bu1+R_T{>E!;=GtzMKCRkdPUJADr>gLLhQJwGr0;dhrfI?k4P zbcrkT>ig8qpfN{F;@^0pDC@InAH`|wM9Ox*%RN>8BVQRK8Is)9?S<7{ebaXaBo(XX zC6=n(l|$D?SEdeG-Z6AU`wgQn9)8Mq;DWodF)zMbak?g>{l}kl-kbU5wwxbs^*xuk zy8GiVB|Jao@`&|)r=Hx6O(>q7SpL%qM7Yf0d+@yPbZ=2?d3bBS?jcQAIkU-1I5g;5^D2*AmB+>F?&S4ee$ek5oId;e!JGVa)lz!*4>$L_#e;B9h;H*-_ck9OX1eq@ z;H0%ouf?@9mpM2LomV#3P?jPqo29@#C%hUj3dUWBpPK2E`I<_cic4&`d3K!r|D4Vj zH^b=tx=#8<1+F;YP?-H6PRDWbTMl>P_5D!j-Qt0##RF^V-Hv3H=_i)u>q`nVUFK=a z3KeCARb@V(j`jG7p%ZP~L%N9DGfMYssD&~JSIy{R)=7Wgb46XwHT%+yI#HMDiqY_B zK423rwIm1f6~Sexc`oxdj!wE+;XxAU@)UaykM(i>jEJtv9ryRUu9J>iToR2-2{rMt z5XjxSL6_nOmLpid;!qp91TYu;;P4$c3^o=`xrp0QM)%9ObEE23ds5To5>EEd`+Wlj zN;Oe*3Xh8#xwt2xa?fQ?-uaVa7V}ZE`)w62@p#;>j2;0;&$&{9Wrhj)HbGKlVK)JK!<%vUlDPT`o;E{V$cayOqCpTLSr_2Gtw z%z$K>ci2k`AAj=FoxQP8#4J?JpVoQarqz3E+xNu{V%O>VVC8hZt82f0${bz(%nW?n zk(aMzZQXEwZY(Tla!w#7=(1;LaQ9@h=4AAZS5C;tFMyd&OVscj-HZ%;{DE(M9vlnP zqh#Wfv!)|BZ!sC!vG4xHvY=tQ{8TC`J}*0)BV`%OS~bP@CV9BET$q(nFc%*Y<);*6 zEyze79w_J@6$&)E>5Gd^neZ!G@`!Q_oQ1%NkX{W*k6vzgTf`p-Rdul4rjvMz8&_7 zDxzy-y;7R0{y0%vysO>ern+;VPN}=tEp;c)6<=-n=F-uoqjldMZPuI^}p%-KXCTjp_YEU0BXzi&uW~)+gOp z?l`_OcdY^Y{_PlxXz$v#4erg%HMlI8sNaa2g7xT4F^%=b-}xTKEg4*?#05>f!D9Ok zb3)GfAayy;-gZNW7ROeV;O-w@>(CBcr-U(fK*0|=?N&>xq>06SB~HJjzu~V7>A`qC z+eG(Jai4O2L)kO%4Xxr%Is-_1+mt$&g179v+!?9)@a~kEGB+b@MrI+5w6&Kg`}L3+ zre!M{nqP@>%QQ$&FWKyN+;~R5iQU|94U;wK+M~vz250+ZP>x!T2-n# z!Cxkg4L$DVc92b`H`JDEJQph!2M;fh6#6Q=NrxbPjn|`ID-_M&WVRG0KEQEshWuWR_QZ~V^fwd>Ez8nwr&Bw9qXk50+?8*VSr1Vc>hNkU+42dAQ( zmCnCw-^iphi9lbacbH2wAIZlIzMqv+;G;?xbIuxxdplZaCq`UJ5KE-@od?Yrw|)Kk6)B=v~66b zoh&X6TFEpLsPFSG0ObyYll& zgJ(&AlSUQo8tFRSwKT~omAm6Uc}YF$kcc|0zxGv_>M%TtQymg5>wu(aXHI@?@LN*l zy{zcK%I*fGtXQsC!NT)QqiC|LVo&++vXYz%H?Jrss?UC^&+&w7Qe%g$`eQ}#!M+79 z*4N3`G-KLH)lNi32A=P>&oetG{(R@_q1kH5>l$YASK7Nv7P@to*V1pjVc7gB*K;6| zW`Dz*If)1B2cbS%f5QhkiHGC2tQV<6)XFlyrdYMCv~5ja=d}&rM5(XVc7?#Sp2lyY z5`Ng+wd10%bmD*pnKrNUwp-QD;kS`~2mMyT|86p92Rk)=wd88-{m@qr256&S@(={<(_c|(S}xwVzlYJ0XE9DE>^p{8XwV)w?A&}yGV8ITpj|Gqqcf)@=k`(zi`wVk)b7_Rt?!vj zORD8DWFsZiHJKVn4ULXrabP_qc z_zd@KVf%bOX-p7wqq{LM`m%8qKi-uOuQ}0fNM3N~ueG-i#|4QEQw-|d0W}K^a#=_1 zDFTLUALYxG&4sWb93})bQrv`n9C@5OV+$tZ7`+e6X2V zX7&HtaDBR2|8EBx4Ky6mxWSDzNz{sc(7^E<(5|Y+5Bt_DGQVBF*=={;F}?IG4U%|t zO87PhY%dwc>N(kdl~j%C=rUrnLZ&(KQrn96c1q+Djmno9pgQf}=9Mb{g+ zoUmMk4j^(FUi0R8jUv0GRNnn7b#7^v#GqZtRKQs3fEjOOt~z(7_X}vmaL*q|{?|lx z2RnBxpWG&)(z7JBjYd_yyp!va&c%N)B~MEIWp6R>b(0>%grM(`nqO;@oMMeZmQ*_J zJ4j;UHn~K6LtoCE>YbqA)Njqk_NnXDO=3yjppfMEyc+`Q+Z9RBWe&^T3K+M|VM8W) zm-;EcRLY-vUYveV`Fxz*?QBV>;sx>=4Ao#^qHBNGk%o8QksMOHOp!_a+zM6KX4lW| zI-};xc8X^<)lTc5erIO@+B8`z0qTWkwl+9_JEzGYJ858U?Jv6M;pG#hEDl#1KFDqP zy;}lwq{>ZZ2zb(>U+Q|-)`&K{NmQ8O+KQ$q=ABJ*zs60$I}%=}`C5wky8YZO()v)Z z^~GSbs$4C18@XkC@xs7hXUv%zPfR?U4!$Aj>DMI8FcUGuxVe>!ywGNo*}g2UL{kT% z3qMAUe;8f(adctdAHSlBCfi4a=`$VEXJ!fGw#RK&1riS+z3_ux_gFDd{@8ayy3Cly493}D30VO{MsJ1t~GPk zYZcXowi-i;_U+EE|E? zWTQ5EsO8MHV}$-W%b6>4UGr9Uk%EP2&-1-&xm5`DXY;tVq#Ncc@tUV6FFAs7D;eWf z0LHCktdy&NC$>#s0&%wnyQ zhkM?7$olI?T7P}@jf3@9PM&%Fm6K<+{@P=){@P=`{z{kV&zKaJTYp8<`fHla`YVLi zUwVu67fn6GE!JPOouc*EVRrq+#$x@ICUoNFKw_`WyyAT_e1%dl;t;bB^fi>F(E$u$ucKymUF3OSIqPc}6;yUf9w0!yC>7lt~m z-hdT`nifLGU-2n+$zQ>B_h{E}pXsg=tSE$iKh5LuG>_NPzMnP<<~0S)tlV5k=L8Sg z7qpttbxPJpBcJcV`+>hQpFi$IJd9)4u-(BAyC0CRReO5J`FJZ6d&zfoQizm!X|C8y zDC|8$Az1SUpKzHxq#!U`VrX-=_Y1F-Vjoz&8B@iAOe}qS5Na7v zEn9%1dE+*>Pj7ZHcG#+FU(}VETv3-Kd4|c>vOsY9z?+A4yO&Gpte9_V=@oE=~A$_dtP`6c>Y77YxrF%=-TCPJo zf16w@TOsf4tE`un%H_11$ zS~|m#iA33p#EO>kUQ=rH+zZ4hpZBfZ0mS_jlZr1vyFNwW}80)#`VbD=ROt@?51eqh8Y(- ze`-i-0A*Q_Q&n;_rqWgIB(=L{voyR7S;J-J}hRUKHS{y^uZ2TtE;h} z%bQmcxo>gX4pf;HEcd>wLMY3x z7s;Jhh6v|oHIJ!Ms}eBFJuB*y+L)Q8JyFLm-Ag}IP5xHxQV`bjU>g@qy#5kN&9Cj| zCik2j_om)}vf|Xt_7HTgmE?QnyEZsCZML4IvQ$_O{Mv3? za_@hu_nTuY+PvoFfmppKv#uWJ2^D(ODmbpKrc-ip&Q6GWLci|G zea&CFcb1D{<;I`-8=ZDE9!2%#(BgMXnOh%e zI!qrjg-)wF$PhKXXhQzw;=F-a&-|`t{`fYz?Vc@tP?KbLNsY+;U45VK8h>0PFsN5` zcfW?ij5_D0^-d$w#lG`upJ--j7BNxA%^jaPG?m}udr`)ZDTV)Wnp{3hMa$UgZT;rYJ^klt!9awbi_9gio!mrD^hx?g130o_HjEj zQfPtd$5p9Xwgt|INoP52`&W-EYPshNrxTyA*}L?`y%uA_tJJ@fp~=hbq5Umwq<{nV?n*1Ae6>nc4fZ#$K4B$A;ooi_OFzPATpzFhKedM3{{6-4= z9;4o->mg6*@bS>x0M|CPnvmvqagZp%`GMEI8^S^1rBx9qfmWWC13%|=GvOz#DPjFe z{zT={r~OR{)6}`f||ar&YvG)eN}=r-!pJznWL++i;#eh0afF=uqK> zpL2Zn0JDge>vc*xR#Zr|H5ozdk;4pmdF^^pJ39HU*3c0}l!NOyKzb&^(18=wUjHlJ>^;u0A?Qbqdr5`wLbp(FM<4V3IUCHs?-RnbAtNvfT`QxQr@rnd*%DevdtM?8}b@**Lz z=1y2h&TEH_l5q+0rpAMrcQzyMIV6kEMKVo)B&+F+WX+W9CM8=GZ*`XX7}`_VGjr$M z+3ebL7+zZU7S^6s33dE7m_O&{*PmWr?$ur#Q&E|{GQO(w6^&--u1I%Lp5aIr<)8zz zijKT$=yt}hj2ZMziPNg|xxP+6tDf^Lsc)-MDcjx8T&3OXU*nsl7Bp&J`pCIX!oR6%BtaeRtjmuC z4ST9+ZheR9VR=PQH+76w7?&0;7VS{XQ(RwOv{ba(XRkuPy=aAKN2ex*@r|NYqR(J% z`udwi6{24{DSVO-6s-{*^iA}s_@ro^=!$QqkMXmj4Wbo(Nc@cb0TraFd5i<)H}mpmUyjl8p7DRFhAg60r$$8 z1U{S$NDo0Wh#rI&l*0jkMmjoBbH)McFu)<~m+kn0htkoLgt(r78f@%>0O`wkM#(S* zz+*|zWC0&-f!_gqJA^j_Px~TDFAHRteLVh68~kD5DcwHc@z0e0B=BT+@F0+#E$}}9 z?}zZWz<1&C#7|os*wUHpJ>ZeVM5haoq)#3wgwDeRejQ+RZoLKkP>b|(5T$fCfyX~n z`YyneZi*0@Xpw#f@WkhE;4S%l7I@MRE$}2if&Uly^b2g#@8Z)}+NA#k_%P&u1Nd+Y zI`@I6e)J9S@fP@a2#565AC;!|6zV$?c&cX~;D=bGUkg0(uLs_e{~f>+|7E~i@_&R+ zzu6}Jw|x4&HtBx{J_2-30v~BnZU_n^eq7M!E%_+~9#vwJfVY%?G4RCalfYZ@`2qsO zryh7qKHmji1N<`J;{XNu-vXZKAGe_|0r9cGp8Q z{9E`hfn}1$cji=~3d3#Y-6GQQ)OK4nY=AvY8G%x(tJ^ zW0Hdei<0HQQ~!^`AJJp^M8-FPr*ZHJ{L#3`;=%AS;PH#OE#i(YQ|Z zsb0H)r*`rZna4?z!%x6d`*sJO>LH|$1(Nt7-`zs{Qu=YgQ~k#RPx*xOvk;*2a)Ad) z6MjGNR9`ylv#f6&@B@Hf1$+#j-WmLRfC%;fBfx8TJPCFT@I*)EWTr#>Oah+dssQfFBL`EbyZQ zJQ4(gIL$Yo0`J1(iO;^k6F;9@(5H4u0G{}}3cSESmHQ;{{=okUJiUAn>a_rP;=@mD z))S(?8hC2=aNxn3DSZv_)E=XN7upv=<|vQPw838jek9_HfKLLXa;d;D5T|;50=#9t z1_Dp@It{!@&ZyTI;EB&Gzzh0Jd_Dy{{xSD~x8$=NNaC|I>Tb#B79JmAgFgU#GSWW| zJn<{==>}mDpDzM$$>$@$6Q5gvx8ySzcq;cj8~Q_mC;l6Ox8#2s@WlUjz+3Xa2zY8g zC#(@^d?kLU9V>vR{Eq-HluP(+z*GD71|C06?R5kJDt9>WmgRm6Je8XQyk)uffTwyb zv`A0%y_MYfSqZ#p`~*G#c#_Xcz+1|v5AZ|>-}RaJB>jv7p5(J1c%fa0{uJPe|5LzQ z^8YmO#Q!hATk^jSc;a7%LBNv#cYr5;0)e;W=K%1;Paog~xe-67fTwvv4Lqh`lbkOC zPjVjxylGwopSOS~`Z^o>_kkz+nKtx0pi;#5(-wHDZ!qvwuhqa?)++&cs#i7emi0;n zp7h}$@Rs^82Y3p93A`nrOM#yX{1xCQ0}A^59q`0|0)%5JpML{S{67YyrF^6TTzhGO z7upNS7$xvj?tI`a%MAyRNo`OTh_ONPk+%SeKnu{ zj!pW*z~dkD2-*}?F_qf_B!#1Zx6~`wZX7@3fw$zxA9&(tCh(U0JPJJ3vkZ7F6-@L; z15f(A5qLp9)V?$M^gDqU)*&=ry$U?Zp%!?{az6l`*@@F6_@z72jTkADP zd_UCd3E)+Lg4{mf)0f$#|D4DF%Le}=@S({64)9?Xbh<$3B>&662U*~U08e_;4vS1d zA4vWafTw=#2fWaasC_p8Pwmmq67L2C{|I}2f~4QVBj6VRPvr@ZfFB2CCAz{R;1>f= z`XxL9{s{0?AK?-3u2}3u2uMHy|98``1RZmrqA@9O0kBd}eQ)e;xRCd?QZ9{I(PGKF-AF{tLL2l=z|Xd8}8B z!m;q3lskj{XlzWz^o;zB+_a1kc)&=Rotvx6$w*I0n~o5Yq|CJIied=4D&gFeSbOUT zu?|{?Lh?||IJn2kO&K{BtibC~VaBlRyi{Fw9P3{RWrl>N@Se2bk|QlYOJA6mpHi5k z7qHpzGm@{%PMN`G8x=PqJ|#X$Gj?oBV2WK%%_)+Gj~$mXX2{SXV}^{3A3_<}xW|W# zOH7%d8Iv+n^Y{=BHFikSkoa+<##pAdlQtxbMcPXp5^huO*zw6kjY=gsheWXP!>L>c zjE6YzM3Ry+eRghIN=isdN_fnF#WxvSeq`&G4vDf?$NrA%7;VvtV+(a@GucKI8p^u) zLSiiVjtqCi_k(=BSo^MGYZ0olQ;pD2v+N<2Jj{VO!z1l!YdELFcAG4`|4e*?OK#(a7bIuo=jd|rajRJ^SXCK0J0~?G-;A`Q zE8)?03yxv2b_+;VqO0H z2QnJLHMxyaM{pyLeMTcWE~4zHRfI`;@Y6JIzCJ_Xo)3;0tKl+7+shndk$NmXN*K@9DqDF?%7x{qkIMS|WMm|6@qc~v;s%1NY zk}JUns#p{^)Y|YE#VM>^6^jZ_$xD4IEhQsIUpPM{O_!FLA!va{U_^;eQbgI@JRZm|4JdY0!dUwY1R*gJ@f?g9(nWn7c!ITF(rKjLpbRXMg9zTdS@hga2I!M%kab*;o^EQ5JS8M2Nq9xKV4Jv!qTLtLsI`KF$ZD_b10@T`(g@n zD5fySVtU}hJ0 z9;%1M%D1j)mj;kF?#L77- zH;Na~=s&hFALe09Lk1nJu;UvBtJygjoLwJXeoj6?{T&_6^KqT-yO=jhV< zWhH0kG+*1^5|H z2+(ZE{kA_HK5#a)BF{~S<^=)k1(lx<9a6EL4pXe>7V~^)rpk@!|HT46AxfME!%5IfHLoIaM{A#IHJ6pYE#LFf7k_Z(P#IE+x3nu%u zrZ-IXW5S4SbEE#pdsto?VWD=V5$2#?VGpbqy=-#8y~BEi+tlkn-@o!T3%6f0dg)}J z$8hMny#vf}LEG)NWqAJ-;l$tK)sw9*aqpfUqD9Q7UU4v|W_YfeOzJyKZT{011hLcH8U1QNnO$ zw+rLF6}OnQcyVPS)9THYB@5iUE9+GYyY6|=vc;yKL<#-GglFHrSQDkCP$4=&tEEsj z$LL>r8)mbhOQZWje14Su&=+K_MPl1R>;V#&Ojub8ugF?U4KK-fq;l@zf==+ z&NjURZHp4L%_e<+p{JYh!V5Foa)noBws<~$tAS5=ZI&%G%3phH=778d@$`>sP5vP- z&iD)ueQ##oL2)n6c*d+=omnq#S!K`8Dk!wS$mcd;RxjGv(=@2Fj`kD6l|-g5t;4f3 z7<Oy7*0tirz75-@#n(xgkpktb2tK+^k%E8nB}Z zSn6t18T5k>;WoMT!{Z&s8~EgUKoLw&@j(-~&i^t3+KaCNlAdb(iS6W{=)^{|_r&ex zU%|)I_Y3yo_ww<_9ndG6JgJ$QTZQy!APl#h2*zho(uj_*4h)Nhds7w@QkEBJUv^*g}FJF4F$KHgFN6f&-S zNBPx!yb;OlwGaCt65fTIy!#KG8kfar5cg&d5{20Vg%>42L6 zCj!0(7znrn&=-*Sk@K(xA5y=K@Fl=nz}BvDb0onDEyCq2fs`9E`mL z_&CDN9E@!OB)K#KQu+gYcsC#33Ydg{RUC}n$j6fp`4^FX5g#t(!|8xTCz*$X03SpC zXb#4z0I9qnK*}%Y!!ka6-HnUC1W0rm0il~o2Lbm&{zeW?-3|C2wFd{M?f~3_^lJf0 zU&;YTAYUm5V;2DqM|d6wWA%W85zgjdY&zf@pr_^F)QNzkuj4ov8x0tXa0CZqg8*55 z1*H0T0}{Wt@huba+X83=y-OUN+6ed&!pAu{)d)!W_5xDA8o)&4+rh!uYCsLbaD2(U zk9=!6IJE+B81O4N7`q7Y1H{kc;M8ou0|;kwaB4ar@i`HY%1Z{M@&*ACpAmpV0aYA~ z^#x?>14!v)fW!wG4j?)=@y!>-UjwB0Ccq(xKh43|MnIx_oP)7Oz<7iYa4>c^;D_L^ zhJ#Z#0q#S1BL}Ch03`aQfJA>DU>x!naxhj8Nc?1TFjfn=ANi+naOyZf%AW*C`6Kvn zFdy~>R3pEFgR$O#q%Sfa-gf2s`ArT^Z2+Wt@8w|?Af>P1VJ43s2T0{50uBKE1P;ck z0b>vz#KG8Tz+i+UI2aoYNc;u@(zv7m+y;18#+7@Chv#^Bnuo^$N#73u5si}eN7?=}agwg4Uhy=FjauO>hx(x2vFY$G7%(WK)XjHPdp z@vUrgZh$M5`MX5`N>BI+oAyeJwe;s}Tcq60$(Mulc& zW$TQBLLnj`{_D>m=upu%CK;8xfmt8=yHwV)yS5ErM&=fo+p?{-;J>J~mXBFcYxR9U z_ntd*8D_}cPoK~4^ZUH^ykMStp7WgNJm)!o?z!jQ^E{-F!2l7S1)L84{UXdb4tOcz zJtE9F26zeL-6G8B0wjGL6yYrg0I9v(M3~VE_&WISW6%yra+NW-43OH<%+g~SKAgb| zY9<#T(X{|l{w4++8FT_ted++Iy=z5y%k6-#17F5q0pMiFXBA<_QotC*^F^4E2Z&>o zc{w7?FauKk=8NzavVlPQjt8XniUp+h=0%th2}td26k&z|klLG!+dp zXFee5Bc4GX5XV*XB1M=%PB?J9EH7Au89Ko6h^s}IaY4!YzX)#`0HpRlE5eLZfW*It z!To?wA>IT?^3?%SJC?C@GsDLLb^spgU!hBZ%Nb)WN#M$4xr6SD81H_UsFGqwKWOx&U4TRnnFwaM0AGe2Sd-AL zF>k*JGoUN36Zj@T9q_0l!Hfn#++y;aBFwlQkm^?kh^ERbVX#Pq83lkHNVftKpXDOV zSjO;60ky#Ai!dV(5K}{5jtDc70U^^&6QCM+%s~V*;sDVUd9fnQFajO|T{s}gVGv;k zXaza|f*A(rqmon!_#EH>@a2HLfE4crTo34C@m9cfh&Qpg6A*RO+gZE}@K(gFES?Wo zgt(c-O@ONr=ULnUcmv`9LV0zN<7UL|fJ*^40bUD8{etlMfb#*VKcoXvdlQ}qOa`R( zP68YRKf(_HCIa>Y&Iasaco*O_#HpR90yZ+d6A(Jo*8xregzN$zDz4t-=73Ni zw4FW`@c_U$z^4I?fK)C3#{=d7-UUc>F9K5i_W}|YKR=|4zsa-Y$QoGmzO@Q@))Gqe|QoCSW=?#F_0qOwn2IK(i z00+T;A>aU@1F#=(2VgH?3SbZ5cED~xs!tbS9H0xZ2CxmV7O)i%bTS;_<0`rc!nn=DBdt*wDS>w2A2r&HFBsvD(M_UcaQkV|(Asa?8m zq;~0!AoYOG1$=+d*&wa5C+K*PLfIYE6QsoNu^^rDU{DvX+ky@t^;k$xh*EhZq&q~R zbcGzjwJYRch*r5Tqy@iwLYjbS2x$z_DP8)5dSLWT_^sDF^{9ouUXNPn>-4Ba$OX_h zjovpJwI1CtTA{2P?HrA|kFFoBQ(iFGaXnx-Z_p|ahINH$l?TFHVM^uxu(mL@$~EEO zgsur{RqKTP6WS(dm9-P<@H=R{U{om28V8Ngj&Z=KQ}!B9;rf`d2l)NQW4PXLY%{7= zr^fe>KRaHnIx@a{{IT&$<+I~k5o;LVIKF8-WF7BBY;fF#adyD|ac9R3jMFMx$L${n zUSoU4LYA?vu_%4){;_R86SVOt2| zD8tFhUr09xq<6FQtEv8^JMf_JThbTe(ti23D2w9K{&)?O-^t`B+c}h8%kqy!-=es* zA0EQ$&yN@RZ(;cxS^ken9+Y8V^|^`iL$ zllIeRu=*Wf^pCLmonrAnvHD5-;|)x{CMMq!RzEY{2oVY)3)PQqrWF2@_(Q+>tbWf@ zI^?HzrVz>G-^Ap9j@l3TrTy}^n7q>d_{r(I2JyfIg1VUrPK@r#43aB$bbN4~zem_yK2P z^iNUyp?=bS{b#Iw>`Xt`u<@A6=wD&-nOXc*;s<$nCJ*he6aO5RKAYMfW2=qnBbf9j zi+@MuL;sa*JXBDA$UDg7eVFN6dSCDg>mNMhr(*3*`}-8;P=4@(t3e^0!LK}SBYwo6 zl~>LBgOT;em#O}cNt$odslMR%JI3!$=!*Ie&*=Y?^n5Ex<7^`mzAcaFLy^N*nSo-5EJ&g2+{7#nsdse^4S^RsF z59Mi?zF#EyKu@-3DbV`^N~d|3LMiDBak9Zo;g3`v=zAFbx744I-pSHwAD`06HZ6tw zSoxvs{?tN+M)HHl?JWK^)gST}vGP+Wj`TW~UdigWou&VR^n>(=So%KF zH}XHm(z~esNPmK*r&E29-o?__AdS*rV(C+vyg3nqx;O{P3;OpN{qLB(zhm@=SbYZ> z{S`!yGK*OMzZvZ$k8h>?kdbV@3IStL9)F4Ii#nA(E++S(t>y7AsQ%!2h^5C7f6Nu# zEPfs250#Ba6Y@_&nbP>!%+h<%8bIz0&XXivJaLk@I^DbEiCho0q&hz2ein%KH-am*;QtqW_r}|0=KefEWE8Uh-w5 z?d1HYdgcGU7k!DBd^dZg|II62>J{JOCC@*+(#NBJ$>o{rrC-`7m8Y-pN`KNTPU|o^ z{Y~hP^7vdYet1VVB>kvY{D>F*yI%4~VJyk{lkHo1d^aNUIN9)($7w%V9>32ko%4UH zg7f|`%kzaNcah%$dgx@Ix(?%ejc~M@q4AB?urKI5Z15?k=etZ1?e&QzLk{`Ik}DBD z9UWG%U<=3#>-~uueMHFlIM(8&IQc<4FOFAVD}Kxin_KQ9n&RhD!1(vXfZBbW>F4~OqoHQPDNdMXSXFe}iq*E_5>JN|K9%;gqjYXWG)M-#=LCc71kMn= z=VSwGcG(Ffq2qa*KkyVj^z&_&-S-LDAzey#`cq~S!5@j-YyxYxf92GPyDs7pOU^SG zp)FZ}bb{1Hx5n3rdPh3&HQYQhe}NuwqFe zosE`~3t{Q0prEiIVePtt4fw3k$NYw@|Dq`m%J~xug0vHr{K(Dpy|>42dk{^Z<; ze7N_I*#B0?s z<1d8uY1DyqH_SXHkbX~uNNIGZ6)a2&-+oJ2@h&WUCN81eghQ|bp>U8vc79OG;z=BG z=#29_#K{PzjP#wFbEUG+;b%w?J^WK3iPgkQN-<~3uvB)K#9u;6ieF*oP#$);ZWvqf>`Ic5 z+vil6kcjM5mk~&i=2L-U&N+Sxo$F4J&5t++ib^^(k|>~nsk{{9Mx)XdBmO{xsM$#O2Hh)t>a*`jNB)PMC4U|MA zP{sVEdlGz#it*L{9(J#Ua>uPZg|#4NqVlj1t5iN>@G_ zB-sx>$qzmecv3bc3yUCs?dYNKZZ44lS7OP}h0&MU!bK86k)ap)Tz7)Ml2Y6hKHGN= zC5t`UeU;?CO2ie_hY&v0BjAP1v#B!(9c8Gw5+S=us6^@t5zb{0wG$DrlgBQS*+r5> zGMg^ED$W|!o#3-tDeh!1h0Sp%_{^7VqKf#Q8<7*bNc2yEBtctLgs2sFVM7iBa#Lo{ zN-^=CF#KA?%r==)l9PEpF>y|+h_MC^*&q@PJ+7Etkdk7uB_*z2l{9y5N=oXymGf36 zu9|0?ol-E*wmNlQ!a8iYBE0kMXW!%1g0K}zKiC%L=o@E_$3FtS-e@GGzmO>=m?;m! zfLQ?aEu`>|ZCW9$SW#KHi8l3F5KrYwF%N9TJ}d>|hb?)|bOrp#5kk$`2}r?hTZSRL z`AK{(Vd(>SKP3;uTOPoV8S@vh;^|BeMUNyGL(zE!LJj8nID`m1Jv5b8cq;78kG^lF zkRt+a8RKVMda0I)t_vscygq&KEyK=osS{?#@rVHW1#qo1@8t?k{ zGJf=(CIudYmh{((`m$H<0$%#Tj8#z~MF73|N#j(mbk@a%T&x&32f6;}n6fuNI`=_A z(mkCwBYxH^-S1iCMM0jG#g(hp6%-1&NWQ$h>#t%F0G{zHOBHeSeGKc89wONl#v9wo z6p`NiocLIk!u2BHx-a`NenNjPUTa%ZSX{b#op*iDFn&^fr(Mn%dw^Gc>F~AZSSvOT1jHyJ;UDc%Hrq`xBQkCic`3r$zklyQt zEZnh=2!f)~ow(?RKT=$zUyn`N|YAeC!AxEa>-SzpOy72Lgz?l=1 z&8D=}_1J`}N;c7D`SjT->w(3?EDLlGK|k~x(1+<oLu+NQDR%enC!hHGPj_AQ-u@MTTJXz% zd~;3EVmqCmi@_Ri8iWc`#t8Rwd_u%&tEcSD>{91y42km|P}Bxb4bV-9R^PkQ9(kEE z>w%!GQ-;LwRGsn4z{K*p9A`LhxxDTPZbD*~I#=)9Iptt}=Hlx5zM9kbsOMd-p>G@4 z;|3jZYT6+ABvmwWAv)E{$d59kPc=s#s*di7ne>4<`lIIPjDK8ow+ zkTWsSr>dhra7FeuhkOtd*{_J=DsQb0M?ARQqwU;?I7O5(njqYr0Bf6x@! z6BG48a|j5IH;42zM|QMFavf10HHRE+k2+%WBmc%tj+A`ImLlyYl3%EZOmZRn@tDZt zBV})NRHkY-#%Uq;9T0evV>2pZccc_K%9^y5+>w~b9#mPuljNvHOk}Sj8X~DbuhC^u@iY=Q<<>sz!HCP%r`k%F?iq4oie?~jQ*)rXdf{=kZMiMFrr za-bD9mLXM#ifm4Gls7q2kV~iC(xTlQ=h)1>Z-w3_^;SoJR2}lZ(3&04TYL0?9nq-6 z&>QgPNr#%FdaNPmZIR~{{HN_vXJR6cK-IolzitcqKvB)+P1*`7OIx*xsw}m;J!FT0 z3o@@YX%x%2TUD7CsNZq(BkEUj8ycWlhj zQUjqy;geqt^*)g~r6~nl#j7FzAWQ!tI^pV(@7BD}2V2=E>o%#T3fwInHM9-J^ zF{5@&KB82Ll5IU8vW|+=16K348!W^PpJ{3?Q@LU&0X3}O^%J$nmIys%AAg> zR_%O5(Qh|t3E%BlU!+Z0rnZ2IUPSTWO zRecyo9cdvKW>QQvXbz?xsF~konOCpMXtgZZUp@bTC8JF>uR%3$zhd6Lnv8w8wnQAU z%jwn+sUkATh3svX)V7hbn?gS+ z(|?|?Kh>@I76K3Gzd%K}(6!zAK67Y4*Jw#?MU_=%l3amWq`Fk|A<~}V%KX9{+Go=L z4b|sE|85RFZPK3~APt-NK8$*WpuWsU4+pUiBM!MJFW>IdWi4Hd)+;=cVlzS$(AGuvBFd?+ymZABP`K?H` z5yP`ch1svnB;KrRD$BGLBh5?yzHego^Enm&*nLy|1@$DAX)Qldky;Z{JBC}++P>*~ z;O^pLt;$@i@0zl&7C$Fzo1Nidc|WfYsy&rwXzPqr7-KoRvO=A6Q*fP` zn|Nfjy<@}C@WmatCBIpI^^~j3NiSSmn|x@YLNhtouG$v1N)0;|nJv5aUAnjS%^!Zj zkG@l3(66lLny#3jcc?DQDc_ZRS%c}D*T%$lykmH;FSsZ*Qa{Q(@5)CeFKWE-!^o8_ zQ**`qckg*~^q$j?Fz#%zv3| z4LvqfGp^l=xpZc=vtz33Xj||y{^7$F>deutYqCPsOHY)gnu;<4xG^oly;qf1R8wZx zZo*trR8xtiYny7W9e*_;wtPJ%^)0w#IQ3O#?G~%HvRm_sL0fLuZV`Uh_UbEmhJQ)G z%;@MHe`oc$MT+r7)ggEGjXz|I#%Q?=r_-89SQlTP{n|j#K11MsLtx23 z&}%0B8B^$aJ{0%Ek6ZT=lbo3FqL}a=aPEsbm>G2lY^$R>@H~Mv1=dZ~A$WXwyBUu! zk*BI@?SCg8Sz;o)`o^EB##%e7*Y^5^3mvn%vo7sb&TMU;b)h4@t|qO%a~AHXxVPhW zhl|$s)FUd~tkT*#=Uq^y?^Dq|mhR`BfoX%=SMb~Oo3`g$YgPDU+ZRQ|S=79c0lm6sD&}aGj^LG7tXXrq_zQm-*jrW{W|9P4IHLNvojlTI6w3(?#V6< zmK(2`>7IOQAV@59pmncJTh;2QDyu<7@R$PS;P(k_t?tbj%jNe3$4rdLyZXw$3wJ*D z=hIc2E-bRVyKdt*4_3bOiS6sQJ+Z&9FW!7(`sBH{8XKm4Sh1xi zBjJ*}k9_^j^4-7tK+TQ9bM#re%g*n(F=v~&J#LQ;8^T zZN}zVcYS9}_}wq5!bVv_cI?OT6B)uIB^G| z4h!C}>y_Pg(Y<|!-3R}ycsS>@#scFu3Sl#)RrSHn&kP4+Vz66==Wp(Vz-+RQv?<wk9vOU83IhP;Q9kp&X@JptjejW+YWl3)}U)YWlR8sbRZ%RIzc@Q@Q&t zsK&y4hdnAk____IW7%N_@eM&bpY(K()qZ!ZS*&1{dF#>-+snq}nmIF7_^jRf)ZrS% zB@fs+JH>kx5AJ$dYq?q`?Iq9XHIL@NW&}xV-x-jwz;;R4uGa#lP0K|2rvs+w`o?N( z+S-*?K2Uj$bhgI4RCR9+j&SR{-q9~HZkY_Vq80GIDq@+@@t9Fv8nGDDL~k>wz`PJn|e)|J=~y*537#a#FXykhAoclXA=fFCt;d z_fJ*Fb1nmwMZuIkvD4lhzza=kC8qluWSx4t#|iAaNP)POf=!yxp@OW}N)`>edTN1BaI{c7c;6_M_m& zpK(evVuFm;y4qj19}O}Kn?yizT=32_Nv%~1ouF?**khL5qp5TTadd8048c3UO>V7O z&e?4e##)#BtM({ZkRsz#Vz9)%9P%m7tXr`>5QA~@cco6;6>0a$E}$&27ecz5Kw}mu z@ZxB4_4@7xm4Ob2Gn#!V`f-(T zHjHz>-V{=5odQfWJI-&vWm;e*JB$o_Y0!Kc48hwPHtFPIGvNkhSF1bW7B} z{J;WxoAN}UCFD8q6y{edBMV?tbdAS#c|SrmKq*mFDos=UWe!b?u$l znR)L$!H$_vCq}ll94YJHoA&sW$3C(cFo8F27i9&ucM^8g<=`A>*R2pRjjj za`Mu`%a(0gR+tkPA2&U6Fs*gdrn25g`3I-Jd3|DTe0xdBi_^^$LUix-otPc*Lh>W; zoi6_Rn@65}{JwRY)ARmRT<{<5c2m^V&)@Us6NwYcrcHTh(V1T#hi3^~vi?S|eCgkb`Brq6Z~Wkn_g{94 zc+1v1-(MUW^x8s~IrCf}x3nR*V>CDUR@)njyIN=33)ia?C-;SKzy7k^zdWwH^aXC- zx!ixmo(apT$vbt>eqYnFmw)qW`;D)^xqibR-o2#|?}iuu@y{RjDPF+fx({O@NoS8d z*cZ7vT#->{Nv-Xy&$46d4-10z!FU}049}rUi9k zKkwClNgEfcmDoeW5=z+K!9FJ~o(@)H!&dXY(}JCcd3YSgZ(C<-gC(_2g$HLWS>|8Z zmVQi?-r5=bMzN!8nWMa{rm~0@k(GE3ZE{R_``XaYIeHAohRI1h=JWcqs0AN~oi5rM zI*JX|>geOW*uaeXR1v+}xHuKN8GG>bogd38f}PAw+D(m%^Tbt4QuM9DHed|xp53XS zow_42Q3E#3((N^=M>^A6Eg4YAg^u~BEa`QKcGkZhhy{~lBjmvf1ADWL)yq#}8^@(T zjm-hml=h>U*y9?H4XckJKy7A<9!nN1iAu3>G3iTt^?x4-`a7@x)TDn+z`T~PA2eaN zA@sbHwjI7OsotYyC>pmt1lxL^o$bEykPVORXsN@tLofWHW`4aY{Xi!kHDIfX=eS*f zE2DFGOI`4Uc@tutJI#l>x{4;}>%tR%X`B#qMVE7NNn@pg+iKeUvxrT59%ySnm%Vmf z)u`2F@%-wtQKM$f;@8^BZ!0Y4@h*%PzFR1VUHIZs-{;w`5ssA>R~62*@YlnKQ}Mb| zIVzVvdEn{o*pH;brCBBNieE;=vkyevA58eRV=pi03S0R~D$261q(o#TPqmQOD?Yz` z9ljo{EH13rh{K)bD=Lb&6z1nz_`JfZ!V)^>SIETrs2RZvBG#i(5o6+34<9&}|z z(9@4^-8Ey?jG#wnOxZR4@n?2bycD?VnHjeQ?z(x#u865ki7QvVbX!I7)+x`dno%)( zRZ#k)5vN<84SH+;%&{pcze{;2`NhP!zg?_^l>yi)!hA$~0YQP~aTw=VrBewlk53nnUmqhMtP8+kRpEaPMLzf)xs+}L=*UL-e0 zok^yTI5qwcwq6&R|3=Dn=90gBO7DGRBXxJbUR`hG7wNXOrv+!_8^@bcYV1Z@joiG$ z)&ELx*89YZf{hpK{SDz)8&_A}^z*g1RzLa5AL%`F(rB$Aa9>%w?TX;~0Cl@{{P*p; z%Yy?o>h`Ab7h?Dm=AwB0sRufLZVbOnx2<|+eYR<3Ssbs^yjW&XRZy;bCac?Bw#-@1+QgOC zcyRiiDeV4jirJ6_t0mN-19ixGf9-_beDEv5dANvt?k|b+$<_}A8}GADEB_DHY03Y= zI%WMItW)Cu-|I9V<7$jLTbOfbnANr@CjTYjiZd&f{C_&`ptTM5)g8CvlQGz^!jl@! zO_S-48CV-Yw#!Q30D5J)t#nnv+@Z9tHZ&VH19=(YRkJRlvhJ(Ah#1b>FRESb#&N^$c(*#EPk>=pF6Eu(iCDCx>uM6XpvwISa)wo|! zSkH^*z!LR_$+gp;3+WF#Zcq6tWYbHZ+EaV=jn{r-PdgmiRzs#hg;0oR(S=If7gP-c zmjXk0vYSo!k!%*v2c$rdzA@yH7){rJ_ymGm0*FsBxd1$BN`dGoJcKmj`wbK@9gsG_ zIiBNOz|*&iQ*aZa$6>)lAceq<$9O16L9{Oew>pmb`-D}a~eA^cR}iQWo4&6`qvR{&4-Dg$0#uSbEO4tx#p zGbDPH`)A-UMf`c-DP59ZiAJA_cn|Qg5+3DV0z9<~*&dg-O9t>%-_e*;Bs|rZe0~sq zniu{yhEMmxZ)5m;FZ{#6gB@20Je4oi_XURE>V)hiBoNgisKjliR8aSMRQP!{PSxSi2o zCZk6(_YlM1?1g_Gc&hJu8J_fc2zcse4&dee{}iKt+>8DKqyLQ;{X`6Q8V`R2UOpag z2A=xO$8tP$CIxA(CrEmcf`m^4p8Bs8B>bbm&yA{gvyF{-?tGliwfS zU%CF;@t>tnKtJ}?-%5eUkPyNx=+}FxpQ{@FF&~&8v)n<40EZu&9BRo*Ji>QvVR;q4 zLH3*(6?`dQ3;%wlYdlCFzB^F@oR|+Y!jX_DWWHwUy4wm%{gafeTeGIH+_wQR@rW!OOZz%*D`AJ)67yMWu><<**9o)5emHa( zB+Q;8@bR4^MMxWRURSi8g%e%HC57b)8!8G56kc{GV_)rFPCYYU-zTX|(dnW;Ecz*pJG zgiv`U8WMc7Y!$_;n6QFvF^Q(Iv|uP3AOt2O3+MCj#VsS}@pC5QM{@Z)s_`S)e4pUB z#c#J>F?5oY4+_?qi%Y98Fx-|7X`~36!!|bzu8AAhzPz@sS+{OYN#R=Cs#(SPMe9ln zXL%0p%yJ**$tzwt>)Lf2%2yT68X}_DB@)(Nbmtsm+Chwr*gZuO-~IDn>7Mc;MGJL4 zI;fZ+^-$8h)J3K2LLYULp-+18l6vWgBKq#6BWCf}M@P)$w~LOL%TEs-p&wpsAN5!u zq)sYoPVA*HgfOyUvOK}cfq1wYuY^{K$F+tz+s^Z0I>P-PNjiw{W#3cm%4}66Go>M0 z7Ujv%!-HhB{ zdJ*;nDfmm5zKHXe-iW=ok@Ay2FA8Sices3IKa&0|(yzd_KocOg0rK`R*eF6A&=LIi z&U6A|Pb{xqgc)@VPw%9#x0PoXVaDx%*z3;QB*KgWz{|kj3JCWDdCNtZu?!G<4teB{ z5-=kNFc);$fFy@mgc-?VdLGr2=;-A;$!lPc_8{?oW#%CCgst1W^CHaX2V4YvFW}{X zM*wpG4+3gI=MrJY0YH+M`~(4J*a32JOWX{~SQ#pA1O+;{l03 z`L6`bhy^76ya+S;(I1F^FN3s~O#Hh5iT^5`Q%y@xOq6MEnOum~kGE_z#FMqYaSww=&oQ zNc^e)68{DfX4C-^e>))YF99U}1%SlgD#DEAfW&{92nGL~;(-ONFyd9)1+m|+4mqU-R07C=e|ExM8zHv`T>JQWaWg5SX`K;)slaDfi;3x4&| zSsZzU^x1&K4`m4H(JUSBAO!!0*gF^aW&?tT{6`D?3G#^J-G-2#(ou%sXAl4<3=xOk z;{iE99ZFLOpmu(hEcq8Dpr*SHvLV$jZ@l|eIuJc9tl z7yk12Sfw%?{@#M&gDn`|;~Er=@XTi|P$-wdbKkP%TII9w!KYLXDlRA#$^pe7QU?_0 z;j!R$NdYf(R|Rw$d)Ex2w{?}LB7^8thK!{-V( z7@$zL1-NkC7H|N+t(yJt)#uV2gfz!Bz4$$*=>eu*>x7p+yS7%VP!4MBxE|DypJxg! zfaFI>3j5JXD2@&<*^639`GFh6KZP)sKUIu!()L6)G z2Ba{N_~E~Y<^PD{kcavSg*zF)A|~S%EKY-j!c&aCk;U%=9r+m=Fbm0C8UV!yS^Pyx z2M;rorxN+7Jn6pj2PR(*lkYMX&u8(?R3GGNW%4Ewe_8xWrVpt;YKo&Q$)1>t_~BpD z=VOfDA;#}^N(WA|?^Q|llf_Bza{W)FI6AXrZ;R$X^25}HJQT>^HRa#N>U#l@{9d&H zPr*j~W$}+F9RpCZk98%b%i_<27xC|9`8R@xJidUHPm>^p0#^QmtbCs0;P(d0uVm>j zvGh|^KJt>k5(+O9Y1;Msc*yyG*~-kElI(#&0y^ zHJ;)^LAH)_d#*4tk3K#F6w<frvcL z=1DjGVXt%-_{-^k=@oy$EB=F5-0T&%d+{gZP;&m{FIyh>^3fqZnfY+b;Z71QJC5M@ zBtd+18G%BwXn7H@EIgzmI~@@pM!l-zV{gz$&3sW^)Dxa08y;YPg?`$*Qo-wy;lfKcfOAd~`MKT^_Hh{2 z16X}4HsJVDdEx2`Z~X}$VuGCZ2`Kb3ezX8*BKwlBxXM;8(0lXK(ZE5#qlpmu!OvS~ zEJ*<9FC*KhX8f!y(;$;i2l;#rPkDdwWnXy{o4>&XIOu^pYiKw z`PW?>KX;|Q^|y)jw^TOXmc@wen~M5gKU7p9CabY2hOJ|=NerDh!-v>1Rz3|* zLu?sSoal6*Q!!cvAmn!2Pd?9hak6yEC)q##lBH9=Uf4Z80XxYjVJG<%vwKXkcx)h# z6=Wb=%EW`{zuTGx*)w4exwFMZHkvJpcL!G}5LW^Z8_iqQuurSl`6X;Ie+663gDU0I zUkf~q0uMQVlC>9Q6K_c_s@vC7xTmO|qKw>5N+%u;zT>n zLvdmm9-iY_eTLUhtmk;tGaL1>pk7%|4X%LgXN!N^&k|qCE9qHkQ-AFswG-9xWa5!h_n3bTfob zCF)+%lUQG=UQ)YAwz$Q9*B@&B2HS(qOCdk~FI4FMrciK8sqcKZ^)l2o8+Epzow8s% zTtWSXUTHMo+OIxH@A7()E-=)cy-LwGc{tMhSihIcDz){=yF6_s+8Y=9Qi_sG>A%Z7 zPp1`*$+-K2T%Xc-#oX+y#nAzj{mqmccPt@!FlC3648F?#AxN}&F7z3+*J;>6r+$NF zC}up2&mgf*RF*WZ8Zc%k%~u_U$#E^VvY8xGeyJ~p!|pfa4VU65BXMYd9NrGX{D3z2 zc8vmUGrV7($NV6+zo$P+`la%vG2sf}l6~Rjb;7OQ$*aV+8z;1#*oPz zX8>J^{caiBj(GI3xlqbW?JJdk0&<;X{X*2U)K^7*qK?GtAJfsdYsl6;n^!uiud2|G z)#%R{w_7#1Hzr+Pf3kn2*CeH_NoU-wny4L^U)@6qQ)9}!=u6i-{B zE8=NI`Q#Jg{52gd!|6D`blz($UvrJrm!y75`WO2#8yA>6iAK`3m90Oh{UrTL<6-C= zLH;DfdzX|hA1~BKV=-q-;5=Z;3Ch7d$%j)(!d8 z5b4EvSl%Bc*{B@3E~N4$-BJ1C+$fbPL1{iB89Zx8s+%wW9{)-^nZ4S{B^$fm?IhJr zl-JWvddMT!tDMezY=43KWDWW^(M$a0ZRx!>qq+{)xj5#-g}&s`yV(DR_8oZ}la7a$ zJ9JI%yR83j+E+fNf2zJqYdY`st=Kn39m@No)OV%6D(O+UA2I(i!u=>nc0a=Um}C|1 zN7st?ps_+5iETpsX{{@^lhhWhuaB4RNv!>3Yg6ey&l$|$SUC>MdGj}BZqoa7kK*jy z&KTfNz!wd*AJGt$`|;2z?7zWI(7nLJM^3vi7m9KMUsNZj zm5r}JqE{D~hb>*AWZs9Dp($aM>#v@Sk1yTw>)f~@b|7=}(8ZNoZ z*KH^*;8)|w4PRVZQHf8W`E{#h)V4~Z^7?3Al%u?`qOj6ZURVH|KgG6^irm##7a~&N z<-UDMA?zv@7VxWVs1<-%HNFfxc!lMK_!z!|UtPX#Ef3elFdS4|n!s7sZ73-yy`+*C zJuQ!rGl3W1N|B6E2r@tudtM$u52NpY+M(({O=RLxF-2N?6@tFIO0ot)}VqogW}peW(Q z7x`qti_@ZY<*?CIa2fPmxjC%@USbQ;z(VC@MOV@pF@7VmpeaS^sb!EuXmc?eX^J(0 z(2Cqr^W-7#rY&Oo2#J&9r^R0#fBlLf8H8ed=M`igl2b-Z3R;7XOC?J0`R5NQTF9Br z$QDeFUlM*I7ZyR-hOiM%sV7_r_+9xJp8li_y%uC@XkMHNGiVP(GErYSbE`5 z@?rVeYZ5Oi|51-?9O_4`Ve@Hc^>U2&tKqRP%{KBZ!W9&*wrwb>6q}oz?8rC?$TUw2 zr%COUCc5MCH$QM?Ho?=-kIZ0F*;m<0VbQFdqdDrbO%T2!voaqX(uylQ(;WxPW|h|n zM%Xx8dAV&f$tlJw(pF)p!l@AzD~OLxQk?lJt*l7n#M#l!hjHGB%(fmiq7moe(xW07+j>^bxAQeNZl(1^kCLD9Z?Qg@XO0;h!tDiWM2_fi#MM23LedrBfMJ3&6 z1S0=)&%aZCdJWLK7<%7=wdIgt8WQsn!2_8*#K|MRuG!1d;WuX-zff>lqKh*#zB*yv z&ge2LDUrOL;qqs|a%R!_8KOi3-)FQ0LOO?QMkkOlY?TMQ5V>Vhim?J0l2bKV;TN}z z;6_^Dcqe-L|720u*q`}t58I({YLg#rmmiUY`UXBj{df3ZssSEyu~)A?C8RX(u`MUO z*mRmFMk+_nQ+{2Gen{o>a^z2NE%(+h5;Me}m+w=->YO{=5A3@f`g1@jJ+9*(Cd#8s@TZzk*-O z2P&4O7&Kg6yXK_M9?+E18!Y2T)Kq#Ek&?F*;=<6gKag9o-yxLo-=>O%5s zL{srYtI$nm-RHXme>D5Oxy=rR$Fq~IdQ!yz+?|ny^}oYg8n6G-sy~xYF4RyKoU`Ff znmPkc&-TC)v?ZcmHUF5(r2odGhvPChaN{yV`}ok0;Ti_2$cGw3zobSCbxo|VnSV+( zzZ+)M+b5Fex=c7yOYc!dBid$}2ix3;K3?RYez+#4$yCbn?$%VY;tUYKMB`>Tz9AZSBRfHl6cc$<-A-co;K=h8AIf>gF4Tr#RFU%g%`kWhPW|1 zPFttx?oG^G);OwTa-MPGWsRozpPOPfO;dNP757Zj-Jfi;*B5W&rjAk9Jz_RrUU-$E z>9%d$gfZ%_NBH@pxx0CsmBzX|adJ+e;4d(i`~}7`e}NCcUtsK2hGTCE{sOr`(-ro8 z9o%FySLBLR#4W!>@SgX>WAPs+A5|xhNxv*-)rB!uzJs%?ba9FYnfJcGjtc7=&-L+# zbll4P9V)HfsoGLD%w1qvuUVO$>dRlCUHynT`t6-=|A3doMy5Ksal<_Za?APP%HCMP zC*Tj4lux^&Z1-JRf2f8Bt^6i)44z0P>I<4eM!EWYyA9l?|2XH`>`}XZm@?Mz-I(dY zk=XAxD{pTb?l_R!mbGWN=RjArDtvlfs?wcjgT{_MrF%r*{U5WH_N@CxbIDH|wbP;umpvW!V4A3Q>O2p%IO?2bz1%OJ?o=$* z#$7i-UzBQo=8SGz*8a3IbHHz=*WRPjE;T$0CIw?xj#H|itGhlVdFOM8mp#aj{{&*x zjsJ4`WzT?WaPNx3?&MFnfEhJUs$MNxHX%7G)%-fTX4>_E1-tYu`I&DXHr;kqantqc zt6pun@zUh0((FejWX#z9WUh8;OHnb!&278%`LARZ zrIm5q+8LH7acQjrTrMkL5h`n{0X0cY^-I)lr+9&UB|Dalxyz|+R zDLU@P*d5!uD|_uphnH!_g5*#lpIT;5+ueM$T6O+~aFo$la9`H$>SM_9VtAK6GQWA- zqTROlt5uaRQmXk({gT~T?^Ua&FYP|O1bTwnZY{nKLo(9ZU;ncQUiw1x2l|6`z54VD z=iPPo({t-~)EN|G1=*YhVf60n-@YvWH~O-?C&iEJ%q@1T2PE&AxCN&=wpej%)~3MQ z`CtIt*uV?c3f%Oaj!L^@?0d5=C@-y5&a72N*k$fJ;jbHyHqV;jlr!L_xPawN0aTpZ zXC)ZIH*%Sy3|=FwHS0xg@Och*SUKbm3QonV8XaTTz)Pk%=m~q!eiwPSWFDX3lpDUR z&7t3Lp{HG%lWvEk13_@iMQ*wUf8aA(Q1lXAz)iY<6i((F6waUFw7khNb}cavY&Hiq z%bDZ(%Ro=EU9eg>s=YCVE_ZVFAO_x}_|Ci@DCp zCl>7MGVC4QajGHw?Z1Eh@GYf|H-42I{$15WDqC*Eq@{m|=uo4@mzM5F7*Ke&QO5JrLT+cF^6b4UOb&)k1~`jEivuC z+U=XN>0FOK<_gKxBj3d3-i@Mi1Llvbow~ltym!fO+6U5d&72unc&aQdOjk$c)+vS3 ztlHRFV2=xRHL=el913%ba6Zh%f8mhjPqBPI)V*!X6(&tLmmp@73@4b1w6X zY1M{be>~=VP8L2kBM#|Jzkl(pwdEJFJXN3Ls?0CF9<}ZM*ldMR8`sy$`$&<~Cf**e zTMkWjAL*#+tMX{_n+Y3r3q6|5`BQv`vFeghI$_@vnmn-H0hb7iMa`bIFMIn$P2WaO z_Pe7t>TFVW?vBv7MGz|Pj)50=XC_KJ@y@v#+wC6mUszpH+Zx@%Ev~(XggY@A!WB7F z)0=J%j?Xt9_7tC=t~nl4pX;e?LvZ|J;}H)*_cb7J$_QQ!&Z!RH@kK6r7XCP^_WWb* zwm{3bv6AKBWH~#=dH-uM>!jw zuihT0`iCdyw|_#;WKYihFIAt`s=o0M-18TEdaaD$*l(*(Yij=HA(;4AaG2xaaQ?OG zCju?9BA)I82N^;58`W@EDkDfc4Gt+D4#{sN#iaThddP+w70U>cp;;^HKgz-hS0ybkX$I^VWV@ADb0j<`|H5i}&ZJT5WaioN<3c z&RWWObw+D}t?4mO?|cwJ$~gN-~H!TG)5&?)0E{aSEX;NcMd^tJ%KN;ehfSg7n))o-r@2N^-~ueMFq zcghGB-3Sf~Jsg(4(lOoHY0mO=fZiKYkJ#dxr4F!ZA?oWSRW4iBde+)1)6~lNG6y%^ z(~K9EwRYP~&7OAN4+4XXp!desW42To!L*rZXE#Cq{>e4B^*@%`TY8zg2Gx0ZMk385 zRp!$(&1X$b`C+l*!MpUPZ^unrV02wFDqNbO?g<(J!&%1wN3 z)^t&bzs<_~!qn;!g8yNB{4K_>JkyXNL_aPyIHtiZL{5nInP|=UMX(GcPDAQ@YBq$b zf~Qt1S#!Pkdf(HIzU`6_J&Ko4mi4te({r1o;h0n2cFxu$Q(5}FDqmc6pO zIW}LMPpZsMq%VKP)O(HlzRZ6Vm2kcBBdIaDx7QsA51il7md?+PZrNH6_qgM>jyU_`6Jf7DUXY#hi-U!aJ8B;{Tz>bFYeGlmWY(*< z)P;Ynn%JY}f@#1B!Lo1pq;Y#Vr5Q1L$;esjvOib7GREvaA`LIggLhcBD0S5AM8?@; z!VZV7w1b9%l751B9=p?e=Mb6)J`8>TYEEIIWD2J2mES4C4=cGHVqD-86t?6hp*sm$ z0?oP1jvIq`fkKdRM@~u3sp^|Kms!eX%AS73-q2p~5lRNy9`nGmuvO;qX5mu`CeNZ> zMQ0%of|-6mQxX;dc_<>FP1(0zvn}+vlGAwjEO{jC;h%8|JabAkVb^7ae?NpK?9H%s zhKZbsT2Tn_LcM#i=3UN?iA)UEy4cs$*MTOMA)ueU#?_kQk4fRILLG?EIQiAN)!LU7WS>wBF2g5BMy0ofa7L+S z@Z|mK)dw<5hj{y5xp`&iYL&b>j(#%c852a}B~HOR3tHP2fkr0w#Bs+;hp6$>&MdeL zG1A!qA?(Qc^|ISvRd6aiiwePIcr*ImPv_c&h@dv(fGHhLEs-0m^ z)hxKcEYrW8p@IH3TeT70ap3W|wbd^wzLTM^61g>2l_A<&}(f#{MjJ>4-R>$P=+|qAwKjNzD>E{+Yc2ol*~enE6?}|H7N@d&`&hOPJebAyVTCuubd=ewNb~a*`;H~fvh-p5$$n|ApT(1r3@Q?q~lVCop~&4 zI^#R@cn7=Gf_8?7b_S!3JeV2JE)!05#1p}e=Vt$jyE*??3QN@Q2ZGw{qPlMH*8Y}V z0(*d6qND$wU7j%Md)eigGW|)`{h{U44BL+v((LlnR{bZ!n2+NF@26}T+glc&!+x?yZPE?#VZ}lR3#6#YkCsz4QbszEy6luZHjC6#I^RBuYADW zy!I8vE5}MzCEG`7d$ybmX&w7o zxR9pg9ckySp$nRl?MIED_SP)Wsl>~HnuT%flG~o2!!8Zm7cXO%)|wPEV;cGu?7a&7 zJ43&Bu}jO?>oY?|Y|Yr4s@bI_^ebyP%QkLxAG@p>cWca8#$jBkO}Y&E$gU8DO|7e0 zMl&YlPH(FzXP1?DD<;gNH-~6mnK-Rv&i`ZYUErduw*K*FW)KF2VGva0=HM+X#o<06 zQv-OxLd8pFslf;+DBuXFpq&~n3KklcDV7zKr?g`oG+raM0wE)%!b=`1D>OAsGcr$+ zKdt|FJ)evsfwAJLwVC@Y8p~E&D1oH z_++N0El)8^b1HSlEX|pxH_g&?JpIWmP3LUIY|WLIr_a`OoqTe(ru)s0XKQZ0teB(W z=1iZXaj4rgMa#WS=f5lnedDE$T@Hg+ooRH;+?H~DvQJj!T&L&T zrSk?)Q4K!ol)3uZN2i@U9-m)$X!^mLE7y1AB))m>KkRKE3(am1|Ln<1dG~UcCO+p*{Ii0I0P%37D-jU%?*B~ z)v9UU?)}`|H|i47;y>d2UwL`s@rZUREG$fX?ATAy z;j+TFZ|&bk1^oq8ZjAQ3we{71rsp1?Hsj<^2Y!VSm*pQs%Vu(?LbmH0UhH=?-VD4jZ}royrG zlA)n$+MsIFw}b54#z#5_Z9UfX>#}DzJ^J{k7lQxthR=JKa}G=&&)4|r>$wvIyB-XB z?AS_&iFXuKZF={WOPyyAx;}RBSk8?FQ{wVHk6g>GdU*6J7cKjz)G z)VcGyhqu0U?0mk7H)Gqk2h`68&3NMS^=k_r*m~^iTtD~Y+IiUr~9 z$MgPWmoB}v_Mx(-uXAtI1&KvmK5)S4_1A;POgr%H_1d)yrVo4-Vd3)Bwr|sKBt1NO z+n3k#tF$woef~no+lf~negDcY1-GUh{QifP+bc4Lx-{kd@|?o^*fIT@p%bSIo_2c1 zI5vr|U-iJGV-4MJ9Q;s)R&o66mw9WV5*^?9NR|80!~Q3~z7`Xh2-$}mQwtG|PG=3P z*7&~i>ep8@{S=QKyL9qE6)qTmaQ&^AzmFJsr(X#P$w)L`ZRQ2gtr2?`)h4@VjI(aO0&GswOg(tHj$`>r&b}7B>(Ac-OT~HPN zy5ohD7x>JWe47Nes$HM*l)ZIrQWYSZ)kbqsiH$?9{u7N8`8u=f5o^oqA4fj;MjkR z8QS*s<$V(_MZEX-%;@NOufF{CwYql`gAQEET=Q_`u=mcU`xQNyz?GJGJv1f2d+!+E zsR1fiq3^i{zARZ1vhHH~4JFm<>X=*O#$QgTc<86vcM|{d_hVOgesS}3jZldD&_U}? zpRU?68u8bz4Z33k4T6q*Y^^U-&P6^~36Y&%N-3!lE(vkH;=A% zm+wtQo3?CxLvW#;&U-ZX*ZFUZ&?IbG{CVcCnZCYHJvch{*_VqZmT;dQZ}NXrqL1F; z-%v&2(zz+3VY>^(O|VbWD-php6}xOtfRP3_Yj?pvmO zrh7Q&z3(sRsbkn1uD7`E(rq>yLHId@?&-K6YtG%bC;7(Og{x*@#@haKhF1%98{f1y z%gzQLNPLCH?wbgt&HBjg3%6e0Tj+nX@W{@vOD~*ky1F82>JCh=A$wbcUTnI)Z$|S|``)08qqco^A+PG; zS0-t$U;JWuv)n1Y^2bVFedVCo!v$?i?|S3FweRk#Jv?yP*!(+RD&MoO_1p);iuy;( z1J-#R`1biX+wQ&Z_5W&LdTiY4uZGLtsOO$q7Ifgdeaos3N<-ws{_^u~r@tTit>_N_ zHLYW&Jpbrv{T(&yyrZZ1uRZbM2Q_7?#}i)KaQ*Wq{{HUG8v|+^9DFKj54%io+1uORBrTbKI^;KQ=%=8*OWF@#PLr# z_ zwyJ>c6Ao>4SKuDwS+!e^+6|BBb|oo7mCb%%1^BiH_#M{!FII2BIrN0K_^3Kr3{Ix; zylrcjXV1;X45vsVJuqcRaatAVv+(Tn znPFa8uAwA9!>J&pEZ?gvzq)Mb$Ftq8@(=vtIbuBJdRC>tQ^29BK)*AM{)c1zPXzd$ zDe^zl;d}n9-**!K#a=TtweitA@EmT^NLCR%dsX06P&G60dZinAz<;U#QN3?xfFGXf zdQ{?11_$_c=^f{+E77##iPv~79CGt;%=!2Uc!E_~RhV8>JSjUE!bxb3{yFjlqL z;OsnpyeeCty9_UzW4~Y(zsFyn-}{@Dp1(3TXRbbLWxDX1YUZl+aq+6T>A87$qu-n~ zH5;$Ls_6B`+i+*&rFY~Nb`c!QHd8chE@=HH*~|-?qR(AKMa3`A$`VwWbK~)bZJsJA z7cYC}=Ho@!)p%JyH#raQr6)~|S0$#eO3$LV9Me^aiF2o^@TNW0LnZtKqbd-4p5`nW z7pzvRgMx#D!oq{X$1Kmz$uum_$9uTg6F{FkJ2RVd$B&P{>n_!txY$_y-nU$rRiWbc z1s8K$j>x68-Xr7N4wG zt1>W@3w3C9X*xG8)aC2Q4--;~_qiTvKYZrn1&7ZcS#bVn=iw7)iofgp>ip66qlYgZ zZP|IW^SkqB_8e~i?&!0J&!0YeezNl`747X;K40+pS1sSQA6?Mee)!{ylcRPWJy4r? z-@1(-z46hgjeA-*=4?rk?Z!AW0C6**KOU@DZFE{Q&rlVQ=e5yOqS~5@FZv#-aiym( z@hoS6pU^M3<4R%QPp8%xJV3t#&*kHB_L3NM+{z}3MZF3?Dg*Rzh#d=2{wnkJhSRf` zaGAB?u_?dIjw50E{IdQ7#1xqc9+Te z$EppUi>kwB#mYA-D&1ucM0hey?s--^^S+NHaT)o>3NNoDd2x}4b7OhzkEJTFj)@;T z+)??^te0iyYh@D_Rq6udj$Q8kq#+B+{My}1&N;`byPaQjp6v4Y9S)5hcRX^@D>(24 zr9;V!UE4>kGr}Dleu9CUzrLYkzstlU*+U=i_#(v1@vU@CNY1fpuQOZqAJ&g6Nj1!O z4E$!l%To{-z442XByV=HR0T~khLrMiFgX1IIoKeO)NfM?w>uDdUh zG&_ztvm#{*ZwPnCqS2c34V%0?XUK~s(_0e_9~SxXhRJs9+TNikoRFn+P)aI`jaO#J zAHM5cZsQ@p2vue(TM7eD@)e@wSyZPp(SoEae=|qDk-DAg4H8o`14gm|5|;X z3m6)$o9yBe=+KyQ&%l8C4pWPrO4Nms5|xL%IQB7heC5~?j_=EgQ@T7N?m z10BO1q8Ftkz~>V-hn@;$?ym_=bd&_c7J9Tqh`TuWL4nGuhQ5_P&n4$rL)w|GHOCQm zJ6Ax44!w%w?gxtXq`au-<1fp1-S65an?K`u$;oUffuo6sI=x`q9xEHE#&-z{MUFUY>4{no%_^ggH$g(T47BRC(Pj z{VY+mSR0z=u9V?Heez=fLS#K+WmCl$A%TdV41`e^`mf|DA|@UE_bv!L3r9zw{~EmC zO79G#j5zcvj@t?JaG1jPVY=x9-}cXqsvfyb2LD!YZACSTS%K>!bUCuOT~FXDWeJ9~ zg1z^vxTNVEPddiB9AUAl_BcL7msKhKXPYEsk%2}xL(M$N z%0|<0(LtWBg#TBaTQat!T2}f9-z%#T#J4g^JBl$V3N7g#At^czCB{TV|xQ* z6|TX@bPke*PA%m{k|LGYl@C09hxoG5vjHQ(dRKYpaP9;(wQetpnqKN%{O#X{KecA_ z0L2wH4mW?{AasG0A!$t;Sqs*F6nsW)NKqeC%Nxrjq`PxnyIIS3j8+Y!9=3IWL!)X^ zeSlgPu9CS7WrIigb9y#-4A0s0pfuGyQLN?yopt-y#fa>1-WlNEl=$Vd< z+hTR-N3`$oe8)zNS@8%VCHm?}^wkvf)i(6iM)cMAEi2})KMH}lEXE2TAg3X$JQkEA zI)q;u4Pl`e!uokTr0KRaZq>VDmg#WBbW>1*xNRtcWT);M6ox~u;)*WS>Xai2)yqQ%*_@zJn2Lr(;DZZ{T?65VLT z+;7J9szPxdcyxVLx>uF$wvxkV1*h4FF!8gPHyxUFQ|8M{{N-ynvFWNdKEpR1n{TM?XnuD= zi};$gog_qPJIASLpl2XZi-yQTi*%rA+A_~Ci87V>m7$` z&&P|#ZW?7&$&1f&ZIbz}_wR3hNY+wCOPzfYQk_fo!3FLUsc}Xgr^cB{qk_&m8*PT{ zXs2;ftPPaE`Kp|-WZ_pq1)E1G%|bcSqYYe)&4Y_mlp~HRQAeyB8fTn$30{;!W5W2u zULW)`EvAZ>6hF9Lr)qhO)(W(!3f!0}7gs=Q7FUf5++|`_Z7!3Wm87S^m)BiNU3VV3 zuFj<~M>Fxe6W^~dsSElNBg8tD*P)g{Q+tgNtC||uY^%i5L5iirmxlU|_a6?buctY~ z(V^ByvHehKYpui`L%@~wB@yF)55e*#MaPLFx#6UXkMdYN*W_6GlB0uR$D5;WL}66e z)E}e5l)HP@6<7@8OJLnGFAO)sPGwje-eLEuiz4;cs$O$k)3`3&tt_G=-@KhMUEATZv29a zJ)?VLXye#;l`{VxbevcznrNpy)M4OY40n8MUT;<3r*7*{zAwpTPTe|P?P0d&xW_&6BSZ@7(7En2 zv&o`!boG#E-QuAYFM9--G|hW^aODmpJn3)dFYQZ~R-T)uTo zY1Nq<^cRn|;0$csF>}vTInQ&YnMm$ zH?0Gai`Gp@yzJn;z?zpBjtV8ZZFl|Fr z@#72@DjhV5q|?F|k}5~6Oaf)dyR%p1IcntZj*It2yv8aZmgIztwG^OdNUVzjw2%T+ z+fqMHHVnlzx{1phejdTk!XZwD^D{bUE3GziYmF+0AsO@fW02ralNvT`b^e)aOn7Dh zf6gGDUbQ;lffBunHZZ)sj&A2I&{3o5rQ>GvQ3tq)d^CT3EKDssLN?H$SMk4j3fm^~ zeTW9c(kus~&=H=Zj?f}@ge9gGiF1|n)t-fGh==l5esDx1wv9+|$J+aCspFe2@faqB zmmrSRd+s#JQ2#@nhK0avvp6_@V@i7VUQHg1W z;v)mi$>F>w0P9rQU(tm3!9i7`gY+s~UqC*w?Z}4{PtYV%!!IrCqMcd>Vcc&p!h|EG z^3tAJ)Zv&zGq^%0-tl3uc_*$i)g|SKa6T;Cp&1&mfj=LnHkj{7=fiYf(jW7s7ly-x zUhy>6s!h9jo2K-%(>CYMm5R#y6j%IAb5opnqVMIArZRIATJZ|CB6Y>e(Z`gUkHW<~ zj}|X3UMsFMZ%+J()|q_Q3!j~W#Tmkrt<5G=zk|JjG{0kf??6X5dz{V>>Cmfi-2o`B zr?9L;KSugAJirP}5p(iaIch}ypo7|t~=E^BFWeeWk%NFw6Om*9^-FbSH*~wFz zWegso7>w&3gWVK^a-3V~XwqKO7}678&d)o`*HKsOhxs~TbB28Mz58Ah$F=8&E_RmR zcwTmXA6E1Hgr7RF-{GDKUz#O7`aBj>ToJxD}VT5Xja~m?*S-4&$jD6-Yx|3h%Z05a2 zQ8?7;=f_PaB0q*S3Q<`xHCWl>feqW7Tk^>Rv|?#-PnU0<-_z)=rbZ8rN2Akuz7V6d zrW4PdlVDb@>EZy{Wf`Xqyj^eijnlwKZN+JUyG5L~T@vH8?LQW$mVI8Zn_oC`r|vfE z^AGpw^WX~JZEgAY_W8;1x!A`2@g3{lmUHu@@?w>jg7d5WG%5W)mq?@6=c^tZQO>Vm zUKUm`q3+9ReY>FN8pPt!?c>WN4|pDUQFi_XF`~y8JD5fE;l;(bauXiu_wahx@{R!G zt=yzX|GGd}QL5Y<9*t6;m5#^iQc2&#&Yh#H6Zl>$**nj{u<6ZFKSt>k6HL8x5mq0* zgD|FVN<5|$&kt_4=03?^?qVmK^5;70`4FXRWC0Np$7a+~7+Yw}rm-auW6J{cj|Pe} zoEp@eG#^`VX$$@lt^-Q(9dm5UXHc-#sFM$AUeJHX=CkXK9DlWLdez(WFDl!P*88qV znNj_=r*edF-9_!)*w8vqF03bLte@`~(7oT~UU53$$1s{l#C9;B%c-0@*nA#8AXeSJ zarMyRhhq6Wbg9Ey9`pI1=5Dphkt5q_o(AxTUd8c`QF}N@-d56e!>Dr&S0!<(1=V`t zVrEBV`>6Wr6XJEmii*lOI%nqfU>@O>;6ty%Gu1%oY3!xPuzZYiQizH;Lb}O_BqKX z8H(2X1*>Vezn-*BH=}bsyIebxzg)`?_@`f9D5U|Po>Uh6K-bC!mxz8?0YBi63sESC zmp&``aHyBJaaYk!NvHQbZ`FaK-I8B@>b<)@E7~I|^>6n!bQirL*{kaIR=E_{O4?Ok zKAd;)KFRw58Xxtr;yTHP!{_;Q1r_g?JU^nqM-@|CFL``qm5=V;;)9aCBU^lwiN)_q zPLAyMQBE&zkaUmq@=cjnd|2}QC>Vev9YJy#1N=bQmXybkrZ`AO08l$lWa%Uz9fa@W zzXk8*Z2+c2j@GG#K$7(^T`3miK;qs3?+#!vCci)+zu$t2O&7>?lSjJwJmUgLFFR zbpM9ri5>!DP;Krd(5W7xp1GitUUWkKo{30L1D)J_0(6R7k!}Qi0@B}uPUR4t^dAJB zeqU=0ZUm5DMfp!bk3~8T^f*Q*`N42{5YnZfk2j-F1YL*po1l}QME#|pqsh2ypi?Y} z^zESIk8_06P?U*I_uiwC_5+>l73D93J{swHpi{hvbaxny=I0&*eViFx3p&}o2lRL| z`eUF+BK-sC8Z-KS(8H0w1C1GBM!yU?)psH2=Jg#4r;(i%pqtw{8}vlbKLGtcGd(YY zPW2rKCz#jwEzrq7V?Y=ELvh{;I<=n`M0_>X_gf_J6N=mepbs;n_k%D(h+73Z=_CJ; z9v{$$BmD&EV*F4$YC$J|z5%+qKT|;moBI^>0HEmS63{6Qe+Hd~29f?M=%m*Ng%V$+ z9|avv&fNn#Le6B*7mPl`f_?>bDvu5o{z;GA0kMr>rm==-Nb+>O*Zv^%M0NK_|a0z(2m4U9%z(jN!9 zxqc4_k^TojH`lKQo#b;ZEerFg@ z_MZS9RX4@eogk9^KU(OI1D))5LSA$GQ$VMBjsRVZL(;zrbo_A|d^gv>4Mfua0O;oa z`8(*OKO1y&{U0&;4HohjnEZnf_^@o9o}j^v|)-{~ptyX`%lgO#fpR`v1w~ zpROfEac;v{5KZzdM5w7g?u5CAA~{IyuRC*d@$(d{`otTpJE~Z z5tC1~kiWp>3oYbjBRTF~*#8XZ2|%$Or-4rG_$BD(ex3_Dwc~lv&D${>bn?Tmpqtyd z4s>cqHz+Z$*UL=*U7(xm-^28WfM~A2iRqsLy1D)@nEr*Jo9q9T$roD4yN?p=dD23D zJm_Tq-z?;(F!@Fc`E<~E|A3A^p|)TF_f)MyK)Q4$w)@CNn+c7&Yjm=NZsN zdywR&fX@5Pj86SM8FZ>wBk1P!`U{i)(n9_jCjXO#{F_YP4MvIOlKx{%eiZ2D`Y$p0 zSPOZ{9fCa%SjZ0po$SxEkdI{Y8!Y7S2Ynjk{|dTkoe2dmfesSag%2kn^&_(LZ=jRk zegWOw|A#@Ra$Rr{$-G{lgHC=M4!U{0x|#gl7V^qKL4J;fd=TiQ-(Vp>naQuWkWT}h z=G~V-7uQ`#a*u*e>%4=Y)4G!CMR8Ke*_{h(oVe+zmNqla10GZ_6|3%U_>{BbFu-^uK!dFLGvVG{Q^=)~vS3-k*}VCdl9 z1RX=BKu5itk(t`*H0WYGQhkSkPU*{_o7XE0bn^dipqsaEBBOiaWZ9ga#^`ri&>vxR zx|U=vzXfz^r@5e0eDU_9z}Fc)+k$?C(Mv7pUo-l17W8gL-)BL0ze_0hLks$yjNV~E zk7x8>Ea(duUE$i>{*{bA%7VTL^s%UC4Cv#;`l7uKF!@Xi`IC%pw4h&M^lcXOeo#*S ze8Yn7&*<-4&?6cBj0HUjbUJVS33TzimE!GD(5d}~_e6hc* z1fA;RiiBDi77G|QtCdkq8XXXF9$}PoYKzhB6dcU+rc#4gv?^axP_Liuyq#>%k9yutQv6v^ zUaogY1O8VaE{Zg^riiBA8S%@8* z!#_V1sciig_`>8xS<6$GCF2L{@uR|gdxS+cZAiJkFeA75mxIMVW*A}5kmQqRy-D=NuE9%>kj%w z@buaF`qX7{)NVqCsASfP_-X0X+)M+0B0M=i+rSSw7LgYzw4>F?ixgVZGKWxe>p85B zj*)go$4H_6mSqU7YrPDijV*Hst!q68{J};#8+`$rg`}JPNVlC|C|}5XSfjSmBpR#k z(%5mA#;UtCcHE`0>Mo5PcWEN62SZSlI(hk`rK!p3*@pbWWd0}W#Q=%znGuB@M|vhJ zvz4Z)1?D`M#1@~uNkLIoJrZTL>qJ@jf>#<86(-3N*0m$qa+!*lF>!Y9MKeF9iIR|D z6__={>N>1XHT#Z_W)&WZj%M8pK~Yv)Bg$fEVl}Y{TSm1Qlo(YQlq|f7&00jug+;$0 z9IUqLn^de4i2{NlHhPFW@E`eH8w60XJ&R|Nwh<7U(&1@ zNkV^$oik^a5at#%Y|bP2v@cz7YG1k#JALSEb=;R8+*2K%$*P!tUlAX6?c6v^lnRx6o;Ixz{J-diKG^ZM+YW`1TK z-E(#pEuMZclbJoUS7KkL5WdVjGUtJG{W6Kwg?5HM&;BWS^g`C#Nnq6eee+XQ74J zLMu5LORfCe&Bq38^KP8xcjZ9n~q z<&SlCHhG1M@@m}^NCx>fnL=o?u zjP%rHnK@=g_Rej7(qt_@f;5_Bet}MFE_Aj({^^_GMDE?2C0M8OO`KRl9isVPaU6`l(9S~ef-oM zx(J(^K6T>w$r$4nVfY`Pn7L^D?By$SQ`5)y9)D;^4$8LL;(ezgVWBL{MajLVj-JU# z5Mrahc@7)Xkto8?M;2Pe3CXT~y_&42ZOrDQUM2|>l0f1ePVW7`osg{N`-Afl*3-A0 zkdk}NNP^MUrzESE{IMCyVy$L2C0SMaXJ#a;4QFRU`d4Qpt5cHo!Nsa+eE8gMO0t@> z&x~YM%Ep9bRhEs{dJJ5`OlNPJw4))`&U9oo+wEo}tC?(0MpmW&;9T_YoQ$l52F*s+ zrz7hjgZap6ZA{aV&_ONdBdd9OO-EKG`piaFrFsUug;x2{Vm=pHmFYbdnGKD?TqF?8 zCZpur-Rw(DrprUg$#W*nn}ZEsQ<1>kzOf9GvoiD3bM;wyiOGF0ADMQE{gd|y6NU3e z8#i7|TKRbugKAzL)>(Ph_nu{{dY?6$D#L5YPS4MvTbWj>#GjvAyZ+YOhP?DF-U8-} zWW(~z9C#&fY|e57pFS;_d}c`gGq)_Q+8q?i$kt2>3N!PXjH2G1A}Bb_Zm#g&E!OKkDa+W?GQDo=2L+4a zV_BjYIacF2SPUS`Tv7Jy3=vz=B3DST-CQA-wc~G_-lkq5Har<(*OMWAJc*$hL+b4c zv*E-LyG{(T;lvQTP7H+;P4^e9E*$^ZYE+mza4*%`?0~zetjZQm6)L*bYFLEAx%>@_ zP>fZ5=bWHW8-5D4>!(l~ehRhgr!X7A7G^it!fez#%x=BI#Gtb9R+u@qR07tuQ#!N^6DN@L;%I4~D~od<=xcW!ALX@Kv~7UxnN7Rk&SWh1-an zaJ!KcfqL^bh_K!_B5cG+gxwg4uu<;_yY-Ghy#-rPQ7hiWeOaqFX2o2%6>0U}to7a< zDYm%Pc#Ra>-6F~(MSob&C3?j&m*@}cxkRs6<`Uz;dM+^R{8XHd3*ma`Dh7&b*ov5+lM2%f1(j8o@F+;a-g>w|Md$_{f41f2ziEBP*3b&nl zukHD>1AB{mQzP;>2YY9x6NCIhgUu6z-g$9n*m}T6iC#C!3%AUo`uJP8K^Ya6B~`Z~4m)kMoh(G31VZ(pb5uCa}}i&0>zJF8=#PQ>V9C$f|m z2U80=?jKtgEGWVqWJ?CSQK|0J9Ab_>?IGq6J3ybpZPXg~l5G`kqu#imY%51pmKY6x z;D)jdC8kpw%NhjR@{;KkqE8N6UNW6N^vMz4w+8m^EwefZH)TzCml@UKUaxg3-C?%L z5gl!z33%%dfQ}pEoXNj%D^K9H`Ws54&i!x zulv&cb$twDdOCd;-=q+599@#gO6RQIhTz7fXJ_V*!_^UPTv}$Hei3d_kg9P8Tx&_s zT$(<2b!Lts71SAdylP#qf?AQ130pDsp%bAC|4vr;ha`gd4uG}% z^P~b_2{~)|GmwdnQXBj$cn6-2K=ARZFG~qD`t)=ZzR$CfKMRG@vC9VE(^=rtJ2epL zqd(?0{4~aIL4IrXAKPEhKgWiCBjcCb$WQwg&~XL-*7RRz{45*%6udJ)hb{e`jBm?6 zdLN#S2K-wq|0d(JcYs)HQx4%!;(cy9Xs-qwefTQIm)qb6GQLXS_i3Mm+vuOi__plJ zx=sE^Zj--~@snVmwfH#${&Bq8(F%MATgbHtsBH$egI*6j1bUr-+FC~6349myY5}zs zjBaFfvI~5zfu*S)l+FN>-UUF?OZ5k86Iq)4Md^vaHps;QPXKA-X|hi(pmrqiQ_y{Z z9|F&#oheQG5fGkY*a|#}bUpAiuoj4|9TN8lsND&?kLn?ywhDMJ(pv=7Rsa)_E*DTs z`zajdxU5G6T$m612lQqEshl+6NXVxMsGSF-ay3AzPau%D8%X&)fs{`P#QSlHE&^&D z82={XpZMKC(tBM%?Rg;SX=B*JumMQ&b->AxuN6?c3rOWvGkztI>?#M6UfLG}sC|Ud z7XV3r0z(~;^lE?;As;57b}W$ej%0k=*Ms!B0HYu$7f{=Uae(x-Gi+nn0wleMfN_wo z7f@RVj77RuKJ!M&0Z8@e!njD-$*==R<(~rHjr?r_YFmI*egosz0!iO4Alb1~ zK@wWk=p4HyP`tAN@DAl0Xy@#}!0;MWSM-327Q)r`Ld z7y^E!fZB54T}YP-s5Jt|A^nJe+I%4C&jM21WdKRvJcbECvNr}ua$zj31_ndVSOK*v zM)v}ezdQxhx&SF3?U_P)I3V^>NxX@50#JJ$$omDz`vn*T{uu$a?Le~slz`ecAlct4 zp!N`OEYkG?YU_X`Un`(?4{#{by9Ctk0FpghfK=ZKAhl-_knBicsAH%Bl3ingcS28~ zfLaxh@_7QsfUXo!D+dN5?I57`rX#;^Xkxd3+AiQxjJH<=TuA$_kv(UCR8A|9>}X*0 zdPc7W-T}RP1k~;Vl3WGjmjXwFZxm3Q4B6B>6ckodm?bFNui)Y9|6oK8Eqb zfHaP(1=M!+6Y`&D*v_zxVKb1*sRyc%uTDVi9w6!6$@n{fSXU-)0g^rCjQ$7^`@Z$<&N1wgXP0Ob1@km|hv zNafA}l3pFq7x`iY)T)7$FOcz7K&r17OS=HEPiZ3USq0S69;0LjC!qEw7LQ~{w}9F% zAnEG_k{#_pvZED9l>Tz=dOhWY0*3z6?DX%7LVx1Csu3tZaus|8)ViUBJOeUlCAy z9!T}K+@*|B>&0<)Y8hF%In4=miX6!#2_sO0>siKu|Pm=KJYWpGk~-XO%qU?0;Kiq93ZWSlLXWzGP(|k z^=x8{fLb;16y)iA5le~0kpgOcftZ>Ty#&-Mf#fd-hTWWyt^<FySOp}zOM#d& z5{&|C3xMPY1CaPxKn%5s83Jn4fEcn8Qv}q`1CrbvAi8>Dl7QMoAi7Fof`D2b@DsEn z)*^%pH9*Q22qe2zK!jc*`Y55+3y3C6L<|vXyMXJ^BptwGz&7AtfDJ5N3tWSAHA`0l zS0Qa=X#+4H=@gbu0%jwvV`(*T8PY12Rs!!w8o-yQ0)Bur+0_gr{`){Vu!+eXrZoIt zPHA8nup9jKz%C$st>^@n06T!iz;<8}unlMgwg4XiHUQTG>w$&9T3`Wi7jQMO8n_Zz z1{Ab5%d;1Zw?xEQDbrUTW$ zG+-bw6{rI0fnLCcKqYViP!60A1aJ=mN#D~z((^Hp^t1p;51|T}45a+TmjjOg0o;2G z4+4{reiWDhoCeeZ6M-rq(aDZTAnAz!su4u{fPuij0ad`)h!1=jNaNk(Knk`kz)l3& zUSJ2X7T6B_JCMe;H-I#ry$);u?g7%cwHsIs+y$g@3;kJ94ty181ik_+03HHn0RIY1 z0qz9O17ciIBmidtb-)^+2KW+C4V(!K1a1eafD|WQK=?wT1d_ZQSPkTWGk`SSk$e}> z0HpD4I*`UUqSN?Ban%N#4Qv5!12zC(1l9wm0&9UU0Cxe6z-r(WU=@(`R01jP%7K%B zM&Pr+0$@4N0E`D_07*{@@Oj`o;61=3;0|B{@HwCks0C_(q(==b1qK2q098OL*9%wz zR00uGe1EF~a!3~gyV3q5fL%bUS0^wP*a36~wga~U+kh0eEkI;dGypdO>w(VzQ3viR zpbxMQvZQ0=L%E;NnQ@j0RlLR zbDfO0$C2U{b~#df5_X_{2^$zzGc+m*Okt>FsA34<^GT&fNvT9C&B&5SQ!=E|lr$%4(j2KYA<;n=qnjv|`l=*S zPhY9j(@QGdDcvQNN~@$h@YyZBiO=)WPJFgWPvP^Bv;m*x4iyekX_xG}Od{=+b;+do zyn@d**(sTWtj@9C@sOibdc9wFKZ*28zw7;^`0T=GYri&7n)|ildvm`QeD3PEr=NqY z%i+31H#8n{YH*TDtDSb@)96&{c4YQ=qTRSMNZf*G7 zqO4L%r8nJ-_}rtcRYIG4xjQIIBR*T*+wfWIUgwUo+_&KKjC%(tTRf^fq|$beGx$8@ z(SXl3&r_aKX}#wme6|fbH3;o7Xcs;Y4Q?0=%ZHQ>L3<4D91N?592x?vhSY(wYsema z)_K*V{mSt}jVNnq-B78tbZ9v~E4(Yc(HcX$@qLd^t&fwm+Gi&|xA;`~NTlUHTYQkq zr@}`rz3FYl_YUv#kgxTvLqxRrw&Jth_Y6L-_;%s*rmxWtbiY=7*7?=rv)XT`AB7rs zY!EsT0#!URsneUK$2cP04{JaVLE>3_S2$q|9U`QE!6K5P4=(v>M zi{+Q0=aPIalg}O?r0ZFF3@g7?$j-S?`JmCs107G1y~y9d4BM1vD($~rOAJCu$eSu8hovger z#{ZV;3%;81XR`9T8UItJKLg_y9m|+M)`FxD{!L>3UB&F>H*tmh zV6qQe|7|`<(o3mLA3I74N(J!u+pd`4gG_ zfhlfQ@R2fl&vH#2(@7@zK+kbOxktz!O|$I=a?5BY0Z{z0sMDU6@X^kuO08PW&& zHYPt8ZBO+R?=xkww0K|XOBV0qeWcmQNA?sjee`=pls2+7T|Xgx;(et6njFC|XZ#JU zy^Z|^|I`49U&;6*D2@Db*hxniE3b<2y@(J0o}vjCM+1weE>@rYOuu;FX&bYzn&qF( z_$g>-I;70LU5x)Uv%iz^kF)sdWbt;D<&Qx=I(ER9WbaLuK1cGfJ%Po?Yvgb6l`Q`{ zRzDR>A7E#q3@K+a0V~y4; zJ&62^Iw+a{n%Q_Lj;CwMf6%Fc9y)%e_%KTcKrgkQINrundEnp8r>%M3a7`9g&ZYdDMPLk7Vh`S^n`X{S3=Lg{2)?{`o8&O8HTT2-KU7H^{%x z_aft~$iLt(V0^ldMErLc|9h$r(j6@A&FtxB>1UX}exTFgMEW2ImzpCEnUcQO7|An9Ae`1dk>29`d`>|4#!zrZfaKbrN&TxMSh7#j!jun(2F zKAlYeCF+0BU&r{H$zMpn&(d@siqapkv@_NPl>UOH_mV%5{)VN?sDAMO4W@q#)ern@ zjQ=I;Pj|5O#RgVCezSK}X)24Csf>RKc}d>`EWMZ6>%!_co3(ESVxzqmL5j+L3%q&KSTB-eT1d8EPg*>>DO5KYBpZJ47vg~)Uxyl z*lnJkO7`Qwf$@KZZu7J=*$*9E`-S>^M|`vN8)QFxH2E!oZy@{8#z`za7xHdq} z4MPlxU6fWb|IoUX(k?8$n&oe2^TEp~23btUYKt^oS25?)b!PMQcnf)4)9J;Z zWRa%dEi=!*z=Hp~Mfwg4`J0$a&GQek;QJ#U%=worMZN7W@>8G+pPxU(fNUUPt3Bp9JM!kLg1do)2YYJO|k4d0p<0yeQ3O z@sFc(w%=v$Q?S{djo7`^>XXHs@K~|%#yfnFWfqEyATsHVbe4FhT1tf-|OIvyFG|nO-~Zm5DElnY8h*=ife``D?8f z*7tf;*!-pa+iUH4%gvt7o);Do4g8C9Ba`htVc8>PdP>&bGp0S_!ZVrl%&PSrxOyZ_ zitPyZ?k2sw#J|tz0kc9ClKAhk#`3G$Cu zi&S3Fa>L-h%wF$ya)00@bn7yGHd(MI#)cTPy=oR(7Z=Am8*K9-&4x(N_+&%C=9U+n z)i)*oz*bn+GycJ?N6|LKIn*$>@=MXd5c$*Gv;gv;`ph>&%%1Agdc#$w$BB8bz zAtr{!Kua%)h=y5|XPcomWwBZpaN#6PAGOR$8tZckwma#QL#TKpG5Ss`K@p}5R?P^v z&knQC4z)8ER7&s}2x~jIdF;C|eATEk>k? zVYRpj`|NQ0>@Z?m3HeY{ww|R;uhmOX2qeh0y#<9gNzvJRldb*+fDI4f6+jytp~P^J zYqmPWTa+Tzs*^PK*^wr;MO#PMVuagbgb{;}?@*J7Rg*%%CjXhFOhvQq*~77#zlUv^ zQEgIbtL=oM!$g-^D2VFIVB>-h)zk=LTM4po``Nbc$D3lo5$Dx8jQ6`4f%o_XbNE6$lo)N_0LoM8vNSG}~sEJ`KMnWJ#UNi}s zN*CkP#Iaf{+ZolSj3$+WpF(?|DGFN@@>Yb{@~ka}#ug)z7*=92!j!>kZNlxd!)#~` zwVy2nZ1S;5%EBSRwmCMlsF}__9%Hk2u=V1~kGeJaHm`W9@i3}4cDg7-j_0gtJlX6m*r_rxxh3SLC zLV`m=Qqv>DG~rPpX~E$k!I6s=EmEgOE{cc<4q7f;y8qou#3W1@cJUGNO9tEK1%T2#soSdAWUXV``!Xa#pA*OoJg)-qFeYl0g zb>T)2o+G7)&W!}(VcI#65iIqIdKNN%BJNk2AEev-fIjxaV**upRlY~U!0bw4Bzk`o zx2U+5NAS!*kC^EjyG$r<28iB68y=e2TpQCz&(+c)J{KaSgu09037I~&H6W!Y#?FcD zkw~CtBXAT5z?I|v9og3n`|y?86?gl34yMoaBEO}+2Bt4b%!1sc&+r%iy#kSHLZ;8O zeWIm4CGPFf!EWbqbpMp})j}U34r})1i97FE>ZA7=>A)>U{>WhZTA)vKDP!@#?4ynI zSh~0W)J&g>WimjYWsEQu%gm)fBX{)^!)?)_ojzO-kArM?u_zr^;a#{EXVeIK*c z9*Z*bF;=CsVv>^+6X#CrDbv98RWA}~wa|xKq&5%qUv@)65V6#!Gzj#$OheMD+v(%m zH#1wmBs~)s4K3@tnCTPi`wH|~9KBkIF63t$^w`#XWezsDNP~S7&E*YDpN<7@E%cH9 z>ft}uRK3D+6nH`b!ax$l(sCo7IfD)oroNU`#6LgJ88+Yd70`PI{E>lA`X~L= zD|#7>^dC8{&v7_vjvED!)S}d>6`ygWlNPKR?jKm-BnPm~Yuc!MOyx67BV>^3e9@9vPvdHak=r#ScI75y^= zvc{#6kX_j=>Lni4cUOPz_^@9kKjIzTIe4%2_%O+!?_%+t@Y6moNNgE zJD4x0KW98qzI1i>CHQzcdj zJAeD#q;JF0jQaQbb3cB=adYrINC?T?`|D#TlO=;Lzx?~}b2cmutS9=^fDgUFo7o?B z+zUH4EWNY79CQUw*UPd#R-V07}O~SDRMlXdZWn^fmEHN$32<(#< zd2&wv#HF>vLYzMvUQc;$EI9~!|5*G{9}{CB+?A^n{Xn`!9^PN&``b|7e{a`2yAFB+ zZE`%qx#d}s^XBPmG;#?SCfZcKbXWa{h#8U_1G$L5$e$w~hw?<-=U5zx@l1C7!paiM z9)Pxy%XCriIdVT<-S(oX9Yx<>K^%OKIC*kuVSSgxW!W^u!&N*gsaTe+dA%RES+US7 zv;wiwDO0?LG0;;U(B^$b=Jr~J#O=OKOEc@;Mzwlhl_>f@xpZmw)u}m}MU*GwF3o$0 z!>f0^=zSSu!iZbH&mnwK!mVh%`TLymrE4_hsB1De_;MV|6YGqa);MPj*GzTbHlLF@ zzxK7%`LZ7INA(oz+#wsn_Z>@Lh<%jm{SE4ae#XlQV}|e@>n=|`T2{G5%54^7SZps! zTgK~+CGYQoUeE62Lx^DsVj1J!T8u|c9L6H)YcvLldVV(hF4{_Cju;zapI<4b7!k%k z%0sd=u4F8ItG?w?`E$}+@h7d-&Ag4NPGT9Pf3PEmEgy_0Tsh+`wD&AI{-sEZZM;<4 z{|TH|RKBrvw`O`_PW{)eTyTSwoAb3Z7o0+fF(*aF&6y_SBD0sSu9pXVov2pPeCrzG`F!kR15~od{ku-DG>^b+(ePG^$59t@Brll`ll99P|Sypz=a>I(; zy!@4`Ru>emQ3r>FhJ{B&V*B`HE+!5?$T2ESB|OT*pUdGlX;h?pW7a`40m^tyPM&|My zE{*EN@k-NSQ97+tqq$yN;d7~Q!Zf{sicc03$y{#wDs0q_AMD|o$y{DW=HmQhE?b|s zELl*S%o%#T$R|*vWYPWqzen^New|5cQ+nss7yl#iufl%-{_R}Tz_PE=`dEjx zb|7-m|G#oj`Q)4b>4ypxuvZT{r}h$mC}P<=PrMx;*%4><4|{x3e<_5hp7fsg zzw`L2VF;bV(Hr=e%Re5QcCs${A9ug-e}0`Y zV5X7wp$Nc)j0u$+APwMS9jDZsQ_+acu`Lc$9hD(bPf1E$M)i{q^>=t;kx?~C8u!$I zI0yF-PmSE`zWyP_f z{^yJQKX35usB!%~z_(N4$K}bLR#lbda`N1SvO>Ajij=b44A~laS$;}cgjbm%1ze{F z-@`?I7i)aEV!xw$|BE%Q9kKpL^}Z+c{?OSf@rSAwi5kLXg@H~+L)q#KSzcwCA%j#E z6qMx~oYn+76=sy=rj+GpI2mE5|51t8nX`Vd8KN{=*d9`nQ zfZyjet`Im=#jGfNzJyA0~a=$C>4Y z)nx{+vX!WQW!dWLvRp5xH3jg1Y{f38Jat)aWmyEuYJ=OmI8|qW@Ak`#>jeZvcd|TmaYpq|t1~HIPQdr=WM`by!DxfNh?QV2k zui^&ivQ_IT;D#BOl*BqTNRxc>UlAg((zwB^Y;`5swxZf;RZCd}YQ4*8wW=&vRTiNt z%daiV$9L#2cYZVSz^I)Hf_;xnbw2fojR1 zYKdM~(KMl@BxXyKrcE~Ce7sLf(}Ytc6Ds4QD&u`BXsKic4y@vns`vBt^E)?QEsuN}J<1O2rj$xvF?gZBxt^nXWcI zs1+A5{?_-3pyWQ4R4>6~$eIu-fecr@Y#w$WBpQQ!2iPD$ebPO2t*3+Xa}oRj2elh2($(hpy;5=As4zyA%8)&ZD<#WOi&9xkLwt07Q&b;k2D@EXD!!?u z>R;M|>38r9u{SN~Tu)s#aX- zQe34*K}FoYO;TKMb40GQI=6qS+%Bly8oVn?V$REA+L|WRHhS}|scDIy&@S^wvOYcv ze#4i}CQY5pXHU`H6(x6b6SehCF{LF@aJ9A8pXr7e$X2`kkiwVMp!fk*Hnn?gQ39uP ziD=(=jSof6$>@L$>q;fT3RLPEU%M-nsGZvnNp4qlyaRQLODS%b@EtW(x?R&*_oPGA zPO?gaxT=$AOXH(!;RFO5{M-|njS5uxr#8nfsyjs~bYA4#&?x6k7V_aygy7NCk*b(O zXcw7wO9|pUsy05lPNsvM2u_#V1ZSHg1g^F@q8FS^QE+@vUFuL=v=<4x;<4)*ItAL1 zDq?0ipZ%&*an)Y-*7)chB@?#D(3S3n!H3Yls89LS#iK7r_wH7xg%VrPxWS}v`-EjP zy0)gGDVn-x6LqBunf4GoP^39k5>>_bER@xW050H^h|g;Vw3J)6TG5r{)}T4xgg!n2 z!DAkf$c0hj6b&pf+%mP|TBTbTBDukF8Q(7uoZqLo6(EUT1Ha)*wc9ssimY148*0T3 zPWjIc#ZO8Kc&q(rqLv1b#+XAT6#P{(bSqR@9FZCv7dac#WsNRIuPoKGl7@)xil6xK zYjZ^S=_dW}h({yd|3=sUZFC(d{0-ss7&kIS8m4k7Ux8I9t(~0Kq?A39A;S`Pjln6G zU-9N9IIT^MNZ4=zTlS`oROu zHU6!QzH};tvSNoFl{CnVIH9O4%L_!il&mn8t>KOY3_DWf_f?}G&PPxYb_UVldlaX2 zHFPF;Q8KS&MP=C|MmqI~n8%;U;A|qpX>EfH$<=}I8`1ybRkkXnB)qL`MVpfmi}ork zciFnS&xy}>IQ_v{*+xT`+yBSj+kiE3Y!Bm`Y)Arx5Ri|c zfD1%HMGX*;PYoX`SgcXeqSX?RDA)iI5Yc`mfPmI&L~5zmwxC$CwY{{pmfPFj2C$Z@ z^+(lOs0@@*&q>(sn$y-@;yvmWI2&kPXR7E7}8yvZ^`I3o_TPXUwbVPWd(22_3%o`(Xu7aN{RZT_@ z_jKbn=PKTON&Sbu9H|U8Wt?)Od=yF^Pf3>W8g(xyX4lJa|M}FLd(Wnh=}y1y5%A29 z3-ksdsV8~!QlH^0Z>+46QZ*S;O1L~GZBO95hCBaubno>hda2_=VoykCdpl=|@x%FN zJQjBJ{rR9#I4e25CZe&|Y^FH!({(S`x=;M`PoJFFy}enI{NI8V@Z~Zif9Kwy`EC=^ z|M)ZI^iK;?qoY&x+yB-)XXfpC7G4m}FJr%g7n78J(cgh~4US7PNR%_NG&Zo1QI?QH*pg8ji8ENKDrhWse zKOA9JVq$4=9ZmT`D^WK%_w=j)SUWMB)s^H`qH59iJ8AK~y_9u-IC{Ffdw5Tl?c|f^ z>Kw?yx-q23E&-|7HIB^KxA~WiRWNAHD zx*Ar=0}psesh4x5)WK3I)skX@PYdcj=4(2LB@>diz`m!~g;Pjz>XaIB?Wc6hkk#$U8=;{{GYt~=5rZbl* ziw?m16-s4eTTDfx1bTy#l!y2cZD+sP)9aa(enY)|&?(^MGP&~cRXpOhXGi)C z^A5uK$Ae|+ITf>&(Nsrx?IAy7w$HJ#V&OWfQIaDNkVi6wZ&X&std&J3g>)J&a%Mls z@wohhnJ|QW`*)F0ASiua&mroUZ9!sQ2t5Yg!CepE7Z_Xy*+`z#)DPR++sAXC;f`s6 z23*!k#^zO`9sxS6yvkCTVrV00=;42*OEwH3y2YCY#05rinG$+vL1{PtTZy0;S}^@v zU>28982=WHnbKkQe$wDIkK>(ZaCx%V`*^m0e2sp%;jG(D8<;CH8Ex-luFJ1L~Kefph_xZ29tZJpC$^wSDMD|nx|h1QP74MBj7SP$=AQ zpx>N5Zp7lYk#SX>@u%1l;Sp|cazblzbQd`eo{sKt;n^VC2vU&=UCFVg&aF|mHfK?r zRgIff>dLHJn>R=V>!meW4Kz;s4&bPe1xbw&ZY-`sM5+oX;HG6D4O zrTQArv(xWzCslFb!@J}3Ho7-gqQ{=YO5p6UJj7u|qXR0gT(C}6v+mYrnB~#IbOzjS zV5Ur6xsKtct0}qVP?jn{Q)cwsoaY*-CZ+QMz4H+hAL{N0N_D*+?9G=Z2 z;-BQM!0IQZs}`O~bmE^)Vi*c*&Eg*hocqvon)m~zP{MV}*fO=?u{^;HPy}vN6ign~ z=v14OwMO6Y+~zLHKDUm(Bc7*!`1Sdfg*6}jUE%S2*>hQGzwY%f+i^1O^2vtX&wbdt z@%D%5PiLLouyW?K54NS{pGi1a^W~M|y66KZ&wgL>X~L7c&VK*atMdt?o*+zOp-7mM zw?!r-;6{KtnVk}I(84lhnS5&J7*B)&AkG8Qb=yp5hv!gxS95CB5G1p z?gfI}z$N2EGwOIGJrQma=gmEu-12l4&_Zzph_Waq`3b8i%b&d=xz370>~YRZ-j)K?U5Eu_D+E!kvK$dzP)9v+nS%v}6+ePP$yO3vIm zHLVfR!+G0ngK*ktIE$^7AH<;Rqo-u z_L(2ikwB2{G<_@SK79tkdy?SG=(t+ITU9^^eUnv(khA$Tik{e`+O!b(~R&K45jNkGmc{%PoF+VJ=f3MPrl%feTMcd=0$7POOX3^u3pbQ!BcB;plL3ybB zyap)$4E1T5Qsa|(T5aP1zl58`?Kb*;xmtarT{+QO9Ty_Z;$9nq19|G7+jTYsPb$n} zj>2lO8~N(r+goi2aw5&*02_k0A60MeFxe2yi86~5Ed=Iol8&W7)wDYMOo0V&Kh-sU zcZjHinC`z(sXTKqd8>u2pj8*C{!AWF2Z^=e9+y zyN+EAuS}oUu=AK^7I|`BtD7ljZSsfnklXit-hRxf^95NV%V6sbQ}O1e1y(P5VT1bZ zcB74#{ubBzV77jjOhr(rh%#k_f94bN<}~*Zw(Tff56_gIlR0|OHKOz-r(R|`I5E8INdhIZq9y?)x&(X@{G~37-Fgf#}ygQ9;pzqb2+MV{-wLQLDm*%LbYrFoOvD>M+uIur=Mzhm_!0zPc zR?n0su08#bR2#}J4;uVlTShtE0DUj{$_`do=1N)lp#x&wRwjQ)jjvO4xic~G|j(wi|Poj z68Jz5MBDJsq;U;ELoW#;RI*I&OV!)hP?=My%-+l=^q~^^Y_V|v2APi=Jcu|>oO_&? z%$0INY6C;6D(-|dxQDcahZrknhpebdniHa~a-S12yOKLuS(T&+$*bauLIh)hnwtba zCjGtuuEXX=U25pq9bL`EA8TV@>TW5W_uBHm_Z*H2_1|^!>xkIb9(n8H_cP+By>#}w zU*cx|z2?K*h~=M@bzWVb6)wFd&p&9k)v*^$E=mrAeURgsgoBO! z#AQxxP1E+71LQ&`DE?*==InY$?O~C_U=23mAnBFUZpHTE;40T!lqZvo+?s*QS=;Wl z6bCb#JTq}{??FtsO5AU<2F*CQ-{lg8wFHF|aS&+LR;+==y54HEV%u>L?AL39#a68h z;WBp0Y~Z9h$|h9D?mehn#7*1MBo2u+)+-m~v_R47LBwXR zt4@|pFxE@2HIT6;oL79E5MjHC2b3ZP8{|4@!r0D@=LjbIFM8J=9Q@7XdI<;rAUw=C zn3U+zM+dc2+q9n^(|&PW`@?DNPu<#I&uIU1PD_5S6)N*qUERGK4+kOf?Snle2U< zc#Bl&aZu>6(1?S;G!ttJ7UBX^!9_mzVzuyMwc|y;^Tle>MLv14+U;Vs=f!HTi`Cv2 ztECsKeJ=8O7y0~)e8D{BzJ-37Ta9@cb3YH1js2|m*;+5f-_Bmm|MegJ{vUjt|Lg5N zFYiBCy79sj=XX}l{3+aT>_iw}{v`3+{oP>NKhF+6x@Y@~XMlRyLD!gc*Q~Rpinp%M zJp1XpPXz7@4BTQCQ{jehf`#+H*2Mnk;<9V~9%A4fLh@h+k4p-S2X7g5SfFWtXKK%IHQ+ zZm&oRS-7!Jy)N71P<(M~x9Y?>-^5I9^n`q|UubmWyvQ1{mn`G8ttEn|-48GS@E?`4 z1rODI-5pTxMqCUHotNk!@sBqKx+#QiXA(2`9|sIhUX)nr7U0+H8CpKrxO2L*SLE96 zu6HVzA0>8w=yp`ty2W@@y4OQ`R86Ga{#N7IoH%jo!Y#fp*Sz}Ek^ihH-SO|fBmX(P z|M^I-ePJ&rKU0ui{lJFLjpF8pKO*_T4%IKM&A8&&`BU*0(H>+k+Pa#5h%>mq_0QQK zv+~8Vm;Rm~d*RmZcREY`u5Kf`Plt;lIqgZ>o|M#+LV@IY(^<}#f$2XHoq7d-1M%sC zgjY_TEM5J@6EE*y{|cc|Q0X<~aqTNT8aafDSp+rx=q4WQBd~T{nx>7G%xt~-Mlq_+INGk zA8C~h;&(nGMH4=~Q(sl_uP2(TDqo0EY)Pxs^Ivf>x*T&k>cT6&prK>|NiRCC8(VSV zxcBSdjTh!`4ap9ilyd9mpMG^!D-C46lOV46@kO5nc5qTA4%{i-EbORq@($Pb4+LcQ zN>U$Go$1i~tm_R?l>8!EuE;+d`2M~*`HLeT{k&Ck_UP0x?-cF|U3snV+r=#lznb?# z(t)kdzB=#U{xKcRTgHSeY)(&`_x3BEZMw_HcTQRJz3;oF*UrE3D13za4VZ)53OBL{ zq2BjcukUIPPC{*RbXDiJB$%^>Jpc{sM9kU~EC@!3lKeZ+CI{cuatE5Mavc5ioB%5? zr^>g%n)qWdub2w6rh-j6673wIYJ5()p=Hosxoe@^^~wM&zKA0v$Nav68HfPCj%@$c z@-1lH6D9*-Q3;lB(3<0bhxH*69wqf?!V~R3f#rC3ATF=jps&di)~u7#djJ{?p=b@u zjGjub%gLNBnBHhY+Z*8bQZ||erKfiJ=V4L-<^br0p_sPLXn6XsCFANlr$eE4D&o$O zajl)AkMe7DnKi|_O4ywO6Emf-wV<)a=k#LN?_p(ACGIn#mCasyu{DAU@w?Ox8x{P| zz-AJI|0Oe;0lvoZUoBk->tbk;>y%1{6@gtG<%05th3SK^q68N3UrW#N2B2x%Cpl=6 z_Edo1KsG;Pb7l0Y&bZd(1TYB9fAl5C)k3s$+lNkQB7FnM1DhpamcGHTf?2J;s)DEU zp!PF~{(UgJ)9d#Y2vC(6g`V2K*NF>Z*-I`iq@UFBYypk=KqbB<7hfe@2aVz%V9`oW zo`pGNRJrXgFy(ID)zj+@vZ0MPXuAve$wrEqZ_V*frIKq!J~2Kr<4)!AuCBa5mCz&n zMX67~+%Dt7#~U|sh{xm`9~oD^x2~;y%+zGaTu@ZzxLOxVt=2g@PM=N{WEVfGDW+Bz z6;t%PKf^wgw@6dEzPNB{wsyT{0ey0Hewk)!GPM+Te8R3#TT~i)ZHPi2$GJ!9V$G^j z$jiK46w1D&#=dkk^1-~e1b7iqN&E8Em$EgY~*sfvqqn&Q%YP00qdX*H`P zf0IU)mQ1C?UR7Z*(7RU@+PMm{P+{_E@Q(_CciRfrOobOuX^O~ck&}uF z3iEYErJBN03b9(8Ux0EaPfwmQg~~`uOw2CaNa>353rjVyx3)AZsi;T`b+j69UzS%8 zmpX-9xoeP68NZDp1_4ojOvqKc2MJT>ZKFiNVHNVmW1>WPC*k<1h*YFTh$IV7$x5m}WUAzI@8i6kU~h~S+Pb%yiLi%1`%A+oa@{iyk?)t|_tbK$3vGd43qWVjAj`wt2I=!N!@A!(o6a5`$E>&FX z|Eljq&xww&Pjoe(=)cx?>2OESwG(?f`p%!|o8#EJt*7Vug%uaR>bll*V#TSRj?-Vy zi3u;b68pmgo1gjQ^-m@|bNJLVh4q98%t0K2J`Ro8otat8z+bYRdYmJC-T|}-^-OTQwou}ynVaWW4^G06aC&?d5&5RVmzBDl39iAm2j`_uJj8F*(2e>yyOlwmOOE0l`l7k z(fi?QBonz4WNJb(sgX>|BXU|8_{pZ|v&TT5g|w|urSMc_m5RGWb%ztF(hC(cxGFL? z8|?K|5W&koc~e<;RF|8P4~PcFfDvvth)d)o-_q6~{_HUoYC?S5?b1M7CqD(g@Eah^ zeaB_9*7%WwF;1)GksQgZzD75aUUfkE{5cs9aVZENodK?y7BX*HhB&l>NLO z2SHqpN&z~XRe_v#C*mJO;xBqV&pY#bN0$fMIX+QTbrk`1z~{BAeKTZ@y*orRcw?of z!j(zNqs7X?=pHw+l9MQJc~42L;85OFm%rp?b49gZ6jf0{D zZN!KaSw}&Qo@<9BUNy5eLN%i4a zl*u5<^;V9X2PuDG0GMnh1zk#qMbXWM230Vn;>KKpvIM#ElV(|aZQ`d@lvGb1KGqS+ zQFIp@KP2aILL3_v`bA+-t&|Y{gYP|DeGL4yvJUxc82GCh`D-m| zLzx^Ots*o^ig;Mqtv;y|&yi|< z&IAB4nUDv>ErO|Z&&9Nz0FasOXK-7-nYj9>Q@}B3AWU1X7(*0uDtwDuA5#jeoJG62 z`i1Yh`NA7_v`g#2rKdSORn_08-zJr%3oF_mjDL{u>u^~8H!ul3|H8E4N;eRXgKT2r z<+f__kety&`W09>1X(!G(44nN_asm}t^=9f77+4`98AMU@-cmsgIf#d4b+9wS2jhT z>j!z;9mqrtS2;~-j1ZT(3Jr2-v9k#^$blwx7&($5FP)9W|Pol>?D75qV6^ z74@%ri4b}LHIMiNYpdjW=Y2m(_-2G4AhIHx49tYXpP;8=zO}%}M!FesU)9RXLrHWw z7XgmpEwJ=a&_PA2_@(MsbxAHqLnj>#9Zz>rVEN!G)HS^bU6X7r1e%#X>T}=g*e5HW z;GGMmn?CgNg_orjz18MOlX`c6q{6LopJSq&5d5xN?YNhX{3>tBfS$?F4i23mcCQcf zdxq|f3geK0I~@2Aa7=APqEl}pmor&for=2(71xR1p-WczL*rA5EIrr&)1I$zd6VY2 z&^cbIqEFK;)Mn;7^u# z1YU-SGP9z~eJ!aEyCm^gEkCK2wTE^Ze3#tm@@#Ty6;#EAgh++nM2cto*u@hm`2)tx zGgZpS_D|epq@S={7XW>s z$9d;g0Z-9Y?NX~2>U;SgK6pyq*1p9dyhYiwtUAe2ELJ|3lubcDsd49by43m^6CDkw z!$apQCzHrE6R2ZJ@&`Gm#E|nBNW^Qzse&1faIsi25%z zYO5)z(+Ld{9rak&$Ug?*Xb6kcbf@Ej2wD=opofY=cWED)^s=EWVIHt`V1UQEGAl>GiAPnPz^(qI?MBxM#pB@#!z@;t; z4O|9iaFuL}b0EI)y`EsXd+WzrZU&EuawkH=qeohsE{AZxX|W7m%sbR=iE0H|puM_gB$8p`lKmgJ)eSnmN1a>*|8$(ojVEh^5y$|R`_0+L; zK7X7jUB#f`4X?dBv3I+Y*CHyq1$=ch@^c55$zB?lF7GyEZhcn2Q28Ai#)`rBsn7=##a!4DQ#2h$ zOStcw<+$3h!BF><+-t8&mt)$3hr`Ev7hG5GZuDunB`|#IXs*CDN9u@YsT#eM7zh6G zFuwzQKN*cRd%IcR&qSW6M7}>6x$si(GX5v1iR=clc69GH@{#}cpxZI&%gbxk7-?rO zqgw{;>|GUZ;G4_35V7-eb|_8X7w|ogxxX;?ybcGKxEwVaI)=25<7A<`7xO+Fy1$_N z7`oO`%(ouG#gf3P6$X!x>UoA$r##A!<{R?<<<)RrYgl{Ht8HnKq2P@4)=_wK8ZHem zYKNPsJ6V5gKEx4H4mflpO~G*$Ky)Fv4*vR~;h^tqL;)SVmPE`0i1I#&Hdo;b(V^=( zNJ|9R&0(c10c%h6Su0kXT;y(aB&;~CAVnpW#Wus>+#0SxP z03Px21-vaEbRLy2;6nh9>XD^S0DLsWlK~%t@kpNafJfihcpUK4ZSea6kKUtt74T>= zn&op8@bI5_AMm#2b^;Ri77-r<9#tw$A4(9H06!Vxy?~#B@u*zBm_AROUgDWxgP#oe z5Qv9?vXgA^ivW-0Tn>0!IrV^_2>30454NFy8Svf^Zw0&;#v{AEkLi!w(O&_)0O)Q2 z9{B*P?=`@K8pKb4pNjEFelMtVH;7YU1PR6?{^)$W0EnZDfn8y9`Qvuh|+i- z7^(>H$d@3i#m+o<0Idf+9EF0;hNbHP@j>+6fJgP327k!jG#=>3gAhpH9QZ@|So$cy z`$2pI{IULk_%Fuvb$0Y?F+I9p*wWVk9@R$&{Gs}x`GX>zfJff~x(0v9?^t=znJP#g zK4+*r69A9o83%Y<{z;fV%8q^+rhmYWz6|iFyw!k5?|`%Aet`Mt?f9GrJd*QSz}w0> z2zcbLZvdY46J%!*I6b2O$c}z8;3ENl1@N%ZkS^B&?10XNLVUcrL-}mQe5L~4w%iuL zhXH*W;N>=azQBAo+VS}j^Vwm?#}yiBG~|C3@H1@q%mw^(h+hW$G#h*w;87f%E6n;c zlD`@7NR9-+qkPDo2!9Un$SzvIvwj6@oWwQ22LRpx`0cJyvg z7^1JVqn{3Va7E%Jz(doa?TqY`2zX?#R=~6U62d=>=|2WMbQKnVK<7RoyL|z82wL#3 zK?Fo1egHhUm<9hWrsqN@YD>?7N(=`&Dc~bmdZ@>_fJg1?0l=el+7AI=4tV7EPXHeE z>ogwZJOFsa_YmMw`3R5X|0m#4{9k~#m8To0J3)b64QTT zNB=X%U$MixfD=FxaoY|*0prmbTDJNoVEhC-{1S|hv%?o){6ahYW{h8BhkpU%pRmKf zjq$te@aQ}^BtQBXmaUvuG5!NP{O=h5nH}B}8U^C>ogIEE#&e)^vgJP;@H2qk8}QKp zS^GZ@c;vSW0MGV&sJ}V{c<8c-CjgJyB};z|@W@|x*y3TV!d~o{6+zUmu@{T41Uzcr z?8V{_0X~>T0%Y;u0bVfz{=ZG%3Y`kllf77ZdI68@#a=A_zb#K4814U$a&wmHJ3r4PlalvsIm%?1w)1E+Y53uvH6P&v>7#yPegxWSVWUz{3m=I- zVsv^1ox~g&BC|UlbI8}xtaQTiLKssG_g~70iih3B=3$J{@1q2} z@7K|)+($O%Gk5n(O@9sVeu?30dFTUqG&$?34=!dt-e*M)cgtyEGw7ok!lH*a!D(TP zo7jEVKb&!pkI%Dh#aO0ZEqpO{#2QsFHEN+{ zWKfLg#fp(?WSYXp{P#LycO-k-*15vYB3SYfEut9FB9V3$Vf2X{(ISx}S|rlWB8&`? zBU&VKM2kd@*rFpx)GcyE-6BWSEowyFqQY2TmStJ&KkC`Zwl%=!V;aqU`Tvl!RG4Fl z;Vb+3T21k^^(C5I&aeYaZOfzX{Z-hNMLBC%W#L15>F}^k!MQfOf^8^pkUkol4v%~y z_dO(p0i?~hb8WuHyOJ~PG)-Gdiv2n+bDxYIq6c$?R904jrU1UDi_RveEeBG<4q~)9 zcv^mxVwz5#AAOHPY(ANLFL~&j;=PDKniTqr!uLT4ALzAwiuhjS_(Q&o5r$RZJ(Z-t z{<{*YLaQmf2l0?k1T*E)N4P^Zz>)3D#_H_if+)q*Y_#usYJO4447AyLO;OPrt)?J* z)%1K-UQwZDdRifz7hSkYla?}lPJXc_2R>XpJv~2X`r@MX#j7;a@6y*#EBOEH^vsPD zd%f*3_oEycZ%e|4X~$tLH*n0jwD3L?2 zygQB6@9#-B#O?1+&3ZjsBc<8-g*Fv<_ssa4*DK-Ja^&`RCm!ncOnEkL4+n?c{dn|r z`Vckd1RZz>Vii;Qp%`Xq^Wk-ZY;8&U2xo*@UYuZ0Z%QBO;mE?8?upqmnMNpp9uti; z{KPUlU#Usz>Miz?(k=*p<2WHASETmn$;yEzm_tx=#h65J!<4UGwzlr8YfyswwVza zDzN47sJ|j`%-sqPlaDNM*j;NiEd0J72W{sO?5YbLT{TMSclD1j>>&5?Fp5jh8l{-K z)@4}KeJg1<$#CEKm|2GVCa0$v?wcAO#L+whL(dFB(X-NGdIW|IV)eP9$Nq+a$KuI` zkvb`uZW!63;jBB2+!=)3xA4rI!+n#3uI%6m>Kacwj3{|{guOv*W*+Wg71)l&)GkEg?2Kr(EGdp-IMH{0EAdN%VM*2$0I_MH~NI+(>o>;woVw#T!sWx?a= zfniRC@vKwX(~sg#3f7%0^z3BF$nq#gu40%F!3MT@9!D(iF(WlfA;XM>l^dn~DMm3; zcUYoWQHwQ!_r$|A1Jz3Fko0Zd{vFU&>lUw zFf|iFzaIBUm*I37lVw=`R5m}Pz!r^RCqm08Id4zi0Y;3`|G|sD-#M0~0&|7C~IXz=T1N z6XhEK2urBx*BO}52k=S2n*lxrum>QbI|mT9hNX8iFyRzH*bkQ8#lVC%fI5gDVPL{x zfCk9d2oT9z4-oO$1`zh0rq?nsp$Z@>uN)xKCj%hTGa4YuC&%~@fUw^>UBi}W@R(d}J z6U+c%OIP|O1}2;Xi2S;nfe9vn$Zy_bU_u)}R6j=;m{1E4`GFooEkGo%8X&UI3I--n z0BL_`U_w8%Kg73>feD8JmP5VU#wP6EXoJx(tBG zzA6SLqyR+nDF7n9zOgh*G z!Gsk65#Mxxh@TQ5G$HuZ8VwVoFoC3;$8fJ%T50gMLt z2tYYN@N+Q*a3w$~K&UgZ1YjXR0^q{{Z-E~z2M8a#L+wi$7&H>l}&q376Zz*~{T_%OB@(b>&>Hu9VBY!_jlO+yTxY z;9I#zAY9LFfZyxf0WODo2_P4K&G6gJJ%>`s29nF|Bm3cZFRzgYsXQ}J!0mUq?f_v2 zGyHZtoP*!@98B*C?tNf#fbG z7cTdf%N-YFNrE^pg35u4U@tXvcDC_#(8-AbmkOOKy5KxkLJWU8=q%CoD|F5%U4_$M zKu!elOdOwpoCWx+X=;M_7V(3;5}-rZOrS&bYE1tvq@j2oj{gE-l)sB1Cr+XK;9TfE zNOY|RJrKPP)AwL`%5nTjERP+AzHk%g2txJ(0f9hl+51xaSOs>o9+| z{{M;iL7jAC`lG0RY~p`FIY@rifBuE|L;5vLpMv;7{5Kq5f#^YI6P9ly)V&z;NU^`R z;QC?x=W9d{`O!NQ=rW>oh&$o90L9^t^_PdB9F#s5rys!bjK}dJlny-QxIU&}`NDBJ zyu?iBkH+zTBYLpcd@TPQR6oFf7Eb>N<%jer zT{w>JBewB_xPIuDm>~`6jmp~I^?MOaIJBaDg zb0$jX17CFgjOBX+rz=n#(p_3Wa>=`VplbbX5Cg*s5fAG$W9`ml-1 zP&(YjbvS(i__A$$1C%3n1%5gvKN_#u#*ag}Xi%^kr%O>B9%ytp9svI1YSZ51u&pfZ z5Bf4>I|bIq8K_(wQhiQ~I*JO#&p26<5abR1ua)1z_xL!2IuIm%B{tk6^01QU9e0Q&x6sJ=|-G71zMXdtHXq znav&y+r49>(OB^Gjv5e*+2&S|tIaReuu)AxjwUx(lRK@TD0e-~z7Ah%0@OWrVc>%B zUYTM3W3%pu)9zzI86SVn)aiZD+b&Gre<|#;_5J6tTYx^n+K znAP3;r?=fizz`~IYL;2h4P?=4CoGm}==8D-i?R?7!P12E<`J8n7;F}6;*ceC z;;-x|x(BiCW-Q|F+sf`^$LGBYqxW;&g9tWssjN%vu`BOEZogUc9!fCVqh=SvzC_p@ zYP%`)9_6q*!tO!F?)|z4nRVA1p)D=Y#jrI#)JdjAj+USpEg@pGgm9EF!rKvHqh$a* zNESUzGQ37OT7qJD0<$_9VM!RNIZX>k$#@?KTjq#_KnHToU}@|vHd=zhl3>#|VcmKZ zKH-*xQ5qqz=MEM!&0%~MoUnPmJne{7||Z#kPPL8-JR+l$qbLkVKU=|<`U_sA0{-m_-F|VOTvhjia^PD*Aye{ z-RZ;bo(!o-;bB5DwI4NFLgerSMlHqg1l)aD5=K-j9FmbB7Am`bY4ij-pM01Cj5txF zB}9&vps*y2C})Hv*-pT4NI(i$(nrj0O&+oz0-n>H;0g+xJ|l{occsHQMQqt%pZ7QpA%v+2*gM@MVIB*I+(^V^L-U`m00G(|sXy3qvB(F6s5aQVPrG>VUM8OxajGp1qV zFx`RH~&}5(`eDoZB#!gi5ZF399?+c>J~<|jA8Wc2KmMV z4*YIN37DT{FStEF6Q0+iFuz7vG(-05szt6sUv~WPHh)ZSudf;N%fiMo0YBSoxW4S0 z01TDAd`j>SbWxZe1&e@4zJ8Do_7M!b;B|ze!V+r(vFE48+Q@NEB`h`~e&t&jXwT5r zerW%uy}m}wFA!(c0YBSoxW4oo2^Jyk(W4D41^S=g| zYeW~TFZynl?KPTw=-mOdzsz2~F3gW@ALzSU$bJJL-^lGFC%+WEk%bG*%0g#XSS9Gj z{2DPqEAX@LQ>@geJ*>i0DGb)0pKb$#hqY|_Qo&}IyYr*%m(L#IVXyCT%#YRgW#DIb z;TmJG$o~p-*{e!ns0170azVZnTl#Ly&xDb!zz^B)7T6D$F{DZ+KpIm3x(ncM90H8q z3O)-4N5rT~Tc0L~JpfhD5=0-&SHmq{Ayele|}cA<0*MC5czeB=;5ISbvKSd(mN7HwC;W z9sU`@psP{HQQrPFi2f9rkpp2fN$k8#j(Oz@DSf4n^m@gC(4YAl@_a*j(D{C{;bDe! zRE8O7893&Z-ycf>*^)uVq(ir|5)XmQJ56NP`9CYUpWZ3r9r|sJ1K|0PE&w_q=-_zh z_hjx)BpcYoIEGZBWe}q$$kK~t{hjoq`43{589B$iav96SrZciJauS#iqDA^3`B*x{ z2gz>FAK49+jq=#iBU_nCZ<>d<4PRD&mM^k3n;+3%2KkX4ZFwKNuf;e z4Pz2P>;zvlt^(L=m-jc!-v?+B|6bAu${0)YH)CimpQ#&IQ~WW2OJtyO?uY-~_>QH^ zMRsG#WcB_J$c1!_BZ(t_gK`+#4y8e|v*nw~alk_gwi!yp_$sRx>r*UbXpw%%R!kW~ zZF?Kb;RAAvls>e6yufzD^IPqQ>dyz;mW8Y=j4!bI+w#3k`omTytFIxMtUNu2@wBJ4 zjkEQQ{E@XC^rOZq@QvSA5r@dct&7YS85#Rn;#ZLWFh0`MI3;EA36V;DT_``HQKn!Mc$JS_Zx2a=7IX`H1F#trdr*i%Wz-{Y`#Ff<*t z^DZaUwvjDBX3nhhsIH)o^+0lfOmzFVZ-dCkSUaM2Z|^&(Ts9r?yG;7xx?`YinyrnI zJZu`mqr41cGnT_eo~9&v`5j`ngo-@8&|kHwXH^*@x~Fr5u9( zknR`Z_Tj!U2JxLdf=q~pwF?YM(Wu^HBilZREsyOhz`nPW!6vl4xX(jn+qN}Z-iXeY z-%y*ee$PVI&P@GTeP`sc0Psd~cfcR<=ikm62(p_VvYtZ&Fm#~+8f2r* zP{W#n29%aTAKK_`$)kV>{3oP{K{SL=dGwWz$>@|!+Z3&BN;yO{mu`$LSq10T#TMz%%t=Ws zye_xu(fmRcJjQB@VI@OT68orTqbfVUIF=ZmMxirC3VT6_aBRIF_jlfz!V<%XaPN| zXPM9Y?=_GA=Q-!nGoM6h@p=uBpPxGw9YIOYfr4)oLW{ItTpVe-lp4|KD~TnA#hNuR zmjH)#;8xw@FgcuU-VO4vRf_42lteL9|Qvyj-Q-;2M@l9LJ8=a0BYI=VmE zUiSI#RldJ%W(bGa#qFbbj)@r3iHubHIHLjcycb{la_r-1&V(H%*r)y9#PyH~@%+D; zi?Jcxik|cuXCqN;JVi=;P0OI!8~<<|frSC-L0EJ)(uu2b{tyYEz9KRPvnK1B6d_ z5-&|`bdw!ZB`!2<>#e-Hm6te&zYvUa3CbDQH}Mww?mMS}a1oL@zF)x^#ZA7)4gNg= z<1Z-vziRToWbi#<@V%h-J=5-g2Et7)UkCX28T>Dpe9cWR7Xp0yIetWmP*B!TQ%nep zQ)@N~1?$u`#d+i=VNI#JCQ4d^&V_Cen0z}7eqT5F5*2uNUSktJ}ZbRJ?=US0zySHq#o8}llQ;mqeefga?9z5w3~ zO}-Zh|E~i4;GE|ZiT)QF(c#q>np}Y3Qj-fh9=Y9@=mJD->K|TISn9 z5LABv9BmCX<$pm9_2REz*Hr_xut5i@LQrI5bWL$%O%&vUv#DDI8$)U~66e)mxAA6! z|5pZ=^K@-?fZf{t2lNp2I{|hBymI{UCchrF%V4(eAcwk!&fi4`caK>6wVS{P@+#4p zs&!DxjP=nNj9#KOzJvcY{O7Z&I#T z<>En;_;xq{=79KTv$ziq_wMGy`QE=6QMf?v`Xl8!*v*H-&kMT6y-L@9q9HlDwKKk+ zR2q|GPceswCy(n+j&3I7j#^E^4OK6#v}Gp?CF2)!$LTs;}roE%3CQm#L%#3net8ziAz zd%ML~yZHkH;&093L6!JsH~*?h{B5_m00_+D0+aZvMEo@&f#c8%jN;w!CUWQqYKHk_dT1LaykiGNm$zoxZ-vVMbd{Rv(| zRb~8MIF&hh+%_`)94QyymW!{$>F$u4=-NxUexnkjN>QO2`59HBt7+`E%J@Dqz8j87 zZy!sm6Wx^@*F*Y4v@JOX&X$Kje`oX&a@=9V%x#r3i4-{dIlihg25df(`U_oAWyxKC zP}60Z#6N(_mfCMM6mCb3G@fw$-)@cWmjAa~`!9BDyqk2d1)W$O?RENmvWaK%(NbQV z=t>vfVq#6JA&*d^84Mx~?z?DEFs4e`AQ6q>?Q4)o$5g13bm>B)W758KVVxuQ&2))G z)1ePJ$qUGyC`==_P_Xs~dBOvQPE_t@-WXYP75rSOYBGAbryI99SMlacdIV4GmCbjX zkp9OHye$LHdYxnyk8n8UMk!SAiXe9~RT;yTx25d~oY!#Y-;VCRYihsM@f8w@M5gRm zcE)32N8g{blGAGPb(J!L21d63B$ml$|wL0|fI zbLgKHsbk#7h6;Oq^S6d%-+Zc>yYHza2R?_xP2%QWVwBmDp&XoEtN4A)ScycDcSXif zW^-iU?%4ZO61kmsV<!8tK+C+EVvCeF2aPjh}dVcb^4lMbk#$U8=;{_=(ChoJ zDOGcoWkJMjQ&8i3;pPKw-H-STj1{*0UCiV024~D6RBE^LynNj@qOrqWdM4ZPe8?Mc zST65KG$dVt5_dp}vv+fMnA{fCO?+A@PkdHm3ZfcMhMVW7t5&-WOw4TZuC@Zbj3~ADp^WbM2wsJ*s-af zjpYf2yjSy&Ew7H^a*L-P8_P)?*S_72kUd>rE26OWs?!E?@w-e%mJ5&f~e%uMoy_xpSAl z&iChV5o)C;?TnhPOE!tl29o09Vh&kqz+`0W!0*XmVz-YI%7>)D;b+t zsnZL}(HOb16o!XwfnibF;+hh{Q=d;QYaW_;RE8 z%7F7vD%SzHtHaG11|TN>O_lf?mFsnh_@;>u1CtMwXpqteWJ=eYM)5%FWzmzp-g!+P zI)hh_+55>}zhjAh$9uhD#0_JA7!E_ANA3Hy0S2>vmwJ7lH29sN$KYtZpY7mxr(?P? zDWp3oq_uteosPKL%Ghn4(_w7YS{Ywo8FPvp*P0yLogCAJ#%|NCBdpH&Rzuu-ozsoU zFcyos(-99tm}WBma2}}1s(fp6R=HrEs%G7-%`n>4HPmc0))dQYHmXS&;g+-r%3$QH zCgJV}27!@p@vY4p8wDFv1?8D;$TCM%PHjqOWEr`bQTBVCSZfph0LE@gG`2#+uGYZc zHfK?rRgIffYGmqlP!P>+Lv)R29xzclAJ97=F(J-BP~vNHF|Y-z!Wi>=iTH-xN3p)+6wQf!?4I)#m78?{k6bOAYYI3-GY5zT*bJ4tNfO%F6cd zH@LuK-{~fJ?DOq2pl7Bh;ZYAB$a=k*YBgui?i62FyWTMKQK8@-FyNAi=eY{q>XNIs zdH5tLk{b4&?zsK?%(qV77`XLp^}c_9e{;&WFP`oEeqBu3<349^z8M`q{ey=5A0Peg z^^+f6eJ*U${CB?@Y<+CSgYJiZSpUWR(6>$w-W>DD?wW7Eedpq56ZI$OQe#YwPxF;R zca5ORX|Ytax(?oeMw2xrah`X067_Ty+!%!rPp!G>MiA5*LZA$Be^gNA{h3s>#!B20 z8I=@bAudz)FMPJ$I5AC5C?PL#UH{vvAl_T4LRcb!s9I1J^qG%ntxfj%QAyD@*;^JJ zXgAwr-=qoR9kIzi{j;&6bvD^G(MhQ`+4EPu-7XKdmi|X|5btd^yZ$0MaXdVh^W7gO zswTZ5oJZVrhl77P26s0B`GU;AAs~@Z=5V(>-x$2*9rDcs`^D7@)3_u(Nud9d=NXZ` zz`aNyTX5b_bigWv@IZ7@o{bQ>nyc;V$yOl-w+8XvVTDi&avxsmD_U>OUi*G@Qn^j` zkh1IT`pIc(#)1Q%Hs(wmNV|MP-*xI*Wx$d;HEl@{`&*y6!gV{*@(qY>5_g^79xc5t za}+V#aLUGIoT{3c_MV^dy=70yTj#lpn01*rs{V>FdzyO%)G27&!`b=5dVc2~Sv#}+ zsg*nvw_Va77ywnzB?!Hr@y4o$V|`zfU$PXrVrgr+xGh{5*Qj$j zoGC4y;K-+~sQ2rBpYI!RYjzSy1{sOC#^+rQ&y;3Z2~-z=;EoN!8JELLq*^OM_xC`c zpJV0lAD6=mrD`jI%30tWP-R1)5Fb`Zzmi#H7!L%sHUulhhohz6TM1P0K(Nh*V7E9g z+l#*vonZ_Aq1kzS)xOZV^L2}l4_0q|egOISwI58cR2nj@UiC@2$t@{g#^Vr5$k|G6 z`pGnJvtg-~;Mq+kw+ah^NmsLV2N2%yn@J>1k)0Q}d`&*;!jDO-;NYT<{KAW z!_soAK_v-Jz5y*(b5IQ)+Z9r?rD;4e2mDC|{v>(WX{o>Hpw(Sc6%N}anL$?PFLIje zE81AcJgulxWawc zGoA{+>~!~C?Vj$r*(=`w3JXEI9AX%aV{#7K-4qa{uH?xA7!M9X&z=pK-o#?jpD-hG_6IC=^xR~ z!BX|+mk50Ti&N%QDzhi^34N&K0njPjzd`2X1`nQ&6Xzc1B_~NaAzeEvCbhVGgj8}p zLJWZ+Ra{YsU@hRQlR}WHNf1s2jz1HLKh*Z!lGuBD3^*dzAaWI-xMC0Hs z2c41)lB!f3%yd}VNaAedEEUEI$uP;DhP<4dmQ|uIQ(n%#EnAwlhs(+4En6l|td2cR zxYSRaxTisSEtQN^V?vi6Q$9l&r6XGy!plnWWQKVQ8P{g4Q_jn2xgs8*9%Tq&|J|L%84d4kcok2Z{UCBAne-*@UrIMBQeVz#}EV#Uinq4SJ+D;ouby6-Uf) z2=dHG6k}S?OamS4@H+cHOI_vami?Y9dRaQJ+yGaG4n$Go;406|CN}7i+KYohF6Sr@ ztE@P<-%H!>ft3+oCp<9$l#hd}z-TxK$`D=_4oV!n;-zb6u`cHbZ>)jqpwinyt7oy^ zrR{XEBkKE4b{C!Ys+XI*2veE%6R&2IS8j(_^T%GzC%j~)qlXJxf<(uZ%6Z&LP_JPW zNltQXmQ}}IFu71nb+wW4U6!)c$qZq%u~N(s{$_IRAei7EgvSXSJYf<^nC!^yuvZBk z7N+8$lnl>ggAR-Ga4^+ji4g~D9hPf*!vmt{sLE7M!Y)UU2bUCL_WYm4wDpkGHaJ5YoT&|7p$&G|2Cvozuhj;ZYJ);| zxTAB#L4+)ftCS}D6%hiDMeeC-5_pDQ-&iMf+c$r2R2lCd9|ui-TI_e>*p^jujemW{HE z&VRaP`OV_@9(nQX-}7T*GY{_Hc~$<8(9aKf{{6YDw`K2NdNJ#4>EN4tYpTx{zpxw& zdQ6^hc*;LNDk{G4#Q8%GhriIv{lwC@I2wgHo!{JkS>byiG+g2tD9L%Ji%3^Gr)~}G z3;$>O^j(h~d2_QY+Vu^G*3j+Bsmu8#n|kJpPk#LAre!ZKICJvG?a29a$DI6Sux+pG z+SgZRymxqiLnJ>ZU}BC7%px9KmK?apP!&L;afk6dDoz%+G;yMb3fPm(u%WzS!$b*-R$~s_X zXyrlUm~}cQ5K~e!Qcsatfni}w`7Zb-08vDqWpQ4Rl8>2&#-RCv`^w*6~%y++kVaD9&iaxxU_A9(I_sdKB zpI@-}nTr?3Fin&XZhQXAE0I6{J@{{b?%qE+dCt3^KM*}PwC?Q-7Yf(Ro^U))DB`%D ziFI=MQ(xw;`E=GN#WQp>PHnt7W%#A0=j5(SUATRHecbU2d2empcE+_eZQ`>JY}@ut_nT`U{Ku|~S?SfjAHRRR z@aku=6D}PqxVCWbyf97q#k8fX{z262Ne@o=@Z#G){>^R4Gq~{`K6K@lPmOPFeC~|f z<*=dM3fU9e=Rv^W4%5hQ8paxD2y&iGkF05#H2xTJOq}-8nDCMJo%-vOpNx9qZ05+F z*$chnYVUYp-NzqSZyo(P>QQX)mJ+K{$p!I%jjcI5r~&TG6WduQGqtvI|tHa58Q+uYUHw!e7#cmW#Ex{?#d z>t1eS$y%5BTaSNP(0X-N@Fm@-$Y=KsbS3+!y&l;aF5dYELCb61U-~Nt=tDr>YKCQ z3ZA^{l`nIB9$ogc`mT_U+VELu5zZ-rq|NN0nc=hA4A=x{L}=sSLlb-EV)q-y^6U~|+~ z;qhzp1Y~-nB<2h~dv!gUjYY}wg8WiE!N&qR{LIoITiN7AS8z`fY_Tst0c`+O_$UF>yN6jltkzzx>Lff)vkVU_^R!j58`fUS>8&g#rZ*+#raN76DDYur4>Ac?PA!% zr{Ukvy6r1qR$p-w_HAabG>+G6?lBh7zDH|R6201`Ny=TE_Z!rC_?#Nj3U7b~u@~#i zFNWDaXx%!a>1hS&l$Aa&Cr1!vP1VyIbs9qfZLBNGHWofir@o}n=i3ZPdQGx%r7hu_v17x1v@mtC&)B`cz-i@$#}fPtPKtc2@a14j<|#4@EBocrA9M8q{OuKuu^*7 z!(Z7#2yKX7eL@=~4QsA<{lK+3eqfmE#*ctF3WVmQt8A+_On%JOR4E@F_*rV@_!Hlq z7?qrRV(Q+?;Ghr2*KPcM*51n3gL3v(Chw`-JNx7ZV=G_Z``R7JxvwYZZsm?uJoUle z4_^N6sn<5Xe&W5#@t1RQxB71$y=VX4`E6~N&n`OEa_n5!G$;NpZ#R3M=;B-uh<1ym z;{0koo}HtGOloZ|`P%zPty@#p|Q0 zno&)-G}NyUKu>vG5ZyY`9p?O{E*`p9{JE`5*AAh*OJM_gO!e|R7RA^5JH9udBvs?? z=ds-q@%K1qiH!0%7x#9vV}fP?H{LDtwA=fu>yJ9T9FwDy%OtITS62;?IZEQRx+m8= zX_gl3>>6F-6B4LW%S#_wu&I5lIg+}mJ=h${+N9ZFg6X^+3)dfMIp8{b+p?jW@t=hz z-haSY(;(g@r)fCudl=;@znixO4+gn1gYy}K++jnI?!ycxjj|*)ic8R*xyyN1x8tnj z@Q}2aw2YZ=P4_&YaX6syY*;)qBW-4B+DuufGjHuL;()4JbXYjMG*rLY$_#VuiO!Gvegonh1@iCsdw!xIHmm?b;=EEvq?bN}bNr zb-pJ9yh5~_)pFUJfu%>@vf$4IXrA-a_&ZMXC`nBnvREr0qP|=ax4cZ_)l&MrT&M$8 z?uF^CK5F&bL#3hVsR4dU$CdjW@3B(xM3Qb2saORSbra4tDm~6isYo{>ztsn~q#mw` zf=XA4=eS;%N#i3#R?~z|ol@7~F4&;+{Ut#2Jn1qWy0i}|%9l3_nsn;xT<3?uvPQB@ zSE@Rq@yb=+FL7NwRO(kVPlF_hNYXfDwOaFXzOz_ycX(8Kd6Pd=y5b6zqA9P8JmH}% zGE2LB$o-VY%1_Coym-A)Ne87JOfxuWtBsoVrU#2nl|tb>P+2nE%i^TwJ#dnc`%Yc* zUTq~SwT2nm^n7yFV|O`M2ME}>DJ@TE(+%FhUek;_93+XGLawNU*HXh1i&Z5q%9Vnv zI{oe`=~y2(xKVUn$35%sb9_lDG8-iBPgt01?~#rij-ui7dwHMpBWkrpLH%BNW~5jv zW;YKyrqPIX<}ssa>(!?-wlzkDsm~249qAOO_1f@&lT|HCaSB|fY^iA4gj%t4eUNKY z-6Ea2dpPgWdKOK+)F0^mq$ci%6Dmy2BUkbahKQMr&v@s=z+JmHRWyZkRANP+?bX7NW z-195i92R~0bee1=&RCAhNT2TN>InVDw2eyKJ7m|dypn^dDld4Zz2xG{Z~JLZYn+rL zkCqJY>UL>zkjDsRdZlqf6Dq7p&s%UacY7G^HA$?dbh z{k6P((YXtc)UKJ+{h;&P?}sNzODgtvPs?{b$t0B?^L|5q>Yb+U;S%jk-A6OkY7ZZ2 zsM}_f=2Y_eH1~L`R`^7nsU+a+YxQB&KFQqX zli^U(95KNS`+&bJKVE4GzSdMxTnlWE>_n@}a53l0mA>X+a+En(8Ep2<%Nw*e~ZD3mxOsYFRq^-G%F$FrG}sc%t_I zEHvQ01IE;boa60YpKj}TfB*Q>t;U7xkAdMHFoa^j$(eS**uFpKc=ymxw@F+P&^lrW z3X~yjbsTtF8^N4iWnAbO(Yha79U!OJ4Q!kOlB-ICJ_|ij47P8HZ6(;&PX?QQL?)yS z1e?YgY+eq?sHy~P$)wvW#CA8ajU%?fl{v@NE?}#1K&EHn!Il$u{DAA5HOTaV7O+h~ zrcFa2O|62q>T+aSSqiomKd^m6x~ErUXIzy$)=wCd{gNu3-ddLOnW0szu;&|N?onRGpx|jDUo4yMFL`>Q#+aUkd9MNx( z4;jD)xz5rJ=0R@s+*BQZboIjZhfx+YV38Mej)L+gSfS3Qb7<&F)3Ci>Y#v1>L3eJg zPF)hKQ6F;fT-$sYJybH9*6fCIHQ4zyPJrUv%Q}tAXmtBz#7b$b6qB+vBzTwSox#s- z=yAds!{!$0R7`E;dY?D2AEEVdf~RL@Dkc?}&)j`LGpivI)0o1{nOlrAPa9|cG@b9}=!UR~*>M$g=o z^jeFh3+o;!`PoS_RG3$^R%|paU56e#knh10r?x&?E%w>@{tnliByWY%#APSOiTpp^ zq3+7?EWNL!EJ_;xXgnJPYdD!-%@mpe(16N~*ru+LJZ|_iO(bb_;hvhMTtB=-Eh)Wk zeX+96RjK52kD^)4wYD--f~Bh~*E-eRt!(*-W>En&1z1}Vr>U$MHc*@eWW}HG(DaO< zaWNl`?~=JzYupwO-8j-KBx*b4U00S)OGG}+7;QTD7dzCGlXrvPiXo=HwR`{N23X-7D{5go^qI>J1N4r`bttJvy*GLTq<}O%@2YxPg$S zbw)GOIES z8Y}!Azz;)wFqENuM1AzY(|2el06*Lcp8`Cx;AQ|%c8L7TfKNvJUf^dkJZ1D2@HlRW z+X4I_hA01g2t3|_=H3LJ=%QU;15bP(08eE?c#`uk;3?k@;H~p@LRpbtz6YML-@Plmddf-WqQNUa4c^~j(Pc-n!Ob+R@6Zi>;(-n+=k}sEYc=tf? z8{x>WJRS>$6QB&qO~gOd3my-}9|E5IOLbQCKYfSbZQ!vy!4=^@5dXxlg#537r}w?K zQi*Uqc{Y9#a!xXa|Um$6` zzXy0)SK;M@e+=+cUJn3oE-#eJ6yV9O0^qIfx(9gjLj~~Gekfx6J8k$Y8UNch{CgPx z$2Rl8h6+?O z*TeULr+kkCkD$38b|6A}b^vd!=Pky6(}sTtgcH9f##(Fs2;fQX1mMMd$tN>`Cp{B@ z7xg4X<^zvEZYJ=eK8SJ;0ZDqMS>dT&mjX}uJ`B8dzO{^hiw*xe-x0Uj~hAzYkl;L{|?|qyGZ|qjQ>s>{?&|sp$-2g#=qQ#|1ZGb zgM6O?em}vke@q%7yV56s(^=STo>?SxlsQ<3V4vYo4{M^84EmLz7S$<*FwfW z0eEZvLdHMUhJO?A#FqxVm@n0bSAeJfb|vuE{cQ`A|Fn(#b|(K-8~Oic{6}s02V>AB z{Xe(i4+oy?y=KFo%=q2m6Ki{y0#AC610G!+?`P8gao|aR`bLel{xwYggTPz+=OB|` zWF!A$;HkXm8$3|S+#bIKp33VP;6=YtdHurVzlN~2d=&;=viA`1*7^qlPx8M2-dcVH z@Ff2N@YeE^8UJ+~{<|5!1j4NObAYFDZZPnel9>JT81PV)8v{Iw$c(QBemvqj;DfC2 z?=d+!z+>uU_QNgUCnEj`@KGWjy3K%*VTd;XA1dNeE{_6F<@+`8*8X`Kc+&d@@ED@a z@;_qy?wHS8^Iv56Q8swI1I^2ivB3`oJ_d5{0)Db6A9~IQp7eYQ_;4$HIq+1U=$k&) z^Mn@QNx#$9c+6?VOS~r`NPOZY;-x4A@~?P__ypj`h)6&YzaDtfOT0w91WNr+$oZrB z{{Nl7FTb^+u&BQfFVW9#s07q*#7o5gQU3pJe)~`B|DTrszs;Y2RGfipT zKmXJG|J%x|uYT-5?T0@q|9?u)|Fr-AsQf?5{|V+vf#M(nD2^kMn8(mOL%c*hL3{Iu zzWl!ja_r3?{wRN6a{AJCtJ zHN?KO2tit;J!y8W3GK(4P`lQI^k;7f!@PJ2fW4uHPd1@mr)_zeV=rx5(bT z@a%cQXIJ~}bR+FH#>jpeW2D{27}-x_jI`SgMfTGTMGAfq#}jr`X1|6^wCk>k{kUsl zC|_I?!|W8-M7tGgVm}pXVx%C=Ug1xS5@?g`T!HTW;wy*Hs zM!0nVKwE6S$(jm(ix} z3!m|dvZ#t8GbO)g zz!6Uu{x6>i{6Jp%(u@@0O#(j1KAkIkd5#hJulD{fee4f_ym2|%I6F3bnGsbut)M74 zUz;6eouQQ;Fea}6N6Dta3s$c*^s1!%RFKY;HqQwQd(r3dhdw9gEm?wtvy_+!p1rF9p@n(5IEEL! z!bCb*rI;DjojzJb@6O3iljzN0-6ncddN&FoXG^R2pKBI^WZQNjd=1>( zKUf-uot7a;urv+(ZA0L)Y8(PW=;m1K5Kz6F$L}fA-`P6)`2@VZ8qQv@(y&%bN8~44 ziLhO{=>0yH`NMto-^XHtde5ANZ?=hVbcvtp3t}I#6F-1h$kN)o0khFT_&8q>`*LDR zeqJ`tF)t_#%FRO=rDdj|3(L;8GO7P%l-rE&wUE*~Yx8&f{($+xA^lhu9BS8P!D0QS z3AdjnqQ5ke_R~!4FHMyFG?V&E6QZ@BD5PI6goO4}T-M7mOn83_GAa6LxCf;{xJbC0 z;9vclD}Dzfng0~6xlXcLXs0&bKJzu#1@W7Sf-J1$B-{HmZ-`hRy_*A8bNY3lSR}To z#L}?WK!QWWLa|8|Di(*`RG}yoex4tSYIwW7!J%R`w3RB>K>Jc*w;&aU+LPLcg`xdg z7}|%0Vf|VdCRRHe3&O;9XV-$TKI{(b*Y2=B$~&yz@(zPH{?LuR{gIxzJPbaxd{HQS^sh3ns!Vf>is} zWFqVr=%^QVa>c5WFi*BxRuX&yHEvs1x}9?Sot=4M$=Zv;(vo@j7jA#)Yyhg(x6J}_ zZ1eeji!N-UAWpIQuMOKuviE4uW?72qZBqgp#8oU? zesLX(dFH>ejKz}vkyR|FMXz-%^K8sghV;c``!jRl#*aR|WnT5-Z;j!nG`a&4pLL6H zJl#U%7&&`u4%~R-vh1Sq$d((QnO&Hcj`auhdIcbK98Y^#wRjCC zUx2Y$fYrdKGWr6*NubXcV5|WUdpDDl1sIzMNb+=mBrhB=8g#7yV}k(k-b`|!0Am9H zvHc)fBfwZMK*~=ISO!S@VoA;o7)SYD6<}-+Am!UFz}PN8;yVLK`nL)&wuRx}0mNR@ zi5#VU(w?Kfg20-#hBBSd7M}bc57%(;pkS_;7N*@3i0J=tiv0i|D zJ!Nz`pg-uG0AsJBr4zjykkVfU90_`t0Ao7=QAEk@0*q}0B>sbd#9s$U`PVRfHN#f| zVy|g(g#cqsfX{+&6(E&Y7N7?7OaaC&0z|)*yg-1l^zI2%OimVHYy#kuc=bdlzz68d zoSPvh5RmfMFz5wHdMN?17d=@nz*r6t+j5feZC`@1_$Db|AL&D&R3GVG8nUYsuoUnd zi_<4W%Mfn`q{9_{soD-Xjba z0g~J-K&0BMS#40ES?Og27jUeV-o-eBCZo)>|{X7PYX!;(s+VBWXS;njMV^=d@n{<0%99^ zvRr_%HzY!SJ%E({GT;Evy95~92}t?33ow?xTZY#?liLIsdj^p5Zxvwd2|&uP5s>US z2uO140I>%wd8Ytlw=?=yMy~|KSejfRz}PZCYG)=ul2-&s@^S!4UKSu;mrc$TVC*7B zpU>zCEIygV!vV2Uk1bw zm)s@5*iJycUl3sIc0iH~ULK;)@hY2Z@d z@cD3g6yTo#3BLg_5by~=4It8})PO`+0RVv^-K=5#L0S$ooS0w_@2Gjx00*nGo2Gjyh2Mh$92B-m?3g`ux0H_Ak11bUI z0Rgx>8NHm*D;Rw}qm!T1DDNDK13m@VjdTwIwgXbU6)+pHk;Ur)(-E&>@hZT35jU}T zKHy!5r?R*Ka1P=+7S{sKL|nt-YQQAK0r>nhfcGO#c8voh`dGk&fDZ%K1Lgu&0R{oW zCT=C536T803eXWSA8-X=7GM!zDj-bc{apxXKzunMItHTv zQI8$9fE&TDVR!(ZUn*UcDwP`MOQk#Ib#ke+OkN>ZNV{a0WeRD#tWzeHw#m-ncc-il zzZJ4d{B}ya@NJ=bX#;-Cq!sw>l3bQ3q%HCjNZTks3^_OCCI^Ha4m*Iyu>#-x>2&PE z?_tLl{8l(sIw_=`$}Xis+NM0Glt@n~+murLwknm_r0q^!PE!1K;@9L{hEE>VIPb*oJI;;xZF4?{-xk*suE3}oRSM~L zRSkZ(s;X5|X{D+Pzc<`W_^oiSbeBrIRXqrIs=8DX={Z#=!sk@&;IDDt32L?bc6WvJ zp!+)rx4NIf?^X93?hNYiOQJ+!67ImvyA+1+8;I~fw8Zb5Lo%rom z_ozAUV>c8A3QoLY9D2vo<%k1!)k)w`P#hf?ox4ESUO*K(q!y(RKS%Pc;=73-^4}52 z+~X7nZzK5Vs-pCe*UIFra~9%lEPe#ML~m#DkqA?~i^cb%22#A6#g_w8{3?rQx*!f2 zEiAuQmY!qrE2xwzFObDYlRTu+viN)^FN(!ClRW(ESbQuX#S>ZlMe;AwNcfhCHb?m( z|3;QS&2OkYuA)ro!W^DcAS&itLv;zN-a>9dN( zr!sja7T-_yL5Ei0>7qjbt>X%2zk%^LGkwMT=ucT(yl?)2)vp@pNtZ9vuY#rTWd5jP z{-|UAXlMTDX8Bby{u87>bZcdC8S{TNiyN5#Ygl|gwHM&(Slo@-dyvJuC_QBIFGd19 z%<|VTf8PKf<=4jeKVtgSvv?=bkzU96Un2crQyt{e^%BZb1s($?V|2Yw`B}BsPSS^b zLptE1`vU8@g6S)^XC2uGTqDc>70Ms!XR-9_Nk7C>S$rSmhxl3+|AEpYzL~}ELzv>v zv-n0Pua?E>-Ds+>?JU13(9t@+gZv9#9V;)&hv?rh{@0m(N0~e)mVY~oZ>0KwJT9?# zD%Cfnzs%AvBzd4;Vf5`J5A^Gdev$OUzYKQMwSviWVe#oC5A=~N9?#@WWbsm_-wYQ2 zlH@`DWL6&+F?n>x3|+xY9-SdWR}{$ue;VU|h4?`e+iMJHl>c_dzna;)X$PU4v@c?JYN>4^&p}Lu=t-4 zrg#jCe+fwOcosjz>{YY!{+6ZBVDxEBpP`IS>jt2S|O=wnTvYD0g)hW<|*I;FKvPiL@L z$A7koKLY<))89o|TgS6)=*w)=+r&58#9y;X|DtUi^}#y7HkBo>-g`fo4bgfV8P~^SW1C$1c?@L7rvAA9 z8&5cXQzx4TJ-7s+EL9}Z))q$IP0xCy%O;|;ZTJ3-Vb4n;!Zmj zwc1k0Fyb~r8wJE?z`gS8V;iHHhu>ETckmB^GL~iLVAm|vyE_+8Ycf;j8Vgq}Gm2#6 zvUFo+rZF>kSzhJ}JQG4i{2$xB3t{}@E31c|B)|VHOw0pv-a%u1FzJ#^A z#}~%l{!mt|FZLezinQKOAw{gv==q)WBFfCz3v1cQHScai3bx+O!)`q>iG|o}PaepB zXq$um9W#Ga%J1AP!Tp|{o&Wv)!(0wto|*(3*fVv}W%i0HIFcB}mT&!%LquPMa3b7Z zA%erq3G8MR+CMqOOzvG7f`NxQQTFqkNO*hNNA{5*!koaalHo+=-4`DkDvYpZj1)j|4KedHyldF(AvR~yV zn#neaBh3W6Do6BB4mXo+#D)=pFT7BM$hf{ZEd;v?2&p4P<7~2-XeQWCY$n^Ji|C6G zZYJ0j7}h^I6lAiMxa^cOkGI!Cgk<5j87c1KurF@n?Foc;q9V-%yGBG1nJ=4gGoy`v z!uleFfM*t=|If?Z1{_D_!NpB!N(+vpkI7a@!YLK{YioMGm) ztKV;snG9~aUY}xIm0`>;N-3gEIU#*{qc6h5z6gqGu^H}7ILrMW4OO}#^oO}VPd4la%n9=jSv=o@#&w)@NkVLGE_?dSE}>vH;>bd zMHyM1P;5=v{TpwQl?%!C- z;cvm|2g^$w?ZM$R_{W7k1|02~>Fb)mPoQWi4K4$VQS@`MHIWg_u0^Yf!fG zlx)2W%VYc%$09HoOi>x;_9`V#dMUXh~mNQj#s zXW^i;bm^kAlIcpsLL1rJ4gDqnqTZQ{is($9`MoDwc~ygn3+v?kFV^p|S%>6hwV3^9 zBagjs!}x8>x0T7;&-CLDsARkZZnsz5h%PYM>Q}-1Rm0>R#HJ;_e4!tmHEDa%J#%iM zrGePW3uK8>S;7T=g1lAl3uimuE-$?h&#%pwtvs=vTDJph8$~yW0<6n}b}ZZauY&0Z zwfO6x7+`U0*@P11iALM%SI^{KW$D|Qy>+mcbrFmr047h|etcVfuEQoQx?%*twT)x} z2Kv&Ec4*V?UR(XTm^`t)dHDVnW=v5@6Koc?$2AW_NuK<5LIEk5>T-FDO z6Z{P4-J?xod7A%r0s!|{_D{T|{vG)Lqt`9HY;c1?yD(ryJ5$sMp??oxAd})ZsaL;UtgjG-U)PP@VUS)SJ)-nMEa601EC8+ zPrweA_f44(FQ4qN=sR%Fd8UU*C)-5bh;KM=*Wf)Jvf+GsF>Q}0ckMiEBb~*xf{%z- zuvf&3{vsb)^9z0#WQcN6uc|Vzz4qrJ9Q-+G&#&&3&k*LD+hvna#kAJ41ziL^$j74o z*8HOH?djPL8-8}7ya(<1%EnHijtF|A>#LeC6Z}2I>?=WEQSLRSBb5j0b5%U-Yllqo z(^s;gy?iM8Y7j5W3p|5RMnYbcMyMk~8p>C&t#^Lp*W2^y%_Ed^U-AWB(XajcX|P#8 z(O$}5OnY?%m7^DU1ext-XeoDZv){aX`Qkd0L+xxJ{z)eJxC1gopNM&qkK1L#tm;YM zvZPFgb$t=aR7g+xa6FGt=g%`eh5>hNIN384!Rv1RkM}5ZZYM z={vl4dl2i1khdpqqrLjkK7xGEcfAnmL~r{=*`hD)`S1qsL!oZjx5?XV6FPA#yG31l z=SgkNqN~^z8H5ei{fI4u;sUoTlaZlyTEu|RYv{H z9B#Ml@P@gf9I@{c<24zQk2=_R(1o#MP%*cOd_#Wh^5^(EiSoMHK8Cv~;JHm*;{-hR z-)`!fz+J0_42xXJCerO+tWHtA7RpO#4`O|$Hbi{SNVo=jbn;1sGt~p~1?s8f&W{6d z3n!KvLEHY;+K=av?km=(TjwdJqdaZftToNrzv8$f=0|CXF8c77({a0hbs;;2_9Xg( zd@JyYbwj8>=CP2q52`}~pV)_p@`bu8=5upxGRDK17#C+?d`!YPnYjB#-gJzgGJgET z^kpDlC((9Do^AdbPIKm$d;bm@5{#+R-8V})%oSvqD@ZX{p#DX|rxWG{LV1x-|5`%* zxnP5}eCv959zLOQq?7T9{G#p_pAEwJ9}gYkU`KNu^c?7C!s{mVPq*j{-YS)1E+B`E z4zSe`yb7dILT{(tH}%p@J^b8;bQb0{f?gJ#8)RGq`9LgtYh6X1#PYUnGwm|&nm^xW z#5s%rMSk>`p=6H?bD>T)W_{a7-4xS&g*Jbl`9{=bDB1?qZ_*Ptoed(dP&b7edyTygTqMhv&qwTk#Bvk+ zSTU_whEy;4I%QS=MSDnw=r1{REW;S#f88`!(5LtOK$Lfg(Zzg8mZh%~>hBsE_gBnq z2a^7_d5dLbFK<2Cndl3Gw)WcAGiy6~*E4Z$Btr3iL+n$xKYX9sGv^=ZbI@O+99iGARUFHmP`~bQ;08EJxVJ=K3AWHZP8{SO zszcm<|E709|K^VT)W~-L^7jD0C-NGIdmRV!7))hbS32w}$@fHniQDwmOOj2UGVjoK)bS1l$B$3c z#_v^f4P6+o20=cS398o0IDBfybc)hae@1YaSx?L%aDPMmWXA}}pi8NEm89KM81K4h z{9C>1s$hpOc8Ye;Tutl`Mku)-zmjtEh4Qw{(L`Qhyb|!X^@YZ-c17H7aeNZWN2~+l zI4g|Hc>i{6Glkw7Ma$=OBp?bAvjBR}l-PL60&5Dr znQEr2Lc}bZ*5gs;LYgY;G&>P7=R;e+#n%wP{hzta8%i>Yvh#AI7v~l9aZY1iJ~0$V z(6#h0zZgR~yo@3!=H(X1*pfpPf? zoE>;?c2SmvFPg)_hlR*5DR*%mS7gP@;P#8 znVG`w#b}P1Y2hs-=9!}LX3j#gGOnN?ZFMxqyvAX14m%*Hyy#g-4)IKzCA}=5j-#Kuq)&bqr^76c@PE1^ZCzDD}0D-oGX-3 zG#!JGgA+3IaueZYoC3=0lmJbM6J^0dC{%tQ9KT+=7*(t=OAu4IBBv<22!~JRMjHzX z@{m3)2WLBTVl5<5(MGeuImX;2MOhrrN&kw+_4T@=;Zd zsA5nUhdbsL70xq)DXqwu8NXUM+>400bZ}vzSiW|5d!c?UPJ`BZ2r(9L`FVv!v-66w z7iVXrkstV~A`~vn&*mFZTES|_UXfcAzj|sewgVzt6d&n7uLv4M3+!k~#6xNTunH1a zl$4ukT-B?FpwyX$sQ$NApWJM7)3L75tfK#(M*E-XSN>1x|2H1U7CK1OngVXY_`((G zMXS*Z+S^Ll`x&#wZf$>n6Sq}sSih_(%F~R}X{fEB1w&Pey zq2mx+-N=wg!tl*=BzEWg4qbj0#NMl@;k8a+WsTsqoFh-MCpc%vKF-C*o11~kj z+EfcV55)SS(ck*ArDIOe>$0U|F4gO@rH|}I#d{n!`H%Sxx;Uj0*=*DQ7M(pV5|iJS zzs+On+vs8DltREZ|B1gr|E>IO>47%#Y@`2G{$4{FU$1+&Pcffj1W1S9(nI9$3zA=L z>sDX9{~f#ui77AJa{Qw*brF#|ZFH0lok?i84n0n|R)_t!D-j2pTZyPOnIkR%(L1Lv z8i&v$M1I2l8lKJ4w@c&ojbB7y22WK#-BlZ~ZQHJwfBod~S*IIPKAH03zpl-3xyzJ{ zg7w4no!*Obk@{h2Tlj{NqS${^T#G!(Q5`yIv!u**l!J1pul&h$Q@~Vd{AQQ zDIN|~KXNooQrOm zW<6E75vC=jaW^Q$HApneG|rL*k?oZ~5<;dO@Kv|!ipKqdR@Kv}y4LD=rCarLyQTGrFtWy0_Md4*y_a8OxJ*|#kbMDJpRUJC_F0NW1Ro^^$t4vp=k3OM~s*uHO)empg zN9~lwG&Dt($znjoH|tfGweA-<^<{(VC$0N3&i#r(^;MPXC&)}yb(1KSX%d)E=qGVy zG4JSySC>vM)03#i=9rzOF|GPZE&AbGWidPTFzwcHpt5SWRs`|;k{s)_58j54eN} zYT4w5xR^3oY>g~c)zL_LavhZ2PgSaK+Eo{Hs%16q7c}laz!uWq@jJDu$7EwdD@>40 zZq!E~Y@T$Rv=H|mwd$*S6}bW@D!>~$_a8Lw%QUK=Q&nH{Rv@qI$k&&X$Ci~&-mah2 zsvlk{n|wy5RbA7nE_bWG2Q|*UL*xF9K}CgPpc46+3emlBSY_$tPTAzv=9v1XVZ1p} zE&7-?nJ=OT^^@KyC45(NRD*2zYsFJ4OQ&!Nu?L$cmz7R}&+VCimpc`f*8PW6KCedA z4=~wW`t`+8a-C~rtJ@X6I%y=HHIg)4WphkR>Ex}=QLVC=PW|wf=9n|3F;)6WRr=wm zEp7T}gd3VBA1<8?)9hs$r@E+xfhts+WjgncD%Isy$FESAP$K56b@lp5Cz>ZWNG7-F zCsk4bh4|Dc0B@8e06Qn>}3YgOL#(`>A3d^y(Nr zF>qLh+Lh?TtIH!z)R`~GunU=53|r;-8grK`jCUvEd=J%$BKPU z)%tL2s>(5{rvAogTOJ99{PIW)>q zU7c87h~Y_79@$D`*~74f^eXy8Df%My1)&((T=(Zt5bv%+v0H-g*Yix~pu z8*E}@t8g7(Sk>hZYx%q|Ov7aJ#GoxTP*TsGam;WsIn-j@3g>p$NUu{wcQ?tChgW2CCsSo{0~&{7>c}NwuICBpS*EL2yL!rZ zRBODBmNizZ<(|^a_^MC|eC`gob?SxxxKvKst;D6gF~TIm`dm%80a_La`FZ1i*L zL{EA4bLuG1^^12v)&>pEpu{{ibY!BlCUc#9OTf-D{CrhbTQ$%ld2^*pS->oHo71CF zNzaX(QGMe}Cy$OHT!#in)HrLWn_5kwYK_k1Tva?tsy%37SyFK^-!U8{jl^U7s96I> zCI9${)5yvJ;!R*8WR^M&1CwH*lp@cQD8Ck~aVAb8k-B>4Yc$2t=lm^1&#_pJ&u^4TT6ReWjvV9IT5--xH|kU>_d?5)lC2|$ zI<`I`*XhRZPv!o8a5nF}TX)`fGJB^}*65W_R2{iGrcoz%l*@-1DldEC<|K{#XW|w~ zk-xj6VPmD2E+#aC`?+PEq{n}dqoFFnOQ+wT&J7ys&vhyN-Y=Kz3>faH-g0KBZgxQ? z7nk%WNx-N%j_Ri$8LGRd@}n9kEFY%cwrH5{eh(wJ{QW9P=O_n9b#yua2n(4*`XHXn_WY9VB6dtp0{aRTPs@a{nA^52Q z+}7R7#PE-Hg-A`&Pd9o#I#%N0e7B?2Q`uSv)C@2b?HTx_a(?K#C*}?+Zj|4D_xh=F zrQy}kpy#y34-QKENdCm#GI{u`UdX8~(|OQ8VMNzGPJ{2-8y~dPG;_#zWA&wuZguzi z-GK6Cj}6KgP%Lp%FW8ZqnXNHhHI!~v>k?`t9s!SWPCGK55vtd%rt`{Ucd9q5{XXnW zNX%+AZN9IRlgi~=f2=hcxdamzF;4Cwm2)4x0Tp))iXSGCCT86~v=$y8JlSmtKooigT0rBvR&s9z%%4AU^*I6Zx?3l=?5gk>ed|`~djqyU9yfZVblaDjVI$+^ z^VK?&$rS3m00OUGe5p90RVi1a(2MF_l}_rKG6)(U4 zUCrh@=7;Zdbwimy@gAr;SwLM^I@xL1Einek$D)3=9*Mu|r{kPf1eJ}J%BxzB!d>y( z;sPYn@ck%LwJzQ?V{u%mi!A$zz_cs3sOORGeE*@q^%W+k<-=A=M@t8|jrNL33iK@D zc6TZYE4yvQC5(2BrDzznYEfSx1|q2#Zszio3&>h#)XyjvgoYRe3N1o-P@KH z;kNFeY@!K&rEY1M#kH!|U{Y75TB%d4NmUfJI$l&O3QUSM{4XZ|g&Kx`gU5{9m2%Z# zuF~Otr9&iFnsRmB!)nC}uksWPjXU`ZK5~4w+hwQPxk2rm)9vzZx9WV2>Z@*-pA7EZ zn2lpnjT?tXN8Gl2V{pH$R$Xay#FX+~9o<}Xf=%asrApOZf8O=6jv-mK1M`aqx3v#> zti$JUoX?StA-Ge?`t1Wah_F^k3|Q#QO_AI;wi;ht-P<<6*iay{my%@Z)4#-#Vgp~;xd?vzb_ zEemFfCSP5bvP!YsP`>=?I^3n^SC`X#3Db#G8KyCXbqdS@5XLkE4#AY8;Oe^7H3|&k zs}>9(&omgE59(aVGg_5k?DzSq9INoVxaZ<$)O5R4Kl1vz6wNwA%{oIWxq3M=;-x(t zRX!*SLUb-Kn_LzbL1Cr&b``r}x#naomTSB_i)pRnF)Yzw zA*Ex8P^|4~Q=3(nQ{BI7cce^FJ#eF>R?To%4%n<;Upa7Se0Y5I_G5>x-JJ5q@$b5? zKD~a&m)~C*ck#v3&EGGdl=R5Z(^vLKO`h;>b@q=BUEh2B=!IuO?wIxVH$C-h7tQwA z{lkh+mj#_Z+BN2#AotU!^WJ=QmTB9c43Va$!EPpXz%fiF>J{A1Q8>9s7VmT3ZT;Vpq%wY0&U8ZN5#pEUk*Da4`Pkca*A^UoODmm? zs*1;=;w%1CrV*aDuheNX|JhU%ouuV-Aaj>ZCo25q*Aj7ZtO?OnMZk=Yhq~rik}IEy zim$dx-jn%xQ=?V#`A_)EuZzh|yBtQ3pt;zPM>u)#zLmO5D>|E6qmxpF%nbji89BOZ z*7@&Dvrn8Ym8`V5;AgMt%3mxl2>kH1DPD`mm`khm)#YXRBgE3WZ2I_v>!lr5$=7*L zS6;Owulr`B!K-MDlPh1?+-BeThs*w+^p20=i~C;E_RRKh6?P%S)O_-lGVV@~5{}cr z_BP4ue}3Ar`CLGg@bXK&%(=&@+wD@jk*;Na}bIm4y`M)g;Jx>%zIG6rl zVHkT9608^oZjSS+Im9nQOOa*0%;R|Dx245argRt^2b4S>fRkx;Jj0F;bZ&+;{?!mT zmaBRE(BbJEXWHaEf-6>eJfx7nQv9;B-b$y?e%VZnXx&S{VpNGju{jK9tle3Im1Qf?z7&3MWbe)`el~X=iwID_lrg|;J z>y%af9HH>`D@%+=0;+K_nnkLhd%O-?O0Oyg3>8)kPpcA|2030yf>`oGs^ak3CW(vw zT0pUcS`gQGas3n3jT1M#DU1K1ar3&SM=TZP+QW?lq#G>mIrU@Xj&+hpEeuVo8wbRj z8FY)wolB?{1fDBx9_;wDn5C&pHMlM9QO7hz=MTk$oMl!;w&NQ7H!#WEAmqOm|5c&C zY$?;wn<(@_7KVU-7f*H3U$-zEx&;YV3<;$r?>RSH713OMvA=wDzqLp> zKegDu%!;AxPbE()N-tR$3X&jUh(*HAZHI!o4z*56;y4`~h-Q6#Uev0z{67b1ISnBa z1MeE(d42ScD|M5`F38ii&$2XviG!lzO`9wo#H(W$?ALCeV`0b#LxmN?&9MuXXdA2~ zJPU>@D~7yr3$nGXRt%@WP;JG~F>b+X?K@Tt@n2x5F*8IZ#r-${Z$RDgov4x8DcC9i|%h%Hd!(3{%ijBruIm&C(<6+F>>@( z>WPvUMx9Ju^}Oh(wngyMzsXPM$9uPH56|)N5;}|IztmMY)ofW6qq#NswMkyHE!A87 zl#91tmsRzS8nSVUSB|;+`QmB`v6=AkC=7l%$)$Aji-{ppZlZN*fr!*7+Wvuebi zA@S6R=fB5El>eqie7ARSq1R=L5r!z0k6&4mr4c`lXBdMVsq)Z{Et5~{{i;vAUF)or z4=>-SK5S9GHBY6CcKvk=_K%VB+=pR7=_OqOU#RNtR3!K~-Y}0;>xK;uNh`ug)$o!` zsw%xCz~S_daJg3jBXG-tb4^!Jv)d%^{mNZC z#NC->656Y_^{ZX}m9x@4KJowBzuGPJvgy>L2iw!y{v6;XwBMCF&7H~F+B35}0>#1W z*%5p1@_KBH(?D@bbJqP6U)TLx(3=g9r)T~Y8w$#So^rgmMxkvpW+;k zEk`u!73gs9FGW4Pm9%I_X=3NPTLaqtHc#>RM(e?8`C_D^blr4l%YqqFC3Vg^LYVwK z)_TmH!FSfeD4|WbGN&ZXNyBFiHjZ1LICe%?@l39f>JMELWv-hNpKeT*Dos2CP>}N% zkIH0DqCtcoZL|sT_r|+YUbuAhWAfX4%wu`Jr;fK9m6-JTWm|o3Idd<2q}GFnwj?s1 z^Ut(AhP)8dQ6k83_FTAtlNbi3Q1Z@%M9$sXPup+Jy5A7Gb*O<=`FzW3`(=(hnFC1GbT<#P15A8`H@vD%V^|d-YP&aF}OUXDE?61RA7M4JOG2o!c~SMorC(TJ;mP0Z-Izciwg4*i*_%&UMArLlZ8` zONJ?zx~^!{Prk~6JBx?iU_sp2waWyCO6eUY2O-!RKYqJZ2ws+qC}Y^3;t@L;?+r;{ z1;dsVdnrH234bHxOo(Gcq6L;d-AXCdV0J!#~JzU4dM+0^>f% zoOXfn=*cBJTHm%(^`yFn*+X zOzkKHe^k_HS#W^!4uhj|siqFPIq%G8*iDX0t61V`gfLDa2&;8|)xd%f zR>guaw4DW;oL}dh1zw5EKCQEmo1e=Y28NAu`D;EOOuOVfvGKsB+(twB_;V#=HFd=` za8zK0bR2VqZ+9^ZD)2dtAOWiw*HFTO(|y_`}P) zfyo_O)5L<)htZ3 z3k>B^mHJo#tC+M^Hid%gUmw@OeKxIG!q9vL ztyhg^!FIJOkOd#-oP!we7MD%7RCS))Xf*hsC@jngyb*joR=_RiKu(9l`Xu;ozDR_3CzlE8XP z7jlpV(XlkLV14|!78XQMsOye{{^RcM*bUS*shUvSq z_qorUo|YW&43_1LS@mC}muhXNt=<2EDKn<_{gsDGzAGE^nbTbdJa^@cng8kRgZp1-G{!U? zUn#BrP9E}^liLB$mYgv)pUyVC@q%VaOw-A2_vCRtUXmJlRGI(D8E9OpnNeFaX3vb; zUb=DS;Z!-*U2c+>MC0Vom8I3atdjSQ+YL(Nx`vop@9w(T)n5JLV}D!m^_!Cy zyz@^Qg9Pw_4@$=!c=e+xQ;pbit`2OW|ZrwXM!N-q(zkK!Hh0pxd znt%V^mj;Y;QuqZXZkd)4myqDE-aMmI8@uR*S3dt{$J!gCU-^8A&(j9Cq?hAMS40oH zPqpQE!Amzj_uX;)s}*Nof5~&9(nXWBFtOw(^+N9WdF8_7jq%|NSKZZ_aDUtK#t}I# zO|{Q$m|Hh$!qH0?Cf$5)*Gpz0FWmp*n)_aybL#ka*CJ+3pKyG2R@C@Uc0axHm5ZN* z`^<7Z-Td}`A@>*VZ+y;8dAh?CGTbmtb}~~p%r&w3qbD91J94x7l>yHmsvR;@Gpi%W zFG>~{QpJsb_Tjy8(uT~gCP$~%%}ry52k2%_(<}pFX!!vm1nnonTP?#taP(hFgr^P? zA>msh41J$ctPdczFhaUUjc+o@E4@|gpB5%^>8S6$KPb;`DH~E=QGhZn9>fz!4 zUir-DJ=Yps-H$i-gx**E=TjH5f4%P&?;EkN#C+M)Fez3=t8!uIf-ilMzG8LqCwEMo zaQe@D=-Dr?7$>ESo^$E^wFNJ(KfPjp#-`#rb+P(yQyo*K_v_|%t>4zP-FM}d=7NHT z2e*B*rKe!+W3x_wba;PkZ19*3Z(qCWHsMm>(P17Rxh6DBOGq53e{G-osSuxr3_sIz zsxk4Q>D|vcJzKwSr>vr)>4BNsssavY58Qt`RadQ2RDNm-9hN`(CEq9ByJTEFC27K& zf60zMJ2dy16~Acz_Ta~N{4)5};~8)NI6h_DPsS?^!7u*lLUz;xuXs%k`tvhS8LxZI zdh{>HbF){g9{<}n#?RBU{~vpA16Ng*^^c$XBKIP2xe6-CO9x-E6z}Erg5J6aDjFre zOj&7wf@4Hg-hQ;^nRSwqGYnKOZykupWa<<|MPqPpXVs|d-hsuuf6u#ujib7_9=hrlQ%ciw7&Yn2M=`pwDGG4Ub>L* znCXd2zNBN-W2#{j4rV*_3x|a6RHerSnpW)Ox2N6l{l4m_${vq#4_vvv_`WgGPw2Bx zj+~v6)fzms_*riF*PYXSK8<`N_}|r3>~-Y}(!+n6bj#y!UwD1~FROHC&fD*tJ@@#W z_a4uV`6)YiZ_D?uKU^IeG430?VP0$c~=hXMk?)&Zyua%FVJ^NaK z|Jp}C%6$FdJ#_&mR)%+YyZOfc>7dCv`G9KXyV<`xTqUX<`Bsi?Yr*YRNB)(+wPM!d z_Uh-hZ}yBUA07GJ?&rq-;reH`G}K+&@amymk)n9b92Ji&o_l0Ig>{XJmArzyEfkJ{l?p8#=T53m+PyIe+n^;?utywY9DL9Sn;n_8!TTxb;DaqGr?ye^+&pc6H-rf~B?w!mS>rL;K94$yWnd|+^ zv5Zk!w{QE{S(GW;m#jT@?85YnaOBZaEj}pAmNK?X1fE)63rc=l9_r ziw?CMS-#;3&$##h_0``0(r!2s|EFh=@272F5XF-?%w{e;e)eXuT6h(>Z1>?+OYkp5C8slUeRqoZb6sv5)6OeU)SwUY+^eM=K(Ay3Fd2{_ss&_wX~#>l~9NJh9@L-4mW%bzss& zd*R9Z|Mb+Ri|%zbrK2CHvp*32W$3O)7Th)Ix$XI1PO5w6k-M&a{`tMn?|7m9@Z1+( zZ2a=@3x94JdgGp#-wk*11jndcuwD@;QKv66r`jkPtw zTA{JF6;%}4bsOHxUYtwWavve`Erd1c?p!FuSHa1kZwr2>`u5*;7VkL_o zR-IsJPw`~TMZf7V{LqBuikfAuv}}i#UgGyuIz8l}^+D-wAK-EfYt5>K-^LaT)`HQp z$Cjx`^wQ>O$2C~<==pXw9x9gQ+e@%=77s8B{mKe!%KYD5=>3hb_z`O=vEol$5f;IR z2AyiAWim&x(6u=DR0kH827RdtUg0<2f+v1EuqH8O9Lornt`zBts^=$*&$1$d@1iBW zT_HhO6myS?mJ+vx1a+soExND7($+GqKEVoy;E~|zglXjnwp6?|lom0qgFRRRgB4QM z#Y@B`b!SrW{B3OWQLIPq9Ce~I=o1)F8Xry1<-V~SR^gea$*>A*DxHt)1j?H!h8~mQ z4Cj5Jl9pS3Z_*s2$7LwoW-lyv>WG(C9Cwa_ZL}yDOL5a@z50-b)>`f;3BcOMijn{< z6>Lhl9?v`*Tc%dEOs`0=G+{a3dLA!dqfRXgPT~{FJ^f?-$5n2%9cpdO8k3^;4S&kd zKV)`m<@}s#yNcUrT7PFi(T+zNn|-`;^VYhruutY!*xlWyPUUmc^Y6~g=kZ1rkJqu5 zr{?2xzS*nr0%Bf%rm)5Pg3Q7-`KyFi@x-^Uve#x#N#Ji0UrTf)&B?`^cRanQcp2_O zyc&X6#>AbuCbJFCoEvs2e}33Cq1oyA%P6UYyqp|Sl`B_xfsjwh$4ij;h1r<}>z3n< zzSIJ|_NENW6- z?y78i9=-L$ld6T;^zI*@Fg4-2>-a@8;^VXN)*8Mss&Bo!g6Hean;kWW^y&kn$Lf=E zK-g>E+}?J`Gv3tFp?}Y_B*GTqX_((;N_2~C=?FaPSyGZ1;kod9n=v$ki_o@tww#|I z;hDy{9rsMo;HSi|Ts3}dvHRg@zvUhU(+b=l4Jg=p-A<1i3p}3Rx$)8KmS5-b{mdj~2W#bomR{-97ZtJFa^)V0=yZvgNPbU68$T>m_E`tiuU;W7K>tA*P?yU{<<%K;uku@-P0)(I@OS0`Z2D_U4=d&}m}0}o;49~QmQ zdg~yuJ#p_F#r^tpZPT#`c?TLfmIUKje1fG?xGk2>;{{>p^wGvohA2n3qB7b>CUPOK z{BGB1^o7GF7VmeP6gVSow&w%mwaqo-4vuduZF<^jxgIbMq1Xx$^jz z9lT$C;(qOI+Jmr{?%mz7>xua=0Dl zqg^EAa~i0nHJ)>eNBbtKJ{wy3*O#?MZM-Rv8)G`&IrPuGcq?UE$UC<@mdp9q|MB!_ zn~!k89$J6X`DITg9vZ2AXo^1Y<8jkof6>$Z4*%d+!;^C|ja#q#c+N|zU2V}v zhR41_5!-VnzV2p>B5KCp*FJJLmoAV`5xFvk$l7;_e7`_GEs$f0Tq=-v3*>V|Zl6YE z-}gxR?*jP;LHf;MoH}dTJ5dhblQ-vk@nx?*xJX^4z6v=nql<3eWypMhv3>$-mfb0uvR-;+gjfIK0^E5`~p?0RnB70 zdLj+QfjEn2tnhqftU5!~Ff=YnErdEq--?}{rA>_vXGLjCHZ4nwM8$Zq*6rPbUS;)9 zIKC<8{LQBAs6i(emxQ>)=|UW#GEM$2!tJABs__&Z3cddo_qspmD~D-zA#}paYT8`tV%(maB;!;uZp~`dj7^D-3O~P_&?<6E z)uXk&dfXe`Tb+8kyylxW-@?ygjp_3VH8+g0&GLMBg0{IMCMn&0iz0I^v>GA?wG!+ z*|)Mc%cWmwwcb+Q+*KClIh!Rre%LgrfJ?vj9Y-=k74hvcR;m9Y*ldAEzUuV2k>630 zvC@BYJipQD*se0$h*_S7iQ48g>%ovon{RVV*BhR1(B4RDI#FvHb+IN?y6p;#)y z`8OPx9KX7*CL7&8>RsBzPbRul{`PscGgRFvqH5EH7GvYPz3x!otB#upcL@E!Y0bFy z5LVqC<1elBGxOBapRRwpw?wtSq7o;f5*tVMxO5FYPdkp@kFH@cB4{p}+{Y$8_?LF~ zPyLw-Lu(}$K2uupUph4NG#dsCQ~ZqFVS!1>Cx&Ups^d+55B}nQF@0*l4E3gtWm5wZ z$80*W5`)so&D_8DrjI-L_NK7L*IL{Xjia>nk9&=ezkZDw15{o-xACL2;b&T|C)P-< z{ZMI;*)$GzzoxI{W2@R<6I%Be=nr)_4h?I6&3B%*H8M%FxxDt$+sSo__TCPzvX**F z8oWN;Qrfwtb3#+vw)EJ|*_CeEVTnKe;Ys`bE{!Waq1j8lP8X=YIO(AT_j@+ZXnxkg zKQSTOW}H(s%>ChJ36wcMsQ2v~<4R z+?+RQm%cK)%1yg<)?Hio^6KV&y_KwbzHRJGNAjbQe7WW5gEjXp)*fU7tTw=F+yXIQ ztz+NP-(E4(C0~noI+7j`(=6WgYUo2DsM>;UnqN`2Ae}ZXT(uuYs7A#IAw1PH%`AheDfi2T+HZ6;Z>t@JB)UB?yV93| zTV4W74iWbYid)zU55&RX;vk5%8<0dfiM1s_Nmo3?et^MSHbSiAdTm;L<_Y3nC;|5u zQo?Tq_YqPu2X?B)li!Auo$heX{zQmn9Dtn>5Odp(TqoQ_ViS>8y$=lTxSzC@LTu9v zXj}a+5^ZB-ViG$)>5k#&RGXJAF{Mupaneo?#~?5t zUH9#$4%_~efc|(Kb>tP3XLMWs9wp6*79Uu$d80J5t3UXVm!|6wDG&6_8F}C~I(Y3yhfO~!`9#2kbLGV$ z_hIsQ-wXKaGsmU#!gt&i<3N5`$(W(>rt$|Dx#J>)Wa+!~KH7!CT%Gn_F0BcjTkBaD zA75p9$)!ZVtS00=1mv-G}CP&IcoH6W< zY0nDt_h6T)cZyY*zrQcc-y3LJKRTDD^|Oh5S|Aq-6tEy#HIHG~eA-Y!pK@gRC6;gs~@n zp9_2JAB~vRg=MHceVds--uRV{+7Ln!O7%hoc(978`Z_!c}MM1oX%> za~Qo|lRlbF0aBh!ZwxW|o2oNS52UeJC5DF&IAgU>u&CZS`U_=Pw5qUOJ8|qeX_|QO zV_4NLUghl41y7!HtvIWSpHq+dvoJS~%GVu;K4q-)^lJ-`oNYTttxT9M{o#20u!;k{ zw$E6lUPeXIVMmdCpz+SYP+rEHn&Xo))6%8ZNaQ}vG)SY18Lie zZ`*v>|I>%P(LRe+#k^lr;=jrh?7ugq&-Sd)W7;+O+=T9b?``(ZKNR><7C*AGM30%C zFJ^K-QF`M6@`7+pdFbGXQkUzm<~Y^Y-os~HBp33i z;PFqis)y-sh*)N$3zZvQj_bW-y8ncG7F{xx(4|+6cdFm!^^JHpk`;U7AB#^EbG1Rv zYn0hVcq6E@_Znrj^Fl!TZKT+PHVxlj;MU@$iE}hhPWX(?H@kiQ;xgYn@khs8nr|iv z^G#b>NLSgt_A=>utlPgeSZ}=6Sv}Vt3@lB{3+rvcojz^DEt(NowdPp~g)})9I^%~L zN+xOVeboDayYnW-nBQ-{ZSzWLTJ-x1Y1=qdXkqS@^z?%2@#T_#kCu&G;l2w7sNzj& z_h0ZQTg1~zI#0|;Xj8>I+{R(pc@V=?HHNiF41;zWqA~cW!Z8X}VK_RB&iod1=3y8` z(=f8NVu-8B#DpaRBQ4EG%rr>)WAv+~`G~^}N>XT|(LfW8Q#8@AV|d?U!LX(YqOsHf z4GtZt(qMo%N7I&zBvzA#K{5q{q-GLk0kyuc1h0Ab?LN)v}KiTiKjZiE2|*F$ssHBi#-je)6~l$6rcAc>|1 z<7sN}DA_re=1t=v)-fE~ifC$ZkfsJJXlf8eqx6%c?PfSCeqw{Tx+v$TY3P=&OwityFvR zH;&~pnrLvlseZ`Iezv5X%yDif4wrlK4+=Mvc99P@WYayS6?BiOW;>B-e9PJ_+*hh| z$9*OHu;TGAhe-D`W*b8myEKrl;q3_y;}PfRlQcuRaBmK4cAxU2A1>i47vmDHw)nc{ zE!iK6Lq}EOUwLf=#+~?l^jD4d@6!I^6|WfWOEfCYG3HbyT)1}cjAHYQc+KAVhN?X$ z4o@yNrM%yuI-pIA(CYv0shSa<;Ak7}sTpyTU*M|oDa$HS+8r3y+|i-?Cc=V9y34pV z?8M~w_;<8>_4@dDm2i6l()S2i2v3n>hTt5z|GvcgimV>scXe$qYWxgqieSN#F$D}c^&UCU}#yRD!FY-B5V+&uW<9a z+4IslabTjWuxC~rXLWJznAFXIYP{NsvKOyosNqQ0F-2(99J+;gPinSwQ6hE%)Ve>R z*1ekM__1g;ErDn?wFdMRmDCAzP$zJy_yd~maI1Na^8$t&jAKgcRFC_$jy672{Hp5v zpz;9Qm&N;3F9&x8G<{XvtU4JI8d!PF<`&hKF-d{ONo=WNCRS7j;Az}&O;txZ^pMiE zSSm{GCy|9yfOHVH;?IZ|l^+Iff*h?Xt;7%YjpKwjnQ?-H zK9|ucp>ILQe{K`#Fxe?T1V&PLE9g{Kq=)23gHHONmFW)!o&2>IbjqJ3Z$kj4bMJtT zB5>-T&*&e?=*vJSd(MLHYEKd9WcM$iQ$8g92SE2mcn%7m>>@hVhxb9J@U5V``r%)o zF9AIR^gEb5W8&UxWbp`9shpKNH;!`gG9GgHC&|N%rhvdZxl@k{+_> zEd(e(vq6{qsYks!2|DS&14Kzb$^RSlFwp6kf|s6A>VJBl=la`5T!01khdOmooVoGWj)39?RDI$Un;D3uW>z zF!={$^6!8?5%xR>`UGY_`Jo&15QN)6$0y93`5gx5yCeJ+=sJmx42=ez%IiGn&ia6Q zVg{Y^tHT_{HNSH}C;tS2j-;IWS2Fonnf$#>ex6MJk4*k&kz(gSX`q_&sfl}1N}JY*ShGr8FXqF zzkn|FOH_ZBfllcS8`8J_lz>kDF@f%y-zPz*bZ3F?>Yvv^C%I*yOXWiP-(&jM$@F(K z{o7>v^}MKmk4*mr&?#T7pu6U4KIoM0dC*vKHlRG*K5F4<50 z_F~Y<&Mweh)3t+6cK!motDO%s`O#4BD*qglr|)&T${z%sI?30|G@S&DU8bf1^xZ zHBOXIm&soPI_dwtOg@ImKPr>|9h3jFOg@*%za^7@kjZz-ZntJVKS@CW7wTu73ob?4Jd?tAD)5i}_swx~qStfKKv7GWnTI{$ZK?a?oKS_dMvX z<&^_EmDkIlyOvi8lRqSruVC_jm&xyB@}J7&_b~ahGWizJ$^KtJcg^p|pi_PD_2`@5 zpO}6V=&tswCy4gPfbMF)Kj@@C8FW|uX3$ChGMWB)pi{Zr13C{B>Nzen>`c#7GCk#> zQ~5Q3j-gwu|7Z(;0v%c6-Ul5)XM1@WbWGv6k3h#%RHOsjKqvoy@1mdjvClw96Xvi} zf?yZfL-ZjNMf$a%^WYPm+Sf$TXn&=;XImpp)O$gYN3LGSJCym7u%&?Kvj@ zqD=lxCVx;S{|V^ipH9&AK&f21Kqvdpg6^7Mx|kBKuVniDK_`1g;$qa*9t)F?0NvI8 z`AmMUOy17qSIXq?XY%*RyRfwr|WOYpZh?kdb|g8>3Wd-d>r&CpuYwBWEXkW zwW6NyK$ouHsh&&&JsNTG!-&lz&tvKc3N_m(j0h^ky0TR?y?1{{-mMBzs`zR?x{#A7m=Rh28=>`D+&FQho*h zfKKz+TR?QZz8e8&k=ooq0;rmKz5#i9;NGx--F_u->n;beTTD|O-TQt;`n zSrk*?+%$7hQtB=73sP^6ziFmOS~xR#X2PO*3rKF}f|)lb%v>lk22OGwUXm2P-zQ7W zMT25`VP+wMQi@^W3igFX3@jh1Bp)@fe6*5$%)s&%CHdHa<;|wl)Pz|H_;4aVp;;(? zBvE*&bb<7x&#;2R{M0q8R^juQ8L7)xAcXH4DisUfAsr+gMMs$j@swH7Rpvo_Wma^S zc@S@zMRzGy8GPK%`8iP`UxJiSJ^NIcFmo)qC@kF6-%DZPqD%VL->`7e8Ojw(bcsBM z=nUl;qD$m4L}w_+h!HKeC|N947MZpP)4)X=p_s>rLGl=(n8%1g@))6*$B04l7!h-K z|4wI~_&MA7l$#ggo0>wFaGkBk~P&$F`gGnb_oWa16;If?!AEOsV?+oRZG zBL``*k%}E$%w{YsfD?ArMew8NZpQ7 zZ1&NEH2Y}9W*75ryjZ1PAy(1u*g@=$jTE&-DW#;?OU4e; zOU7F4S@;6B_*q|Z&MP<@`H6saKg-{$i72GYQjy4 zsS6e^>MdbR=Wkx<`XO!c``Wz%O0z4IVr4d)2C2NpZiUXF%LG2zA}d^aw8ZwQjsfWx3`ttw5Bk9Sx#o6^E2avyK8_+@Sw9` zHVu|_nr8E0^&y7_6n=d`7Nl6^lK zEZOLCg&bxMmvzsJZcAYo&dxFsNMU9+weLrkjZ>0zxRkANsdH{#xF{YM-l-IKUgE;b zUgb+sMK52GH&QdQ3+(Cm^ml45wrWaUEo3%1e#XpX>E1$4&f46t<$1aG?3~Q}ur&pl z8LBIo=VhHEfp#erev^7IL$3sxiE88#=F;`Dr0UcT@h>UbEQnU4*k7U4_s zeUn9=ghczO5iX5q<>%!(uaOJ-@E2n9sLYJyyp=06^ZPKQPtA*|3C0U$k(qvXYHC!> z6%?JatJo|U-*V5pJ5x}blb4=xE7ZahC?edvNJY`EPtD5Afd(cn2ojkDQ)v!en4hO4 z!#E`7;&5Re&i3?z(t^BI_>eq0m9?fTDf26wOFCOX`ijELd}oNNL~3eGBT6gxKbLz3(Rb>`c7^2G5R#Ezn4avS zLH;bH?93WghM%r_!~kvsSQr zpim$BU#dDwLwY8pY@vBjmzxLhxp`2hn+Nc^c~G~T2k^UjP{*4sgVbKvXGARf!nKXk zeGC+paNQqnN>1(XO*|=5_FuTrZoZ?7B1TqwMGn(?}$P39Wg+@BL>ZP!~pq@7&PAzF{yoTYzdRWzK@cW%PvA{ zwaPh670jic|(5huI%ljMQ3Cd-<8;j&CS#et=FDX_Mi{vYL zEXhmCvEVCVJhs3s3gu~mS42M5rvBv}i~I}xSmmxJc7VLZ4w{!(bK>4Fo>Wr? zh$q#Te(?rvSM)H9-Tdf%8YUJ86geM3-Mnz#vb*s0iT<4acS#j5=EWys&g)F^wmV(G zE8c#{k*9NIkBU+g;}^wGmTsmjr!|doMVDWRIzUSamnwwQzrq8tzB!`%DTR1`qHz7( z_aUA1Fb&m6nbB`3mSTi6-~3-ZePc1N=HXlKEkE(;8#A}h^Ec;xfZjsQ$u1~Vz9}W% zPwVrvj@{rdOsBhFY%TE=x@(k^$tm5(=cZ)lW*1IDYTOjuprmKxQ%J`YJE~J=0XGFt z$yR0-PDx*u&1IzLughL#Uk>WL0ztQpr658(Kqqb$)Q?Vt3^4J2aH7QQzo2i}dl^_sC$2uE{W!0>6&&2TH$z@drwO zKjZttGNts};D>jxB)k=P99RuJ%yBtYA}*}}o&vp;p&fV<;baz0WH_B+B;)hIPax;V z!de!-g!h{%{%M9MfF#$>!ux?AB3uK!4X>r|5Ybu7 zIvGH+D@{b}5+K>NSVZe0An8d4l6)dC8UJk}TBifaE{llPNFdo|644q8r1W?o*%b&R zJ-)yjA!iiPst3M@a@C5s^b+2apm-O6B;O633;A;*TDyRA5I!xU^%Rig+JMKPr&YwI z`+-zHXuk}?J;1*MYk)@}w?o9G)j+C0<-jE9Efvwa2{;?!A`z{2U?jphB3d(mZ$S?} zyGyuqG4NgJnGQSwkmOo{n7kw zpxc3@KaJrchLeGZKpzLB^a2^4!?;iBoo0B7;c}m z@dHJ)`T@ry>?@+x2&8)IDWX*iqBz=`Y(zl863t2b=h{Xx+p3yMV7j zt{O=3DuF!YDnzuFGI}Ay9N;zJXNhP{WAqeYFzCr5S`!(4Ixq-yi-^`pAmuX@NcQnS zA)i3Z<#UW8F4Z$W&76sU0h4r!*9D|_9YCTV2L?iayNK3S;QP>XP{gJCfh6AmB>6fZ zwkk=ceI|j{8X)PdW>^U%IR|hw+H7(bcu6M=r<+eEZZ z2U0qb3?~CA9X}xHHL@@V9EEt7)B;*B0EvGNNb(&(D#uem(s!I8?GsA;{lJmnH;QPj z2U7ex#;*pB0KZB^YbDSZ;R+G0r9hJ31SEZSpbz*tB3iS6lzxVY)-)j5u?R@pkW$&n&jCo}#y#t#HyOP^#v5v{ZzE5*|SNnejj)YlCp`Z*vjC6c>Dw01E53C5>= zVM(qLh^cyVgNW98Af~{{dqlL-ezT;XzNgM}9Z zF%?Q)B%(Ei(G!7~DkR%Pv`z<7dL|&H7Yd~G0)ZGRll?@r8W~^D_;gW-p)C0lC!nkZTI+$Nw~k>A!)k^Vz>mSt0isGJXNhP{1H#40OGLEd+D8~ylNe5CXmX)H3zu3D zZUYj%1sDoE2;_lx08y3#Uk`i(VF33k!@mIS$WJXW3s?h813nETKmHL&{@Vde0wNCv z^55e?3-B=@`R`F6`EM(b2R;NO{~@mi^526%^4|kM^56YH@>@Bu8(0SH0^SGg0G0wz z084=Fz|Fu`U@@=>=m0hXe-Eq&ZUWW;HvnsZ>w&P9D*{#m*8$6cYk>~n8X$OFAO6foVX{42ywzz!cyrU=k2zX0QS823ml30ZqVcU??yX$OAKge!%5GBXAi|4@?IF zxI2Lq|4kspZvs;MzX5sR0U*V122%XL0xAA}AV4U`O8D_9gdM=Qfp*}Nz%&+40d7aw z#=<7x6A1GxYy>`nFvr5(&|8Uc2axo&1OEVQV&Qt=!wA=~Fl4zc2s>EV4%~=v8VjcY zS0ij=VG}SHVV;GJz?BFCg!D*$8^TFIoD1>hG5LFdLmNX2Py=}ru$A;NIzZ5)R%hX3Lrc=s>Nb75UafA_@7HTJ zmHH}uHA3yW<2tS8psrQdrcFV%%$<2Y^Q*Iq@YIT#_K{uWH(hvvE8;9&4qElB5 zsUD(MR}87d?>TL^R;_N(HsZHhy92*nnsXYRxhW8lsl@Mb^$9h!sSo0} zTD=3mmsAe5N_|0fNu|bb4}QD!=U`C-z9NcP?v?o6KeTBmY#mxPw0fvo-7)kuervpT zdBGx22Y$OfFLW;p7PYGcX-y|x5~2`^a{^P{I+?td#Kg*9u4@t zhN3bv%^QFuJozKd8JR4k51j=a|!3&J{R!Y?sFW!ZNBZk zI`tmkdSA$ls2Twqe0zLV>T|vqKso2z4Q~C2h7me-`N)cqYPDlz=}4XW^oTAzo-0k>L$N~_-*vt4@$jX1AZ(0s{FK?QonM)3WUy$>K+Bpjyi|fr$=?+_mqE! zze;`F|CB#U)Bl9OPQBm13BL{gjiBuDug7nX|0VoZ1XKp7)R#tA1R&3W#{*Gjfx7}# z>gvE6oL2|#2-K-B1oS}WT)+j$oD1j<&}vQvbOf9Z(5W3kr9sGJP)(3ZT@|zg=T$+~ zIIjq*!g)ndWsp`=bxrj(J1|M5BWeUHJsOO3Jf!Ozew7;M5R9>ytk7`>g(2gIcy#Q? z7(y-&@qeBL!5HzIB?jR{uIXF!SpX?;kTInG#0+y9r0mrHM92> z_<_>PV*DfMi70Gm;U_U!r1a`odjIke`9+K$Li)gOW&G77kN6J8-@x>jv+yHKe0;q&%>Hf`ru%smzlVjlGJV2ksYqf5*@F(hgVomqR9{@ev>z?SZ)fpG zvHIHzJ#pE|Tb= z`|Fgxk;%_w`SD}ne3l=cg+F2SoxbZr$HUBi3k!e5>RTw&pGNtIjz-2WVdZCH;TtJG zuqTPhXE45v@sn72W-A}7xrjPDRlm5jlyosfk#=`rg_Qulti2RN8TUmG&R80Ou zSbAP`0kRa9o)6K!v!t(!>7)IA$-Y*m?^*Cje-;b-u=MOK94wVD%inm`{}eGk?Ke#E z9V|@uYbjjL!tang+Ds#mj(?!88DLXdfEd1${N>U=e^2^QM~(0U9W_*6UBY(ePd`?_ z>Ap7Qr;?@TM&%Frr7ZqPDsP1CEIf{}JB}`JiJa z`4iz$EKK`4Q`p49bYGp~pJMSZGJi~C{2@$V0tGm4a@&OSa=%C{~4Bk7Wor8zhdFz zkfZQ-Ec_nR_YI5x6O||U-!uLgRz4mm2RdG%@_@}!|2B`6R{-OCP<|2LlhyAxSp6_F z{%Pi~8(27z)!*Svp1vPN@n^AcCfSGZJuEzg`D+P_Zv&6~wUUMD8)qc%VDe9}`tk_l zzs&qq&BAZ7{Ox67DrW<1E@%DML(uISK1%waqn`2g7)xElI%dy%Oy8YkKgzt0^1Shxc=&_VZ!F}ygB zk8$Q29*ux&_%2zvLl)i$f4j=7;ZN7FRwhq8SAL9)f1fN&V~?x+P~^uo+$7WYw#=Sa zW%21bfouF=l(%bmr!4+qnfwk2yUIT%!*;e1)xjP~uC{&<=G zPh|SPmW2<=?E6*5|4Nphf6BsPsEe-YuaKp`N~UjyjQN&$XZ4w>FUYBr2p?1>0Q>O zzAunokzKMVSHBJrRY6*&cr`nj$Sd<@)+n=b5?^p0%nz<_-BF?AZFTH_wmj?Z)D`L3 zIepX!?@2>OY5z1PD7}Zxf-WyyGm7-GxXh%R7m6<+F)8KOff-ZG(*WCZIAw%a_+>5O zO5UJH@d%43m*-~WV519U_jjwX>@g!1yDMNn1(&u)FK$cHnb<8bBO@~-EH^J>4c1!1 zk-ydU8>H($wlM{i3oA`sw(p_z2H(V#BzmjK$~Ecv8O-f$GX)lszrWwF%oAymDwI*J z>ARH(Q5E+Ofy4W+5SN;i(rRvr*LSJ0L=^`k;cae-)3-?zBJVu>NVO<-|~ zC{>HFn8Df6gR`TYY+3q|PKIKt5l*%&9`=}`lJ5Uv5z&!f^MDb1IRjKf?5Qg`OVK9m zzb5fzMu|yVB(7rYSYj*KZE;4EDUBJ35j_wi%E?f)AkxW}r4-?0D8|F<8Zcd`D|ALq zzD$J6@tx6ShTzqpL47Eu9wW)fV#g9gtkO;q#SFy^&W?8KiE;|cl8SUP6cdPWvSsnG zN1SB5Vnkw-f1OhD_ycpCQ4|$pb3!R$nMyImXmAxOXDrbNevRJZWXqKf#E5n>6wQos zvIlCTkxmI&k`YdZqGoK`CuKzzkr?E2Cx4)%&AlSZNjNpgQowt4Qre0UMFXNBBh=nl zI+LcpuKVj*oD4-ZF@v+CootzTQBH=U+Q`A#5l*&DE%s29@}a1g*yMMTQmA@nfuZDv zUdDhWWpXAhGfGS|a!|u!2WMNHY? z2A;bhA+o5P(P#fZcvpOchgJ$FWzD<+0mN~VEiBKlrXh}%F4>4hsN7fW=Z zya)1w#VH}PCuSf<^Z;o^IU^`KCeq1vCggnKP%_fV5iT;qA_hnaTfYtvgBav}; z6jihek^@~+(S~1AGKz6oTHNe}gw)KU<(c-vRAC!kvy^x&oekXDEW}o*BQb+Vi+1Xd zatg{E7ula7`P#`*%u<9?w>g|n6|5sVxp)9JUe}f~Ei(!XxVryEE&M!S6pA5SiTB-q zPO!kl6CCfLn?^=99HR_ z48=6f;lvlrrZXxDCjqa}OLFzY ziii06wG`?_dasQR(uYSfT*@viS|-D^oCCkkBURe*&LWcJ`W#FT9%~2(J@3OK0_TCp z2Yrsz)RoJzv9zq7j z9*pcHK_B~ok4O^V-FC9M4m=;EBTXnt*agQ^ej8z*R0e_o`=KslRY7lo$nCSS=X#R= zjCjuK>OWUqbndbbqQH{dm&Ej?u!w$4UlyK6N@*|_i!XFg&YcqF`l@C2Wifqq(8pZB zBt)&uK55@X*h||f_NG`P>0^$!L!ax>zdS_y#9b6A|FnfcZ;U!T&!VGR1g;3ramj!5 z{FRCt?M%tO?6v9iWUjwH8>=6I0vD0-oL6oWV+p|W>)dKlZeJSH7s?`;ppWcJsu%kJ zoGRHT=%bw<4c(rSA{!2={Jk0G3=|H(NK6#-cT0-6`oyc|}Aq}wvO==4~FY3vHKB~{?eg-TLC4Gx!`a+pLJJSc1GJVUk3zz3*WP(9QYHD)wEjNkh z^qVHNhs`3*#4BuGAhLvC^e^n0hDhwEZ@Wmpg~c&Fb2)uNd&|yEUzwRrqnxb0y~^}S z{@Vh5vO|_%+R7pw8>6fdpSYwZC%VcvF?~&}GpU3=D&Hdbk10~S%8y4tq>BS#7z_76 zo+>{HlM8$Pf;D!)q61h9<|C9Vy^kOqcrS+Djp1l$cmaPw_`BNU*AmtH7gwrw_oS+K z|NB|h z6w8eC^e?Xw{mSd?*!WzjylPMm!@E_)bC%)8-j9oL;34a5A>)H?r3{McmG_X-YT}E-nK?M0$lRYsRDJ;pdk0DvwW$|QM>UI=$scvuU-n})`7Yq>AmQpS7^u3>8gwBxTJ&k z;36*uaL)2~)kC&*jN$~pkWRAARnNt1IM_4VsS7VVD%vCH@$S_Vr{Wsqy87tR!6u(U zY|>r1t`049c?_(J%3A2ZSX<*{e(%tXa^|lFzM`@r8CEZTLfoG|g$(JD%98Y9iJq?? z=Qx_dFpVMR9|C^AQR^Rc?X#V<0M;&$ZzpY(0?k{2rcVpp`e^Q@I z_Vu9u#k^VY6=Ve@n}5_$8xY%12h&AmB*ga+)4S+HGEC<+BCWSym-pvVKktWrVlLY8 z9JJ>owCmYu-?MgK%A2_x?Oo{Gsa$W+bF0%e+#)GW*D@y?q%f74R7a$8mHJkVv)_{P zE!t1;hxm}uv-QD)#!&byMJ!swu)nW-+qYt zIjN77Y^6SeY#jj}<~^0m(f^D6zzB>v(s(GMlqV$}|9_23cTr%zq=NcFS74_V!2b$lTIQ(5SKiZsFg{rKkR}PuW%qhmkt6a34zH72nQ{?#(!=T{Ww^FcJfe_;>UTtqvF)RxBvR< zuM`K1-Pl*NQZt3mW^ux2v$#ThdubJi@9w1HOHu{+dJngPeIquNh}jw7ttv>ROD|6N z@LH;{B28&!58Z_1vkPYBXBK2F<(wbx!&fSJA!Y_IB*w4E%jd`2_|WmTNqokdOi+0w z#k2JJm7>92%=49}z@(OujZ4sZJzK*A*f4m^QE(_l_6F8Lp^!(*n*=sW;2aq$v zTuMazjv2SeHbz>ZIA-#K$qAEho_tGcZ@DokvDg%4T}xC^z**S0u(DQ^LSaaJsV>07 za}t#e>?=YZAP10apWDtk%mM!}2cF8i7SMSUg(A%WNq~ zdye!uQa6Jaq zkN(S5_P0Ezb$%Q@t>Ur^X0Be7p0g-VT#OsX<>alLg|9s)W-eQ^GA=i>pa8desFlTG zp=TUN-OU{OLe1LroQ2u=_?I~r512AC>7La*VT)UQ5D)9{<2d0SCDh-Dg|zclB+y>9 zaon0!tnrDm^Z`Ly5b8{oDr^5l`?b2vRlVuOp#u{VbZu_~HX3I|mpTDTp3GQ~mscnn z1=H!1mO@Pz6C%FY(QwiNNm&ppla;=LD75gnUSs0=G|xDAN9dlpu;oQX;@a0W%L_St zsZBC7jsgjiIdNS74k%U3cBPcz)1rx zkH1j-S@37V-_;y_I=w|SxC-4Nt!B@_P=IG+Yr`XLrZ|fY3!-ejrxF!IfKbw7T-beR zQPC_mMUDu!MVf3_n>fQPkh!%Cp`FAymmvk`eT$A?Qq+Iy zYiz%@;;Yn`c9rssCbLUeU7Bt?{keIc~=A*hf^Qp5uq;{e!g+ zE_3iR)iWOPn4ujO?rYKe-8eLSb9qvwFP|{0{8`RFe1>+8p>o)`gDLUziz_-y&OD%v zpXD|moxw(QS^=jg^pIVuYR*fqSr+(7eDLYoz(d8sCqk|{X$$_OHuzL=;NjxHla9cn z&A~@;UhDOFNbu?6;FC>(9kpI3Ljt>0L0o}ex3;=0pVQ|jm95w7R;QKaXK6O*%L>!V zqW#M3Y2fOb0uK}ieO?>LZ4Nq|9{hQ&S4VvC;q<_x>A}$1rV56tR+S0DW$QzA4tv?U zEKNaWnLUeC6%~~g+I1U3b?dWA^3%!+vvdyF8GKmfcd9c8mYfa=JXsrfk_-MMBso!d>H7sfouc={cqcxW$gUH1GNm^#;zzZ1|SP-m&4GETZO&s^R(QpoSaz;wd0eOM_ zx$TBdn|D{=EU2u=LX&3tu99gx`fK~%=G|#Bd?mQzTbOM!TC)Jam!KRi)$qAu_J0rx z>-%oQ=R#WNx+%-f(hsQkj4G1OrmpiUD!D}GT$74d`J|{u8{H0C_Lod=O^B_~SnCt6 zZzx8YS{pUU5z04qSBZ5O&JzOK5~jBzkBX_Et~7jaG<@1bl@M7z+k~>9N`<0v+Mq?g zrne;oG?h%RYO$a;LT9yRI?A!Kw+0H;;B(%)vz=6RcNQ(0{hp2Da9EwT1+p3!(FqX~Cby2X~1hU`^10;^6k) zL69#itS++~b!$V*qA?aE>DFeItj17_A+mQI!O-?O#v@J`xI<`!6*_0A3hW)1XbQq(6IE3**r@inWH#sEB983H#Q{}t2j&2sf&GlB)?q@jdNHz( zK^b$2veh+Z>)-)n*#?uYK$u#rPtsw?=DfMh!59kPtqnxE98v{;sq!n^i3Fx4Z2lwnUL7VvG{mnn329+8N0y!Ce!>>2s?XuKQH8sP%hoiDeO+=u`2_CW zw31FSnCNIIF4EgDo5Z&kFz2ItZ$72AYNMx5xg)gHz1SRYDtB)-hv+AGCWR#X4WC)f zk2_GB_5^SGd#MAz2TO}Xw!0Tc#HR(5j{AAx+YDUz82wN_<36p=xLu|A`K+|I(sy`r zWratn_9kQH+kq;-aabJJHjJNSwrRCCO@X$?{>R9fRi>YQy?5`9V@W>k$>)4S9{O&c zqgbzTXtZ;aN>sNeZBgBoRIb{Pbf4;h*85c3{nRx>ABdf^eazhIOaF2o-Z_fvT@B=-^dx?>_Qe`S1z9{_4LhZbxUTG5g}g zNUR}h*X`ah_NHOulYjX&@!jv|C0Q&<+}0;|O?syEonN1BUH{9FttG70*5=Px-vPJltZBdiLZ883lw%D^~+qCtOHtSE} zwi~j|w)i<_Tf$E!+ss=>O*&9mqHYM$HUSM#Sr zznZ#azna~r{c4`y?^pAJZqwCzoI zv>&Z)K|Q*wVVh2Ke4FmN74YiV#z=qu^;3TQKCM6hMxZ~xf4b3(=U~BKXEv#RIP;#cXkvAbTc(-jsyBGiUAea0P_I^TO(NN0y*_*eFtBHM#wxtUqh z`M2W&0|Skx1LITN<}_=zPgaHe?%`ov;ce>V!;_203pLb~8Ydv)j=oU>MVtX}lvHqPB z&5Q*v&H4;AP#t1^y!O)$#}1FxcDpU9{l3cS77KsYtaj89CFQ0MW?4A?M7S|HuyXCB z(cT7w{{A;S>vg)*OUu7RTI#7KUpK4n*Z9<-Ls?s|iOVXnJ9I^K?Nm~T%Z5fxj068m zywWkPY&UGcw6D^z)~4H#rYpn@(x}UK=r#zyxgCZAp3z?sDAyh67qHZ@WECV?t~rF-nE=zV6+=Hh&TycsxDu9t=eo6q|!+ zOd7=a_U5UV)RRipQ%cnVmkvzbUt+0iv0OTUdHgg?_%I);S54ccq3JuW6E3NHXY*|u znnGPtW9Db6Y?<1o!Ne=BspWyQaG>vu;*m3oy_#THXVAg;phKOba2brT;g$yFx-xDZ<$(&S(+vmR<)N*-=&$p$5xWsGvxNrAxmn8ME832 zK3uuktIO8gg{$ARlGPZxDscf^R?stKZIW;qEL?AoSV?a8c-G<3;OcfvC~*y7^Zp6W zZ*u$0S&09Ky|)jDs@nd>&&=>LAR;0v_&O>n`GUhcqEmyQf`XD-XwcHkJz9bqtC#zEE)86p9!M9B zxbp0s@3c*&9=O=R6#_)z${|pfdONq*_dw~Km7!5H80&Sgz$;QV1;YPM{*DJi%- zJ-G_+%?&(R9h&UN7NRQG4jp2hw)2wJR6l3U(&SRM25h|}z-!2Se~agC-^mdNr}?|F zTg&CUlCwl$k+`zwOjDr79F9r1JXA7y?N7Z%ZxAXxV`M3#ETUisqPo+#;w+9YeKT>;fMTg zde^rib2>@###jH8tT9%1Gtq0;a4a+GFM3$5ed`Kj z-K9&`tN3u(j!!5j*&QeT%UYTUjx_I>=|g#k9q) zT~1)ZTD^m~sbRHK%_khxe-#Wy8$;V5^U&dvWPH8+Zx87_*PS?1zJ3>~wYt{?D#mR_ z`(f=;D(0Hc{@H=;cCFJM_Bc1>jNP2ovE9#`dVBmU8M*LZg1!GyztJ<{TyVVH;8I=j z>Icg!L)RV9{PXH7>bQ)L`muTNjx1PXs3kH$NOQXQ}>hs@(?5 z1NP(`-V&T97>3+D=V^VbouT^ifc-gjHio8t^*ejtF=EMbL0?bS^Z1E z{@ViEhI<9b)|C28tuAo?Ao<+Dw8y11araZjvfv6ZTKcQUd>%&pSgbMTGcYUvpxH~ z>64?Camm%9;uGiAo-$WFVedgNjh^#`{={^b`B{B*n zb-p3bxSt&0aW+})&VB##2c@fh6TY>#*2u;653Vk;`F!)TNvG~Q{KTta^=!D; z&gfrMzsO^`T~hg%rSJP{zOyqFF0Eg*cF1yjg*LuwifVY(&hYN?`jM;6`F4i-Bc@3W zN9+vYtLmq&-jTn_sIo$P_`(mbnNkz}X=m87n3wx6_dHmpVf~Kv z=vvKv4K172mMj+oO_OTd`GPTJuZS*RtNHr%mYr*NI53>PP%x&!f#I$V5gpeRwhfti$@k?nfB7*mvLGHH+jwThoat&UIh~OZ)*&+o_IP)y?1aq8 z^@(wxmn`wp$u0vnyZ|@pg$a7S%FT*%9sZ;`zpu7HZH&#MO3A+OapQ;|w zf#;Jel^$jleLPS;+P(FO>R(iG9m{IFB{maf;n2}fo!=XudEPtPO6PLbsI04LkGj)s zJbonXJ~(*y3zE7{AWRhpe<_RTW0ccs`t{j3^RIKt4#I9S4nL-f#A^-x_Pa~;T{U(j z>>eCkeMs(NERvWiF0XM5RPfvxTxS|1nPNq*z@e`VyUpWXmDC_x3+Ot(b;G?P@%=^m zv?x2)B;B99K7PJbXB8NI;;*UaeZEjjYvjrTZ5^^{oqtwAUrCRhYV1I}R~gHWNY)mC zF;xWr{n$%=jdGe-?fj!g%%iLruGnF!sCvQevLjDYu3yNdc07RTu9jMmD}2z_;GmvZ z=hOFBea@=};q-toBwt7#)y2|x|5A57l>Gg4|XU$gyLxYETJcrblS{R zX*Q~vxm$M(n#fOwPYveA8uXo+pF;BzeySP#;|_kB*(bYRoc5m6B6v5Y*@e#Jr^n1# zV`W8E43$1ruXt$3hSfpBy57xWtS<$AoxNSdSO$ft7)#P!oMmS}#Dy|Zn5gOb@Qw{}wHn`^-4i3%#Nj^LEsU{AbBk7!80mL9@atC1t$`YbZP%oQ@Kde( zZLypo(0yhSKb^BR+Q@{?)US@=r?b=C$MaLV*yZZqQLx&;u}~n5pWbP8zm1=+9^%dv zm=idQqt;F2s0#PFY5a7n`&}k}TH`*?Dj0(2Ql9Sf68&5%acb=iPeTx?{t*YK<3bfG@1RAXXRbVNrb_lYE++ zIy^UZWNvC)Zfas~YFcjU?A+A(xv8ey)V$o(6}hRUxv6V%QyW3v1o_B%BZ0U(!&y!sDT4eejd@BeQ*g_8COzvJ*geGlv76kwoYL zBMH6sB+!2!8g^IHME~t;n=%Rmc78N*j+DG}&E3{7uZ$YH$?uud?jeQKpDA8>_AhPkDf#~Z#4ydI+@aFZ_=DPnT=j&9FAqy?$^G%(uikhtwIy2} zFz%US`qxJ9Tz9+m%a!YrCT?HQTZMa7Px-A$dp&fQ${aU9zhIVo2tS+mIV}v|RX(I9 zW4+`S@8=d@`{ZpKbyzO^x~}Bx!R*-CFZAiYcJVpm`Np^AB@Ng&x7Rw&i#fxVw0mp_ z_HC(t^jQ3W$VXz=mo4-6ENo0WpXPhl)B&gBXRT{^IcL-oqvyjn`F^$M#o)@GaWuE4EW-7!j2~m0pGPG40-C7fS-Rz*zwe@0e`4=Z|W(L1BC~D-Mspqc6aiL z>R!1!b5@;N@x%Gox2$~a%>mzr?^rK2diUvbCi#)x-5%=p&F(iIT3 zpK~C?yrce!$hptgw*TP!B@d6XLVB?2_fmgx{By9dE7uZT_;GLwr748Xa`;f%oFuYVW_t z)Q~%;A&wOO@n=tyRXFge&Hs_Yf&wOhMulNItGt~z_zPjx6hGmz2 z`Do7azpb+@`F;PrTfY3M?d1vgKXUSwpRexUH7IKJ?vDp8c;*fBeP{pT@o+p{H@_qILqgKcG1MZiMhjv?z66*)UTxG zwadyibg?`WuX=KJP66PT8jGW8L$$fY|oE)|W`bIi^C4jwwbJMyb1 z-)s18$++a*|NPLh{N2S5l)d|1BxRM`_?waa(n^MA&U~!+ov+Nl9Nr%6vE%I=Fg-M9 z_~u6}zw^|rM+%wEAIbY^-iM*@eA!a8617?S?UlJxW=wtblM68~Uk&*C$;?;YzDkuI zIB7BK;X4d}Yg&Av+lT+@QBKSJIT2&uTiX)$N=oWWC*vNwD{$ zeQFnIjuyw7PI*+FwnhY1dT8D)s9JsWo`3FM-7tFo8|%8c=YG`M&0YVvmyi2`Q^_f1 znvHu0@BSp`*QnGfp5GK-p7-PjTi%!yV@Q4Hn=dZJ9NE7MPV!Qy&)Rt>e_Z+Nw;ybK z@5ckN6UKVBv<2TbWx*=lyM24UyJM|hF4J%+tiRu$hOboXKeFlvZfLC9w&kn%nxe;w zAO9?FX2LViefBS_rrV&D!?i696}?97i5jrr%D(A~@4dRIdBU-N*Di)6CgiUu`0mn` zh}OoPUcPJRy?Ee}?VDA-ZGrOn-TQ}}eB;0a4NK#G9W&#blNWbB{^Xu7*G-QanRape z^sjzA_}l1=3hzp4tI@#;H6H&@BT{6OEAHh=!p<&RTWjP#gYePY}b?|z>1%iLp|4y+kH;^ePU z&wOrKvf>`!qb*x$froeBdUf>{ede3nlV8~L*5k27 zU!Qy9r^gOi4S)H=t>5g{w4IY49@Ks9>~pb&pP#yE(v)Y<9?JXd?WbqGwBhdY%fCOL z`ofwq{bTZ*tCPz{6T#9M5B=@Ik-`t#!b$mH`U_RECO#*z$(;6XiR*MO&Bnut$0DR8WM^MBHJ; z!&L(o=-p+uvi|Z4zX6YcoLaHIxWIE2o{madTY$&Q3N-Y@l5TC#sh+gH-J&71`8{dd0R5TOtKnXo~)E2PJU#Sx0Z~iM}nH^ZpbCQCIf5Tc3+5HU{pJ;(E4JR2a=EexSzyp2`B8=;^aQ{IDtg-B)R2K~W{=sc%W%tM zd~JdO2Enb3iwWZ^kZf50x;JXNb~*IHO(HxGx3y&c1>7va6DM@PU|9XTc-9bipjrlg z3I)pJqkS*=`F>a6n}-L9^uBrW9U^`sNyhvu&9@zQ8KfSUE9sG=pY)pdj^lm-8n?bX z9!;=6P1w>Gy3qrF^q3v|WTj62{;8BPC`p%4;S)42D7bQ?@%V`o*+bK`0pU*u1`U~V zqVl$^z;u1Wd$M?jwQucbCv?8ojI`XKCPesjzwMOXcs!z^almPxgfe4<&&>0u{6Zq62)9!{4d+uM zd_IeLBgs^Hp!@Nrqvzh9fAr$<`4``8J^Jps(yv=Tz4&I+n@7KR^Th5qTfe?|ZvWAy zuit#^=*17-yg1ow&-$jOOK0bw{q)4wO>fRW)pYdjFD8$xdGnRplxeFUe(N7^-SqJO zQxE4=nKXM5XXpXmZr+6<=)a!#%_-Q5$Hf}x$->5l(k})a-_f0(IKjmz?xM>5LOPAr z6KQ?tjjn_|ktsk&W#u|M~XBH~#0sk2H8BntDp( zv{@s3-+J=$8}7%(=NjEKD!<G^jF8K%I10u(boLM_e4d>X{#8`EUS$mdcAX|ag{a%xO)_b_s8!zlH`@+*Y->O?> zG?jKs*<7j#&oyd2RO&T93y9v%9zSz?bLaf41t}`)(cW?wQqO z_482&hK2O;bJJ|mZ8IIK%QpJ?L`Jp^|9Y@gs4BgrQgsW}&-L~_QL7pf=%&v|8x2XJ zJHqR^nt3{ppmlysXtOh+)@`QEMp1$_DAIl!Wj~F!pT^ivV^8R{6=<{}Xrp;+PBb6# znR$G1(8#in!{-FOWI61Uce2*~v&|*l{yC;>%aVC(-T_0V-~IDE!nMEzWu4pH;zK+h z^)FdWWz8RlAC5=%PwT)|L~L=yHjvnSiOmyi&BS)K1Z>9m3x|AmR4RnE?6@*cH_T&NuToQ8zsyFrMa>@B1zOf4n*DEj@09=OVIGN~ zruDj3SYN*(FkqUtv_5%#it!qkQyE_n|Km(!(whFIu@d}ymv*{MweB(6Xv^jnJ+I)2 zb&on!aQ<*zd1a$^U}ev;r%?~n!{c;nLu=W1ziN0t5C!WV8?wNws;A~C5=~xPwpomu zOvkL*6a9P&hb{=ELWnKa>oG6wYV@f1cguBwwH||f>Iat}9fXbnO-rV=p3+aNJ~x2+ zLHX2H>-xaJRG{x|E%93)=!etz8BM3$d*4y-*U&xw9={jd-ZZXFsdF0|tTzh@>r-Q< z)%wgnQC@xG7quLQ04lM!$*6(WLZ&~ ze^M88Zga_-hsTsX3jaL?hP%Nq0S;afkCWq+C94voaPmR&==kn%)n@YO$}-4lB#-`1 z*M7)ng{ffPnh7T$YEU+0_6P@?Cwht2ouo|!+hp?SJ#hRrv-F3@XhuTXkltWx^X>;} z?hk8ZUo`6^=_T~JUT$W;ZU~Ne6&(D#`9pQF>7mGoGtYbPw|Z7&>vqQXKeTa^Dl21D zL&m6KnWJW9j=GRge#l#W$lL9Zx5puG?ICaPL*71zyyFge`?`%++rz8zEy@|Nm}2gG zbXrWORJe${%WMJlC;znX5Gl)cp*5`!XKMF|hF#%>+s{?wJ+lz7(CU%XwIR#V(Df~7 z=o229ZbwHaw7C!Sm;(2d`fn)B5`p{|f4@Kqy(F;lm@am*kM9V?(CDE@wF`pW#s-GP zK88rxwDrk7{dqrW-eP^TSvbcs4^>1)K`h$&fVt;1{YiaseMS9glv(F7IoZrzU_{UG z`hqgkNR$3#nxE>~dR0)Eo}@n8U7d5Rc?HzXDjT)aw0TE!DX&@g84agQ$ExRmH2r*5 zX^Th6?dbh2di8^4ns5Yfly`Q3TT?~-4^+K1fdO~wPZs3biVm`tyyPKjIHs3RjP`)q z;{~4p|H^^3y8ftZo9weeu4`j;Yw6rIiQTk4d`}E~f7*{l#y!dX{1U5hrBTcLi}{Y~5z+r;*~zHy)q3p!n0~y6#4)-Lvh{)8$fNsvl}2_qvC+ z#jkGh7(zXMAqFWHvkKQBuFHW(|G25&E>--+b%p9&dskieyjRU%eNRMA)0Aoho?kQA zr+(D2qamWB?S4yiuZ_{iD^$c>d60 z_1R%;1UB1@m@=jJbTJqoRNF@Q?bD6bZY*>s)>p)nb+)^Gv;U~q@M&usq!aGi1D@rhM2l1oyd$*iQpgGYIrw{4IQ8?V9_Fy-k&Bl;4X2_0_m9wBB9 z_moIzUU#?px|<3|R7a`VkaS#kShs4dukSMM(CYh3hw)iSz*3_GLF!Udvwusk#xdL$ z_afl3!DH(?1Gk$F1PrJ&YbG{oY!j2%r%anA(IJzbirIS836GJ9NBim{_Iix;T~e3z zY(GAQNqg#+*jwfJPm`o||M6Pjb+E*Hqdq)39-PA(qO!PscmCx*^JY{38b7azWxX=1 z&+8)Zi4c|f^qBz*ybdFqE;?=qvSnyuGDNdHaMrxJnzEHP^fDt`Y+)~v?TfX87I+<@ zY;m`EA=}P`mqcsseBfvE=4Q%vRMXppY!jAgM7HnN2HQ@*43HFIlBNP$Kx z9SI84Rb$Y8K5cM!Oo*lSXgRmJ{v^VGAUJpU0Aun1$w-6AK^jcX>5!|C29t3ZOcDlx%^W~%-WalC zSA(s(6l^nTFnJzBlgC}e77DibzF^b&f-P_@*tVC|FAi!Nf}!bK8grJ@m}7AJZ1avm z821W#fUS8gCR>*iFwp%$bqVeXwoRCmH6#b37B_*d(H{fd3NKW!DG_XWLm_RPxnQ2h zQ^Ym{(&|S?=AE?m!3bvR_VCByb*rIU>qO|bVh42lCx%T;HpastkzmvJ>&I@Gnst(N z05%lY0Q5{YMzWt0oep5~==CuTRA=Nd>oa-y%A?`y0-Z|IF9R;|UYGcaTX~G<#Tv}A z`o5*;QNs(gKtem3h>&HmqoSAJ>>)!qNCb%=}0(EBSfd$Y#q z_W0GZ5L@82vS&rUe5ruG-nwSDTVJ~hN8E;aB+;a;e?XP?W2V^Q^4GK%W5j4#+)!BB z&DKA6-h(;VZj6V`-PbR2%V)iI{={@Q^%G+7d1Xg(y}RdlHp3aQacq5sie^-89&7RV zoQTow4;gnB8F5hpW$R*MM;*3LSbx2Vg&NHkzaaBrv!6!4)#6ub{lGS^=9kwmm|tKU z_J{Ur{7MY_QjhSEQU@dIagidAl=Cwz>$&0&M}}x-WS4Q{tb4TQ0x!3zHto+Z@yPUZ zkUp}PXo7?B{VGZ%Ptgivhl#ozN$F=Y`h>tQ=6Q7LXKC7gXH zygm(`sRj%tOzc`{Vz(I#sbJU+hF8E~rA~Gfp5v22oh*!IY(enQ`0ms@JoY(({h50P)xaocs1by`6= zn+8-&970$5=#d5M3cU0>4_c#O*AGdEf}5JzOuftYdd*3_KJKdB@xDLQtG>JEwCCij zw_%76QVu4hKM$R)9p(ouc->^5N$lV=v8-+{%4G_h3?H9iqWRcge;A?qTjj@mDPt0r zGByMT(v@QR`l-_JV)@edBh5tr`KANIJdR_vrLFHX{*_+%<~y5txb@w7siK7DG*@5W z=axOOgHraBQA*w61o$xhXa1C#m{ zoGW=+_0hoWezl*LJfr%3U`4;S){?!dCkEB@(|=R)ch&2In)(^PmEFPuM+(DmWOM%}G{1EV^ z13#4WQ@O7JKN#r};Atb1kaG_BVMssaz)$*I1D>uu(Lp7;I28OrP_jSLXMrcWz()d4 zaxViCg%X~KuHDoK@m25 zJ@9>zegJrC22pMk@RY6s9-mjX;pv;^_%H1R9#v%c(P)1(C{U98ZFhl(9sGbFiS!#F zj^cRIGmhggEAUyslm3IDyrce0fhYTq1rpiia_OXs<7X)F^i6dXFXaP&lLP;Uz>__z zfG7J2yZr$?wf7O=sXYZ=hsu-PKLeif3H)T>iO&PdQaJ*j13dAK1m018CGa}nX97?4 zAb#?bTF$>j!T%xfKuPqibrfymZv}n`(sbzXC(Ch@Brh};^*zENDdXL+{;UTcRg-lT z?d7JGq}zc9kY7wp`A81&-wizeOB3)%`D8p8i#UH8aE|<|IR70A{*9b}k%E64=Pyw3 zKgapY75p!8e!5@hsLxxR|49Y^`@oYw@5UcYWz+u>@bskd%lPvYc+~eloWBk@M}8j& zp?>;4{zN||!;Szx7`X58C;Y?>_M7^r;1&`rSW)7x97cXF2{$1>Oxx zj0L|Ro>2^SkP`uXIMTNOALf9!08f1Rz>jgjKLR|8khTNwsQ=%AC;blq@2LM9z$1J} zZv#*IQoTsPe}Jd= zc&gVm;2rCAFYuJVH=c{esja`PLm~p{FyMthlYk?@lRsnt@8}P&15f^t1H7;^>3tXE^XwuLj^9>oo;<>R0E1r~W~9p#ED7JeBK< zAnaJ~df=(tVBj6g-N*Tj3jU*<{|*IzGv_Z<@V9gR3I%^36iWK+R`7=cPx`!~;7{TF zA1L^x*PJ+_%Hl_AMn&)1_1Ba zUygD9DB#6BfyVJafG2;Q1ibJ!!uQfK{pSGhXwOl=6Mvq9e<9~DQSkqjukVkePIb(n)JB$GyAw7FQeliw# zN~^s)+Bp$;@{``cJKA|Z$B$Cri#a}CfnU$@cPj9^IexJMe}v=96!bpJcZb&hLYZGROL6ar{sP{(g>+Rp6^Qe!2p`pX0L>_+uP@ zp8|i5<0}>T%N)N)f%ge!^*y4%2Xp+p3j74%Xdc{2RdE47=S0{745o{|G$w({kX6F6`fL zIJ5h+z*8I*_<6un9Q>Cf9y*IdtU(Z@_#qB~PXwOgu{Z?&fBBh3T-j$D8lUVg4q>hSre}cw9Ap}s!`G1A~v-*?1f5t!m+w%Y0`uth_ zM`2R%|H7|amFo)sXY2LfwzDfeUG#gi??nc4g!3G53W@|Wf1&%dV! zr+4^Vf$dugc9xXnS+mn;-JX^{bJFBl;CJ#_dKu;H>+Mc>L&G9mvWJF6%CzJ=;%B$GI*yoH=8-GiMBEJtEv$mk4KVuBc&n z7c~rzcBWf+Oc%Pb+6b2yAApiG$Vl1A;oy^IPMV%D$%UJThIdi@2)#3*J zM0C*r5jWyu9lzuyds>7uPm6HsX%StRI+B^%-kS7Tl`g9o$(rFhaYcNqMHZ#-$4J&# zPJ3J=YZhe=W>)7pm~oXkm|r{3!Mt0UgW1k`4rW0`jwoh3r#YgSm6SQUsCksrnn!g} z^C(txd)vvL8qYr6*0rBTIqmjQU3B{>r>+&%g=hrL!%>Axoiv$PEVUTWA==M87b+>(`U_& zN8m~)sWTF1A(*f)A$63?B`BPaW22qOW#ZC_!!A?s*-EF_#flT8l=z90Qtaw=W?;4y z5-8p}pN0s5P=wom<_wq2qO!J@axT-Mok%g~jTsv4w8KR!Jc`@SX;+I;j0lW3#;H@p zICF~77^fZ(<1}8!C|Z?G6k;4&wUd){VIG@zaxn^H@Tw?`!Fin;BUWJy#vAL@7_kat za9*dzh;?d=ScNf|zOl}Xfk{qo%P=9zT2bOxFDrxX@T;qfTgMq)upN zB_(dWUP|97AEyIUR|*gk&w6kkuA zWy#B$wGe-}2Z1Ci@PUlzm_^5TNzJiKHe zKQF7Oi+XjO{mB)`uq@2U!Ii|!+HXYW@F3exfUtIvZ7Uk!eb8|2rFVo8{ zZOINTURhwt$qL0cB4tsytX-UwhgqO&jg+5!yxTRaS@G3J*60f@#r(YoD_v)mFEhIk zEni)BLAPI2cEQx)TCxj1F`w;%#qpbzU9j0MM!VqY@I^~zGN6RX((}-W#rcbKGSlh% zq^>R4;hULU47vQQ;==sAh3rid=EB9%kz-)1T+5i8{Gu3oyTro${Drxe#pcYhIceGX zd6u!sd9<99X-Q5TEBt0YuS@}x~Gc98~c(`rZBXse9D{!!RC5s&FyhG>^WVvT| zpu1Lx$BvEzSEt}1Bo~`=@?1oZjuIThM@NdVqZ~gvl9U0YBh_UDab3BN0fbe;A%ZZ3 zErjr7=NQ5W9fL@E=P1J1Y+=NuTAiYZOU_O~gcacsMO6ZivV_H$Jmi@dTbwkReBI}4;X|Q=C0Evfw{?0!ehz&YyQt$Ulbou8 zwQY`fRt#3RnIW#T45f@53XA3}!yA|6x?D$&97b-4Q;sM%#Ay#MH^kl{&fHKATc~hh zVDt!=?TDps`1}noev6Layc>m~AIT+k^tRA2^efjIgp2MK?!0@2i+&&OyyJ(X=Q}Gk zyvurrqux$)p=w>|8q0{HKZ{jyo<~M^UM}v~S@1@$qM|?9VX=(fm0A%np|i?Fz@n}z z6A`Yg46UYjT@|dSvrNtw)Rp2CE9%#i?4lhbx@^aY8}r|eQzP!i5zgH>!i5`0blC=x zdS&%#iTyftjtpa&t`nBTq=HLRbgxKs5ZA37DdMX#moT@}xEm>quFNI6jq_Zh^C)u( zi#pFG?5fBWCA`{ct|;N#%3NJqBg%y}qPnz3RFtx9J1oIpr;($C&6Ju7YdNogIEU4EraQ#g7J0=AuA|~?t*+zDKn_)1O$}HaWQ&c_E*d0SG>EMt^3r0* zl4uS>3ly&AAhx``tWM3ymMfzpb6IU~WT9U%Nxh3IE|=5EKD=I??8Et8*eAA=eHeeN3;V=& zvJdBXVV_tR_KEFeAEtk-6Z>56mIAksVrktu7Pl2#5rpLwazbN;>6Chhu4+DRT&_dJ?DB2{XJkFQi<=GH_#JLHbPQwi zxFUx!r|;Hfi%lJFPRPqo7$nSeam=4cV_*!ujW^dKIa}bA##k2T6pz7Gt~4eqr^uXv z#ZQtnrT|lLOOZ6D*j$L!r7`A=94X6OxI8DXAQRXbMY3pPhjOY^^1B<{Iv|lCJRKJS zJ^7~v8HW9?&@fnqoOp~lQP3)|CyEXq>Z%^1`SCZKLKzL@U-_1&=AS-A%Hu84`$Gy-IQMvR2 zmTKUyLQgH1Ec60i6POk(U4f=Wp4dsAT&i#NSrx=jrWCM-@ zUlxM~6Cm-;;dI(di|tY=i3}Ph08;))P9F_867&!T4Z(nve*mZZ0Akx#ik3kGZLp{O z?T8ChejDJ;pkHFp&oD^5Zj$nPBCaW1}NKs(+>iMfL_a>VLu?{-wjCes{pY# zH>Hw6Lj@q^w{rRlKIi2=MW6xj8Yz7T!fWwhaVbG8WNb)8CQhAYp zH-WBa&=3OH0K69P-+=VOmBWDTp4cZ2cnR>IfUST>0Gm0!k;7Afq|Y%9j{s6R2LXqm zoLUAA`vG-G*Dz?<4TyN0Qq7=YD7;B zeK>UE@Tv!sa|V#=eG2e6U>zX(b;=P24Tm{?KVUWK&7gtaA#fc0TLE_iU&WxIlHpFe$^LE}UUirE{HL@tXt)GOc5MbEzB7On4;mRXRB`%xPPYQ$-32N4GiX==i0x}B z#S9v90ZGn$4rc>m?|VubgN8&vDsKX(>j5c#jAqcF<9I&~wSd?Yn{w5S6E)W2!`2Q;kb_!S%$08+kez++Soj!y%mex1Ug z!N~D?4nqJbpAPUC@&#}_?YF1?Oz+zPG+aevk^XIf7=u$TF=)8R@#g@s*E6MwLBkn9 zlH16j;RGPbKLSW{4gyktr+2Ub8ukNXZjw^NprIPD0esnj9>8ZYXqW@IANVvtl9K|6 zcWk93F=)^MQvV9%(1$}eK;ox&++Z(4%4G%(ZGaduQZ6xQXaz**Ou5LQp$U-mZUm(M zd<5_);6Xr=R|AMSMapgl4b^}okKV}xXxIu!@~Rj#tOtA==?Vr7R=}M|-_M|-7?8@# z1*Gy!fK<*LKuiHrW;19=1Eg|N7&IgSQaOnX8fYF!av}jq&S=1Y00sk+JbL%gZt(js zXmA50{;MjyPXh2VAn~;VB9x}kycE#T1h@m~GYlF|0aCtWfPV)(47dyQgA5u90FMHn z&7p}ydgl`1(>P4xFcy&Xie%8B2P8d$IXwVy2k3qb8hikWPLnp0*Cw&}bcsPjD(=k@a^cujOphE|OhHAh%~RNN+6eeEAk}{cppK`h-qXqDd7A1AnZC_{ z#NP-Q4_L?3wSY#Xt9hErxfN+EPZt2*g0zXJ(*O-f8+lp}I00!LPx}GJAq^mxmjt*3 z=~%#50g3-5zz_~~fQd*`KB8*@4*~*6&v5t@U?tKfzzV>0Kr7%qfMnOZ0Sf@<17-ux z12h5N1xR+C3z!CobKfMuI{}S=w*!)1vjO#hvj9T?Zv)f;B9Ct%U@D*=;50xjU@{

25X243owSX0X1%OsS_=qoEzhwXx02TsL9D5Xy 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 diff --git a/FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h b/FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h deleted file mode 100755 index 053ec2b..0000000 --- a/FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h +++ /dev/null @@ -1 +0,0 @@ -#import "FIRInstanceID.h" diff --git a/FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap b/FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap deleted file mode 100755 index 2058956..0000000 --- a/FoodApp/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module FirebaseInstanceID { - umbrella header "FirebaseInstanceID.h" - export * - module * { export *} - link framework "Security" - link framework "SystemConfiguration"} diff --git a/FoodApp/Pods/FirebaseInstanceID/LICENSE b/FoodApp/Pods/FirebaseInstanceID/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/FoodApp/Pods/FirebaseInstanceID/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/FoodApp/Pods/SkyFloatingLabelTextField/LICENSE b/FoodApp/Pods/SkyFloatingLabelTextField/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/FoodApp/Pods/SkyFloatingLabelTextField/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/FoodApp/Pods/SkyFloatingLabelTextField/README.md b/FoodApp/Pods/SkyFloatingLabelTextField/README.md new file mode 100644 index 0000000..c8cfed5 --- /dev/null +++ b/FoodApp/Pods/SkyFloatingLabelTextField/README.md @@ -0,0 +1,269 @@ +# SkyFloatingLabelTextField + +[![Build Status](https://travis-ci.org/Skyscanner/SkyFloatingLabelTextField.svg?branch=master)](https://travis-ci.org/Skyscanner/SkyFloatingLabelTextField) +[![Coverage Status](https://coveralls.io/repos/github/Skyscanner/SkyFloatingLabelTextField/badge.svg?branch=master)](https://coveralls.io/github/Skyscanner/SkyFloatingLabelTextField?branch=master) +[![Pod Platform](https://img.shields.io/cocoapods/p/SkyFloatingLabelTextField.svg?style=flat)](https://cocoapods.org/pods/SkyFloatingLabelTextField) +[![Pod License](https://img.shields.io/cocoapods/l/SkyFloatingLabelTextField.svg?style=flat)](https://github.com/Skyscanner/SkyFloatingLabelTextField/blob/master/LICENSE) + +[![Pod Version](https://img.shields.io/cocoapods/v/SkyFloatingLabelTextField.svg?style=flat)](https://cocoapods.org/pods/SkyFloatingLabelTextField) +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) +[![Documentation](https://img.shields.io/cocoapods/metrics/doc-percent/SkyFloatingLabelTextField.svg)](http://cocoadocs.org/docsets/SkyFloatingLabelTextField/) +[![Readme Score](http://readme-score-api.herokuapp.com/score.svg?url=https://github.com/Skyscanner/SkyFloatingLabelTextField)](http://clayallsopp.github.io/readme-score?url=https://github.com/Skyscanner/SkyFloatingLabelTextField) + +`SkyFloatingLabelTextField` is a beautiful, flexible and customizable implementation of the space saving **"Float Label Pattern"**. This design enables adding context to input fields that are visible at the time of typing, while minimizing the additional space used to display this additional context. This component is used in the [Skyscanner TravelPro iOS application](https://itunes.apple.com/gb/app/travelpro-business-travel/id1046916687) in several places, like when [searching for flights](http://codevoyagers.com/2016/04/06/open-sourcing-skyfloatinglabeltextfield/). + +On top of implementing the space-saving floating title, the component also supports using iconography, RTL text support (e.g. Arabic & Hebrew), various states (error, selected, highlighted states), and is very much customizable and extensible. + +![](/SkyFloatingLabelTextField/images/showcase-example.gif) + +## Versioning + +Up until version 1.2 Swift 2.2 and 2.3 compatible (and there is a Swift 2.3 branch in case you need it). +From version 2.0 onwards only compatible with Swift 3. +Please be mindful of the version you're using. + +## Usage + +To start using the component add it to your project using CocoaPods, Carthage or manually as per the [Installation](#installation) section. + +The UI component can be used via the `SkyFloatingLabelTextField` class. To use icons on the right hand side, use the `SkyFloatingLabelTextFieldWithIcon` class. This control can be used very similar to `UITextField` - both from Interface Builder, or from code. + +To create an instance of the class, use Interface builder, or do it from code. This example will create the following textbox with the placeholder and title: + +![](/SkyFloatingLabelTextField/images/example-1.gif) + +```swift +let textField = SkyFloatingLabelTextField(frame: CGRectMake(10, 10, 200, 45)) +textField.placeholder = "Name" +textField.title = "Your full name" +self.view.addSubview(textField) +``` + +### Colors + +To customize the colors of the textfield, set a few properties - either from code, or from Interface builder. To use a textfield with an icon, utilize the `SkyFloatingLabelTextFieldWithIcon` class (and bundle the font class with your app). This example will change colors for the textfield on the right: + +![](/SkyFloatingLabelTextField/images/example-2.gif) + +```swift +let lightGreyColor = UIColor(red: 197/255, green: 205/255, blue: 205/255, alpha: 1.0) +let darkGreyColor = UIColor(red: 52/255, green: 42/255, blue: 61/255, alpha: 1.0) +let overcastBlueColor = UIColor(red: 0, green: 187/255, blue: 204/255, alpha: 1.0) + +let textField1 = SkyFloatingLabelTextField(frame: CGRectMake(10, 10, 120, 45)) +textField1.placeholder = "First name" +textField1.title = "Given name" +self.view.addSubview(textField1) + +let textField2 = SkyFloatingLabelTextField(frame: CGRectMake(150, 10, 120, 45)) +textField2.placeholder = "Last name" +textField2.title = "Family name" + +textField2.tintColor = overcastBlueColor // the color of the blinking cursor +textField2.textColor = darkGreyColor +textField2.lineColor = lightGreyColor +textField2.selectedTitleColor = overcastBlueColor +textField2.selectedLineColor = overcastBlueColor + +textField2.lineHeight = 1.0 // bottom line height in points +textField2.selectedLineHeight = 2.0 +self.view.addSubview(textField2) +``` + +### Icons and fonts + +Use the `SkyFloatingLabelTextFieldWithIcon` field to display icons next to the textfields. You have the option of using a font or an image as the icon by setting the `iconType` property (Default = `IconType.font`). If using an image as icon, you will have to set the `iconImage` property. If using a font as icon, you will have to set the `iconFont` property and bundle your icon with your app (if it's not a built in one). Icons can be rotated and more precise positioning is also supported: + +![](/SkyFloatingLabelTextField/images/example-3.gif) + +#### Using a font + +```swift +let overcastBlueColor = UIColor(red: 0, green: 187/255, blue: 204/255, alpha: 1.0) +let textFieldFrame = CGRect(x: 150, y: 10, width: 120, height: 45) + +let textField1 = SkyFloatingLabelTextFieldWithIcon(frame: textFieldFrame, iconType: .font) +textField1.placeholder = "Departure" +textField1.title = "Flying from" +textField1.iconFont = UIFont(name: "FontAwesome", size: 15) +textField1.iconText = "\u{f072}" // plane icon as per https://fortawesome.github.io/Font-Awesome/cheatsheet/ +self.view.addSubview(textField1) + +let textField2 = SkyFloatingLabelTextFieldWithIcon(frame: textFieldFrame) +textField2.placeholder = "Arrival" +textField2.title = "Flying to" +textField2.tintColor = overcastBlueColor +textField2.selectedTitleColor = overcastBlueColor +textField2.selectedLineColor = overcastBlueColor + +// Set icon properties +textField2.iconType = .font +textField2.iconColor = UIColor.lightGrayColor() +textField2.selectedIconColor = overcastBlueColor +textField2.iconFont = UIFont(name: "FontAwesome", size: 15) +textField2.iconText = "\u{f072}" // plane icon as per https://fortawesome.github.io/Font-Awesome/cheatsheet/ +textField2.iconMarginBottom = 4.0 // more precise icon positioning. Usually needed to tweak on a per font basis. +textField2.iconRotationDegrees = 90 // rotate it 90 degrees +textField2.iconMarginLeft = 2.0 +self.view.addSubview(textField2) +``` + +#### Using an image +```swift +let textFieldframe = CGRect(x: 150, y: 10, width: 120, height: 45) + +let textField1 = SkyFloatingLabelTextFieldWithIcon(frame: textFieldframe, iconType: .image) +textField1.placeholder = "Departure" +textField1.title = "Flying from" +textField1.iconImage = UIImage(imageLiteralResourceName: "PlaneIcon") +self.view.addSubview(textField1) +``` + +### Error state and delegates + +The textfield supports displaying an error state - this can be useful for example when validating fields on the fly. When the `errorMessage` property is set on the control, then the control is highlighted with the color set in the `errorColor` property. + +To get notified of different events happening on the textfield - such as the text changing, editing starting or ending - just set the `delegate` property to a class implementing the standard [UITextFieldDelegate](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextFieldDelegate_Protocol/) protocol: + +![](/SkyFloatingLabelTextField/images/example-4.gif) + +```swift +class MyViewController: UIViewController, UITextFieldDelegate { + override func viewDidLoad() { + super.viewDidLoad() + let textField1 = SkyFloatingLabelTextField(frame: CGRectMake(10, 10, 120, 45)) + textField1.placeholder = "Email" + textField1.title = "Email address" + textField1.errorColor = UIColor.redColor() + textField1.delegate = self + self.view.addSubview(textField1) + } + + /// Implementing a method on the UITextFieldDelegate protocol. This will notify us when something has changed on the textfield + func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { + if let text = textField.text { + if let floatingLabelTextField = textField as? SkyFloatingLabelTextField { + if(text.characters.count < 3 || !text.containsString("@")) { + floatingLabelTextField.errorMessage = "Invalid email" + } + else { + // The error message will only disappear when we reset it to nil or empty string + floatingLabelTextField.errorMessage = "" + } + } + } + return true + } +} +``` + +### Disabled state +The textfield also supports displaying a disabled state. When the `isEnabled` property is set on the control, then the control is highlighted with the color set in the `disabledColor` property. +```swift + textField.disabledColor = disabledColor + textField.isEnabled = false +``` +### RTL language support + +The component automatically detects the language writing direction. When the phone has a RTL language set (e.g. Arabic or Hebrew), then it automatically adjusts to support this style. + +Alternatively, set the `isLTRLanguage` property to manually change the writing direction. + +![](/SkyFloatingLabelTextField/images/RTL-example.png) + +### Further customizing the control by subclassing + +The control was designed to allow further customization in subclasses. The control itself inherits from `UITextField`, so the standard overrides from there can all be used. A few other notable customization hooks via overriding are: +- `updateColors`: override this method to customize colors whenever the state of the control changes +- Layout overrides: + - `titleLabelRectForBounds(bounds:CGRect, editing:Bool)`: override to change the bounds of the top title placeholder view + - `textRectForBounds(bounds: CGRect)`: override to change the bounds of the control (inherited from `UITextField`) + - `editingRectForBounds(bounds: CGRect)`: override to change the bounds of the control when editing / selected (inherited from `UITextField`) + - `placeholderRectForBounds(bounds: CGRect)`: override to change the bounds of the placeholder view + - `lineViewRectForBounds(bounds:CGRect, editing:Bool)`: override to change the bounds of the bottom line view + +## Documentation + +See the [SkyFloatingLabelTextField documentation](http://cocoadocs.org/docsets/SkyFloatingLabelTextField) on [CocoaDocs.org](http://cocoadocs.org) for the full documentation. + +## Installation + +#### CocoaPods + +The control is available through [CocoaPods](https://cocoapods.org/). CocoaPods can be installed using [Ruby gems](https://rubygems.org/): +```shell +$ gem install cocoapods +``` + +Then simply add `SkyFloatingLabelTextField` to your Podfile: + +``` +pod 'SkyFloatingLabelTextField', '~> 3.0' +``` + +Lastly, let CocoaPods fetch the latest version of the component by running: +```shell +$ pod update +``` + +##### Integrating into Objective C projects + +When integrating the component into an Objective C project, in the Podfile add `use_frameworks!`. For example as shown in [SkyFloatingLabelTextFieldObjectiveCExample](https://github.com/Skyscanner/SkyFloatingLabelTextField/tree/master/SkyFloatingLabelTextFieldObjectiveCExample): + +``` +use_frameworks! + +target 'SkyFloatingLabelTextFieldObjectiveCExample' do + pod 'SkyFloatingLabelTextField', '~> 3.0' +end +``` + +Then to use the component in your code, add the following line to your `.h` or `.m` files: + +```objc +@import SkyFloatingLabelTextField; +``` + +#### Carthage +The component supports [Carthage](https://github.com/Carthage/Carthage). Start by making sure you have the latest version of Carthage installed. Using [Homebrew](http://brew.sh/) run this: +```shell +$ brew update +$ brew install carthage +``` +Then add `SkyFloatingLabelTextField` to your `Cartfile`: +``` +github "Skyscanner/SkyFloatingLabelTextField" +``` +Finally, add the framework to the Xcode project of your App. Link the framework to your App and copy it to the App’s Frameworks directory via the “Build Phases” section. + +#### Manual + +You can download the latest files from our [Releases page](https://github.com/Skyscanner/SkyFloatingLabelTextField/releases). After doing so, copy the files in the `Sources` folder to your project. + +## Contributing + +We welcome all contributions. Please read [this guide](/CONTRIBUTING.md) before opening issues or submitting pull requests, as well as how and who to contact with questions. + +## Credits + +The original component was built by [Daniel Langh](https://github.com/intonarumori), [Gergely Orosz](https://github.com/gergelyorosz) and [Raimon Laupente](https://github.com/wolffan). Notable contributions by [Shai Shamir](https://github.com/pichirichi) (RTL language support). + +Credits for the original design, and improving it with iconography to Matt D. Smith ([@mds](https://twitter.com/mds)). + +## FAQ + +- *Can I use it in Objective C projects?* + + Of course! Please see the [Integrating-into-Objective-C-projects](#integrating-into-objective-c-projects) section on how to integrate the component via CocoaPods. + +- *Does the control work well with auto layout? What about using it programmatically?* + + The control was built to support both use cases. It plays nicely with autolayout. As the control is a subclass of `UITextField`, overriding `textRectForBounds(bounds:)` or `editingRectForBounds(bounds:)` is always an option. Alternatively, overriding `intrinsiccontentsize` is also another possibility. + +- *How can I remove the line from the bottom of the textfield?* + + Set `lineHeight` and `selectedLineHeight` to `0`, and the line won't be displayed. + +- *I'd like to validate the textfield using the `errorMessage`. How can I re-validate text is typed in the textfield?* + + Using a delegate implement the `textField(textField:,range:string:)` method. This method fires whenever the text is changed - do the validation here. Alternatively, using subclassing you can also override the `becomeFirstResponder` method to e.g. clear the text or error message when the textfield is selected. diff --git a/FoodApp/Pods/SkyFloatingLabelTextField/Sources/SkyFloatingLabelTextField.swift b/FoodApp/Pods/SkyFloatingLabelTextField/Sources/SkyFloatingLabelTextField.swift new file mode 100644 index 0000000..3bb382c --- /dev/null +++ b/FoodApp/Pods/SkyFloatingLabelTextField/Sources/SkyFloatingLabelTextField.swift @@ -0,0 +1,708 @@ +// Copyright 2016-2017 Skyscanner Ltd +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License +// for the specific language governing permissions and limitations under the License. + +import UIKit + +/** + A beautiful and flexible textfield implementation with support for title label, error message and placeholder. + */ +@IBDesignable +open class SkyFloatingLabelTextField: UITextField { // swiftlint:disable:this type_body_length + /** + A Boolean value that determines if the language displayed is LTR. + Default value set automatically from the application language settings. + */ + @objc open var isLTRLanguage: Bool = UIApplication.shared.userInterfaceLayoutDirection == .leftToRight { + didSet { + updateTextAligment() + } + } + + fileprivate func updateTextAligment() { + if isLTRLanguage { + textAlignment = .left + titleLabel.textAlignment = .left + } else { + textAlignment = .right + titleLabel.textAlignment = .right + } + } + + // MARK: Animation timing + + /// The value of the title appearing duration + @objc dynamic open var titleFadeInDuration: TimeInterval = 0.2 + /// The value of the title disappearing duration + @objc dynamic open var titleFadeOutDuration: TimeInterval = 0.3 + + // MARK: Colors + + fileprivate var cachedTextColor: UIColor? + + /// A UIColor value that determines the text color of the editable text + @IBInspectable + override dynamic open var textColor: UIColor? { + set { + cachedTextColor = newValue + updateControl(false) + } + get { + return cachedTextColor + } + } + + /// A UIColor value that determines text color of the placeholder label + @IBInspectable dynamic open var placeholderColor: UIColor = UIColor.lightGray { + didSet { + updatePlaceholder() + } + } + + /// A UIFont value that determines text color of the placeholder label + @objc dynamic open var placeholderFont: UIFont? { + didSet { + updatePlaceholder() + } + } + + fileprivate func updatePlaceholder() { + guard let placeholder = placeholder, let font = placeholderFont ?? font else { + return + } + let color = isEnabled ? placeholderColor : disabledColor + #if swift(>=4.2) + attributedPlaceholder = NSAttributedString( + string: placeholder, + attributes: [ + NSAttributedString.Key.foregroundColor: color, NSAttributedString.Key.font: font + ] + ) + #elseif swift(>=4.0) + attributedPlaceholder = NSAttributedString( + string: placeholder, + attributes: [ + NSAttributedStringKey.foregroundColor: color, NSAttributedStringKey.font: font + ] + ) + #else + attributedPlaceholder = NSAttributedString( + string: placeholder, + attributes: [NSForegroundColorAttributeName: color, NSFontAttributeName: font] + ) + #endif + } + + /// A UIFont value that determines the text font of the title label + @objc dynamic open var titleFont: UIFont = .systemFont(ofSize: 13) { + didSet { + updateTitleLabel() + } + } + + /// A UIColor value that determines the text color of the title label when in the normal state + @IBInspectable dynamic open var titleColor: UIColor = .gray { + didSet { + updateTitleColor() + } + } + + /// A UIColor value that determines the color of the bottom line when in the normal state + @IBInspectable dynamic open var lineColor: UIColor = .lightGray { + didSet { + updateLineView() + } + } + + /// A UIColor value that determines the color used for the title label and line when the error message is not `nil` + @IBInspectable dynamic open var errorColor: UIColor = .red { + didSet { + updateColors() + } + } + + /// A UIColor value that determines the color used for the line when error message is not `nil` + @IBInspectable dynamic open var lineErrorColor: UIColor? { + didSet { + updateColors() + } + } + + /// A UIColor value that determines the color used for the text when error message is not `nil` + @IBInspectable dynamic open var textErrorColor: UIColor? { + didSet { + updateColors() + } + } + + /// A UIColor value that determines the color used for the title label when error message is not `nil` + @IBInspectable dynamic open var titleErrorColor: UIColor? { + didSet { + updateColors() + } + } + + /// A UIColor value that determines the color used for the title label and line when text field is disabled + @IBInspectable dynamic open var disabledColor: UIColor = UIColor(white: 0.88, alpha: 1.0) { + didSet { + updateControl() + updatePlaceholder() + } + } + + /// A UIColor value that determines the text color of the title label when editing + @IBInspectable dynamic open var selectedTitleColor: UIColor = .blue { + didSet { + updateTitleColor() + } + } + + /// A UIColor value that determines the color of the line in a selected state + @IBInspectable dynamic open var selectedLineColor: UIColor = .black { + didSet { + updateLineView() + } + } + + // MARK: Line height + + /// A CGFloat value that determines the height for the bottom line when the control is in the normal state + @IBInspectable dynamic open var lineHeight: CGFloat = 0.5 { + didSet { + updateLineView() + setNeedsDisplay() + } + } + + /// A CGFloat value that determines the height for the bottom line when the control is in a selected state + @IBInspectable dynamic open var selectedLineHeight: CGFloat = 1.0 { + didSet { + updateLineView() + setNeedsDisplay() + } + } + + // MARK: View components + + /// The internal `UIView` to display the line below the text input. + open var lineView: UIView! + + /// The internal `UILabel` that displays the selected, deselected title or error message based on the current state. + open var titleLabel: UILabel! + + // MARK: Properties + + /** + The formatter used before displaying content in the title label. + This can be the `title`, `selectedTitle` or the `errorMessage`. + The default implementation converts the text to uppercase. + */ + open var titleFormatter: ((String) -> String) = { (text: String) -> String in + if #available(iOS 9.0, *) { + return text.localizedUppercase + } else { + return text.uppercased() + } + } + + /** + Identifies whether the text object should hide the text being entered. + */ + override open var isSecureTextEntry: Bool { + set { + super.isSecureTextEntry = newValue + fixCaretPosition() + } + get { + return super.isSecureTextEntry + } + } + + /// A String value for the error message to display. + @IBInspectable + open var errorMessage: String? { + didSet { + updateControl(true) + } + } + + /// The backing property for the highlighted property + fileprivate var _highlighted: Bool = false + + /** + A Boolean value that determines whether the receiver is highlighted. + When changing this value, highlighting will be done with animation + */ + override open var isHighlighted: Bool { + get { + return _highlighted + } + set { + _highlighted = newValue + updateTitleColor() + updateLineView() + } + } + + /// A Boolean value that determines whether the textfield is being edited or is selected. + open var editingOrSelected: Bool { + return super.isEditing || isSelected + } + + /// A Boolean value that determines whether the receiver has an error message. + open var hasErrorMessage: Bool { + return errorMessage != nil && errorMessage != "" + } + + fileprivate var _renderingInInterfaceBuilder: Bool = false + + /// The text content of the textfield + @IBInspectable + override open var text: String? { + didSet { + updateControl(false) + } + } + + /** + The String to display when the input field is empty. + The placeholder can also appear in the title label when both `title` `selectedTitle` and are `nil`. + */ + @IBInspectable + override open var placeholder: String? { + didSet { + setNeedsDisplay() + updatePlaceholder() + updateTitleLabel() + } + } + + /// The String to display when the textfield is editing and the input is not empty. + @IBInspectable open var selectedTitle: String? { + didSet { + updateControl() + } + } + + /// The String to display when the textfield is not editing and the input is not empty. + @IBInspectable open var title: String? { + didSet { + updateControl() + } + } + + // Determines whether the field is selected. When selected, the title floats above the textbox. + open override var isSelected: Bool { + didSet { + updateControl(true) + } + } + + // MARK: - Initializers + + /** + Initializes the control + - parameter frame the frame of the control + */ + override public init(frame: CGRect) { + super.init(frame: frame) + init_SkyFloatingLabelTextField() + } + + /** + Intialzies the control by deserializing it + - parameter coder the object to deserialize the control from + */ + required public init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + init_SkyFloatingLabelTextField() + } + + fileprivate final func init_SkyFloatingLabelTextField() { + borderStyle = .none + createTitleLabel() + createLineView() + updateColors() + addEditingChangedObserver() + updateTextAligment() + } + + fileprivate func addEditingChangedObserver() { + self.addTarget(self, action: #selector(SkyFloatingLabelTextField.editingChanged), for: .editingChanged) + } + + /** + Invoked when the editing state of the textfield changes. Override to respond to this change. + */ + @objc open func editingChanged() { + updateControl(true) + updateTitleLabel(true) + } + + // MARK: create components + + fileprivate func createTitleLabel() { + let titleLabel = UILabel() + titleLabel.autoresizingMask = [.flexibleWidth, .flexibleHeight] + titleLabel.font = titleFont + titleLabel.alpha = 0.0 + titleLabel.textColor = titleColor + + addSubview(titleLabel) + self.titleLabel = titleLabel + } + + fileprivate func createLineView() { + + if lineView == nil { + let lineView = UIView() + lineView.isUserInteractionEnabled = false + self.lineView = lineView + configureDefaultLineHeight() + } + + lineView.autoresizingMask = [.flexibleWidth, .flexibleTopMargin] + addSubview(lineView) + } + + fileprivate func configureDefaultLineHeight() { + let onePixel: CGFloat = 1.0 / UIScreen.main.scale + lineHeight = 2.0 * onePixel + selectedLineHeight = 2.0 * self.lineHeight + } + + // MARK: Responder handling + + /** + Attempt the control to become the first responder + - returns: True when successfull becoming the first responder + */ + @discardableResult + override open func becomeFirstResponder() -> Bool { + let result = super.becomeFirstResponder() + updateControl(true) + return result + } + + /** + Attempt the control to resign being the first responder + - returns: True when successfull resigning being the first responder + */ + @discardableResult + override open func resignFirstResponder() -> Bool { + let result = super.resignFirstResponder() + updateControl(true) + return result + } + + /// update colors when is enabled changed + override open var isEnabled: Bool { + didSet { + updateControl() + updatePlaceholder() + } + } + + // MARK: - View updates + + fileprivate func updateControl(_ animated: Bool = false) { + updateColors() + updateLineView() + updateTitleLabel(animated) + } + + fileprivate func updateLineView() { + guard let lineView = lineView else { + return + } + + lineView.frame = lineViewRectForBounds(bounds, editing: editingOrSelected) + updateLineColor() + } + + // MARK: - Color updates + + /// Update the colors for the control. Override to customize colors. + open func updateColors() { + updateLineColor() + updateTitleColor() + updateTextColor() + } + + fileprivate func updateLineColor() { + guard let lineView = lineView else { + return + } + + if !isEnabled { + lineView.backgroundColor = disabledColor + } else if hasErrorMessage { + lineView.backgroundColor = lineErrorColor ?? errorColor + } else { + lineView.backgroundColor = editingOrSelected ? selectedLineColor : lineColor + } + } + + fileprivate func updateTitleColor() { + guard let titleLabel = titleLabel else { + return + } + + if !isEnabled { + titleLabel.textColor = disabledColor + } else if hasErrorMessage { + titleLabel.textColor = titleErrorColor ?? errorColor + } else { + if editingOrSelected || isHighlighted { + titleLabel.textColor = selectedTitleColor + } else { + titleLabel.textColor = titleColor + } + } + } + + fileprivate func updateTextColor() { + if !isEnabled { + super.textColor = disabledColor + } else if hasErrorMessage { + super.textColor = textErrorColor ?? errorColor + } else { + super.textColor = cachedTextColor + } + } + + // MARK: - Title handling + + fileprivate func updateTitleLabel(_ animated: Bool = false) { + guard let titleLabel = titleLabel else { + return + } + + var titleText: String? + if hasErrorMessage { + titleText = titleFormatter(errorMessage!) + } else { + if editingOrSelected { + titleText = selectedTitleOrTitlePlaceholder() + if titleText == nil { + titleText = titleOrPlaceholder() + } + } else { + titleText = titleOrPlaceholder() + } + } + titleLabel.text = titleText + titleLabel.font = titleFont + + updateTitleVisibility(animated) + } + + fileprivate var _titleVisible: Bool = false + + /* + * Set this value to make the title visible + */ + open func setTitleVisible( + _ titleVisible: Bool, + animated: Bool = false, + animationCompletion: ((_ completed: Bool) -> Void)? = nil + ) { + if _titleVisible == titleVisible { + return + } + _titleVisible = titleVisible + updateTitleColor() + updateTitleVisibility(animated, completion: animationCompletion) + } + + /** + Returns whether the title is being displayed on the control. + - returns: True if the title is displayed on the control, false otherwise. + */ + open func isTitleVisible() -> Bool { + return hasText || hasErrorMessage || _titleVisible + } + + fileprivate func updateTitleVisibility(_ animated: Bool = false, completion: ((_ completed: Bool) -> Void)? = nil) { + let alpha: CGFloat = isTitleVisible() ? 1.0 : 0.0 + let frame: CGRect = titleLabelRectForBounds(bounds, editing: isTitleVisible()) + let updateBlock = { () -> Void in + self.titleLabel.alpha = alpha + self.titleLabel.frame = frame + } + if animated { + #if swift(>=4.2) + let animationOptions: UIView.AnimationOptions = .curveEaseOut + #else + let animationOptions: UIViewAnimationOptions = .curveEaseOut + #endif + let duration = isTitleVisible() ? titleFadeInDuration : titleFadeOutDuration + UIView.animate(withDuration: duration, delay: 0, options: animationOptions, animations: { () -> Void in + updateBlock() + }, completion: completion) + } else { + updateBlock() + completion?(true) + } + } + + // MARK: - UITextField text/placeholder positioning overrides + + /** + Calculate the rectangle for the textfield when it is not being edited + - parameter bounds: The current bounds of the field + - returns: The rectangle that the textfield should render in + */ + override open func textRect(forBounds bounds: CGRect) -> CGRect { + let superRect = super.textRect(forBounds: bounds) + let titleHeight = self.titleHeight() + + let rect = CGRect( + x: superRect.origin.x, + y: titleHeight, + width: superRect.size.width, + height: superRect.size.height - titleHeight - selectedLineHeight + ) + return rect + } + + /** + Calculate the rectangle for the textfield when it is being edited + - parameter bounds: The current bounds of the field + - returns: The rectangle that the textfield should render in + */ + override open func editingRect(forBounds bounds: CGRect) -> CGRect { + let superRect = super.editingRect(forBounds: bounds) + let titleHeight = self.titleHeight() + + let rect = CGRect( + x: superRect.origin.x, + y: titleHeight, + width: superRect.size.width, + height: superRect.size.height - titleHeight - selectedLineHeight + ) + return rect + } + + /** + Calculate the rectangle for the placeholder + - parameter bounds: The current bounds of the placeholder + - returns: The rectangle that the placeholder should render in + */ + override open func placeholderRect(forBounds bounds: CGRect) -> CGRect { + let rect = CGRect( + x: 0, + y: titleHeight(), + width: bounds.size.width, + height: bounds.size.height - titleHeight() - selectedLineHeight + ) + return rect + } + + // MARK: - Positioning Overrides + + /** + Calculate the bounds for the title label. Override to create a custom size title field. + - parameter bounds: The current bounds of the title + - parameter editing: True if the control is selected or highlighted + - returns: The rectangle that the title label should render in + */ + open func titleLabelRectForBounds(_ bounds: CGRect, editing: Bool) -> CGRect { + if editing { + return CGRect(x: 0, y: 0, width: bounds.size.width, height: titleHeight()) + } + return CGRect(x: 0, y: titleHeight(), width: bounds.size.width, height: titleHeight()) + } + + /** + Calculate the bounds for the bottom line of the control. + Override to create a custom size bottom line in the textbox. + - parameter bounds: The current bounds of the line + - parameter editing: True if the control is selected or highlighted + - returns: The rectangle that the line bar should render in + */ + open func lineViewRectForBounds(_ bounds: CGRect, editing: Bool) -> CGRect { + let height = editing ? selectedLineHeight : lineHeight + return CGRect(x: 0, y: bounds.size.height - height, width: bounds.size.width, height: height) + } + + /** + Calculate the height of the title label. + -returns: the calculated height of the title label. Override to size the title with a different height + */ + open func titleHeight() -> CGFloat { + if let titleLabel = titleLabel, + let font = titleLabel.font { + return font.lineHeight + } + return 15.0 + } + + /** + Calcualte the height of the textfield. + -returns: the calculated height of the textfield. Override to size the textfield with a different height + */ + open func textHeight() -> CGFloat { + guard let font = self.font else { + return 0.0 + } + + return font.lineHeight + 7.0 + } + + // MARK: - Layout + + /// Invoked when the interface builder renders the control + override open func prepareForInterfaceBuilder() { + if #available(iOS 8.0, *) { + super.prepareForInterfaceBuilder() + } + + borderStyle = .none + + isSelected = true + _renderingInInterfaceBuilder = true + updateControl(false) + invalidateIntrinsicContentSize() + } + + /// Invoked by layoutIfNeeded automatically + override open func layoutSubviews() { + super.layoutSubviews() + + titleLabel.frame = titleLabelRectForBounds(bounds, editing: isTitleVisible() || _renderingInInterfaceBuilder) + lineView.frame = lineViewRectForBounds(bounds, editing: editingOrSelected || _renderingInInterfaceBuilder) + } + + /** + Calculate the content size for auto layout + + - returns: the content size to be used for auto layout + */ + override open var intrinsicContentSize: CGSize { + return CGSize(width: bounds.size.width, height: titleHeight() + textHeight()) + } + + // MARK: - Helpers + + fileprivate func titleOrPlaceholder() -> String? { + guard let title = title ?? placeholder else { + return nil + } + return titleFormatter(title) + } + + fileprivate func selectedTitleOrTitlePlaceholder() -> String? { + guard let title = selectedTitle ?? title ?? placeholder else { + return nil + } + return titleFormatter(title) + } +} // swiftlint:disable:this file_length diff --git a/FoodApp/Pods/SkyFloatingLabelTextField/Sources/SkyFloatingLabelTextFieldWithIcon.swift b/FoodApp/Pods/SkyFloatingLabelTextField/Sources/SkyFloatingLabelTextFieldWithIcon.swift new file mode 100644 index 0000000..11881a0 --- /dev/null +++ b/FoodApp/Pods/SkyFloatingLabelTextField/Sources/SkyFloatingLabelTextFieldWithIcon.swift @@ -0,0 +1,322 @@ +// Copyright 2016-2017 Skyscanner Ltd +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in +// compliance with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software distributed under the License is +// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and limitations under the License. + +import UIKit + +/** + Identify the type of icon. + - font: Set your icon by setting the font of iconLabel + - image: Set your icon by setting the image of iconImageView + */ +public enum IconType: Int { + case font + case image +} + +/** + A beautiful and flexible textfield implementation with support for icon, title label, error message and placeholder. + */ +open class SkyFloatingLabelTextFieldWithIcon: SkyFloatingLabelTextField { + + @IBInspectable + var iconTypeValue: Int { + get { + return self.iconType.rawValue + } + + set(iconIndex) { + self.iconType = IconType(rawValue: iconIndex) ?? .font + } + } + + open var iconType: IconType = .font { + didSet { + updateIconViewHiddenState() + } + } + + /// A UIImageView value that identifies the view used to display the icon + open var iconImageView: UIImageView! + + /// A UIImage value that determines the image that the icon is using + @IBInspectable + dynamic open var iconImage: UIImage? { + didSet { + // Show a warning if setting an image while the iconType is IconType.font + if self.iconType == .font { NSLog("WARNING - Did set iconImage when the iconType is set to IconType.font. The image will not be displayed.") } // swiftlint:disable:this line_length + iconImageView?.image = iconImage + } + } + + /// A UILabel value that identifies the label used to display the icon + open var iconLabel: UILabel! + + /// A UIFont value that determines the font that the icon is using + @objc dynamic open var iconFont: UIFont? { + didSet { + iconLabel?.font = iconFont + } + } + + /// A String value that determines the text used when displaying the icon + @IBInspectable + open var iconText: String? { + didSet { + // Show a warning if setting an icon text while the iconType is IconType.image + if self.iconType == .image { NSLog("WARNING - Did set iconText when the iconType is set to IconType.image. The icon with the specified text will not be displayed.") } // swiftlint:disable:this line_length + iconLabel?.text = iconText + } + } + + /// A UIColor value that determines the color of the icon in the normal state + @IBInspectable + dynamic open var iconColor: UIColor = UIColor.gray { + didSet { + updateIconLabelColor() + } + } + + /// A UIColor value that determines the color of the icon when the control is selected + @IBInspectable + dynamic open var selectedIconColor: UIColor = UIColor.gray { + didSet { + updateIconLabelColor() + } + } + + /// A float value that determines the width of the icon + @IBInspectable + dynamic open var iconWidth: CGFloat = 20 { + didSet { + updateFrame() + } + } + + /** + A float value that determines the left margin of the icon. + Use this value to position the icon more precisely horizontally. + */ + @IBInspectable + dynamic open var iconMarginLeft: CGFloat = 4 { + didSet { + updateFrame() + } + } + + /** + A float value that determines the bottom margin of the icon. + Use this value to position the icon more precisely vertically. + */ + @IBInspectable + dynamic open var iconMarginBottom: CGFloat = 4 { + didSet { + updateFrame() + } + } + + /** + A float value that determines the rotation in degrees of the icon. + Use this value to rotate the icon in either direction. + */ + @IBInspectable + open var iconRotationDegrees: Double = 0 { + didSet { + iconLabel.transform = CGAffineTransform(rotationAngle: CGFloat(iconRotationDegrees * .pi / 180.0)) + iconImageView.transform = CGAffineTransform(rotationAngle: CGFloat(iconRotationDegrees * .pi / 180.0)) + } + } + + // MARK: Initializers + + /** + Initializes the control + - parameter type the type of icon + */ + convenience public init(frame: CGRect, iconType: IconType) { + self.init(frame: frame) + self.iconType = iconType + updateIconViewHiddenState() + } + + /** + Initializes the control + - parameter frame the frame of the control + */ + override public init(frame: CGRect) { + super.init(frame: frame) + createIcon() + updateIconViewHiddenState() + } + + /** + Intialzies the control by deserializing it + - parameter coder the object to deserialize the control from + */ + required public init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + createIcon() + updateIconViewHiddenState() + } + + // MARK: Creating the icon + + /// Creates the both icon label and icon image view + fileprivate func createIcon() { + createIconLabel() + createIconImageView() + } + + // MARK: Creating the icon label + + /// Creates the icon label + fileprivate func createIconLabel() { + let iconLabel = UILabel() + iconLabel.backgroundColor = UIColor.clear + iconLabel.textAlignment = .center + iconLabel.autoresizingMask = [.flexibleTopMargin, .flexibleRightMargin] + self.iconLabel = iconLabel + addSubview(iconLabel) + updateIconLabelColor() + } + + // MARK: Creating the icon image view + + /// Creates the icon image view + fileprivate func createIconImageView() { + let iconImageView = UIImageView() + iconImageView.backgroundColor = .clear + iconImageView.contentMode = .scaleAspectFit + iconImageView.autoresizingMask = [.flexibleTopMargin, .flexibleRightMargin] + self.iconImageView = iconImageView + addSubview(iconImageView) + } + + // MARK: Set icon hidden property + + /// Shows the corresponding icon depending on iconType property + fileprivate func updateIconViewHiddenState() { + switch iconType { + case .font: + self.iconLabel.isHidden = false + self.iconImageView.isHidden = true + case .image: + self.iconLabel.isHidden = true + self.iconImageView.isHidden = false + } + } + + // MARK: Handling the icon color + + /// Update the colors for the control. Override to customize colors. + override open func updateColors() { + super.updateColors() + updateIconLabelColor() + } + + fileprivate func updateIconLabelColor() { + if !isEnabled { + iconLabel?.textColor = disabledColor + } else if hasErrorMessage { + iconLabel?.textColor = errorColor + } else { + iconLabel?.textColor = editingOrSelected ? selectedIconColor : iconColor + } + } + + // MARK: Custom layout overrides + + /** + Calculate the bounds for the textfield component of the control. + Override to create a custom size textbox in the control. + - parameter bounds: The current bounds of the textfield component + - returns: The rectangle that the textfield component should render in + */ + override open func textRect(forBounds bounds: CGRect) -> CGRect { + var rect = super.textRect(forBounds: bounds) + if isLTRLanguage { + rect.origin.x += CGFloat(iconWidth + iconMarginLeft) + } else { + rect.origin.x -= CGFloat(iconWidth + iconMarginLeft) + } + rect.size.width -= CGFloat(iconWidth + iconMarginLeft) + return rect + } + + /** + Calculate the rectangle for the textfield when it is being edited + - parameter bounds: The current bounds of the field + - returns: The rectangle that the textfield should render in + */ + override open func editingRect(forBounds bounds: CGRect) -> CGRect { + var rect = super.editingRect(forBounds: bounds) + if isLTRLanguage { + rect.origin.x += CGFloat(iconWidth + iconMarginLeft) + } else { + // don't change the editing field X position for RTL languages + } + rect.size.width -= CGFloat(iconWidth + iconMarginLeft) + return rect + } + + /** + Calculates the bounds for the placeholder component of the control. + Override to create a custom size textbox in the control. + - parameter bounds: The current bounds of the placeholder component + - returns: The rectangle that the placeholder component should render in + */ + override open func placeholderRect(forBounds bounds: CGRect) -> CGRect { + var rect = super.placeholderRect(forBounds: bounds) + if isLTRLanguage { + rect.origin.x += CGFloat(iconWidth + iconMarginLeft) + } else { + // don't change the editing field X position for RTL languages + } + rect.size.width -= CGFloat(iconWidth + iconMarginLeft) + return rect + } + + /// Invoked by layoutIfNeeded automatically + override open func layoutSubviews() { + super.layoutSubviews() + updateFrame() + } + + fileprivate func updateFrame() { + let textWidth: CGFloat = bounds.size.width + if isLTRLanguage { + iconLabel.frame = CGRect( + x: 0, + y: bounds.size.height - textHeight() - iconMarginBottom, + width: iconWidth, + height: textHeight() + ) + iconImageView.frame = CGRect( + x: 0, + y: bounds.size.height - textHeight() - iconMarginBottom, + width: iconWidth, + height: textHeight() + ) + } else { + iconLabel.frame = CGRect( + x: textWidth - iconWidth, + y: bounds.size.height - textHeight() - iconMarginBottom, + width: iconWidth, + height: textHeight() + ) + iconImageView.frame = CGRect( + x: textWidth - iconWidth, + y: bounds.size.height - textHeight() - iconMarginBottom, + width: iconWidth, + height: textHeight() + ) + } + } +} diff --git a/FoodApp/Pods/SkyFloatingLabelTextField/Sources/UITextField+fixCaretPosition.swift b/FoodApp/Pods/SkyFloatingLabelTextField/Sources/UITextField+fixCaretPosition.swift new file mode 100644 index 0000000..22e3a2d --- /dev/null +++ b/FoodApp/Pods/SkyFloatingLabelTextField/Sources/UITextField+fixCaretPosition.swift @@ -0,0 +1,27 @@ +// Copyright 2016-2017 Skyscanner Ltd +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software distributed under the License is +// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and limitations under the License. + +// MARK: - UITextField extension + +import UIKit + +extension UITextField { + /// Moves the caret to the correct position by removing the trailing whitespace + func fixCaretPosition() { + // Moving the caret to the correct position by removing the trailing whitespace + // http://stackoverflow.com/questions/14220187/uitextfield-has-trailing-whitespace-after-securetextentry-toggle + + let beginning = beginningOfDocument + selectedTextRange = textRange(from: beginning, to: beginning) + let end = endOfDocument + selectedTextRange = textRange(from: end, to: end) + } +} diff --git a/FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID-Info.plist b/FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID-Info.plist new file mode 100644 index 0000000..532c55b --- /dev/null +++ b/FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.8.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID-dummy.m b/FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID-dummy.m new file mode 100644 index 0000000..937a03d --- /dev/null +++ b/FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_FirebaseInstanceID : NSObject +@end +@implementation PodsDummy_FirebaseInstanceID +@end diff --git a/FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID-umbrella.h b/FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID-umbrella.h new file mode 100644 index 0000000..90ba5de --- /dev/null +++ b/FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID-umbrella.h @@ -0,0 +1,18 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "FirebaseInstanceID.h" +#import "FIRInstanceID.h" + +FOUNDATION_EXPORT double FirebaseInstanceIDVersionNumber; +FOUNDATION_EXPORT const unsigned char FirebaseInstanceIDVersionString[]; + diff --git a/FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID.modulemap b/FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID.modulemap new file mode 100644 index 0000000..ff5248f --- /dev/null +++ b/FoodApp/Pods/Target Support Files/FirebaseInstanceID/FirebaseInstanceID.modulemap @@ -0,0 +1,6 @@ +framework module FirebaseInstanceID { + umbrella header "FirebaseInstanceID-umbrella.h" + + export * + module * { export * } +} diff --git a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.debug.xcconfig b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.debug.xcconfig index 07e717e..31b8865 100644 --- a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.debug.xcconfig +++ b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.debug.xcconfig @@ -1,8 +1,10 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/FirebaseInstanceID/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth/FirebaseAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase/FirebaseDatabase.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage/FirebaseStorage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library/leveldb.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAuthInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth/FirebaseAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase/FirebaseDatabase.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage/FirebaseStorage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField/SkyFloatingLabelTextField.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library/leveldb.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAuthInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"icucore" -l"sqlite3" -l"z" -framework "CFNetwork" -framework "FIRAnalyticsConnector" -framework "FirebaseAnalytics" -framework "FirebaseAuth" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseDatabase" -framework "FirebaseInstanceID" -framework "FirebaseStorage" -framework "Foundation" -framework "GTMSessionFetcher" -framework "GoogleAppMeasurement" -framework "GoogleUtilities" -framework "MobileCoreServices" -framework "SafariServices" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "leveldb" -framework "nanopb" +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"icucore" -l"sqlite3" -l"z" -framework "CFNetwork" -framework "FIRAnalyticsConnector" -framework "FirebaseAnalytics" -framework "FirebaseAuth" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseDatabase" -framework "FirebaseInstanceID" -framework "FirebaseStorage" -framework "Foundation" -framework "GTMSessionFetcher" -framework "GoogleAppMeasurement" -framework "GoogleUtilities" -framework "MobileCoreServices" -framework "SafariServices" -framework "Security" -framework "SkyFloatingLabelTextField" -framework "StoreKit" -framework "SystemConfiguration" -framework "leveldb" -framework "nanopb" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.release.xcconfig b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.release.xcconfig index 07e717e..31b8865 100644 --- a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.release.xcconfig +++ b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.release.xcconfig @@ -1,8 +1,10 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/FirebaseInstanceID/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth/FirebaseAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase/FirebaseDatabase.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage/FirebaseStorage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library/leveldb.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAuthInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth/FirebaseAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase/FirebaseDatabase.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage/FirebaseStorage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField/SkyFloatingLabelTextField.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library/leveldb.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAuthInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"icucore" -l"sqlite3" -l"z" -framework "CFNetwork" -framework "FIRAnalyticsConnector" -framework "FirebaseAnalytics" -framework "FirebaseAuth" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseDatabase" -framework "FirebaseInstanceID" -framework "FirebaseStorage" -framework "Foundation" -framework "GTMSessionFetcher" -framework "GoogleAppMeasurement" -framework "GoogleUtilities" -framework "MobileCoreServices" -framework "SafariServices" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "leveldb" -framework "nanopb" +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"icucore" -l"sqlite3" -l"z" -framework "CFNetwork" -framework "FIRAnalyticsConnector" -framework "FirebaseAnalytics" -framework "FirebaseAuth" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseDatabase" -framework "FirebaseInstanceID" -framework "FirebaseStorage" -framework "Foundation" -framework "GTMSessionFetcher" -framework "GoogleAppMeasurement" -framework "GoogleUtilities" -framework "MobileCoreServices" -framework "SafariServices" -framework "Security" -framework "SkyFloatingLabelTextField" -framework "StoreKit" -framework "SystemConfiguration" -framework "leveldb" -framework "nanopb" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-Info.plist b/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-Info.plist new file mode 100644 index 0000000..fd3425e --- /dev/null +++ b/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.6.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-dummy.m b/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-dummy.m new file mode 100644 index 0000000..b71c8f0 --- /dev/null +++ b/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_SkyFloatingLabelTextField : NSObject +@end +@implementation PodsDummy_SkyFloatingLabelTextField +@end diff --git a/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-prefix.pch b/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-umbrella.h b/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-umbrella.h new file mode 100644 index 0000000..0f18772 --- /dev/null +++ b/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double SkyFloatingLabelTextFieldVersionNumber; +FOUNDATION_EXPORT const unsigned char SkyFloatingLabelTextFieldVersionString[]; + diff --git a/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField.modulemap b/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField.modulemap new file mode 100644 index 0000000..7ac9d97 --- /dev/null +++ b/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField.modulemap @@ -0,0 +1,6 @@ +framework module SkyFloatingLabelTextField { + umbrella header "SkyFloatingLabelTextField-umbrella.h" + + export * + module * { export * } +} diff --git a/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField.xcconfig b/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField.xcconfig new file mode 100644 index 0000000..05f33eb --- /dev/null +++ b/FoodApp/Pods/Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField.xcconfig @@ -0,0 +1,9 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/SkyFloatingLabelTextField +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES From 3706ba5820c1dc3598c5005fd20023b1993e8999 Mon Sep 17 00:00:00 2001 From: gionoa Date: Sun, 31 Mar 2019 20:15:18 -0400 Subject: [PATCH 3/4] Add IQKeyboardManagerSwift --- FoodApp/FoodApp.xcodeproj/project.pbxproj | 2 + FoodApp/FoodApp/AppDelegate.swift | 3 + .../Tabs/ProfileViewController.swift | 190 +- FoodApp/FoodApp/Extensions.swift | 14 + FoodApp/Podfile | 2 +- FoodApp/Podfile.lock | 6 +- FoodApp/Pods/Manifest.lock | 6 +- FoodApp/Pods/Pods.xcodeproj/project.pbxproj | 6227 +++++++++-------- .../Pods-FoodApp-acknowledgements.markdown | 25 + .../Pods-FoodApp-acknowledgements.plist | 31 + .../Pods-FoodApp/Pods-FoodApp-frameworks.sh | 2 + 11 files changed, 3517 insertions(+), 2991 deletions(-) diff --git a/FoodApp/FoodApp.xcodeproj/project.pbxproj b/FoodApp/FoodApp.xcodeproj/project.pbxproj index 6e11374..0db6ef0 100644 --- a/FoodApp/FoodApp.xcodeproj/project.pbxproj +++ b/FoodApp/FoodApp.xcodeproj/project.pbxproj @@ -281,6 +281,7 @@ "${PODS_ROOT}/Target Support Files/Pods-FoodApp/Pods-FoodApp-frameworks.sh", "${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework", "${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework", + "${BUILT_PRODUCTS_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework", "${BUILT_PRODUCTS_DIR}/SkyFloatingLabelTextField/SkyFloatingLabelTextField.framework", "${BUILT_PRODUCTS_DIR}/leveldb-library/leveldb.framework", "${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework", @@ -291,6 +292,7 @@ outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManagerSwift.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SkyFloatingLabelTextField.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/leveldb.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework", diff --git a/FoodApp/FoodApp/AppDelegate.swift b/FoodApp/FoodApp/AppDelegate.swift index f3f1b77..aa2b650 100644 --- a/FoodApp/FoodApp/AppDelegate.swift +++ b/FoodApp/FoodApp/AppDelegate.swift @@ -8,6 +8,7 @@ import UIKit import Firebase +import IQKeyboardManagerSwift @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { @@ -22,6 +23,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { window?.rootViewController = LoginViewController() window?.makeKeyAndVisible() + IQKeyboardManager.shared.enable = true + return true } diff --git a/FoodApp/FoodApp/Controllers/Tabs/ProfileViewController.swift b/FoodApp/FoodApp/Controllers/Tabs/ProfileViewController.swift index f570562..962ce5f 100644 --- a/FoodApp/FoodApp/Controllers/Tabs/ProfileViewController.swift +++ b/FoodApp/FoodApp/Controllers/Tabs/ProfileViewController.swift @@ -13,81 +13,106 @@ class ProfileViewController: UIViewController { // MARK: Variables private lazy var profileImageView: UIImageView = { - let image = UIImageView() - image.translatesAutoresizingMaskIntoConstraints = false - image.contentMode = .scaleAspectFit - image.image = #imageLiteral(resourceName: "woman") - return image + let imageView = UIImageView() + imageView.translatesAutoresizingMaskIntoConstraints = false + imageView.contentMode = .scaleAspectFit +// let image = UIImage(named: "woman")! +// imageView.maskCircle(anyImage: image) + imageView.image = #imageLiteral(resourceName: "woman") +// imageView.layer.cornerRadius = (imageView.frame.size.width / 2).rounded() +// imageView.clipsToBounds = true + + return imageView }() // MARK: Label Names - private lazy var firstNameLabel: UILabel = { - let label = UILabel() - label.text = "First Name" - label.textColor = .lightGray - return label - }() - - private lazy var lastNameLabel: UILabel = { - let label = UILabel() - label.text = "Last Name" - label.textColor = .lightGray - return label + private lazy var firstNameTextField: SkyFloatingLabelTextField = { + let sky = SkyFloatingLabelTextField() + sky.textColor = UIColor.darkGray + sky.placeholder = "First Name" + sky.text = "Michael" + sky.title = "First Name" + sky.placeholderColor = .lightGray + sky.titleColor = .customOrange + sky.lineColor = .darkGray + sky.selectedLineColor = .customOrange + sky.selectedTitleColor = .customOrange + return sky }() - private lazy var userNameLabel: UILabel = { - let label = UILabel() - label.text = "Username" - label.textColor = .lightGray - return label + private lazy var lastNameTextField: SkyFloatingLabelTextField = { + let textField = SkyFloatingLabelTextField() + textField.textColor = UIColor.darkGray + textField.placeholder = "First Name" + textField.text = "Scott" + textField.title = "Last Name" + textField.placeholderColor = .lightGray + textField.titleColor = .customOrange + textField.lineColor = .darkGray + textField.selectedLineColor = .customOrange + textField.selectedTitleColor = .customOrange + return textField }() - private lazy var emailLabel: UILabel = { - let label = UILabel() - label.text = "Email" - label.textColor = .lightGray - return label + private lazy var emailTextField: SkyFloatingLabelTextField = { + let textField = SkyFloatingLabelTextField() + textField.textColor = UIColor.darkGray + textField.adjustsFontSizeToFitWidth = true + textField.placeholder = "Email" + textField.text = "MikeScott@dundermifflin.com" + textField.title = "Email" + textField.placeholderColor = .lightGray + textField.titleColor = .customOrange + textField.lineColor = .darkGray + textField.selectedLineColor = .customOrange + textField.selectedTitleColor = .customOrange + return textField }() - // MARK: Label Values - var firstNameValueLabel: UILabel = { - let label = UILabel() - label.text = "Michael" - return label + private lazy var addressTextField: SkyFloatingLabelTextField = { + let textField = SkyFloatingLabelTextField() + textField.textColor = UIColor.darkGray + textField.adjustsFontSizeToFitWidth = true + textField.placeholder = "Address" + textField.text = "11200 SW 8th St, Miami, FL 33199" + textField.title = "Address" + textField.placeholderColor = .lightGray + textField.titleColor = .customOrange + textField.lineColor = .darkGray + textField.selectedLineColor = .customOrange + textField.selectedTitleColor = .customOrange + return textField }() - var lastNameValueLabel: UILabel = { - let label = UILabel() - label.text = "Scott" - return label + private lazy var passwordTextField: SkyFloatingLabelTextField = { + let textField = SkyFloatingLabelTextField() + textField.isSecureTextEntry = true + textField.textColor = UIColor.darkGray + textField.adjustsFontSizeToFitWidth = true + textField.placeholder = "Password" + textField.text = "" + textField.title = "Password" + textField.placeholderColor = .lightGray + textField.titleColor = .customOrange + textField.lineColor = .darkGray + textField.selectedLineColor = .customOrange + textField.selectedTitleColor = .customOrange + return textField }() - var emailValueLabel: UILabel = { - let label = UILabel() - label.text = "me@you.com" - return label + private lazy var saveButton: UIButton = { + let button = UIButton() + button.translatesAutoresizingMaskIntoConstraints = false + button.backgroundColor = .customOrange + button.setTitleColor(.white, for: .normal) + button.layer.cornerRadius = 25 + button.setTitle("Save Changes", for: .normal) + button.addTarget(self, action: #selector(saveButtonTapped(_:)), for: .touchUpInside) + return button }() - var userNameValueLabel: UILabel = { - let label = UILabel() - label.text = "MikeScott1024" - return label - }() - - // MARK: Label StackViews - private lazy var leftStackView: UIStackView = { - let stackView = UIStackView(arrangedSubviews: [firstNameLabel, lastNameLabel, userNameLabel, emailLabel]) - stackView.translatesAutoresizingMaskIntoConstraints = false - stackView.axis = .vertical - stackView.alignment = .trailing - stackView.distribution = .fillEqually - stackView.spacing = 32 - - return stackView - }() - - private lazy var rightStackView: UIStackView = { - let stackView = UIStackView(arrangedSubviews: [firstNameValueLabel, lastNameValueLabel, emailValueLabel, userNameValueLabel]) + private lazy var stackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [firstNameTextField, lastNameTextField, emailTextField, addressTextField, passwordTextField]) stackView.translatesAutoresizingMaskIntoConstraints = false stackView.axis = .vertical stackView.alignment = .leading @@ -111,33 +136,60 @@ class ProfileViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() + firstNameTextField.delegate = self + lastNameTextField.delegate = self + emailTextField.delegate = self + addressTextField.delegate = self + passwordTextField.delegate = self setupUI() } + // address email pw + // MARK: Setup func setupUI() { view.backgroundColor = .white view.addSubview(profileImageView) - view.addSubview(leftStackView) - view.addSubview(rightStackView) + view.addSubview(stackView) + view.addSubview(saveButton) let safeArea = view.safeAreaLayoutGuide view.addConstraints([ //firstNameLabel.heightAnchor.constraint(equalToConstant: 30), //profileImageView.heightAnchor.constraint(equalToConstant: (view.bounds.height / 4).rounded()), + firstNameTextField.heightAnchor.constraint(equalToConstant: 55), + firstNameTextField.widthAnchor.constraint(equalToConstant: 230), + lastNameTextField.heightAnchor.constraint(equalToConstant: 55), + lastNameTextField.widthAnchor.constraint(equalToConstant: 230), + emailTextField.heightAnchor.constraint(equalToConstant: 55), + emailTextField.widthAnchor.constraint(equalToConstant: 230), + passwordTextField.heightAnchor.constraint(equalToConstant: 55), + passwordTextField.widthAnchor.constraint(equalToConstant: 230), + addressTextField.heightAnchor.constraint(equalToConstant: 55), + addressTextField.widthAnchor.constraint(equalToConstant: 230), profileImageView.topAnchor.constraint(equalTo: safeArea.topAnchor, constant: 24), profileImageView.leadingAnchor.constraint(greaterThanOrEqualTo: safeArea.leadingAnchor), profileImageView.trailingAnchor.constraint(lessThanOrEqualTo: safeArea.trailingAnchor), profileImageView.centerXAnchor.constraint(equalTo: safeArea.centerXAnchor), profileImageView.heightAnchor.constraint(equalToConstant: 100), - - leftStackView.topAnchor.constraint(equalTo: profileImageView.bottomAnchor, constant: 48), - leftStackView.leadingAnchor.constraint(equalTo: safeArea.leadingAnchor), - leftStackView.widthAnchor.constraint(equalToConstant: ((UIScreen.main.bounds.width / 2) - 8).rounded()), - rightStackView.topAnchor.constraint(equalTo: leftStackView.topAnchor), - rightStackView.leadingAnchor.constraint(equalTo: leftStackView.trailingAnchor, constant: 16), - rightStackView.widthAnchor.constraint(equalTo: leftStackView.widthAnchor) + stackView.topAnchor.constraint(equalTo: profileImageView.bottomAnchor, constant: 16), + stackView.centerXAnchor.constraint(equalTo: view.centerXAnchor), + saveButton.centerXAnchor.constraint(equalTo: view.centerXAnchor), + saveButton.topAnchor.constraint(equalTo: stackView.bottomAnchor, constant: 24), + saveButton.heightAnchor.constraint(equalToConstant: 50), + saveButton.widthAnchor.constraint(equalToConstant: 140) ]) } + + @objc func saveButtonTapped(_ sender: UIButton) { + + } +} + +extension ProfileViewController: UITextFieldDelegate { + func textFieldShouldReturn(_ textField: UITextField) -> Bool { + textField.resignFirstResponder() + return true + } } diff --git a/FoodApp/FoodApp/Extensions.swift b/FoodApp/FoodApp/Extensions.swift index 662a6d0..2ef0d3a 100644 --- a/FoodApp/FoodApp/Extensions.swift +++ b/FoodApp/FoodApp/Extensions.swift @@ -26,3 +26,17 @@ extension UIView { layer.add(animation, forKey: CATransitionType.fade.rawValue) } } + +extension UIImageView { + public func maskCircle(anyImage: UIImage) { + self.contentMode = UIView.ContentMode.scaleAspectFill + self.layer.cornerRadius = self.frame.height / 2 + self.layer.masksToBounds = false + self.clipsToBounds = true + + // make square(* must to make circle), + // resize(reduce the kilobyte) and + // fix rotation. + self.image = anyImage + } +} diff --git a/FoodApp/Podfile b/FoodApp/Podfile index 1801c51..1635acc 100644 --- a/FoodApp/Podfile +++ b/FoodApp/Podfile @@ -10,5 +10,5 @@ target 'FoodApp' do pod 'Firebase/Database' pod 'Firebase/Storage' pod 'SkyFloatingLabelTextField', '~> 3.0' - + pod 'IQKeyboardManagerSwift' end diff --git a/FoodApp/Podfile.lock b/FoodApp/Podfile.lock index 11a19dc..69fd916 100644 --- a/FoodApp/Podfile.lock +++ b/FoodApp/Podfile.lock @@ -68,6 +68,7 @@ PODS: - GoogleUtilities/UserDefaults (5.5.0): - GoogleUtilities/Logger - GTMSessionFetcher/Core (1.2.1) + - IQKeyboardManagerSwift (6.2.0) - leveldb-library (1.20) - nanopb (0.3.901): - nanopb/decode (= 0.3.901) @@ -81,6 +82,7 @@ DEPENDENCIES: - Firebase/Core - Firebase/Database - Firebase/Storage + - IQKeyboardManagerSwift - SkyFloatingLabelTextField (~> 3.0) SPEC REPOS: @@ -96,6 +98,7 @@ SPEC REPOS: - GoogleAppMeasurement - GoogleUtilities - GTMSessionFetcher + - IQKeyboardManagerSwift - leveldb-library - nanopb - SkyFloatingLabelTextField @@ -112,10 +115,11 @@ SPEC CHECKSUMS: GoogleAppMeasurement: 1624046ab1bcc5e170061a56ef5679000b079c8e GoogleUtilities: 6481e6318c5fcabaaa8513ef8120f329055d7c10 GTMSessionFetcher: 32aeca0aa144acea523e1c8e053089dec2cb98ca + IQKeyboardManagerSwift: b07ccf9d8cafe993dcd6cb794eb4ba34611a0c4e leveldb-library: 08cba283675b7ed2d99629a4bc5fd052cd2bb6a5 nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48 SkyFloatingLabelTextField: 38164979b79512f9ff9288ad8acfc4bbf5d843e3 -PODFILE CHECKSUM: d5fdd16e492459ecedf3a73304afdd6e5686985f +PODFILE CHECKSUM: 636c9f31fee5c31fe1fccef2d2de58282750fd4a COCOAPODS: 1.6.1 diff --git a/FoodApp/Pods/Manifest.lock b/FoodApp/Pods/Manifest.lock index 11a19dc..69fd916 100644 --- a/FoodApp/Pods/Manifest.lock +++ b/FoodApp/Pods/Manifest.lock @@ -68,6 +68,7 @@ PODS: - GoogleUtilities/UserDefaults (5.5.0): - GoogleUtilities/Logger - GTMSessionFetcher/Core (1.2.1) + - IQKeyboardManagerSwift (6.2.0) - leveldb-library (1.20) - nanopb (0.3.901): - nanopb/decode (= 0.3.901) @@ -81,6 +82,7 @@ DEPENDENCIES: - Firebase/Core - Firebase/Database - Firebase/Storage + - IQKeyboardManagerSwift - SkyFloatingLabelTextField (~> 3.0) SPEC REPOS: @@ -96,6 +98,7 @@ SPEC REPOS: - GoogleAppMeasurement - GoogleUtilities - GTMSessionFetcher + - IQKeyboardManagerSwift - leveldb-library - nanopb - SkyFloatingLabelTextField @@ -112,10 +115,11 @@ SPEC CHECKSUMS: GoogleAppMeasurement: 1624046ab1bcc5e170061a56ef5679000b079c8e GoogleUtilities: 6481e6318c5fcabaaa8513ef8120f329055d7c10 GTMSessionFetcher: 32aeca0aa144acea523e1c8e053089dec2cb98ca + IQKeyboardManagerSwift: b07ccf9d8cafe993dcd6cb794eb4ba34611a0c4e leveldb-library: 08cba283675b7ed2d99629a4bc5fd052cd2bb6a5 nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48 SkyFloatingLabelTextField: 38164979b79512f9ff9288ad8acfc4bbf5d843e3 -PODFILE CHECKSUM: d5fdd16e492459ecedf3a73304afdd6e5686985f +PODFILE CHECKSUM: 636c9f31fee5c31fe1fccef2d2de58282750fd4a COCOAPODS: 1.6.1 diff --git a/FoodApp/Pods/Pods.xcodeproj/project.pbxproj b/FoodApp/Pods/Pods.xcodeproj/project.pbxproj index 8387b20..090f442 100644 --- a/FoodApp/Pods/Pods.xcodeproj/project.pbxproj +++ b/FoodApp/Pods/Pods.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 50; objects = { /* Begin PBXAggregateTarget section */ @@ -20,7 +20,6 @@ 924026B6437C673D5EE3CA3EC4EC3586 /* PBXTargetDependency */, ); name = FirebaseAnalytics; - productName = FirebaseAnalytics; }; 73232C6842ACAD87468B6393BA47375D /* FirebaseAuthInterop */ = { isa = PBXAggregateTarget; @@ -30,7 +29,6 @@ dependencies = ( ); name = FirebaseAuthInterop; - productName = FirebaseAuthInterop; }; C3725C4190F8BB9B0A36BCC488FEA7B4 /* GoogleAppMeasurement */ = { isa = PBXAggregateTarget; @@ -42,7 +40,6 @@ B7DF11369A11E020B6B683022F768132 /* PBXTargetDependency */, ); name = GoogleAppMeasurement; - productName = GoogleAppMeasurement; }; F2F10A8592399CCF0019051EDD0689D9 /* Firebase */ = { isa = PBXAggregateTarget; @@ -57,781 +54,796 @@ A93CCEE77F73CC7BDAB79CCAD3859E4F /* PBXTargetDependency */, ); name = Firebase; - productName = Firebase; }; /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 003748EC9CF0474FC696D0FE4424082C /* FIRAuthURLPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = E7FCA4F0BD4046768D82ED3714E590B6 /* FIRAuthURLPresenter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 00538455989DDE7CEFD39DD103A3F5E7 /* FIRComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = A160366642204F7D0E485CEE01F19A5F /* FIRComponent.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 00993EB25ADD1BC88972DCA55787B26F /* FIRRetryHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AFDC02BCDBA729386A95450D9B0277D /* FIRRetryHelper.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 00FB888139A8064D77D6823F32454837 /* FTupleObjectNode.h in Headers */ = {isa = PBXBuildFile; fileRef = B7AC0449F1AC4A52DC8070915CFF4F2F /* FTupleObjectNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 01264DBE8C36E54D36BB86C92F091E8C /* GULOriginalIMPConvenienceMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = E0B1179FF09583A05F46D4164B6B4033 /* GULOriginalIMPConvenienceMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 013CF28D98E0BD92843096F716CA4AE3 /* FIRInstanceIDKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 72FF4C25C9781B5916125685B2B0D670 /* FIRInstanceIDKeychain.m */; }; - 016EC1DF1EB569238E3A5B902046A200 /* FIRInstanceIDCheckinStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 0283496AFD6FABCDC6FBCB6F333D6491 /* FIRInstanceIDCheckinStore.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 01EFE432FEE88E7E8CDD9776427C35EB /* GoogleUtilities-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D7A4F1C6986110DFEE9B25914D9108FC /* GoogleUtilities-dummy.m */; }; - 02223BDECACA315D885271331525134B /* FQuerySpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C41A9B4D0EBE871057D6EAE99567F9C /* FQuerySpec.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 023BCC02784B09E39B96E0F54BD49680 /* FParsedUrl.h in Headers */ = {isa = PBXBuildFile; fileRef = 450515881F12A8F340FAD4F2DDC44A1A /* FParsedUrl.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0288F18351C14CCF55A10A69CDA31B2F /* FIRAuthAppDelegateProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 432F187F2407D612AC1926BF93610DA8 /* FIRAuthAppDelegateProxy.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0313BDAAEB9B463B1AD868DE79C91D08 /* FIRAuthRPCRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A47F76D6B9AD3BB9A2FB8C8C3B1141F7 /* FIRAuthRPCRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 04103C948FA0694763859A28043D3365 /* FIRGitHubAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 102C8829BE2DF1899095878C8AA8F632 /* FIRGitHubAuthCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0443BF8C16E5A7DDD435F62BDB215C63 /* FIRVerifyAssertionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 7289445B04801259D57D61C0A09D359D /* FIRVerifyAssertionResponse.m */; }; - 04696D90FE01EF0E9210592230DBCDAF /* FIRGitHubAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 291FE3E17348A450097864F119F7E4E7 /* FIRGitHubAuthCredential.m */; }; - 04F7B152EC0E86E810A34D14D0B94FE9 /* FIRAppInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = C300267F62DE4EE2F00927D64648EAE8 /* FIRAppInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 05EB0F77875EABC2062F15DBD8770024 /* FIRInstanceID+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = CD07256A490D512F53ED67B1555D0150 /* FIRInstanceID+Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 060FED725831C504CEBD7CBAAEBCE2FE /* format.cc in Sources */ = {isa = PBXBuildFile; fileRef = 429628FD6B8399FA948693B4465FD784 /* format.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 0637DAB597B484E233CD073CFD35950E /* FTupleCallbackStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = D7F61CF01177A73ACCB2BB4BB1759117 /* FTupleCallbackStatus.m */; }; - 066C63F45130CCC65051CC4B16EAD145 /* FIRInstanceIDAuthKeyChain.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EA701869574D9D4D27B2574F3B485A7 /* FIRInstanceIDAuthKeyChain.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 071CE5225DFDC3E2C6E6D6A9EDDEC819 /* FIRStorageComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DFD501B0E36E3ED96454C3D6909AA37 /* FIRStorageComponent.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 072603CD7BA3C516FF8B056675226156 /* FViewProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 559E04D19C518EDB9FC95ECC98B51CCB /* FViewProcessor.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0736D19A879FB3C57D1131D2FD7D1585 /* FIRAuthTokenResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B8B40409B5A14D715A1D81C5458966 /* FIRAuthTokenResult.m */; }; - 07D2E59E66AFC1E3D57C7845BC0336C8 /* FIRDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B2D677633CA1CC059A449C8537E719 /* FIRDatabase.m */; }; - 0822EA61B997AB0A06E811D0BDF7A537 /* FIRInstanceIDVersionUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = FAE542D691EE089E363E57016A391AA5 /* FIRInstanceIDVersionUtilities.m */; }; - 0841CBF94EE2D5EB2A4BF7C1A1B7E66F /* FirebaseStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 755A35D882ADF037EF156A4CCD605D75 /* FirebaseStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 08444FDCC1B2CAEE6F77D33B2D84B62F /* FIRDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BD90375FF9D3C69DB1CFC3C9AF0CD1F /* FIRDatabase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 089CDBEFE6758D3F203D217BF5FE223B /* FIRSetAccountInfoRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = DB711F58CA9FBB0C7AC9808EAB23CD6C /* FIRSetAccountInfoRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 08E12EB2FD09DDC6CA04B4F0EC9D924D /* FIRAuthSerialTaskQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 724B6D543445B74C7A14B47EDCF8F78D /* FIRAuthSerialTaskQueue.m */; }; - 09ED6F9A84ED29E6AE8AC6C1DA7D87FA /* version_edit.h in Headers */ = {isa = PBXBuildFile; fileRef = 288D551F2BC828C4B6142F138901B9B0 /* version_edit.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0A1B4A5737ADBCE0E1A84AB04B00B51C /* hash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 0ED5BC2EF88081583C4E15A8444B903F /* hash.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 0A343387CFA200DD80A18240AC28E2A0 /* GULNetworkConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C703EAFCA972CD73B821E43C32DD817 /* GULNetworkConstants.m */; }; - 0A4D6951A2F225B35177A743CE1AD839 /* FConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F5F6E90A8F01BBC2575E3EAE8717E9F /* FConstants.m */; }; - 0A7D3EEF4F06DF998ABF28BF3601EDF1 /* FIRStorageUpdateMetadataTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 86A65C60D39B9BFD68CD5EAEF8C81D54 /* FIRStorageUpdateMetadataTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0ACF5D8F4249D89C64656BA1AAE8ED95 /* GTMSessionFetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D8A312264F5BBE10E809F7656F1AD078 /* GTMSessionFetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B99623B0BE10BBDCEE44BD21E599D53 /* testharness.h in Headers */ = {isa = PBXBuildFile; fileRef = 5710715A6AACECF57B21EFC971B59C87 /* testharness.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0C1FBD2444E36BA7E4673041B9B1747D /* FIRAuthWebView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3140E387E11BF2A87D6EBC35BE462CEE /* FIRAuthWebView.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0D39AF0BA7A35B30C79B85EFC9388C88 /* FIRAuthGlobalWorkQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = C0738815911609F860A0040EFB412853 /* FIRAuthGlobalWorkQueue.m */; }; - 0D6CF356E7562970D0662BC77688C28F /* FListenProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = D90FC4D7DD0D5832C4AB2B3AEB4A4419 /* FListenProvider.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0D847EE96901A0F5E02E38C515E70274 /* FSnapshotHolder.h in Headers */ = {isa = PBXBuildFile; fileRef = CDE61BF950EF6591C4A5B332BC379CE5 /* FSnapshotHolder.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0E5A80BE67C47CE206C8BD5F8B0E5B99 /* FIRVerifyPasswordResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 59828102FCF314A76AF38010D8F92B98 /* FIRVerifyPasswordResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0EAC83CA6E15357FF3AE9C7E9827259F /* FEventRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = 394646F176BB5B7F31EE1306F4ECD676 /* FEventRegistration.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0F12F454B18BC9B025ADC7FC1D721106 /* FIRStorageGetDownloadURLTask.h in Headers */ = {isa = PBXBuildFile; fileRef = C04126C0A7D2A3EA824F859DE0B01532 /* FIRStorageGetDownloadURLTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0F1822F21B380B13B582E1B467D45045 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */; }; - 0FE49583E7CD931E08CB6FA7560C1265 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */; }; - 11A92F3A00A570EFE8C08E5CC793230F /* FirebaseCore-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CB06D80565B3F13525AE067BE79D5E5B /* FirebaseCore-dummy.m */; }; - 11A9DA11A4241A0F3DD8B13579554685 /* FAuthTokenProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D0DEADB4CF00FAD792DAF51354BADB4 /* FAuthTokenProvider.m */; }; - 11DA92E68C79E89D636E2A7FD58E31D1 /* FIndexedNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A678ACB65E722A9E22EE14ACFB6FF42 /* FIndexedNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 12CE0CC274F5E2985E39BD821AE68A37 /* log_reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 552CA76DD960E7EF0D64D3FED5113F04 /* log_reader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 131BA7F7D540849DB7DB2F7AAEC051CA /* FIRTwitterAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E98048E79C4D70E625E3E706B3537F6 /* FIRTwitterAuthCredential.m */; }; - 13B7C737EB5E5889A2A9F2AC9A0F189C /* FConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = EB38BD92EE246F087E4AD72812F841EF /* FConnection.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 140325A0DBC84BAEDDAC206F58295DA7 /* FIRTransactionResult_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C9349FBBB83E4BCEBEB8EF8968E49EC6 /* FIRTransactionResult_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 14A3AC5A0847A1C425B56714D8E63FC4 /* FIRAuthURLPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C49E36A0B879CF5408B740217074768 /* FIRAuthURLPresenter.m */; }; - 14A632DD6A784419B54B09939C7991B5 /* nanopb-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0616470F6D0E026F6594009732EC068D /* nanopb-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14B0A7D47884C7315900EF697300BC0B /* logging.h in Headers */ = {isa = PBXBuildFile; fileRef = 30AFDBDCD2ADDD1487E0FE6F8CB6C197 /* logging.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 14E1DD238F16269373A63BBF16BBE6B9 /* FIRAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = A15540E320476727C58633F8BDF310DE /* FIRAuthCredential.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 15A5E7B32986E1C589C02A1EB4A338E9 /* FCachePolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = A1B17C847E98CDDA439AFEFFFA4907A4 /* FCachePolicy.m */; }; - 15DB3011E942C36FE6D2AFC501FFF003 /* FIRStorageTaskSnapshot_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F82EABC1DAA7EA471B8C8AB7DE31B96 /* FIRStorageTaskSnapshot_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 168F38AFAC60BD370AA12458B43DAFE7 /* FChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 5426627213EB16EC17B75434562D58BF /* FChange.m */; }; - 16D9D6516DBE3AEECD90BC81A35DD01D /* FImmutableSortedSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 95AFD0B2A1708F278DBA55B9DB2EAA60 /* FImmutableSortedSet.m */; }; - 1724FAD6F1D2374064E2592A804C6A67 /* FIRFederatedAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 11D557311BC56E727F596A91F344DC09 /* FIRFederatedAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 176BD1508845514498865DF8B9BE5A2F /* GULLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A0DEFBE10B18D143EEB4944BA972AA3 /* GULLogger.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 18E21B860CD8F6E4F1178D4C4479BD9B /* FIRInstanceID.m in Sources */ = {isa = PBXBuildFile; fileRef = B84487D3C626B10A1D3DB230108D4462 /* FIRInstanceID.m */; }; - 18F193867D682B55C13581C24A315185 /* FTupleSetIdPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A4280A8DC60CB88F1289DD8735B6600 /* FTupleSetIdPath.m */; }; - 193306056B64FD04F33E7410A1C55472 /* FAckUserWrite.h in Headers */ = {isa = PBXBuildFile; fileRef = F47DD68A34B513617CFAC026AC6A88C8 /* FAckUserWrite.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1935F50784E3953A95EDF410C59FB5EF /* FIRSecureTokenResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E94A847AAF36725558D13D154A5573E /* FIRSecureTokenResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1961E7EBC167CDDFC82BCAE1C103B127 /* FIRInstanceIDTokenInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BF5F99257E9796E34DF71888809822A /* FIRInstanceIDTokenInfo.m */; }; - 19C32F6495352EE4D203E336EB690331 /* FWriteTreeRef.m in Sources */ = {isa = PBXBuildFile; fileRef = E9E8C3896AEAF09DB1EA0D209D696446 /* FWriteTreeRef.m */; }; - 19EFF8BD8F765BA2522242C48FA0563A /* histogram.h in Headers */ = {isa = PBXBuildFile; fileRef = 11A9F6F3EB1A14BF4FCDE1BE6766143C /* histogram.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1A5D176C4E7ADED5DFD2F99282EB081B /* FIRComponentContainerInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 71D749C54BB49BF9DA520FF68FACC23F /* FIRComponentContainerInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 1AEF1FA45610CF68EDDBE879975C1A7A /* NSData+SRB64Additions.h in Headers */ = {isa = PBXBuildFile; fileRef = D78AABF08C18A87B8429428E8F12DBB6 /* NSData+SRB64Additions.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1BA88667AE641EBDC229493782A8153C /* FNamedNode.m in Sources */ = {isa = PBXBuildFile; fileRef = FDC73D637C87904FBE5BE383FCD3DB10 /* FNamedNode.m */; }; - 1BE4741DE3B682087E96D06A92255E48 /* FWebSocketConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 63378BB17B99EFB9E779233D8E9815A3 /* FWebSocketConnection.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1BFBC27273DF36504A326319BD2D53E8 /* log_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8AA7A7BB1ADF6CCB1592E64A53DB1C62 /* log_reader.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 1C2F5B98D0AA7A3A0A1994E08F4E5818 /* FTuplePathValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E51481E3FFCBF81DFDD4952E6FABF63 /* FTuplePathValue.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1C45C611BB2C286C85A5DF3E30A1CF8F /* FIRAuthAPNSToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 14B1D625056F7F756EB32E0B066455CA /* FIRAuthAPNSToken.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1C5A1195B812E454F88147F135C5448A /* FIRInstanceIDConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 29EB50AC0367C40F0A0A72F72D8C8E68 /* FIRInstanceIDConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1C695D4C2FEC9AE275444B3B4F62CC68 /* bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 2F92434E6CBF763A6981A36DCF3C6CBA /* bloom.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 1CAADED4E504DA56DD2CF07A56004DF4 /* FIRDataEventType.h in Headers */ = {isa = PBXBuildFile; fileRef = 582D206D216C3F6AF9D42F4F9E5B38C4 /* FIRDataEventType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1CD506966DAB9FDC888EB5C28B581AA8 /* NSData+SRB64Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = FAF2426168EE844086BC8235C391A76F /* NSData+SRB64Additions.m */; }; - 1D94D2E61D1520AADB12C75A15F4D67E /* FWebSocketConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 747FC211F893CF80A4E0F16A3C1D0352 /* FWebSocketConnection.m */; }; - 1DB62155AA6B2D694B91E341F9D5A586 /* FIRAuth_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 19239311F709F916D061C98FD9612DAE /* FIRAuth_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1DD7A712624B36B520868C2F5CF084D7 /* pb_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = FF1F339425A43481A7287BA1FF760EF1 /* pb_decode.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc"; }; }; - 1E21593CE6DDB6891574367E1F2A1884 /* FIRDataSnapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = C3E860857F9EB54581E1BB74834F180D /* FIRDataSnapshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E81EEC066F224C151386FFE9E1255C7 /* FChildEventRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 4190DD03B831235A771E7B0942BDC4A9 /* FChildEventRegistration.m */; }; - 1E83B7BA2A16549891CCC67626FB3864 /* FMaxNode.m in Sources */ = {isa = PBXBuildFile; fileRef = AC39AED3931D2FB2C7BCCB4DBC9D1834 /* FMaxNode.m */; }; - 1E97C11CD7CF619E1FA8AC140A872EE7 /* FIRInstanceIDTokenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E4C3A1BADA586422F641630526217F /* FIRInstanceIDTokenManager.m */; }; - 1EFA9DA2A57699C29FD44C47D3FB1791 /* FRepoInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E43181967F5EB964226B6C853F54CA4 /* FRepoInfo.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1F6001FBFB22E04BA7D1810D15EE57CB /* FIRSignUpNewUserResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B43B3A7599ED9B6D5F543DB197466C /* FIRSignUpNewUserResponse.m */; }; - 202F59EAF214D6481785BFC9B900FC2F /* APLevelDB.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7C297F0C85A8E58477CB204FE422003A /* APLevelDB.mm */; }; - 20C3ED32DF36559C18B783775D7F22AA /* GULNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = FF5807D8A4FB9B0F77206CFA7C25B943 /* GULNetwork.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 20E8139EAA640D3010E39B52FFE304A2 /* FIRSignInWithGameCenterRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D8B22D589B5AF318906C6F661D003091 /* FIRSignInWithGameCenterRequest.m */; }; - 21A11E68A63DDCB8EDD455C7A4A1478B /* FIRAuthDataResult_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F34169A7B7AAB056684317D2289318D3 /* FIRAuthDataResult_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 21A299807B8E207AEC9AF11B1ADFD93D /* FirebaseInstanceID-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 741C70BFEE85752ED0A32E46C8FED240 /* FirebaseInstanceID-dummy.m */; }; - 221FA33E34EB353A3E7FC0DF43A636C2 /* FIRAuthDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = EB7B05DE65A6CF0E021125602B9090AE /* FIRAuthDispatcher.m */; }; - 2378185C0BEFF3BCA2E9DD62DF69F39C /* FIRAuthSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = 41260A8CFC476497E72E2C7591DD7574 /* FIRAuthSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 23894F9A5E5CC7E50511DA805D992269 /* FPendingPut.h in Headers */ = {isa = PBXBuildFile; fileRef = 886892B767D8D353FE5F588C4729175C /* FPendingPut.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 23E3CCD4087480E22499A1813FEBB4B5 /* FPathIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = F2B934C6C67272D8FA115AF50D08AAF4 /* FPathIndex.m */; }; - 23F6AAD1F541162311836C3641C9CE58 /* FIRGetAccountInfoResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = CBDCA9718B784D740DB3648DC8DC2D1B /* FIRGetAccountInfoResponse.m */; }; - 242879A67B798102049221A6D873FF85 /* FIREmailAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A6F7323B4A8CD7354C6E703CDCE8453 /* FIREmailAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 24822EE154C3C16B59CE6B3CF782CA54 /* version_set.h in Headers */ = {isa = PBXBuildFile; fileRef = 93143D7AC74AFDCAB18774F95C87F1EF /* version_set.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 24852E31F05E897BFC5BD1171EC809D1 /* env_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1CB28B86C0A673441E2D7834FF2F232E /* env_posix.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 24CA987846529821854FDFCA057BEB16 /* FViewProcessorResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DF894F4C1A239B83FCFB1075389DF9D /* FViewProcessorResult.m */; }; - 2507AA28721C3B96A24B3FF51885B2A3 /* FIRStorageConstants_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = CCD6A79550150E407A109F599DCFCD0F /* FIRStorageConstants_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 25B49D9573879EC2C29CE3D86138EE75 /* APLevelDB.h in Headers */ = {isa = PBXBuildFile; fileRef = 03E94D7319CBD1F09F2DAD9D00AD754C /* APLevelDB.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 25F5148579524C9876FFCFEAB5FC0E71 /* FIRStorageGetMetadataTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A176C459355061F4D6BFD03405273D8 /* FIRStorageGetMetadataTask.m */; }; - 260276C5CA15CC85A077C060B43B403D /* FChildrenNode.h in Headers */ = {isa = PBXBuildFile; fileRef = DD465CAEA3B10A4D75BA92FECF4B2B96 /* FChildrenNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 26ADE3A89DA19F0808A38736F9F08346 /* FIRInstanceIDTokenDeleteOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8901E8699A16F623E66B96C94B8A2B89 /* FIRInstanceIDTokenDeleteOperation.m */; }; - 26CF0BCD6CF25407A75932A3E19940B4 /* FKeepSyncedEventRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = F5A9821F9F3900DDEA4F99B86AAA5F81 /* FKeepSyncedEventRegistration.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 273048859FAF9772FB9C843FC3FD3A77 /* FDataEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A59245D789E7EBEB993FB8A585AEB98 /* FDataEvent.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 27CEA7B12B85A3E3755E8423A12B3835 /* table_cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4E3628BD922E252A7EE129FE06583EA4 /* table_cache.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 281993D6AE583B3BF814E493DB271409 /* FLeafNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D73913E36A92B1AFE64A3EE643F64436 /* FLeafNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 28225837CBD91EDA7253E5D08517B427 /* FIRUserInfoImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 95DA6531C023E7175A3208301501809B /* FIRUserInfoImpl.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 28C299F0E7A866D624856C4213C3263F /* FTypedefs.h in Headers */ = {isa = PBXBuildFile; fileRef = E41B383434458E8EE71B6B0F57AA04D4 /* FTypedefs.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 28F8A38065069B21806E90774FFE582E /* FIRErrorCode.h in Headers */ = {isa = PBXBuildFile; fileRef = 5746A9E7F46321E2902DFD0DB8D84DFE /* FIRErrorCode.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 2965C04F042C04EC4DFD17ED42C09D13 /* FTupleObjects.m in Sources */ = {isa = PBXBuildFile; fileRef = D17D7FA24E4496865A23E3E240E8AB96 /* FTupleObjects.m */; }; - 2A862AEEEBFB7224B09343EACC2550A7 /* FIRMutableData_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 69E602119E2C33F5EDC4A2348BB067B1 /* FIRMutableData_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2B920B9DDB5EEF0F00933B9F87C11714 /* FViewCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C828D0286D610BA9516A49349483CCD /* FViewCache.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2BA3E1AB1AED36FD3D1502293CD0F252 /* FSparseSnapshotTree.m in Sources */ = {isa = PBXBuildFile; fileRef = 74C74967E5661E0F5B1C993EB5FE9DB4 /* FSparseSnapshotTree.m */; }; - 2BD19D3A75305561CAB6CDA0BD85B329 /* FIRDatabaseQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 18BFC555D60AF0A40CD9144B8D002E10 /* FIRDatabaseQuery.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2BF33539C446BC58399E72A1766F033C /* FTupleFirebase.m in Sources */ = {isa = PBXBuildFile; fileRef = 17485D13DE5885F152F1A5D1891C1A85 /* FTupleFirebase.m */; }; - 2C22433C2F7ADD91C0C6487378006BD8 /* FConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 38E65983D71A43219A65E820A3D93CF5 /* FConnection.m */; }; - 2C28E48B50E1F7704306C0D27E8AB7BC /* FOperationSource.h in Headers */ = {isa = PBXBuildFile; fileRef = F45F589B89526CC10AE48D099E8CAD68 /* FOperationSource.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2C8796E892C1E00F53AC678443C10930 /* FParsedUrl.m in Sources */ = {isa = PBXBuildFile; fileRef = DE58FBF7EADFA831951FC894460F16D4 /* FParsedUrl.m */; }; - 2CFA9105B78E14B3F07A9D613BE31700 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A62F5DEA813F07D663C4B01BE3FDEA0 /* Security.framework */; }; - 2DC1E56F394587FDC030D50C36C0C5E6 /* FLevelDBStorageEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = D82ECF6C0856929514162117B21AEFFE /* FLevelDBStorageEngine.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2DDC55A6EEF74B518020E9A39D7558A5 /* FImmutableTree.m in Sources */ = {isa = PBXBuildFile; fileRef = F57B7C0CCEEADB5650F78A4E984A5D07 /* FImmutableTree.m */; }; - 2E54D26BF57630DE2BFC25F7DCAA47B7 /* FIRInstanceIDTokenOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B991731B4B869DCDDB919913D058B70 /* FIRInstanceIDTokenOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 301CD923733AEE28F5DE94A783D3B9ED /* FIRInstanceIDAuthKeyChain.m in Sources */ = {isa = PBXBuildFile; fileRef = 058F03E689162F33986593E86482BA92 /* FIRInstanceIDAuthKeyChain.m */; }; - 30A058E4DA94B4625AF3FF3C800F0724 /* FEmptyNode.m in Sources */ = {isa = PBXBuildFile; fileRef = F75BDDA6A11CAE5F0BDCFC81BFCBD1C5 /* FEmptyNode.m */; }; - 319769E51E281BFC363B7E1BCC609399 /* FIRGetProjectConfigResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A924453706D0B054CC5FE39B4B64D5FD /* FIRGetProjectConfigResponse.m */; }; - 31C51E92460394A4602F482AB4CCEAAC /* FChildChangeAccumulator.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F8D3D02A27587DCFB8BE61D3B8D5145 /* FChildChangeAccumulator.m */; }; - 31F8AA8D0C94CB04F3A2C2336D332610 /* FTreeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AB20970F0D4CB43ECEF65054340B45F /* FTreeNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 320E75931B9F0481193DD8A075346040 /* FIRInstanceIDCheckinPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = AF6DBF5CDCCA2BA453458F21F0B6CCCE /* FIRInstanceIDCheckinPreferences.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 331A8B4FBFDA604A07AF7D78D4EB0553 /* GULNetworkMessageCode.h in Headers */ = {isa = PBXBuildFile; fileRef = 192ED054F1897887A2256DC0EE0A6ED9 /* GULNetworkMessageCode.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 337B93A5B3B048476B5C6E85ECDDB676 /* FLeafNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DA93F74CD26A7246AA4CF97A08C6799 /* FLeafNode.m */; }; - 337E2AF82BFF14C1803F038DA71E1185 /* FIRFacebookAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D266EE2E7911E0026FDD2A6C2A0014D /* FIRFacebookAuthProvider.m */; }; - 3389BC2652E55D95D8970D9E6905DE66 /* FQueryParams.m in Sources */ = {isa = PBXBuildFile; fileRef = 21426779DCDC25A3F6EC98B0752A9C7D /* FQueryParams.m */; }; - 342D53D90D7F9C03182061B66232A943 /* FIRAuthRPCResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 94719BBBB60000BE23863F8E0AF72366 /* FIRAuthRPCResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 34C087ADE4D56010FCDA37716E6D9520 /* FKeepSyncedEventRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = ABAD483290B2EF5BE8FAEE1AF91ACEAF /* FKeepSyncedEventRegistration.m */; }; - 34C2DADEBCC7347B4A45B8C595D2A5DE /* FIRAppAssociationRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = AAF5035E2EADE55B74944C24B28F3C3F /* FIRAppAssociationRegistration.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 34CE521949FEB3914500AEE0FEA3A10B /* FListenComplete.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F6362CD3C9A5D9161025540A9520C9C /* FListenComplete.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 34E24CF6212E5D4732579F6976C39689 /* FIREmailLinkSignInResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A0A123EEEB99AD273AA8FFC02C4C0A4 /* FIREmailLinkSignInResponse.m */; }; - 3557B3E6080723DA418A50DD971BF269 /* FClock.h in Headers */ = {isa = PBXBuildFile; fileRef = 612331A3D66CE332745ECAF349B3B3C0 /* FClock.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3566A4E2CD19780E04DC0218FD3CADEF /* GTMSessionFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = CAA73FC2A30420297F5DEB8AABD6F63F /* GTMSessionFetcher.m */; }; - 35D4008B2886548443403B2EC642CDED /* FIRVerifyAssertionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A4371695BB8BE0B7F036B798A5184995 /* FIRVerifyAssertionRequest.m */; }; - 35DD770A1964A1C5FE73EED53745B890 /* GTMSessionUploadFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = AD7238082E2DE76CE4BE772D49F32B5E /* GTMSessionUploadFetcher.m */; }; - 36437A289AA120448C37C748D4189A8A /* FIRInstanceIDCheckinService.m in Sources */ = {isa = PBXBuildFile; fileRef = 054C19E563462CFBF0DBCA541A4D4A6E /* FIRInstanceIDCheckinService.m */; }; - 3690285FE865B0F2ABF6502FA538E56E /* FIRInstanceIDTokenOperation+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = F531ADDBD021A60C52DA3E8AAF74C59F /* FIRInstanceIDTokenOperation+Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 36ED0AE64BDB9A03B859F8D72A5B7522 /* FIREmailLinkSignInRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 4809A8AEB207BE09094C80E724B4C420 /* FIREmailLinkSignInRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 37C581B6AFF6A235BAA74E04B959806F /* FIRStorageUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = EBE6D705A8784B6AEEFE663D9DA3E9BB /* FIRStorageUtils.m */; }; - 37CE545795B78B6FE32C011CDA482CE6 /* options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 2C70A4A5A6D491676D0FE160136A10F8 /* options.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 38350AA5EF358B8D1B7F94C820D0CE4A /* FIREmailLinkSignInResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DF433EF745E3C7B6C69D8EAF9607517C /* FIREmailLinkSignInResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 38AA2F94D89C2ABAE399D5E1B61D50E5 /* FTupleTSN.m in Sources */ = {isa = PBXBuildFile; fileRef = F68D493B7DD7FE0E1A5A2C4EF224F781 /* FTupleTSN.m */; }; - 394BF430DA7533FD6A0841249333FA2B /* FTupleOnDisconnect.h in Headers */ = {isa = PBXBuildFile; fileRef = 76C29CCA43C080F16D81CD5867D9C52D /* FTupleOnDisconnect.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3A3B8A01255B18C57491EBE527F8BCB8 /* FIRPhoneAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = E66CC3E1B1350B6E987AE70947B7E3F3 /* FIRPhoneAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AE2D42E5930D041AC87C8661296563C /* FIRInstanceIDConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = E72970A70A345A580BE5FC4014236186 /* FIRInstanceIDConstants.m */; }; - 3B5350E392A0755B37621F27E53798C0 /* FIRAdditionalUserInfo_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 408B57C4FBE836D1115451629D897551 /* FIRAdditionalUserInfo_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3B81E34CD8A79B67B3879D5BF1BDDBBA /* FIRStorageTask.h in Headers */ = {isa = PBXBuildFile; fileRef = D46BA107AB3D1D30D0179CB38DD127D9 /* FIRStorageTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BC4D1830228B9947E9104682749A154 /* FIRGetOOBConfirmationCodeResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FEA95D4CD2B9A707AA8E3FABA3B8E0E /* FIRGetOOBConfirmationCodeResponse.m */; }; - 3D1D06AD8BE0DC3A019208F8E694C189 /* FIRVerifyCustomTokenResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 817E5BBA817024379AF7D85C00DFBB1E /* FIRVerifyCustomTokenResponse.m */; }; - 3DAE50D8B2CC9BF9789ECE94473D23F1 /* FStringUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 8141BA0CB76E803CACC707E744E97600 /* FStringUtilities.m */; }; - 3DBA22384B6DF570FEF75A7843509A3E /* merger.cc in Sources */ = {isa = PBXBuildFile; fileRef = F8C272FE47B0C64B7D5A896145B91EC3 /* merger.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 3E157482EC99956AF8E93A142B3D5925 /* FIRAuthBackend.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DD187255D95DBB6078A19520067AF79 /* FIRAuthBackend.m */; }; - 3EA31C5445E75B4EC512D27AD41B2F7E /* port_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = DE8BE569494EB4B7D0B72BEF1496CE12 /* port_posix.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 3EA62AF38E556B016DC726CC107A76F5 /* GULNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = EB95EFB639A55B3E6E80FAFF8124A5FA /* GULNetwork.m */; }; - 3EAB6491D5FD56F910068D04B3EDF48E /* FirebaseAuthVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 90296F1A0DAD1733FF1C61C0C6694A52 /* FirebaseAuthVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3ECB2C916CF0D6FE09A71B9F52A1ED36 /* FIRInstanceIDStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C8DD890AA752B92A71AAECF6A83967 /* FIRInstanceIDStore.m */; }; - 3EF12E572EB218194E218B0C88E75AE4 /* GTMSessionFetcherService.m in Sources */ = {isa = PBXBuildFile; fileRef = 94468DE6DA11937977EC9A39B1C8114D /* GTMSessionFetcherService.m */; }; - 3F0248C1462A6C099F3F3B5822D0C21E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */; }; - 3F0BBCEC6202B967A454F106F16A75E1 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A62F5DEA813F07D663C4B01BE3FDEA0 /* Security.framework */; }; - 3F6AAB2D0A27620D148DF3B0F1FDD897 /* FIRComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 394E4A120D5047DAE5A2E23BFAB11B23 /* FIRComponent.m */; }; - 3F87B3D9812F29080E867259BA9A39F5 /* FIRAuthAppCredentialManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 08F7229DEB8C36D92FE52955BF8744BE /* FIRAuthAppCredentialManager.m */; }; - 3FC06CBC9BBF620828142C5D49040F65 /* FTupleNodePath.m in Sources */ = {isa = PBXBuildFile; fileRef = BFC195BF5C0744C5F858C1458FF02684 /* FTupleNodePath.m */; }; - 40A27C7C8C1032104210A66E9B138EC4 /* FIRStorageMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BCA6DA0BBF77B9CB8174A7470CFC83F /* FIRStorageMetadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 40C7353EFE029FD4F01EDAFE31E2E848 /* FIRGetOOBConfirmationCodeRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 7267D53C57FA08FAC0012713F45B79A7 /* FIRGetOOBConfirmationCodeRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4302F4BC1D4AEB1847C11142BAD65227 /* FEventGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 808441B96112DE059C0AAA1421FB4D91 /* FEventGenerator.m */; }; - 4456DA9FA6D8D3B122B169CCF414C552 /* FIRStorageObservableTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 791BBE4657D1CA8DEEB11B690210E2A1 /* FIRStorageObservableTask.m */; }; - 447AD1200C4E46C54EA67846AA4A3ED8 /* FIRAuthAPNSToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 03F5B3C06494674FD9411692EBC65240 /* FIRAuthAPNSToken.m */; }; - 456F7922D64809F223F194C5EF270D49 /* FCompoundWrite.h in Headers */ = {isa = PBXBuildFile; fileRef = 28C5627DFA189E51950D1225B96DF42B /* FCompoundWrite.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 459CB66B3045A32FAF8278AEBE981428 /* filter_block.h in Headers */ = {isa = PBXBuildFile; fileRef = BD4B42E0ED51BB8BD4A18734F5E2E449 /* filter_block.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 45A7E7CD8D096CC7E733F79BA34490B9 /* FIRDatabaseQuery_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EB4F8306E3B833B43215790579D19C0 /* FIRDatabaseQuery_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 463C28162B38D95A69DA93057CFE486D /* FIRInstanceIDCheckinPreferences+Internal.m in Sources */ = {isa = PBXBuildFile; fileRef = A3765B98D0FB3B3D2ABC84CD35697C2A /* FIRInstanceIDCheckinPreferences+Internal.m */; }; - 46484CB5E3D93EF37310967BE45654CD /* FIRVerifyAssertionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 485581E6831BD56380F402F7F9A31EBE /* FIRVerifyAssertionResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4657A2A00D4D80EAB11B63D8D1D66B64 /* FIRStoragePath.m in Sources */ = {isa = PBXBuildFile; fileRef = DF1624A4ECBA631C7AFBD4CE87261806 /* FIRStoragePath.m */; }; - 4672D78132E997C1C3BA8512E66EAC1F /* db_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 98957EAE65ACCC19A5F7CD148E1FCA1D /* db_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 46736AEC21214EFE3712505F0FF95DD3 /* port.h in Headers */ = {isa = PBXBuildFile; fileRef = C0D3FB48B794C26E16117F36DF9EA181 /* port.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 468C0A87E00E97866EF219CF6838EBF1 /* FirebaseInstanceID-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F9E0C95EA754C2F25A3BB0F35D31D5D5 /* FirebaseInstanceID-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 468F1B16D2705CBFB5DFAC9794FD3A8A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */; }; - 47B3206E1515C8A68A63B01654DD91D5 /* FServerValues.h in Headers */ = {isa = PBXBuildFile; fileRef = AA5B14AE26513421AA36E853BC69ECA7 /* FServerValues.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 47D8B48486B2948B5F639E02DE592DE6 /* FIRNoopAuthTokenProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = E4DE2DD0535F108E049C3B22D1D33010 /* FIRNoopAuthTokenProvider.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 496D5EBF984C7A140F8CA98B69B20FA4 /* FRepoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 42DC25056D82FC2CEB7DFF1043825F2D /* FRepoManager.m */; }; - 497A285A85FC1A6AB4BAA4F8E24EE4A4 /* leveldb-library-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D64A788B5F2EA356468F07FF24AC36BA /* leveldb-library-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 49B989CCE1B0FC3FE62756BD461105ED /* filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7DA88A30E7E799C090298B34FC0BAA84 /* filter_block.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 4A5430750AE7D622A0F14C8B11FBB69C /* FIRInstanceID+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F6B8C1361135C8BC75D55ADB886B1E5 /* FIRInstanceID+Private.m */; }; - 4A8062EB0147064CBEFEDC06F536BF3D /* FIRInstanceIDLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 36A1977166C8CDAAD6F31DA6B8483AA2 /* FIRInstanceIDLogger.m */; }; - 4A98F21B093294A5FF9D87356E9227D5 /* FIRVerifyClientRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5B3A317741BE3412E807AAD0DD15F50 /* FIRVerifyClientRequest.m */; }; - 4A9954B8DD18076E18F9D33E824EA836 /* FirebaseStorage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ACECEFB8907FDE190C32EC5CB35721D0 /* FirebaseStorage-dummy.m */; }; - 4AA7C7D25C6C61712A4B4CEBB28549F8 /* FTupleRemovedQueriesEvents.h in Headers */ = {isa = PBXBuildFile; fileRef = C6841A5C0F89D50912B3E34A10EC3A80 /* FTupleRemovedQueriesEvents.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4AB2A356F018A58CAEC0601580BBC91A /* FIRIdentityToolkitRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D76ABC3EBF88D2BE02B0DAD0E7DD7FB5 /* FIRIdentityToolkitRequest.m */; }; - 4ACCB079A4184FC70CB6213DA2904E04 /* GULLoggerLevel.h in Headers */ = {isa = PBXBuildFile; fileRef = 59EE4BB679FF846595EC77716FFDD84B /* GULLoggerLevel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B4DAFEA628353354B37C0FF60CC583C /* FIRVerifyClientResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 42E5F1A69506D7FBD0ECEF6CD913754A /* FIRVerifyClientResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4BD962CD59889D65BBC7FF4666718AC9 /* FirebaseDatabase-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EC21CE527CDF9EA2FA8DCF24D14F9AB2 /* FirebaseDatabase-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4BEE765356C2CACB5FB1818B2F4FEF74 /* FTupleCallbackStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = F77D246EF3F096DDAB892B6ABC94D31F /* FTupleCallbackStatus.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4CB1E6FE7769B393DABC8F70D415A09D /* FViewProcessorResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 49A8D167120F9DD74D4FEAF80685DCCB /* FViewProcessorResult.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4CC939516CEDA3F9958832AE71AA8101 /* FOverwrite.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F7D5282D75751D8A5F1436C7EBBF861 /* FOverwrite.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4CEC79CCB4B8A8DC1EAC0AD4E3B74A05 /* FIRErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = 722E8ECD73E43FA6C9DABB306F2C0001 /* FIRErrors.m */; }; - 4D26877F840ADC7AE1F231DFA92EAC6B /* dumpfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 54AF748D8D2E4CDFDE63B41270B35A99 /* dumpfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4D4331CC209F2A9C2D29297551AB6DF9 /* FIRTwitterAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D9F86C5BD87528712951A0BC2123308 /* FIRTwitterAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4DD447CC97153B7CBB6828E51F83CED6 /* FTreeNode.m in Sources */ = {isa = PBXBuildFile; fileRef = BEB94202C410BE9C5896D1F2DC73CE99 /* FTreeNode.m */; }; - 4E29C52AEAFFD4FCD3564FE4D225769F /* block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7D9EC722304B8875B074F58B27860F35 /* block.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 4E2AD40DDA69CFD38A241DF74604921F /* FIRAuthNotificationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A4F690B518910B893FD0B61DFA3CC4 /* FIRAuthNotificationManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4E2F487B5580862EB0AC637E16A5EDC2 /* FIRVerifyPasswordRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F5FBC4839AE408BDC288B6F225B683DB /* FIRVerifyPasswordRequest.m */; }; - 4E328A5C591DF8833EA0E793653D9463 /* GULAppDelegateSwizzler.h in Headers */ = {isa = PBXBuildFile; fileRef = 91FC50EC8CA0DF6A040A3CD790FF815B /* GULAppDelegateSwizzler.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 4E5B415C68D247011A74C6E8F9531F52 /* crc32c.cc in Sources */ = {isa = PBXBuildFile; fileRef = E29CE32AF669DF14CEE4919254519DED /* crc32c.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 4EBCE44E46327E948677ACC912873077 /* FIRAuthTokenResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C4495F0517BC62F190251D71026FB32 /* FIRAuthTokenResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F26139BCC82DA0949574DDF94B137D2 /* FCachePolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CC19884644323226FC5E15D6A5763F9 /* FCachePolicy.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4F3B22CF75C369F5E8EBB886BE7B5252 /* FTrackedQueryManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F73492D8DEF538338512FC4677D9392 /* FTrackedQueryManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4FEB95C8A25B819590AB2509C6B8CD0A /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = 767E877685EF58546F3E47CC6FCDDD20 /* histogram.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 4FF698EC5C1FCF7002E43E79E123D41C /* FIRBundleUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = AF37F6017CDFEBB99829557BBFD81165 /* FIRBundleUtil.m */; }; - 50993657F82E93DECBF6CCA8B3287F26 /* FValidation.m in Sources */ = {isa = PBXBuildFile; fileRef = 60582E02AEB667F45A3E146E5002B446 /* FValidation.m */; }; - 50AFC67B697A136CB73CC5B9719ED69E /* FIRComponentType.h in Headers */ = {isa = PBXBuildFile; fileRef = C7331B570A8DA4572A69F4F3499B6D1E /* FIRComponentType.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 511DC9CD732274220202CFDC04AA84A6 /* FIRInstanceIDTokenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 45F91AC059C798A250085195C66B4487 /* FIRInstanceIDTokenManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 516D66C94C762328B0F2F0A0AD115D5A /* SkyFloatingLabelTextField-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 52C6659BBA4179DA63448DEB09831D84 /* SkyFloatingLabelTextField-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5218544E85AD4A6A15DDC3DE089EE155 /* FIRAuthErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D3D4D22CEFA0D919069BA9E436545BC /* FIRAuthErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 523E2F758045EB21A196D6ADA0613472 /* FValueIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F52AC95F97B437D56D2A3734D32B0DB /* FValueIndex.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 526C6BEFDA5C429E9AED6A9FF2228C03 /* GULMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CD65B02663A9861D485885C274F1190 /* GULMutableDictionary.m */; }; - 52B537F78643815D49DB7A78424A24E8 /* FDataEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = CFA589F72475C3B54328021ACE1C504D /* FDataEvent.m */; }; - 52D2B9E5655C86B3A28A862DE70B515D /* block.h in Headers */ = {isa = PBXBuildFile; fileRef = 93BD23B1719164B1BA99AD449BFB4F7C /* block.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 52EA8DC7D2672F34D41DC7B0CA8B73A5 /* FValueEventRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = DAA4926E8C152BE798D055DE5632E692 /* FValueEventRegistration.m */; }; - 536510510253A8B62F7F46DFD7521B85 /* FIRInstanceIDCheckinStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F9C8B151D3C58EF77FDA9C22A71882C /* FIRInstanceIDCheckinStore.m */; }; - 53B93495AB96BB31E2629C23FF7E7BEE /* FTupleObjectNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 578359019DFA7CCA5CDD6ED42E63F030 /* FTupleObjectNode.m */; }; - 53F871C114CF3080C66AABE60D3EC0CD /* testharness.cc in Sources */ = {isa = PBXBuildFile; fileRef = 0B4A2EB3FC46C0E3AFE983EBDAC4F6F3 /* testharness.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 541F71778D551D3F3B548CB4EEEE843B /* fbase64.c in Sources */ = {isa = PBXBuildFile; fileRef = EAFE47FC5CC2B8553298AB29EF09F50D /* fbase64.c */; }; - 54246F25394BB23D0E15BD5D0DD519E6 /* FIRSetAccountInfoRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D85AFD3D61483F9F8742E3F923E18D7B /* FIRSetAccountInfoRequest.m */; }; - 544D4F7325AADBF3D6F5522A033BB68F /* filter_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8AFF0DA3FC96DC327460FCABA2816CD1 /* filter_policy.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 54967CFA08ED242554E46D214197336C /* FIRStorageUpdateMetadataTask.m in Sources */ = {isa = PBXBuildFile; fileRef = DB9722699362036FC8C7674FC18B7E51 /* FIRStorageUpdateMetadataTask.m */; }; - 54D12EC44087F53DA0A25FD290579367 /* FirebaseAuth.h in Headers */ = {isa = PBXBuildFile; fileRef = FC5C0D2B4C8D3E5950A8879B40D5058B /* FirebaseAuth.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 54D8FF48C84B31C3AF1B321118E73314 /* FLLRBEmptyNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CB244292166D2C650852EFE5AD83E4E /* FLLRBEmptyNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5502867D08BE3D6F37D76A9DFC6E8283 /* FIRVerifyPhoneNumberRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 365F356BEB40BD61262AA2E727C3665B /* FIRVerifyPhoneNumberRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 550EE07F11B1D9F872910D16616E8993 /* arena.h in Headers */ = {isa = PBXBuildFile; fileRef = CAE1281821C0F3D5A592ADA9056314FD /* arena.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 553465315D098242CF35B37D9688015D /* GULNSData+zlib.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D8A1EB37E58D2378EE2F71FF148531C /* GULNSData+zlib.m */; }; - 556BE1A6FE87B74113BFEB13ECCC7492 /* FSyncTree.h in Headers */ = {isa = PBXBuildFile; fileRef = 51FC95B42B5C8AC75A566E4F9C74B31F /* FSyncTree.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 560AC3485957003BBE2D38ABDF8F0FCD /* FIRActionCodeSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B638E1DAE036DF8F45F4B3D7823DAF2 /* FIRActionCodeSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 56237C510543BAD2475140F0076C5B87 /* FIRDataSnapshot_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B12766C61A1D905BADA75D1D451E350 /* FIRDataSnapshot_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 56A21965C9983268CCD296D638D31437 /* GULSwizzler.h in Headers */ = {isa = PBXBuildFile; fileRef = 267BF6D8786C8CB44EC92523CBD86470 /* GULSwizzler.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 56D07A1CD523071EEEA5426861D1B16B /* FIRAuthUserDefaultsStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 64B2AFE614693176E2E7ECA671B56F65 /* FIRAuthUserDefaultsStorage.m */; }; - 56D5A6FEF256C0CBB0E24D14787A500A /* FLLRBValueNode.m in Sources */ = {isa = PBXBuildFile; fileRef = A28495A9579F9A0AED8E392DB2F68198 /* FLLRBValueNode.m */; }; - 56DABB941D83E06287BD9BD890BC8CF3 /* FIRStorageUploadTask.h in Headers */ = {isa = PBXBuildFile; fileRef = A389418F62EC453B4144889466014F44 /* FIRStorageUploadTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 56E9FE3470D7075C0086C4B6CEB24706 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */; }; - 56EEB564D3963E2292983A86D1861E61 /* FIRSendVerificationCodeResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = F271C290409CE9A5105DC0CABB9F9EE5 /* FIRSendVerificationCodeResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 57931ED32032A5E08A2493A504E9027D /* FAtomicNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9E4E4854F120E2FC1713D8ECA0191 /* FAtomicNumber.m */; }; - 580C875BD56AE47B248D5C7F99730495 /* FWriteRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EDB5D3344BD1CE65FF9829BE4FD2ACA /* FWriteRecord.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 58467D56754CD77DAA805439283D4FF1 /* FPriorityIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 425CE85B61E218C1B00C1F2A73950267 /* FPriorityIndex.m */; }; - 58578477A39A00CA86AE68A3A1C52BA1 /* FIRInstanceIDStringEncoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A8C6BB1240DB36C318DF918977AA071 /* FIRInstanceIDStringEncoding.m */; }; - 58AB2BC10F938D64CECC81948A75237C /* FIRLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 00246EDF57666086835500E4565A8DAD /* FIRLogger.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 58CFC7C232477561D707792417BF1FC8 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 87E79BC1CC8862982040BD0CDA144791 /* iterator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 59149F253BF7164089FEE2BEE7276AC9 /* FArraySortedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = D831D3FD816CBF98BE21B644C48CA252 /* FArraySortedDictionary.m */; }; - 5942F7142EEA3369B3DF83B3F138E7F2 /* dumpfile.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3499199ED2492A1364D7DBA0C9951C96 /* dumpfile.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 595F9BBF3A1590966A754B9995164BD5 /* FTupleStringNode.m in Sources */ = {isa = PBXBuildFile; fileRef = F3B9D50C1122D69F3AEFD7BC21A727CE /* FTupleStringNode.m */; }; - 59887240263899E99E757E85FF0E1298 /* FIRInstanceIDStore.h in Headers */ = {isa = PBXBuildFile; fileRef = C1A9A402A55DA3A0F58B36FDF4A01E1B /* FIRInstanceIDStore.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5A13BA49D87F2DDCDC27434A649B64B1 /* FLimitedFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 0003443AD8DD64B04D3272F3D0862D79 /* FLimitedFilter.m */; }; - 5A22DE4FA5F130B08893A7789A6E9D59 /* FIRVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 5ED1D1C6BFA726B230EA8B43BCC1F4D8 /* FIRVersion.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 5C83AAB97E5EE61B01DA8414E3FC258C /* FIRStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 794126647C8FBC3E52C5C5B8104F3A88 /* FIRStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D01F46B4C1EEF8B7872CC179C5CEDF4 /* FIRAuthDefaultUIDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DCB0C71551CCF6CB7397B39DB6E37F37 /* FIRAuthDefaultUIDelegate.m */; }; - 5E20A631FA9A472F2C5DB1C5BEB7584C /* FClock.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A4561E886C54A97192E4590A456297F /* FClock.m */; }; - 5E3FDAEFD12F33849881A120D9D2F8A1 /* FChildChangeAccumulator.h in Headers */ = {isa = PBXBuildFile; fileRef = D4B66C1FB7D354B7CE95C3B4D844197D /* FChildChangeAccumulator.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5EBDEC2F1754096171B9C9999349D591 /* FIREmailPasswordAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = B7C7007AA00308EF6ADB44AA8D9769BC /* FIREmailPasswordAuthCredential.m */; }; - 5F1733076D2894FDD2BAC98D5F100B11 /* FIRStorageErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = 926353C52E650786FCFC2CF7615C5300 /* FIRStorageErrors.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5F1CE9521EC64C792851824834DFF48F /* FIRAuthCredential_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 51A7C19964FC578A1A16EC75F215AA1B /* FIRAuthCredential_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 60017B8EFAD5C46268A07D35D8FDED49 /* FIRInstanceIDCheckinPreferences+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = C880512238D15492925DB2F8A2FE3068 /* FIRInstanceIDCheckinPreferences+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6046510E36C0A8B4971A4D8F9BA2C7EC /* FIRDeleteAccountRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CD73CD7281BF60442814EDE05632BAD /* FIRDeleteAccountRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 60A04C720258D395495C0225AF04553C /* FIRIMessageCode.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FEDEF37B6160C383E6EFA3276C17B1F /* FIRIMessageCode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 61417E9DDEC056D3603F195CE534FBEB /* FIRStorageTask_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 22F3A1E9A4F6AF9FAEC7B9ACA1D0AEB5 /* FIRStorageTask_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6163F71CDDA0A0305C74B83822F44391 /* FirebaseAuth-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6536F41666B4EB96E59EADEB68BF2172 /* FirebaseAuth-dummy.m */; }; - 61B8B958BBF72852DD911EC14EBEE36B /* FIRAuthInternalErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E61D3AB47269E9013073B64BF54B214 /* FIRAuthInternalErrors.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 61F97F35EDDE2CBFE6FC6CA1D7CC0809 /* write_batch_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = ABA464C82DC9E70F1A6864E2BD8A2DF9 /* write_batch_internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 62430B40FF693ED36F0F4FC0EAD8B27A /* FNextPushId.m in Sources */ = {isa = PBXBuildFile; fileRef = 002F79536BD998496972FA8B23791F1D /* FNextPushId.m */; }; - 6295DF6725B749AD04DCA071684668B2 /* FTransformedEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 46EDC7422DA801CADCFA21A3BF40F83C /* FTransformedEnumerator.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 633AAA8B6D7B184BF0AC182D8CB09FCB /* cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628681DC6DCF623E2C4F5C597451DAC9 /* cache.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 6352F0296B51E03FA2DC5C564B777B36 /* FIRAuthOperationType.h in Headers */ = {isa = PBXBuildFile; fileRef = 73400156B74C0DA3AD4C910330E581D3 /* FIRAuthOperationType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 637A4952A1CDE42713131180FA631B94 /* FImmutableTree.h in Headers */ = {isa = PBXBuildFile; fileRef = F1F892D78BFE03BDB185F603A74BD1DD /* FImmutableTree.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 637F64FF72C1D9D05562AA7B9CD0BD97 /* FIRGameCenterAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 60EA4D965DE2D2E6E7599C16DEC13151 /* FIRGameCenterAuthProvider.m */; }; - 63FB1C38F2105A12AEE0A6A5DF7005DA /* FIRVerifyAssertionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A9AA771AF9F16BC3FC9A2B28208A59F /* FIRVerifyAssertionRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 64629B8AB6ACC3214EEAAAD426F29A9E /* FIRInstanceIDKeyPair.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D714A51DDBB8C95DD3A56368F2BFC68 /* FIRInstanceIDKeyPair.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 64849198446AA0BD62CF81DB23C86B06 /* FIRDatabaseConfig_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BFB1C5725146F4B832E39F66B9EB917 /* FIRDatabaseConfig_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 64DC113BB44CE1544C1D7C4B6AE6B456 /* FIROptions.m in Sources */ = {isa = PBXBuildFile; fileRef = B3B9B5914D0996581B41D838709FD693 /* FIROptions.m */; }; - 653E6B62B347B21FCF34E2B85483AA04 /* FIRAuthSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = C6656E393B1F8CF249F0A2A0A091C0B4 /* FIRAuthSettings.m */; }; - 654DFCA2065FF52C802D6813CD602E6B /* FRangeMerge.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AB40632554642A4D4ED9E51EC01D577 /* FRangeMerge.m */; }; - 65B3CDFB0444C7AA02F56877328F6A4C /* filter_policy.h in Headers */ = {isa = PBXBuildFile; fileRef = D13B176CC357231CD837F1EED6B94784 /* filter_policy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 662A32262F2795541CEE41D85703D454 /* FIRAuth.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BB13B320E25A8E10118F5AA4E4BEB2A /* FIRAuth.m */; }; - 665D2FEE8079D7D4A16C025F6DD983EC /* FSnapshotUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A796118955772D03B72C9D1D9FE04D0 /* FSnapshotUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 67EB9B98CFEF7CB9221BC81C171AE9AC /* FIRInstanceIDKeyPairStore.h in Headers */ = {isa = PBXBuildFile; fileRef = B12B024257603D47BCF3B3683418D7B4 /* FIRInstanceIDKeyPairStore.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 68445BCAF5F756412178BA60DB692549 /* FIRApp.h in Headers */ = {isa = PBXBuildFile; fileRef = EFE0894303E3D724FA0AD6F342EC77D7 /* FIRApp.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 689E6EABCB7239FE9015AB06BB176349 /* FIRInstanceIDVersionUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 532FFA75FEA4279D1F9DB74543C73470 /* FIRInstanceIDVersionUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 69336208E24A69DA18CDD0A382FA64BE /* FTrackedQueryManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DEEA88BC53765F53137E017BD8F0B909 /* FTrackedQueryManager.m */; }; - 6A5B2A5F18CFEE6C5B56D872576EBA16 /* FIRDependency.h in Headers */ = {isa = PBXBuildFile; fileRef = 2069651C0562010C6A877A7BF47C327B /* FIRDependency.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 6AF87145BFC0111E9389FF8E0585296A /* FView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ACEFF86E27F21CAB8051BC4A6AC4DF3 /* FView.m */; }; - 6B363A1020C01B32031C823B7225B6A9 /* GULUserDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = 46A9486FDCBE1B6436670D6A8F1FC334 /* GULUserDefaults.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 6B66771B40B7DF99E6F3068AB7A45413 /* FIRTransactionResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 07815FB1924AC46479BB8CF9F6A0818E /* FIRTransactionResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6C9D48B37D386A4BDF0E13AB8D15D1FF /* FIRInstanceIDCheckinService.h in Headers */ = {isa = PBXBuildFile; fileRef = 69F5D98870B7FDCD04B20E0379BDF3D5 /* FIRInstanceIDCheckinService.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6CD0BA3A07C3171BFFFC804C7090BE21 /* FIRAdditionalUserInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 25BB970C36717EAF606D445FC1BB9970 /* FIRAdditionalUserInfo.m */; }; - 6CD117947B7BF832410AB5642B58009D /* options.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B446CFAA2A92C673B94D5B06FF456FF /* options.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6D1D054E0E98DB2CA9969115625904FB /* FIRInstanceIDTokenStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 27A2A4DC36D5B0A92A7E4CDCFD6F7A90 /* FIRInstanceIDTokenStore.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6D44617178C72B4FFF2207F23C2292F6 /* FSRWebSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 28EC55F554A2886D0ABEE64B9361B4DA /* FSRWebSocket.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6E0183C26645E878A39406D5D612B75B /* FIRStorageDownloadTask.m in Sources */ = {isa = PBXBuildFile; fileRef = A63E7400BF39FBF47E6F78F82F220A77 /* FIRStorageDownloadTask.m */; }; - 6E3FBD2FF449CA89B695824F45B05041 /* FIRAuthAppCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 294DE40D904297B85D2EC076ECA55A62 /* FIRAuthAppCredential.m */; }; - 6EE749931CF7916D14BF0ED03698E37D /* status.h in Headers */ = {isa = PBXBuildFile; fileRef = C94CCC58A07AEA281BD8D8AF197274FE /* status.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F1BCE808FB608FE06F26B7C665345AF /* FIRTransactionResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 123DD6504331849C9DABCDBB9DD2F0EB /* FIRTransactionResult.m */; }; - 6FB876149CC05708F6E164647393C735 /* db.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EA54BE66D07A4A6F0A572AF6F7A346B /* db.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7005CC73842394A92522541C75AA4939 /* FIRGetAccountInfoResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 54F584061427E2CC1975FEBA7EB7957A /* FIRGetAccountInfoResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7011CE258B91AC4B148E00815F3979EC /* FWriteTree.h in Headers */ = {isa = PBXBuildFile; fileRef = E898C32AEC2476E6F7FD7E346F221F09 /* FWriteTree.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 708008B08361CE1092CA079C984B3C07 /* FIRInstanceIDCheckinPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 0560A99FAF8C2CF9E9892513562F0311 /* FIRInstanceIDCheckinPreferences.m */; }; - 70AACCD364EF87D5485E1E6290E709CA /* FCacheNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F6C8EF2760B57057D700D7CE80BB917 /* FCacheNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 71689DED969D5D2BB905DF626D6BBCEE /* FEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C6A232FAD05B457BB78B661F3177449 /* FEvent.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 717800D3D5F28543F6AC488A218A1EC5 /* version_edit.cc in Sources */ = {isa = PBXBuildFile; fileRef = E3082EDA0CA6913A70074379EF196C21 /* version_edit.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 71B18E974E9C00DBD4F36372FE57A304 /* GTMSessionUploadFetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A68484AC9286A05A28B89736FF14299 /* GTMSessionUploadFetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7248687DA529D8A152534144CC662412 /* FSyncPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = F509109A513108F962890765CD53F0CA /* FSyncPoint.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 73005B8E95FB505599E6E57089FDAA86 /* slice.h in Headers */ = {isa = PBXBuildFile; fileRef = AEC92DCCE9B21D31F8874DD81009CE31 /* slice.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 733854F2FE667F6E07A1BB78A83AD7C1 /* GULLoggerCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = B4110C43E4C20610E6850CE7A37890B1 /* GULLoggerCodes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 73D5D6BC36BBDB8566E075D56B15EE39 /* port_posix_sse.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3AC4C6979697B15479E52EA18869C2AD /* port_posix_sse.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 74099764336AF4E38B03EE3E689778AA /* FTupleBoolBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = A5E9E62FA9990E51C7843FE160B03BBD /* FTupleBoolBlock.m */; }; - 7469A404EA72DB963880A445AF3D49FC /* memtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F77B40E347C0DC006248A2A7FD9494 /* memtable.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 747522F60FDE69ECDEB29E8860A5D029 /* FIRGitHubAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = FBF353AE4935C2D9FF55D2ED01C9DF0E /* FIRGitHubAuthProvider.m */; }; - 7475B9C0293E5959E7118964F59B38FC /* FIRVerifyCustomTokenRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7529757A7047095C0723D1E4264957DB /* FIRVerifyCustomTokenRequest.m */; }; - 74AADCD81E76036097D01096602E8608 /* FValueIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = BC1AFED460D9AA4AB8A26EA614F73ECF /* FValueIndex.m */; }; - 750E01FC4BCA1E12D66CBC83C701C292 /* FIRStorageDeleteTask.h in Headers */ = {isa = PBXBuildFile; fileRef = F21218C0B98EEFCD7CB79BBB5DF3CEBA /* FIRStorageDeleteTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 755F78190BA9F02A4CB68DDF0C5F0F61 /* FRepoManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F30ABACEADFBFF704F6090547BBA8069 /* FRepoManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 757E37CE5D0F05A6D0FA42FCAF7F07A0 /* FIROAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E1D5DE7E86656144A403F0CA64C7D08 /* FIROAuthCredential.m */; }; - 75D919EE0C52105F5F7B0B5A5682082C /* FIRGameCenterAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 2122B552F56707548D6BE3C2DA92C363 /* FIRGameCenterAuthCredential.m */; }; - 76036D04234E627F001510422B2BAB93 /* FIRStorageTokenAuthorizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DAC36DE3E8C47E4E8403FF361376E52 /* FIRStorageTokenAuthorizer.m */; }; - 76055E1DA7F75AE69AB90918532D790D /* FWriteTree.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A9F7B51BE6C26E2930B06A3E9B81096 /* FWriteTree.m */; }; - 7644847C819A5F1BB2A1B5BBF5A75D58 /* FUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 3483051669AF463CD0850ABB6628BD2A /* FUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 76BBA9D712ED29E478561D10590A528C /* GTMSessionFetcher-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A4DCDDD7C5C046C186E7370CF0A5CDB /* GTMSessionFetcher-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 775B576BF84270E95B1A9C5B309A40C9 /* port_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 7987A65BF9C5D489F6720587C1B684FB /* port_posix.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 77C1FB5D491B82B1FEA3097C4DB44A18 /* GULAppEnvironmentUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 5400DC6019076EB9F1A792870A10C3E9 /* GULAppEnvironmentUtil.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 7852FFEAABA904D28786D9FB19B15A75 /* pb_decode.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BDC53FFF5CFDC7C851D99A9B5CA0196 /* pb_decode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78727D175F4F6A19E223F73CB93DFA8C /* FIRAuth.h in Headers */ = {isa = PBXBuildFile; fileRef = 30B2A3A674C09C0191312B460DAAFD16 /* FIRAuth.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78BE27AE71DCFB1062EAE33DB3C74260 /* FTupleTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C06024BA2EE601FEAD8A46844A8E68D /* FTupleTransaction.m */; }; - 78D51DFB335110A77F95D925AB36D8C3 /* GULSwizzler.m in Sources */ = {isa = PBXBuildFile; fileRef = 634F97D0C73BF093A37A6EAE872CEA86 /* GULSwizzler.m */; }; - 79018028CDE52BB7AFDCA5638BA86ED6 /* FEventGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 44719405C7DFBE23EB3ECDC1C76220FD /* FEventGenerator.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7925209CC2107EBB5C603C8B26E57F41 /* c.h in Headers */ = {isa = PBXBuildFile; fileRef = B358DCEE74F597D184284C5A367C51DB /* c.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 794BB00247E5FCFD05AA906189A17A2A /* FCompoundWrite.m in Sources */ = {isa = PBXBuildFile; fileRef = 92A8A121FADF5FD3EC9CC3DD36B63EC0 /* FCompoundWrite.m */; }; - 79E364BE9C25810501E24420FAE27AC9 /* FIRInstanceIDAPNSInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 02038AD49FDF208D2170F6C3A38915E9 /* FIRInstanceIDAPNSInfo.m */; }; - 79F67DC0F6BA6907CE8D3BA55A76ECA9 /* FIRSignInWithGameCenterResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BD19841DE323FEE839642AADCF879E0 /* FIRSignInWithGameCenterResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7A29FF2B517253999E770973C977CCAF /* FRangedFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = D15548A90347E765B7D3CBB0A5EC0900 /* FRangedFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7AAF71DAAE58705F62871D45AA31895A /* FIRStorage_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BFE8375A2CADB978CD1C612B7B47674 /* FIRStorage_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7ACB589181EF06077D967750E901650D /* FCompoundHash.h in Headers */ = {isa = PBXBuildFile; fileRef = D707F6297F69E51D6E2FF01CC3A70822 /* FCompoundHash.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7AD83A481363DE5388A51D6100DBF801 /* FPruneForest.h in Headers */ = {isa = PBXBuildFile; fileRef = A25FAE252409F1D18A4A93E988C990F9 /* FPruneForest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7B49DA968FE9184225F8BAB9225E7FEC /* FIRGoogleAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = ECB19057C36D102FF9DE4902B90BFA76 /* FIRGoogleAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7BD0803A67DC84B9C48B2ECA0E8330F0 /* FIRInstanceIDURLQueryItem.h in Headers */ = {isa = PBXBuildFile; fileRef = AB9F9A4DDFBD010836D6BED1A9DC9641 /* FIRInstanceIDURLQueryItem.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7C0C86B59EEA8B16DFC2575713067BB5 /* FIRInstanceIDTokenDeleteOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A3860B900C0EC65DE3F087539EED8D8 /* FIRInstanceIDTokenDeleteOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7C4B28D4AC28FC6C73FE8ADEB96642CA /* FIRGoogleAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 56DA05C7BD2C764386BEBC47C0158012 /* FIRGoogleAuthProvider.m */; }; - 7C66F406C7BAED8E2A82A64DCB170328 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 099602E95CC02BDF479BAE577F2E1E33 /* SystemConfiguration.framework */; }; - 7CB2B4968AD40154DBAD9C261B69A439 /* FIRLoggerLevel.h in Headers */ = {isa = PBXBuildFile; fileRef = 59578A022F1ACB09E967133D7EBE14F3 /* FIRLoggerLevel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7CFB8BB246F2CED57DB0DBA8E68ED17E /* GULNetworkURLSession.h in Headers */ = {isa = PBXBuildFile; fileRef = F91B980F928643DED2E8821F6C5961F0 /* GULNetworkURLSession.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 7E027CC3DD96E182725F9455BFFED543 /* FIRDatabaseReference.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D7BEC325E63ABB70051F75E2B6F8077 /* FIRDatabaseReference.m */; }; - 7E75777839622EE30BDA9625EAEED497 /* FNextPushId.h in Headers */ = {isa = PBXBuildFile; fileRef = A3EEA32E2C9CA48F9A9271F62D61FE59 /* FNextPushId.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7EDB667FB9E02D05C37E394D5BA81877 /* FIRPhoneAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FB4F6E35F781A7CECE37DAC099AAAEC /* FIRPhoneAuthCredential.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7EDEEA929C703E64B26A53BCD5C95E81 /* FListenProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C28E06757512114CD7F3363157E8A77 /* FListenProvider.m */; }; - 7FA042A3C4AFFD2BF17A8E7FD9BAD4E4 /* FIRConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 4723713D6AF8203263B7E0374AF2ACC0 /* FIRConfiguration.m */; }; - 7FA907BFDF0A4551D655816C85E91326 /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = D039A2D1130015780787D9A546120CB7 /* hash.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7FFE131ACA9B90341144BFB989EB8044 /* FIRUser_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 36EB1565044A97B1FF9AA8F23DBF0A5A /* FIRUser_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 800F09C867709739BAB780DE254AAA69 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */; }; - 801D07385A1DE55299EF2B7EAFDC8376 /* GULAppEnvironmentUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBDB93649A440F224E642D5BF21C2B3 /* GULAppEnvironmentUtil.m */; }; - 80B01B2CC3D2649A0015594F5669CF57 /* NSData+FIRBase64.m in Sources */ = {isa = PBXBuildFile; fileRef = 192BBF5843C2BBC3D997185F4F0FA529 /* NSData+FIRBase64.m */; }; - 80BD857261F66DF547854516DD7EC58B /* FIRInstanceIDTokenOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D56BFE95910C37D0ED318963FCECDD3 /* FIRInstanceIDTokenOperation.m */; }; - 815E2845C8AE3E3D885B8E9EEE0DD790 /* FTrackedQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 77F466771C4AB291E951DD480C6DD71D /* FTrackedQuery.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 821401F8DB4124554E5C86CBD59A3319 /* leveldb-library-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B79D5D278E18E8412B8077A070C3829A /* leveldb-library-dummy.m */; }; - 82F2023E4682FB8C27255E68280832FA /* FIRInstanceIDKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = F39807973782A2CFE0B5408F746922A0 /* FIRInstanceIDKeychain.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8309F2F3BF11463343D083AA55B34B87 /* FLLRBEmptyNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 16686BB74ADEBE8821651BC26754611C /* FLLRBEmptyNode.m */; }; - 8311A56D7AF0AFFF466DEE6C100C073A /* FLevelDBStorageEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = C0960DEB72C885CE265CBC88C410094F /* FLevelDBStorageEngine.m */; }; - 83BEB9F1DEC2C8431B4C76CB10CC6782 /* FIRAppAssociationRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 45E4B33BAE7133D11EC5E322CC8328A2 /* FIRAppAssociationRegistration.m */; }; - 840C1C746963E590CE2DE961AA34AAEC /* FIRSignInWithGameCenterResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 287FD20FB1E704B5433F3348A94510AD /* FIRSignInWithGameCenterResponse.m */; }; - 8413F03AFC3C68C5140E5C654C492231 /* FOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 31867FAC1EB2A4D65E11AB668B86643D /* FOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 84928355BAEB00E302A24F7D67995ABF /* FTupleTSN.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EFA5244BD97145BA119FD542B6F5F12 /* FTupleTSN.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 84AF97ED0985D274499270F3995446A7 /* env.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3BD9E0ADF784A90BF5D483F071D0CF52 /* env.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 8515DFB2A44D80A1895E9B066F159D85 /* FIRAuthUIDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 583562A98462CC5B8EE78FEA8B4CAC9A /* FIRAuthUIDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 855F34993643FE1A58C2557F112EDA13 /* FImmutableSortedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E56264BC316BB3716BF44923A61844 /* FImmutableSortedDictionary.m */; }; - 85CDB6E5CF5B351BAB8E82AA40376EF9 /* random.h in Headers */ = {isa = PBXBuildFile; fileRef = BD0AA7F87323EC834D552AF7908B0D9B /* random.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 85D18C3C8C32DA54CEE132CEF0C83CD8 /* db_iter.h in Headers */ = {isa = PBXBuildFile; fileRef = D3D061F710CC7C80DF7AC37C5706E980 /* db_iter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 85F5162971394ABAA59D79BECFF00CC0 /* FirebaseCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F3583008A46F23EBE74BE4C31CAFEE4 /* FirebaseCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8654A7FB1251771AEEA1C103B8B7ADB3 /* GoogleUtilities-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C33376A65CBAF31E8FA82A2DC5E0BE5F /* GoogleUtilities-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8654B389B5AF36176F31BE1BE27E46C3 /* FArraySortedDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 119F2C5ACFE39BCB25536C68796FC28C /* FArraySortedDictionary.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 866775D9EA0ADACC19C03827A93A53DD /* FTreeSortedDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = BE950F3DD06281B0BF7EFE6F3E568E59 /* FTreeSortedDictionary.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 86703FB7469C012C6302F1CD5E1DED26 /* FIROAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 76593F07DC9EBE2104F65E90E1FF901A /* FIROAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8685820BC185F5EC874E68199EDDF364 /* FIRCreateAuthURIResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 276ED8659F55873729E50A68D18D8BB4 /* FIRCreateAuthURIResponse.m */; }; - 8691F1535C454D784C7488733CE13239 /* FIRFacebookAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A77D403A4F87B097B9244EFC7B24DF6 /* FIRFacebookAuthCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 873E21FCBA5D794944A5D1228546B03E /* arena.cc in Sources */ = {isa = PBXBuildFile; fileRef = FFC62241E7D3F9B785BA34A3ABD60C32 /* arena.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 875ED4EEAE9E4320B8C78A8A932EBBCD /* GULReachabilityMessageCode.h in Headers */ = {isa = PBXBuildFile; fileRef = 36CF3FEA982BA82B1901A24AE8A7CD36 /* GULReachabilityMessageCode.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 8857A00E443FAAAA6547C550366A9B95 /* FImmutableSortedDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C7249AB9702317AD2CA574DD6018C00 /* FImmutableSortedDictionary.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 886E96DCEA43BB8A6F567709368AD2EC /* FIRUserMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 60D6FD692E41EEDD74AB50D0E342B115 /* FIRUserMetadata.m */; }; - 88BAC9BDBBA719C4140BF591D5E2B1CA /* FConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C073941D87EDA4853F656767D46C19 /* FConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 890B2BB77F709855E79F746AB10F9E9E /* GULLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 65612DBC517D0E3AEBD8511541D35945 /* GULLogger.m */; }; - 8941446FE3524772428414D591642FF3 /* FIRAuthDataResult.m in Sources */ = {isa = PBXBuildFile; fileRef = F944A46EDC21C887848333C3765BAFA4 /* FIRAuthDataResult.m */; }; - 89B58A35A56402B339C4724BD672600E /* FTupleOnDisconnect.m in Sources */ = {isa = PBXBuildFile; fileRef = 138B56BBD3C698B2EFAE4538A4D3811E /* FTupleOnDisconnect.m */; }; - 89E34C591120E62535E2702FB2E1DBAE /* FIROptionsInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 825B69FB1C063E96EBA2310E2A997E4E /* FIROptionsInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 8A270A7DC36B3B415A29BCA99FDA5C22 /* pb.h in Headers */ = {isa = PBXBuildFile; fileRef = EF99594D20D6047B92F06C7823F16073 /* pb.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A2DE95C9D65C3D8A241F9D9262C4A93 /* FIRComponentContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 239C21D2EE55FAC507BD5C7BF69E0209 /* FIRComponentContainer.m */; }; - 8BB9DB2D2669C86B5DD95FA37629BCEA /* FIRAuthWebUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = E26AF9026CF7937F0297FAF85E5CECD5 /* FIRAuthWebUtils.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8C62C9DB7B6B0DCBE97E9F0F6A07730A /* FIRMutableData.h in Headers */ = {isa = PBXBuildFile; fileRef = 630C4AB279CEFE189C12CF2DC9053B01 /* FIRMutableData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8CA8C4D32541AEC9E1B27BF4679E04D9 /* SkyFloatingLabelTextField-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 601459BB1E7BFDCFC46DD32F061D4423 /* SkyFloatingLabelTextField-dummy.m */; }; - 8D3F9F0A4868244F7762C63FE249C06E /* FIREmailLinkSignInRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 43E45774CEC57DBA12AE40E4D8F0732B /* FIREmailLinkSignInRequest.m */; }; - 8D6F717E311B0915A51BD17FBEE04B84 /* FUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 3481FF00891AE43E4B632A4CDAB486D0 /* FUtilities.m */; }; - 8DA31D925FB27A51399006283B095064 /* FIRFacebookAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = D4E6F1DE89622CF0F1288F7E570EB35E /* FIRFacebookAuthCredential.m */; }; - 8DDEAF80F8EF45A9582103768083CB75 /* FIRAuthWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 76D68407463B88344E760BCEA86276C1 /* FIRAuthWebViewController.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8F0A9E78D0577FC05F67D8169CEEADFC /* FStringUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F3E8A735316EEF206EAC0936A51B47F /* FStringUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8F846C2683E0735603B7D04F49B755F0 /* FIRStorageUploadTask.m in Sources */ = {isa = PBXBuildFile; fileRef = C54BB6D9942B602515D259EA3423EB87 /* FIRStorageUploadTask.m */; }; - 8F96035D5A9AD579DF0A968D0290B1BD /* NSError+FIRInstanceID.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AC1B137356697C28275A94586C5C739 /* NSError+FIRInstanceID.m */; }; - 90366333E4A82F149AB5AD885645E35E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */; }; - 90FAF3F5EC0574B7263E338985C22E73 /* FIRVerifyClientRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 63463ACECA0D0EBFA498CD3B29CDD805 /* FIRVerifyClientRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9127FF562CA501ECA24015659863160F /* FIRInstanceIDTokenFetchOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = C8BA8F9578EAFFC0792C7B73BB428ACE /* FIRInstanceIDTokenFetchOperation.m */; }; - 913C579023800D52221B6D36F5F02D75 /* FIRInstanceIDTokenInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 22BE51743C609FD0306CE746A9364DBE /* FIRInstanceIDTokenInfo.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 914AEF26749A4F36D94424D8A0B44BDC /* FIRVerifyCustomTokenRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 73D7C4832D8848B73ABD12B152C7D3CE /* FIRVerifyCustomTokenRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 914B91B07E854BEC1577BADE6C24E2DD /* FIRPhoneAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 2348E4D2B13991D1EF39D0D2876A8C6C /* FIRPhoneAuthCredential.m */; }; - 91DF79933CDC38A9BFCF26CC376C18B5 /* FIRSignUpNewUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 17C82B891897BB47D488F8FFB83D5619 /* FIRSignUpNewUserRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 91F112431966D2D0886814CD1EAB3B23 /* FIRStorageErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = ADF1E1BF913E7933D79D4E632E9991A1 /* FIRStorageErrors.m */; }; - 920A5F5BE6201D905960DD189ABD6A3A /* FEventEmitter.h in Headers */ = {isa = PBXBuildFile; fileRef = B3051E912E2DF6FAA99B7AE07119B0AF /* FEventEmitter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 923A808AAD0A51219D6C548DF6D1BBF3 /* FPath.h in Headers */ = {isa = PBXBuildFile; fileRef = B881F2682F6BB345F67A08D8008FFFB3 /* FPath.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 92474AF5520B2869427F5F4D6DED1ADE /* FIRAuthWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 08D54D229576FC653365892AB8872535 /* FIRAuthWebView.m */; }; - 9247A9DFC0317B6B3896A28CEB5F6EA4 /* GULMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = F3E7BC9A5CD33728D88F26459F587D16 /* GULMutableDictionary.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 9301244951281B9FCD07E09D941850AE /* FIRDatabaseComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC3AF9EECF1CC622A14C93AFD6F6E54 /* FIRDatabaseComponent.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9328BE924D93807600398ECC53D13D96 /* Pods-FoodApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EAD07CC0F86D45EA5E1C31331F5464E /* Pods-FoodApp-dummy.m */; }; - 93E3037DDCC6A4AD0E5B087DF63A87B6 /* dbformat.h in Headers */ = {isa = PBXBuildFile; fileRef = D18B977342D4EC54BA1DF3E600B21830 /* dbformat.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 93EA8BD3293A7315031E23645BDB225A /* FIRAuthAppDelegateProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 49714AB0D4D0D3E3315FBED9D2F0572C /* FIRAuthAppDelegateProxy.m */; }; - 94847D7CFEE66B2A5575A7CEAC479A40 /* FKeyIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 22F36F2EB5B85FC832AFEED2FA184D00 /* FKeyIndex.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 94DB9009E5B79B6338A6B32D88DBCEC0 /* FCancelEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = C52A9C80ACAD7A2FAEDBEAE17B5C3199 /* FCancelEvent.m */; }; - 957EADBD0256931411E6667BC4BDC0AD /* builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 4788688CF0CE231B1EE91CA4C66DE9C7 /* builder.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 96413E2FB7C647AFFA692CE4A908A50A /* FIRSecureTokenService.m in Sources */ = {isa = PBXBuildFile; fileRef = B3A9A3236666F99DA181A7736384737A /* FIRSecureTokenService.m */; }; - 96912D0B39B3D996FDE1CFE3F50138EC /* table_cache.h in Headers */ = {isa = PBXBuildFile; fileRef = EE0D085AF1B47CA9D5182E827784743B /* table_cache.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 96E6B32E8E6086BCD04938BDFCD8793E /* FIRInstanceIDAuthService.m in Sources */ = {isa = PBXBuildFile; fileRef = C1466690E17D3E068E47539E060853AF /* FIRInstanceIDAuthService.m */; }; - 97CB4D80FBB25283F391413F0DECB7B4 /* NSError+FIRInstanceID.h in Headers */ = {isa = PBXBuildFile; fileRef = AAD4FBBA400D0C6F9E5873FD95BC8AFC /* NSError+FIRInstanceID.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 97DB5328020E9E90F9F345FC3D4BF24D /* FIRStorageReference.m in Sources */ = {isa = PBXBuildFile; fileRef = E8965026C355CA3EAAFB8FE8544A96BE /* FIRStorageReference.m */; }; - 9868D7297569D639E79D0CD2FF36EFF5 /* FIRAuthErrorUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = DCB5DAA989436994242BDAB2CB654D47 /* FIRAuthErrorUtils.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 987AA96FF2F37CA0A87C31EC428381E9 /* pb_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D59EF2626A3624BBF5FE22C9A123190 /* pb_encode.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc"; }; }; - 98D84A54E63261142E544BAEC81FCA5F /* FIRDeleteAccountResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1619B1F9E6E76BABC17CEF6DFA699A01 /* FIRDeleteAccountResponse.m */; }; - 98F55D8153308EF256C025DF85DA6112 /* FEmptyNode.h in Headers */ = {isa = PBXBuildFile; fileRef = C6B9DDB1286042E54284A5AD4E8D6CCC /* FEmptyNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 98F9D1DF6D8D8B956D90CA18324FF9FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */; }; - 991CB1718946D23A9C35A65BAC6FF309 /* c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 915CEDFD3F25E8A85780D0CB51B28FFE /* c.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - 993DDA9360079D849A4D3B16CFBE226A /* FIRInstanceIDKeyPairStore.m in Sources */ = {isa = PBXBuildFile; fileRef = BD02EBD6BC2306B6C2D5D67A9F0EC244 /* FIRInstanceIDKeyPairStore.m */; }; - 9A3BB8322B4D9220B21FA409EEE85871 /* coding.h in Headers */ = {isa = PBXBuildFile; fileRef = E8C9FC7977BD96BA45827A2EDC032919 /* coding.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9B5C5D7FA708DF18C1BC137D8CB4A218 /* FIRResetPasswordResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E530070FE51B10AACCAE0D2C596141EB /* FIRResetPasswordResponse.m */; }; - 9E4673E47871B269FC811D594994102B /* pb_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C736C58C8011A9AB7EA574C4AAB4C81 /* pb_common.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc -fno-objc-arc"; }; }; - 9FA5A831BAB2C4ABD068179E743C8C5C /* FTypedefs_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 3428FB24D92B1FEE46F15233C2AE580D /* FTypedefs_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9FF10DB02C5CAA3B08874BFB4715C2EE /* FIRGetOOBConfirmationCodeRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F01AA85527337C7BE615F1EE2239B34D /* FIRGetOOBConfirmationCodeRequest.m */; }; - A01331EBF858B835EFC5F8930A96F148 /* FQuerySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 41EA7F628F3DFFF3DFE6ED909553FA9B /* FQuerySpec.m */; }; - A04172493E90898F0FC09D0C55FBA726 /* FIRVerifyPasswordRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 7883EA73BD06379080BB9C8DE1B6C7AD /* FIRVerifyPasswordRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A1378FE41C3DA69263C564F0CD1A38E5 /* FMerge.m in Sources */ = {isa = PBXBuildFile; fileRef = 942E936F1CE4352A3B2232E542779672 /* FMerge.m */; }; - A13EF67A149C795FB6898CC69D56812B /* FStorageEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 5525DBB94ECC5FDC2AE2D157D9CF6368 /* FStorageEngine.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A18D5EAD9604BC73CD95E01F25AE10FF /* FIRDatabaseConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B60F8E71EAF84A265B96758857FB14 /* FIRDatabaseConfig.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A1F7382CC1A92B2908C751EC9C58476A /* FIRAuthTokenResult_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A66867F845649BC8FB6659824369BF /* FIRAuthTokenResult_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A2072A2052AB032F3FA11214B6204364 /* snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = B3D99B760348706303660256794EA8A7 /* snapshot.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A229DEFB4D1D747640ABAFB557258B52 /* FIRInstanceIDDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 21EF5103597DFAFE936A1312165188A1 /* FIRInstanceIDDefines.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A2791159AC33461D77B7061FCFD76D58 /* table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628E2099C62D25FD31A1D06C75984156 /* table.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - A2F12BB9F26DCF105119B2CCCB97FDA7 /* FIRStorageGetDownloadURLTask_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DD4BF85A18197FEBF638B21FC3A784A2 /* FIRStorageGetDownloadURLTask_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A3B3791F6386DC1EEBE44032270BC5B1 /* skiplist.h in Headers */ = {isa = PBXBuildFile; fileRef = F08F5A0C3C4176826AC4589549E65E77 /* skiplist.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A3F4FCD210BDCACBFA4529DEE25D4E3B /* FIRStorageDownloadTask.h in Headers */ = {isa = PBXBuildFile; fileRef = A4EE74BF0062C5527D4F1068C89383EC /* FIRStorageDownloadTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A4395E9EE30C52FBC521772EC3A10710 /* FSyncPoint.m in Sources */ = {isa = PBXBuildFile; fileRef = A5200884DCB20D1C532F3365D3BF7138 /* FSyncPoint.m */; }; - A45FA3D6744EF45730ECDFA990035784 /* FIRCreateAuthURIRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 518F093F87A904606DD082315D7C8944 /* FIRCreateAuthURIRequest.m */; }; - A46EFD7D827C6DD39056EB373A753AC5 /* FIRLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 480D871CC0C4F4014529D55C3F0898FF /* FIRLogger.m */; }; - A4D502384CA4476AEF7EAADF694B4D04 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */; }; - A5694BA821B7238CA6EE28B05D4FE367 /* FIRPhoneAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 41FDFA540103BFE5E19F3494B8505A5E /* FIRPhoneAuthProvider.m */; }; - A5A03A32C743C1F49183F2603C583858 /* FIRGetOOBConfirmationCodeResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 71D6A81BE570ABCD48BF88B1C039ACBC /* FIRGetOOBConfirmationCodeResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A5BD0209AAEDCBA5AF2C23B6F64BEF9F /* FIRStoragePath.h in Headers */ = {isa = PBXBuildFile; fileRef = 3545E81BF0178BCCB06EEF760F1E5AAA /* FIRStoragePath.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A5D1F0C7D9FD62D01D16176A30F68DCF /* FIRAuthBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = D07E9815371236B64A7536957C6ADEBB /* FIRAuthBackend.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A6244665DCF3C8D5D3BFD33A4943E0E3 /* FIRResetPasswordResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B27D67515558C81527EBF9AB7F7CCE94 /* FIRResetPasswordResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A757B33D3849BB87A16B24B6C8A19A26 /* FIndexedFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 81EB03E7EB76F8BABCED0D1C12C855CA /* FIndexedFilter.m */; }; - A7AB49BE69CB6215D1AE1880E13B938F /* FNamedNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D59DC40BAE72A3158EB1277E81A3415 /* FNamedNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A7EC418023C3D93182E327977EB8A23F /* FTree.h in Headers */ = {isa = PBXBuildFile; fileRef = CF7A99AFD9AA45EE6E31FED31F0B6A7E /* FTree.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A81B61396978C96521CFC8A480E036A6 /* FIRPhoneAuthCredential_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = C852790519048CAE41D6146DD81939F8 /* FIRPhoneAuthCredential_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A861F266BC964811DBC35E3C999929D3 /* FPersistentConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DDD8D89CAE73BA716FB80BCC1E6BD64 /* FPersistentConnection.m */; }; - A86B262118D77619A11EC299A79E1248 /* FIRIdentityToolkitRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8973370B30473168FB7B54E64633C387 /* FIRIdentityToolkitRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A87554635F65501E94EE1B2E0B746D6A /* GULReachabilityChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = D42C66AA5F9003406B21B758D6CB7508 /* GULReachabilityChecker.m */; }; - A87F00084AEFB5EBC3A998A06FFD314B /* FIRStorageDownloadTask_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 447375EC439FFD1C02EE932FF30E45A5 /* FIRStorageDownloadTask_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A885FF4E0A7495FC326B977138762F79 /* coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = EB404E3AE01D2233399D6FFD727D3013 /* coding.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - A8C99C7E0B3200BF586E7C40EFBE584C /* FCompoundHash.m in Sources */ = {isa = PBXBuildFile; fileRef = 165C032EF1376857509C3860D503015B /* FCompoundHash.m */; }; - A8DD9A76DD0BA8EC59B171C086D17311 /* FIRUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A68861BDAC9F79D60A1182C8026F41E /* FIRUser.m */; }; - A96098E29CB7D5A4DD6B380E7DDD9A3D /* FIRGameCenterAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B06C7E35631EF595CEB3F8D4C5F768B /* FIRGameCenterAuthCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AA6CC97C45889CE4785877000A88EC6F /* FIRAuthErrorUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 71861DFA7BB3624BD632AAD00515E87D /* FIRAuthErrorUtils.m */; }; - AA9D1CF02CE99F3A1ED4823D3E2848D7 /* two_level_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = A39B5CC64FD68103B773F6FBF2B6EAFB /* two_level_iterator.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - AAA84F65B67D7B0D0AE269B2A89D8051 /* FLimitedFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 85A9CF5E02D5D1F12377C665D83CBB84 /* FLimitedFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AB677DF849086FA63DCBE09871B74BA9 /* table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCDD3C4A494F2385C46C74B4142EEC52 /* table_builder.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - ABE3CCAC32E0843FEC359BF913ED54F7 /* FIRSignUpNewUserResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 977B0B89B9FE59C1513D05CC42FB8DB0 /* FIRSignUpNewUserResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AC09942666E8A16B58E7C4EF58109EC9 /* FTupleFirebase.h in Headers */ = {isa = PBXBuildFile; fileRef = AA96F671271411F0272D3373152688DD /* FTupleFirebase.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AC3F1C446721744103142EA2B75FB886 /* FIRServerValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 922A49DD4D7E595AFFEA9D03A413DF08 /* FIRServerValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AC5490F06257BFF9D63E17D8870430BD /* FIRVerifyCustomTokenResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = ED99989C760A526A72A2F63EF1D45CD7 /* FIRVerifyCustomTokenResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AC68E7E19B9E699DF07625469B91B1F8 /* GTMSessionFetcherLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = B3F94C49BA00853911BFA9EEEC2974CD /* GTMSessionFetcherLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ACF04D5F7E8956A0FAA34EAD8ED1AC8F /* write_batch.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B54156F39B2ACCF20AC8C43ACB97EE9 /* write_batch.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ADB7FE13B7DFC9B5162FA675EA4426CB /* FIRAuthDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C2AB0587B6DEFCD5A98218E92E98FD9 /* FIRAuthDispatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; - ADC423E46F97CEBA77460EBC67F54F33 /* FIRDatabaseComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = A61A8F6AAA65CF09CEF36DF23D7C19B5 /* FIRDatabaseComponent.m */; }; - ADD8826B4AE99D0759AD0591FD301CCF /* FIRUser.h in Headers */ = {isa = PBXBuildFile; fileRef = FA59B9AAC1448068CECE850083F896E4 /* FIRUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE4A5ABAEE4562770087DDAC861F2819 /* FPriorityIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = D9E978F30BE4FF3532C89EA5DCDDDD10 /* FPriorityIndex.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AF6ACB2BEDE7BDD42A8CBD6A102945E6 /* FirebaseAuthVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C11107F3372A30CEBB81E77AB6A7266 /* FirebaseAuthVersion.m */; }; - AF7B7285592E52CED72C396F6CE9F1DE /* FIRGetProjectConfigRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = E4E3840561AFBA5611DE8E3007A1E202 /* FIRGetProjectConfigRequest.m */; }; - AFDD31C2B23BAC310693E0B0EB0B392A /* FIRStorageConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = B967AA508C8FAAF1CDB1B5CC554230A9 /* FIRStorageConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B050641BB40612D2C95E1796C43CBFC8 /* FIRAuthAppCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 43AD22E2ABA404BF3030B40E400B73B9 /* FIRAuthAppCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B09C394D3F5178A33A0490B9D9E95E8E /* FIRVerifyPasswordResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A66B89D58B766882246645BD8B2E0F0 /* FIRVerifyPasswordResponse.m */; }; - B0AFD08FC30918916E76FC85B949656F /* FMaxNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 9833A5B2D2380DF40F38FA62FC7D8CD7 /* FMaxNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B129CCC41C1D626E64A0BC4DCEF8FD00 /* FIRRetryHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BC83294537299214B742BD92C67BCC2 /* FIRRetryHelper.m */; }; - B1AAFD579BDC16A45C26DE2F4E3656B4 /* FIRSetAccountInfoResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9366F68232237363C4C84CA8F270C673 /* FIRSetAccountInfoResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B1E2BD00F44D154485352C7B29E62FC2 /* fbase64.h in Headers */ = {isa = PBXBuildFile; fileRef = 8ED1110811840E9F617886E43919F550 /* fbase64.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B221334BBD361B1C33C4B9CE9164128C /* FirebaseDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DF9DB0FCD3EABD8AF1F6EF083A6BBC6 /* FirebaseDatabase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B26C23D4D512BB80872F5206A9A6A6DA /* FIRTwitterAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EA984C0CA4E067FF2355EB4343907AE /* FIRTwitterAuthCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B2B37105EF8BA1702E6A560EF1A1321E /* FIREmailPasswordAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A489BFBA782016F623533E55181A4C5 /* FIREmailPasswordAuthCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B31408B26E66DAC9D8A7DFEAEC1C67E0 /* FLLRBNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 25CE5A0CDCBC4CF96F6633F9EC9A1F1B /* FLLRBNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B383A17E39A36654E8A728B38C2EC6A7 /* FIRInstanceID+Testing.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AE78FCFA6B344FCF551625CD626300C /* FIRInstanceID+Testing.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B393D5435C221A1040E2B7E4AC6024E2 /* dbformat.cc in Sources */ = {isa = PBXBuildFile; fileRef = B07870B373F3CBE57521745E377A615A /* dbformat.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - B3DB754645090ACB4AA01CA344D68ABC /* FIRGetAccountInfoRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = BA567F9B50F1754221B75A72DF6DD86A /* FIRGetAccountInfoRequest.m */; }; - B46D42AFDE7DDCF8BF8E0B27D3CF41DE /* FIRUserMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 5269EE3A9C9A0B4E3B5606933F044539 /* FIRUserMetadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B48820C13D319A1E23BADF60214E433A /* FServerValues.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D1F57DF35FA7430AA6DB574F4DF43C8 /* FServerValues.m */; }; - B5CB10287D862F8BE22A2E8A371D94B5 /* FIRInstanceIDTokenFetchOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F1488BB5004D9C1C2AC1E93498AF6FF8 /* FIRInstanceIDTokenFetchOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B60C146A2C64210132C0873EBB5F07E8 /* version_set.cc in Sources */ = {isa = PBXBuildFile; fileRef = CBA49F08492728C7CEF722B4461A7682 /* version_set.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - B60FE6B90113FB86FD42F44701DA96A3 /* iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 110127A52F503DFD6F1ED87E8E9858C4 /* iterator.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - B61AFFC8709A6DFD4CA9F691D893D334 /* FTupleTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 5900BBB74A1C8A89D84404007A6B840F /* FTupleTransaction.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B66210DE27D8366DB5B7386870142981 /* FIRGetProjectConfigResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F73ED72759D84D1E45C37F712727036 /* FIRGetProjectConfigResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B7D2149DC67052F8A1997C4905F501AC /* FIRConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = C2F6F8AB3C667704F7CF6B6E3CC126A6 /* FIRConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7FDC251D23FA0565C6837F4C51A92B9 /* FirebaseInstanceID.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A93033CA3699FE5432292AEB83EC6F2 /* FirebaseInstanceID.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7FFEEE2C145B2BA6E14759822C621E9 /* FIROptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F3342FB4C76308019B0A30E86DC68DF /* FIROptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B8218CB479D8FBFB63894EDDE141E86F /* FIRSecureTokenResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 242713338442B10C2C94C52824EAAE2E /* FIRSecureTokenResponse.m */; }; - B853A69DDBA84228262F26E0B1D45D75 /* FIRFacebookAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A297CC1E3226DEDE9D8D550221D0149 /* FIRFacebookAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B8715DCAF9A30082FCF8E69423ECD096 /* FIndexedFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = CFF610893571DFFE5EC4369379589AC0 /* FIndexedFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B8CA68A990C821F37B2DA06171B69FBA /* FIRDataSnapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = C6B2485FF2E4B99D2581B2128532395F /* FIRDataSnapshot.m */; }; - B931E78D521F07A26A5EDB8EB00A9351 /* FSparseSnapshotTree.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7A1725B0A364A94929B294DFCC75F5 /* FSparseSnapshotTree.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B9A14FE7CA4DD5D786BAE918C5E24E0C /* GULAppDelegateSwizzler_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D6A5485297561155F4B4441ED60F970 /* GULAppDelegateSwizzler_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BA3B9F2E7F4AC6F26481D0E25F0637BB /* FIRInstanceIDStringEncoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 720D2D19CBDF9BBD1DC98B34F653E63F /* FIRInstanceIDStringEncoding.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BA72D7D2E9C7993C7B4609A85BBF0BC6 /* GULUserDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 05E9D7BBB6C8712DCD0119FD5FEB8462 /* GULUserDefaults.m */; }; - BACC64600D37A97F6927B3FDB3210B1C /* FIRStorageTokenAuthorizer.h in Headers */ = {isa = PBXBuildFile; fileRef = C953C1DB15B681BC1CB14D704C7E5B25 /* FIRStorageTokenAuthorizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BAEAF173A29281C77C93733B992CF986 /* FIRDeleteAccountRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1559D90CFC7F8637E6C5FD474E63404D /* FIRDeleteAccountRequest.m */; }; - BB52F6A24C293CD486DC9F6F55D1717C /* FIRStorageDeleteTask.m in Sources */ = {isa = PBXBuildFile; fileRef = CF827B2C266EA61D83C4FB16F013761E /* FIRStorageDeleteTask.m */; }; - BBD8B4091928E050DD4E1773C5138506 /* env.h in Headers */ = {isa = PBXBuildFile; fileRef = 09A2C7D544D38D59BE7DCC0CBF034170 /* env.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC225BDB8EA011A16EFF834F2538946E /* FView.h in Headers */ = {isa = PBXBuildFile; fileRef = C30BADF1398C83CC5FC021D4ABED51A1 /* FView.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BD1596D0B56AA856F83C3AE038885FA6 /* FIRStorageObservableTask_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 932AD7EB552A0ADFB8FE0EEAB5B42ECC /* FIRStorageObservableTask_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BD3A966181279EC5ED12ECFE8B6FAA16 /* block_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 42314F67CFAC6EF9F955C8F723D3E712 /* block_builder.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - BE93A3F8DCB27637362E967533D46A11 /* write_batch.cc in Sources */ = {isa = PBXBuildFile; fileRef = FF5122C1006A0D131CDFD3F9267E559B /* write_batch.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - BEBD7A14AC0F933FC541DC059DF59C2E /* FMerge.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F6D22246A3755841E95B3F86FA4BC10 /* FMerge.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BECFCA5B19573282CB79986C302DF282 /* FIROAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = A082045DDD2F14D1271C63E9A1A1D9C5 /* FIROAuthCredential.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF1FC88F8FBAFC347DC2B973A536177A /* FTupleStringNode.h in Headers */ = {isa = PBXBuildFile; fileRef = F18041550B1F8E9C4A3CFF414F1C9E92 /* FTupleStringNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BF6DC399740F7C8880C2831D4784DDC8 /* FIRAuthGlobalWorkQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C3ACF0C6C2662805FC41BFC81DE9931 /* FIRAuthGlobalWorkQueue.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C01CAD7B9059839E82A80E334EDD8BE8 /* format.h in Headers */ = {isa = PBXBuildFile; fileRef = 85955A814652E06984348A0C9379F705 /* format.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C02935104AE671E6AC96FF1AB38D9075 /* port_example.h in Headers */ = {isa = PBXBuildFile; fileRef = 90F49D51CA2CDDBF412B34C8711C1F71 /* port_example.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C103FC5145DED74F17EA4A71FA4A888B /* FListenComplete.m in Sources */ = {isa = PBXBuildFile; fileRef = 41280C219F02FF010042A3D4E80FB7A7 /* FListenComplete.m */; }; - C12D9DD10964F26C5324B79DAD2E3F87 /* FirebaseStorage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 392DDD6C7DF71CB9569FB923909348D6 /* FirebaseStorage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C17963D5FEE5E593B96E0483361B6448 /* FIRInstanceIDTokenStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EBFF31A64710B3D9E8C70A502FE6FDC /* FIRInstanceIDTokenStore.m */; }; - C22F9B0D1313CE49A865C3DE2A64275D /* FIRStorageTaskSnapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 01D7B14186D690E0E96CE2533174C3A0 /* FIRStorageTaskSnapshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C23E41C63401B329521D0CD67236B03F /* FKeyIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 1953AF6171D6076E26FAE1961F870C8E /* FKeyIndex.m */; }; - C2D9ACF5BFDBCB35F3BD27A9ADE5698A /* FSyncTree.m in Sources */ = {isa = PBXBuildFile; fileRef = 633D37D69F01FA94799A855FD77A3C72 /* FSyncTree.m */; }; - C31C64BEA8372E92F27CFD7DD92B52BB /* cache.h in Headers */ = {isa = PBXBuildFile; fileRef = 4602C49799BE4C15D8BF3C6630FFED3D /* cache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C31E8F609B4D62588A3821F25F75AE56 /* FIRNoopAuthTokenProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = CD31E1F69658A253011ACF1E70F68A77 /* FIRNoopAuthTokenProvider.m */; }; - C33F367736E7E03DD6447219E6461B21 /* FIRAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E3DE5DD649A16A93414B653A446BEC0 /* FIRAuthCredential.m */; }; - C346E1419BFFE9C91296E4C05FEB72C9 /* FIRDatabase_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 14BAFD0E1DED6FE1F344632AA78249F9 /* FIRDatabase_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C354CFFC33EE92455F0D736E5086471E /* FIRInstanceID.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CD9500EEEAAF5A6CF95BB131645F8A2 /* FIRInstanceID.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C3574C366FEB82BC87E0CE5F14625DAB /* FTreeSortedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = D9BBE9102939B5AF8C30C316E653E8B9 /* FTreeSortedDictionary.m */; }; - C4AEE608C842E7649A320A3A1BA9A5EB /* testutil.cc in Sources */ = {isa = PBXBuildFile; fileRef = 665CD3D48831A201BBF48AC1CDE6808C /* testutil.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - C58F53EDFDD441299B6D85CFA4AA44B7 /* FIRStorageTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 790AA261DA1AB9FB637730FB6F609E65 /* FIRStorageTask.m */; }; - C592B08563D05F06328D96EA0BF86ACC /* FIRSecureTokenRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F007025FC416C22C0112996FB58041D2 /* FIRSecureTokenRequest.m */; }; - C5CD2AB800AAA3DEE180A01CC2053CE5 /* FSnapshotUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 211AC4263BB604C499433728C2ED0995 /* FSnapshotUtilities.m */; }; - C5E83F359E59D15858A90C3011317B43 /* Pods-FoodApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D05A88165A4534979F2118A069E5AD /* Pods-FoodApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C614A747F15F656FA3FF693BD136BDEE /* FIRStorageTaskSnapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 5606BB1DF8ED99A820BBF2855E6370DA /* FIRStorageTaskSnapshot.m */; }; - C626AF3FCEDB5BAB25EEB7DF3224A5D0 /* FIRDatabaseReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FEE8D6DC1CDEF69076945AC187FC241 /* FIRDatabaseReference.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C6274CC1DE5BE388B69F28BD217A7E4C /* FIRCreateAuthURIRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = BDA230B665853D12DF0E31CB6FEA8654 /* FIRCreateAuthURIRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C65DCE6E2A1C2FC1312B1FE4030F77F9 /* log_writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3F76A9E21C49BF7DE1D75C742EFFCE /* log_writer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C6757D13783CC619F40E0B496DAE4592 /* FIRSendVerificationCodeRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 520AFCF6FA37EDA97367B3823779931B /* FIRSendVerificationCodeRequest.m */; }; - C676F13463283B86DD71DCD31FAAC609 /* FIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = EE61A8B24BAD0322627DFA515F91CBEA /* FIndex.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C69049FA337560F0DE53CEBF4EE999C2 /* FirebaseDatabase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FEAAE357744E294CB1E6B494125348A7 /* FirebaseDatabase-dummy.m */; }; - C6AB87814E63CA7C6A9B70408A7DD99B /* FCacheNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 885BDBA1FCCEA200D9092E6825C2938B /* FCacheNode.m */; }; - C6C07236FD60B46C2D6716E5A63178B5 /* FIRVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA8143167D618A8DF96D434E77EC3C /* FIRVersion.m */; }; - C6C36641C38FFFA4C44E389B1D89D6D3 /* builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 012DCBB1860411CFE7E93C8BD2A2A5D9 /* builder.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - C76DA36ADD8B8DD8F76F8AA72CE514A7 /* FIRStorageConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FD36DAE25C947AEB33FE14F2AE3BD1B /* FIRStorageConstants.m */; }; - C82D4591B2106F9337C9C3462CF73D6D /* FSRWebSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 06C2AD009117FC01E7202F4DF4DABB56 /* FSRWebSocket.m */; }; - C846B5E1106D5BEF861BAC5B3E74B2B6 /* FIRAuthDataResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 7871CCA6B38AAAA7C49C3F537B9D101E /* FIRAuthDataResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C88B8C06538CEFC1D04DCD6FBAC5485D /* FRepoInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 37DC8061E71A3F64016C10244E021962 /* FRepoInfo.m */; }; - C89BF1F21A7C2C10CD6330989607E9F7 /* GULReachabilityChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = 756C85068A7A74500B084C3204C4E44B /* GULReachabilityChecker.h */; settings = {ATTRIBUTES = (Private, ); }; }; - C8B59CE263C91209FFB046CE933A0A71 /* GTMSessionFetcher-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4707F4492884C6E647168825F246A3AE /* GTMSessionFetcher-dummy.m */; }; - C8D14CC38770530597C36AC5643876B7 /* log_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 123C1445BFCD6A0CEE58CB89197CDA15 /* log_writer.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - C9121C9E95AF8B2AF8E17F7B5E2B80C0 /* FIRStorageReference.h in Headers */ = {isa = PBXBuildFile; fileRef = F4D87116F132F40DC8867AE769A6B702 /* FIRStorageReference.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C9222734C2A42784D81DED4460757627 /* FIRVerifyPhoneNumberResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 06A15F9620B94F308C2721CC589A088E /* FIRVerifyPhoneNumberResponse.m */; }; - C9339F82612A9FB6AF04E8C79944AFDF /* FViewProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8D4E6514FF098D7A1B55FF7A87D11C /* FViewProcessor.m */; }; - C95694A4F7282655616153FED50EBEE8 /* FIRVerifyClientResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 057A37A0B59A832E8F58776C7E4CAECA /* FIRVerifyClientResponse.m */; }; - CA630FEE04708014483CAE5860A04722 /* GTMSessionFetcherLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F9F4A97D91AF749272C3710C77E913C /* GTMSessionFetcherLogging.m */; }; - CA9F1C26D1C6F2AE3367E1098E971378 /* FValidation.h in Headers */ = {isa = PBXBuildFile; fileRef = F4DA326F2A37A3A24338EC1E0C78BB9B /* FValidation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CABC0BA4E68F52FA09E699EDB3520065 /* FIRInstanceIDCheckinPreferences_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = D4527281949963D776DC9D0985DF8EC3 /* FIRInstanceIDCheckinPreferences_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CB3F80AA9A2A6D7A833CF71EC8B194A4 /* FRepo_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = D3589D470EEE9055227B1C840786232F /* FRepo_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CB71A3D8C656D522B8EEF2F5C21E0210 /* FIRStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B7B4C111386140849DE52575FA5CA0B /* FIRStorage.m */; }; - CBAC2247B99FF685C716837975217576 /* FIRAuthKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = A05F6A9BC071DEA50BE7948CA57ABD60 /* FIRAuthKeychain.m */; }; - CBAF15C69FA079667FBE83958C258C09 /* FLLRBValueNode.h in Headers */ = {isa = PBXBuildFile; fileRef = F50F42487664140489FF52111D770656 /* FLLRBValueNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CC362A633FC411A7A71D18B8285061BD /* FTree.m in Sources */ = {isa = PBXBuildFile; fileRef = 19BD0622D341CDA89327AE82E52F3D16 /* FTree.m */; }; - CCB56B4BAAA242D1787806A0CFC1EED6 /* FIRStorageUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = C1C8E8A44987DC36C799C84C55B12D4E /* FIRStorageUtils.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CCB8A80099ED9B54F2BDCCD1CA948194 /* FIRDatabaseConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = B18B2E4739D2C1E5C30CFC1A02E181C1 /* FIRDatabaseConfig.m */; }; - CCDC6A2D220734A6CF180BCD58369448 /* FChildrenNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 88D0369BC3444B15C5A06B03ABED2D29 /* FChildrenNode.m */; }; - CD41505481A841FC6A05CBA7A782F1A7 /* FChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 1669C5FD7233E39DBCCD9C6B4EC8E68D /* FChange.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CDA4CF1879E5FCED042AFFFEE880A8EE /* FIRAuthRequestConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A40C0F4EAF56F93F636F14AB606B0F8 /* FIRAuthRequestConfiguration.m */; }; - CDE1AD19356C2E36E1E45A468112C162 /* FIRGameCenterAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 78528EFC6339BEE50784E020ED28B5C9 /* FIRGameCenterAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CDE402C6A9890D2F91B73EFEA4C96BB1 /* iterator_wrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 28623D9EA3BBD2255FAE8311D5A470CE /* iterator_wrapper.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CE51609F8057467517B3FE598D1E6206 /* FTuplePathValue.m in Sources */ = {isa = PBXBuildFile; fileRef = F56FAFE6DF1C497E7EC2E13D436C0491 /* FTuplePathValue.m */; }; - CE5A3378A4700D7069C4ED7261FC6DFC /* FIRStorageUploadTask_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = E3AFFF1C45DF347F548987E4EB86140F /* FIRStorageUploadTask_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CE7721AF136E5B21B89C83793813925E /* FOperationSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 18485D6BA9FCC1213D138610EC1AF34C /* FOperationSource.m */; }; - CF2538EF181D944D9B60CED0F7F18AB3 /* FIRStorageComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = D4F32BE1DD76FB6B9233983AA0FE23A1 /* FIRStorageComponent.m */; }; - CF4F75333E77887B1590FAD2BA930514 /* FIRInstanceIDURLQueryItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AE27390794964B754321C4715002D22 /* FIRInstanceIDURLQueryItem.m */; }; - CF6142F4799AB1DAC5A91C3F5EA23857 /* GULNSData+zlib.h in Headers */ = {isa = PBXBuildFile; fileRef = B9AE967A93AB043B81715E0CB2729746 /* GULNSData+zlib.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF6756848AD430D2BE0DAE5D129B9BDA /* FIRAuthAPNSTokenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 158CE5C1EF386C7996C926205FCED4D9 /* FIRAuthAPNSTokenManager.m */; }; - CF8C73F2D0CD968E80AC7FFBA1427AB5 /* FIRSecureTokenService.h in Headers */ = {isa = PBXBuildFile; fileRef = F3BD0D8B08F1AADDB71971C8B265CC1D /* FIRSecureTokenService.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D05EF688BBA09A448428F032A5CFF76D /* FIRInstanceIDAPNSInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 9359C6214FE2610FE7661A415B0C1AFB /* FIRInstanceIDAPNSInfo.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D07CA1346C5CC8BEFEE0CACF36F3AD88 /* FRangedFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1738F789E76BDEB211DCF2425958ABF4 /* FRangedFilter.m */; }; - D0F3A2DEC4AF7FAE8198362242FF6938 /* FIRStorageGetDownloadURLTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B4437E6CFF46CA046598822779E1311 /* FIRStorageGetDownloadURLTask.m */; }; - D1C62503BF313331D2CE49BD4CC2F067 /* FRepo.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E1B937EAFE914A5C8EB536E70FA627 /* FRepo.m */; }; - D1D1638886C1167B2DAE5A43BB06BB4E /* FAckUserWrite.m in Sources */ = {isa = PBXBuildFile; fileRef = B1CF1D6A5AE5A851F33F8AAB1542D012 /* FAckUserWrite.m */; }; - D211425BA93BCA439950B6E14E16219A /* FRangeMerge.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C8A7F0B382D0FDD6AEF71D9953824F0 /* FRangeMerge.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D22115F16C33AC1B0545F4B32D03C752 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */; }; - D2A0154558EC0297DAF341A828EDB4D2 /* FIRVerifyPhoneNumberRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EC51AFE930D198BBE8B156BFB9E27EF /* FIRVerifyPhoneNumberRequest.m */; }; - D2E0909F9626E1BFFFBC7B41F1A27B9F /* FNode.h in Headers */ = {isa = PBXBuildFile; fileRef = E63E16F99EE19718A20E1CBA0E45C390 /* FNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D2E41691BDBD3656C1AB86914754668D /* merger.h in Headers */ = {isa = PBXBuildFile; fileRef = C2CFC3A8F5DED03F79A3A9CCC5F616BA /* merger.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D2FDC3437912EDA584BC913A42CA14FC /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = C5F6AD964ACB0DF753728FB210CC1BED /* table.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D3312F060F930F962F065AA29AE38842 /* FIRDatabaseReference_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DAB28F6B7DFA403629E23B3C2903D8D9 /* FIRDatabaseReference_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D33C91269C61F1029C7CC7B9CA9DA6F6 /* FValueEventRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DC34600911028B32C5CEF951B2ADDAA /* FValueEventRegistration.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D3498ABF124D7FC54811063C49F4F779 /* FIRAuthWebUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A60C7A67F33111D198AB8CFA8BBA42A /* FIRAuthWebUtils.m */; }; - D3CBEAE8AB226FF676C09A08F58220D1 /* FIRAnalyticsConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C7AA0D303881127A10F0B6EAD3F784A /* FIRAnalyticsConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D3ED22A4A50FA9D7D68EEFCF804DBB25 /* FIRInstanceIDUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = A4FF1E23355AEF0D4A5F85D607AAE585 /* FIRInstanceIDUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D3F42DBA2274EECB149681DDDA4B660A /* thread_annotations.h in Headers */ = {isa = PBXBuildFile; fileRef = A0737E36676AA3ADD7D109D3A5BB75DE /* thread_annotations.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D40EEF368C96FDD6A8A6793581A43CE1 /* FIRAuthRequestConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 548A75EF775F946A24E5BCE27D4A9406 /* FIRAuthRequestConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D43941064DB609279DC938CE9D3A098B /* testutil.h in Headers */ = {isa = PBXBuildFile; fileRef = E9E99C2533E722AF92F81FBEC8C88B43 /* testutil.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D43D43D6F67883C21FA0BCBEFB83E428 /* GTMSessionFetcherService.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D2AC9D5074782B43D4B5D2636331414 /* GTMSessionFetcherService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D456874530924EFDDB17218BF1833348 /* FIRAuthExceptionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 51D231171F02FC16507F09EFB5FCB56D /* FIRAuthExceptionUtils.m */; }; - D49C427AB8BDCD924CB8A3AF7492AB39 /* FPersistenceManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D8D63F0B466616D7B2178E5CC560FB8 /* FPersistenceManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D4C21BC392CAA93D8AECFCA118489253 /* FIRDatabaseQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = FA6F78729FC55DECAACEDCEF3FFE6A62 /* FIRDatabaseQuery.m */; }; - D5203F394AC7B37FE6364351AEB78C21 /* two_level_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 32BB67263669321F679A2EF1CA3D50BA /* two_level_iterator.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D5527A2367D9B8FC7F6728FDBE9EAFB0 /* FPendingPut.m in Sources */ = {isa = PBXBuildFile; fileRef = B019CAC921E53E2C80B07F1D11C99313 /* FPendingPut.m */; }; - D602FC94B774221735EA90FA8F0B6FF5 /* FTransformedEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = B70A9AB401D26851BAE07CFA4AC7E49B /* FTransformedEnumerator.m */; }; - D62C6C304BEA6879808D85D9C5423307 /* block_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D7811A970E75D3A40194BD1010A88E /* block_builder.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D6A2C979BD9F4379E2B0A03A9F9888E7 /* FIRAuthAppCredentialManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B6D3C8A99058AC962CCF41D9F01DC1 /* FIRAuthAppCredentialManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D74957A784370697F46457B21B84F6C7 /* FIRResetPasswordRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 98DAB9614219B17A5FCD582B78FC7857 /* FIRResetPasswordRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D782BC0464EB6FC9F35630CDAE0B17DC /* FAtomicNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 520D12CE359999C3A4F9D3482128F3C4 /* FAtomicNumber.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D7CE8668970216A9F29E8FFE25323BBA /* FIRActionCodeSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 7706A5AC92B7A1D2C78EC18860FCBFDC /* FIRActionCodeSettings.m */; }; - D8F74968E800B034BFB9D058C94EC869 /* table_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = A9329D0C552C07997A26E29D47F04888 /* table_builder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D9139F6390EB7C54838DDBDE33E15CE5 /* FIRResetPasswordRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 766D0826E7A2EC3AD9B458B857C0265D /* FIRResetPasswordRequest.m */; }; - D9382A4864887E58C209707702F26E7D /* FCompleteChildSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 341E8592A4E2723D89A9429AC4C81E73 /* FCompleteChildSource.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D97E86395AAF67E55BE729C1A11D1C6F /* FNodeFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 90B703B7FED85EC7EEEEF99F30F00CE5 /* FNodeFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D98070B47E60007BD24078AF03FE69FF /* FEventRaiser.h in Headers */ = {isa = PBXBuildFile; fileRef = B8E2F6235EF762B63E5264EC9D4041B5 /* FEventRaiser.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D9CFAAE60BFD5DDF1114169C0AD0BA42 /* UITextField+fixCaretPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C91FE44AD6A3131029787C2E6BCC5EE /* UITextField+fixCaretPosition.swift */; }; - D9E13D5B52EAC37087B6E2EE5F02EEB0 /* FIRGitHubAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = A0986B6AD673E7D78EB6FB508D8EC150 /* FIRGitHubAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA0180208A20E55A038F4D6AB1940B6B /* env_posix_test_helper.h in Headers */ = {isa = PBXBuildFile; fileRef = AFA4D39C812A9736A68FE499ADB798E1 /* env_posix_test_helper.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DA318585AC3783A187752E1A93279509 /* FIRComponentContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 70B5C9A7763DC577634E155C6D6D6BB9 /* FIRComponentContainer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - DAF9692FB29262CF1B48FC8586C678FD /* FIRInstanceIDUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 341F018261E8AE076F8DBDCA36E593D6 /* FIRInstanceIDUtilities.m */; }; - DB49E6DE140B896368FE634B25FF4CD7 /* FIRSetAccountInfoResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 02191BFA74D66D8E84924B45B60080D7 /* FIRSetAccountInfoResponse.m */; }; - DBB7D848AFDA6A6AB98FE3A71FBEF1B4 /* FWriteTreeRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DAB34840CFAF0BD1C2D64499BD62AD1 /* FWriteTreeRef.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DC16D0893AA8F8F28825B2DFB318181B /* FIRSendVerificationCodeResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FAB01774BC009DAF2FBA8BA94DAC6C8 /* FIRSendVerificationCodeResponse.m */; }; - DCEB18192F84ACB5470CC95DF0EF753C /* FIRAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 900C2CB2C93765FED9053D277A7CEBEC /* FIRAuthProvider.m */; }; - DD26B888019932759DFE28683FBE2FCD /* FTupleObjects.h in Headers */ = {isa = PBXBuildFile; fileRef = B8A7CC6912FE9817A70B102074E6A86E /* FTupleObjects.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DD6874E56931ECC4937CD488A3F8E7A2 /* FIRComponentType.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D7D0B3F76B9E4F3EA6021AB49203DED /* FIRComponentType.m */; }; - DD7393DBA40DE3149357E83C52610787 /* FIROAuthCredential_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = B815965A4C80F9CCA191C0F5D9ED3D95 /* FIROAuthCredential_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DDB1A87B2825870CF6C1345E1DCDE779 /* log_format.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BF9C9BEC1B6A090CE85975F35E2EA97 /* log_format.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DDE83EAFFE7C7BDC26EB36F088E73FB9 /* FIRAuthNotificationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 52D96C7DBB90DCF092EB949DB6C6EB24 /* FIRAuthNotificationManager.m */; }; - DE2CC572B3D9706CB6CCD83F5252B063 /* FIRApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 53A54C43E5F55D332BA9E044A76A3481 /* FIRApp.m */; }; - DE966FD4F2754F087026ECDD862CA3A2 /* FIRInstanceIDAuthService.h in Headers */ = {isa = PBXBuildFile; fileRef = 19FB01A8ED8FF3D01AC52B5D74C47717 /* FIRInstanceIDAuthService.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DE9EE2160E5DA44F8938CE5678E35487 /* FIRAuthKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = B56D704C5EE166BAAF557C789184A2B9 /* FIRAuthKeychain.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DEBA523A44AA7A3F88AC0A98D21A9967 /* FIRAuthAPNSTokenType.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F315EE5C1C7AB599527514B6B86EF23 /* FIRAuthAPNSTokenType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DF6568CC893141A1E7C1D5A08AD9683D /* GULNetworkURLSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AD6ACED66DDD8762085018D1C9D9418 /* GULNetworkURLSession.m */; }; - DF8DFC54AF4EDA6092460F2F7EE609AF /* FIRAuthExceptionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 0658116941DE7643A7A46290104F6B22 /* FIRAuthExceptionUtils.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DFE4CCFBF900B4391A5D6850D2D45734 /* FTreeSortedDictionaryEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = A66A3B40662E94017A77F0202A8E82FB /* FTreeSortedDictionaryEnumerator.m */; }; - E0635AAF84B280D6480B04B00D689CD5 /* FIRAdditionalUserInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BB0E14C8B85C9056BE5062BEDD46192C /* FIRAdditionalUserInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0A75CCC466B8821EABAEA1AFF2BD2C9 /* nanopb-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E5447CBA649653063CDF6ACBDA6D06A /* nanopb-dummy.m */; }; - E0DC3BFC3E63DACCB4082227C3FB4EA8 /* comparator.h in Headers */ = {isa = PBXBuildFile; fileRef = E04DC52ADCF63D8C857F65AB94B53E20 /* comparator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E120C7CD79BF1DA9BD6B279B881E9C81 /* atomic_pointer.h in Headers */ = {isa = PBXBuildFile; fileRef = CEB1A6D2E15931D9A6426F0D838F2051 /* atomic_pointer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E1B87BA86986084E5FF90F0582DEE1A1 /* crc32c.h in Headers */ = {isa = PBXBuildFile; fileRef = DF59051E24CC1EBE768ED9CA92B5F651 /* crc32c.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E217B6462B616B581FB88725277C7EE2 /* FIRDependency.m in Sources */ = {isa = PBXBuildFile; fileRef = 411AA7A9D2C16F6306E6F2DE64AECF82 /* FIRDependency.m */; }; - E2216E93D896FA9A901F5AB60C34017B /* FIRServerValue.m in Sources */ = {isa = PBXBuildFile; fileRef = B543EE2AE175BC23D7401CBE50EF0A52 /* FIRServerValue.m */; }; - E24D27511F4FFA3218DDF0E7C5F35119 /* FTupleSetIdPath.h in Headers */ = {isa = PBXBuildFile; fileRef = BCA9CC5DD34C75E76BCC48A77392AEF8 /* FTupleSetIdPath.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E2A2EFD357184EE9C052E11B327C7821 /* FOverwrite.m in Sources */ = {isa = PBXBuildFile; fileRef = 3603C2FA454E6DE5F11D1EE21D15C201 /* FOverwrite.m */; }; - E3558004621A062EDF8C6C80757BF02B /* GULReachabilityChecker+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = C91C5220E8EC2E1874DAFF3FEC5177A8 /* GULReachabilityChecker+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E3D0F9E7B755A3C95E6519FE4AF4A877 /* FIRGetAccountInfoRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 1034797C985586A397C8E6935C3C3EBA /* FIRGetAccountInfoRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E3D9AC719CC1FFDD550B808BB52986E5 /* FTrackedQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = 116A5DE0338A41AAB17F9BB9EC08A623 /* FTrackedQuery.m */; }; - E40F063F928C02A2B1C64C3ADC8E5D35 /* FEventRaiser.m in Sources */ = {isa = PBXBuildFile; fileRef = E7C6EC935D0A5D103964E85EF6245304 /* FEventRaiser.m */; }; - E4D3A0B0642F91659D631B00138DA887 /* FTupleRemovedQueriesEvents.m in Sources */ = {isa = PBXBuildFile; fileRef = 602F188119657936FF891D0242F97DDB /* FTupleRemovedQueriesEvents.m */; }; - E530C9CCCAC8D555C868397D7017E2C8 /* FIRStorageMetadata_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 39601DF8AC984023ACC8BE8AF796E190 /* FIRStorageMetadata_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E5EA46C3D41FB99C05587DEA9801A9C0 /* FTupleNodePath.h in Headers */ = {isa = PBXBuildFile; fileRef = 91F8AB2D820CE13E80F8E93EECE3EDEB /* FTupleNodePath.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E690683078AF479A6EC937EF41C1AF86 /* FIRStorageObservableTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E9FB6D0E0954573517B262A7F9405DF /* FIRStorageObservableTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E6C990CCDC0576010258A5FF16BE6F9E /* FIRSecureTokenRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C64C70AD5154134898E499C76769E99 /* FIRSecureTokenRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E7725CE16619C6CBFA00DAE7FE735956 /* FIRStorageMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = BB252C4FCD980CB856579893AEDACAB6 /* FIRStorageMetadata.m */; }; - E796D76C4152B17BD6020F68ECC0245D /* FIRAuthSerialTaskQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = A5AA5F0780DFCE3F315867F4FAB9EBF8 /* FIRAuthSerialTaskQueue.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E7CB00871EAD9EA9BAE0CCA9F6C72A6C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */; }; - E7DA560663D51BCD6B3071F3B25F1AB8 /* FTupleBoolBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = B84CAAEDE2700D1F4B947F4278E831EC /* FTupleBoolBlock.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E813911AB80D31C3ABA7DEE6F0A0E2AA /* FIRSignInWithGameCenterRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 83928E4E02C7FAB4019F7C5405982D95 /* FIRSignInWithGameCenterRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E85FDCA84006446126495A9DBDA2D130 /* FIRAuthAPNSTokenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 620EF42980B95CE6CF84DC8C3AB73351 /* FIRAuthAPNSTokenManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E88A5ABA6636E04CB1184A101047AD64 /* FIRAnalyticsConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 089B7D21BC1F40C0F6C3AAEDC9C146F2 /* FIRAnalyticsConfiguration.m */; }; - E8A05968469DD615C3CD3D5B9E1D4206 /* FTreeSortedDictionaryEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = C663417E94C6790A217AA1F15592BF69 /* FTreeSortedDictionaryEnumerator.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E8C6D1BC6DEE77B7875ABBD1B35E7B14 /* FAuthTokenProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B915379438A5F7A876EAAC4B1D1EED9 /* FAuthTokenProvider.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E90BB89153F9501698C7D1B747840592 /* FIRAuthDefaultUIDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CE62519C1AEBD2EA672C3C4ADC0B36E /* FIRAuthDefaultUIDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E9164320CFED5F22E95357280EF0240E /* FCancelEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8987C1A05949C11F5BC9381ADBF32BA1 /* FCancelEvent.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E91B26D4305483DE585A6B468A215CC4 /* FIRStorageReference_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 172EC98497ADE08096715EA63426E88F /* FIRStorageReference_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E923672EEF8226AB7F71954E9A32435F /* pb_common.h in Headers */ = {isa = PBXBuildFile; fileRef = A86BAA17746AB2A76A58A26849567470 /* pb_common.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E954D0D7E0AFFE9084B09BEF5B493E43 /* FirebaseAuth-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FDECA8C433B6BA80772C6BE5932EA5BC /* FirebaseAuth-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E960D51613C5EAB2538D9780C31F98C0 /* FPruneForest.m in Sources */ = {isa = PBXBuildFile; fileRef = 93C7D157ED02B768BD9E369D0D0C7F92 /* FPruneForest.m */; }; - EA013EE8458396929ADEDE8194045D7B /* FEventEmitter.m in Sources */ = {isa = PBXBuildFile; fileRef = 64153FAC345A1928622517F8AF50D2CD /* FEventEmitter.m */; }; - EA90B7031E5475D8461950AEC7A8ED08 /* FIRVerifyPhoneNumberResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = E714D102A2BA1F5C069BDC392A9B9AB0 /* FIRVerifyPhoneNumberResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EACA1EAD6B175D242F0C71FAA0E6DE5C /* FIRSendVerificationCodeRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 4701099F524983436C814A2D89FF313B /* FIRSendVerificationCodeRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EACF63C70CCBC222B8BFA06C6F6FCAAD /* FIRAuthWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 609B646BA7CDA0E3B7C5F79AB0C843CF /* FIRAuthWebViewController.m */; }; - EB4933204B61E2E5C4D27ACF215F0EC3 /* FIRInstanceIDKeyPairUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 992177DD97A66FCC3F7EFA01ECC2BDC8 /* FIRInstanceIDKeyPairUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EB9BF240CE85CAD3FF664A82044A379C /* status.cc in Sources */ = {isa = PBXBuildFile; fileRef = 6AE2B22B7C9383FECC1A6F3AA1398038 /* status.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - EBA364AE7F50916872D0286EA2CFC95C /* repair.cc in Sources */ = {isa = PBXBuildFile; fileRef = 0B07560A5FF24DBBF4C333188ED8B96B /* repair.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - EBDAC496DF32BF4CC92B166B94164F72 /* FIRErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = F85CC629B21213EA018F283E322BDE58 /* FIRErrors.h */; settings = {ATTRIBUTES = (Private, ); }; }; - EC0F0258F0EED0FAB44A32F4CD901362 /* posix_logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 4528E911482F02D6B167BC48739318F9 /* posix_logger.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EC14C85E13750DF8F5864559EFE02395 /* FIRGoogleAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F7C8CDC6074F1510FD31604D2E8876F /* FIRGoogleAuthCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; - ECA4C43301AD77DD2EDAF5F2FBB4F2D3 /* filename.h in Headers */ = {isa = PBXBuildFile; fileRef = A41503DC80A14FF4489AEDEEC437489F /* filename.h */; settings = {ATTRIBUTES = (Project, ); }; }; - ECBE31A89EE98F82274D202A402DE6D6 /* FIRUserMetadata_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D48AABB8FEF082D05C830512316011C /* FIRUserMetadata_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - ECC569BD0454A4442D9BE94E43C5CBF5 /* FPathIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = A3437890E45B7179924CE471E0194FB1 /* FPathIndex.h */; settings = {ATTRIBUTES = (Project, ); }; }; - ED9F12EEE2FAF629489AF6C7630FDA7B /* FIRTwitterAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = BFCF55499AE3C02C6D20A2563D29B3EE /* FIRTwitterAuthProvider.m */; }; - EDFE8FFB3D8EE670C187D86EAF5EB705 /* FRepo.h in Headers */ = {isa = PBXBuildFile; fileRef = B65FABCEA365FCDFFDB2A6491A6D086C /* FRepo.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EDFF24247DC7BCC6FD0724584D1D8AAD /* FIRAuthUserDefaultsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 12DA39787ACEC67E8EF6C7A94158981F /* FIRAuthUserDefaultsStorage.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EE0CD1555E240A9000289A7EAF2CB158 /* FirebaseCore-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4D490C9D859736793136D2F6C343D0 /* FirebaseCore-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EF450973215FEED4B0D98F43E4A91F21 /* FSnapshotHolder.m in Sources */ = {isa = PBXBuildFile; fileRef = 377B675225F8DC1F7D6ED035AEC9E4E9 /* FSnapshotHolder.m */; }; - EF99194AD310DFA4B8FA0B7C5F90C00A /* FIRInstanceIDKeyPair.m in Sources */ = {isa = PBXBuildFile; fileRef = 3801FBF1E8148FE35DD0BDDE586F53A3 /* FIRInstanceIDKeyPair.m */; }; - EF9A6DCEB87947F754B7797E758234CA /* FIRStorageGetMetadataTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 278C4E4D9BA5A68026CDE6C89AD685CF /* FIRStorageGetMetadataTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EFB64362985AC4BC91B015BFB6E70BE9 /* SkyFloatingLabelTextFieldWithIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7784FFEABEF15533E699BCD64A1C92FF /* SkyFloatingLabelTextFieldWithIcon.swift */; }; - F01C7DFEC41CDC5C21DEB3BF34304E1D /* FQueryParams.h in Headers */ = {isa = PBXBuildFile; fileRef = E6585F123FAD0EBA2F45FA4C996B1BDB /* FQueryParams.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F0563BACFDC6ED0279BD66322A7241DD /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = FC415D305974B59DFE20B392EA716AA5 /* logging.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - F0B5A11A6AE4BA96F5A7DCEC82245D55 /* GULNetworkConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CCB6514F831CF17DC7C64A5AA2E3182 /* GULNetworkConstants.h */; settings = {ATTRIBUTES = (Private, ); }; }; - F0D01479BA0998209C3EA376CBFFC31F /* FChildEventRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = 09A29D4F1A3C1FBECE51F2701FE8C1B0 /* FChildEventRegistration.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F13363637D401EBD837AB1DC0528AA3F /* GULAppDelegateSwizzler.m in Sources */ = {isa = PBXBuildFile; fileRef = 77298E734BE0AC895E6EC19B4C3BE963 /* GULAppDelegateSwizzler.m */; }; - F1666B3DF6ED2EA6B84540FC5FA6BC52 /* FIndexedNode.m in Sources */ = {isa = PBXBuildFile; fileRef = BE81185E37E8F99D4E4F4A943464B2C9 /* FIndexedNode.m */; }; - F189CB3714162C4B132DCD9724344506 /* FIRInstanceIDLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = CB9EB78BB954E1FF00C1DC8F0B5ADB6B /* FIRInstanceIDLogger.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F1EBF9E69DC5B0C67F411A526B67F2F8 /* FIRUserInfoImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A5AE083E53318DEDFC4D6BC01E6F6DB /* FIRUserInfoImpl.m */; }; - F1F2929A51C8C62A2CFA8A84A88F4668 /* FIRBundleUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = D92393849E42D276AF062CBE5476A450 /* FIRBundleUtil.h */; settings = {ATTRIBUTES = (Private, ); }; }; - F1F93538B7FE66079DBF3D989786AB2A /* FIROAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A335D5BA33451AD785A958F13A99221 /* FIROAuthProvider.m */; }; - F1F9E43D4A9B68AB451907567213DEF7 /* FPersistentConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = D28B0012C933EDF2A89FEAE01FC9E3B6 /* FPersistentConnection.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F2A83F7C1CA16D05333E31796DA2B15A /* filename.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7480390585D32FB07CCAA8D8D2E506C6 /* filename.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - F37933CD4E8B605DCFEA51952C8F7535 /* SkyFloatingLabelTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0FD58516EF4F1ACE256C89526B79DBF /* SkyFloatingLabelTextField.swift */; }; - F41C00757765B05CA1CAA63EB1EA5352 /* FIRDeleteAccountResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CACB143E2ACF8905640CCB0695C90D42 /* FIRDeleteAccountResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F42DCCB81FD0CA0C7C652AA28A078A09 /* FIRCreateAuthURIResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 36A5237B4B667FB9DD99A925C35D4BDD /* FIRCreateAuthURIResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F5016878A24F4A359D2BC3780DF923F1 /* FImmutableSortedSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 30AA7D6BA7E041B5D9536E7FB49C848F /* FImmutableSortedSet.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F507EC29AB6F22A537C1F1145905C6AF /* db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = DF463DACC72310305C714B74983C46E7 /* db_impl.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - F58EBA44B76E6CF7BC99FC85F104470B /* NSData+FIRBase64.h in Headers */ = {isa = PBXBuildFile; fileRef = 3234BBBF45EDF1C1ED53759A22CA12C9 /* NSData+FIRBase64.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F5C906899F0AECAC2FB1B0BA0C707C0E /* FPersistenceManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FE17EA0AEC2F2252F4879428D468B1FF /* FPersistenceManager.m */; }; - F605DA865BC6F7BA70B30F4BAC86D935 /* FIRAnalyticsConfiguration+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 01CEE211F40084D19BF400D025DDC30D /* FIRAnalyticsConfiguration+Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - F6077C1F7082CFA6DABF6EC9D841A53D /* FIRGetProjectConfigRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E05376F8114D7761110A93BB9269E0F /* FIRGetProjectConfigRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F6684CAEF2AA26B6988DB25DF95CD8CF /* FIRInstanceIDBackupExcludedPlist.m in Sources */ = {isa = PBXBuildFile; fileRef = B613D86CE910A8393F82455E873395CF /* FIRInstanceIDBackupExcludedPlist.m */; }; - F6ABFC899772E2FE0010EDFEE51484E6 /* mutexlock.h in Headers */ = {isa = PBXBuildFile; fileRef = C65122F2E19AF2939847FF097DF91FA1 /* mutexlock.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F8170678543AD14B23B93BB94E8F487A /* FIREmailAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BBE207CB27564A845497814D036CB46 /* FIREmailAuthProvider.m */; }; - F8978EDF4EE4B0AA020F8ADF2092CA28 /* FIRGoogleAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 247E102F195FA7F5EF5C5CDF7F516E5B /* FIRGoogleAuthCredential.m */; }; - F8BF90B54586F07C0A97F1977249DD33 /* pb_encode.h in Headers */ = {isa = PBXBuildFile; fileRef = C5EE76CDD6DCE2DBEBD3A1DECEC4B041 /* pb_encode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F9D194F42DEC0D4B696A50BA3B57C4C7 /* FTupleUserCallback.m in Sources */ = {isa = PBXBuildFile; fileRef = CA0D8266F19CAB63F0E23856D69EDE48 /* FTupleUserCallback.m */; }; - FA026EDBFB5EB1BF986A073D9243B326 /* FIRInstanceIDKeyPairUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = B482AE8F6849922FB269B9A3FE7622F4 /* FIRInstanceIDKeyPairUtilities.m */; }; - FA632A093D96325BDE1A52C01A0D189D /* FIRMutableData.m in Sources */ = {isa = PBXBuildFile; fileRef = 25286559408DBDE9BFAFA61A7C07C06D /* FIRMutableData.m */; }; - FB473026DA9143D8BEC23BF47D80A73F /* db_iter.cc in Sources */ = {isa = PBXBuildFile; fileRef = B0ED57517179202968E9ECB7CA732AEE /* db_iter.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - FBB36897950AC14A3AA718EE606E7F92 /* comparator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 521D986356B47C8F71AC1D9BB3AD3A59 /* comparator.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - FCBF94B497E834FBAB493B9C87959CF9 /* FPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 0066B5196CA0DB2A3C6DDBCB5A4D007F /* FPath.m */; }; - FD42FF48B10C90599B10C7F573ABE72F /* FIRInstanceIDBackupExcludedPlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 044076C868DFB45B7043B6939A074432 /* FIRInstanceIDBackupExcludedPlist.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FD542265EDA761B77E1B63CB87757694 /* memtable.cc in Sources */ = {isa = PBXBuildFile; fileRef = A5D8AECCD534F19DA1C837E5E89F4AA7 /* memtable.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; - FDB8BA772EDD8DB79638A7BAEFC768BA /* FViewCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F4CB2132F61F96177159822288A0915 /* FViewCache.m */; }; - FE9853E6622BC82DA8237931F2E81E24 /* FWriteRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 10D68B92FFCBCA03D8948486AB61BC4B /* FWriteRecord.m */; }; - FEAC69ED2BEA6DB40C9C5B3C7563731E /* FIRUserInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B668E4A710000BFFA9632B35FB7AE8D /* FIRUserInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEDAFFF2E66873182339A9CB7C838A6B /* GULNetworkLoggerProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 82E136E3716C867F20D7013B4FD8A501 /* GULNetworkLoggerProtocol.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEFDFB92567C15B777DDAC5078B07D2B /* FTupleUserCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B1C84B8FDDF845F111A283BD981712E /* FTupleUserCallback.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FF20A090A035A0B5D9C35C7E084AF88F /* FIRLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = DF645AD33BB3CAEE3CD4F8503B6F8D92 /* FIRLibrary.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FFC59E2E0BF805AC0733627E928F490B /* FIRSignUpNewUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BB358A9C2ADE6B010C30612602C0AFB /* FIRSignUpNewUserRequest.m */; }; - FFD92AA3BC3C1B7910AD825DA7067813 /* FIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = A9672A4DCB8C9BA9E9D6C762343E7D9B /* FIndex.m */; }; + 003748EC9CF0474FC696D0FE4424082C /* FIRAuthURLPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8ED3AD4C9AB855F3CD877AC4D6DAE742 /* FIRAuthURLPresenter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 00538455989DDE7CEFD39DD103A3F5E7 /* FIRComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FCA6D2C0537BAF91552678A055149CE /* FIRComponent.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 00993EB25ADD1BC88972DCA55787B26F /* FIRRetryHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 00D5D604EA06C4915B0F2DBFEEA36ABF /* FIRRetryHelper.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 00FB888139A8064D77D6823F32454837 /* FTupleObjectNode.h in Headers */ = {isa = PBXBuildFile; fileRef = CE06EA29164BAFF76D06FBDEB21ED323 /* FTupleObjectNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 01264DBE8C36E54D36BB86C92F091E8C /* GULOriginalIMPConvenienceMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = E9B6279948F4EC253F023FDDA378D6AC /* GULOriginalIMPConvenienceMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 013CF28D98E0BD92843096F716CA4AE3 /* FIRInstanceIDKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = AE25DB2DFD74BD49CD57DA7C895F93E4 /* FIRInstanceIDKeychain.m */; }; + 016EC1DF1EB569238E3A5B902046A200 /* FIRInstanceIDCheckinStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 80A21FCE99E4AC7AD1FE06C89F0A325F /* FIRInstanceIDCheckinStore.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 01EFE432FEE88E7E8CDD9776427C35EB /* GoogleUtilities-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 63AC1C04CF9FA401647554B0B436C77C /* GoogleUtilities-dummy.m */; }; + 02223BDECACA315D885271331525134B /* FQuerySpec.h in Headers */ = {isa = PBXBuildFile; fileRef = A799292248219E9013E7DD107E235304 /* FQuerySpec.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 023BCC02784B09E39B96E0F54BD49680 /* FParsedUrl.h in Headers */ = {isa = PBXBuildFile; fileRef = D549F2D0131B3350B813F36F858E1C54 /* FParsedUrl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 026BF4B84BDDB175F865207140047DBB /* Pods-FoodApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EAD07CC0F86D45EA5E1C31331F5464E /* Pods-FoodApp-dummy.m */; }; + 0288F18351C14CCF55A10A69CDA31B2F /* FIRAuthAppDelegateProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = E9BD89CEF2CE8038403A7014DFFDAEC8 /* FIRAuthAppDelegateProxy.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 02FB225950EEA73C12B14A3D74A2096E /* IQUIView+IQKeyboardToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33AA60A06DD7330A8B77921400C8EA04 /* IQUIView+IQKeyboardToolbar.swift */; }; + 0313BDAAEB9B463B1AD868DE79C91D08 /* FIRAuthRPCRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 71AC0901933AD2A5432E91142D482357 /* FIRAuthRPCRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 04103C948FA0694763859A28043D3365 /* FIRGitHubAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C4FFE102D0F9736DFDB6573634B9DFD /* FIRGitHubAuthCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0443BF8C16E5A7DDD435F62BDB215C63 /* FIRVerifyAssertionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FEDEE19B653874407A1678CEAB98B87A /* FIRVerifyAssertionResponse.m */; }; + 04696D90FE01EF0E9210592230DBCDAF /* FIRGitHubAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 17DF3A9667D1FEDF59D77524CBAFF416 /* FIRGitHubAuthCredential.m */; }; + 04F7B152EC0E86E810A34D14D0B94FE9 /* FIRAppInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 07CCAD18C70F52BA44AAB0D09D893CFD /* FIRAppInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 05EB0F77875EABC2062F15DBD8770024 /* FIRInstanceID+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 268C0766CD95F26546BE64D1439A0AC4 /* FIRInstanceID+Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 060FED725831C504CEBD7CBAAEBCE2FE /* format.cc in Sources */ = {isa = PBXBuildFile; fileRef = 0551546834A74F6287B1B4F165ADA9B0 /* format.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 0637DAB597B484E233CD073CFD35950E /* FTupleCallbackStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CB9317BC1CC6CD19A5720A35F131A5B /* FTupleCallbackStatus.m */; }; + 066C63F45130CCC65051CC4B16EAD145 /* FIRInstanceIDAuthKeyChain.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DF6CDFBD2BB60EE93A1B7A9A1822070 /* FIRInstanceIDAuthKeyChain.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 071CE5225DFDC3E2C6E6D6A9EDDEC819 /* FIRStorageComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 892A73C1DE60F1EBF74A15E5F269A282 /* FIRStorageComponent.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 072603CD7BA3C516FF8B056675226156 /* FViewProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = EA5992E14CFC26816BF9A38F433386B9 /* FViewProcessor.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0736D19A879FB3C57D1131D2FD7D1585 /* FIRAuthTokenResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A31BB33948A1415AD192E9C9F4315E7D /* FIRAuthTokenResult.m */; }; + 07D2E59E66AFC1E3D57C7845BC0336C8 /* FIRDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = BC6DA207D4296769C78F5F65F0B2352D /* FIRDatabase.m */; }; + 0822EA61B997AB0A06E811D0BDF7A537 /* FIRInstanceIDVersionUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7910423CDDCAF64471AB4500EC6A8359 /* FIRInstanceIDVersionUtilities.m */; }; + 0841CBF94EE2D5EB2A4BF7C1A1B7E66F /* FirebaseStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 2839FC162EA0A47CBFBF41176399DE3D /* FirebaseStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 08444FDCC1B2CAEE6F77D33B2D84B62F /* FIRDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 557E79A439DF42A434909C720A99FB62 /* FIRDatabase.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 089CDBEFE6758D3F203D217BF5FE223B /* FIRSetAccountInfoRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = F9776B56BCEAE96F9B2A27F78073B4A7 /* FIRSetAccountInfoRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 08E12EB2FD09DDC6CA04B4F0EC9D924D /* FIRAuthSerialTaskQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 74775D0FD6EDB6C6AE96696685E4026D /* FIRAuthSerialTaskQueue.m */; }; + 09ED6F9A84ED29E6AE8AC6C1DA7D87FA /* version_edit.h in Headers */ = {isa = PBXBuildFile; fileRef = C770A40C30420A62DD5CB4EEB238A13D /* version_edit.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0A1B4A5737ADBCE0E1A84AB04B00B51C /* hash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62F88D653E66D31DDDD32E1F1CAFEBC5 /* hash.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 0A343387CFA200DD80A18240AC28E2A0 /* GULNetworkConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DE76B71233CDE4E8276762DC5E2261D /* GULNetworkConstants.m */; }; + 0A4D6951A2F225B35177A743CE1AD839 /* FConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = A1E6F23B492BF14104B26BF4788B28B9 /* FConstants.m */; }; + 0A7D3EEF4F06DF998ABF28BF3601EDF1 /* FIRStorageUpdateMetadataTask.h in Headers */ = {isa = PBXBuildFile; fileRef = D5040717B8006BF61D43D7F6B48E12C0 /* FIRStorageUpdateMetadataTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0ACF5D8F4249D89C64656BA1AAE8ED95 /* GTMSessionFetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = C4FB8AF2E67BC0E1B08B1ADB20934548 /* GTMSessionFetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0B99623B0BE10BBDCEE44BD21E599D53 /* testharness.h in Headers */ = {isa = PBXBuildFile; fileRef = 05589767A6B865C55C7299EF5B46E629 /* testharness.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0C1FBD2444E36BA7E4673041B9B1747D /* FIRAuthWebView.h in Headers */ = {isa = PBXBuildFile; fileRef = 85C4FB3F7235F50BA69CA40AA5C27444 /* FIRAuthWebView.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0D39AF0BA7A35B30C79B85EFC9388C88 /* FIRAuthGlobalWorkQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C11029CA303A9716DDC18309E345CB6 /* FIRAuthGlobalWorkQueue.m */; }; + 0D6CF356E7562970D0662BC77688C28F /* FListenProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = F66D7F017D9EA7BAC8F29A3F2ED94D45 /* FListenProvider.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0D847EE96901A0F5E02E38C515E70274 /* FSnapshotHolder.h in Headers */ = {isa = PBXBuildFile; fileRef = 99921180B1DC194FD9E541CB62501BCA /* FSnapshotHolder.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0E5A80BE67C47CE206C8BD5F8B0E5B99 /* FIRVerifyPasswordResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AD914ADF4F1F30F5F4166A65F38F00E /* FIRVerifyPasswordResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0EAC83CA6E15357FF3AE9C7E9827259F /* FEventRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = C7E12202E94A450BB77DFD5DC4DEC7CE /* FEventRegistration.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0F12F454B18BC9B025ADC7FC1D721106 /* FIRStorageGetDownloadURLTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 21E5E035F7596A4818BF2337342BA2BE /* FIRStorageGetDownloadURLTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0F1822F21B380B13B582E1B467D45045 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */; }; + 0FE49583E7CD931E08CB6FA7560C1265 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */; }; + 11A92F3A00A570EFE8C08E5CC793230F /* FirebaseCore-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DF437F214E11B23760C1A20559F8DD21 /* FirebaseCore-dummy.m */; }; + 11A9DA11A4241A0F3DD8B13579554685 /* FAuthTokenProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D44D8B2FB2A3B1EC087C0797BBEEEF0 /* FAuthTokenProvider.m */; }; + 11DA92E68C79E89D636E2A7FD58E31D1 /* FIndexedNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 375C6D2C5F15CD0F91DAF6545D5A5CB5 /* FIndexedNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 12CE0CC274F5E2985E39BD821AE68A37 /* log_reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 08F17F94D73195742C7638850525EE30 /* log_reader.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 131BA7F7D540849DB7DB2F7AAEC051CA /* FIRTwitterAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A43DA4AA1E458D1D9E3BF081A20D3DF /* FIRTwitterAuthCredential.m */; }; + 13B7C737EB5E5889A2A9F2AC9A0F189C /* FConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 7236253F2E638A689AA4AA5ACA3A2205 /* FConnection.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 140325A0DBC84BAEDDAC206F58295DA7 /* FIRTransactionResult_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DDC6594BF397339D58433A333DE18537 /* FIRTransactionResult_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 14A3AC5A0847A1C425B56714D8E63FC4 /* FIRAuthURLPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 61A566D4D966D6FD3BA47083B227439C /* FIRAuthURLPresenter.m */; }; + 14A632DD6A784419B54B09939C7991B5 /* nanopb-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D27968B084706EDB81193863E154BB57 /* nanopb-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14B0A7D47884C7315900EF697300BC0B /* logging.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BB0C4678614E43CC59E990EE1D9561A /* logging.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 14E1DD238F16269373A63BBF16BBE6B9 /* FIRAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 43135CF1497A4CE4737DBEBA574E8082 /* FIRAuthCredential.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 15A5E7B32986E1C589C02A1EB4A338E9 /* FCachePolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = A939BDBEF8563D5C74BAAB2A5CA500BC /* FCachePolicy.m */; }; + 15DB3011E942C36FE6D2AFC501FFF003 /* FIRStorageTaskSnapshot_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D7667F906E1254B3B5E31B2509482B7 /* FIRStorageTaskSnapshot_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 168F38AFAC60BD370AA12458B43DAFE7 /* FChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 48DB3D798488069759FF4E97A9B32E50 /* FChange.m */; }; + 16D9D6516DBE3AEECD90BC81A35DD01D /* FImmutableSortedSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 675D9B90CAB87906D12156D8C1A8D814 /* FImmutableSortedSet.m */; }; + 1724FAD6F1D2374064E2592A804C6A67 /* FIRFederatedAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = CC0E81A5A7525B241770189FB7390457 /* FIRFederatedAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 176BD1508845514498865DF8B9BE5A2F /* GULLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 255AA58DE09D46DF5DAC3F97B5833E1B /* GULLogger.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 18E21B860CD8F6E4F1178D4C4479BD9B /* FIRInstanceID.m in Sources */ = {isa = PBXBuildFile; fileRef = 465D39E042CCA7696BF7C7C669FE3923 /* FIRInstanceID.m */; }; + 18F193867D682B55C13581C24A315185 /* FTupleSetIdPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C5572C91FDAE844AEAE99BC78DDAF2B /* FTupleSetIdPath.m */; }; + 193306056B64FD04F33E7410A1C55472 /* FAckUserWrite.h in Headers */ = {isa = PBXBuildFile; fileRef = AF4C1D8768916983C5BAB72F4DE5E1BD /* FAckUserWrite.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1935F50784E3953A95EDF410C59FB5EF /* FIRSecureTokenResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 63BD002B60FD8CF57C980BCA5DCAAA05 /* FIRSecureTokenResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1961E7EBC167CDDFC82BCAE1C103B127 /* FIRInstanceIDTokenInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E0EB817F97401681AB4723C0006D5FF8 /* FIRInstanceIDTokenInfo.m */; }; + 19C32F6495352EE4D203E336EB690331 /* FWriteTreeRef.m in Sources */ = {isa = PBXBuildFile; fileRef = 2501F898111F1861C61683C629977FB2 /* FWriteTreeRef.m */; }; + 19EFF8BD8F765BA2522242C48FA0563A /* histogram.h in Headers */ = {isa = PBXBuildFile; fileRef = E7881D571FA0BA35A4655DF5918CFBB4 /* histogram.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1A365BF1915CBDA6E5B99C1A16A89B1E /* UITextField+fixCaretPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = E95851522D73846B4EFCFE4489965714 /* UITextField+fixCaretPosition.swift */; }; + 1A5D176C4E7ADED5DFD2F99282EB081B /* FIRComponentContainerInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 3195B1A1BD550DB221B2E1FC3DC60D4D /* FIRComponentContainerInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 1AEF1FA45610CF68EDDBE879975C1A7A /* NSData+SRB64Additions.h in Headers */ = {isa = PBXBuildFile; fileRef = CC45E260E5103DB897A574E058A66964 /* NSData+SRB64Additions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1BA88667AE641EBDC229493782A8153C /* FNamedNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FF876BC06C5BADC0B2B8673ABB4C7E5 /* FNamedNode.m */; }; + 1BE4741DE3B682087E96D06A92255E48 /* FWebSocketConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B18AF4189C50E9C5364C8A0605403F4 /* FWebSocketConnection.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1BFBC27273DF36504A326319BD2D53E8 /* log_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = CCA9A536D77F52FBE6BE7B6B41964681 /* log_reader.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 1C2F5B98D0AA7A3A0A1994E08F4E5818 /* FTuplePathValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A3727F7F01D0627F99BDAD20A3A2A9B /* FTuplePathValue.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1C45C611BB2C286C85A5DF3E30A1CF8F /* FIRAuthAPNSToken.h in Headers */ = {isa = PBXBuildFile; fileRef = A9023140F8DDBD51A3EF367CB6A220B1 /* FIRAuthAPNSToken.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1C5A1195B812E454F88147F135C5448A /* FIRInstanceIDConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = CA7809CF80F7222E1A17CF65509B3365 /* FIRInstanceIDConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1C695D4C2FEC9AE275444B3B4F62CC68 /* bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9828827984BED1F74C34E74D16B575C6 /* bloom.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 1CAADED4E504DA56DD2CF07A56004DF4 /* FIRDataEventType.h in Headers */ = {isa = PBXBuildFile; fileRef = EF831B353F8561732142615D027FA973 /* FIRDataEventType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1CD506966DAB9FDC888EB5C28B581AA8 /* NSData+SRB64Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 12B8893756F77BEC4BAB835685A6117C /* NSData+SRB64Additions.m */; }; + 1D94D2E61D1520AADB12C75A15F4D67E /* FWebSocketConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A8A2E913B877233494CC32BDD3539D /* FWebSocketConnection.m */; }; + 1DB62155AA6B2D694B91E341F9D5A586 /* FIRAuth_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 09443112369904F296CAEE7A3B304A2A /* FIRAuth_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1DD7A712624B36B520868C2F5CF084D7 /* pb_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = 6595393800F8601771ED6FF8E84D7CBF /* pb_decode.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc"; }; }; + 1E21593CE6DDB6891574367E1F2A1884 /* FIRDataSnapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A50EA2A461EF3089E8818D6D8D52B6 /* FIRDataSnapshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E81EEC066F224C151386FFE9E1255C7 /* FChildEventRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = F2BF635FA9D3885CD4A80B29A362E439 /* FChildEventRegistration.m */; }; + 1E83B7BA2A16549891CCC67626FB3864 /* FMaxNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 3772804F1FA6AF249CC62E54269A76D5 /* FMaxNode.m */; }; + 1E97C11CD7CF619E1FA8AC140A872EE7 /* FIRInstanceIDTokenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D258D14BC79B5BE81F018225D1617EEB /* FIRInstanceIDTokenManager.m */; }; + 1EFA9DA2A57699C29FD44C47D3FB1791 /* FRepoInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E89296FAD4B7175D1AFD7119FE8AAC26 /* FRepoInfo.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1F6001FBFB22E04BA7D1810D15EE57CB /* FIRSignUpNewUserResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 28582C025BACD55A7DCC97515F0072CB /* FIRSignUpNewUserResponse.m */; }; + 202F59EAF214D6481785BFC9B900FC2F /* APLevelDB.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5220DBE2CD2244D7B6C824940063005 /* APLevelDB.mm */; }; + 20C3ED32DF36559C18B783775D7F22AA /* GULNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C32EF1A3B6B226629AC4EE0673C07D4 /* GULNetwork.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 20E8139EAA640D3010E39B52FFE304A2 /* FIRSignInWithGameCenterRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F336492FD112B280450FCB34C0EBCF67 /* FIRSignInWithGameCenterRequest.m */; }; + 21A11E68A63DDCB8EDD455C7A4A1478B /* FIRAuthDataResult_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A36B4B0B985EA258F6CE173AD9BA198A /* FIRAuthDataResult_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 21A299807B8E207AEC9AF11B1ADFD93D /* FirebaseInstanceID-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 06C28D397D54D67F0EB49CC4BDF97FC7 /* FirebaseInstanceID-dummy.m */; }; + 221FA33E34EB353A3E7FC0DF43A636C2 /* FIRAuthDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 1354F571209E1FC4B795115F71A2CBA4 /* FIRAuthDispatcher.m */; }; + 2378185C0BEFF3BCA2E9DD62DF69F39C /* FIRAuthSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = 57058732E363D33DD3290897751CE97A /* FIRAuthSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 23894F9A5E5CC7E50511DA805D992269 /* FPendingPut.h in Headers */ = {isa = PBXBuildFile; fileRef = 72AEE339924C4AE1F6250387E823387F /* FPendingPut.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 23E3CCD4087480E22499A1813FEBB4B5 /* FPathIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = B786ED9C84710C654DA33154CFEDE8E0 /* FPathIndex.m */; }; + 23F6AAD1F541162311836C3641C9CE58 /* FIRGetAccountInfoResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B4CF952FC0EAD3976914E54BA1220D3A /* FIRGetAccountInfoResponse.m */; }; + 242879A67B798102049221A6D873FF85 /* FIREmailAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 37321833A613989B867D0FB0EB0FE47E /* FIREmailAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 24822EE154C3C16B59CE6B3CF782CA54 /* version_set.h in Headers */ = {isa = PBXBuildFile; fileRef = 36F0817250CA4C739ADDC14260713E07 /* version_set.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 24852E31F05E897BFC5BD1171EC809D1 /* env_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 53E767E55EDD268EDC310B99EBA67E08 /* env_posix.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 24CA987846529821854FDFCA057BEB16 /* FViewProcessorResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A74CE6E481FA06DB20ED88E60FB26B0 /* FViewProcessorResult.m */; }; + 2507AA28721C3B96A24B3FF51885B2A3 /* FIRStorageConstants_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CB923BE54DE32ADEC1C6FF4162A9807 /* FIRStorageConstants_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 25B49D9573879EC2C29CE3D86138EE75 /* APLevelDB.h in Headers */ = {isa = PBXBuildFile; fileRef = 256EB4112E9162124973B228B3BCFEAE /* APLevelDB.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 25F5148579524C9876FFCFEAB5FC0E71 /* FIRStorageGetMetadataTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FCB9D8ED877634BB9AE95762152EABF /* FIRStorageGetMetadataTask.m */; }; + 260276C5CA15CC85A077C060B43B403D /* FChildrenNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 2ACD9EC67820A2CBF615AAF4BFA51FFA /* FChildrenNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 26ADE3A89DA19F0808A38736F9F08346 /* FIRInstanceIDTokenDeleteOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = EF23EC72B19FD1C9F36192D8BCF91B8C /* FIRInstanceIDTokenDeleteOperation.m */; }; + 26CF0BCD6CF25407A75932A3E19940B4 /* FKeepSyncedEventRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5636C3E8A152D603ADAFA1FF227DFC3B /* FKeepSyncedEventRegistration.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 273048859FAF9772FB9C843FC3FD3A77 /* FDataEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = CB55A84CF5A2FC79608F37D51AC28C24 /* FDataEvent.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 27CEA7B12B85A3E3755E8423A12B3835 /* table_cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = C601B9803F132076341C71B1F874580A /* table_cache.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 281993D6AE583B3BF814E493DB271409 /* FLeafNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B08175914A2569D75EC94EEC56D49D2 /* FLeafNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 28225837CBD91EDA7253E5D08517B427 /* FIRUserInfoImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DB935F7C8BD9FE6B43670B1FCAA50F2 /* FIRUserInfoImpl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 28C299F0E7A866D624856C4213C3263F /* FTypedefs.h in Headers */ = {isa = PBXBuildFile; fileRef = F20674F4CFDFDDB521F89BFEACF3EA5B /* FTypedefs.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 28F8A38065069B21806E90774FFE582E /* FIRErrorCode.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C4670C197D6A2575E2EE651F2BF6CF8 /* FIRErrorCode.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 2965C04F042C04EC4DFD17ED42C09D13 /* FTupleObjects.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ABB8A9E3EDE82EDD42204070FEDC8E4 /* FTupleObjects.m */; }; + 2A862AEEEBFB7224B09343EACC2550A7 /* FIRMutableData_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = D7D91E76471740C608932FB8191EDA0E /* FIRMutableData_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2B920B9DDB5EEF0F00933B9F87C11714 /* FViewCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 6416EB4BDDFD0365ADB5E88F6E052F48 /* FViewCache.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2BA3E1AB1AED36FD3D1502293CD0F252 /* FSparseSnapshotTree.m in Sources */ = {isa = PBXBuildFile; fileRef = 811491871D37C8EC9D8AB07F9075B8D0 /* FSparseSnapshotTree.m */; }; + 2BD19D3A75305561CAB6CDA0BD85B329 /* FIRDatabaseQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = B0391512D5E1DA0C936666B3CEAD47FF /* FIRDatabaseQuery.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2BF33539C446BC58399E72A1766F033C /* FTupleFirebase.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F1EA5C48171AD0BF7C46569E46D5537 /* FTupleFirebase.m */; }; + 2C22433C2F7ADD91C0C6487378006BD8 /* FConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = FDEFEBE1B1B9CF32517F2885A2DE42EC /* FConnection.m */; }; + 2C28E48B50E1F7704306C0D27E8AB7BC /* FOperationSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 76B6021838F51EBC2BF85885001FDA10 /* FOperationSource.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2C8796E892C1E00F53AC678443C10930 /* FParsedUrl.m in Sources */ = {isa = PBXBuildFile; fileRef = 7241FA44043CFD6CFC158F98C7E1F805 /* FParsedUrl.m */; }; + 2CFA9105B78E14B3F07A9D613BE31700 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CA5CFBCBBE50C70263534AE6998D298 /* Security.framework */; }; + 2D4F683D8B2E4586C84273AB4B179819 /* Pods-FoodApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D05A88165A4534979F2118A069E5AD /* Pods-FoodApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2DC1E56F394587FDC030D50C36C0C5E6 /* FLevelDBStorageEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 555E67AD0E278F0F87DEB8A4F43C65C2 /* FLevelDBStorageEngine.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2DDC55A6EEF74B518020E9A39D7558A5 /* FImmutableTree.m in Sources */ = {isa = PBXBuildFile; fileRef = BF3E909D831447DBA89D631BB6797FEB /* FImmutableTree.m */; }; + 2E54D26BF57630DE2BFC25F7DCAA47B7 /* FIRInstanceIDTokenOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A8478CB94C0CBD8D1F623F1D75E313C /* FIRInstanceIDTokenOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 301CD923733AEE28F5DE94A783D3B9ED /* FIRInstanceIDAuthKeyChain.m in Sources */ = {isa = PBXBuildFile; fileRef = F56D47C5FC2D489D6B455DF3F1743D3D /* FIRInstanceIDAuthKeyChain.m */; }; + 30A058E4DA94B4625AF3FF3C800F0724 /* FEmptyNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 487E4862DD094741105A4E2F97903F47 /* FEmptyNode.m */; }; + 30C07F53D870FC78B292E0E4F91FEE9E /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4FAD54AF24FB83CF12F293704D03C36 /* QuartzCore.framework */; }; + 319769E51E281BFC363B7E1BCC609399 /* FIRGetProjectConfigResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F81AB3C991D9BB81456346DCA4FD091E /* FIRGetProjectConfigResponse.m */; }; + 31C51E92460394A4602F482AB4CCEAAC /* FChildChangeAccumulator.m in Sources */ = {isa = PBXBuildFile; fileRef = C52E4F0D9D9EB67A27B46748365DBA6B /* FChildChangeAccumulator.m */; }; + 31F8AA8D0C94CB04F3A2C2336D332610 /* FTreeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 79369AE24A7C9F3431DF912830A52555 /* FTreeNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 320E75931B9F0481193DD8A075346040 /* FIRInstanceIDCheckinPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = F59FC4CDC515A7A135A5453A3318AFC0 /* FIRInstanceIDCheckinPreferences.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 331A8B4FBFDA604A07AF7D78D4EB0553 /* GULNetworkMessageCode.h in Headers */ = {isa = PBXBuildFile; fileRef = B618D55A5765B4CA02C16AFF54D5E257 /* GULNetworkMessageCode.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 337B93A5B3B048476B5C6E85ECDDB676 /* FLeafNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B3FFFA521FFB0E0110E43AB2B848E20 /* FLeafNode.m */; }; + 337E2AF82BFF14C1803F038DA71E1185 /* FIRFacebookAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A94E8E446F77CD52C23F05DD7C64703 /* FIRFacebookAuthProvider.m */; }; + 3389BC2652E55D95D8970D9E6905DE66 /* FQueryParams.m in Sources */ = {isa = PBXBuildFile; fileRef = A34232D2D10407050FE03924D7C2A71D /* FQueryParams.m */; }; + 342D53D90D7F9C03182061B66232A943 /* FIRAuthRPCResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 27BE3DF76450F5A994530FA877F71DB4 /* FIRAuthRPCResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 34C087ADE4D56010FCDA37716E6D9520 /* FKeepSyncedEventRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 76AB4428F551C0302E72C35C112DB2AC /* FKeepSyncedEventRegistration.m */; }; + 34C2DADEBCC7347B4A45B8C595D2A5DE /* FIRAppAssociationRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = BA67B6E51290964128101FA9AF5702FB /* FIRAppAssociationRegistration.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 34CE521949FEB3914500AEE0FEA3A10B /* FListenComplete.h in Headers */ = {isa = PBXBuildFile; fileRef = F62C1A63ED23D7737347980C3C35759B /* FListenComplete.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 34E24CF6212E5D4732579F6976C39689 /* FIREmailLinkSignInResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B028544CC6B62834C8A3423557C4DE5 /* FIREmailLinkSignInResponse.m */; }; + 3557B3E6080723DA418A50DD971BF269 /* FClock.h in Headers */ = {isa = PBXBuildFile; fileRef = 314CF29A20CFF08E96DC58E8689717FB /* FClock.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3566A4E2CD19780E04DC0218FD3CADEF /* GTMSessionFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D6A87C2BC3A1FB99C3ABE3456043027 /* GTMSessionFetcher.m */; }; + 35D4008B2886548443403B2EC642CDED /* FIRVerifyAssertionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5AF476FC15EE1DF80F873C7DC0A461 /* FIRVerifyAssertionRequest.m */; }; + 35DD770A1964A1C5FE73EED53745B890 /* GTMSessionUploadFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A05FF3AAA6445246323B608A93D05D7 /* GTMSessionUploadFetcher.m */; }; + 36437A289AA120448C37C748D4189A8A /* FIRInstanceIDCheckinService.m in Sources */ = {isa = PBXBuildFile; fileRef = B2298071D9418C7806D1E0DC98CADC31 /* FIRInstanceIDCheckinService.m */; }; + 3690285FE865B0F2ABF6502FA538E56E /* FIRInstanceIDTokenOperation+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ADEEE081084D1060A001A6345AA03B3 /* FIRInstanceIDTokenOperation+Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 36DD0B1007BF3C7BFE352704D5C415F7 /* IQTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B3E62A97581101DCF5FB7CBA61206B0 /* IQTextView.swift */; }; + 36ED0AE64BDB9A03B859F8D72A5B7522 /* FIREmailLinkSignInRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 34DF897C6F43B5BE14D0733E5D5FDA3C /* FIREmailLinkSignInRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 37C581B6AFF6A235BAA74E04B959806F /* FIRStorageUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 25C6E4E729ED916184BADEAA778B0026 /* FIRStorageUtils.m */; }; + 37CE545795B78B6FE32C011CDA482CE6 /* options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 743695C2A2DD07937AB27895973F838D /* options.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 38350AA5EF358B8D1B7F94C820D0CE4A /* FIREmailLinkSignInResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 72A7D0D588196B6975538D66837D8E1B /* FIREmailLinkSignInResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 38AA2F94D89C2ABAE399D5E1B61D50E5 /* FTupleTSN.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F9259AA62C9A92EB5907DE9DCD1F0DD /* FTupleTSN.m */; }; + 394BF430DA7533FD6A0841249333FA2B /* FTupleOnDisconnect.h in Headers */ = {isa = PBXBuildFile; fileRef = EB2AB68B59E52917B9E72C1B95089E46 /* FTupleOnDisconnect.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3A3B8A01255B18C57491EBE527F8BCB8 /* FIRPhoneAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 54B1B27A722B3FBA5496A720CC1A5CEE /* FIRPhoneAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3AE2D42E5930D041AC87C8661296563C /* FIRInstanceIDConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 80EB1E4270653CFEC9AEBEDDFA2391DF /* FIRInstanceIDConstants.m */; }; + 3B5350E392A0755B37621F27E53798C0 /* FIRAdditionalUserInfo_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = EDCFE3B15F78E9328E7E151D90486FE6 /* FIRAdditionalUserInfo_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3B81E34CD8A79B67B3879D5BF1BDDBBA /* FIRStorageTask.h in Headers */ = {isa = PBXBuildFile; fileRef = AF1F72A70ADF5D64ECC7F4EA995A0187 /* FIRStorageTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3BC4D1830228B9947E9104682749A154 /* FIRGetOOBConfirmationCodeResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 006EAFFEDAACC2F909A2006C29F0B4CF /* FIRGetOOBConfirmationCodeResponse.m */; }; + 3D1D06AD8BE0DC3A019208F8E694C189 /* FIRVerifyCustomTokenResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1724632216FDB2FAEEF7F6914EFD2D8F /* FIRVerifyCustomTokenResponse.m */; }; + 3DAE50D8B2CC9BF9789ECE94473D23F1 /* FStringUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 861B6E3816521BCFFF2D86A52E4DC7AD /* FStringUtilities.m */; }; + 3DBA22384B6DF570FEF75A7843509A3E /* merger.cc in Sources */ = {isa = PBXBuildFile; fileRef = EA086E7971357AEA94281D1DF2FF79FE /* merger.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 3E157482EC99956AF8E93A142B3D5925 /* FIRAuthBackend.m in Sources */ = {isa = PBXBuildFile; fileRef = 94DBEAAA2DBC7F28FBBCC2B5F21F3931 /* FIRAuthBackend.m */; }; + 3EA31C5445E75B4EC512D27AD41B2F7E /* port_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 83E59D46FA2A2F5BB42A222F0C1D7ECB /* port_posix.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 3EA62AF38E556B016DC726CC107A76F5 /* GULNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = B8551C7058A8CBABF029E43D2BFD85B0 /* GULNetwork.m */; }; + 3EAB6491D5FD56F910068D04B3EDF48E /* FirebaseAuthVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = BC73B015A10DB9962F5FBA0EFDED4C8C /* FirebaseAuthVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3ECB2C916CF0D6FE09A71B9F52A1ED36 /* FIRInstanceIDStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 9767B5B8D7BE7971EF665A40B2BBFCD1 /* FIRInstanceIDStore.m */; }; + 3EF12E572EB218194E218B0C88E75AE4 /* GTMSessionFetcherService.m in Sources */ = {isa = PBXBuildFile; fileRef = 07B283A96B0DD8330120FDC6A68DC4E6 /* GTMSessionFetcherService.m */; }; + 3F0248C1462A6C099F3F3B5822D0C21E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */; }; + 3F0BBCEC6202B967A454F106F16A75E1 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CA5CFBCBBE50C70263534AE6998D298 /* Security.framework */; }; + 3F6AAB2D0A27620D148DF3B0F1FDD897 /* FIRComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F7D2BB37BA06C528FE19FEE336D871D /* FIRComponent.m */; }; + 3F87B3D9812F29080E867259BA9A39F5 /* FIRAuthAppCredentialManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D5D9F9EFED9ABA1EFEAAD2A52E438A3B /* FIRAuthAppCredentialManager.m */; }; + 3FC06CBC9BBF620828142C5D49040F65 /* FTupleNodePath.m in Sources */ = {isa = PBXBuildFile; fileRef = 37B7978800D6C3FA88CA5440E68527E2 /* FTupleNodePath.m */; }; + 40A27C7C8C1032104210A66E9B138EC4 /* FIRStorageMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = B6F2834553BB9BF787FF35E2F05F09B3 /* FIRStorageMetadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 40C7353EFE029FD4F01EDAFE31E2E848 /* FIRGetOOBConfirmationCodeRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C424072055C2486B8469BAD2F70F9F65 /* FIRGetOOBConfirmationCodeRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4302F4BC1D4AEB1847C11142BAD65227 /* FEventGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = C66B782590119CB3586CFE568C5FB08F /* FEventGenerator.m */; }; + 4456DA9FA6D8D3B122B169CCF414C552 /* FIRStorageObservableTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AFB1F29923516C437B3F0D78BDD8F52 /* FIRStorageObservableTask.m */; }; + 4467D1C8AABFA6FC321AC7CD6F327B48 /* IQUITextFieldView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F24813F060DD8199A17FA59CD50B9E4 /* IQUITextFieldView+Additions.swift */; }; + 447AD1200C4E46C54EA67846AA4A3ED8 /* FIRAuthAPNSToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 183326A44FBDEE35898C7E1FAD6C0851 /* FIRAuthAPNSToken.m */; }; + 456F7922D64809F223F194C5EF270D49 /* FCompoundWrite.h in Headers */ = {isa = PBXBuildFile; fileRef = 54768ADC425E0DA61799615D91A3BD54 /* FCompoundWrite.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 459CB66B3045A32FAF8278AEBE981428 /* filter_block.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F3BBCBF64110AC895B4427FBB389482 /* filter_block.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 45A7E7CD8D096CC7E733F79BA34490B9 /* FIRDatabaseQuery_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 7257998E4A8394E2B5817D64E457D59D /* FIRDatabaseQuery_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 463C28162B38D95A69DA93057CFE486D /* FIRInstanceIDCheckinPreferences+Internal.m in Sources */ = {isa = PBXBuildFile; fileRef = 54B5CF3EFFB7F1331CE609B2514E7293 /* FIRInstanceIDCheckinPreferences+Internal.m */; }; + 46484CB5E3D93EF37310967BE45654CD /* FIRVerifyAssertionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = AD6F39147D010BA530243E1F085BC339 /* FIRVerifyAssertionResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4657A2A00D4D80EAB11B63D8D1D66B64 /* FIRStoragePath.m in Sources */ = {isa = PBXBuildFile; fileRef = F313C58F4104E31C87DC22F5C9E1F1D4 /* FIRStoragePath.m */; }; + 4672D78132E997C1C3BA8512E66EAC1F /* db_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = B3BA5EA706ED38B6508C6D1316B02739 /* db_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 46736AEC21214EFE3712505F0FF95DD3 /* port.h in Headers */ = {isa = PBXBuildFile; fileRef = 24477E158B843677C017E0890BFB5878 /* port.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 468C0A87E00E97866EF219CF6838EBF1 /* FirebaseInstanceID-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 97DA82E1C8A7937DE3A78862C5F64DAD /* FirebaseInstanceID-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 468F1B16D2705CBFB5DFAC9794FD3A8A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */; }; + 47B3206E1515C8A68A63B01654DD91D5 /* FServerValues.h in Headers */ = {isa = PBXBuildFile; fileRef = 740512380E38DADF4E39D75396D56873 /* FServerValues.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 47D8B48486B2948B5F639E02DE592DE6 /* FIRNoopAuthTokenProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = C3E97E24BCEF827E42A17B40CC4B00CC /* FIRNoopAuthTokenProvider.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 496D5EBF984C7A140F8CA98B69B20FA4 /* FRepoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 15ED8DA31AA0864AE1DC78EE29BF1378 /* FRepoManager.m */; }; + 497A285A85FC1A6AB4BAA4F8E24EE4A4 /* leveldb-library-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E6D5ACD151CFEAF17C5ACAFE048F01DF /* leveldb-library-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 49B989CCE1B0FC3FE62756BD461105ED /* filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 514685B19E87177A5617C3E9E32DAB9E /* filter_block.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 4A3294F2FCFF96D15DA6FD2D5D839788 /* IQUIView+Hierarchy.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6080F0B9079C846B0F28982453E50CE /* IQUIView+Hierarchy.swift */; }; + 4A5430750AE7D622A0F14C8B11FBB69C /* FIRInstanceID+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B5557E5C870ACF41DBE53EA8EB0227D /* FIRInstanceID+Private.m */; }; + 4A8062EB0147064CBEFEDC06F536BF3D /* FIRInstanceIDLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 44CA81B70969DA8F10AC134D5BE2A7E2 /* FIRInstanceIDLogger.m */; }; + 4A98F21B093294A5FF9D87356E9227D5 /* FIRVerifyClientRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E2AFDEF995D40A3A151B61D8A2C980D /* FIRVerifyClientRequest.m */; }; + 4A9954B8DD18076E18F9D33E824EA836 /* FirebaseStorage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BA57D4835B7DD382D82146F5CBDFFBE /* FirebaseStorage-dummy.m */; }; + 4AA7C7D25C6C61712A4B4CEBB28549F8 /* FTupleRemovedQueriesEvents.h in Headers */ = {isa = PBXBuildFile; fileRef = F3671E9F28A18A24C842C26811268C26 /* FTupleRemovedQueriesEvents.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4AB2A356F018A58CAEC0601580BBC91A /* FIRIdentityToolkitRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = E1C21FDFCD08422A02F86FAE530CFF13 /* FIRIdentityToolkitRequest.m */; }; + 4ACCB079A4184FC70CB6213DA2904E04 /* GULLoggerLevel.h in Headers */ = {isa = PBXBuildFile; fileRef = 30E1EF7F78265C6C227BD6B91E4C9293 /* GULLoggerLevel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4B4DAFEA628353354B37C0FF60CC583C /* FIRVerifyClientResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 49CAE94CA62D827D2CB907579619194A /* FIRVerifyClientResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4BD962CD59889D65BBC7FF4666718AC9 /* FirebaseDatabase-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 40766C67BF78A5AA66F18FEFC606B5B2 /* FirebaseDatabase-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4BEE765356C2CACB5FB1818B2F4FEF74 /* FTupleCallbackStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CAC4A1BC915B1A16A6D6F7D048453B6 /* FTupleCallbackStatus.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4CB1E6FE7769B393DABC8F70D415A09D /* FViewProcessorResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 9334B2BD345EC10F99F94EF85FFDC1C1 /* FViewProcessorResult.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4CC939516CEDA3F9958832AE71AA8101 /* FOverwrite.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BE8933466D24A7FA16972DD2649955D /* FOverwrite.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4CEC79CCB4B8A8DC1EAC0AD4E3B74A05 /* FIRErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = C662D521BD4B0D1E34C3FD17B80C6593 /* FIRErrors.m */; }; + 4D26877F840ADC7AE1F231DFA92EAC6B /* dumpfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E84EC7328FE5D7040552BE80A1DAEDE /* dumpfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4D4331CC209F2A9C2D29297551AB6DF9 /* FIRTwitterAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 011E87FC73D1CA00449BA6DD75FA93B4 /* FIRTwitterAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4DB2EBC5E75C28100A70505E5F3C2B31 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */; }; + 4DD447CC97153B7CBB6828E51F83CED6 /* FTreeNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 6720FFBF362A0FF5170A80B492B945FE /* FTreeNode.m */; }; + 4E29C52AEAFFD4FCD3564FE4D225769F /* block.cc in Sources */ = {isa = PBXBuildFile; fileRef = C6448EB9CF9319D50E8381D363C2C2B2 /* block.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 4E2AD40DDA69CFD38A241DF74604921F /* FIRAuthNotificationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CA0FBA7D4ADD70AC17CF536CFE4DBF /* FIRAuthNotificationManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4E2F487B5580862EB0AC637E16A5EDC2 /* FIRVerifyPasswordRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 743F8E98E9F9EA3C2072FD2B02C0761A /* FIRVerifyPasswordRequest.m */; }; + 4E328A5C591DF8833EA0E793653D9463 /* GULAppDelegateSwizzler.h in Headers */ = {isa = PBXBuildFile; fileRef = 176AB47C3BC85BBD1E34D6D442EE7535 /* GULAppDelegateSwizzler.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 4E3E6EC07A4F261D041BA0C4CA258260 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 98ADC475E84235BC84ADBA05C35685D5 /* CoreGraphics.framework */; }; + 4E5B415C68D247011A74C6E8F9531F52 /* crc32c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 31BF0C9E8A19ADB4188DC547088929A5 /* crc32c.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 4EBCE44E46327E948677ACC912873077 /* FIRAuthTokenResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F5C70FFDAD2CA7580490595A3F6E5A9 /* FIRAuthTokenResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F26139BCC82DA0949574DDF94B137D2 /* FCachePolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FF152469AE80A6A0670BC713E9B4292 /* FCachePolicy.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4F3B22CF75C369F5E8EBB886BE7B5252 /* FTrackedQueryManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C03716B0FFF18A640102A03B71205D1D /* FTrackedQueryManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4FEB95C8A25B819590AB2509C6B8CD0A /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = E149BF7C18FC00B5589E62919F6D7E67 /* histogram.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 4FF698EC5C1FCF7002E43E79E123D41C /* FIRBundleUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 883C4E3E07A380766F0FE934B39BCEF2 /* FIRBundleUtil.m */; }; + 50993657F82E93DECBF6CCA8B3287F26 /* FValidation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D2032377C607DB3CDF2DF23749E7C98 /* FValidation.m */; }; + 50AFC67B697A136CB73CC5B9719ED69E /* FIRComponentType.h in Headers */ = {isa = PBXBuildFile; fileRef = 137FC741F74E23CA158C33144D7D417B /* FIRComponentType.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 511DC9CD732274220202CFDC04AA84A6 /* FIRInstanceIDTokenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F8DECF36944D1A7DA5C57BABB3544D0 /* FIRInstanceIDTokenManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5218544E85AD4A6A15DDC3DE089EE155 /* FIRAuthErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = 558AD646C035839B532AE1A9FCF44F8E /* FIRAuthErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 523E2F758045EB21A196D6ADA0613472 /* FValueIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 6052FDD569BFCC3675E15AE002A4F69F /* FValueIndex.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 526C6BEFDA5C429E9AED6A9FF2228C03 /* GULMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 54B51BF3B2BB0B3F9CE8CE450A24ECD8 /* GULMutableDictionary.m */; }; + 52B537F78643815D49DB7A78424A24E8 /* FDataEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = A9BB181D66A6560323ED5EC2A5A9F9F3 /* FDataEvent.m */; }; + 52D2B9E5655C86B3A28A862DE70B515D /* block.h in Headers */ = {isa = PBXBuildFile; fileRef = 09F2BFB7D3BA8EBEE1945C5A95D528DB /* block.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 52EA8DC7D2672F34D41DC7B0CA8B73A5 /* FValueEventRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 3441B69B80402FAE56CC66F80EA5A116 /* FValueEventRegistration.m */; }; + 536510510253A8B62F7F46DFD7521B85 /* FIRInstanceIDCheckinStore.m in Sources */ = {isa = PBXBuildFile; fileRef = EF945AC2C1675239C11C0A86774C17D8 /* FIRInstanceIDCheckinStore.m */; }; + 53B93495AB96BB31E2629C23FF7E7BEE /* FTupleObjectNode.m in Sources */ = {isa = PBXBuildFile; fileRef = A5B3396CD7B2D4607D4E265ACBE2006C /* FTupleObjectNode.m */; }; + 53F871C114CF3080C66AABE60D3EC0CD /* testharness.cc in Sources */ = {isa = PBXBuildFile; fileRef = A91868FFED3A95B12A17081458851E70 /* testharness.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 541F71778D551D3F3B548CB4EEEE843B /* fbase64.c in Sources */ = {isa = PBXBuildFile; fileRef = 8B024B8865BB133727235B8B3E43BDE0 /* fbase64.c */; }; + 54246F25394BB23D0E15BD5D0DD519E6 /* FIRSetAccountInfoRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 21C44E0FCBC3FD409AF911F66083145E /* FIRSetAccountInfoRequest.m */; }; + 544D4F7325AADBF3D6F5522A033BB68F /* filter_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 54969A39FA3FD4371C1BE98E3969EB0E /* filter_policy.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 54967CFA08ED242554E46D214197336C /* FIRStorageUpdateMetadataTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B462561E2B5FD154AAEF2B9B0A696CD /* FIRStorageUpdateMetadataTask.m */; }; + 54D12EC44087F53DA0A25FD290579367 /* FirebaseAuth.h in Headers */ = {isa = PBXBuildFile; fileRef = EC201A9BD45B3AD83F8C8EBE025806CA /* FirebaseAuth.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 54D8FF48C84B31C3AF1B321118E73314 /* FLLRBEmptyNode.h in Headers */ = {isa = PBXBuildFile; fileRef = EF6C3553AACC95BC2679FB8691EA9EBC /* FLLRBEmptyNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5502867D08BE3D6F37D76A9DFC6E8283 /* FIRVerifyPhoneNumberRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 514E2D9A98B1D95C1CDA4273FE11A944 /* FIRVerifyPhoneNumberRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 550EE07F11B1D9F872910D16616E8993 /* arena.h in Headers */ = {isa = PBXBuildFile; fileRef = 352E50E46F62044940F82B5D1833912C /* arena.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 553465315D098242CF35B37D9688015D /* GULNSData+zlib.m in Sources */ = {isa = PBXBuildFile; fileRef = 4422C86ABED5E9028BBF41FEEF8ADA21 /* GULNSData+zlib.m */; }; + 556BE1A6FE87B74113BFEB13ECCC7492 /* FSyncTree.h in Headers */ = {isa = PBXBuildFile; fileRef = B6671EDE6E7EB1649028F42D04C94D01 /* FSyncTree.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 560AC3485957003BBE2D38ABDF8F0FCD /* FIRActionCodeSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EA77A9A159741B12D8D8D38F9A35AF1 /* FIRActionCodeSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56237C510543BAD2475140F0076C5B87 /* FIRDataSnapshot_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = B10440FBBECFB215F0DDD5749B55B163 /* FIRDataSnapshot_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5677C54BF14ABA45675F2DEB98AFD0D1 /* IQKeyboardManagerSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0483354E454DFD8F424AFF194D9A4F8E /* IQKeyboardManagerSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56A21965C9983268CCD296D638D31437 /* GULSwizzler.h in Headers */ = {isa = PBXBuildFile; fileRef = B6477C0442D72A6DAF28A86DD24CC2FA /* GULSwizzler.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 56D07A1CD523071EEEA5426861D1B16B /* FIRAuthUserDefaultsStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F297668412D2D546C79924C58C3443F /* FIRAuthUserDefaultsStorage.m */; }; + 56D5A6FEF256C0CBB0E24D14787A500A /* FLLRBValueNode.m in Sources */ = {isa = PBXBuildFile; fileRef = DB524CCBAA1ECD2E463C761B5DE059CD /* FLLRBValueNode.m */; }; + 56DABB941D83E06287BD9BD890BC8CF3 /* FIRStorageUploadTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DA55E3DF780DB0132DFB8FEF7670747 /* FIRStorageUploadTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56E9FE3470D7075C0086C4B6CEB24706 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */; }; + 56EEB564D3963E2292983A86D1861E61 /* FIRSendVerificationCodeResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = A0257596A8EFB43D3C35BD21539ABFB3 /* FIRSendVerificationCodeResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 57931ED32032A5E08A2493A504E9027D /* FAtomicNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = BB8AA9F58CD7CF8E39B296EDA683A152 /* FAtomicNumber.m */; }; + 580C875BD56AE47B248D5C7F99730495 /* FWriteRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B0F0F5231B06D3F928790D421BE9B8D /* FWriteRecord.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 58467D56754CD77DAA805439283D4FF1 /* FPriorityIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 536909D5AA24A381D1EA0944DDF887DC /* FPriorityIndex.m */; }; + 58578477A39A00CA86AE68A3A1C52BA1 /* FIRInstanceIDStringEncoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CE43957BD7652CA8005140D23C6C8B7 /* FIRInstanceIDStringEncoding.m */; }; + 58798D4F22F098B86BFD11E22D1D1901 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */; }; + 58AB2BC10F938D64CECC81948A75237C /* FIRLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = BE5F468BFDCED6CC5F16589010918BB5 /* FIRLogger.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 58CFC7C232477561D707792417BF1FC8 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = EE69F575EDC26038B38AD4D173F2F6F9 /* iterator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 59149F253BF7164089FEE2BEE7276AC9 /* FArraySortedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = E0CA2E46CBC978FC51DE6EF3E3B41E17 /* FArraySortedDictionary.m */; }; + 5942F7142EEA3369B3DF83B3F138E7F2 /* dumpfile.cc in Sources */ = {isa = PBXBuildFile; fileRef = D800E0E09923D13652AD3E5F3A5E516B /* dumpfile.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 595F9BBF3A1590966A754B9995164BD5 /* FTupleStringNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 305C3F694B7E505D86ADD0097A2D2EF3 /* FTupleStringNode.m */; }; + 59887240263899E99E757E85FF0E1298 /* FIRInstanceIDStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 41E6BC65E9A612FAA83EAA8D81B6EFC9 /* FIRInstanceIDStore.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5A13BA49D87F2DDCDC27434A649B64B1 /* FLimitedFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = FC76766D04FF90B8DF64E3C8462888E6 /* FLimitedFilter.m */; }; + 5A22DE4FA5F130B08893A7789A6E9D59 /* FIRVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FC21FEB2EFD03AE4381358BE4103326 /* FIRVersion.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 5C83AAB97E5EE61B01DA8414E3FC258C /* FIRStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 142D8BAB74176D3264F161E043288840 /* FIRStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D01F46B4C1EEF8B7872CC179C5CEDF4 /* FIRAuthDefaultUIDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 72F214B853E1C258ECFECFF520F20924 /* FIRAuthDefaultUIDelegate.m */; }; + 5E20A631FA9A472F2C5DB1C5BEB7584C /* FClock.m in Sources */ = {isa = PBXBuildFile; fileRef = AEB770A77D4A5C16DF28E7AEDE2364E2 /* FClock.m */; }; + 5E3FDAEFD12F33849881A120D9D2F8A1 /* FChildChangeAccumulator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B08F6CAB67FCF250B1D97C0C0A6049D /* FChildChangeAccumulator.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5EBDEC2F1754096171B9C9999349D591 /* FIREmailPasswordAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F924A12A2DF19AC35A63824104F6C14 /* FIREmailPasswordAuthCredential.m */; }; + 5F1733076D2894FDD2BAC98D5F100B11 /* FIRStorageErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = 18B47B8CEF6BADD4682C255A17146F7A /* FIRStorageErrors.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5F1CE9521EC64C792851824834DFF48F /* FIRAuthCredential_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F7BF67FF2913A06C26C86AC20ED02E5 /* FIRAuthCredential_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 60017B8EFAD5C46268A07D35D8FDED49 /* FIRInstanceIDCheckinPreferences+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 43F044C323CCBA3DE722E72D00D40557 /* FIRInstanceIDCheckinPreferences+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6046510E36C0A8B4971A4D8F9BA2C7EC /* FIRDeleteAccountRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BE2825A5214CC391D437F27FCD00EF3 /* FIRDeleteAccountRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 60A04C720258D395495C0225AF04553C /* FIRIMessageCode.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DDA7A7A84EFD62B9CFDE223A1373E5D /* FIRIMessageCode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 61417E9DDEC056D3603F195CE534FBEB /* FIRStorageTask_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FE3B3D485BFF82FC44FB8B597E000A3 /* FIRStorageTask_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6163F71CDDA0A0305C74B83822F44391 /* FirebaseAuth-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EB06DC78D24748B91CEACE63316D7EDA /* FirebaseAuth-dummy.m */; }; + 61B8B958BBF72852DD911EC14EBEE36B /* FIRAuthInternalErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70C7096BB047DE6ACA4EAC80921653 /* FIRAuthInternalErrors.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 61F97F35EDDE2CBFE6FC6CA1D7CC0809 /* write_batch_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E55EF8FC00B14961A33E933EA72E0ED /* write_batch_internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 62430B40FF693ED36F0F4FC0EAD8B27A /* FNextPushId.m in Sources */ = {isa = PBXBuildFile; fileRef = 37AD682CFE799B95D1717B1A3CA260C0 /* FNextPushId.m */; }; + 6295DF6725B749AD04DCA071684668B2 /* FTransformedEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E412747A753D4F88BD21EB86D4FBE29 /* FTransformedEnumerator.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 633A43974DB81C2CCB1A2C3A7B1BFB37 /* IQKeyboardManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D517798B32A7D72D6E101888AE00BB /* IQKeyboardManager.swift */; }; + 633AAA8B6D7B184BF0AC182D8CB09FCB /* cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 899B0553D5DA571490A164523F258008 /* cache.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 6352F0296B51E03FA2DC5C564B777B36 /* FIRAuthOperationType.h in Headers */ = {isa = PBXBuildFile; fileRef = C1F40FA1CE48C41DBF6109314A45DCB2 /* FIRAuthOperationType.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 637A4952A1CDE42713131180FA631B94 /* FImmutableTree.h in Headers */ = {isa = PBXBuildFile; fileRef = E120E059F551A1D5C82E3724267496F8 /* FImmutableTree.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 637F64FF72C1D9D05562AA7B9CD0BD97 /* FIRGameCenterAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C001D1D619B63B1EAFC511846975698 /* FIRGameCenterAuthProvider.m */; }; + 63FB1C38F2105A12AEE0A6A5DF7005DA /* FIRVerifyAssertionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D45D69B64261E237F356C04A9526FF65 /* FIRVerifyAssertionRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 64629B8AB6ACC3214EEAAAD426F29A9E /* FIRInstanceIDKeyPair.h in Headers */ = {isa = PBXBuildFile; fileRef = 496BC0A261A8D8F223E3BEA98308B095 /* FIRInstanceIDKeyPair.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 64849198446AA0BD62CF81DB23C86B06 /* FIRDatabaseConfig_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FE698851F510549DA735390CC6DA51E /* FIRDatabaseConfig_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 64DC113BB44CE1544C1D7C4B6AE6B456 /* FIROptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B4011E6948382995F1545C00FA9DDB8 /* FIROptions.m */; }; + 653E6B62B347B21FCF34E2B85483AA04 /* FIRAuthSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B10C972B892ED6DB107ED9BB47DA6F2 /* FIRAuthSettings.m */; }; + 654DFCA2065FF52C802D6813CD602E6B /* FRangeMerge.m in Sources */ = {isa = PBXBuildFile; fileRef = 63CC6E3AD68079D393D47C09288BE0BE /* FRangeMerge.m */; }; + 65B3CDFB0444C7AA02F56877328F6A4C /* filter_policy.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6E999C1F8FA6801FECC38C542CAC5D /* filter_policy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 662A32262F2795541CEE41D85703D454 /* FIRAuth.m in Sources */ = {isa = PBXBuildFile; fileRef = E5C0011917E70088AB9DF54D6C8A441B /* FIRAuth.m */; }; + 665D2FEE8079D7D4A16C025F6DD983EC /* FSnapshotUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = F01C72ED17AC14CF272604C2E4B52F87 /* FSnapshotUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 67EB9B98CFEF7CB9221BC81C171AE9AC /* FIRInstanceIDKeyPairStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B53E726C17D99EA31B5A21E28AD140E /* FIRInstanceIDKeyPairStore.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 68445BCAF5F756412178BA60DB692549 /* FIRApp.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A19BE5F7DC2C507356BE7F58BC378B0 /* FIRApp.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 689E6EABCB7239FE9015AB06BB176349 /* FIRInstanceIDVersionUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EEC37D3DF9487EE47D79355154E1FB3 /* FIRInstanceIDVersionUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 69336208E24A69DA18CDD0A382FA64BE /* FTrackedQueryManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EDEC00DAE092B41855A25DF0CCFCB09D /* FTrackedQueryManager.m */; }; + 6A5B2A5F18CFEE6C5B56D872576EBA16 /* FIRDependency.h in Headers */ = {isa = PBXBuildFile; fileRef = 39C5A86733E4054199488A1D81FAD0C2 /* FIRDependency.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 6AF87145BFC0111E9389FF8E0585296A /* FView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FA7FC01C500F8BF1CEB114D2508FB2F /* FView.m */; }; + 6B363A1020C01B32031C823B7225B6A9 /* GULUserDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = 4312FC140BBD80D7EC3B1E55365BF563 /* GULUserDefaults.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 6B66771B40B7DF99E6F3068AB7A45413 /* FIRTransactionResult.h in Headers */ = {isa = PBXBuildFile; fileRef = CE821E0871B8E3CE8FA81E2E510EC576 /* FIRTransactionResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6C9D48B37D386A4BDF0E13AB8D15D1FF /* FIRInstanceIDCheckinService.h in Headers */ = {isa = PBXBuildFile; fileRef = BE7F9DC056277D8897B8A38FFCCC84B3 /* FIRInstanceIDCheckinService.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6CD0BA3A07C3171BFFFC804C7090BE21 /* FIRAdditionalUserInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 325045AA7C99D3D78752274F02AA71DC /* FIRAdditionalUserInfo.m */; }; + 6CD117947B7BF832410AB5642B58009D /* options.h in Headers */ = {isa = PBXBuildFile; fileRef = A313DAEBD92EE015CDC5E4CC91B57178 /* options.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6D1D054E0E98DB2CA9969115625904FB /* FIRInstanceIDTokenStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 6113477F284AD5B9CA83A621BDE057B5 /* FIRInstanceIDTokenStore.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6D44617178C72B4FFF2207F23C2292F6 /* FSRWebSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D57AD83854F00287F11B61C76F6F029 /* FSRWebSocket.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6E0183C26645E878A39406D5D612B75B /* FIRStorageDownloadTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 8403C0FCD81372D2C64EDD69407E321A /* FIRStorageDownloadTask.m */; }; + 6E3FBD2FF449CA89B695824F45B05041 /* FIRAuthAppCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = AD4894CE770725E86ECD6D7FC3BA4516 /* FIRAuthAppCredential.m */; }; + 6EE749931CF7916D14BF0ED03698E37D /* status.h in Headers */ = {isa = PBXBuildFile; fileRef = 20C9C0BC47C34338B67CE61497C78385 /* status.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6F1BCE808FB608FE06F26B7C665345AF /* FIRTransactionResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 203B7F3F148553F80218C3A0F1B3CEAC /* FIRTransactionResult.m */; }; + 6FB876149CC05708F6E164647393C735 /* db.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0E0E83BA9B2F2B211A49B41A23503 /* db.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7005CC73842394A92522541C75AA4939 /* FIRGetAccountInfoResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = EAC9EA96E81EA0B61B22569B455F9EE2 /* FIRGetAccountInfoResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7011CE258B91AC4B148E00815F3979EC /* FWriteTree.h in Headers */ = {isa = PBXBuildFile; fileRef = E726885254EAE8EF70AE64F561A40E1F /* FWriteTree.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 708008B08361CE1092CA079C984B3C07 /* FIRInstanceIDCheckinPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 91DDB68E7D3FBB14E5E6DDDF197BD072 /* FIRInstanceIDCheckinPreferences.m */; }; + 70AACCD364EF87D5485E1E6290E709CA /* FCacheNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D50AA67FF17B2BFC7E217041C8E229B2 /* FCacheNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 71689DED969D5D2BB905DF626D6BBCEE /* FEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = D90914E4131C0BE093BF34D8611523DF /* FEvent.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 717800D3D5F28543F6AC488A218A1EC5 /* version_edit.cc in Sources */ = {isa = PBXBuildFile; fileRef = 0B24AD779C18878FA0EB9B0A6911CD59 /* version_edit.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 71B18E974E9C00DBD4F36372FE57A304 /* GTMSessionUploadFetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FF0B69E45BDD02B00B0DBD9EB900400 /* GTMSessionUploadFetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7248687DA529D8A152534144CC662412 /* FSyncPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 35916DFDF2999CBBA62F1EBED562076D /* FSyncPoint.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 73005B8E95FB505599E6E57089FDAA86 /* slice.h in Headers */ = {isa = PBXBuildFile; fileRef = E90FCCE89240010AE540C3715C0FCC46 /* slice.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 733854F2FE667F6E07A1BB78A83AD7C1 /* GULLoggerCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 823B27EB6C90A8DF436CF5BFAB08D6FC /* GULLoggerCodes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 73D5D6BC36BBDB8566E075D56B15EE39 /* port_posix_sse.cc in Sources */ = {isa = PBXBuildFile; fileRef = 557C5F58C6D170E6D15C9F936EE357B7 /* port_posix_sse.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 74099764336AF4E38B03EE3E689778AA /* FTupleBoolBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 96B1EB9467489D616FC3FAFFE2F41F8C /* FTupleBoolBlock.m */; }; + 7469A404EA72DB963880A445AF3D49FC /* memtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 92F1DACC26728EDC007507006E6AE730 /* memtable.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 747522F60FDE69ECDEB29E8860A5D029 /* FIRGitHubAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = BD04BE3AD8B7A26C5C60DDB90A660B09 /* FIRGitHubAuthProvider.m */; }; + 7475B9C0293E5959E7118964F59B38FC /* FIRVerifyCustomTokenRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4E1D6BCCCB72AED5216B1AD683C7B9 /* FIRVerifyCustomTokenRequest.m */; }; + 74AADCD81E76036097D01096602E8608 /* FValueIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DB7F8E9194E1A1C14F0DA6EA599CC57 /* FValueIndex.m */; }; + 750E01FC4BCA1E12D66CBC83C701C292 /* FIRStorageDeleteTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 78D4D224645409CF7B3ED0A882343BBF /* FIRStorageDeleteTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 755F78190BA9F02A4CB68DDF0C5F0F61 /* FRepoManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A34F601192ADDE97929034D398D63FF0 /* FRepoManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 757E37CE5D0F05A6D0FA42FCAF7F07A0 /* FIROAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 864942A138C9AB7B1F3941533B832A79 /* FIROAuthCredential.m */; }; + 75D919EE0C52105F5F7B0B5A5682082C /* FIRGameCenterAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBAF4FF5A243F9CB2E3CE32C9BC72C8 /* FIRGameCenterAuthCredential.m */; }; + 76036D04234E627F001510422B2BAB93 /* FIRStorageTokenAuthorizer.m in Sources */ = {isa = PBXBuildFile; fileRef = B47A0938A746EAB5E1904BDC022A775F /* FIRStorageTokenAuthorizer.m */; }; + 76055E1DA7F75AE69AB90918532D790D /* FWriteTree.m in Sources */ = {isa = PBXBuildFile; fileRef = A9A0F2EFA35824DBE5C904F67C0045BA /* FWriteTree.m */; }; + 7644847C819A5F1BB2A1B5BBF5A75D58 /* FUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 69D5E78EF0FD49C5D342530F95311222 /* FUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 76BBA9D712ED29E478561D10590A528C /* GTMSessionFetcher-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A08E99F37C9690951356608241428D81 /* GTMSessionFetcher-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 775B576BF84270E95B1A9C5B309A40C9 /* port_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = EC0E8094EF58C3ADAE085AE921698A98 /* port_posix.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 77C1FB5D491B82B1FEA3097C4DB44A18 /* GULAppEnvironmentUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = B1068A1364C95545E4E13793A692FEB9 /* GULAppEnvironmentUtil.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 7852FFEAABA904D28786D9FB19B15A75 /* pb_decode.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275416A54B81938577085A5688EF7D /* pb_decode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 78727D175F4F6A19E223F73CB93DFA8C /* FIRAuth.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DA1EFAA37BE3E6CFE8F0034044C627A /* FIRAuth.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 78BE27AE71DCFB1062EAE33DB3C74260 /* FTupleTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 189C7B3478FD5B63059CAB38C9C5104D /* FTupleTransaction.m */; }; + 78D51DFB335110A77F95D925AB36D8C3 /* GULSwizzler.m in Sources */ = {isa = PBXBuildFile; fileRef = EB32D0B42B8DB3B939D7EFE70D050935 /* GULSwizzler.m */; }; + 79018028CDE52BB7AFDCA5638BA86ED6 /* FEventGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 4332EB117A4AC20C899513AD5E08B7BE /* FEventGenerator.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7925209CC2107EBB5C603C8B26E57F41 /* c.h in Headers */ = {isa = PBXBuildFile; fileRef = 97E691D4DE9C94E842D90F09716FE8E7 /* c.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 794BB00247E5FCFD05AA906189A17A2A /* FCompoundWrite.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C7B49E8EA6F147E817C44993FDA33FC /* FCompoundWrite.m */; }; + 79E364BE9C25810501E24420FAE27AC9 /* FIRInstanceIDAPNSInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F3AC56D0FBE4AEEBAD138303F62A2B4 /* FIRInstanceIDAPNSInfo.m */; }; + 79F67DC0F6BA6907CE8D3BA55A76ECA9 /* FIRSignInWithGameCenterResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 844FECB61F7E1CE84E7216A21967CC2B /* FIRSignInWithGameCenterResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7A29FF2B517253999E770973C977CCAF /* FRangedFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 274B74DB7AA8CA76AE460046F5FC00A3 /* FRangedFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7AAF71DAAE58705F62871D45AA31895A /* FIRStorage_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = D3FCDABE02DD992552AB5E4DAB835686 /* FIRStorage_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7ACB589181EF06077D967750E901650D /* FCompoundHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 2830664AD761FA33DCF9BA97BB93B0BA /* FCompoundHash.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7AD83A481363DE5388A51D6100DBF801 /* FPruneForest.h in Headers */ = {isa = PBXBuildFile; fileRef = A49673BB19ED1D52AD844C504FA1059B /* FPruneForest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7B49DA968FE9184225F8BAB9225E7FEC /* FIRGoogleAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 33625CC55436AE37384BEBE71AB382C6 /* FIRGoogleAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7BD0803A67DC84B9C48B2ECA0E8330F0 /* FIRInstanceIDURLQueryItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D70E831E909C98789ED151FBDEDC5905 /* FIRInstanceIDURLQueryItem.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7C0C86B59EEA8B16DFC2575713067BB5 /* FIRInstanceIDTokenDeleteOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 834E58E243B949D40238A851996FE070 /* FIRInstanceIDTokenDeleteOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7C4B28D4AC28FC6C73FE8ADEB96642CA /* FIRGoogleAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = CA53F13512170FAD6C3963453FF14785 /* FIRGoogleAuthProvider.m */; }; + 7C66F406C7BAED8E2A82A64DCB170328 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F7FD7EB4AD43C08DAC7A41393A0AFC3E /* SystemConfiguration.framework */; }; + 7CB2B4968AD40154DBAD9C261B69A439 /* FIRLoggerLevel.h in Headers */ = {isa = PBXBuildFile; fileRef = 637A04702322D136F598E5D192D235AC /* FIRLoggerLevel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7CFB8BB246F2CED57DB0DBA8E68ED17E /* GULNetworkURLSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 74EB4C78412E7A014E28B37BB17931F1 /* GULNetworkURLSession.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 7E027CC3DD96E182725F9455BFFED543 /* FIRDatabaseReference.m in Sources */ = {isa = PBXBuildFile; fileRef = 729A9D26C261307F12A65F4E43FD69C3 /* FIRDatabaseReference.m */; }; + 7E75777839622EE30BDA9625EAEED497 /* FNextPushId.h in Headers */ = {isa = PBXBuildFile; fileRef = 14AB87DEE3EE08B115283B8E252E7486 /* FNextPushId.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7EDB667FB9E02D05C37E394D5BA81877 /* FIRPhoneAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 56512CB54D5AE7748E852DE6B5378233 /* FIRPhoneAuthCredential.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7EDEEA929C703E64B26A53BCD5C95E81 /* FListenProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AB75124E71A3EE0EA2C785671E7967F /* FListenProvider.m */; }; + 7FA042A3C4AFFD2BF17A8E7FD9BAD4E4 /* FIRConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 1255E905181A57E5997CFA971C46B701 /* FIRConfiguration.m */; }; + 7FA907BFDF0A4551D655816C85E91326 /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 051B5E78EC3AD95A4326027939DB2F54 /* hash.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7FFE131ACA9B90341144BFB989EB8044 /* FIRUser_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 17104809A78BE3FE204B30B6EC20BCE6 /* FIRUser_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 800F09C867709739BAB780DE254AAA69 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */; }; + 801D07385A1DE55299EF2B7EAFDC8376 /* GULAppEnvironmentUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = FB3CC2D9A013E1FBF9FE723F8911D074 /* GULAppEnvironmentUtil.m */; }; + 80B01B2CC3D2649A0015594F5669CF57 /* NSData+FIRBase64.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2C71AD761BA7321A89A6A01BBB41B2 /* NSData+FIRBase64.m */; }; + 80BD857261F66DF547854516DD7EC58B /* FIRInstanceIDTokenOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2273428CFACABD45372FCDD26B3E42BF /* FIRInstanceIDTokenOperation.m */; }; + 815E2845C8AE3E3D885B8E9EEE0DD790 /* FTrackedQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F0FAEA390F44DE86D0081B0490EEDFF /* FTrackedQuery.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 821401F8DB4124554E5C86CBD59A3319 /* leveldb-library-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 35F84283B450204418E9BACAEF4AE056 /* leveldb-library-dummy.m */; }; + 82F2023E4682FB8C27255E68280832FA /* FIRInstanceIDKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B1B9D48BDCE8D0A06AB7491CAD8B1B8 /* FIRInstanceIDKeychain.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8309F2F3BF11463343D083AA55B34B87 /* FLLRBEmptyNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 427D710FA7409AFF82CF5DE93DBD71DC /* FLLRBEmptyNode.m */; }; + 8311A56D7AF0AFFF466DEE6C100C073A /* FLevelDBStorageEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1989D5BF1B4B814495E86F2D98D86 /* FLevelDBStorageEngine.m */; }; + 83BEB9F1DEC2C8431B4C76CB10CC6782 /* FIRAppAssociationRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 1152B45A2CEA9944F301C5884944C59C /* FIRAppAssociationRegistration.m */; }; + 840C1C746963E590CE2DE961AA34AAEC /* FIRSignInWithGameCenterResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8758E7C57F30B643374142691B1C75BE /* FIRSignInWithGameCenterResponse.m */; }; + 8413F03AFC3C68C5140E5C654C492231 /* FOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A98F14CC1F09D6683372AE77D3CC99E /* FOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 84928355BAEB00E302A24F7D67995ABF /* FTupleTSN.h in Headers */ = {isa = PBXBuildFile; fileRef = 4076BB7D0F9F0414BD108414B94543E5 /* FTupleTSN.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 84AF97ED0985D274499270F3995446A7 /* env.cc in Sources */ = {isa = PBXBuildFile; fileRef = E8E1F2C7413D49306D2E126D66ADEBE2 /* env.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 8515DFB2A44D80A1895E9B066F159D85 /* FIRAuthUIDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4248B7CE285E77B66D3491FD82A8ED05 /* FIRAuthUIDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 855F34993643FE1A58C2557F112EDA13 /* FImmutableSortedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 72BAD1245F797C625ADBB0E8637EA422 /* FImmutableSortedDictionary.m */; }; + 85CDB6E5CF5B351BAB8E82AA40376EF9 /* random.h in Headers */ = {isa = PBXBuildFile; fileRef = 003C8C25031B09DA0BE39C83F5EC6D82 /* random.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 85D18C3C8C32DA54CEE132CEF0C83CD8 /* db_iter.h in Headers */ = {isa = PBXBuildFile; fileRef = A2519A76F273A6F73D69D079771DC34F /* db_iter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 85F5162971394ABAA59D79BECFF00CC0 /* FirebaseCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 785D0D88B9D557A5137E33F229AE8753 /* FirebaseCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8654A7FB1251771AEEA1C103B8B7ADB3 /* GoogleUtilities-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CE680B60AA48DAB593750F851B4800A6 /* GoogleUtilities-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8654B389B5AF36176F31BE1BE27E46C3 /* FArraySortedDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 6852AD175807BBC8EA03620AF5BD63C4 /* FArraySortedDictionary.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 866775D9EA0ADACC19C03827A93A53DD /* FTreeSortedDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E36BFFD3B6F3C2521750BEC1FC59F81 /* FTreeSortedDictionary.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 86703FB7469C012C6302F1CD5E1DED26 /* FIROAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E989111ED56BF720839D2DD8E763CF /* FIROAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8685820BC185F5EC874E68199EDDF364 /* FIRCreateAuthURIResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A1BB86B6D726ACA89A7085BFB31D7BE9 /* FIRCreateAuthURIResponse.m */; }; + 8691F1535C454D784C7488733CE13239 /* FIRFacebookAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D58D34CEA34FF3BBBD83EEE5E0CBAC3 /* FIRFacebookAuthCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 873E21FCBA5D794944A5D1228546B03E /* arena.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7CD4C8A441F1A2126B3E75FBA02E0AEE /* arena.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 875ED4EEAE9E4320B8C78A8A932EBBCD /* GULReachabilityMessageCode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E25FF8777C92BDD6428E864901E61FF /* GULReachabilityMessageCode.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 8857A00E443FAAAA6547C550366A9B95 /* FImmutableSortedDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 84FF9BEADC503A0844A823F5945C0CFB /* FImmutableSortedDictionary.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 886E96DCEA43BB8A6F567709368AD2EC /* FIRUserMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EA87E86672F1EE5D63BB6AFCDF19142 /* FIRUserMetadata.m */; }; + 88BAC9BDBBA719C4140BF591D5E2B1CA /* FConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EB05AC9E99F9042A7E07EB9C5B05F2F /* FConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 890B2BB77F709855E79F746AB10F9E9E /* GULLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FB5003C2AA4ECB6EB79ED81573CFE4B /* GULLogger.m */; }; + 8941446FE3524772428414D591642FF3 /* FIRAuthDataResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 418E6F462BE573466EE6BD751080D984 /* FIRAuthDataResult.m */; }; + 89B58A35A56402B339C4724BD672600E /* FTupleOnDisconnect.m in Sources */ = {isa = PBXBuildFile; fileRef = 0638EEF754A6ABC7E6CAEB566AC7C356 /* FTupleOnDisconnect.m */; }; + 89E34C591120E62535E2702FB2E1DBAE /* FIROptionsInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DEFC55BFA726E9863A58E4E3270A36A /* FIROptionsInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 8A270A7DC36B3B415A29BCA99FDA5C22 /* pb.h in Headers */ = {isa = PBXBuildFile; fileRef = 33214F1F4DA44B638AA80FAE3BE29C5D /* pb.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8A2DE95C9D65C3D8A241F9D9262C4A93 /* FIRComponentContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CA21109965CC2C4D8BD26BA110B7498 /* FIRComponentContainer.m */; }; + 8BB9DB2D2669C86B5DD95FA37629BCEA /* FIRAuthWebUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EEEF1563F580108C52A150A2639D3EE /* FIRAuthWebUtils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8C62C9DB7B6B0DCBE97E9F0F6A07730A /* FIRMutableData.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD4CF2B282C44E15B56577BFB4592DA /* FIRMutableData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8D3F9F0A4868244F7762C63FE249C06E /* FIREmailLinkSignInRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C1CCDFB0D7EBEB0883F20E3D4C290C4 /* FIREmailLinkSignInRequest.m */; }; + 8D6F717E311B0915A51BD17FBEE04B84 /* FUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 953694C28DFBDF81EA5E3766D5D35494 /* FUtilities.m */; }; + 8DA31D925FB27A51399006283B095064 /* FIRFacebookAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 33FEB75D690009060D5BAB923911FC23 /* FIRFacebookAuthCredential.m */; }; + 8DDEAF80F8EF45A9582103768083CB75 /* FIRAuthWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = FE902F782C52BFBAA9F6BC0BDEC70CB4 /* FIRAuthWebViewController.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8F0A9E78D0577FC05F67D8169CEEADFC /* FStringUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 449061F436F2D0017B2604418A306C95 /* FStringUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8F846C2683E0735603B7D04F49B755F0 /* FIRStorageUploadTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 794B7E809C5AF0975CDA2D91CFF0DC40 /* FIRStorageUploadTask.m */; }; + 8F96035D5A9AD579DF0A968D0290B1BD /* NSError+FIRInstanceID.m in Sources */ = {isa = PBXBuildFile; fileRef = 228A010ACC4B98D785EBE217AE830C42 /* NSError+FIRInstanceID.m */; }; + 90366333E4A82F149AB5AD885645E35E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */; }; + 90FAF3F5EC0574B7263E338985C22E73 /* FIRVerifyClientRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 2362FD7A5621613A543C642A63EF932B /* FIRVerifyClientRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9127FF562CA501ECA24015659863160F /* FIRInstanceIDTokenFetchOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 935AD241C3CF4EB6D800AD2229F77247 /* FIRInstanceIDTokenFetchOperation.m */; }; + 913C579023800D52221B6D36F5F02D75 /* FIRInstanceIDTokenInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 9034BB2B6F23DDCA14C9C86712E63D80 /* FIRInstanceIDTokenInfo.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 914AEF26749A4F36D94424D8A0B44BDC /* FIRVerifyCustomTokenRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D5735F9DFCAF98F369ACC00BB6416F36 /* FIRVerifyCustomTokenRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 914B91B07E854BEC1577BADE6C24E2DD /* FIRPhoneAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = F23651C02E078D1B59199AC4DE7CDC25 /* FIRPhoneAuthCredential.m */; }; + 91DF79933CDC38A9BFCF26CC376C18B5 /* FIRSignUpNewUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 22C1D5C86D1001DC26DEEED074A443F5 /* FIRSignUpNewUserRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 91F112431966D2D0886814CD1EAB3B23 /* FIRStorageErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = 5047AC9DBC101A463A13C78F0174D73D /* FIRStorageErrors.m */; }; + 920A5F5BE6201D905960DD189ABD6A3A /* FEventEmitter.h in Headers */ = {isa = PBXBuildFile; fileRef = E4C09B4050A4C305E0895ED70EB188E5 /* FEventEmitter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 923A808AAD0A51219D6C548DF6D1BBF3 /* FPath.h in Headers */ = {isa = PBXBuildFile; fileRef = EDF6B3C910C2F08B88AC024C1AF07261 /* FPath.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 92474AF5520B2869427F5F4D6DED1ADE /* FIRAuthWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D55D30E57F51334315AB26779DF0F69 /* FIRAuthWebView.m */; }; + 9247A9DFC0317B6B3896A28CEB5F6EA4 /* GULMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 2390161B6A068F444F66B9E9FEE89CD8 /* GULMutableDictionary.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 92E9BD908B71CFA1C6EDA2FA86BF1635 /* IQKeyboardManagerSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 72919D3FE744D73BF2CBC4E485639DFB /* IQKeyboardManagerSwift-dummy.m */; }; + 9301244951281B9FCD07E09D941850AE /* FIRDatabaseComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 637AB617C757BD389EBA1F9DC6243CEB /* FIRDatabaseComponent.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 93E3037DDCC6A4AD0E5B087DF63A87B6 /* dbformat.h in Headers */ = {isa = PBXBuildFile; fileRef = 29762751DB8B1F55F32493A5C59CD49B /* dbformat.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 93EA8BD3293A7315031E23645BDB225A /* FIRAuthAppDelegateProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C5BAE80B61F8AB85A079B5BC360D097 /* FIRAuthAppDelegateProxy.m */; }; + 94847D7CFEE66B2A5575A7CEAC479A40 /* FKeyIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 7969A7406BC11F360BAF1414F1C6EF0C /* FKeyIndex.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 94DB9009E5B79B6338A6B32D88DBCEC0 /* FCancelEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BA84E23500EAC6172C32E5DD77C31E0 /* FCancelEvent.m */; }; + 957EADBD0256931411E6667BC4BDC0AD /* builder.h in Headers */ = {isa = PBXBuildFile; fileRef = D2D6FD686B4D94E26D0D5DC430366737 /* builder.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 96413E2FB7C647AFFA692CE4A908A50A /* FIRSecureTokenService.m in Sources */ = {isa = PBXBuildFile; fileRef = F9EBBD2F336C7F8464383467706831C6 /* FIRSecureTokenService.m */; }; + 96912D0B39B3D996FDE1CFE3F50138EC /* table_cache.h in Headers */ = {isa = PBXBuildFile; fileRef = AF23E6676267077074F97643B2FF9562 /* table_cache.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 96E6B32E8E6086BCD04938BDFCD8793E /* FIRInstanceIDAuthService.m in Sources */ = {isa = PBXBuildFile; fileRef = F74B5E05BBD455C1A494EA7D381CD556 /* FIRInstanceIDAuthService.m */; }; + 97CB4D80FBB25283F391413F0DECB7B4 /* NSError+FIRInstanceID.h in Headers */ = {isa = PBXBuildFile; fileRef = 023A1920CEFA87DC23833B3C3DC6509B /* NSError+FIRInstanceID.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 97DB5328020E9E90F9F345FC3D4BF24D /* FIRStorageReference.m in Sources */ = {isa = PBXBuildFile; fileRef = 4981BAA6B92BDB16B2C9437DE6E5E4F8 /* FIRStorageReference.m */; }; + 9868D7297569D639E79D0CD2FF36EFF5 /* FIRAuthErrorUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E787AA64FC0F38B88F3F8909944E6C8 /* FIRAuthErrorUtils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 986EF56798DE2C7C65737AD9334E517D /* IQNSArray+Sort.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DF267D7963BC873976B6BF2D5DF0B45 /* IQNSArray+Sort.swift */; }; + 987AA96FF2F37CA0A87C31EC428381E9 /* pb_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = 9FF89B3977197928B5282A672130B448 /* pb_encode.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc"; }; }; + 98D84A54E63261142E544BAEC81FCA5F /* FIRDeleteAccountResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 46BE07306D95530B3F7C1F40FED30A2F /* FIRDeleteAccountResponse.m */; }; + 98F55D8153308EF256C025DF85DA6112 /* FEmptyNode.h in Headers */ = {isa = PBXBuildFile; fileRef = F2E146440E0102C6BBD0D9EBDB29A1DE /* FEmptyNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 98F9D1DF6D8D8B956D90CA18324FF9FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */; }; + 991CB1718946D23A9C35A65BAC6FF309 /* c.cc in Sources */ = {isa = PBXBuildFile; fileRef = B95C62FA9F4497F20AA06BD8C3DEBE42 /* c.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + 993DDA9360079D849A4D3B16CFBE226A /* FIRInstanceIDKeyPairStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E25CD3D87E41B8CBB5FC635F8DC6284 /* FIRInstanceIDKeyPairStore.m */; }; + 9A3BB8322B4D9220B21FA409EEE85871 /* coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 6224B637C41F80E96D3419611D9E4B53 /* coding.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9B5C5D7FA708DF18C1BC137D8CB4A218 /* FIRResetPasswordResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 87A77351E74C12CB13D2347C22AA624F /* FIRResetPasswordResponse.m */; }; + 9E4673E47871B269FC811D594994102B /* pb_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 277542CCACBABB940DAE59690620BA07 /* pb_common.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc -fno-objc-arc"; }; }; + 9FA5A831BAB2C4ABD068179E743C8C5C /* FTypedefs_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 97B5AB2B2C36BD945292787D35F5A5DC /* FTypedefs_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9FF10DB02C5CAA3B08874BFB4715C2EE /* FIRGetOOBConfirmationCodeRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 541EED348C50B0AA88D60A7C4DA134DF /* FIRGetOOBConfirmationCodeRequest.m */; }; + A01331EBF858B835EFC5F8930A96F148 /* FQuerySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DAF3D4A2BC11A3202EB04FAEFCCA272 /* FQuerySpec.m */; }; + A04172493E90898F0FC09D0C55FBA726 /* FIRVerifyPasswordRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AC03FB70AE0CEB16BC437A90DB78F78 /* FIRVerifyPasswordRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A1378FE41C3DA69263C564F0CD1A38E5 /* FMerge.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D0C0C1ED1AA2E776D114351F4ABE467 /* FMerge.m */; }; + A13EF67A149C795FB6898CC69D56812B /* FStorageEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 3166DF80F9DD07F0E7B90A44E22FADA5 /* FStorageEngine.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A18D5EAD9604BC73CD95E01F25AE10FF /* FIRDatabaseConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D2DD7E0C1E831934AB25F037406658A /* FIRDatabaseConfig.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A1F7382CC1A92B2908C751EC9C58476A /* FIRAuthTokenResult_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 11539019691A0E899CCEFC5392C637FA /* FIRAuthTokenResult_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A2072A2052AB032F3FA11214B6204364 /* snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = DDC04CA5EE65D0CB8816FADD711FA835 /* snapshot.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A229DEFB4D1D747640ABAFB557258B52 /* FIRInstanceIDDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 745B383D181FBC0B472D2B90CF6B55BE /* FIRInstanceIDDefines.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A2791159AC33461D77B7061FCFD76D58 /* table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9F596B3E32FC05B4C91E22401373203D /* table.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + A2F12BB9F26DCF105119B2CCCB97FDA7 /* FIRStorageGetDownloadURLTask_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 00AD1CD4B1018456F374FAC831EFCDD6 /* FIRStorageGetDownloadURLTask_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A380ABE3F1AF1CA7A14F9449BDC0B73F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */; }; + A3B3791F6386DC1EEBE44032270BC5B1 /* skiplist.h in Headers */ = {isa = PBXBuildFile; fileRef = FA272E422258B6250800056FDCA82B4F /* skiplist.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A3F4FCD210BDCACBFA4529DEE25D4E3B /* FIRStorageDownloadTask.h in Headers */ = {isa = PBXBuildFile; fileRef = D57EF38AFCB1A45DC1DB769223D7937B /* FIRStorageDownloadTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A4395E9EE30C52FBC521772EC3A10710 /* FSyncPoint.m in Sources */ = {isa = PBXBuildFile; fileRef = 59B830EACB8367CA9E1B7C1CE95A0C42 /* FSyncPoint.m */; }; + A45FA3D6744EF45730ECDFA990035784 /* FIRCreateAuthURIRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E893D5481EDD037B3E0D5865D7D6971 /* FIRCreateAuthURIRequest.m */; }; + A46EFD7D827C6DD39056EB373A753AC5 /* FIRLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 947B3B770D1B1E30CE0004400A7E825F /* FIRLogger.m */; }; + A4D502384CA4476AEF7EAADF694B4D04 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */; }; + A5694BA821B7238CA6EE28B05D4FE367 /* FIRPhoneAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EDCFA2D5F24293CDE39A247CF57E8A /* FIRPhoneAuthProvider.m */; }; + A5A03A32C743C1F49183F2603C583858 /* FIRGetOOBConfirmationCodeResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C09EE80A53F233F52132FE6D9B19652 /* FIRGetOOBConfirmationCodeResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A5BD0209AAEDCBA5AF2C23B6F64BEF9F /* FIRStoragePath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C527E073394100C826D1B01EA9E8162 /* FIRStoragePath.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A5D1F0C7D9FD62D01D16176A30F68DCF /* FIRAuthBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = A8ED4F2B61985EE1E3984B6677548482 /* FIRAuthBackend.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A6244665DCF3C8D5D3BFD33A4943E0E3 /* FIRResetPasswordResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F4C98284A88F5BF60547446ED103475 /* FIRResetPasswordResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A757B33D3849BB87A16B24B6C8A19A26 /* FIndexedFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = EE714EA1D8E6FBE5FB01F9B721ED4BD8 /* FIndexedFilter.m */; }; + A7AB49BE69CB6215D1AE1880E13B938F /* FNamedNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D44CA21217D25202984043934B3348BD /* FNamedNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A7EC418023C3D93182E327977EB8A23F /* FTree.h in Headers */ = {isa = PBXBuildFile; fileRef = 3388A8ECBE18C6D60BDCBC8DD4778B82 /* FTree.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A81B61396978C96521CFC8A480E036A6 /* FIRPhoneAuthCredential_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B4338D71EDABE1B0159C2C0CDEE56 /* FIRPhoneAuthCredential_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A861F266BC964811DBC35E3C999929D3 /* FPersistentConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 742748BD8B7303E1FD861F603DAAB844 /* FPersistentConnection.m */; }; + A86B262118D77619A11EC299A79E1248 /* FIRIdentityToolkitRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 01692C6A094946F11ED83A1952BAA253 /* FIRIdentityToolkitRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A87554635F65501E94EE1B2E0B746D6A /* GULReachabilityChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = BC84A49B94F9B3BEC488700D5BE29F40 /* GULReachabilityChecker.m */; }; + A87F00084AEFB5EBC3A998A06FFD314B /* FIRStorageDownloadTask_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BFE82A31BC997DC0490C1B3855C8F2C /* FIRStorageDownloadTask_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A885FF4E0A7495FC326B977138762F79 /* coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 766694ED65C969FF27944158276BE54A /* coding.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + A8C99C7E0B3200BF586E7C40EFBE584C /* FCompoundHash.m in Sources */ = {isa = PBXBuildFile; fileRef = 166C592720B5F902576944B388FF3635 /* FCompoundHash.m */; }; + A8DD9A76DD0BA8EC59B171C086D17311 /* FIRUser.m in Sources */ = {isa = PBXBuildFile; fileRef = C88AE41EFC4FD02AE6940347A8B5EED9 /* FIRUser.m */; }; + A96098E29CB7D5A4DD6B380E7DDD9A3D /* FIRGameCenterAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = C5EF7F31C003540230D94E8F9F7779ED /* FIRGameCenterAuthCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AA6CC97C45889CE4785877000A88EC6F /* FIRAuthErrorUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C0D8893D1CB0B4A21ADEB8B7A86DDE /* FIRAuthErrorUtils.m */; }; + AA9D1CF02CE99F3A1ED4823D3E2848D7 /* two_level_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F622CFFBAD2E1E370FE0E99CE2A20FFF /* two_level_iterator.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + AAA84F65B67D7B0D0AE269B2A89D8051 /* FLimitedFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 183F9D79C91BCC4DB7C12CDC0ED1D2A4 /* FLimitedFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AB677DF849086FA63DCBE09871B74BA9 /* table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 866793CC367F998AE39FF3DD3350AE95 /* table_builder.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + ABE3CCAC32E0843FEC359BF913ED54F7 /* FIRSignUpNewUserResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 898318EC9E7D0D3CCB7BB71B8F2E7FA9 /* FIRSignUpNewUserResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AC09942666E8A16B58E7C4EF58109EC9 /* FTupleFirebase.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F611F92B15753FC043260BC48F7B9D2 /* FTupleFirebase.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AC3F1C446721744103142EA2B75FB886 /* FIRServerValue.h in Headers */ = {isa = PBXBuildFile; fileRef = A90C6A6C445A44B5DB5802E8889A4DEB /* FIRServerValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC5490F06257BFF9D63E17D8870430BD /* FIRVerifyCustomTokenResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 695115B98839955A70B2B4B53381BE98 /* FIRVerifyCustomTokenResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AC68E7E19B9E699DF07625469B91B1F8 /* GTMSessionFetcherLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EC8C4E195CEDED3251869173DD546DB /* GTMSessionFetcherLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ACF04D5F7E8956A0FAA34EAD8ED1AC8F /* write_batch.h in Headers */ = {isa = PBXBuildFile; fileRef = 40D87EC8F90E5F4FB41876D217CD20BB /* write_batch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ADB7FE13B7DFC9B5162FA675EA4426CB /* FIRAuthDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DFAF20F19CD461B3E454300789F56E2 /* FIRAuthDispatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; + ADC423E46F97CEBA77460EBC67F54F33 /* FIRDatabaseComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = AF47C0C06B32B682CF0E92017C094A72 /* FIRDatabaseComponent.m */; }; + ADD8826B4AE99D0759AD0591FD301CCF /* FIRUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 06B19ADAC1BFC767F76B8AF5D01EE295 /* FIRUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AE4A5ABAEE4562770087DDAC861F2819 /* FPriorityIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 670BD094A4F1102AF515164E467FC428 /* FPriorityIndex.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AF6ACB2BEDE7BDD42A8CBD6A102945E6 /* FirebaseAuthVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 80904A882D2E112FE1B9CD59DBCED890 /* FirebaseAuthVersion.m */; }; + AF7B7285592E52CED72C396F6CE9F1DE /* FIRGetProjectConfigRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 68AE6C45F35B9F7D377F609C176EF145 /* FIRGetProjectConfigRequest.m */; }; + AFDD31C2B23BAC310693E0B0EB0B392A /* FIRStorageConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 55809B6C0E024540341FEEDBAA038BF2 /* FIRStorageConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B050641BB40612D2C95E1796C43CBFC8 /* FIRAuthAppCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = B83C3524CC78FAEA0F53C9962E325DD6 /* FIRAuthAppCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B0716A5829B0FB4C908E5C171D387EE8 /* SkyFloatingLabelTextField-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F80978DC32B0CB17D5F42E149EDAA570 /* SkyFloatingLabelTextField-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B09C394D3F5178A33A0490B9D9E95E8E /* FIRVerifyPasswordResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A5E2C194D1E0B47718A48C88C4BB76C3 /* FIRVerifyPasswordResponse.m */; }; + B0AFD08FC30918916E76FC85B949656F /* FMaxNode.h in Headers */ = {isa = PBXBuildFile; fileRef = EB6142978364E21B194618786B9C437B /* FMaxNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B129CCC41C1D626E64A0BC4DCEF8FD00 /* FIRRetryHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 1957F53C653A6FE1CE67776446F317B6 /* FIRRetryHelper.m */; }; + B178B38FCD7F99B07422484FC7FD6861 /* IQKeyboardManager.bundle in Resources */ = {isa = PBXBuildFile; fileRef = A6A8B1B2ECE0D7274E58D0794ABCB042 /* IQKeyboardManager.bundle */; }; + B1AAFD579BDC16A45C26DE2F4E3656B4 /* FIRSetAccountInfoResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9616F08E4D2CD82DE4D20C02A0E4AAEC /* FIRSetAccountInfoResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B1E2BD00F44D154485352C7B29E62FC2 /* fbase64.h in Headers */ = {isa = PBXBuildFile; fileRef = 76F6E832E09D75FDB87C2EECEECA6BE2 /* fbase64.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B221334BBD361B1C33C4B9CE9164128C /* FirebaseDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 5703EB80B49388A52554994F8DCF5C32 /* FirebaseDatabase.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B26C23D4D512BB80872F5206A9A6A6DA /* FIRTwitterAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = B8B25584E9C0028B2657335D8C0219C4 /* FIRTwitterAuthCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B2A4A7D1BD7C4D59EA0FF0A49163A387 /* IQBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8A68045783992B9D13A7B0EE8C4941D /* IQBarButtonItem.swift */; }; + B2B37105EF8BA1702E6A560EF1A1321E /* FIREmailPasswordAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DC0B2F5445ED7629C3D5DE25138034C /* FIREmailPasswordAuthCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B31408B26E66DAC9D8A7DFEAEC1C67E0 /* FLLRBNode.h in Headers */ = {isa = PBXBuildFile; fileRef = AB90BB381F001406E272B1D86AE4CE4F /* FLLRBNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B383A17E39A36654E8A728B38C2EC6A7 /* FIRInstanceID+Testing.h in Headers */ = {isa = PBXBuildFile; fileRef = C1494BD04285E60B10768944E32FBA7D /* FIRInstanceID+Testing.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B393D5435C221A1040E2B7E4AC6024E2 /* dbformat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7FE6DD8C7D9CF388913249A9BB27A410 /* dbformat.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + B3DB754645090ACB4AA01CA344D68ABC /* FIRGetAccountInfoRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A963FF14DFDC2978053A6A8330294079 /* FIRGetAccountInfoRequest.m */; }; + B46D42AFDE7DDCF8BF8E0B27D3CF41DE /* FIRUserMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = EDB87775122E9BF3C4FFAC7632CAA5CA /* FIRUserMetadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B48820C13D319A1E23BADF60214E433A /* FServerValues.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CF8CB713B517B8816DF2B91EE60CF1F /* FServerValues.m */; }; + B5CB10287D862F8BE22A2E8A371D94B5 /* FIRInstanceIDTokenFetchOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7638732A429BFFC4A6E64402B25A8276 /* FIRInstanceIDTokenFetchOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B60C146A2C64210132C0873EBB5F07E8 /* version_set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 71E3298885EE3DE0BDB54C17CEBA1E09 /* version_set.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + B60FE6B90113FB86FD42F44701DA96A3 /* iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 20E5D91136CD814B6CDB9E135B153EB7 /* iterator.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + B61AFFC8709A6DFD4CA9F691D893D334 /* FTupleTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D5B8703797FE9A4CC0EF6518FC4AEFE /* FTupleTransaction.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B66210DE27D8366DB5B7386870142981 /* FIRGetProjectConfigResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FB9FF5025D1B3C422391E4E4CA40702A /* FIRGetProjectConfigResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B7D2149DC67052F8A1997C4905F501AC /* FIRConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 519ADA4C8E4DC6D0A303687861EAA4FE /* FIRConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B7FDC251D23FA0565C6837F4C51A92B9 /* FirebaseInstanceID.h in Headers */ = {isa = PBXBuildFile; fileRef = C56AFBFB2CD709E1E9A7FB377080D7AC /* FirebaseInstanceID.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B7FFEEE2C145B2BA6E14759822C621E9 /* FIROptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 14A3175B4BCFD861C21FD6F161F0AB85 /* FIROptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B8218CB479D8FBFB63894EDDE141E86F /* FIRSecureTokenResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D2361C8FA64DE880EB78AB95F1FC634E /* FIRSecureTokenResponse.m */; }; + B853A69DDBA84228262F26E0B1D45D75 /* FIRFacebookAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = CEC41A912BEBE34CC58457C073CDF43A /* FIRFacebookAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B8715DCAF9A30082FCF8E69423ECD096 /* FIndexedFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C0245BC7BA8B341E61AA02479216C58 /* FIndexedFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B888C49BC46C9A62CBF03A8FAD7126F1 /* IQInvocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 471E59A6C01312C6BD0C63AEE62AEC31 /* IQInvocation.swift */; }; + B8CA68A990C821F37B2DA06171B69FBA /* FIRDataSnapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = E9657C19D7CB5BD2F8791C17217346A3 /* FIRDataSnapshot.m */; }; + B931E78D521F07A26A5EDB8EB00A9351 /* FSparseSnapshotTree.h in Headers */ = {isa = PBXBuildFile; fileRef = E38243A4014DD1D48B71E12829A124CC /* FSparseSnapshotTree.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B9A14FE7CA4DD5D786BAE918C5E24E0C /* GULAppDelegateSwizzler_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C862A133C850FCC2A5AC443C40AACDC9 /* GULAppDelegateSwizzler_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BA3B9F2E7F4AC6F26481D0E25F0637BB /* FIRInstanceIDStringEncoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D7906648734D1513811314CA83E4AFB /* FIRInstanceIDStringEncoding.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BA61F495C0E45AA2A88D21D51575FF02 /* IQKeyboardReturnKeyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938663BB94CF6FE7FDFC220D345D2B84 /* IQKeyboardReturnKeyHandler.swift */; }; + BA72D7D2E9C7993C7B4609A85BBF0BC6 /* GULUserDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = A01181B65BC03574C55316D990429D2B /* GULUserDefaults.m */; }; + BACC64600D37A97F6927B3FDB3210B1C /* FIRStorageTokenAuthorizer.h in Headers */ = {isa = PBXBuildFile; fileRef = ACC3CD4ABE9C03C98ABBE2E5FD5D0757 /* FIRStorageTokenAuthorizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BAEAF173A29281C77C93733B992CF986 /* FIRDeleteAccountRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = B78BA1E8D9525CCE4A86CD8FA57CF450 /* FIRDeleteAccountRequest.m */; }; + BB52F6A24C293CD486DC9F6F55D1717C /* FIRStorageDeleteTask.m in Sources */ = {isa = PBXBuildFile; fileRef = F8B7137FCDF6F9E1A186B07A4E7AE919 /* FIRStorageDeleteTask.m */; }; + BBD8B4091928E050DD4E1773C5138506 /* env.h in Headers */ = {isa = PBXBuildFile; fileRef = B9DD3698F1FFDC41C2AC62568CDBF486 /* env.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC225BDB8EA011A16EFF834F2538946E /* FView.h in Headers */ = {isa = PBXBuildFile; fileRef = A4D46D869DB97ED3E2574BD8EA115E4A /* FView.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BD1596D0B56AA856F83C3AE038885FA6 /* FIRStorageObservableTask_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = B7CE21914028710EF09F878EEE90E7EF /* FIRStorageObservableTask_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BD3A966181279EC5ED12ECFE8B6FAA16 /* block_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = F3A1A599C73E2FA5F76E568B8CA1560A /* block_builder.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + BDD461DB8BFFAD1552B9715B30053609 /* SkyFloatingLabelTextField-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 78652E65F6DD7C2854B142B5FBB5E088 /* SkyFloatingLabelTextField-dummy.m */; }; + BE93A3F8DCB27637362E967533D46A11 /* write_batch.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8DFDACF5C628E1219181BAC57BC9A993 /* write_batch.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + BEBD7A14AC0F933FC541DC059DF59C2E /* FMerge.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F1B27510016D10C12D47646167B7A73 /* FMerge.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BECFCA5B19573282CB79986C302DF282 /* FIROAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 51435D5603A25C86CF658A2E7D7A6B96 /* FIROAuthCredential.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF1FC88F8FBAFC347DC2B973A536177A /* FTupleStringNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 71EAD519E00EE776B12BED7BCAA38E0F /* FTupleStringNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BF6DC399740F7C8880C2831D4784DDC8 /* FIRAuthGlobalWorkQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 5542005E5F5C24651F2EF10905909A98 /* FIRAuthGlobalWorkQueue.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C01CAD7B9059839E82A80E334EDD8BE8 /* format.h in Headers */ = {isa = PBXBuildFile; fileRef = B3A96892CA2F4A9D0EA724F1F5D1DFB2 /* format.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C02935104AE671E6AC96FF1AB38D9075 /* port_example.h in Headers */ = {isa = PBXBuildFile; fileRef = C0B587B7595976187113BCDC733B8325 /* port_example.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C103FC5145DED74F17EA4A71FA4A888B /* FListenComplete.m in Sources */ = {isa = PBXBuildFile; fileRef = AE96AA2D30EE99934B713A30EBEFD7F8 /* FListenComplete.m */; }; + C12D9DD10964F26C5324B79DAD2E3F87 /* FirebaseStorage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CF1D03F8C80D00A99EBC6CD5FA4146E /* FirebaseStorage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C17963D5FEE5E593B96E0483361B6448 /* FIRInstanceIDTokenStore.m in Sources */ = {isa = PBXBuildFile; fileRef = D1D3F503A583A37050B21FCFF0ED4BE3 /* FIRInstanceIDTokenStore.m */; }; + C22F9B0D1313CE49A865C3DE2A64275D /* FIRStorageTaskSnapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 9324F815BF2D74D30135BC9DC0D82FE6 /* FIRStorageTaskSnapshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C23E41C63401B329521D0CD67236B03F /* FKeyIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CD6B2548148817028844F16E2C8674D /* FKeyIndex.m */; }; + C2D9ACF5BFDBCB35F3BD27A9ADE5698A /* FSyncTree.m in Sources */ = {isa = PBXBuildFile; fileRef = 82D03F89A427F783EE8CE62D993F03AA /* FSyncTree.m */; }; + C31C64BEA8372E92F27CFD7DD92B52BB /* cache.h in Headers */ = {isa = PBXBuildFile; fileRef = B34F1E80B0D7283399E4ED1C97B67DF8 /* cache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C31E8F609B4D62588A3821F25F75AE56 /* FIRNoopAuthTokenProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = D2F2AC8582883B2F5CFCB721F0A20197 /* FIRNoopAuthTokenProvider.m */; }; + C33F367736E7E03DD6447219E6461B21 /* FIRAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = B8E0894AFD816A91C9192B793D50E4EF /* FIRAuthCredential.m */; }; + C346E1419BFFE9C91296E4C05FEB72C9 /* FIRDatabase_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = D0ED27E220BD4FF36C21CD29EFC52B1D /* FIRDatabase_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C354CFFC33EE92455F0D736E5086471E /* FIRInstanceID.h in Headers */ = {isa = PBXBuildFile; fileRef = B36167953A8F20E22C644F8E6FDCFE98 /* FIRInstanceID.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C3574C366FEB82BC87E0CE5F14625DAB /* FTreeSortedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = FB94EC91995A5AD5F36E9F07A99B5EFB /* FTreeSortedDictionary.m */; }; + C4AEE608C842E7649A320A3A1BA9A5EB /* testutil.cc in Sources */ = {isa = PBXBuildFile; fileRef = C0E61E1C77EA9483BD3140BDC57832A8 /* testutil.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + C58F53EDFDD441299B6D85CFA4AA44B7 /* FIRStorageTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 17B195A1AE4F215AC9F086A2D5BD04B4 /* FIRStorageTask.m */; }; + C592B08563D05F06328D96EA0BF86ACC /* FIRSecureTokenRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D5243B62E1F2BDA8C1AA52554770083C /* FIRSecureTokenRequest.m */; }; + C5CD2AB800AAA3DEE180A01CC2053CE5 /* FSnapshotUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = FF66A06FF8EF8A70C95B603728471E3B /* FSnapshotUtilities.m */; }; + C614A747F15F656FA3FF693BD136BDEE /* FIRStorageTaskSnapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = BF62E17B8F8C30A0BEB5132335C862F9 /* FIRStorageTaskSnapshot.m */; }; + C626AF3FCEDB5BAB25EEB7DF3224A5D0 /* FIRDatabaseReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 15E535859B5AE344A343F768B1B53E4A /* FIRDatabaseReference.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C6274CC1DE5BE388B69F28BD217A7E4C /* FIRCreateAuthURIRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 139648B847A4CE607C12641F9E5C64C7 /* FIRCreateAuthURIRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C65DCE6E2A1C2FC1312B1FE4030F77F9 /* log_writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C1097A0630FCD1810EECDB446671CD9 /* log_writer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C6757D13783CC619F40E0B496DAE4592 /* FIRSendVerificationCodeRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = AF4C3B754BF9328967EF15538AECFC62 /* FIRSendVerificationCodeRequest.m */; }; + C676F13463283B86DD71DCD31FAAC609 /* FIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E7F4ABE5F7FA5482CA4C3F9813DC2AF /* FIndex.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C69049FA337560F0DE53CEBF4EE999C2 /* FirebaseDatabase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A5F847BCB6DCB0A897FEB97B315F764F /* FirebaseDatabase-dummy.m */; }; + C6AB87814E63CA7C6A9B70408A7DD99B /* FCacheNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 28936CF230E28DC6E2943416752880FC /* FCacheNode.m */; }; + C6C07236FD60B46C2D6716E5A63178B5 /* FIRVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BB892EC1BF8C5E3D051238A7EBC04AB /* FIRVersion.m */; }; + C6C36641C38FFFA4C44E389B1D89D6D3 /* builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = DBFA2F7A4D78EC764D0F5E1B8EC0BF98 /* builder.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + C76DA36ADD8B8DD8F76F8AA72CE514A7 /* FIRStorageConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F3B1AF90A9A510351D35EC0721AC126 /* FIRStorageConstants.m */; }; + C82D4591B2106F9337C9C3462CF73D6D /* FSRWebSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 1689670FBE1700F48A0F17A05378FD5D /* FSRWebSocket.m */; }; + C846B5E1106D5BEF861BAC5B3E74B2B6 /* FIRAuthDataResult.h in Headers */ = {isa = PBXBuildFile; fileRef = FAB6FB5A2ED57995C6F8BE7795B05673 /* FIRAuthDataResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C88B8C06538CEFC1D04DCD6FBAC5485D /* FRepoInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E96A841370B4867CF6714276BF75B343 /* FRepoInfo.m */; }; + C89BF1F21A7C2C10CD6330989607E9F7 /* GULReachabilityChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B5020C0CFA392D0D22F4754299132A /* GULReachabilityChecker.h */; settings = {ATTRIBUTES = (Private, ); }; }; + C8B59CE263C91209FFB046CE933A0A71 /* GTMSessionFetcher-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 709B62964648BEB33EA49DE11D3D09CF /* GTMSessionFetcher-dummy.m */; }; + C8D14CC38770530597C36AC5643876B7 /* log_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9338CB726B2F9BDAC63BD637662B8D0 /* log_writer.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + C9121C9E95AF8B2AF8E17F7B5E2B80C0 /* FIRStorageReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 1598E552B7307E9ED8D6820F9D301EAE /* FIRStorageReference.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C9222734C2A42784D81DED4460757627 /* FIRVerifyPhoneNumberResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E36752C049E975ADB4FFE9EF8F55C4D1 /* FIRVerifyPhoneNumberResponse.m */; }; + C9339F82612A9FB6AF04E8C79944AFDF /* FViewProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = A6B4B34432D9985C294E8A3A06093EDB /* FViewProcessor.m */; }; + C95694A4F7282655616153FED50EBEE8 /* FIRVerifyClientResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D6471C9D95AFC4A1DA300D20751E613 /* FIRVerifyClientResponse.m */; }; + CA630FEE04708014483CAE5860A04722 /* GTMSessionFetcherLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = 2067AE8E5DA01BC665BE1236068BC6F8 /* GTMSessionFetcherLogging.m */; }; + CA9F1C26D1C6F2AE3367E1098E971378 /* FValidation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CB2A53BE8E164DD96E59DCFE4214B7C /* FValidation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CABC0BA4E68F52FA09E699EDB3520065 /* FIRInstanceIDCheckinPreferences_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = FC16310A0B93B1946DE1A5AB7F1D06B6 /* FIRInstanceIDCheckinPreferences_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CB3F80AA9A2A6D7A833CF71EC8B194A4 /* FRepo_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 688577FD100FDA965AE63BA6E1E686EC /* FRepo_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CB71A3D8C656D522B8EEF2F5C21E0210 /* FIRStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C1BC07A36F10FCD81E75C23689FD13B /* FIRStorage.m */; }; + CBAC2247B99FF685C716837975217576 /* FIRAuthKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ED5ED8C8B13D15D59FA18252FADF279 /* FIRAuthKeychain.m */; }; + CBAF15C69FA079667FBE83958C258C09 /* FLLRBValueNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C003A81F734083A35C989A73A92BAFC /* FLLRBValueNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CC362A633FC411A7A71D18B8285061BD /* FTree.m in Sources */ = {isa = PBXBuildFile; fileRef = 759B421DBC627A81273E16EFF2E9A116 /* FTree.m */; }; + CCB56B4BAAA242D1787806A0CFC1EED6 /* FIRStorageUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E2808A79061EECC10CD68C5AC371C8F /* FIRStorageUtils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CCB8A80099ED9B54F2BDCCD1CA948194 /* FIRDatabaseConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 01366B1DAD5060BE87D8221AAB37E165 /* FIRDatabaseConfig.m */; }; + CCDC6A2D220734A6CF180BCD58369448 /* FChildrenNode.m in Sources */ = {isa = PBXBuildFile; fileRef = EA3850FC1573760E6D5E4BB736BEC7AC /* FChildrenNode.m */; }; + CD41505481A841FC6A05CBA7A782F1A7 /* FChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F0F74E4419B4B0B32702C217959748C /* FChange.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CDA4CF1879E5FCED042AFFFEE880A8EE /* FIRAuthRequestConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 32E25AE318409C462D3998BA78217F33 /* FIRAuthRequestConfiguration.m */; }; + CDE1AD19356C2E36E1E45A468112C162 /* FIRGameCenterAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2FEBB2C85674AF9840A87937A3E70D /* FIRGameCenterAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CDE402C6A9890D2F91B73EFEA4C96BB1 /* iterator_wrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3861EA5293AC5FF3E13A3B8A6AF4F77A /* iterator_wrapper.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CE51609F8057467517B3FE598D1E6206 /* FTuplePathValue.m in Sources */ = {isa = PBXBuildFile; fileRef = F4AC72A807F873968A3D2ABD8BE6B9D6 /* FTuplePathValue.m */; }; + CE5A3378A4700D7069C4ED7261FC6DFC /* FIRStorageUploadTask_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A38D7B57937E25FBA84FC4DB7F612980 /* FIRStorageUploadTask_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CE7721AF136E5B21B89C83793813925E /* FOperationSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A1F36451EB999D18A9CF80164A11267 /* FOperationSource.m */; }; + CF2538EF181D944D9B60CED0F7F18AB3 /* FIRStorageComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DB331FA4E962A0C8DB9FD5C188B5E5C /* FIRStorageComponent.m */; }; + CF4F75333E77887B1590FAD2BA930514 /* FIRInstanceIDURLQueryItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C56BB89C4FFDB1C03F4EEA1A6A008B9 /* FIRInstanceIDURLQueryItem.m */; }; + CF6142F4799AB1DAC5A91C3F5EA23857 /* GULNSData+zlib.h in Headers */ = {isa = PBXBuildFile; fileRef = CECF22B59ED90B9C0402692D48899F2C /* GULNSData+zlib.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF6756848AD430D2BE0DAE5D129B9BDA /* FIRAuthAPNSTokenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF05E685C196684332099A42F81803B /* FIRAuthAPNSTokenManager.m */; }; + CF8C73F2D0CD968E80AC7FFBA1427AB5 /* FIRSecureTokenService.h in Headers */ = {isa = PBXBuildFile; fileRef = D61916A1215314728E2FB2BA3A1D885B /* FIRSecureTokenService.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D05EF688BBA09A448428F032A5CFF76D /* FIRInstanceIDAPNSInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 75F7F147F931715DA097172FF2AAB6DE /* FIRInstanceIDAPNSInfo.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D07CA1346C5CC8BEFEE0CACF36F3AD88 /* FRangedFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 60197ACA6705672CD29DEA0E55006246 /* FRangedFilter.m */; }; + D0F3A2DEC4AF7FAE8198362242FF6938 /* FIRStorageGetDownloadURLTask.m in Sources */ = {isa = PBXBuildFile; fileRef = B33EDC426A1A925001C6FEB8CD9F7494 /* FIRStorageGetDownloadURLTask.m */; }; + D1C62503BF313331D2CE49BD4CC2F067 /* FRepo.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED8028B617190203126AACC91083E5F /* FRepo.m */; }; + D1D1638886C1167B2DAE5A43BB06BB4E /* FAckUserWrite.m in Sources */ = {isa = PBXBuildFile; fileRef = DC0AD40E70FC90CF580A4E86E2922BDC /* FAckUserWrite.m */; }; + D211425BA93BCA439950B6E14E16219A /* FRangeMerge.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CA7E47459FF798B5419652EDFB9DE79 /* FRangeMerge.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D2A0154558EC0297DAF341A828EDB4D2 /* FIRVerifyPhoneNumberRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BADB20F20A84CABD204C407921CBDD6 /* FIRVerifyPhoneNumberRequest.m */; }; + D2E0909F9626E1BFFFBC7B41F1A27B9F /* FNode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA880AA39FEE0148B7A1C086B364313C /* FNode.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D2E41691BDBD3656C1AB86914754668D /* merger.h in Headers */ = {isa = PBXBuildFile; fileRef = 14BD137F8578B8451120D54CC9F06615 /* merger.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D2FDC3437912EDA584BC913A42CA14FC /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = 45BDF1C04F63A58C17F7D8C1CDFC1EEB /* table.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D3312F060F930F962F065AA29AE38842 /* FIRDatabaseReference_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C6271490AB427E4365F31DD78AC858AA /* FIRDatabaseReference_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D33C91269C61F1029C7CC7B9CA9DA6F6 /* FValueEventRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = 13BE2FDAF0781362DB78FEDB6928D5C1 /* FValueEventRegistration.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D3498ABF124D7FC54811063C49F4F779 /* FIRAuthWebUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = BD4A4E78776AE341FB67EB822A14EA36 /* FIRAuthWebUtils.m */; }; + D3A177F9BCAD7042B46E0A36CEDDBF8E /* IQTitleBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 091F989264028F15A2E38F622A5DD05E /* IQTitleBarButtonItem.swift */; }; + D3CBEAE8AB226FF676C09A08F58220D1 /* FIRAnalyticsConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = D3E596E32D094BA7FEA6DDB9D5F0589B /* FIRAnalyticsConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D3ED22A4A50FA9D7D68EEFCF804DBB25 /* FIRInstanceIDUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = F097893F18B1DF9C88D4EC9460602A8F /* FIRInstanceIDUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D3F42DBA2274EECB149681DDDA4B660A /* thread_annotations.h in Headers */ = {isa = PBXBuildFile; fileRef = CE5063CE2A45D68DC28A30703D743723 /* thread_annotations.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D40EEF368C96FDD6A8A6793581A43CE1 /* FIRAuthRequestConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = B635A66492681770F3FDCCBC2A4B1706 /* FIRAuthRequestConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D43941064DB609279DC938CE9D3A098B /* testutil.h in Headers */ = {isa = PBXBuildFile; fileRef = 36AA9236DE33439C09428BEDA1D9DA82 /* testutil.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D43D43D6F67883C21FA0BCBEFB83E428 /* GTMSessionFetcherService.h in Headers */ = {isa = PBXBuildFile; fileRef = 459720E15C2151D3F6944086CA0661A2 /* GTMSessionFetcherService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D456874530924EFDDB17218BF1833348 /* FIRAuthExceptionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 035ABAFF31D87A83CFC6EEBBB68673C2 /* FIRAuthExceptionUtils.m */; }; + D49C427AB8BDCD924CB8A3AF7492AB39 /* FPersistenceManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 814350DAC9500E3EC08915A81A82E22A /* FPersistenceManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D4C21BC392CAA93D8AECFCA118489253 /* FIRDatabaseQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F9AA9FAFC95C32808A9510E0460002C /* FIRDatabaseQuery.m */; }; + D5203F394AC7B37FE6364351AEB78C21 /* two_level_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A3AD76FF368DB68E944118748DE289EA /* two_level_iterator.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D5527A2367D9B8FC7F6728FDBE9EAFB0 /* FPendingPut.m in Sources */ = {isa = PBXBuildFile; fileRef = 620B6DAF938B4A7E3C4CF0C36FCBEAE3 /* FPendingPut.m */; }; + D602FC94B774221735EA90FA8F0B6FF5 /* FTransformedEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = CC39B25AF4669740AA9EA1508745D67A /* FTransformedEnumerator.m */; }; + D62C6C304BEA6879808D85D9C5423307 /* block_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DC3794FF927777A6A2210F8FCE5CCB3 /* block_builder.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D6A2C979BD9F4379E2B0A03A9F9888E7 /* FIRAuthAppCredentialManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B278E179F53087CB531D83821711893 /* FIRAuthAppCredentialManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D74957A784370697F46457B21B84F6C7 /* FIRResetPasswordRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 12F4F446D253DA0F436DA9EDC636B5A1 /* FIRResetPasswordRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D782BC0464EB6FC9F35630CDAE0B17DC /* FAtomicNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 85065A76DA8BC7214D303AD4BAC909FC /* FAtomicNumber.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D7CE8668970216A9F29E8FFE25323BBA /* FIRActionCodeSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 8101A551B82C422CA2B12B8190BEF559 /* FIRActionCodeSettings.m */; }; + D7D49BAE6EAAD5EC2DAF370BCDE783A2 /* IQToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7D40F08D87BA4D1D76E4B18EFC1F167 /* IQToolbar.swift */; }; + D8F4B5841E455F5170B1C2FC30863B05 /* IQKeyboardManagerConstantsInternal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1637914D34CBA36FE1657EF748BD14E5 /* IQKeyboardManagerConstantsInternal.swift */; }; + D8F74968E800B034BFB9D058C94EC869 /* table_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D576688A921B564504F8D0AED08AE55 /* table_builder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9139F6390EB7C54838DDBDE33E15CE5 /* FIRResetPasswordRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F8B54854C75852E71A4B3D37630BB643 /* FIRResetPasswordRequest.m */; }; + D9382A4864887E58C209707702F26E7D /* FCompleteChildSource.h in Headers */ = {isa = PBXBuildFile; fileRef = EC9A85A92E1BC6F0DD155CC44A8C9EE3 /* FCompleteChildSource.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D97E86395AAF67E55BE729C1A11D1C6F /* FNodeFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 42C3BB1A938F2D0BF196B14A31C04CC5 /* FNodeFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D98070B47E60007BD24078AF03FE69FF /* FEventRaiser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CECD03FFC51C751D990DCAB4240646B /* FEventRaiser.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D9E13D5B52EAC37087B6E2EE5F02EEB0 /* FIRGitHubAuthProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C0B24901819C76E6D49E0861593CB82 /* FIRGitHubAuthProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA0180208A20E55A038F4D6AB1940B6B /* env_posix_test_helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 026A90298DB45F4D43ED6F105F1E1330 /* env_posix_test_helper.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DA318585AC3783A187752E1A93279509 /* FIRComponentContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = C05C3AD460ADC6A1B3B85CAD19307C52 /* FIRComponentContainer.h */; settings = {ATTRIBUTES = (Private, ); }; }; + DAF9692FB29262CF1B48FC8586C678FD /* FIRInstanceIDUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 042B637C5CEB40B305A32416F8CDFD32 /* FIRInstanceIDUtilities.m */; }; + DB49E6DE140B896368FE634B25FF4CD7 /* FIRSetAccountInfoResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A42342161B2DA0340887869176407F47 /* FIRSetAccountInfoResponse.m */; }; + DBB7D848AFDA6A6AB98FE3A71FBEF1B4 /* FWriteTreeRef.h in Headers */ = {isa = PBXBuildFile; fileRef = D74C79B83B07E3309F37ED7A75EC2CED /* FWriteTreeRef.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DC16D0893AA8F8F28825B2DFB318181B /* FIRSendVerificationCodeResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1851DC3F8BBD91103DB7D81BCA96F8AF /* FIRSendVerificationCodeResponse.m */; }; + DCEB18192F84ACB5470CC95DF0EF753C /* FIRAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = C5DDBE813143551E7A15F500F9A6C892 /* FIRAuthProvider.m */; }; + DD26B888019932759DFE28683FBE2FCD /* FTupleObjects.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E7B19F959409CD03E969E121E2ACFA /* FTupleObjects.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DD420F096096C518F8E6B44583BF6521 /* IQKeyboardManagerConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 786B6F6C4CEB7D626291A0FF9C1374F3 /* IQKeyboardManagerConstants.swift */; }; + DD6874E56931ECC4937CD488A3F8E7A2 /* FIRComponentType.m in Sources */ = {isa = PBXBuildFile; fileRef = 284C444EAE7C611F50844108B8E11F33 /* FIRComponentType.m */; }; + DD7393DBA40DE3149357E83C52610787 /* FIROAuthCredential_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1895953C878F8CD732446D7B972B2A5E /* FIROAuthCredential_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DDAC963022C8D96EBAAD2284780E0276 /* IQUIScrollView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0F9288FDF699C66E00F7621A9F1484F /* IQUIScrollView+Additions.swift */; }; + DDB1A87B2825870CF6C1345E1DCDE779 /* log_format.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DB1AA942B73E0FDCEDEB651EB283C36 /* log_format.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DDE83EAFFE7C7BDC26EB36F088E73FB9 /* FIRAuthNotificationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E1DF5F6F099E1E9BA95677B5504DE02 /* FIRAuthNotificationManager.m */; }; + DE2CC572B3D9706CB6CCD83F5252B063 /* FIRApp.m in Sources */ = {isa = PBXBuildFile; fileRef = E1BD678C39547DC158AB5186B6192CD5 /* FIRApp.m */; }; + DE966FD4F2754F087026ECDD862CA3A2 /* FIRInstanceIDAuthService.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FB25F333449D3F5C9EFE8B1F27D97C1 /* FIRInstanceIDAuthService.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DE9EE2160E5DA44F8938CE5678E35487 /* FIRAuthKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 59614F1D6332548E36EF86AFF220A443 /* FIRAuthKeychain.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DEBA523A44AA7A3F88AC0A98D21A9967 /* FIRAuthAPNSTokenType.h in Headers */ = {isa = PBXBuildFile; fileRef = D7B0C2EFD4A07791D23A3EDA1FC02C7C /* FIRAuthAPNSTokenType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DF6568CC893141A1E7C1D5A08AD9683D /* GULNetworkURLSession.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F753EA2F6EC642D9DB98A4057B79BE /* GULNetworkURLSession.m */; }; + DF8DFC54AF4EDA6092460F2F7EE609AF /* FIRAuthExceptionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = B40872CD6E41C1164DA1DF63A4E25F83 /* FIRAuthExceptionUtils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DFE4CCFBF900B4391A5D6850D2D45734 /* FTreeSortedDictionaryEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FDEF153A443682E8AE6AEB5479A0D80 /* FTreeSortedDictionaryEnumerator.m */; }; + E0635AAF84B280D6480B04B00D689CD5 /* FIRAdditionalUserInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E265C90C1A9A5EEC46F1CD08C9ED045F /* FIRAdditionalUserInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E0A75CCC466B8821EABAEA1AFF2BD2C9 /* nanopb-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BC6ECCF26DCA0190D7B7A746D894946D /* nanopb-dummy.m */; }; + E0DC3BFC3E63DACCB4082227C3FB4EA8 /* comparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 99B21FBC2D191DE85DF017800C02B772 /* comparator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E120C7CD79BF1DA9BD6B279B881E9C81 /* atomic_pointer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C0D162409701E7B951394EDBB923CBE /* atomic_pointer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E1B87BA86986084E5FF90F0582DEE1A1 /* crc32c.h in Headers */ = {isa = PBXBuildFile; fileRef = CBA4F62AE3688C1C487DD595AA71F78E /* crc32c.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E217B6462B616B581FB88725277C7EE2 /* FIRDependency.m in Sources */ = {isa = PBXBuildFile; fileRef = CA7E9643BA45A13517DF7027FB2328C4 /* FIRDependency.m */; }; + E2216E93D896FA9A901F5AB60C34017B /* FIRServerValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A3D4D1F551F933D84C7D5198A1C0B81 /* FIRServerValue.m */; }; + E24D27511F4FFA3218DDF0E7C5F35119 /* FTupleSetIdPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD22FF448FA9CC3B18BB8C580C6221B /* FTupleSetIdPath.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E2A2EFD357184EE9C052E11B327C7821 /* FOverwrite.m in Sources */ = {isa = PBXBuildFile; fileRef = C21F345BCE597274D2CF7408D8A6D124 /* FOverwrite.m */; }; + E3334CC660C4BD5E41C1061B9DC56FF6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B40963D8B06B4003C2DD3EE05717E33 /* UIKit.framework */; }; + E3558004621A062EDF8C6C80757BF02B /* GULReachabilityChecker+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 50351158AC71C552458607F6744E5DA8 /* GULReachabilityChecker+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E3D0F9E7B755A3C95E6519FE4AF4A877 /* FIRGetAccountInfoRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = EE50BF1FD1F7E8F8EFAAE3CA0882F78A /* FIRGetAccountInfoRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E3D9AC719CC1FFDD550B808BB52986E5 /* FTrackedQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C0D3DC222D57B13420340834F004FC8 /* FTrackedQuery.m */; }; + E40F063F928C02A2B1C64C3ADC8E5D35 /* FEventRaiser.m in Sources */ = {isa = PBXBuildFile; fileRef = 86B381AE8905550E84BA6CFBB4377802 /* FEventRaiser.m */; }; + E4D3A0B0642F91659D631B00138DA887 /* FTupleRemovedQueriesEvents.m in Sources */ = {isa = PBXBuildFile; fileRef = B747D7198A287EB4E28BE7A21308426B /* FTupleRemovedQueriesEvents.m */; }; + E530C9CCCAC8D555C868397D7017E2C8 /* FIRStorageMetadata_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 374EBA59FFFEF55E38E0C8FA2B03D1E1 /* FIRStorageMetadata_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E5EA46C3D41FB99C05587DEA9801A9C0 /* FTupleNodePath.h in Headers */ = {isa = PBXBuildFile; fileRef = 407203A460D055244FCF73DBA8F2F993 /* FTupleNodePath.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E690683078AF479A6EC937EF41C1AF86 /* FIRStorageObservableTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CF1522D55FA3316BDAF12C7CDBDBD28 /* FIRStorageObservableTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E6C990CCDC0576010258A5FF16BE6F9E /* FIRSecureTokenRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1530C2CAA16BA8F3E91529D38FFE76 /* FIRSecureTokenRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E7725CE16619C6CBFA00DAE7FE735956 /* FIRStorageMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 32751CB83490A73DF3D1EBDCC6CA4A63 /* FIRStorageMetadata.m */; }; + E796D76C4152B17BD6020F68ECC0245D /* FIRAuthSerialTaskQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 675F26DE0744932198A80E80C9B59671 /* FIRAuthSerialTaskQueue.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E7DA560663D51BCD6B3071F3B25F1AB8 /* FTupleBoolBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A353EF5C52837EEC27CF772A65D7ABB /* FTupleBoolBlock.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E813911AB80D31C3ABA7DEE6F0A0E2AA /* FIRSignInWithGameCenterRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = CA3155B3455F281271F5A05C815B08F6 /* FIRSignInWithGameCenterRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E85FDCA84006446126495A9DBDA2D130 /* FIRAuthAPNSTokenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C38EA188697648DDCAD3F7D0B1A9EFA /* FIRAuthAPNSTokenManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E88A5ABA6636E04CB1184A101047AD64 /* FIRAnalyticsConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 2105321D0A5A7BDF062D0DE87007D0B1 /* FIRAnalyticsConfiguration.m */; }; + E8A05968469DD615C3CD3D5B9E1D4206 /* FTreeSortedDictionaryEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C7A0A9EB0F86521354F8EE71FC54E63 /* FTreeSortedDictionaryEnumerator.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E8C6D1BC6DEE77B7875ABBD1B35E7B14 /* FAuthTokenProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = EA284F1ED21CC5A476D0C6222974FB25 /* FAuthTokenProvider.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E90BB89153F9501698C7D1B747840592 /* FIRAuthDefaultUIDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E685CFC33CF143CF4C7B2AE90D9A59BE /* FIRAuthDefaultUIDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E9164320CFED5F22E95357280EF0240E /* FCancelEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FA2E3B3C05C536EBBF05E977EB66FD9 /* FCancelEvent.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E91B26D4305483DE585A6B468A215CC4 /* FIRStorageReference_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BE3CEA5FDFA416DCB5559D16C20980B /* FIRStorageReference_Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E923672EEF8226AB7F71954E9A32435F /* pb_common.h in Headers */ = {isa = PBXBuildFile; fileRef = 1526316ABDDC9265DBF0CE25335086CB /* pb_common.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E954D0D7E0AFFE9084B09BEF5B493E43 /* FirebaseAuth-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E2C29AE6438D99DAFA9772BBDEBD482B /* FirebaseAuth-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E960D51613C5EAB2538D9780C31F98C0 /* FPruneForest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7582367A9CC89EA756282B4B00A070EC /* FPruneForest.m */; }; + EA013EE8458396929ADEDE8194045D7B /* FEventEmitter.m in Sources */ = {isa = PBXBuildFile; fileRef = 59918C2DE56B8C3FCAD64F8C8722EA9E /* FEventEmitter.m */; }; + EA90B7031E5475D8461950AEC7A8ED08 /* FIRVerifyPhoneNumberResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D1B5E4F5AB5E6118C90253311513E7DA /* FIRVerifyPhoneNumberResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EACA1EAD6B175D242F0C71FAA0E6DE5C /* FIRSendVerificationCodeRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 811057F156C496D1C4F9208656966BDD /* FIRSendVerificationCodeRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EACF63C70CCBC222B8BFA06C6F6FCAAD /* FIRAuthWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AA0A0E1B5E75DDB702AE7026F54977F1 /* FIRAuthWebViewController.m */; }; + EB4933204B61E2E5C4D27ACF215F0EC3 /* FIRInstanceIDKeyPairUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 39BBD0983A1DBD4FB00B5F9144069297 /* FIRInstanceIDKeyPairUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EB9BF240CE85CAD3FF664A82044A379C /* status.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7835736A09CD95B047DAC46CBA26BA73 /* status.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + EBA364AE7F50916872D0286EA2CFC95C /* repair.cc in Sources */ = {isa = PBXBuildFile; fileRef = 25F5C462B8D2CE1BD3D8AED6C6575B9D /* repair.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + EBDAC496DF32BF4CC92B166B94164F72 /* FIRErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = 852D77632A1F500EA0725975C61253B3 /* FIRErrors.h */; settings = {ATTRIBUTES = (Private, ); }; }; + EC0F0258F0EED0FAB44A32F4CD901362 /* posix_logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CABFEE59814C9EF3E20C6EFAF9F9630 /* posix_logger.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EC14C85E13750DF8F5864559EFE02395 /* FIRGoogleAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 8038AB110680893CC62064F2BB7B7C0F /* FIRGoogleAuthCredential.h */; settings = {ATTRIBUTES = (Project, ); }; }; + ECA4C43301AD77DD2EDAF5F2FBB4F2D3 /* filename.h in Headers */ = {isa = PBXBuildFile; fileRef = F933B92C6B3F0A0EA08CD0435D54E8A0 /* filename.h */; settings = {ATTRIBUTES = (Project, ); }; }; + ECBE31A89EE98F82274D202A402DE6D6 /* FIRUserMetadata_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 84C80CAAD03D6AE19180297CA79F67EC /* FIRUserMetadata_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + ECC569BD0454A4442D9BE94E43C5CBF5 /* FPathIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 991C861E49092079229105D00DA369A5 /* FPathIndex.h */; settings = {ATTRIBUTES = (Project, ); }; }; + ED9F12EEE2FAF629489AF6C7630FDA7B /* FIRTwitterAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = E02EE10C90FB7B6B85472ACB77E75486 /* FIRTwitterAuthProvider.m */; }; + EDFE8FFB3D8EE670C187D86EAF5EB705 /* FRepo.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CE870E46463E9796591E55E166CAEC6 /* FRepo.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EDFF24247DC7BCC6FD0724584D1D8AAD /* FIRAuthUserDefaultsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = E14A183A09723184C126B9BF4C495CD6 /* FIRAuthUserDefaultsStorage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EE0CD1555E240A9000289A7EAF2CB158 /* FirebaseCore-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DB244C96606BCFED8AF2BA281C1DE1C /* FirebaseCore-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EE619F17670A80954C5ED4F5F514B347 /* SkyFloatingLabelTextFieldWithIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09670FAD5D0A0A3F4EBAA5D61BD3B957 /* SkyFloatingLabelTextFieldWithIcon.swift */; }; + EF450973215FEED4B0D98F43E4A91F21 /* FSnapshotHolder.m in Sources */ = {isa = PBXBuildFile; fileRef = ECCD657CFD5E06E6685F1A8696646D3D /* FSnapshotHolder.m */; }; + EF99194AD310DFA4B8FA0B7C5F90C00A /* FIRInstanceIDKeyPair.m in Sources */ = {isa = PBXBuildFile; fileRef = 72C01B922DCF2ED986DF1FD8B7B572B5 /* FIRInstanceIDKeyPair.m */; }; + EF9A6DCEB87947F754B7797E758234CA /* FIRStorageGetMetadataTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 59B6037A0131315B9D74BA2F5F0E9E53 /* FIRStorageGetMetadataTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F01C7DFEC41CDC5C21DEB3BF34304E1D /* FQueryParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 49353B01BF429F933FCD1B1A7A1A39B7 /* FQueryParams.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F04CEC891F81DA91CB8B803A64DF7433 /* SkyFloatingLabelTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = A48096D2D99533B410B082D8B5C2A1A4 /* SkyFloatingLabelTextField.swift */; }; + F0563BACFDC6ED0279BD66322A7241DD /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3D053796A6B75F79480D4BDCD0A8B7FD /* logging.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + F0A9F7366B446EDAE4716768BCCADE6C /* IQPreviousNextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D0FB3FA0861D661947092EDA0B3F68C /* IQPreviousNextView.swift */; }; + F0B5A11A6AE4BA96F5A7DCEC82245D55 /* GULNetworkConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 890B965AC980A224161EDCBD19692AA1 /* GULNetworkConstants.h */; settings = {ATTRIBUTES = (Private, ); }; }; + F0D01479BA0998209C3EA376CBFFC31F /* FChildEventRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = C71795BE270D18305CEE4B3FB629A6C8 /* FChildEventRegistration.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F13363637D401EBD837AB1DC0528AA3F /* GULAppDelegateSwizzler.m in Sources */ = {isa = PBXBuildFile; fileRef = CA4778006FFC3B8EDA8056A73E0DA0AD /* GULAppDelegateSwizzler.m */; }; + F1666B3DF6ED2EA6B84540FC5FA6BC52 /* FIndexedNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 983071EAD7D8C1A000B04C6F5CF00B47 /* FIndexedNode.m */; }; + F189CB3714162C4B132DCD9724344506 /* FIRInstanceIDLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 9981BD1803C2C9DD386C23B07E43BC3A /* FIRInstanceIDLogger.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F1EBF9E69DC5B0C67F411A526B67F2F8 /* FIRUserInfoImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F5D30918C77A0FCFEC5B47313EBA1E0 /* FIRUserInfoImpl.m */; }; + F1F2929A51C8C62A2CFA8A84A88F4668 /* FIRBundleUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F468263E030E4810736B21A2D31B3A /* FIRBundleUtil.h */; settings = {ATTRIBUTES = (Private, ); }; }; + F1F93538B7FE66079DBF3D989786AB2A /* FIROAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = FA8F39F62F677C5CE89E4527FF00F8ED /* FIROAuthProvider.m */; }; + F1F9E43D4A9B68AB451907567213DEF7 /* FPersistentConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 601420045E141718E00C7B19934978C1 /* FPersistentConnection.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F2A83F7C1CA16D05333E31796DA2B15A /* filename.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1B22A533D3BD9052959A67C8A4DAFC24 /* filename.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + F41C00757765B05CA1CAA63EB1EA5352 /* FIRDeleteAccountResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 56B801E61F6A8C23DB178EF20C143EE9 /* FIRDeleteAccountResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F42DCCB81FD0CA0C7C652AA28A078A09 /* FIRCreateAuthURIResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D3D5ABB7D9ED03670E439E52F3E11D1 /* FIRCreateAuthURIResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F5016878A24F4A359D2BC3780DF923F1 /* FImmutableSortedSet.h in Headers */ = {isa = PBXBuildFile; fileRef = A17C4F6BCDB63D675280646E4291A96E /* FImmutableSortedSet.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F507EC29AB6F22A537C1F1145905C6AF /* db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9C149003C9EEA0E845A4B53703D6882D /* db_impl.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + F58EBA44B76E6CF7BC99FC85F104470B /* NSData+FIRBase64.h in Headers */ = {isa = PBXBuildFile; fileRef = 1146FA93009C150FCAF944E8EC5D5908 /* NSData+FIRBase64.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F5C906899F0AECAC2FB1B0BA0C707C0E /* FPersistenceManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 60B44236CEFBA91FD17FDFCA1A475EBC /* FPersistenceManager.m */; }; + F605DA865BC6F7BA70B30F4BAC86D935 /* FIRAnalyticsConfiguration+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F51DAA3906BC6D342E43B60166A8BFD8 /* FIRAnalyticsConfiguration+Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + F6077C1F7082CFA6DABF6EC9D841A53D /* FIRGetProjectConfigRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = B670870C691E9619E59CC6C1AA889A03 /* FIRGetProjectConfigRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F6684CAEF2AA26B6988DB25DF95CD8CF /* FIRInstanceIDBackupExcludedPlist.m in Sources */ = {isa = PBXBuildFile; fileRef = F63D4FB0A83317B4538A3558BBAEBBAE /* FIRInstanceIDBackupExcludedPlist.m */; }; + F6ABFC899772E2FE0010EDFEE51484E6 /* mutexlock.h in Headers */ = {isa = PBXBuildFile; fileRef = D51A81B9B97B69A5A5DAD80F16DE4C0B /* mutexlock.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F8170678543AD14B23B93BB94E8F487A /* FIREmailAuthProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 72CAB19DCC045D7BC4413C84C1911B3E /* FIREmailAuthProvider.m */; }; + F852C0100AB6D9D2CE3E28FCA487C67E /* IQUIViewController+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6A09D05724B9E4317F0A1465EDAB18E /* IQUIViewController+Additions.swift */; }; + F8978EDF4EE4B0AA020F8ADF2092CA28 /* FIRGoogleAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E907D050201807523CEAB6D847BEC93 /* FIRGoogleAuthCredential.m */; }; + F8BF90B54586F07C0A97F1977249DD33 /* pb_encode.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F9AD95E355D705F817A6E9FD4CBA522 /* pb_encode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F9D194F42DEC0D4B696A50BA3B57C4C7 /* FTupleUserCallback.m in Sources */ = {isa = PBXBuildFile; fileRef = 98B9CE0ECF2982C16C6CB1ABF951C2E0 /* FTupleUserCallback.m */; }; + FA026EDBFB5EB1BF986A073D9243B326 /* FIRInstanceIDKeyPairUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 27DD21B21DA8F00AD11441EC732B17EB /* FIRInstanceIDKeyPairUtilities.m */; }; + FA632A093D96325BDE1A52C01A0D189D /* FIRMutableData.m in Sources */ = {isa = PBXBuildFile; fileRef = 74ACCD0FCE01696EC706F9FA92E181CE /* FIRMutableData.m */; }; + FB473026DA9143D8BEC23BF47D80A73F /* db_iter.cc in Sources */ = {isa = PBXBuildFile; fileRef = B169644770EDA259FF9B881F4236DFEE /* db_iter.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + FBB36897950AC14A3AA718EE606E7F92 /* comparator.cc in Sources */ = {isa = PBXBuildFile; fileRef = ADA7B46D555005B7006926636B5B39BF /* comparator.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + FCBF94B497E834FBAB493B9C87959CF9 /* FPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B3781F934D2117AB876B567B3FF71B1 /* FPath.m */; }; + FD42FF48B10C90599B10C7F573ABE72F /* FIRInstanceIDBackupExcludedPlist.h in Headers */ = {isa = PBXBuildFile; fileRef = AD36EBDEB620D0B834B1FF1741D2A211 /* FIRInstanceIDBackupExcludedPlist.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FD542265EDA761B77E1B63CB87757694 /* memtable.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5FF4CC98531DD61EB0322DBB1CD6084B /* memtable.cc */; settings = {COMPILER_FLAGS = "-DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc"; }; }; + FDB8BA772EDD8DB79638A7BAEFC768BA /* FViewCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AA61E8855C241DC191994774BEBF5C8 /* FViewCache.m */; }; + FE9853E6622BC82DA8237931F2E81E24 /* FWriteRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = B717631E802378EE562C4D48DD02A0D7 /* FWriteRecord.m */; }; + FEAC69ED2BEA6DB40C9C5B3C7563731E /* FIRUserInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DA8D3A2E0B8F1BB1317F93EC4E25590 /* FIRUserInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FEDAFFF2E66873182339A9CB7C838A6B /* GULNetworkLoggerProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ABC5483348775FE1027B71959C611F0 /* GULNetworkLoggerProtocol.h */; settings = {ATTRIBUTES = (Private, ); }; }; + FEFDFB92567C15B777DDAC5078B07D2B /* FTupleUserCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C23BF05B04A7ABD29BCB23D028D26DFA /* FTupleUserCallback.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FF20A090A035A0B5D9C35C7E084AF88F /* FIRLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E6850346BFA2E592A2CA757719C1D54 /* FIRLibrary.h */; settings = {ATTRIBUTES = (Private, ); }; }; + FFC59E2E0BF805AC0733627E928F490B /* FIRSignUpNewUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F7A17A2C2E384EF92E0D83BFEF7E76B /* FIRSignUpNewUserRequest.m */; }; + FFD92AA3BC3C1B7910AD825DA7067813 /* FIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 86A83AA0BD1A7056D6619D6995A4D262 /* FIndex.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 0DD967FA3A049F7B3B05906530E81518 /* PBXContainerItemProxy */ = { + 000FE57DC8D81B30BD2328DC2A1D9531 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 94202C445E4D686A22993FEE010E0FD8; - remoteInfo = nanopb; - }; - 1550644656C31C7338CA056D1E67BBBE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = BECD1DE73D1DA48926EB37BCEE853ACC; - remoteInfo = GTMSessionFetcher; + remoteGlobalIDString = 5EB99C75A86DAE4C7A89C023BED98F0E; + remoteInfo = FirebaseInstanceID; }; 16E075DDECAEC016BC526C86473456E7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -847,6 +859,20 @@ remoteGlobalIDString = 30A9D3CC694691B7294567E895BE269F; remoteInfo = FirebaseCore; }; + 21CCBF4A492A92727D1A216D580D610B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BECD1DE73D1DA48926EB37BCEE853ACC; + remoteInfo = GTMSessionFetcher; + }; + 2353FBEFBD57E7E1E9A5DD23BB8E9B45 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 73232C6842ACAD87468B6393BA47375D; + remoteInfo = FirebaseAuthInterop; + }; 29A971A669BFA52F8E0A9C7D74229BC0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; @@ -861,6 +887,13 @@ remoteGlobalIDString = CDBA1591F55E427FD2DE7413CDBB00D8; remoteInfo = FirebaseStorage; }; + 2D28BF1315862602DA8DD47CF23230A2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EADD9F329CC19420FA32FF7ED370E060; + remoteInfo = "leveldb-library"; + }; 31CE48952DC34207F6CA014D72C4C804 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; @@ -868,6 +901,13 @@ remoteGlobalIDString = 30A9D3CC694691B7294567E895BE269F; remoteInfo = FirebaseCore; }; + 351CF3A350B907615E1CEF6387B2C781 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2C66BBA2E66E4A6713FD27179FA103ED; + remoteInfo = FirebaseAuth; + }; 369E8CF0B02058756C72577C00E20596 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; @@ -875,14 +915,14 @@ remoteGlobalIDString = 753F1FE412B4E54E2CCB0A1F23E593DD; remoteInfo = GoogleUtilities; }; - 420A762F7EB24AC2FDD3DB798539C4A2 /* PBXContainerItemProxy */ = { + 3858753E44787E52377FEE9034E8CAEE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 30A9D3CC694691B7294567E895BE269F; - remoteInfo = FirebaseCore; + remoteGlobalIDString = CDBA1591F55E427FD2DE7413CDBB00D8; + remoteInfo = FirebaseStorage; }; - 43284EDFF3FAD908445B233470B6F5D5 /* PBXContainerItemProxy */ = { + 420A762F7EB24AC2FDD3DB798539C4A2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; @@ -903,19 +943,12 @@ remoteGlobalIDString = 73232C6842ACAD87468B6393BA47375D; remoteInfo = FirebaseAuthInterop; }; - 500ADBCAB85F28EB8301372F90E19FB3 /* PBXContainerItemProxy */ = { + 4A95E9F3ED904FC81777B0F3A6E56ED1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 5EB99C75A86DAE4C7A89C023BED98F0E; - remoteInfo = FirebaseInstanceID; - }; - 5E90BF134BE17500E659255112CD1F5C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = CDBA1591F55E427FD2DE7413CDBB00D8; - remoteInfo = FirebaseStorage; + remoteGlobalIDString = 88854632735B97DDAB1BDA14A9589AD9; + remoteInfo = FirebaseDatabase; }; 5F080DB888D555C0C6DF3817B58B2754 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -938,6 +971,13 @@ remoteGlobalIDString = 688C54B6BB608137AE3787B5304E54EE; remoteInfo = FirebaseAnalytics; }; + 729E8430B59833F8CF43E9975FEA7D4B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 94202C445E4D686A22993FEE010E0FD8; + remoteInfo = nanopb; + }; 76B836A1F354AAAE21CF0981107D5640 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; @@ -959,19 +999,19 @@ remoteGlobalIDString = 30A9D3CC694691B7294567E895BE269F; remoteInfo = FirebaseCore; }; - 9215A3EA46D1B9A634FB2A1F97531E20 /* PBXContainerItemProxy */ = { + 91057D468677D911765E0AB1DDA6340F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 73232C6842ACAD87468B6393BA47375D; - remoteInfo = FirebaseAuthInterop; + remoteGlobalIDString = 688C54B6BB608137AE3787B5304E54EE; + remoteInfo = FirebaseAnalytics; }; - 9CCB59517C9F02543CD17E7D5AD9C66F /* PBXContainerItemProxy */ = { + 9215A3EA46D1B9A634FB2A1F97531E20 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 88854632735B97DDAB1BDA14A9589AD9; - remoteInfo = FirebaseDatabase; + remoteGlobalIDString = 73232C6842ACAD87468B6393BA47375D; + remoteInfo = FirebaseAuthInterop; }; A3614E40B45BDEE5BDEDDDD70EB503F1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -987,20 +1027,6 @@ remoteGlobalIDString = 94202C445E4D686A22993FEE010E0FD8; remoteInfo = nanopb; }; - A90FDFF7CA3EA8DDAA12C70945A741B8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A2703F2AF403B6B7FFAFCA1D0A931F6F; - remoteInfo = SkyFloatingLabelTextField; - }; - A98138C43FBFB707206C7FCFADE53381 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 688C54B6BB608137AE3787B5304E54EE; - remoteInfo = FirebaseAnalytics; - }; B22886D098C5B23B4EE1D12709D4E9CF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; @@ -1015,40 +1041,33 @@ remoteGlobalIDString = 94202C445E4D686A22993FEE010E0FD8; remoteInfo = nanopb; }; - BE78C3BE96D4DDDA73F9E48430FD905C /* PBXContainerItemProxy */ = { + B7DC4503920B0C3065637C14E31DD169 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = EADD9F329CC19420FA32FF7ED370E060; - remoteInfo = "leveldb-library"; - }; - BEA92C4C19FE9B82516E9507BC9F4CBF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2C66BBA2E66E4A6713FD27179FA103ED; - remoteInfo = FirebaseAuth; + remoteGlobalIDString = 30A9D3CC694691B7294567E895BE269F; + remoteInfo = FirebaseCore; }; - C8A52DD665A193BF8092883076A7F4DF /* PBXContainerItemProxy */ = { + BE6F24F480AE90E564C71FFB60CF31CA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 88854632735B97DDAB1BDA14A9589AD9; - remoteInfo = FirebaseDatabase; + remoteGlobalIDString = C3725C4190F8BB9B0A36BCC488FEA7B4; + remoteInfo = GoogleAppMeasurement; }; - C9BCC4F089502914A699E3DB194842E3 /* PBXContainerItemProxy */ = { + C431D9E0596F1B0D9F71F623E3AEF84B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 753F1FE412B4E54E2CCB0A1F23E593DD; remoteInfo = GoogleUtilities; }; - D162198C6E8FB585F9224EC8B8C46271 /* PBXContainerItemProxy */ = { + C8A52DD665A193BF8092883076A7F4DF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = F2F10A8592399CCF0019051EDD0689D9; - remoteInfo = Firebase; + remoteGlobalIDString = 88854632735B97DDAB1BDA14A9589AD9; + remoteInfo = FirebaseDatabase; }; D24AFDB998D5F69E10C8D0D2C05F4FDB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -1064,26 +1083,26 @@ remoteGlobalIDString = 753F1FE412B4E54E2CCB0A1F23E593DD; remoteInfo = GoogleUtilities; }; - D7D43C9F3F2404973B191B9AD25BE7A9 /* PBXContainerItemProxy */ = { + DF219DC6541195EE6B4543E0AABBE5A3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 73232C6842ACAD87468B6393BA47375D; - remoteInfo = FirebaseAuthInterop; + remoteGlobalIDString = 753F1FE412B4E54E2CCB0A1F23E593DD; + remoteInfo = GoogleUtilities; }; - DF219DC6541195EE6B4543E0AABBE5A3 /* PBXContainerItemProxy */ = { + E50DE41D58182196EF7F8CFFC832E431 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 753F1FE412B4E54E2CCB0A1F23E593DD; - remoteInfo = GoogleUtilities; + remoteGlobalIDString = 817B051F9391A7F6248FD731537BD85A; + remoteInfo = SkyFloatingLabelTextField; }; - F32F1539452CC6DC362E661757F95E62 /* PBXContainerItemProxy */ = { + EBE720C2CE92BF66C8644C4269E17B35 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = C3725C4190F8BB9B0A36BCC488FEA7B4; - remoteInfo = GoogleAppMeasurement; + remoteGlobalIDString = F2F10A8592399CCF0019051EDD0689D9; + remoteInfo = Firebase; }; F8B01D3D71505ACEE7D63501F234DD8C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -1092,816 +1111,850 @@ remoteGlobalIDString = 73232C6842ACAD87468B6393BA47375D; remoteInfo = FirebaseAuthInterop; }; + FAE086BADADFDFDF801EDC2A309749B9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EFF87187B46551C36797F2B899C54212; + remoteInfo = IQKeyboardManagerSwift; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0003443AD8DD64B04D3272F3D0862D79 /* FLimitedFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLimitedFilter.m; path = Firebase/Database/Core/View/Filter/FLimitedFilter.m; sourceTree = ""; }; - 00246EDF57666086835500E4565A8DAD /* FIRLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRLogger.h; path = Firebase/Core/Private/FIRLogger.h; sourceTree = ""; }; - 002F79536BD998496972FA8B23791F1D /* FNextPushId.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FNextPushId.m; path = Firebase/Database/Utilities/FNextPushId.m; sourceTree = ""; }; - 0066B5196CA0DB2A3C6DDBCB5A4D007F /* FPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPath.m; path = Firebase/Database/Core/Utilities/FPath.m; sourceTree = ""; }; - 00C8DD890AA752B92A71AAECF6A83967 /* FIRInstanceIDStore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDStore.m; path = Firebase/InstanceID/FIRInstanceIDStore.m; sourceTree = ""; }; - 012DCBB1860411CFE7E93C8BD2A2A5D9 /* builder.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = builder.cc; path = db/builder.cc; sourceTree = ""; }; - 01CEE211F40084D19BF400D025DDC30D /* FIRAnalyticsConfiguration+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FIRAnalyticsConfiguration+Internal.h"; path = "Firebase/Core/Private/FIRAnalyticsConfiguration+Internal.h"; sourceTree = ""; }; - 01D7B14186D690E0E96CE2533174C3A0 /* FIRStorageTaskSnapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageTaskSnapshot.h; path = Firebase/Storage/Public/FIRStorageTaskSnapshot.h; sourceTree = ""; }; - 02038AD49FDF208D2170F6C3A38915E9 /* FIRInstanceIDAPNSInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDAPNSInfo.m; path = Firebase/InstanceID/FIRInstanceIDAPNSInfo.m; sourceTree = ""; }; - 02191BFA74D66D8E84924B45B60080D7 /* FIRSetAccountInfoResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSetAccountInfoResponse.m; path = Firebase/Auth/Source/RPCs/FIRSetAccountInfoResponse.m; sourceTree = ""; }; - 0283496AFD6FABCDC6FBCB6F333D6491 /* FIRInstanceIDCheckinStore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDCheckinStore.h; path = Firebase/InstanceID/FIRInstanceIDCheckinStore.h; sourceTree = ""; }; - 03E94D7319CBD1F09F2DAD9D00AD754C /* APLevelDB.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = APLevelDB.h; path = "Firebase/Database/third_party/Wrap-leveldb/APLevelDB.h"; sourceTree = ""; }; - 03F5B3C06494674FD9411692EBC65240 /* FIRAuthAPNSToken.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthAPNSToken.m; path = Firebase/Auth/Source/FIRAuthAPNSToken.m; sourceTree = ""; }; - 044076C868DFB45B7043B6939A074432 /* FIRInstanceIDBackupExcludedPlist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDBackupExcludedPlist.h; path = Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.h; sourceTree = ""; }; - 0473554C05A70EE45798961B1CC3111A /* FirebaseStorage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FirebaseStorage.modulemap; sourceTree = ""; }; - 054C19E563462CFBF0DBCA541A4D4A6E /* FIRInstanceIDCheckinService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDCheckinService.m; path = Firebase/InstanceID/FIRInstanceIDCheckinService.m; sourceTree = ""; }; - 0560A99FAF8C2CF9E9892513562F0311 /* FIRInstanceIDCheckinPreferences.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDCheckinPreferences.m; path = Firebase/InstanceID/FIRInstanceIDCheckinPreferences.m; sourceTree = ""; }; - 057A37A0B59A832E8F58776C7E4CAECA /* FIRVerifyClientResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyClientResponse.m; path = Firebase/Auth/Source/RPCs/FIRVerifyClientResponse.m; sourceTree = ""; }; - 058F03E689162F33986593E86482BA92 /* FIRInstanceIDAuthKeyChain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDAuthKeyChain.m; path = Firebase/InstanceID/FIRInstanceIDAuthKeyChain.m; sourceTree = ""; }; - 05E9D7BBB6C8712DCD0119FD5FEB8462 /* GULUserDefaults.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULUserDefaults.m; path = GoogleUtilities/UserDefaults/GULUserDefaults.m; sourceTree = ""; }; - 0616470F6D0E026F6594009732EC068D /* nanopb-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nanopb-umbrella.h"; sourceTree = ""; }; - 0658116941DE7643A7A46290104F6B22 /* FIRAuthExceptionUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthExceptionUtils.h; path = Firebase/Auth/Source/FIRAuthExceptionUtils.h; sourceTree = ""; }; - 06A15F9620B94F308C2721CC589A088E /* FIRVerifyPhoneNumberResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyPhoneNumberResponse.m; path = Firebase/Auth/Source/RPCs/FIRVerifyPhoneNumberResponse.m; sourceTree = ""; }; - 06C2AD009117FC01E7202F4DF4DABB56 /* FSRWebSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSRWebSocket.m; path = Firebase/Database/third_party/SocketRocket/FSRWebSocket.m; sourceTree = ""; }; - 07815FB1924AC46479BB8CF9F6A0818E /* FIRTransactionResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRTransactionResult.h; path = Firebase/Database/Public/FIRTransactionResult.h; sourceTree = ""; }; - 089B7D21BC1F40C0F6C3AAEDC9C146F2 /* FIRAnalyticsConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAnalyticsConfiguration.m; path = Firebase/Core/FIRAnalyticsConfiguration.m; sourceTree = ""; }; - 08A4168E69B1BA0C0603DD2504E504F7 /* SkyFloatingLabelTextField-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SkyFloatingLabelTextField-Info.plist"; sourceTree = ""; }; - 08D54D229576FC653365892AB8872535 /* FIRAuthWebView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthWebView.m; path = Firebase/Auth/Source/FIRAuthWebView.m; sourceTree = ""; }; - 08F7229DEB8C36D92FE52955BF8744BE /* FIRAuthAppCredentialManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthAppCredentialManager.m; path = Firebase/Auth/Source/FIRAuthAppCredentialManager.m; sourceTree = ""; }; - 091E73571875B7E8664786E572F2C27A /* Pods_FoodApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FoodApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 099602E95CC02BDF479BAE577F2E1E33 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; - 09A29D4F1A3C1FBECE51F2701FE8C1B0 /* FChildEventRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FChildEventRegistration.h; path = Firebase/Database/Core/View/FChildEventRegistration.h; sourceTree = ""; }; - 09A2C7D544D38D59BE7DCC0CBF034170 /* env.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = env.h; path = include/leveldb/env.h; sourceTree = ""; }; - 0A9ECA9A2280E589F6E2877215D4B385 /* FirebaseAuthInterop.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseAuthInterop.xcconfig; sourceTree = ""; }; - 0B07560A5FF24DBBF4C333188ED8B96B /* repair.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = repair.cc; path = db/repair.cc; sourceTree = ""; }; - 0B446CFAA2A92C673B94D5B06FF456FF /* options.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = options.h; path = include/leveldb/options.h; sourceTree = ""; }; - 0B4A2EB3FC46C0E3AFE983EBDAC4F6F3 /* testharness.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = testharness.cc; path = util/testharness.cc; sourceTree = ""; }; - 0B7B4C111386140849DE52575FA5CA0B /* FIRStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorage.m; path = Firebase/Storage/FIRStorage.m; sourceTree = ""; }; - 0BB358A9C2ADE6B010C30612602C0AFB /* FIRSignUpNewUserRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSignUpNewUserRequest.m; path = Firebase/Auth/Source/RPCs/FIRSignUpNewUserRequest.m; sourceTree = ""; }; - 0BD19841DE323FEE839642AADCF879E0 /* FIRSignInWithGameCenterResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSignInWithGameCenterResponse.h; path = Firebase/Auth/Source/RPCs/FIRSignInWithGameCenterResponse.h; sourceTree = ""; }; - 0BFB1C5725146F4B832E39F66B9EB917 /* FIRDatabaseConfig_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseConfig_Private.h; path = Firebase/Database/FIRDatabaseConfig_Private.h; sourceTree = ""; }; - 0C3ACF0C6C2662805FC41BFC81DE9931 /* FIRAuthGlobalWorkQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthGlobalWorkQueue.h; path = Firebase/Auth/Source/FIRAuthGlobalWorkQueue.h; sourceTree = ""; }; - 0CC07E744C64DBCA25569B0E99624EC1 /* GoogleUtilities.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GoogleUtilities.xcconfig; sourceTree = ""; }; - 0D7BEC325E63ABB70051F75E2B6F8077 /* FIRDatabaseReference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDatabaseReference.m; path = Firebase/Database/FIRDatabaseReference.m; sourceTree = ""; }; - 0DFD501B0E36E3ED96454C3D6909AA37 /* FIRStorageComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageComponent.h; path = Firebase/Storage/Private/FIRStorageComponent.h; sourceTree = ""; }; - 0E5447CBA649653063CDF6ACBDA6D06A /* nanopb-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "nanopb-dummy.m"; sourceTree = ""; }; + 003C8C25031B09DA0BE39C83F5EC6D82 /* random.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = random.h; path = util/random.h; sourceTree = ""; }; + 006EAFFEDAACC2F909A2006C29F0B4CF /* FIRGetOOBConfirmationCodeResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGetOOBConfirmationCodeResponse.m; path = Firebase/Auth/Source/RPCs/FIRGetOOBConfirmationCodeResponse.m; sourceTree = ""; }; + 00AD1CD4B1018456F374FAC831EFCDD6 /* FIRStorageGetDownloadURLTask_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageGetDownloadURLTask_Private.h; path = Firebase/Storage/Private/FIRStorageGetDownloadURLTask_Private.h; sourceTree = ""; }; + 00D5D604EA06C4915B0F2DBFEEA36ABF /* FIRRetryHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRRetryHelper.h; path = Firebase/Database/Core/Utilities/FIRRetryHelper.h; sourceTree = ""; }; + 011E87FC73D1CA00449BA6DD75FA93B4 /* FIRTwitterAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRTwitterAuthProvider.h; path = Firebase/Auth/Source/Public/FIRTwitterAuthProvider.h; sourceTree = ""; }; + 01366B1DAD5060BE87D8221AAB37E165 /* FIRDatabaseConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDatabaseConfig.m; path = Firebase/Database/Api/FIRDatabaseConfig.m; sourceTree = ""; }; + 01692C6A094946F11ED83A1952BAA253 /* FIRIdentityToolkitRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRIdentityToolkitRequest.h; path = Firebase/Auth/Source/RPCs/FIRIdentityToolkitRequest.h; sourceTree = ""; }; + 023A1920CEFA87DC23833B3C3DC6509B /* NSError+FIRInstanceID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSError+FIRInstanceID.h"; path = "Firebase/InstanceID/NSError+FIRInstanceID.h"; sourceTree = ""; }; + 026A90298DB45F4D43ED6F105F1E1330 /* env_posix_test_helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = env_posix_test_helper.h; path = util/env_posix_test_helper.h; sourceTree = ""; }; + 035ABAFF31D87A83CFC6EEBBB68673C2 /* FIRAuthExceptionUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthExceptionUtils.m; path = Firebase/Auth/Source/FIRAuthExceptionUtils.m; sourceTree = ""; }; + 042B637C5CEB40B305A32416F8CDFD32 /* FIRInstanceIDUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDUtilities.m; path = Firebase/InstanceID/FIRInstanceIDUtilities.m; sourceTree = ""; }; + 0483354E454DFD8F424AFF194D9A4F8E /* IQKeyboardManagerSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-umbrella.h"; sourceTree = ""; }; + 051B5E78EC3AD95A4326027939DB2F54 /* hash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = hash.h; path = util/hash.h; sourceTree = ""; }; + 0551546834A74F6287B1B4F165ADA9B0 /* format.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = format.cc; path = table/format.cc; sourceTree = ""; }; + 05589767A6B865C55C7299EF5B46E629 /* testharness.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = testharness.h; path = util/testharness.h; sourceTree = ""; }; + 0638EEF754A6ABC7E6CAEB566AC7C356 /* FTupleOnDisconnect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleOnDisconnect.m; path = Firebase/Database/Utilities/Tuples/FTupleOnDisconnect.m; sourceTree = ""; }; + 06B19ADAC1BFC767F76B8AF5D01EE295 /* FIRUser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRUser.h; path = Firebase/Auth/Source/Public/FIRUser.h; sourceTree = ""; }; + 06C28D397D54D67F0EB49CC4BDF97FC7 /* FirebaseInstanceID-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FirebaseInstanceID-dummy.m"; sourceTree = ""; }; + 07B283A96B0DD8330120FDC6A68DC4E6 /* GTMSessionFetcherService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionFetcherService.m; path = Source/GTMSessionFetcherService.m; sourceTree = ""; }; + 07CCAD18C70F52BA44AAB0D09D893CFD /* FIRAppInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAppInternal.h; path = Firebase/Core/Private/FIRAppInternal.h; sourceTree = ""; }; + 08F17F94D73195742C7638850525EE30 /* log_reader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = log_reader.h; path = db/log_reader.h; sourceTree = ""; }; + 091F989264028F15A2E38F622A5DD05E /* IQTitleBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTitleBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift; sourceTree = ""; }; + 09443112369904F296CAEE7A3B304A2A /* FIRAuth_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuth_Internal.h; path = Firebase/Auth/Source/FIRAuth_Internal.h; sourceTree = ""; }; + 09670FAD5D0A0A3F4EBAA5D61BD3B957 /* SkyFloatingLabelTextFieldWithIcon.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SkyFloatingLabelTextFieldWithIcon.swift; path = Sources/SkyFloatingLabelTextFieldWithIcon.swift; sourceTree = ""; }; + 09F2BFB7D3BA8EBEE1945C5A95D528DB /* block.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = block.h; path = table/block.h; sourceTree = ""; }; + 0A1F36451EB999D18A9CF80164A11267 /* FOperationSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FOperationSource.m; path = Firebase/Database/Core/Operation/FOperationSource.m; sourceTree = ""; }; + 0A94E8E446F77CD52C23F05DD7C64703 /* FIRFacebookAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRFacebookAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/Facebook/FIRFacebookAuthProvider.m; sourceTree = ""; }; + 0AA61E8855C241DC191994774BEBF5C8 /* FViewCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FViewCache.m; path = Firebase/Database/Core/View/FViewCache.m; sourceTree = ""; }; + 0B24AD779C18878FA0EB9B0A6911CD59 /* version_edit.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = version_edit.cc; path = db/version_edit.cc; sourceTree = ""; }; + 0BA57D4835B7DD382D82146F5CBDFFBE /* FirebaseStorage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FirebaseStorage-dummy.m"; sourceTree = ""; }; + 0C5BAE80B61F8AB85A079B5BC360D097 /* FIRAuthAppDelegateProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthAppDelegateProxy.m; path = Firebase/Auth/Source/FIRAuthAppDelegateProxy.m; sourceTree = ""; }; + 0C7A0A9EB0F86521354F8EE71FC54E63 /* FTreeSortedDictionaryEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTreeSortedDictionaryEnumerator.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FTreeSortedDictionaryEnumerator.h; sourceTree = ""; }; + 0CB9317BC1CC6CD19A5720A35F131A5B /* FTupleCallbackStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleCallbackStatus.m; path = Firebase/Database/Utilities/Tuples/FTupleCallbackStatus.m; sourceTree = ""; }; + 0D0FB3FA0861D661947092EDA0B3F68C /* IQPreviousNextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPreviousNextView.swift; path = IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift; sourceTree = ""; }; + 0D5B8703797FE9A4CC0EF6518FC4AEFE /* FTupleTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleTransaction.h; path = Firebase/Database/Utilities/Tuples/FTupleTransaction.h; sourceTree = ""; }; + 0E2AFDEF995D40A3A151B61D8A2C980D /* FIRVerifyClientRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyClientRequest.m; path = Firebase/Auth/Source/RPCs/FIRVerifyClientRequest.m; sourceTree = ""; }; 0E7E06A549C2EC13E577E78F1649EDC6 /* Pods-FoodApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FoodApp.debug.xcconfig"; sourceTree = ""; }; - 0EA984C0CA4E067FF2355EB4343907AE /* FIRTwitterAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRTwitterAuthCredential.h; path = Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthCredential.h; sourceTree = ""; }; - 0EC51AFE930D198BBE8B156BFB9E27EF /* FIRVerifyPhoneNumberRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyPhoneNumberRequest.m; path = Firebase/Auth/Source/RPCs/FIRVerifyPhoneNumberRequest.m; sourceTree = ""; }; - 0ED5BC2EF88081583C4E15A8444B903F /* hash.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = hash.cc; path = util/hash.cc; sourceTree = ""; }; - 0F3583008A46F23EBE74BE4C31CAFEE4 /* FirebaseCore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FirebaseCore.h; path = Firebase/Core/Public/FirebaseCore.h; sourceTree = ""; }; - 0F7D5282D75751D8A5F1436C7EBBF861 /* FOverwrite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FOverwrite.h; path = Firebase/Database/Core/Operation/FOverwrite.h; sourceTree = ""; }; - 0FEE8D6DC1CDEF69076945AC187FC241 /* FIRDatabaseReference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseReference.h; path = Firebase/Database/Public/FIRDatabaseReference.h; sourceTree = ""; }; - 102C8829BE2DF1899095878C8AA8F632 /* FIRGitHubAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGitHubAuthCredential.h; path = Firebase/Auth/Source/AuthProviders/GitHub/FIRGitHubAuthCredential.h; sourceTree = ""; }; - 1034797C985586A397C8E6935C3C3EBA /* FIRGetAccountInfoRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGetAccountInfoRequest.h; path = Firebase/Auth/Source/RPCs/FIRGetAccountInfoRequest.h; sourceTree = ""; }; - 10D68B92FFCBCA03D8948486AB61BC4B /* FWriteRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FWriteRecord.m; path = Firebase/Database/Core/FWriteRecord.m; sourceTree = ""; }; - 110127A52F503DFD6F1ED87E8E9858C4 /* iterator.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = iterator.cc; path = table/iterator.cc; sourceTree = ""; }; - 116A5DE0338A41AAB17F9BB9EC08A623 /* FTrackedQuery.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTrackedQuery.m; path = Firebase/Database/Persistence/FTrackedQuery.m; sourceTree = ""; }; - 119F2C5ACFE39BCB25536C68796FC28C /* FArraySortedDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FArraySortedDictionary.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FArraySortedDictionary.h; sourceTree = ""; }; - 11A9F6F3EB1A14BF4FCDE1BE6766143C /* histogram.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = histogram.h; path = util/histogram.h; sourceTree = ""; }; - 11D557311BC56E727F596A91F344DC09 /* FIRFederatedAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRFederatedAuthProvider.h; path = Firebase/Auth/Source/Public/FIRFederatedAuthProvider.h; sourceTree = ""; }; - 123C1445BFCD6A0CEE58CB89197CDA15 /* log_writer.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = log_writer.cc; path = db/log_writer.cc; sourceTree = ""; }; - 123DD6504331849C9DABCDBB9DD2F0EB /* FIRTransactionResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRTransactionResult.m; path = Firebase/Database/Api/FIRTransactionResult.m; sourceTree = ""; }; - 12DA39787ACEC67E8EF6C7A94158981F /* FIRAuthUserDefaultsStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthUserDefaultsStorage.h; path = Firebase/Auth/Source/FIRAuthUserDefaultsStorage.h; sourceTree = ""; }; - 138B56BBD3C698B2EFAE4538A4D3811E /* FTupleOnDisconnect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleOnDisconnect.m; path = Firebase/Database/Utilities/Tuples/FTupleOnDisconnect.m; sourceTree = ""; }; - 13B8B40409B5A14D715A1D81C5458966 /* FIRAuthTokenResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthTokenResult.m; path = Firebase/Auth/Source/FIRAuthTokenResult.m; sourceTree = ""; }; - 13E8DA44F9B3FEF92CC33190B9AD7E95 /* GTMSessionFetcher-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "GTMSessionFetcher-Info.plist"; sourceTree = ""; }; - 14B1D625056F7F756EB32E0B066455CA /* FIRAuthAPNSToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthAPNSToken.h; path = Firebase/Auth/Source/FIRAuthAPNSToken.h; sourceTree = ""; }; - 14BAFD0E1DED6FE1F344632AA78249F9 /* FIRDatabase_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabase_Private.h; path = Firebase/Database/Api/Private/FIRDatabase_Private.h; sourceTree = ""; }; - 1559D90CFC7F8637E6C5FD474E63404D /* FIRDeleteAccountRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDeleteAccountRequest.m; path = Firebase/Auth/Source/RPCs/FIRDeleteAccountRequest.m; sourceTree = ""; }; - 158CE5C1EF386C7996C926205FCED4D9 /* FIRAuthAPNSTokenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthAPNSTokenManager.m; path = Firebase/Auth/Source/FIRAuthAPNSTokenManager.m; sourceTree = ""; }; - 1619B1F9E6E76BABC17CEF6DFA699A01 /* FIRDeleteAccountResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDeleteAccountResponse.m; path = Firebase/Auth/Source/RPCs/FIRDeleteAccountResponse.m; sourceTree = ""; }; - 165C032EF1376857509C3860D503015B /* FCompoundHash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FCompoundHash.m; path = Firebase/Database/Core/FCompoundHash.m; sourceTree = ""; }; - 16686BB74ADEBE8821651BC26754611C /* FLLRBEmptyNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLLRBEmptyNode.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FLLRBEmptyNode.m; sourceTree = ""; }; - 1669C5FD7233E39DBCCD9C6B4EC8E68D /* FChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FChange.h; path = Firebase/Database/Core/View/FChange.h; sourceTree = ""; }; - 172EC98497ADE08096715EA63426E88F /* FIRStorageReference_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageReference_Private.h; path = Firebase/Storage/Private/FIRStorageReference_Private.h; sourceTree = ""; }; - 1738F789E76BDEB211DCF2425958ABF4 /* FRangedFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FRangedFilter.m; path = Firebase/Database/FRangedFilter.m; sourceTree = ""; }; - 17485D13DE5885F152F1A5D1891C1A85 /* FTupleFirebase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleFirebase.m; path = Firebase/Database/Utilities/Tuples/FTupleFirebase.m; sourceTree = ""; }; - 17C82B891897BB47D488F8FFB83D5619 /* FIRSignUpNewUserRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSignUpNewUserRequest.h; path = Firebase/Auth/Source/RPCs/FIRSignUpNewUserRequest.h; sourceTree = ""; }; - 18485D6BA9FCC1213D138610EC1AF34C /* FOperationSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FOperationSource.m; path = Firebase/Database/Core/Operation/FOperationSource.m; sourceTree = ""; }; - 18BFC555D60AF0A40CD9144B8D002E10 /* FIRDatabaseQuery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseQuery.h; path = Firebase/Database/Public/FIRDatabaseQuery.h; sourceTree = ""; }; - 18E4C3A1BADA586422F641630526217F /* FIRInstanceIDTokenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDTokenManager.m; path = Firebase/InstanceID/FIRInstanceIDTokenManager.m; sourceTree = ""; }; - 19239311F709F916D061C98FD9612DAE /* FIRAuth_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuth_Internal.h; path = Firebase/Auth/Source/FIRAuth_Internal.h; sourceTree = ""; }; - 192BBF5843C2BBC3D997185F4F0FA529 /* NSData+FIRBase64.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+FIRBase64.m"; path = "Firebase/Auth/Source/NSData+FIRBase64.m"; sourceTree = ""; }; - 192ED054F1897887A2256DC0EE0A6ED9 /* GULNetworkMessageCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULNetworkMessageCode.h; path = GoogleUtilities/Network/Private/GULNetworkMessageCode.h; sourceTree = ""; }; - 1953AF6171D6076E26FAE1961F870C8E /* FKeyIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FKeyIndex.m; path = Firebase/Database/FKeyIndex.m; sourceTree = ""; }; - 19BD0622D341CDA89327AE82E52F3D16 /* FTree.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTree.m; path = Firebase/Database/Core/Utilities/FTree.m; sourceTree = ""; }; - 19FB01A8ED8FF3D01AC52B5D74C47717 /* FIRInstanceIDAuthService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDAuthService.h; path = Firebase/InstanceID/FIRInstanceIDAuthService.h; sourceTree = ""; }; - 1A3F76A9E21C49BF7DE1D75C742EFFCE /* log_writer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = log_writer.h; path = db/log_writer.h; sourceTree = ""; }; - 1A489BFBA782016F623533E55181A4C5 /* FIREmailPasswordAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIREmailPasswordAuthCredential.h; path = Firebase/Auth/Source/AuthProviders/EmailPassword/FIREmailPasswordAuthCredential.h; sourceTree = ""; }; - 1A59245D789E7EBEB993FB8A585AEB98 /* FDataEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FDataEvent.h; path = Firebase/Database/Core/View/FDataEvent.h; sourceTree = ""; }; - 1A9F7B51BE6C26E2930B06A3E9B81096 /* FWriteTree.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FWriteTree.m; path = Firebase/Database/Core/FWriteTree.m; sourceTree = ""; }; - 1AB40632554642A4D4ED9E51EC01D577 /* FRangeMerge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FRangeMerge.m; path = Firebase/Database/Core/FRangeMerge.m; sourceTree = ""; }; - 1B1C84B8FDDF845F111A283BD981712E /* FTupleUserCallback.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleUserCallback.h; path = Firebase/Database/Utilities/Tuples/FTupleUserCallback.h; sourceTree = ""; }; - 1BCA6DA0BBF77B9CB8174A7470CFC83F /* FIRStorageMetadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageMetadata.h; path = Firebase/Storage/Public/FIRStorageMetadata.h; sourceTree = ""; }; - 1BF9C9BEC1B6A090CE85975F35E2EA97 /* log_format.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = log_format.h; path = db/log_format.h; sourceTree = ""; }; - 1CB28B86C0A673441E2D7834FF2F232E /* env_posix.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = env_posix.cc; path = util/env_posix.cc; sourceTree = ""; }; - 1E05376F8114D7761110A93BB9269E0F /* FIRGetProjectConfigRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGetProjectConfigRequest.h; path = Firebase/Auth/Source/RPCs/FIRGetProjectConfigRequest.h; sourceTree = ""; }; + 0ED5ED8C8B13D15D59FA18252FADF279 /* FIRAuthKeychain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthKeychain.m; path = Firebase/Auth/Source/FIRAuthKeychain.m; sourceTree = ""; }; + 0F166109264EDEE2ED81825FCC1928DF /* GoogleUtilities.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = GoogleUtilities.framework; path = GoogleUtilities.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0F4C98284A88F5BF60547446ED103475 /* FIRResetPasswordResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRResetPasswordResponse.h; path = Firebase/Auth/Source/RPCs/FIRResetPasswordResponse.h; sourceTree = ""; }; + 0FE3B3D485BFF82FC44FB8B597E000A3 /* FIRStorageTask_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageTask_Private.h; path = Firebase/Storage/Private/FIRStorageTask_Private.h; sourceTree = ""; }; + 10BD4BFE53B577EEADCDA33F3BB65170 /* GoogleUtilities-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "GoogleUtilities-Info.plist"; sourceTree = ""; }; + 1146FA93009C150FCAF944E8EC5D5908 /* NSData+FIRBase64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+FIRBase64.h"; path = "Firebase/Auth/Source/NSData+FIRBase64.h"; sourceTree = ""; }; + 1152B45A2CEA9944F301C5884944C59C /* FIRAppAssociationRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAppAssociationRegistration.m; path = Firebase/Core/FIRAppAssociationRegistration.m; sourceTree = ""; }; + 11539019691A0E899CCEFC5392C637FA /* FIRAuthTokenResult_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthTokenResult_Internal.h; path = Firebase/Auth/Source/FIRAuthTokenResult_Internal.h; sourceTree = ""; }; + 1255E905181A57E5997CFA971C46B701 /* FIRConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRConfiguration.m; path = Firebase/Core/FIRConfiguration.m; sourceTree = ""; }; + 12B8893756F77BEC4BAB835685A6117C /* NSData+SRB64Additions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+SRB64Additions.m"; path = "Firebase/Database/third_party/SocketRocket/NSData+SRB64Additions.m"; sourceTree = ""; }; + 12F4F446D253DA0F436DA9EDC636B5A1 /* FIRResetPasswordRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRResetPasswordRequest.h; path = Firebase/Auth/Source/RPCs/FIRResetPasswordRequest.h; sourceTree = ""; }; + 1354F571209E1FC4B795115F71A2CBA4 /* FIRAuthDispatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthDispatcher.m; path = Firebase/Auth/Source/FIRAuthDispatcher.m; sourceTree = ""; }; + 137FC741F74E23CA158C33144D7D417B /* FIRComponentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRComponentType.h; path = Firebase/Core/Private/FIRComponentType.h; sourceTree = ""; }; + 139648B847A4CE607C12641F9E5C64C7 /* FIRCreateAuthURIRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRCreateAuthURIRequest.h; path = Firebase/Auth/Source/RPCs/FIRCreateAuthURIRequest.h; sourceTree = ""; }; + 13BE2FDAF0781362DB78FEDB6928D5C1 /* FValueEventRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FValueEventRegistration.h; path = Firebase/Database/Core/View/FValueEventRegistration.h; sourceTree = ""; }; + 142D8BAB74176D3264F161E043288840 /* FIRStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorage.h; path = Firebase/Storage/Public/FIRStorage.h; sourceTree = ""; }; + 14A3175B4BCFD861C21FD6F161F0AB85 /* FIROptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIROptions.h; path = Firebase/Core/Public/FIROptions.h; sourceTree = ""; }; + 14AB87DEE3EE08B115283B8E252E7486 /* FNextPushId.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FNextPushId.h; path = Firebase/Database/Utilities/FNextPushId.h; sourceTree = ""; }; + 14BD137F8578B8451120D54CC9F06615 /* merger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = merger.h; path = table/merger.h; sourceTree = ""; }; + 14C432492587F63C36D7F4B465EF2AB0 /* FIRAnalyticsConnector.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FIRAnalyticsConnector.framework; path = Frameworks/FIRAnalyticsConnector.framework; sourceTree = ""; }; + 1526316ABDDC9265DBF0CE25335086CB /* pb_common.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb_common.h; sourceTree = ""; }; + 1598E552B7307E9ED8D6820F9D301EAE /* FIRStorageReference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageReference.h; path = Firebase/Storage/Public/FIRStorageReference.h; sourceTree = ""; }; + 15B0E0E83BA9B2F2B211A49B41A23503 /* db.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = db.h; path = include/leveldb/db.h; sourceTree = ""; }; + 15B5020C0CFA392D0D22F4754299132A /* GULReachabilityChecker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULReachabilityChecker.h; path = GoogleUtilities/Reachability/Private/GULReachabilityChecker.h; sourceTree = ""; }; + 15E535859B5AE344A343F768B1B53E4A /* FIRDatabaseReference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseReference.h; path = Firebase/Database/Public/FIRDatabaseReference.h; sourceTree = ""; }; + 15ED8DA31AA0864AE1DC78EE29BF1378 /* FRepoManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FRepoManager.m; path = Firebase/Database/Core/FRepoManager.m; sourceTree = ""; }; + 1637914D34CBA36FE1657EF748BD14E5 /* IQKeyboardManagerConstantsInternal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstantsInternal.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstantsInternal.swift; sourceTree = ""; }; + 166C592720B5F902576944B388FF3635 /* FCompoundHash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FCompoundHash.m; path = Firebase/Database/Core/FCompoundHash.m; sourceTree = ""; }; + 1689670FBE1700F48A0F17A05378FD5D /* FSRWebSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSRWebSocket.m; path = Firebase/Database/third_party/SocketRocket/FSRWebSocket.m; sourceTree = ""; }; + 17104809A78BE3FE204B30B6EC20BCE6 /* FIRUser_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRUser_Internal.h; path = Firebase/Auth/Source/FIRUser_Internal.h; sourceTree = ""; }; + 1724632216FDB2FAEEF7F6914EFD2D8F /* FIRVerifyCustomTokenResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyCustomTokenResponse.m; path = Firebase/Auth/Source/RPCs/FIRVerifyCustomTokenResponse.m; sourceTree = ""; }; + 176AB47C3BC85BBD1E34D6D442EE7535 /* GULAppDelegateSwizzler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULAppDelegateSwizzler.h; path = GoogleUtilities/AppDelegateSwizzler/Private/GULAppDelegateSwizzler.h; sourceTree = ""; }; + 17B195A1AE4F215AC9F086A2D5BD04B4 /* FIRStorageTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageTask.m; path = Firebase/Storage/FIRStorageTask.m; sourceTree = ""; }; + 17DF3A9667D1FEDF59D77524CBAFF416 /* FIRGitHubAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGitHubAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/GitHub/FIRGitHubAuthCredential.m; sourceTree = ""; }; + 183326A44FBDEE35898C7E1FAD6C0851 /* FIRAuthAPNSToken.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthAPNSToken.m; path = Firebase/Auth/Source/FIRAuthAPNSToken.m; sourceTree = ""; }; + 183F9D79C91BCC4DB7C12CDC0ED1D2A4 /* FLimitedFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLimitedFilter.h; path = Firebase/Database/Core/View/Filter/FLimitedFilter.h; sourceTree = ""; }; + 1851DC3F8BBD91103DB7D81BCA96F8AF /* FIRSendVerificationCodeResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSendVerificationCodeResponse.m; path = Firebase/Auth/Source/RPCs/FIRSendVerificationCodeResponse.m; sourceTree = ""; }; + 1895953C878F8CD732446D7B972B2A5E /* FIROAuthCredential_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIROAuthCredential_Internal.h; path = Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthCredential_Internal.h; sourceTree = ""; }; + 189C7B3478FD5B63059CAB38C9C5104D /* FTupleTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleTransaction.m; path = Firebase/Database/Utilities/Tuples/FTupleTransaction.m; sourceTree = ""; }; + 18B47B8CEF6BADD4682C255A17146F7A /* FIRStorageErrors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageErrors.h; path = Firebase/Storage/Private/FIRStorageErrors.h; sourceTree = ""; }; + 18EDCFA2D5F24293CDE39A247CF57E8A /* FIRPhoneAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRPhoneAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/Phone/FIRPhoneAuthProvider.m; sourceTree = ""; }; + 1957F53C653A6FE1CE67776446F317B6 /* FIRRetryHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRRetryHelper.m; path = Firebase/Database/Core/Utilities/FIRRetryHelper.m; sourceTree = ""; }; + 1ABC5483348775FE1027B71959C611F0 /* GULNetworkLoggerProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULNetworkLoggerProtocol.h; path = GoogleUtilities/Network/Private/GULNetworkLoggerProtocol.h; sourceTree = ""; }; + 1B22A533D3BD9052959A67C8A4DAFC24 /* filename.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = filename.cc; path = db/filename.cc; sourceTree = ""; }; + 1B462561E2B5FD154AAEF2B9B0A696CD /* FIRStorageUpdateMetadataTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageUpdateMetadataTask.m; path = Firebase/Storage/FIRStorageUpdateMetadataTask.m; sourceTree = ""; }; + 1BE8933466D24A7FA16972DD2649955D /* FOverwrite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FOverwrite.h; path = Firebase/Database/Core/Operation/FOverwrite.h; sourceTree = ""; }; + 1C11029CA303A9716DDC18309E345CB6 /* FIRAuthGlobalWorkQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthGlobalWorkQueue.m; path = Firebase/Auth/Source/FIRAuthGlobalWorkQueue.m; sourceTree = ""; }; + 1CF1522D55FA3316BDAF12C7CDBDBD28 /* FIRStorageObservableTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageObservableTask.h; path = Firebase/Storage/Public/FIRStorageObservableTask.h; sourceTree = ""; }; + 1D2DD7E0C1E831934AB25F037406658A /* FIRDatabaseConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseConfig.h; path = Firebase/Database/Api/FIRDatabaseConfig.h; sourceTree = ""; }; + 1D55D30E57F51334315AB26779DF0F69 /* FIRAuthWebView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthWebView.m; path = Firebase/Auth/Source/FIRAuthWebView.m; sourceTree = ""; }; + 1DC3794FF927777A6A2210F8FCE5CCB3 /* block_builder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = block_builder.h; path = table/block_builder.h; sourceTree = ""; }; + 1DDA7A7A84EFD62B9CFDE223A1373E5D /* FIRIMessageCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRIMessageCode.h; path = Firebase/InstanceID/FIRIMessageCode.h; sourceTree = ""; }; + 1DE76B71233CDE4E8276762DC5E2261D /* GULNetworkConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULNetworkConstants.m; path = GoogleUtilities/Network/GULNetworkConstants.m; sourceTree = ""; }; 1E06B64600CF08545CDF37B6BCF5E501 /* Pods-FoodApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-FoodApp-acknowledgements.plist"; sourceTree = ""; }; - 1EB4F8306E3B833B43215790579D19C0 /* FIRDatabaseQuery_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseQuery_Private.h; path = Firebase/Database/Api/Private/FIRDatabaseQuery_Private.h; sourceTree = ""; }; - 1F9F4A97D91AF749272C3710C77E913C /* GTMSessionFetcherLogging.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionFetcherLogging.m; path = Source/GTMSessionFetcherLogging.m; sourceTree = ""; }; - 2069651C0562010C6A877A7BF47C327B /* FIRDependency.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDependency.h; path = Firebase/Core/Private/FIRDependency.h; sourceTree = ""; }; - 211AC4263BB604C499433728C2ED0995 /* FSnapshotUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSnapshotUtilities.m; path = Firebase/Database/Snapshot/FSnapshotUtilities.m; sourceTree = ""; }; - 2122B552F56707548D6BE3C2DA92C363 /* FIRGameCenterAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGameCenterAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/GameCenter/FIRGameCenterAuthCredential.m; sourceTree = ""; }; - 21426779DCDC25A3F6EC98B0752A9C7D /* FQueryParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FQueryParams.m; path = Firebase/Database/Core/FQueryParams.m; sourceTree = ""; }; - 21EF5103597DFAFE936A1312165188A1 /* FIRInstanceIDDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDDefines.h; path = Firebase/InstanceID/FIRInstanceIDDefines.h; sourceTree = ""; }; - 2297FBAA4C7F67EFA60AA4137E7520DB /* FirebaseAuth.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FirebaseAuth.modulemap; sourceTree = ""; }; - 22BE51743C609FD0306CE746A9364DBE /* FIRInstanceIDTokenInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDTokenInfo.h; path = Firebase/InstanceID/FIRInstanceIDTokenInfo.h; sourceTree = ""; }; - 22F36F2EB5B85FC832AFEED2FA184D00 /* FKeyIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FKeyIndex.h; path = Firebase/Database/FKeyIndex.h; sourceTree = ""; }; - 22F3A1E9A4F6AF9FAEC7B9ACA1D0AEB5 /* FIRStorageTask_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageTask_Private.h; path = Firebase/Storage/Private/FIRStorageTask_Private.h; sourceTree = ""; }; - 2348E4D2B13991D1EF39D0D2876A8C6C /* FIRPhoneAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRPhoneAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/Phone/FIRPhoneAuthCredential.m; sourceTree = ""; }; - 239C21D2EE55FAC507BD5C7BF69E0209 /* FIRComponentContainer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRComponentContainer.m; path = Firebase/Core/FIRComponentContainer.m; sourceTree = ""; }; - 242713338442B10C2C94C52824EAAE2E /* FIRSecureTokenResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSecureTokenResponse.m; path = Firebase/Auth/Source/RPCs/FIRSecureTokenResponse.m; sourceTree = ""; }; - 247E102F195FA7F5EF5C5CDF7F516E5B /* FIRGoogleAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGoogleAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/Google/FIRGoogleAuthCredential.m; sourceTree = ""; }; - 25286559408DBDE9BFAFA61A7C07C06D /* FIRMutableData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRMutableData.m; path = Firebase/Database/Api/FIRMutableData.m; sourceTree = ""; }; - 254A62A10C5797962BBC1063EF6F33CA /* SkyFloatingLabelTextField.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SkyFloatingLabelTextField.modulemap; sourceTree = ""; }; - 25BB970C36717EAF606D445FC1BB9970 /* FIRAdditionalUserInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAdditionalUserInfo.m; path = Firebase/Auth/Source/FIRAdditionalUserInfo.m; sourceTree = ""; }; - 25CE5A0CDCBC4CF96F6633F9EC9A1F1B /* FLLRBNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLLRBNode.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FLLRBNode.h; sourceTree = ""; }; - 267BF6D8786C8CB44EC92523CBD86470 /* GULSwizzler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULSwizzler.h; path = GoogleUtilities/MethodSwizzler/Private/GULSwizzler.h; sourceTree = ""; }; - 276ED8659F55873729E50A68D18D8BB4 /* FIRCreateAuthURIResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRCreateAuthURIResponse.m; path = Firebase/Auth/Source/RPCs/FIRCreateAuthURIResponse.m; sourceTree = ""; }; - 278C4E4D9BA5A68026CDE6C89AD685CF /* FIRStorageGetMetadataTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageGetMetadataTask.h; path = Firebase/Storage/Private/FIRStorageGetMetadataTask.h; sourceTree = ""; }; - 27A2A4DC36D5B0A92A7E4CDCFD6F7A90 /* FIRInstanceIDTokenStore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDTokenStore.h; path = Firebase/InstanceID/FIRInstanceIDTokenStore.h; sourceTree = ""; }; - 28623D9EA3BBD2255FAE8311D5A470CE /* iterator_wrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = iterator_wrapper.h; path = table/iterator_wrapper.h; sourceTree = ""; }; - 287FD20FB1E704B5433F3348A94510AD /* FIRSignInWithGameCenterResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSignInWithGameCenterResponse.m; path = Firebase/Auth/Source/RPCs/FIRSignInWithGameCenterResponse.m; sourceTree = ""; }; - 288D551F2BC828C4B6142F138901B9B0 /* version_edit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = version_edit.h; path = db/version_edit.h; sourceTree = ""; }; - 28A4F690B518910B893FD0B61DFA3CC4 /* FIRAuthNotificationManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthNotificationManager.h; path = Firebase/Auth/Source/FIRAuthNotificationManager.h; sourceTree = ""; }; - 28C5627DFA189E51950D1225B96DF42B /* FCompoundWrite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FCompoundWrite.h; path = Firebase/Database/Snapshot/FCompoundWrite.h; sourceTree = ""; }; - 28EC55F554A2886D0ABEE64B9361B4DA /* FSRWebSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSRWebSocket.h; path = Firebase/Database/third_party/SocketRocket/FSRWebSocket.h; sourceTree = ""; }; - 291FE3E17348A450097864F119F7E4E7 /* FIRGitHubAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGitHubAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/GitHub/FIRGitHubAuthCredential.m; sourceTree = ""; }; - 294DE40D904297B85D2EC076ECA55A62 /* FIRAuthAppCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthAppCredential.m; path = Firebase/Auth/Source/FIRAuthAppCredential.m; sourceTree = ""; }; - 29EB50AC0367C40F0A0A72F72D8C8E68 /* FIRInstanceIDConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDConstants.h; path = Firebase/InstanceID/FIRInstanceIDConstants.h; sourceTree = ""; }; - 2A0DEFBE10B18D143EEB4944BA972AA3 /* GULLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULLogger.h; path = GoogleUtilities/Logger/Private/GULLogger.h; sourceTree = ""; }; - 2A297CC1E3226DEDE9D8D550221D0149 /* FIRFacebookAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRFacebookAuthProvider.h; path = Firebase/Auth/Source/Public/FIRFacebookAuthProvider.h; sourceTree = ""; }; - 2A62F5DEA813F07D663C4B01BE3FDEA0 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; - 2A678ACB65E722A9E22EE14ACFB6FF42 /* FIndexedNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIndexedNode.h; path = Firebase/Database/Snapshot/FIndexedNode.h; sourceTree = ""; }; - 2A780B7B4D4BD94B748936DC31683D5C /* FirebaseInstanceID-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FirebaseInstanceID-Info.plist"; sourceTree = ""; }; - 2AFDC02BCDBA729386A95450D9B0277D /* FIRRetryHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRRetryHelper.h; path = Firebase/Database/Core/Utilities/FIRRetryHelper.h; sourceTree = ""; }; - 2C6A232FAD05B457BB78B661F3177449 /* FEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FEvent.h; path = Firebase/Database/Core/View/FEvent.h; sourceTree = ""; }; - 2C70A4A5A6D491676D0FE160136A10F8 /* options.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = options.cc; path = util/options.cc; sourceTree = ""; }; - 2C7249AB9702317AD2CA574DD6018C00 /* FImmutableSortedDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FImmutableSortedDictionary.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FImmutableSortedDictionary.h; sourceTree = ""; }; - 2C828D0286D610BA9516A49349483CCD /* FViewCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FViewCache.h; path = Firebase/Database/Core/View/FViewCache.h; sourceTree = ""; }; - 2CB244292166D2C650852EFE5AD83E4E /* FLLRBEmptyNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLLRBEmptyNode.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FLLRBEmptyNode.h; sourceTree = ""; }; - 2CCB6514F831CF17DC7C64A5AA2E3182 /* GULNetworkConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULNetworkConstants.h; path = GoogleUtilities/Network/Private/GULNetworkConstants.h; sourceTree = ""; }; - 2CD73CD7281BF60442814EDE05632BAD /* FIRDeleteAccountRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDeleteAccountRequest.h; path = Firebase/Auth/Source/RPCs/FIRDeleteAccountRequest.h; sourceTree = ""; }; - 2D59DC40BAE72A3158EB1277E81A3415 /* FNamedNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FNamedNode.h; path = Firebase/Database/FNamedNode.h; sourceTree = ""; }; - 2D8A1EB37E58D2378EE2F71FF148531C /* GULNSData+zlib.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "GULNSData+zlib.m"; path = "GoogleUtilities/NSData+zlib/GULNSData+zlib.m"; sourceTree = ""; }; - 2DDD8D89CAE73BA716FB80BCC1E6BD64 /* FPersistentConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPersistentConnection.m; path = Firebase/Database/Core/FPersistentConnection.m; sourceTree = ""; }; - 2E51481E3FFCBF81DFDD4952E6FABF63 /* FTuplePathValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTuplePathValue.h; path = Firebase/Database/Utilities/Tuples/FTuplePathValue.h; sourceTree = ""; }; - 2F315EE5C1C7AB599527514B6B86EF23 /* FIRAuthAPNSTokenType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthAPNSTokenType.h; path = Firebase/Auth/Source/Public/FIRAuthAPNSTokenType.h; sourceTree = ""; }; - 2F73ED72759D84D1E45C37F712727036 /* FIRGetProjectConfigResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGetProjectConfigResponse.h; path = Firebase/Auth/Source/RPCs/FIRGetProjectConfigResponse.h; sourceTree = ""; }; - 2F92434E6CBF763A6981A36DCF3C6CBA /* bloom.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = bloom.cc; path = util/bloom.cc; sourceTree = ""; }; - 30AA7D6BA7E041B5D9536E7FB49C848F /* FImmutableSortedSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FImmutableSortedSet.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FImmutableSortedSet.h; sourceTree = ""; }; - 30AFDBDCD2ADDD1487E0FE6F8CB6C197 /* logging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = logging.h; path = util/logging.h; sourceTree = ""; }; - 30B2A3A674C09C0191312B460DAAFD16 /* FIRAuth.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuth.h; path = Firebase/Auth/Source/Public/FIRAuth.h; sourceTree = ""; }; - 3140E387E11BF2A87D6EBC35BE462CEE /* FIRAuthWebView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthWebView.h; path = Firebase/Auth/Source/FIRAuthWebView.h; sourceTree = ""; }; - 31867FAC1EB2A4D65E11AB668B86643D /* FOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FOperation.h; path = Firebase/Database/Core/Operation/FOperation.h; sourceTree = ""; }; - 31A66867F845649BC8FB6659824369BF /* FIRAuthTokenResult_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthTokenResult_Internal.h; path = Firebase/Auth/Source/FIRAuthTokenResult_Internal.h; sourceTree = ""; }; - 3234BBBF45EDF1C1ED53759A22CA12C9 /* NSData+FIRBase64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+FIRBase64.h"; path = "Firebase/Auth/Source/NSData+FIRBase64.h"; sourceTree = ""; }; - 32BB67263669321F679A2EF1CA3D50BA /* two_level_iterator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = two_level_iterator.h; path = table/two_level_iterator.h; sourceTree = ""; }; - 341E8592A4E2723D89A9429AC4C81E73 /* FCompleteChildSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FCompleteChildSource.h; path = Firebase/Database/Core/View/Filter/FCompleteChildSource.h; sourceTree = ""; }; - 341F018261E8AE076F8DBDCA36E593D6 /* FIRInstanceIDUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDUtilities.m; path = Firebase/InstanceID/FIRInstanceIDUtilities.m; sourceTree = ""; }; - 3428FB24D92B1FEE46F15233C2AE580D /* FTypedefs_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTypedefs_Private.h; path = Firebase/Database/Api/Private/FTypedefs_Private.h; sourceTree = ""; }; - 3481FF00891AE43E4B632A4CDAB486D0 /* FUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FUtilities.m; path = Firebase/Database/Utilities/FUtilities.m; sourceTree = ""; }; - 3483051669AF463CD0850ABB6628BD2A /* FUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FUtilities.h; path = Firebase/Database/Utilities/FUtilities.h; sourceTree = ""; }; - 3499199ED2492A1364D7DBA0C9951C96 /* dumpfile.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = dumpfile.cc; path = db/dumpfile.cc; sourceTree = ""; }; - 3545E81BF0178BCCB06EEF760F1E5AAA /* FIRStoragePath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStoragePath.h; path = Firebase/Storage/Private/FIRStoragePath.h; sourceTree = ""; }; - 3603C2FA454E6DE5F11D1EE21D15C201 /* FOverwrite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FOverwrite.m; path = Firebase/Database/Core/Operation/FOverwrite.m; sourceTree = ""; }; - 365F356BEB40BD61262AA2E727C3665B /* FIRVerifyPhoneNumberRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyPhoneNumberRequest.h; path = Firebase/Auth/Source/RPCs/FIRVerifyPhoneNumberRequest.h; sourceTree = ""; }; - 36A1977166C8CDAAD6F31DA6B8483AA2 /* FIRInstanceIDLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDLogger.m; path = Firebase/InstanceID/FIRInstanceIDLogger.m; sourceTree = ""; }; - 36A5237B4B667FB9DD99A925C35D4BDD /* FIRCreateAuthURIResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRCreateAuthURIResponse.h; path = Firebase/Auth/Source/RPCs/FIRCreateAuthURIResponse.h; sourceTree = ""; }; - 36CF3FEA982BA82B1901A24AE8A7CD36 /* GULReachabilityMessageCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULReachabilityMessageCode.h; path = GoogleUtilities/Reachability/Private/GULReachabilityMessageCode.h; sourceTree = ""; }; - 36EB1565044A97B1FF9AA8F23DBF0A5A /* FIRUser_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRUser_Internal.h; path = Firebase/Auth/Source/FIRUser_Internal.h; sourceTree = ""; }; - 377B675225F8DC1F7D6ED035AEC9E4E9 /* FSnapshotHolder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSnapshotHolder.m; path = Firebase/Database/Core/FSnapshotHolder.m; sourceTree = ""; }; - 37DC8061E71A3F64016C10244E021962 /* FRepoInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FRepoInfo.m; path = Firebase/Database/Core/FRepoInfo.m; sourceTree = ""; }; - 3801FBF1E8148FE35DD0BDDE586F53A3 /* FIRInstanceIDKeyPair.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDKeyPair.m; path = Firebase/InstanceID/FIRInstanceIDKeyPair.m; sourceTree = ""; }; - 38E65983D71A43219A65E820A3D93CF5 /* FConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FConnection.m; path = Firebase/Database/Realtime/FConnection.m; sourceTree = ""; }; - 392DDD6C7DF71CB9569FB923909348D6 /* FirebaseStorage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FirebaseStorage-umbrella.h"; sourceTree = ""; }; - 394646F176BB5B7F31EE1306F4ECD676 /* FEventRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FEventRegistration.h; path = Firebase/Database/Core/View/FEventRegistration.h; sourceTree = ""; }; - 394E4A120D5047DAE5A2E23BFAB11B23 /* FIRComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRComponent.m; path = Firebase/Core/FIRComponent.m; sourceTree = ""; }; - 39601DF8AC984023ACC8BE8AF796E190 /* FIRStorageMetadata_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageMetadata_Private.h; path = Firebase/Storage/Private/FIRStorageMetadata_Private.h; sourceTree = ""; }; - 3A176C459355061F4D6BFD03405273D8 /* FIRStorageGetMetadataTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageGetMetadataTask.m; path = Firebase/Storage/FIRStorageGetMetadataTask.m; sourceTree = ""; }; - 3A9AA771AF9F16BC3FC9A2B28208A59F /* FIRVerifyAssertionRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyAssertionRequest.h; path = Firebase/Auth/Source/RPCs/FIRVerifyAssertionRequest.h; sourceTree = ""; }; - 3AC4C6979697B15479E52EA18869C2AD /* port_posix_sse.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = port_posix_sse.cc; path = port/port_posix_sse.cc; sourceTree = ""; }; - 3B12766C61A1D905BADA75D1D451E350 /* FIRDataSnapshot_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDataSnapshot_Private.h; path = Firebase/Database/Api/Private/FIRDataSnapshot_Private.h; sourceTree = ""; }; - 3B4437E6CFF46CA046598822779E1311 /* FIRStorageGetDownloadURLTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageGetDownloadURLTask.m; path = Firebase/Storage/FIRStorageGetDownloadURLTask.m; sourceTree = ""; }; - 3BD9E0ADF784A90BF5D483F071D0CF52 /* env.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = env.cc; path = util/env.cc; sourceTree = ""; }; - 3C28E06757512114CD7F3363157E8A77 /* FListenProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FListenProvider.m; path = Firebase/Database/Core/FListenProvider.m; sourceTree = ""; }; - 3C2AB0587B6DEFCD5A98218E92E98FD9 /* FIRAuthDispatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthDispatcher.h; path = Firebase/Auth/Source/FIRAuthDispatcher.h; sourceTree = ""; }; - 3C8A7F0B382D0FDD6AEF71D9953824F0 /* FRangeMerge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FRangeMerge.h; path = Firebase/Database/Core/FRangeMerge.h; sourceTree = ""; }; - 3D0DEADB4CF00FAD792DAF51354BADB4 /* FAuthTokenProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FAuthTokenProvider.m; path = Firebase/Database/Login/FAuthTokenProvider.m; sourceTree = ""; }; + 1E25CD3D87E41B8CBB5FC635F8DC6284 /* FIRInstanceIDKeyPairStore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDKeyPairStore.m; path = Firebase/InstanceID/FIRInstanceIDKeyPairStore.m; sourceTree = ""; }; + 1E893D5481EDD037B3E0D5865D7D6971 /* FIRCreateAuthURIRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRCreateAuthURIRequest.m; path = Firebase/Auth/Source/RPCs/FIRCreateAuthURIRequest.m; sourceTree = ""; }; + 1F8DECF36944D1A7DA5C57BABB3544D0 /* FIRInstanceIDTokenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDTokenManager.h; path = Firebase/InstanceID/FIRInstanceIDTokenManager.h; sourceTree = ""; }; + 1FB5003C2AA4ECB6EB79ED81573CFE4B /* GULLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULLogger.m; path = GoogleUtilities/Logger/GULLogger.m; sourceTree = ""; }; + 203B7F3F148553F80218C3A0F1B3CEAC /* FIRTransactionResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRTransactionResult.m; path = Firebase/Database/Api/FIRTransactionResult.m; sourceTree = ""; }; + 205BB22C8D4A1E32213511428B7A4289 /* nanopb-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "nanopb-Info.plist"; sourceTree = ""; }; + 2067AE8E5DA01BC665BE1236068BC6F8 /* GTMSessionFetcherLogging.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionFetcherLogging.m; path = Source/GTMSessionFetcherLogging.m; sourceTree = ""; }; + 20C9C0BC47C34338B67CE61497C78385 /* status.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = status.h; path = include/leveldb/status.h; sourceTree = ""; }; + 20E5D91136CD814B6CDB9E135B153EB7 /* iterator.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = iterator.cc; path = table/iterator.cc; sourceTree = ""; }; + 2105321D0A5A7BDF062D0DE87007D0B1 /* FIRAnalyticsConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAnalyticsConfiguration.m; path = Firebase/Core/FIRAnalyticsConfiguration.m; sourceTree = ""; }; + 21C44E0FCBC3FD409AF911F66083145E /* FIRSetAccountInfoRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSetAccountInfoRequest.m; path = Firebase/Auth/Source/RPCs/FIRSetAccountInfoRequest.m; sourceTree = ""; }; + 21E5E035F7596A4818BF2337342BA2BE /* FIRStorageGetDownloadURLTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageGetDownloadURLTask.h; path = Firebase/Storage/Private/FIRStorageGetDownloadURLTask.h; sourceTree = ""; }; + 2273428CFACABD45372FCDD26B3E42BF /* FIRInstanceIDTokenOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDTokenOperation.m; path = Firebase/InstanceID/FIRInstanceIDTokenOperation.m; sourceTree = ""; }; + 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 228A010ACC4B98D785EBE217AE830C42 /* NSError+FIRInstanceID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSError+FIRInstanceID.m"; path = "Firebase/InstanceID/NSError+FIRInstanceID.m"; sourceTree = ""; }; + 22C1D5C86D1001DC26DEEED074A443F5 /* FIRSignUpNewUserRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSignUpNewUserRequest.h; path = Firebase/Auth/Source/RPCs/FIRSignUpNewUserRequest.h; sourceTree = ""; }; + 2362FD7A5621613A543C642A63EF932B /* FIRVerifyClientRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyClientRequest.h; path = Firebase/Auth/Source/RPCs/FIRVerifyClientRequest.h; sourceTree = ""; }; + 2390161B6A068F444F66B9E9FEE89CD8 /* GULMutableDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULMutableDictionary.h; path = GoogleUtilities/Network/Private/GULMutableDictionary.h; sourceTree = ""; }; + 24477E158B843677C017E0890BFB5878 /* port.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = port.h; path = port/port.h; sourceTree = ""; }; + 24A50EA2A461EF3089E8818D6D8D52B6 /* FIRDataSnapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDataSnapshot.h; path = Firebase/Database/Public/FIRDataSnapshot.h; sourceTree = ""; }; + 2501F898111F1861C61683C629977FB2 /* FWriteTreeRef.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FWriteTreeRef.m; path = Firebase/Database/Core/FWriteTreeRef.m; sourceTree = ""; }; + 255AA58DE09D46DF5DAC3F97B5833E1B /* GULLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULLogger.h; path = GoogleUtilities/Logger/Private/GULLogger.h; sourceTree = ""; }; + 256EB4112E9162124973B228B3BCFEAE /* APLevelDB.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = APLevelDB.h; path = "Firebase/Database/third_party/Wrap-leveldb/APLevelDB.h"; sourceTree = ""; }; + 25C6E4E729ED916184BADEAA778B0026 /* FIRStorageUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageUtils.m; path = Firebase/Storage/FIRStorageUtils.m; sourceTree = ""; }; + 25F5C462B8D2CE1BD3D8AED6C6575B9D /* repair.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = repair.cc; path = db/repair.cc; sourceTree = ""; }; + 268C0766CD95F26546BE64D1439A0AC4 /* FIRInstanceID+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FIRInstanceID+Private.h"; path = "Firebase/InstanceID/FIRInstanceID+Private.h"; sourceTree = ""; }; + 274B74DB7AA8CA76AE460046F5FC00A3 /* FRangedFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FRangedFilter.h; path = Firebase/Database/FRangedFilter.h; sourceTree = ""; }; + 277542CCACBABB940DAE59690620BA07 /* pb_common.c */ = {isa = PBXFileReference; includeInIndex = 1; path = pb_common.c; sourceTree = ""; }; + 27BE3DF76450F5A994530FA877F71DB4 /* FIRAuthRPCResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthRPCResponse.h; path = Firebase/Auth/Source/RPCs/FIRAuthRPCResponse.h; sourceTree = ""; }; + 27DD21B21DA8F00AD11441EC732B17EB /* FIRInstanceIDKeyPairUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDKeyPairUtilities.m; path = Firebase/InstanceID/FIRInstanceIDKeyPairUtilities.m; sourceTree = ""; }; + 2830664AD761FA33DCF9BA97BB93B0BA /* FCompoundHash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FCompoundHash.h; path = Firebase/Database/Core/FCompoundHash.h; sourceTree = ""; }; + 2839FC162EA0A47CBFBF41176399DE3D /* FirebaseStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FirebaseStorage.h; path = Firebase/Storage/Public/FirebaseStorage.h; sourceTree = ""; }; + 284C444EAE7C611F50844108B8E11F33 /* FIRComponentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRComponentType.m; path = Firebase/Core/FIRComponentType.m; sourceTree = ""; }; + 28582C025BACD55A7DCC97515F0072CB /* FIRSignUpNewUserResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSignUpNewUserResponse.m; path = Firebase/Auth/Source/RPCs/FIRSignUpNewUserResponse.m; sourceTree = ""; }; + 28936CF230E28DC6E2943416752880FC /* FCacheNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FCacheNode.m; path = Firebase/Database/Core/View/FCacheNode.m; sourceTree = ""; }; + 29762751DB8B1F55F32493A5C59CD49B /* dbformat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dbformat.h; path = db/dbformat.h; sourceTree = ""; }; + 2A98F14CC1F09D6683372AE77D3CC99E /* FOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FOperation.h; path = Firebase/Database/Core/Operation/FOperation.h; sourceTree = ""; }; + 2ACD9EC67820A2CBF615AAF4BFA51FFA /* FChildrenNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FChildrenNode.h; path = Firebase/Database/Snapshot/FChildrenNode.h; sourceTree = ""; }; + 2B0F0F5231B06D3F928790D421BE9B8D /* FWriteRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FWriteRecord.h; path = Firebase/Database/Core/FWriteRecord.h; sourceTree = ""; }; + 2B18AF4189C50E9C5364C8A0605403F4 /* FWebSocketConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FWebSocketConnection.h; path = Firebase/Database/Realtime/FWebSocketConnection.h; sourceTree = ""; }; + 2B3781F934D2117AB876B567B3FF71B1 /* FPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPath.m; path = Firebase/Database/Core/Utilities/FPath.m; sourceTree = ""; }; + 2B5D5B33F45278DC48BF8284E1EC3389 /* FirebaseInstanceID-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FirebaseInstanceID-Info.plist"; sourceTree = ""; }; + 2C003A81F734083A35C989A73A92BAFC /* FLLRBValueNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLLRBValueNode.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FLLRBValueNode.h; sourceTree = ""; }; + 2C41C04FF1CC495A14B4D51CAF7F82C9 /* FirebaseDatabase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FirebaseDatabase.framework; path = FirebaseDatabase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2CB923BE54DE32ADEC1C6FF4162A9807 /* FIRStorageConstants_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageConstants_Private.h; path = Firebase/Storage/Private/FIRStorageConstants_Private.h; sourceTree = ""; }; + 2D0C0C1ED1AA2E776D114351F4ABE467 /* FMerge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMerge.m; path = Firebase/Database/Core/Operation/FMerge.m; sourceTree = ""; }; + 2D3D5ABB7D9ED03670E439E52F3E11D1 /* FIRCreateAuthURIResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRCreateAuthURIResponse.h; path = Firebase/Auth/Source/RPCs/FIRCreateAuthURIResponse.h; sourceTree = ""; }; + 2D45242188FE1122A0B16A31C6DE984E /* nanopb.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = nanopb.framework; path = nanopb.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2D58D34CEA34FF3BBBD83EEE5E0CBAC3 /* FIRFacebookAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRFacebookAuthCredential.h; path = Firebase/Auth/Source/AuthProviders/Facebook/FIRFacebookAuthCredential.h; sourceTree = ""; }; + 2D7906648734D1513811314CA83E4AFB /* FIRInstanceIDStringEncoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDStringEncoding.h; path = Firebase/InstanceID/FIRInstanceIDStringEncoding.h; sourceTree = ""; }; + 2DB7F8E9194E1A1C14F0DA6EA599CC57 /* FValueIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FValueIndex.m; path = Firebase/Database/FValueIndex.m; sourceTree = ""; }; + 2DEFC55BFA726E9863A58E4E3270A36A /* FIROptionsInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIROptionsInternal.h; path = Firebase/Core/Private/FIROptionsInternal.h; sourceTree = ""; }; + 2E6850346BFA2E592A2CA757719C1D54 /* FIRLibrary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRLibrary.h; path = Firebase/Core/Private/FIRLibrary.h; sourceTree = ""; }; + 2EA77A9A159741B12D8D8D38F9A35AF1 /* FIRActionCodeSettings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRActionCodeSettings.h; path = Firebase/Auth/Source/Public/FIRActionCodeSettings.h; sourceTree = ""; }; + 2EA87E86672F1EE5D63BB6AFCDF19142 /* FIRUserMetadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRUserMetadata.m; path = Firebase/Auth/Source/FIRUserMetadata.m; sourceTree = ""; }; + 2EED29DCF463D921818F8E1834076D85 /* GTMSessionFetcher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = GTMSessionFetcher.framework; path = GTMSessionFetcher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2FD973064D811BC9AC2B5D49BD9EC206 /* nanopb-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nanopb-prefix.pch"; sourceTree = ""; }; + 2FF152469AE80A6A0670BC713E9B4292 /* FCachePolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FCachePolicy.h; path = Firebase/Database/Persistence/FCachePolicy.h; sourceTree = ""; }; + 305C3F694B7E505D86ADD0097A2D2EF3 /* FTupleStringNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleStringNode.m; path = Firebase/Database/Utilities/Tuples/FTupleStringNode.m; sourceTree = ""; }; + 30E1EF7F78265C6C227BD6B91E4C9293 /* GULLoggerLevel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULLoggerLevel.h; path = GoogleUtilities/Logger/Public/GULLoggerLevel.h; sourceTree = ""; }; + 314CF29A20CFF08E96DC58E8689717FB /* FClock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FClock.h; path = Firebase/Database/FClock.h; sourceTree = ""; }; + 314DAF0DCB891CFF1059F80DAC87E0A1 /* FirebaseDatabase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseDatabase.xcconfig; sourceTree = ""; }; + 3166DF80F9DD07F0E7B90A44E22FADA5 /* FStorageEngine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FStorageEngine.h; path = Firebase/Database/Persistence/FStorageEngine.h; sourceTree = ""; }; + 3195B1A1BD550DB221B2E1FC3DC60D4D /* FIRComponentContainerInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRComponentContainerInternal.h; path = Firebase/Core/Private/FIRComponentContainerInternal.h; sourceTree = ""; }; + 31BF0C9E8A19ADB4188DC547088929A5 /* crc32c.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = crc32c.cc; path = util/crc32c.cc; sourceTree = ""; }; + 325045AA7C99D3D78752274F02AA71DC /* FIRAdditionalUserInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAdditionalUserInfo.m; path = Firebase/Auth/Source/FIRAdditionalUserInfo.m; sourceTree = ""; }; + 32751CB83490A73DF3D1EBDCC6CA4A63 /* FIRStorageMetadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageMetadata.m; path = Firebase/Storage/FIRStorageMetadata.m; sourceTree = ""; }; + 32E25AE318409C462D3998BA78217F33 /* FIRAuthRequestConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthRequestConfiguration.m; path = Firebase/Auth/Source/RPCs/FIRAuthRequestConfiguration.m; sourceTree = ""; }; + 33214F1F4DA44B638AA80FAE3BE29C5D /* pb.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb.h; sourceTree = ""; }; + 33625CC55436AE37384BEBE71AB382C6 /* FIRGoogleAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGoogleAuthProvider.h; path = Firebase/Auth/Source/Public/FIRGoogleAuthProvider.h; sourceTree = ""; }; + 3388A8ECBE18C6D60BDCBC8DD4778B82 /* FTree.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTree.h; path = Firebase/Database/Core/Utilities/FTree.h; sourceTree = ""; }; + 33AA60A06DD7330A8B77921400C8EA04 /* IQUIView+IQKeyboardToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+IQKeyboardToolbar.swift"; path = "IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift"; sourceTree = ""; }; + 33FEB75D690009060D5BAB923911FC23 /* FIRFacebookAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRFacebookAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/Facebook/FIRFacebookAuthCredential.m; sourceTree = ""; }; + 3441B69B80402FAE56CC66F80EA5A116 /* FValueEventRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FValueEventRegistration.m; path = Firebase/Database/Core/View/FValueEventRegistration.m; sourceTree = ""; }; + 34DF897C6F43B5BE14D0733E5D5FDA3C /* FIREmailLinkSignInRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIREmailLinkSignInRequest.h; path = Firebase/Auth/Source/RPCs/FIREmailLinkSignInRequest.h; sourceTree = ""; }; + 352E50E46F62044940F82B5D1833912C /* arena.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = arena.h; path = util/arena.h; sourceTree = ""; }; + 35916DFDF2999CBBA62F1EBED562076D /* FSyncPoint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSyncPoint.h; path = Firebase/Database/Core/FSyncPoint.h; sourceTree = ""; }; + 35A985175C33AFA5BAF020A6EFF85A8F /* FirebaseCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FirebaseCore.framework; path = FirebaseCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 35C4FE497200525A4DA6D003040676E1 /* leveldb-library.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "leveldb-library.modulemap"; sourceTree = ""; }; + 35F84283B450204418E9BACAEF4AE056 /* leveldb-library-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "leveldb-library-dummy.m"; sourceTree = ""; }; + 36AA9236DE33439C09428BEDA1D9DA82 /* testutil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = testutil.h; path = util/testutil.h; sourceTree = ""; }; + 36F0817250CA4C739ADDC14260713E07 /* version_set.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = version_set.h; path = db/version_set.h; sourceTree = ""; }; + 37321833A613989B867D0FB0EB0FE47E /* FIREmailAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIREmailAuthProvider.h; path = Firebase/Auth/Source/Public/FIREmailAuthProvider.h; sourceTree = ""; }; + 374EBA59FFFEF55E38E0C8FA2B03D1E1 /* FIRStorageMetadata_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageMetadata_Private.h; path = Firebase/Storage/Private/FIRStorageMetadata_Private.h; sourceTree = ""; }; + 375C6D2C5F15CD0F91DAF6545D5A5CB5 /* FIndexedNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIndexedNode.h; path = Firebase/Database/Snapshot/FIndexedNode.h; sourceTree = ""; }; + 3772804F1FA6AF249CC62E54269A76D5 /* FMaxNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMaxNode.m; path = Firebase/Database/FMaxNode.m; sourceTree = ""; }; + 37AD682CFE799B95D1717B1A3CA260C0 /* FNextPushId.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FNextPushId.m; path = Firebase/Database/Utilities/FNextPushId.m; sourceTree = ""; }; + 37B7978800D6C3FA88CA5440E68527E2 /* FTupleNodePath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleNodePath.m; path = Firebase/Database/Utilities/Tuples/FTupleNodePath.m; sourceTree = ""; }; + 3861EA5293AC5FF3E13A3B8A6AF4F77A /* iterator_wrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = iterator_wrapper.h; path = table/iterator_wrapper.h; sourceTree = ""; }; + 39BBD0983A1DBD4FB00B5F9144069297 /* FIRInstanceIDKeyPairUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDKeyPairUtilities.h; path = Firebase/InstanceID/FIRInstanceIDKeyPairUtilities.h; sourceTree = ""; }; + 39C5A86733E4054199488A1D81FAD0C2 /* FIRDependency.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDependency.h; path = Firebase/Core/Private/FIRDependency.h; sourceTree = ""; }; + 3A43DA4AA1E458D1D9E3BF081A20D3DF /* FIRTwitterAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRTwitterAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthCredential.m; sourceTree = ""; }; + 3AC03FB70AE0CEB16BC437A90DB78F78 /* FIRVerifyPasswordRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyPasswordRequest.h; path = Firebase/Auth/Source/RPCs/FIRVerifyPasswordRequest.h; sourceTree = ""; }; + 3AFB1F29923516C437B3F0D78BDD8F52 /* FIRStorageObservableTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageObservableTask.m; path = Firebase/Storage/FIRStorageObservableTask.m; sourceTree = ""; }; + 3B5557E5C870ACF41DBE53EA8EB0227D /* FIRInstanceID+Private.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "FIRInstanceID+Private.m"; path = "Firebase/InstanceID/FIRInstanceID+Private.m"; sourceTree = ""; }; + 3BE3CEA5FDFA416DCB5559D16C20980B /* FIRStorageReference_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageReference_Private.h; path = Firebase/Storage/Private/FIRStorageReference_Private.h; sourceTree = ""; }; + 3C0B24901819C76E6D49E0861593CB82 /* FIRGitHubAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGitHubAuthProvider.h; path = Firebase/Auth/Source/Public/FIRGitHubAuthProvider.h; sourceTree = ""; }; + 3C38EA188697648DDCAD3F7D0B1A9EFA /* FIRAuthAPNSTokenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthAPNSTokenManager.h; path = Firebase/Auth/Source/FIRAuthAPNSTokenManager.h; sourceTree = ""; }; + 3C4FFE102D0F9736DFDB6573634B9DFD /* FIRGitHubAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGitHubAuthCredential.h; path = Firebase/Auth/Source/AuthProviders/GitHub/FIRGitHubAuthCredential.h; sourceTree = ""; }; + 3CB2A53BE8E164DD96E59DCFE4214B7C /* FValidation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FValidation.h; path = Firebase/Database/Utilities/FValidation.h; sourceTree = ""; }; + 3D053796A6B75F79480D4BDCD0A8B7FD /* logging.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = logging.cc; path = util/logging.cc; sourceTree = ""; }; + 3D44D8B2FB2A3B1EC087C0797BBEEEF0 /* FAuthTokenProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FAuthTokenProvider.m; path = Firebase/Database/Login/FAuthTokenProvider.m; sourceTree = ""; }; + 3D9B3CA4A2D4CC9C8CA34C4489F4619F /* GTMSessionFetcher-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "GTMSessionFetcher-Info.plist"; sourceTree = ""; }; + 3DA8D3A2E0B8F1BB1317F93EC4E25590 /* FIRUserInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRUserInfo.h; path = Firebase/Auth/Source/Public/FIRUserInfo.h; sourceTree = ""; }; + 3DB331FA4E962A0C8DB9FD5C188B5E5C /* FIRStorageComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageComponent.m; path = Firebase/Storage/FIRStorageComponent.m; sourceTree = ""; }; + 3E55EF8FC00B14961A33E933EA72E0ED /* write_batch_internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = write_batch_internal.h; path = db/write_batch_internal.h; sourceTree = ""; }; + 3E7F4ABE5F7FA5482CA4C3F9813DC2AF /* FIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIndex.h; path = Firebase/Database/FIndex.h; sourceTree = ""; }; 3EAD07CC0F86D45EA5E1C31331F5464E /* Pods-FoodApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-FoodApp-dummy.m"; sourceTree = ""; }; - 3F5F6E90A8F01BBC2575E3EAE8717E9F /* FConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FConstants.m; path = Firebase/Database/Constants/FConstants.m; sourceTree = ""; }; - 408B57C4FBE836D1115451629D897551 /* FIRAdditionalUserInfo_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAdditionalUserInfo_Internal.h; path = Firebase/Auth/Source/FIRAdditionalUserInfo_Internal.h; sourceTree = ""; }; - 40B2D677633CA1CC059A449C8537E719 /* FIRDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDatabase.m; path = Firebase/Database/Api/FIRDatabase.m; sourceTree = ""; }; - 411AA7A9D2C16F6306E6F2DE64AECF82 /* FIRDependency.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDependency.m; path = Firebase/Core/FIRDependency.m; sourceTree = ""; }; - 41260A8CFC476497E72E2C7591DD7574 /* FIRAuthSettings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthSettings.h; path = Firebase/Auth/Source/Public/FIRAuthSettings.h; sourceTree = ""; }; - 41280C219F02FF010042A3D4E80FB7A7 /* FListenComplete.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FListenComplete.m; path = Firebase/Database/FListenComplete.m; sourceTree = ""; }; - 4190DD03B831235A771E7B0942BDC4A9 /* FChildEventRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FChildEventRegistration.m; path = Firebase/Database/Core/View/FChildEventRegistration.m; sourceTree = ""; }; - 41EA7F628F3DFFF3DFE6ED909553FA9B /* FQuerySpec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FQuerySpec.m; path = Firebase/Database/Core/FQuerySpec.m; sourceTree = ""; }; - 41FDFA540103BFE5E19F3494B8505A5E /* FIRPhoneAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRPhoneAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/Phone/FIRPhoneAuthProvider.m; sourceTree = ""; }; - 42314F67CFAC6EF9F955C8F723D3E712 /* block_builder.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = block_builder.cc; path = table/block_builder.cc; sourceTree = ""; }; - 425CE85B61E218C1B00C1F2A73950267 /* FPriorityIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPriorityIndex.m; path = Firebase/Database/FPriorityIndex.m; sourceTree = ""; }; - 429628FD6B8399FA948693B4465FD784 /* format.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = format.cc; path = table/format.cc; sourceTree = ""; }; - 42DC25056D82FC2CEB7DFF1043825F2D /* FRepoManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FRepoManager.m; path = Firebase/Database/Core/FRepoManager.m; sourceTree = ""; }; - 42E5F1A69506D7FBD0ECEF6CD913754A /* FIRVerifyClientResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyClientResponse.h; path = Firebase/Auth/Source/RPCs/FIRVerifyClientResponse.h; sourceTree = ""; }; - 432F187F2407D612AC1926BF93610DA8 /* FIRAuthAppDelegateProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthAppDelegateProxy.h; path = Firebase/Auth/Source/FIRAuthAppDelegateProxy.h; sourceTree = ""; }; - 43AD22E2ABA404BF3030B40E400B73B9 /* FIRAuthAppCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthAppCredential.h; path = Firebase/Auth/Source/FIRAuthAppCredential.h; sourceTree = ""; }; - 43E45774CEC57DBA12AE40E4D8F0732B /* FIREmailLinkSignInRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIREmailLinkSignInRequest.m; path = Firebase/Auth/Source/RPCs/FIREmailLinkSignInRequest.m; sourceTree = ""; }; - 44642310C71BE744EFABF79233BDEEF4 /* FirebaseStorage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FirebaseStorage-Info.plist"; sourceTree = ""; }; - 44719405C7DFBE23EB3ECDC1C76220FD /* FEventGenerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FEventGenerator.h; path = Firebase/Database/FEventGenerator.h; sourceTree = ""; }; - 447375EC439FFD1C02EE932FF30E45A5 /* FIRStorageDownloadTask_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageDownloadTask_Private.h; path = Firebase/Storage/Private/FIRStorageDownloadTask_Private.h; sourceTree = ""; }; - 450515881F12A8F340FAD4F2DDC44A1A /* FParsedUrl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FParsedUrl.h; path = Firebase/Database/Utilities/FParsedUrl.h; sourceTree = ""; }; - 4528E911482F02D6B167BC48739318F9 /* posix_logger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = posix_logger.h; path = util/posix_logger.h; sourceTree = ""; }; - 45E4B33BAE7133D11EC5E322CC8328A2 /* FIRAppAssociationRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAppAssociationRegistration.m; path = Firebase/Core/FIRAppAssociationRegistration.m; sourceTree = ""; }; - 45F91AC059C798A250085195C66B4487 /* FIRInstanceIDTokenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDTokenManager.h; path = Firebase/InstanceID/FIRInstanceIDTokenManager.h; sourceTree = ""; }; - 4602C49799BE4C15D8BF3C6630FFED3D /* cache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cache.h; path = include/leveldb/cache.h; sourceTree = ""; }; - 46A9486FDCBE1B6436670D6A8F1FC334 /* GULUserDefaults.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULUserDefaults.h; path = GoogleUtilities/UserDefaults/Private/GULUserDefaults.h; sourceTree = ""; }; - 46EDC7422DA801CADCFA21A3BF40F83C /* FTransformedEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTransformedEnumerator.h; path = Firebase/Database/FTransformedEnumerator.h; sourceTree = ""; }; - 4701099F524983436C814A2D89FF313B /* FIRSendVerificationCodeRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSendVerificationCodeRequest.h; path = Firebase/Auth/Source/RPCs/FIRSendVerificationCodeRequest.h; sourceTree = ""; }; - 4707F4492884C6E647168825F246A3AE /* GTMSessionFetcher-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GTMSessionFetcher-dummy.m"; sourceTree = ""; }; - 4723713D6AF8203263B7E0374AF2ACC0 /* FIRConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRConfiguration.m; path = Firebase/Core/FIRConfiguration.m; sourceTree = ""; }; - 4788688CF0CE231B1EE91CA4C66DE9C7 /* builder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = builder.h; path = db/builder.h; sourceTree = ""; }; - 4809A8AEB207BE09094C80E724B4C420 /* FIREmailLinkSignInRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIREmailLinkSignInRequest.h; path = Firebase/Auth/Source/RPCs/FIREmailLinkSignInRequest.h; sourceTree = ""; }; - 480D871CC0C4F4014529D55C3F0898FF /* FIRLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRLogger.m; path = Firebase/Core/FIRLogger.m; sourceTree = ""; }; - 485581E6831BD56380F402F7F9A31EBE /* FIRVerifyAssertionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyAssertionResponse.h; path = Firebase/Auth/Source/RPCs/FIRVerifyAssertionResponse.h; sourceTree = ""; }; + 3F1EA5C48171AD0BF7C46569E46D5537 /* FTupleFirebase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleFirebase.m; path = Firebase/Database/Utilities/Tuples/FTupleFirebase.m; sourceTree = ""; }; + 3F3AC56D0FBE4AEEBAD138303F62A2B4 /* FIRInstanceIDAPNSInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDAPNSInfo.m; path = Firebase/InstanceID/FIRInstanceIDAPNSInfo.m; sourceTree = ""; }; + 3FDEF153A443682E8AE6AEB5479A0D80 /* FTreeSortedDictionaryEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTreeSortedDictionaryEnumerator.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FTreeSortedDictionaryEnumerator.m; sourceTree = ""; }; + 3FE698851F510549DA735390CC6DA51E /* FIRDatabaseConfig_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseConfig_Private.h; path = Firebase/Database/FIRDatabaseConfig_Private.h; sourceTree = ""; }; + 3FF0B69E45BDD02B00B0DBD9EB900400 /* GTMSessionUploadFetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionUploadFetcher.h; path = Source/GTMSessionUploadFetcher.h; sourceTree = ""; }; + 403E42D5E84D5016B81A4794712DBBD6 /* GoogleAppMeasurement.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GoogleAppMeasurement.xcconfig; sourceTree = ""; }; + 407203A460D055244FCF73DBA8F2F993 /* FTupleNodePath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleNodePath.h; path = Firebase/Database/Utilities/Tuples/FTupleNodePath.h; sourceTree = ""; }; + 40766C67BF78A5AA66F18FEFC606B5B2 /* FirebaseDatabase-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FirebaseDatabase-umbrella.h"; sourceTree = ""; }; + 4076BB7D0F9F0414BD108414B94543E5 /* FTupleTSN.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleTSN.h; path = Firebase/Database/Utilities/Tuples/FTupleTSN.h; sourceTree = ""; }; + 40D87EC8F90E5F4FB41876D217CD20BB /* write_batch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = write_batch.h; path = include/leveldb/write_batch.h; sourceTree = ""; }; + 40E7B19F959409CD03E969E121E2ACFA /* FTupleObjects.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleObjects.h; path = Firebase/Database/Utilities/Tuples/FTupleObjects.h; sourceTree = ""; }; + 418E6F462BE573466EE6BD751080D984 /* FIRAuthDataResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthDataResult.m; path = Firebase/Auth/Source/FIRAuthDataResult.m; sourceTree = ""; }; + 41E6BC65E9A612FAA83EAA8D81B6EFC9 /* FIRInstanceIDStore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDStore.h; path = Firebase/InstanceID/FIRInstanceIDStore.h; sourceTree = ""; }; + 4248B7CE285E77B66D3491FD82A8ED05 /* FIRAuthUIDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthUIDelegate.h; path = Firebase/Auth/Source/Public/FIRAuthUIDelegate.h; sourceTree = ""; }; + 427D710FA7409AFF82CF5DE93DBD71DC /* FLLRBEmptyNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLLRBEmptyNode.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FLLRBEmptyNode.m; sourceTree = ""; }; + 42C3BB1A938F2D0BF196B14A31C04CC5 /* FNodeFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FNodeFilter.h; path = Firebase/Database/Core/View/Filter/FNodeFilter.h; sourceTree = ""; }; + 4312FC140BBD80D7EC3B1E55365BF563 /* GULUserDefaults.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULUserDefaults.h; path = GoogleUtilities/UserDefaults/Private/GULUserDefaults.h; sourceTree = ""; }; + 43135CF1497A4CE4737DBEBA574E8082 /* FIRAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthCredential.h; path = Firebase/Auth/Source/Public/FIRAuthCredential.h; sourceTree = ""; }; + 4332EB117A4AC20C899513AD5E08B7BE /* FEventGenerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FEventGenerator.h; path = Firebase/Database/FEventGenerator.h; sourceTree = ""; }; + 43D517798B32A7D72D6E101888AE00BB /* IQKeyboardManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManager.swift; path = IQKeyboardManagerSwift/IQKeyboardManager.swift; sourceTree = ""; }; + 43F044C323CCBA3DE722E72D00D40557 /* FIRInstanceIDCheckinPreferences+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FIRInstanceIDCheckinPreferences+Internal.h"; path = "Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h"; sourceTree = ""; }; + 4422C86ABED5E9028BBF41FEEF8ADA21 /* GULNSData+zlib.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "GULNSData+zlib.m"; path = "GoogleUtilities/NSData+zlib/GULNSData+zlib.m"; sourceTree = ""; }; + 449061F436F2D0017B2604418A306C95 /* FStringUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FStringUtilities.h; path = Firebase/Database/Utilities/FStringUtilities.h; sourceTree = ""; }; + 44CA81B70969DA8F10AC134D5BE2A7E2 /* FIRInstanceIDLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDLogger.m; path = Firebase/InstanceID/FIRInstanceIDLogger.m; sourceTree = ""; }; + 459720E15C2151D3F6944086CA0661A2 /* GTMSessionFetcherService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionFetcherService.h; path = Source/GTMSessionFetcherService.h; sourceTree = ""; }; + 45BDF1C04F63A58C17F7D8C1CDFC1EEB /* table.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = table.h; path = include/leveldb/table.h; sourceTree = ""; }; + 465D39E042CCA7696BF7C7C669FE3923 /* FIRInstanceID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceID.m; path = Firebase/InstanceID/FIRInstanceID.m; sourceTree = ""; }; + 46BE07306D95530B3F7C1F40FED30A2F /* FIRDeleteAccountResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDeleteAccountResponse.m; path = Firebase/Auth/Source/RPCs/FIRDeleteAccountResponse.m; sourceTree = ""; }; + 471E59A6C01312C6BD0C63AEE62AEC31 /* IQInvocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQInvocation.swift; path = IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift; sourceTree = ""; }; + 487E4862DD094741105A4E2F97903F47 /* FEmptyNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FEmptyNode.m; path = Firebase/Database/Snapshot/FEmptyNode.m; sourceTree = ""; }; + 48A10C37A4C965A474AB90D4EBA1EF95 /* Pods_FoodApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_FoodApp.framework; path = "Pods-FoodApp.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 48B4125E3CF9C5BACE37D4E4C0444191 /* Pods-FoodApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-FoodApp-acknowledgements.markdown"; sourceTree = ""; }; - 49714AB0D4D0D3E3315FBED9D2F0572C /* FIRAuthAppDelegateProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthAppDelegateProxy.m; path = Firebase/Auth/Source/FIRAuthAppDelegateProxy.m; sourceTree = ""; }; - 49A8D167120F9DD74D4FEAF80685DCCB /* FViewProcessorResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FViewProcessorResult.h; path = Firebase/Database/FViewProcessorResult.h; sourceTree = ""; }; - 49F77B40E347C0DC006248A2A7FD9494 /* memtable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = memtable.h; path = db/memtable.h; sourceTree = ""; }; - 4A60C7A67F33111D198AB8CFA8BBA42A /* FIRAuthWebUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthWebUtils.m; path = Firebase/Auth/Source/FIRAuthWebUtils.m; sourceTree = ""; }; - 4A68861BDAC9F79D60A1182C8026F41E /* FIRUser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRUser.m; path = Firebase/Auth/Source/FIRUser.m; sourceTree = ""; }; - 4AB20970F0D4CB43ECEF65054340B45F /* FTreeNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTreeNode.h; path = Firebase/Database/Core/Utilities/FTreeNode.h; sourceTree = ""; }; - 4AE78FCFA6B344FCF551625CD626300C /* FIRInstanceID+Testing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FIRInstanceID+Testing.h"; path = "Firebase/InstanceID/FIRInstanceID+Testing.h"; sourceTree = ""; }; - 4B4D490C9D859736793136D2F6C343D0 /* FirebaseCore-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FirebaseCore-umbrella.h"; sourceTree = ""; }; - 4B8D4E6514FF098D7A1B55FF7A87D11C /* FViewProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FViewProcessor.m; path = Firebase/Database/FViewProcessor.m; sourceTree = ""; }; - 4B915379438A5F7A876EAAC4B1D1EED9 /* FAuthTokenProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FAuthTokenProvider.h; path = Firebase/Database/Login/FAuthTokenProvider.h; sourceTree = ""; }; - 4BD90375FF9D3C69DB1CFC3C9AF0CD1F /* FIRDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabase.h; path = Firebase/Database/Public/FIRDatabase.h; sourceTree = ""; }; - 4C49E36A0B879CF5408B740217074768 /* FIRAuthURLPresenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthURLPresenter.m; path = Firebase/Auth/Source/FIRAuthURLPresenter.m; sourceTree = ""; }; - 4C8459EA56588BB32331D44B5AE28367 /* leveldb.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = leveldb.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4CC19884644323226FC5E15D6A5763F9 /* FCachePolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FCachePolicy.h; path = Firebase/Database/Persistence/FCachePolicy.h; sourceTree = ""; }; - 4D48AABB8FEF082D05C830512316011C /* FIRUserMetadata_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRUserMetadata_Internal.h; path = Firebase/Auth/Source/FIRUserMetadata_Internal.h; sourceTree = ""; }; - 4D48EBC30356F0473F93B304E8310755 /* FirebaseInstanceID.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FirebaseInstanceID.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4D7A1725B0A364A94929B294DFCC75F5 /* FSparseSnapshotTree.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSparseSnapshotTree.h; path = Firebase/Database/Core/FSparseSnapshotTree.h; sourceTree = ""; }; - 4D9F86C5BD87528712951A0BC2123308 /* FIRTwitterAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRTwitterAuthProvider.h; path = Firebase/Auth/Source/Public/FIRTwitterAuthProvider.h; sourceTree = ""; }; - 4DD187255D95DBB6078A19520067AF79 /* FIRAuthBackend.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthBackend.m; path = Firebase/Auth/Source/RPCs/FIRAuthBackend.m; sourceTree = ""; }; - 4E3628BD922E252A7EE129FE06583EA4 /* table_cache.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = table_cache.cc; path = db/table_cache.cc; sourceTree = ""; }; - 4EA54BE66D07A4A6F0A572AF6F7A346B /* db.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = db.h; path = include/leveldb/db.h; sourceTree = ""; }; - 4F3342FB4C76308019B0A30E86DC68DF /* FIROptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIROptions.h; path = Firebase/Core/Public/FIROptions.h; sourceTree = ""; }; - 4F6B8C1361135C8BC75D55ADB886B1E5 /* FIRInstanceID+Private.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "FIRInstanceID+Private.m"; path = "Firebase/InstanceID/FIRInstanceID+Private.m"; sourceTree = ""; }; - 4F6D22246A3755841E95B3F86FA4BC10 /* FMerge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMerge.h; path = Firebase/Database/Core/Operation/FMerge.h; sourceTree = ""; }; - 4FBC67076469FA78E9BBD64611124BB8 /* FirebaseCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FirebaseCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4FD36DAE25C947AEB33FE14F2AE3BD1B /* FIRStorageConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageConstants.m; path = Firebase/Storage/FIRStorageConstants.m; sourceTree = ""; }; - 4FEDEF37B6160C383E6EFA3276C17B1F /* FIRIMessageCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRIMessageCode.h; path = Firebase/InstanceID/FIRIMessageCode.h; sourceTree = ""; }; - 506B8F8286ACF1729D434744A1BB8F6A /* GoogleAppMeasurement.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GoogleAppMeasurement.xcconfig; sourceTree = ""; }; - 518F093F87A904606DD082315D7C8944 /* FIRCreateAuthURIRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRCreateAuthURIRequest.m; path = Firebase/Auth/Source/RPCs/FIRCreateAuthURIRequest.m; sourceTree = ""; }; - 51A7C19964FC578A1A16EC75F215AA1B /* FIRAuthCredential_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthCredential_Internal.h; path = Firebase/Auth/Source/FIRAuthCredential_Internal.h; sourceTree = ""; }; - 51D231171F02FC16507F09EFB5FCB56D /* FIRAuthExceptionUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthExceptionUtils.m; path = Firebase/Auth/Source/FIRAuthExceptionUtils.m; sourceTree = ""; }; - 51D721E2807B140674490E49C6616E89 /* FIRAnalyticsConnector.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FIRAnalyticsConnector.framework; path = Frameworks/FIRAnalyticsConnector.framework; sourceTree = ""; }; - 51FC95B42B5C8AC75A566E4F9C74B31F /* FSyncTree.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSyncTree.h; path = Firebase/Database/Core/FSyncTree.h; sourceTree = ""; }; - 520AFCF6FA37EDA97367B3823779931B /* FIRSendVerificationCodeRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSendVerificationCodeRequest.m; path = Firebase/Auth/Source/RPCs/FIRSendVerificationCodeRequest.m; sourceTree = ""; }; - 520D12CE359999C3A4F9D3482128F3C4 /* FAtomicNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FAtomicNumber.h; path = Firebase/Database/Utilities/FAtomicNumber.h; sourceTree = ""; }; - 521D986356B47C8F71AC1D9BB3AD3A59 /* comparator.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = comparator.cc; path = util/comparator.cc; sourceTree = ""; }; - 5269EE3A9C9A0B4E3B5606933F044539 /* FIRUserMetadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRUserMetadata.h; path = Firebase/Auth/Source/Public/FIRUserMetadata.h; sourceTree = ""; }; - 52C447F13BA945C4EA2248E1BB28401B /* FirebaseInstanceID.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FirebaseInstanceID.modulemap; sourceTree = ""; }; - 52C6659BBA4179DA63448DEB09831D84 /* SkyFloatingLabelTextField-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SkyFloatingLabelTextField-umbrella.h"; sourceTree = ""; }; - 52D96C7DBB90DCF092EB949DB6C6EB24 /* FIRAuthNotificationManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthNotificationManager.m; path = Firebase/Auth/Source/FIRAuthNotificationManager.m; sourceTree = ""; }; - 532FFA75FEA4279D1F9DB74543C73470 /* FIRInstanceIDVersionUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDVersionUtilities.h; path = Firebase/InstanceID/FIRInstanceIDVersionUtilities.h; sourceTree = ""; }; - 53A54C43E5F55D332BA9E044A76A3481 /* FIRApp.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRApp.m; path = Firebase/Core/FIRApp.m; sourceTree = ""; }; - 5400DC6019076EB9F1A792870A10C3E9 /* GULAppEnvironmentUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULAppEnvironmentUtil.h; path = GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.h; sourceTree = ""; }; - 5426627213EB16EC17B75434562D58BF /* FChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FChange.m; path = Firebase/Database/Core/View/FChange.m; sourceTree = ""; }; - 548A75EF775F946A24E5BCE27D4A9406 /* FIRAuthRequestConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthRequestConfiguration.h; path = Firebase/Auth/Source/RPCs/FIRAuthRequestConfiguration.h; sourceTree = ""; }; - 54AF748D8D2E4CDFDE63B41270B35A99 /* dumpfile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dumpfile.h; path = include/leveldb/dumpfile.h; sourceTree = ""; }; - 54F584061427E2CC1975FEBA7EB7957A /* FIRGetAccountInfoResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGetAccountInfoResponse.h; path = Firebase/Auth/Source/RPCs/FIRGetAccountInfoResponse.h; sourceTree = ""; }; - 5525DBB94ECC5FDC2AE2D157D9CF6368 /* FStorageEngine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FStorageEngine.h; path = Firebase/Database/Persistence/FStorageEngine.h; sourceTree = ""; }; - 552CA76DD960E7EF0D64D3FED5113F04 /* log_reader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = log_reader.h; path = db/log_reader.h; sourceTree = ""; }; - 559E04D19C518EDB9FC95ECC98B51CCB /* FViewProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FViewProcessor.h; path = Firebase/Database/FViewProcessor.h; sourceTree = ""; }; - 5606BB1DF8ED99A820BBF2855E6370DA /* FIRStorageTaskSnapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageTaskSnapshot.m; path = Firebase/Storage/FIRStorageTaskSnapshot.m; sourceTree = ""; }; - 56DA05C7BD2C764386BEBC47C0158012 /* FIRGoogleAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGoogleAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/Google/FIRGoogleAuthProvider.m; sourceTree = ""; }; - 5710715A6AACECF57B21EFC971B59C87 /* testharness.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = testharness.h; path = util/testharness.h; sourceTree = ""; }; - 5746A9E7F46321E2902DFD0DB8D84DFE /* FIRErrorCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRErrorCode.h; path = Firebase/Core/Private/FIRErrorCode.h; sourceTree = ""; }; - 578359019DFA7CCA5CDD6ED42E63F030 /* FTupleObjectNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleObjectNode.m; path = Firebase/Database/Utilities/Tuples/FTupleObjectNode.m; sourceTree = ""; }; - 582D206D216C3F6AF9D42F4F9E5B38C4 /* FIRDataEventType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDataEventType.h; path = Firebase/Database/Public/FIRDataEventType.h; sourceTree = ""; }; - 583562A98462CC5B8EE78FEA8B4CAC9A /* FIRAuthUIDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthUIDelegate.h; path = Firebase/Auth/Source/Public/FIRAuthUIDelegate.h; sourceTree = ""; }; - 5900BBB74A1C8A89D84404007A6B840F /* FTupleTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleTransaction.h; path = Firebase/Database/Utilities/Tuples/FTupleTransaction.h; sourceTree = ""; }; - 593CF585643ACF0679D49828717B90FF /* FIRAuthInterop.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthInterop.h; path = Interop/Auth/Public/FIRAuthInterop.h; sourceTree = ""; }; - 59578A022F1ACB09E967133D7EBE14F3 /* FIRLoggerLevel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRLoggerLevel.h; path = Firebase/Core/Public/FIRLoggerLevel.h; sourceTree = ""; }; - 59828102FCF314A76AF38010D8F92B98 /* FIRVerifyPasswordResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyPasswordResponse.h; path = Firebase/Auth/Source/RPCs/FIRVerifyPasswordResponse.h; sourceTree = ""; }; - 59EE4BB679FF846595EC77716FFDD84B /* GULLoggerLevel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULLoggerLevel.h; path = GoogleUtilities/Logger/Public/GULLoggerLevel.h; sourceTree = ""; }; - 5A3860B900C0EC65DE3F087539EED8D8 /* FIRInstanceIDTokenDeleteOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDTokenDeleteOperation.h; path = Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.h; sourceTree = ""; }; - 5A4280A8DC60CB88F1289DD8735B6600 /* FTupleSetIdPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleSetIdPath.m; path = Firebase/Database/Utilities/Tuples/FTupleSetIdPath.m; sourceTree = ""; }; - 5A5AE083E53318DEDFC4D6BC01E6F6DB /* FIRUserInfoImpl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRUserInfoImpl.m; path = Firebase/Auth/Source/FIRUserInfoImpl.m; sourceTree = ""; }; - 5A93033CA3699FE5432292AEB83EC6F2 /* FirebaseInstanceID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FirebaseInstanceID.h; path = Firebase/InstanceID/Public/FirebaseInstanceID.h; sourceTree = ""; }; - 5AC1B137356697C28275A94586C5C739 /* NSError+FIRInstanceID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSError+FIRInstanceID.m"; path = "Firebase/InstanceID/NSError+FIRInstanceID.m"; sourceTree = ""; }; - 5AE27390794964B754321C4715002D22 /* FIRInstanceIDURLQueryItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDURLQueryItem.m; path = Firebase/InstanceID/FIRInstanceIDURLQueryItem.m; sourceTree = ""; }; - 5BC83294537299214B742BD92C67BCC2 /* FIRRetryHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRRetryHelper.m; path = Firebase/Database/Core/Utilities/FIRRetryHelper.m; sourceTree = ""; }; - 5BDC53FFF5CFDC7C851D99A9B5CA0196 /* pb_decode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb_decode.h; sourceTree = ""; }; - 5C703EAFCA972CD73B821E43C32DD817 /* GULNetworkConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULNetworkConstants.m; path = GoogleUtilities/Network/GULNetworkConstants.m; sourceTree = ""; }; - 5C736C58C8011A9AB7EA574C4AAB4C81 /* pb_common.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; path = pb_common.c; sourceTree = ""; }; - 5CD65B02663A9861D485885C274F1190 /* GULMutableDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULMutableDictionary.m; path = GoogleUtilities/Network/GULMutableDictionary.m; sourceTree = ""; }; - 5CD9500EEEAAF5A6CF95BB131645F8A2 /* FIRInstanceID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceID.h; path = Firebase/InstanceID/Public/FIRInstanceID.h; sourceTree = ""; }; - 5D1F57DF35FA7430AA6DB574F4DF43C8 /* FServerValues.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FServerValues.m; path = Firebase/Database/Core/FServerValues.m; sourceTree = ""; }; - 5D59EF2626A3624BBF5FE22C9A123190 /* pb_encode.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; path = pb_encode.c; sourceTree = ""; }; - 5E3DE5DD649A16A93414B653A446BEC0 /* FIRAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthCredential.m; path = Firebase/Auth/Source/FIRAuthCredential.m; sourceTree = ""; }; - 5E43181967F5EB964226B6C853F54CA4 /* FRepoInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FRepoInfo.h; path = Firebase/Database/Core/FRepoInfo.h; sourceTree = ""; }; - 5E9FB6D0E0954573517B262A7F9405DF /* FIRStorageObservableTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageObservableTask.h; path = Firebase/Storage/Public/FIRStorageObservableTask.h; sourceTree = ""; }; - 5ED1D1C6BFA726B230EA8B43BCC1F4D8 /* FIRVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVersion.h; path = Firebase/Core/Private/FIRVersion.h; sourceTree = ""; }; - 5F4CB2132F61F96177159822288A0915 /* FViewCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FViewCache.m; path = Firebase/Database/Core/View/FViewCache.m; sourceTree = ""; }; - 5F6362CD3C9A5D9161025540A9520C9C /* FListenComplete.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FListenComplete.h; path = Firebase/Database/FListenComplete.h; sourceTree = ""; }; - 5F6C8EF2760B57057D700D7CE80BB917 /* FCacheNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FCacheNode.h; path = Firebase/Database/Core/View/FCacheNode.h; sourceTree = ""; }; - 5F73492D8DEF538338512FC4677D9392 /* FTrackedQueryManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTrackedQueryManager.h; path = Firebase/Database/Persistence/FTrackedQueryManager.h; sourceTree = ""; }; - 5F9C8B151D3C58EF77FDA9C22A71882C /* FIRInstanceIDCheckinStore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDCheckinStore.m; path = Firebase/InstanceID/FIRInstanceIDCheckinStore.m; sourceTree = ""; }; - 5FAB01774BC009DAF2FBA8BA94DAC6C8 /* FIRSendVerificationCodeResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSendVerificationCodeResponse.m; path = Firebase/Auth/Source/RPCs/FIRSendVerificationCodeResponse.m; sourceTree = ""; }; - 5FB4F6E35F781A7CECE37DAC099AAAEC /* FIRPhoneAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRPhoneAuthCredential.h; path = Firebase/Auth/Source/Public/FIRPhoneAuthCredential.h; sourceTree = ""; }; - 601459BB1E7BFDCFC46DD32F061D4423 /* SkyFloatingLabelTextField-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SkyFloatingLabelTextField-dummy.m"; sourceTree = ""; }; - 602F188119657936FF891D0242F97DDB /* FTupleRemovedQueriesEvents.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleRemovedQueriesEvents.m; path = Firebase/Database/Utilities/Tuples/FTupleRemovedQueriesEvents.m; sourceTree = ""; }; - 603FF7B49814B47F4C39CAD8BE66ADBC /* nanopb.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = nanopb.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 60582E02AEB667F45A3E146E5002B446 /* FValidation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FValidation.m; path = Firebase/Database/Utilities/FValidation.m; sourceTree = ""; }; - 609B646BA7CDA0E3B7C5F79AB0C843CF /* FIRAuthWebViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthWebViewController.m; path = Firebase/Auth/Source/FIRAuthWebViewController.m; sourceTree = ""; }; - 60D6FD692E41EEDD74AB50D0E342B115 /* FIRUserMetadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRUserMetadata.m; path = Firebase/Auth/Source/FIRUserMetadata.m; sourceTree = ""; }; - 60EA4D965DE2D2E6E7599C16DEC13151 /* FIRGameCenterAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGameCenterAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/GameCenter/FIRGameCenterAuthProvider.m; sourceTree = ""; }; - 612331A3D66CE332745ECAF349B3B3C0 /* FClock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FClock.h; path = Firebase/Database/FClock.h; sourceTree = ""; }; - 620EF42980B95CE6CF84DC8C3AB73351 /* FIRAuthAPNSTokenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthAPNSTokenManager.h; path = Firebase/Auth/Source/FIRAuthAPNSTokenManager.h; sourceTree = ""; }; - 628681DC6DCF623E2C4F5C597451DAC9 /* cache.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = cache.cc; path = util/cache.cc; sourceTree = ""; }; - 628E2099C62D25FD31A1D06C75984156 /* table.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = table.cc; path = table/table.cc; sourceTree = ""; }; - 630C4AB279CEFE189C12CF2DC9053B01 /* FIRMutableData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRMutableData.h; path = Firebase/Database/Public/FIRMutableData.h; sourceTree = ""; }; - 63378BB17B99EFB9E779233D8E9815A3 /* FWebSocketConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FWebSocketConnection.h; path = Firebase/Database/Realtime/FWebSocketConnection.h; sourceTree = ""; }; - 633D37D69F01FA94799A855FD77A3C72 /* FSyncTree.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSyncTree.m; path = Firebase/Database/Core/FSyncTree.m; sourceTree = ""; }; - 63463ACECA0D0EBFA498CD3B29CDD805 /* FIRVerifyClientRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyClientRequest.h; path = Firebase/Auth/Source/RPCs/FIRVerifyClientRequest.h; sourceTree = ""; }; - 634F97D0C73BF093A37A6EAE872CEA86 /* GULSwizzler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULSwizzler.m; path = GoogleUtilities/MethodSwizzler/GULSwizzler.m; sourceTree = ""; }; - 64153FAC345A1928622517F8AF50D2CD /* FEventEmitter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FEventEmitter.m; path = Firebase/Database/Utilities/FEventEmitter.m; sourceTree = ""; }; - 6464899E1515D6E824797C8D18E61B5E /* Firebase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Firebase.h; path = CoreOnly/Sources/Firebase.h; sourceTree = ""; }; - 64B2AFE614693176E2E7ECA671B56F65 /* FIRAuthUserDefaultsStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthUserDefaultsStorage.m; path = Firebase/Auth/Source/FIRAuthUserDefaultsStorage.m; sourceTree = ""; }; - 6536F41666B4EB96E59EADEB68BF2172 /* FirebaseAuth-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FirebaseAuth-dummy.m"; sourceTree = ""; }; - 65612DBC517D0E3AEBD8511541D35945 /* GULLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULLogger.m; path = GoogleUtilities/Logger/GULLogger.m; sourceTree = ""; }; - 665CD3D48831A201BBF48AC1CDE6808C /* testutil.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = testutil.cc; path = util/testutil.cc; sourceTree = ""; }; - 682AB6A41F4B18BB8F46CE2649BEF462 /* nanopb-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "nanopb-Info.plist"; sourceTree = ""; }; - 69E602119E2C33F5EDC4A2348BB067B1 /* FIRMutableData_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRMutableData_Private.h; path = Firebase/Database/Api/Private/FIRMutableData_Private.h; sourceTree = ""; }; - 69F5D98870B7FDCD04B20E0379BDF3D5 /* FIRInstanceIDCheckinService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDCheckinService.h; path = Firebase/InstanceID/FIRInstanceIDCheckinService.h; sourceTree = ""; }; - 6A40C0F4EAF56F93F636F14AB606B0F8 /* FIRAuthRequestConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthRequestConfiguration.m; path = Firebase/Auth/Source/RPCs/FIRAuthRequestConfiguration.m; sourceTree = ""; }; - 6A68484AC9286A05A28B89736FF14299 /* GTMSessionUploadFetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionUploadFetcher.h; path = Source/GTMSessionUploadFetcher.h; sourceTree = ""; }; - 6A6F7323B4A8CD7354C6E703CDCE8453 /* FIREmailAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIREmailAuthProvider.h; path = Firebase/Auth/Source/Public/FIREmailAuthProvider.h; sourceTree = ""; }; - 6A796118955772D03B72C9D1D9FE04D0 /* FSnapshotUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSnapshotUtilities.h; path = Firebase/Database/Snapshot/FSnapshotUtilities.h; sourceTree = ""; }; - 6A8C6BB1240DB36C318DF918977AA071 /* FIRInstanceIDStringEncoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDStringEncoding.m; path = Firebase/InstanceID/FIRInstanceIDStringEncoding.m; sourceTree = ""; }; - 6AE2B22B7C9383FECC1A6F3AA1398038 /* status.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = status.cc; path = util/status.cc; sourceTree = ""; }; - 6AF4F726A42D8F6333DF2951EE716C39 /* leveldb-library-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "leveldb-library-prefix.pch"; sourceTree = ""; }; - 6B2E3E90F00AD77391A3B96E40754802 /* leveldb-library.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "leveldb-library.modulemap"; sourceTree = ""; }; - 6B54156F39B2ACCF20AC8C43ACB97EE9 /* write_batch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = write_batch.h; path = include/leveldb/write_batch.h; sourceTree = ""; }; - 6BA47EE4A7C428287C63AD7B204841A8 /* FirebaseAuth.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FirebaseAuth.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6BBE207CB27564A845497814D036CB46 /* FIREmailAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIREmailAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/EmailPassword/FIREmailAuthProvider.m; sourceTree = ""; }; - 6C06024BA2EE601FEAD8A46844A8E68D /* FTupleTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleTransaction.m; path = Firebase/Database/Utilities/Tuples/FTupleTransaction.m; sourceTree = ""; }; - 6C4495F0517BC62F190251D71026FB32 /* FIRAuthTokenResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthTokenResult.h; path = Firebase/Auth/Source/Public/FIRAuthTokenResult.h; sourceTree = ""; }; - 6D714A51DDBB8C95DD3A56368F2BFC68 /* FIRInstanceIDKeyPair.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDKeyPair.h; path = Firebase/InstanceID/FIRInstanceIDKeyPair.h; sourceTree = ""; }; - 6DAB34840CFAF0BD1C2D64499BD62AD1 /* FWriteTreeRef.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FWriteTreeRef.h; path = Firebase/Database/Core/FWriteTreeRef.h; sourceTree = ""; }; - 6DC3AF9EECF1CC622A14C93AFD6F6E54 /* FIRDatabaseComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseComponent.h; path = Firebase/Database/Api/FIRDatabaseComponent.h; sourceTree = ""; }; - 6DF894F4C1A239B83FCFB1075389DF9D /* FViewProcessorResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FViewProcessorResult.m; path = Firebase/Database/FViewProcessorResult.m; sourceTree = ""; }; - 6E98048E79C4D70E625E3E706B3537F6 /* FIRTwitterAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRTwitterAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthCredential.m; sourceTree = ""; }; - 6EBFF31A64710B3D9E8C70A502FE6FDC /* FIRInstanceIDTokenStore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDTokenStore.m; path = Firebase/InstanceID/FIRInstanceIDTokenStore.m; sourceTree = ""; }; - 6EDB5D3344BD1CE65FF9829BE4FD2ACA /* FWriteRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FWriteRecord.h; path = Firebase/Database/Core/FWriteRecord.h; sourceTree = ""; }; - 6F7C8CDC6074F1510FD31604D2E8876F /* FIRGoogleAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGoogleAuthCredential.h; path = Firebase/Auth/Source/AuthProviders/Google/FIRGoogleAuthCredential.h; sourceTree = ""; }; - 70B5C9A7763DC577634E155C6D6D6BB9 /* FIRComponentContainer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRComponentContainer.h; path = Firebase/Core/Private/FIRComponentContainer.h; sourceTree = ""; }; - 71861DFA7BB3624BD632AAD00515E87D /* FIRAuthErrorUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthErrorUtils.m; path = Firebase/Auth/Source/FIRAuthErrorUtils.m; sourceTree = ""; }; + 48DB3D798488069759FF4E97A9B32E50 /* FChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FChange.m; path = Firebase/Database/Core/View/FChange.m; sourceTree = ""; }; + 49353B01BF429F933FCD1B1A7A1A39B7 /* FQueryParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FQueryParams.h; path = Firebase/Database/Core/FQueryParams.h; sourceTree = ""; }; + 4952791075A7D97CBEC9BD313152C9D7 /* FirebaseAuth.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseAuth.xcconfig; sourceTree = ""; }; + 496BC0A261A8D8F223E3BEA98308B095 /* FIRInstanceIDKeyPair.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDKeyPair.h; path = Firebase/InstanceID/FIRInstanceIDKeyPair.h; sourceTree = ""; }; + 4981BAA6B92BDB16B2C9437DE6E5E4F8 /* FIRStorageReference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageReference.m; path = Firebase/Storage/FIRStorageReference.m; sourceTree = ""; }; + 49CAE94CA62D827D2CB907579619194A /* FIRVerifyClientResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyClientResponse.h; path = Firebase/Auth/Source/RPCs/FIRVerifyClientResponse.h; sourceTree = ""; }; + 4A353EF5C52837EEC27CF772A65D7ABB /* FTupleBoolBlock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleBoolBlock.h; path = Firebase/Database/Utilities/Tuples/FTupleBoolBlock.h; sourceTree = ""; }; + 4A3D4D1F551F933D84C7D5198A1C0B81 /* FIRServerValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRServerValue.m; path = Firebase/Database/Api/FIRServerValue.m; sourceTree = ""; }; + 4ADEEE081084D1060A001A6345AA03B3 /* FIRInstanceIDTokenOperation+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FIRInstanceIDTokenOperation+Private.h"; path = "Firebase/InstanceID/FIRInstanceIDTokenOperation+Private.h"; sourceTree = ""; }; + 4B0C265792FA6B16225A40566F3D76EF /* SkyFloatingLabelTextField.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SkyFloatingLabelTextField.xcconfig; sourceTree = ""; }; + 4BADB20F20A84CABD204C407921CBDD6 /* FIRVerifyPhoneNumberRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyPhoneNumberRequest.m; path = Firebase/Auth/Source/RPCs/FIRVerifyPhoneNumberRequest.m; sourceTree = ""; }; + 4BB892EC1BF8C5E3D051238A7EBC04AB /* FIRVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVersion.m; path = Firebase/Core/FIRVersion.m; sourceTree = ""; }; + 4C0D162409701E7B951394EDBB923CBE /* atomic_pointer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = atomic_pointer.h; path = port/atomic_pointer.h; sourceTree = ""; }; + 4C0DE29941E9FB4280328365C6FB9909 /* FirebaseAnalytics.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseAnalytics.xcconfig; sourceTree = ""; }; + 4C2C71AD761BA7321A89A6A01BBB41B2 /* NSData+FIRBase64.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+FIRBase64.m"; path = "Firebase/Auth/Source/NSData+FIRBase64.m"; sourceTree = ""; }; + 4C56BB89C4FFDB1C03F4EEA1A6A008B9 /* FIRInstanceIDURLQueryItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDURLQueryItem.m; path = Firebase/InstanceID/FIRInstanceIDURLQueryItem.m; sourceTree = ""; }; + 4C5AF476FC15EE1DF80F873C7DC0A461 /* FIRVerifyAssertionRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyAssertionRequest.m; path = Firebase/Auth/Source/RPCs/FIRVerifyAssertionRequest.m; sourceTree = ""; }; + 4CECD03FFC51C751D990DCAB4240646B /* FEventRaiser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FEventRaiser.h; path = Firebase/Database/Core/View/FEventRaiser.h; sourceTree = ""; }; + 4D576688A921B564504F8D0AED08AE55 /* table_builder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = table_builder.h; path = include/leveldb/table_builder.h; sourceTree = ""; }; + 4D57AD83854F00287F11B61C76F6F029 /* FSRWebSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSRWebSocket.h; path = Firebase/Database/third_party/SocketRocket/FSRWebSocket.h; sourceTree = ""; }; + 4D5A00E1825E7F2C7D102757FF908EE0 /* FirebaseInstanceID.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseInstanceID.xcconfig; sourceTree = ""; }; + 4D6A87C2BC3A1FB99C3ABE3456043027 /* GTMSessionFetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionFetcher.m; path = Source/GTMSessionFetcher.m; sourceTree = ""; }; + 4DA1EFAA37BE3E6CFE8F0034044C627A /* FIRAuth.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuth.h; path = Firebase/Auth/Source/Public/FIRAuth.h; sourceTree = ""; }; + 4DF6CDFBD2BB60EE93A1B7A9A1822070 /* FIRInstanceIDAuthKeyChain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDAuthKeyChain.h; path = Firebase/InstanceID/FIRInstanceIDAuthKeyChain.h; sourceTree = ""; }; + 4EC8C4E195CEDED3251869173DD546DB /* GTMSessionFetcherLogging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionFetcherLogging.h; path = Source/GTMSessionFetcherLogging.h; sourceTree = ""; }; + 4EDB9A2EE37A411045065371CF5DE9BB /* FirebaseAuth.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FirebaseAuth.framework; path = FirebaseAuth.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4F5D30918C77A0FCFEC5B47313EBA1E0 /* FIRUserInfoImpl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRUserInfoImpl.m; path = Firebase/Auth/Source/FIRUserInfoImpl.m; sourceTree = ""; }; + 4F611F92B15753FC043260BC48F7B9D2 /* FTupleFirebase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleFirebase.h; path = Firebase/Database/Utilities/Tuples/FTupleFirebase.h; sourceTree = ""; }; + 4F924A12A2DF19AC35A63824104F6C14 /* FIREmailPasswordAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIREmailPasswordAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/EmailPassword/FIREmailPasswordAuthCredential.m; sourceTree = ""; }; + 4F9AA9FAFC95C32808A9510E0460002C /* FIRDatabaseQuery.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDatabaseQuery.m; path = Firebase/Database/Api/FIRDatabaseQuery.m; sourceTree = ""; }; + 50351158AC71C552458607F6744E5DA8 /* GULReachabilityChecker+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GULReachabilityChecker+Internal.h"; path = "GoogleUtilities/Reachability/GULReachabilityChecker+Internal.h"; sourceTree = ""; }; + 5047AC9DBC101A463A13C78F0174D73D /* FIRStorageErrors.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageErrors.m; path = Firebase/Storage/FIRStorageErrors.m; sourceTree = ""; }; + 51435D5603A25C86CF658A2E7D7A6B96 /* FIROAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIROAuthCredential.h; path = Firebase/Auth/Source/Public/FIROAuthCredential.h; sourceTree = ""; }; + 514685B19E87177A5617C3E9E32DAB9E /* filter_block.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = filter_block.cc; path = table/filter_block.cc; sourceTree = ""; }; + 514E2D9A98B1D95C1CDA4273FE11A944 /* FIRVerifyPhoneNumberRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyPhoneNumberRequest.h; path = Firebase/Auth/Source/RPCs/FIRVerifyPhoneNumberRequest.h; sourceTree = ""; }; + 519ADA4C8E4DC6D0A303687861EAA4FE /* FIRConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRConfiguration.h; path = Firebase/Core/Public/FIRConfiguration.h; sourceTree = ""; }; + 536909D5AA24A381D1EA0944DDF887DC /* FPriorityIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPriorityIndex.m; path = Firebase/Database/FPriorityIndex.m; sourceTree = ""; }; + 53E767E55EDD268EDC310B99EBA67E08 /* env_posix.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = env_posix.cc; path = util/env_posix.cc; sourceTree = ""; }; + 541EED348C50B0AA88D60A7C4DA134DF /* FIRGetOOBConfirmationCodeRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGetOOBConfirmationCodeRequest.m; path = Firebase/Auth/Source/RPCs/FIRGetOOBConfirmationCodeRequest.m; sourceTree = ""; }; + 54768ADC425E0DA61799615D91A3BD54 /* FCompoundWrite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FCompoundWrite.h; path = Firebase/Database/Snapshot/FCompoundWrite.h; sourceTree = ""; }; + 54969A39FA3FD4371C1BE98E3969EB0E /* filter_policy.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = filter_policy.cc; path = util/filter_policy.cc; sourceTree = ""; }; + 54B1B27A722B3FBA5496A720CC1A5CEE /* FIRPhoneAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRPhoneAuthProvider.h; path = Firebase/Auth/Source/Public/FIRPhoneAuthProvider.h; sourceTree = ""; }; + 54B51BF3B2BB0B3F9CE8CE450A24ECD8 /* GULMutableDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULMutableDictionary.m; path = GoogleUtilities/Network/GULMutableDictionary.m; sourceTree = ""; }; + 54B5CF3EFFB7F1331CE609B2514E7293 /* FIRInstanceIDCheckinPreferences+Internal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "FIRInstanceIDCheckinPreferences+Internal.m"; path = "Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.m"; sourceTree = ""; }; + 54C0D8893D1CB0B4A21ADEB8B7A86DDE /* FIRAuthErrorUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthErrorUtils.m; path = Firebase/Auth/Source/FIRAuthErrorUtils.m; sourceTree = ""; }; + 5542005E5F5C24651F2EF10905909A98 /* FIRAuthGlobalWorkQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthGlobalWorkQueue.h; path = Firebase/Auth/Source/FIRAuthGlobalWorkQueue.h; sourceTree = ""; }; + 555E67AD0E278F0F87DEB8A4F43C65C2 /* FLevelDBStorageEngine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLevelDBStorageEngine.h; path = Firebase/Database/Persistence/FLevelDBStorageEngine.h; sourceTree = ""; }; + 557C5F58C6D170E6D15C9F936EE357B7 /* port_posix_sse.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = port_posix_sse.cc; path = port/port_posix_sse.cc; sourceTree = ""; }; + 557E79A439DF42A434909C720A99FB62 /* FIRDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabase.h; path = Firebase/Database/Public/FIRDatabase.h; sourceTree = ""; }; + 55809B6C0E024540341FEEDBAA038BF2 /* FIRStorageConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageConstants.h; path = Firebase/Storage/Public/FIRStorageConstants.h; sourceTree = ""; }; + 558AD646C035839B532AE1A9FCF44F8E /* FIRAuthErrors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthErrors.h; path = Firebase/Auth/Source/Public/FIRAuthErrors.h; sourceTree = ""; }; + 5636C3E8A152D603ADAFA1FF227DFC3B /* FKeepSyncedEventRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FKeepSyncedEventRegistration.h; path = Firebase/Database/Core/View/FKeepSyncedEventRegistration.h; sourceTree = ""; }; + 56421B148D6FC3691D1CEF512BAF81D0 /* nanopb.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = nanopb.xcconfig; sourceTree = ""; }; + 56512CB54D5AE7748E852DE6B5378233 /* FIRPhoneAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRPhoneAuthCredential.h; path = Firebase/Auth/Source/Public/FIRPhoneAuthCredential.h; sourceTree = ""; }; + 56B801E61F6A8C23DB178EF20C143EE9 /* FIRDeleteAccountResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDeleteAccountResponse.h; path = Firebase/Auth/Source/RPCs/FIRDeleteAccountResponse.h; sourceTree = ""; }; + 5703EB80B49388A52554994F8DCF5C32 /* FirebaseDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FirebaseDatabase.h; path = Firebase/Database/Public/FirebaseDatabase.h; sourceTree = ""; }; + 57058732E363D33DD3290897751CE97A /* FIRAuthSettings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthSettings.h; path = Firebase/Auth/Source/Public/FIRAuthSettings.h; sourceTree = ""; }; + 59614F1D6332548E36EF86AFF220A443 /* FIRAuthKeychain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthKeychain.h; path = Firebase/Auth/Source/FIRAuthKeychain.h; sourceTree = ""; }; + 59918C2DE56B8C3FCAD64F8C8722EA9E /* FEventEmitter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FEventEmitter.m; path = Firebase/Database/Utilities/FEventEmitter.m; sourceTree = ""; }; + 59B6037A0131315B9D74BA2F5F0E9E53 /* FIRStorageGetMetadataTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageGetMetadataTask.h; path = Firebase/Storage/Private/FIRStorageGetMetadataTask.h; sourceTree = ""; }; + 59B830EACB8367CA9E1B7C1CE95A0C42 /* FSyncPoint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSyncPoint.m; path = Firebase/Database/Core/FSyncPoint.m; sourceTree = ""; }; + 5A74CE6E481FA06DB20ED88E60FB26B0 /* FViewProcessorResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FViewProcessorResult.m; path = Firebase/Database/FViewProcessorResult.m; sourceTree = ""; }; + 5A8478CB94C0CBD8D1F623F1D75E313C /* FIRInstanceIDTokenOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDTokenOperation.h; path = Firebase/InstanceID/FIRInstanceIDTokenOperation.h; sourceTree = ""; }; + 5B028544CC6B62834C8A3423557C4DE5 /* FIREmailLinkSignInResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIREmailLinkSignInResponse.m; path = Firebase/Auth/Source/RPCs/FIREmailLinkSignInResponse.m; sourceTree = ""; }; + 5B10C972B892ED6DB107ED9BB47DA6F2 /* FIRAuthSettings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthSettings.m; path = Firebase/Auth/Source/FIRAuthSettings.m; sourceTree = ""; }; + 5B3A1BB2E7020C533513EF1AAB524715 /* FirebaseAuth.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FirebaseAuth.modulemap; sourceTree = ""; }; + 5B40963D8B06B4003C2DD3EE05717E33 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 5BB0C4678614E43CC59E990EE1D9561A /* logging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = logging.h; path = util/logging.h; sourceTree = ""; }; + 5BFE82A31BC997DC0490C1B3855C8F2C /* FIRStorageDownloadTask_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageDownloadTask_Private.h; path = Firebase/Storage/Private/FIRStorageDownloadTask_Private.h; sourceTree = ""; }; + 5C06F949E69100D717E4EE47D2A60087 /* Firebase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Firebase.h; path = CoreOnly/Sources/Firebase.h; sourceTree = ""; }; + 5C0D3DC222D57B13420340834F004FC8 /* FTrackedQuery.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTrackedQuery.m; path = Firebase/Database/Persistence/FTrackedQuery.m; sourceTree = ""; }; + 5C32EF1A3B6B226629AC4EE0673C07D4 /* GULNetwork.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULNetwork.h; path = GoogleUtilities/Network/Private/GULNetwork.h; sourceTree = ""; }; + 5C5572C91FDAE844AEAE99BC78DDAF2B /* FTupleSetIdPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleSetIdPath.m; path = Firebase/Database/Utilities/Tuples/FTupleSetIdPath.m; sourceTree = ""; }; + 5CAC4A1BC915B1A16A6D6F7D048453B6 /* FTupleCallbackStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleCallbackStatus.h; path = Firebase/Database/Utilities/Tuples/FTupleCallbackStatus.h; sourceTree = ""; }; + 5CC1989D5BF1B4B814495E86F2D98D86 /* FLevelDBStorageEngine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLevelDBStorageEngine.m; path = Firebase/Database/Persistence/FLevelDBStorageEngine.m; sourceTree = ""; }; + 5CD6B2548148817028844F16E2C8674D /* FKeyIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FKeyIndex.m; path = Firebase/Database/FKeyIndex.m; sourceTree = ""; }; + 5DBAF4FF5A243F9CB2E3CE32C9BC72C8 /* FIRGameCenterAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGameCenterAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/GameCenter/FIRGameCenterAuthCredential.m; sourceTree = ""; }; + 5DC0B2F5445ED7629C3D5DE25138034C /* FIREmailPasswordAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIREmailPasswordAuthCredential.h; path = Firebase/Auth/Source/AuthProviders/EmailPassword/FIREmailPasswordAuthCredential.h; sourceTree = ""; }; + 5F4EC60FE8DD9C6B98649A0650D5D547 /* FirebaseCoreDiagnostics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseCoreDiagnostics.framework; path = Frameworks/FirebaseCoreDiagnostics.framework; sourceTree = ""; }; + 5F9BA0E3E6BB198ABA28CC9D9A5D4F86 /* GTMSessionFetcher-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GTMSessionFetcher-prefix.pch"; sourceTree = ""; }; + 5FCA6D2C0537BAF91552678A055149CE /* FIRComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRComponent.h; path = Firebase/Core/Private/FIRComponent.h; sourceTree = ""; }; + 5FCB9D8ED877634BB9AE95762152EABF /* FIRStorageGetMetadataTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageGetMetadataTask.m; path = Firebase/Storage/FIRStorageGetMetadataTask.m; sourceTree = ""; }; + 5FF4CC98531DD61EB0322DBB1CD6084B /* memtable.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = memtable.cc; path = db/memtable.cc; sourceTree = ""; }; + 5FF876BC06C5BADC0B2B8673ABB4C7E5 /* FNamedNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FNamedNode.m; path = Firebase/Database/FNamedNode.m; sourceTree = ""; }; + 601420045E141718E00C7B19934978C1 /* FPersistentConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPersistentConnection.h; path = Firebase/Database/Core/FPersistentConnection.h; sourceTree = ""; }; + 60197ACA6705672CD29DEA0E55006246 /* FRangedFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FRangedFilter.m; path = Firebase/Database/FRangedFilter.m; sourceTree = ""; }; + 6052FDD569BFCC3675E15AE002A4F69F /* FValueIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FValueIndex.h; path = Firebase/Database/FValueIndex.h; sourceTree = ""; }; + 60B44236CEFBA91FD17FDFCA1A475EBC /* FPersistenceManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPersistenceManager.m; path = Firebase/Database/Persistence/FPersistenceManager.m; sourceTree = ""; }; + 6113477F284AD5B9CA83A621BDE057B5 /* FIRInstanceIDTokenStore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDTokenStore.h; path = Firebase/InstanceID/FIRInstanceIDTokenStore.h; sourceTree = ""; }; + 61A566D4D966D6FD3BA47083B227439C /* FIRAuthURLPresenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthURLPresenter.m; path = Firebase/Auth/Source/FIRAuthURLPresenter.m; sourceTree = ""; }; + 620B6DAF938B4A7E3C4CF0C36FCBEAE3 /* FPendingPut.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPendingPut.m; path = Firebase/Database/Persistence/FPendingPut.m; sourceTree = ""; }; + 6224B637C41F80E96D3419611D9E4B53 /* coding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = coding.h; path = util/coding.h; sourceTree = ""; }; + 62BB7C14115AE8724050A9FAE71FCC0D /* SkyFloatingLabelTextField.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SkyFloatingLabelTextField.modulemap; sourceTree = ""; }; + 62F88D653E66D31DDDD32E1F1CAFEBC5 /* hash.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = hash.cc; path = util/hash.cc; sourceTree = ""; }; + 637A04702322D136F598E5D192D235AC /* FIRLoggerLevel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRLoggerLevel.h; path = Firebase/Core/Public/FIRLoggerLevel.h; sourceTree = ""; }; + 637AB617C757BD389EBA1F9DC6243CEB /* FIRDatabaseComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseComponent.h; path = Firebase/Database/Api/FIRDatabaseComponent.h; sourceTree = ""; }; + 63AC1C04CF9FA401647554B0B436C77C /* GoogleUtilities-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GoogleUtilities-dummy.m"; sourceTree = ""; }; + 63BD002B60FD8CF57C980BCA5DCAAA05 /* FIRSecureTokenResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSecureTokenResponse.h; path = Firebase/Auth/Source/RPCs/FIRSecureTokenResponse.h; sourceTree = ""; }; + 63CC6E3AD68079D393D47C09288BE0BE /* FRangeMerge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FRangeMerge.m; path = Firebase/Database/Core/FRangeMerge.m; sourceTree = ""; }; + 6416EB4BDDFD0365ADB5E88F6E052F48 /* FViewCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FViewCache.h; path = Firebase/Database/Core/View/FViewCache.h; sourceTree = ""; }; + 6595393800F8601771ED6FF8E84D7CBF /* pb_decode.c */ = {isa = PBXFileReference; includeInIndex = 1; path = pb_decode.c; sourceTree = ""; }; + 66733B4CFEA3915FADBAC9CFDFC4D439 /* FirebaseCore.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FirebaseCore.modulemap; sourceTree = ""; }; + 670BD094A4F1102AF515164E467FC428 /* FPriorityIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPriorityIndex.h; path = Firebase/Database/FPriorityIndex.h; sourceTree = ""; }; + 6720FFBF362A0FF5170A80B492B945FE /* FTreeNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTreeNode.m; path = Firebase/Database/Core/Utilities/FTreeNode.m; sourceTree = ""; }; + 674B8835D2F71D02E98DE7760D29A9DE /* leveldb.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = leveldb.framework; path = "leveldb-library.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 675D9B90CAB87906D12156D8C1A8D814 /* FImmutableSortedSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FImmutableSortedSet.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FImmutableSortedSet.m; sourceTree = ""; }; + 675F26DE0744932198A80E80C9B59671 /* FIRAuthSerialTaskQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthSerialTaskQueue.h; path = Firebase/Auth/Source/FIRAuthSerialTaskQueue.h; sourceTree = ""; }; + 6852AD175807BBC8EA03620AF5BD63C4 /* FArraySortedDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FArraySortedDictionary.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FArraySortedDictionary.h; sourceTree = ""; }; + 688577FD100FDA965AE63BA6E1E686EC /* FRepo_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FRepo_Private.h; path = Firebase/Database/Core/FRepo_Private.h; sourceTree = ""; }; + 68AE6C45F35B9F7D377F609C176EF145 /* FIRGetProjectConfigRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGetProjectConfigRequest.m; path = Firebase/Auth/Source/RPCs/FIRGetProjectConfigRequest.m; sourceTree = ""; }; + 695115B98839955A70B2B4B53381BE98 /* FIRVerifyCustomTokenResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyCustomTokenResponse.h; path = Firebase/Auth/Source/RPCs/FIRVerifyCustomTokenResponse.h; sourceTree = ""; }; + 69D5E78EF0FD49C5D342530F95311222 /* FUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FUtilities.h; path = Firebase/Database/Utilities/FUtilities.h; sourceTree = ""; }; + 6A3727F7F01D0627F99BDAD20A3A2A9B /* FTuplePathValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTuplePathValue.h; path = Firebase/Database/Utilities/Tuples/FTuplePathValue.h; sourceTree = ""; }; + 6AA6140F195ADB3E8A0660C07EE7C065 /* FirebaseCore-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FirebaseCore-Info.plist"; sourceTree = ""; }; + 6AB75124E71A3EE0EA2C785671E7967F /* FListenProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FListenProvider.m; path = Firebase/Database/Core/FListenProvider.m; sourceTree = ""; }; + 6AD914ADF4F1F30F5F4166A65F38F00E /* FIRVerifyPasswordResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyPasswordResponse.h; path = Firebase/Auth/Source/RPCs/FIRVerifyPasswordResponse.h; sourceTree = ""; }; + 6ADF7FAAA48A0C1464979E8D21822E7B /* FirebaseStorage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FirebaseStorage-Info.plist"; sourceTree = ""; }; + 6B278E179F53087CB531D83821711893 /* FIRAuthAppCredentialManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthAppCredentialManager.h; path = Firebase/Auth/Source/FIRAuthAppCredentialManager.h; sourceTree = ""; }; + 6B3E62A97581101DCF5FB7CBA61206B0 /* IQTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextView.swift; path = IQKeyboardManagerSwift/IQTextView/IQTextView.swift; sourceTree = ""; }; + 6BA84E23500EAC6172C32E5DD77C31E0 /* FCancelEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FCancelEvent.m; path = Firebase/Database/Core/View/FCancelEvent.m; sourceTree = ""; }; + 6C001D1D619B63B1EAFC511846975698 /* FIRGameCenterAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGameCenterAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/GameCenter/FIRGameCenterAuthProvider.m; sourceTree = ""; }; + 6C0245BC7BA8B341E61AA02479216C58 /* FIndexedFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIndexedFilter.h; path = Firebase/Database/Core/View/Filter/FIndexedFilter.h; sourceTree = ""; }; + 6C1CCDFB0D7EBEB0883F20E3D4C290C4 /* FIREmailLinkSignInRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIREmailLinkSignInRequest.m; path = Firebase/Auth/Source/RPCs/FIREmailLinkSignInRequest.m; sourceTree = ""; }; + 6C4670C197D6A2575E2EE651F2BF6CF8 /* FIRErrorCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRErrorCode.h; path = Firebase/Core/Private/FIRErrorCode.h; sourceTree = ""; }; + 6C7B49E8EA6F147E817C44993FDA33FC /* FCompoundWrite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FCompoundWrite.m; path = Firebase/Database/Snapshot/FCompoundWrite.m; sourceTree = ""; }; + 6CE870E46463E9796591E55E166CAEC6 /* FRepo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FRepo.h; path = Firebase/Database/Core/FRepo.h; sourceTree = ""; }; + 6CF8CB713B517B8816DF2B91EE60CF1F /* FServerValues.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FServerValues.m; path = Firebase/Database/Core/FServerValues.m; sourceTree = ""; }; + 6DAF3D4A2BC11A3202EB04FAEFCCA272 /* FQuerySpec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FQuerySpec.m; path = Firebase/Database/Core/FQuerySpec.m; sourceTree = ""; }; + 6DD22FF448FA9CC3B18BB8C580C6221B /* FTupleSetIdPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleSetIdPath.h; path = Firebase/Database/Utilities/Tuples/FTupleSetIdPath.h; sourceTree = ""; }; + 6E412747A753D4F88BD21EB86D4FBE29 /* FTransformedEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTransformedEnumerator.h; path = Firebase/Database/FTransformedEnumerator.h; sourceTree = ""; }; + 6F0F74E4419B4B0B32702C217959748C /* FChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FChange.h; path = Firebase/Database/Core/View/FChange.h; sourceTree = ""; }; + 6F0FAEA390F44DE86D0081B0490EEDFF /* FTrackedQuery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTrackedQuery.h; path = Firebase/Database/Persistence/FTrackedQuery.h; sourceTree = ""; }; + 6F3BBCBF64110AC895B4427FBB389482 /* filter_block.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = filter_block.h; path = table/filter_block.h; sourceTree = ""; }; + 6F5C70FFDAD2CA7580490595A3F6E5A9 /* FIRAuthTokenResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthTokenResult.h; path = Firebase/Auth/Source/Public/FIRAuthTokenResult.h; sourceTree = ""; }; + 6F9259AA62C9A92EB5907DE9DCD1F0DD /* FTupleTSN.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleTSN.m; path = Firebase/Database/Utilities/Tuples/FTupleTSN.m; sourceTree = ""; }; + 6F9AD95E355D705F817A6E9FD4CBA522 /* pb_encode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb_encode.h; sourceTree = ""; }; + 709B62964648BEB33EA49DE11D3D09CF /* GTMSessionFetcher-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GTMSessionFetcher-dummy.m"; sourceTree = ""; }; + 717D748DAD2974BACC65632C39A40872 /* FirebaseAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseAnalytics.framework; path = Frameworks/FirebaseAnalytics.framework; sourceTree = ""; }; + 71AC0901933AD2A5432E91142D482357 /* FIRAuthRPCRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthRPCRequest.h; path = Firebase/Auth/Source/RPCs/FIRAuthRPCRequest.h; sourceTree = ""; }; 71D59DFB0F7108991DE8BC21D863B3EB /* Pods-FoodApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-FoodApp-Info.plist"; sourceTree = ""; }; - 71D6A81BE570ABCD48BF88B1C039ACBC /* FIRGetOOBConfirmationCodeResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGetOOBConfirmationCodeResponse.h; path = Firebase/Auth/Source/RPCs/FIRGetOOBConfirmationCodeResponse.h; sourceTree = ""; }; - 71D749C54BB49BF9DA520FF68FACC23F /* FIRComponentContainerInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRComponentContainerInternal.h; path = Firebase/Core/Private/FIRComponentContainerInternal.h; sourceTree = ""; }; - 720D2D19CBDF9BBD1DC98B34F653E63F /* FIRInstanceIDStringEncoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDStringEncoding.h; path = Firebase/InstanceID/FIRInstanceIDStringEncoding.h; sourceTree = ""; }; - 722E8ECD73E43FA6C9DABB306F2C0001 /* FIRErrors.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRErrors.m; path = Firebase/Core/FIRErrors.m; sourceTree = ""; }; - 724B6D543445B74C7A14B47EDCF8F78D /* FIRAuthSerialTaskQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthSerialTaskQueue.m; path = Firebase/Auth/Source/FIRAuthSerialTaskQueue.m; sourceTree = ""; }; - 7267D53C57FA08FAC0012713F45B79A7 /* FIRGetOOBConfirmationCodeRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGetOOBConfirmationCodeRequest.h; path = Firebase/Auth/Source/RPCs/FIRGetOOBConfirmationCodeRequest.h; sourceTree = ""; }; - 7289445B04801259D57D61C0A09D359D /* FIRVerifyAssertionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyAssertionResponse.m; path = Firebase/Auth/Source/RPCs/FIRVerifyAssertionResponse.m; sourceTree = ""; }; - 72FF4C25C9781B5916125685B2B0D670 /* FIRInstanceIDKeychain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDKeychain.m; path = Firebase/InstanceID/FIRInstanceIDKeychain.m; sourceTree = ""; }; - 73400156B74C0DA3AD4C910330E581D3 /* FIRAuthOperationType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthOperationType.h; path = Firebase/Auth/Source/FIRAuthOperationType.h; sourceTree = ""; }; - 73D7C4832D8848B73ABD12B152C7D3CE /* FIRVerifyCustomTokenRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyCustomTokenRequest.h; path = Firebase/Auth/Source/RPCs/FIRVerifyCustomTokenRequest.h; sourceTree = ""; }; - 741C70BFEE85752ED0A32E46C8FED240 /* FirebaseInstanceID-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FirebaseInstanceID-dummy.m"; sourceTree = ""; }; - 747FC211F893CF80A4E0F16A3C1D0352 /* FWebSocketConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FWebSocketConnection.m; path = Firebase/Database/Realtime/FWebSocketConnection.m; sourceTree = ""; }; - 7480390585D32FB07CCAA8D8D2E506C6 /* filename.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = filename.cc; path = db/filename.cc; sourceTree = ""; }; - 74C74967E5661E0F5B1C993EB5FE9DB4 /* FSparseSnapshotTree.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSparseSnapshotTree.m; path = Firebase/Database/Core/FSparseSnapshotTree.m; sourceTree = ""; }; - 7529757A7047095C0723D1E4264957DB /* FIRVerifyCustomTokenRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyCustomTokenRequest.m; path = Firebase/Auth/Source/RPCs/FIRVerifyCustomTokenRequest.m; sourceTree = ""; }; - 755A35D882ADF037EF156A4CCD605D75 /* FirebaseStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FirebaseStorage.h; path = Firebase/Storage/Public/FirebaseStorage.h; sourceTree = ""; }; - 756C85068A7A74500B084C3204C4E44B /* GULReachabilityChecker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULReachabilityChecker.h; path = GoogleUtilities/Reachability/Private/GULReachabilityChecker.h; sourceTree = ""; }; - 76593F07DC9EBE2104F65E90E1FF901A /* FIROAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIROAuthProvider.h; path = Firebase/Auth/Source/Public/FIROAuthProvider.h; sourceTree = ""; }; - 766D0826E7A2EC3AD9B458B857C0265D /* FIRResetPasswordRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRResetPasswordRequest.m; path = Firebase/Auth/Source/RPCs/FIRResetPasswordRequest.m; sourceTree = ""; }; - 7676764B2AB4CCFB9CAC47A15F2534C4 /* GoogleAppMeasurement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleAppMeasurement.framework; path = Frameworks/GoogleAppMeasurement.framework; sourceTree = ""; }; - 767E877685EF58546F3E47CC6FCDDD20 /* histogram.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = histogram.cc; path = util/histogram.cc; sourceTree = ""; }; - 76C29CCA43C080F16D81CD5867D9C52D /* FTupleOnDisconnect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleOnDisconnect.h; path = Firebase/Database/Utilities/Tuples/FTupleOnDisconnect.h; sourceTree = ""; }; - 76D68407463B88344E760BCEA86276C1 /* FIRAuthWebViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthWebViewController.h; path = Firebase/Auth/Source/FIRAuthWebViewController.h; sourceTree = ""; }; - 7706A5AC92B7A1D2C78EC18860FCBFDC /* FIRActionCodeSettings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRActionCodeSettings.m; path = Firebase/Auth/Source/FIRActionCodeSettings.m; sourceTree = ""; }; - 77298E734BE0AC895E6EC19B4C3BE963 /* GULAppDelegateSwizzler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULAppDelegateSwizzler.m; path = GoogleUtilities/AppDelegateSwizzler/GULAppDelegateSwizzler.m; sourceTree = ""; }; - 7784FFEABEF15533E699BCD64A1C92FF /* SkyFloatingLabelTextFieldWithIcon.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SkyFloatingLabelTextFieldWithIcon.swift; path = Sources/SkyFloatingLabelTextFieldWithIcon.swift; sourceTree = ""; }; - 77F466771C4AB291E951DD480C6DD71D /* FTrackedQuery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTrackedQuery.h; path = Firebase/Database/Persistence/FTrackedQuery.h; sourceTree = ""; }; - 78528EFC6339BEE50784E020ED28B5C9 /* FIRGameCenterAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGameCenterAuthProvider.h; path = Firebase/Auth/Source/Public/FIRGameCenterAuthProvider.h; sourceTree = ""; }; - 7871CCA6B38AAAA7C49C3F537B9D101E /* FIRAuthDataResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthDataResult.h; path = Firebase/Auth/Source/Public/FIRAuthDataResult.h; sourceTree = ""; }; - 7883EA73BD06379080BB9C8DE1B6C7AD /* FIRVerifyPasswordRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyPasswordRequest.h; path = Firebase/Auth/Source/RPCs/FIRVerifyPasswordRequest.h; sourceTree = ""; }; - 790AA261DA1AB9FB637730FB6F609E65 /* FIRStorageTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageTask.m; path = Firebase/Storage/FIRStorageTask.m; sourceTree = ""; }; - 791BBE4657D1CA8DEEB11B690210E2A1 /* FIRStorageObservableTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageObservableTask.m; path = Firebase/Storage/FIRStorageObservableTask.m; sourceTree = ""; }; - 794126647C8FBC3E52C5C5B8104F3A88 /* FIRStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorage.h; path = Firebase/Storage/Public/FIRStorage.h; sourceTree = ""; }; - 7987A65BF9C5D489F6720587C1B684FB /* port_posix.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = port_posix.h; path = port/port_posix.h; sourceTree = ""; }; - 79E56264BC316BB3716BF44923A61844 /* FImmutableSortedDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FImmutableSortedDictionary.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FImmutableSortedDictionary.m; sourceTree = ""; }; - 7A0A123EEEB99AD273AA8FFC02C4C0A4 /* FIREmailLinkSignInResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIREmailLinkSignInResponse.m; path = Firebase/Auth/Source/RPCs/FIREmailLinkSignInResponse.m; sourceTree = ""; }; - 7ACEFF86E27F21CAB8051BC4A6AC4DF3 /* FView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FView.m; path = Firebase/Database/Core/View/FView.m; sourceTree = ""; }; - 7AD6ACED66DDD8762085018D1C9D9418 /* GULNetworkURLSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULNetworkURLSession.m; path = GoogleUtilities/Network/GULNetworkURLSession.m; sourceTree = ""; }; - 7B3779352CAE2C68BB95FDDC3BBDEAF8 /* GTMSessionFetcher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GTMSessionFetcher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B638E1DAE036DF8F45F4B3D7823DAF2 /* FIRActionCodeSettings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRActionCodeSettings.h; path = Firebase/Auth/Source/Public/FIRActionCodeSettings.h; sourceTree = ""; }; - 7BB13B320E25A8E10118F5AA4E4BEB2A /* FIRAuth.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuth.m; path = Firebase/Auth/Source/FIRAuth.m; sourceTree = ""; }; - 7C297F0C85A8E58477CB204FE422003A /* APLevelDB.mm */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.objcpp; name = APLevelDB.mm; path = "Firebase/Database/third_party/Wrap-leveldb/APLevelDB.mm"; sourceTree = ""; }; - 7C41A9B4D0EBE871057D6EAE99567F9C /* FQuerySpec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FQuerySpec.h; path = Firebase/Database/Core/FQuerySpec.h; sourceTree = ""; }; - 7C91FE44AD6A3131029787C2E6BCC5EE /* UITextField+fixCaretPosition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UITextField+fixCaretPosition.swift"; path = "Sources/UITextField+fixCaretPosition.swift"; sourceTree = ""; }; - 7C9459DC2DC41A34CCF8141DF5C842D6 /* FirebaseDatabase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseDatabase.xcconfig; sourceTree = ""; }; - 7D6A5485297561155F4B4441ED60F970 /* GULAppDelegateSwizzler_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULAppDelegateSwizzler_Private.h; path = GoogleUtilities/AppDelegateSwizzler/Internal/GULAppDelegateSwizzler_Private.h; sourceTree = ""; }; - 7D9EC722304B8875B074F58B27860F35 /* block.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = block.cc; path = table/block.cc; sourceTree = ""; }; - 7DA88A30E7E799C090298B34FC0BAA84 /* filter_block.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = filter_block.cc; path = table/filter_block.cc; sourceTree = ""; }; - 7DAC36DE3E8C47E4E8403FF361376E52 /* FIRStorageTokenAuthorizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageTokenAuthorizer.m; path = Firebase/Storage/FIRStorageTokenAuthorizer.m; sourceTree = ""; }; - 7DEA8143167D618A8DF96D434E77EC3C /* FIRVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVersion.m; path = Firebase/Core/FIRVersion.m; sourceTree = ""; }; - 7E1D5DE7E86656144A403F0CA64C7D08 /* FIROAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIROAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthCredential.m; sourceTree = ""; }; - 7E94A847AAF36725558D13D154A5573E /* FIRSecureTokenResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSecureTokenResponse.h; path = Firebase/Auth/Source/RPCs/FIRSecureTokenResponse.h; sourceTree = ""; }; - 7EA701869574D9D4D27B2574F3B485A7 /* FIRInstanceIDAuthKeyChain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDAuthKeyChain.h; path = Firebase/InstanceID/FIRInstanceIDAuthKeyChain.h; sourceTree = ""; }; - 7ECCCC320952E6A75BFABF7ECD100615 /* GTMSessionFetcher.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GTMSessionFetcher.xcconfig; sourceTree = ""; }; - 7F52AC95F97B437D56D2A3734D32B0DB /* FValueIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FValueIndex.h; path = Firebase/Database/FValueIndex.h; sourceTree = ""; }; - 7FEA95D4CD2B9A707AA8E3FABA3B8E0E /* FIRGetOOBConfirmationCodeResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGetOOBConfirmationCodeResponse.m; path = Firebase/Auth/Source/RPCs/FIRGetOOBConfirmationCodeResponse.m; sourceTree = ""; }; - 808441B96112DE059C0AAA1421FB4D91 /* FEventGenerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FEventGenerator.m; path = Firebase/Database/FEventGenerator.m; sourceTree = ""; }; - 8141BA0CB76E803CACC707E744E97600 /* FStringUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FStringUtilities.m; path = Firebase/Database/Utilities/FStringUtilities.m; sourceTree = ""; }; - 817E5BBA817024379AF7D85C00DFBB1E /* FIRVerifyCustomTokenResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyCustomTokenResponse.m; path = Firebase/Auth/Source/RPCs/FIRVerifyCustomTokenResponse.m; sourceTree = ""; }; - 81EB03E7EB76F8BABCED0D1C12C855CA /* FIndexedFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIndexedFilter.m; path = Firebase/Database/Core/View/Filter/FIndexedFilter.m; sourceTree = ""; }; - 825B69FB1C063E96EBA2310E2A997E4E /* FIROptionsInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIROptionsInternal.h; path = Firebase/Core/Private/FIROptionsInternal.h; sourceTree = ""; }; - 82E136E3716C867F20D7013B4FD8A501 /* GULNetworkLoggerProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULNetworkLoggerProtocol.h; path = GoogleUtilities/Network/Private/GULNetworkLoggerProtocol.h; sourceTree = ""; }; - 8317FA07B1B0741CB70BDC7D019B36FA /* FirebaseCore.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseCore.xcconfig; sourceTree = ""; }; - 83928E4E02C7FAB4019F7C5405982D95 /* FIRSignInWithGameCenterRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSignInWithGameCenterRequest.h; path = Firebase/Auth/Source/RPCs/FIRSignInWithGameCenterRequest.h; sourceTree = ""; }; - 8587842234E12AB08CD40DA275168C06 /* Firebase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Firebase.xcconfig; sourceTree = ""; }; - 85955A814652E06984348A0C9379F705 /* format.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = format.h; path = table/format.h; sourceTree = ""; }; - 85A9CF5E02D5D1F12377C665D83CBB84 /* FLimitedFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLimitedFilter.h; path = Firebase/Database/Core/View/Filter/FLimitedFilter.h; sourceTree = ""; }; - 86A65C60D39B9BFD68CD5EAEF8C81D54 /* FIRStorageUpdateMetadataTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageUpdateMetadataTask.h; path = Firebase/Storage/Private/FIRStorageUpdateMetadataTask.h; sourceTree = ""; }; - 87E79BC1CC8862982040BD0CDA144791 /* iterator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = iterator.h; path = include/leveldb/iterator.h; sourceTree = ""; }; - 885BDBA1FCCEA200D9092E6825C2938B /* FCacheNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FCacheNode.m; path = Firebase/Database/Core/View/FCacheNode.m; sourceTree = ""; }; - 886892B767D8D353FE5F588C4729175C /* FPendingPut.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPendingPut.h; path = Firebase/Database/Persistence/FPendingPut.h; sourceTree = ""; }; - 88D0369BC3444B15C5A06B03ABED2D29 /* FChildrenNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FChildrenNode.m; path = Firebase/Database/Snapshot/FChildrenNode.m; sourceTree = ""; }; - 88E1B937EAFE914A5C8EB536E70FA627 /* FRepo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FRepo.m; path = Firebase/Database/Core/FRepo.m; sourceTree = ""; }; - 8901E8699A16F623E66B96C94B8A2B89 /* FIRInstanceIDTokenDeleteOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDTokenDeleteOperation.m; path = Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.m; sourceTree = ""; }; - 8973370B30473168FB7B54E64633C387 /* FIRIdentityToolkitRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRIdentityToolkitRequest.h; path = Firebase/Auth/Source/RPCs/FIRIdentityToolkitRequest.h; sourceTree = ""; }; - 8987C1A05949C11F5BC9381ADBF32BA1 /* FCancelEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FCancelEvent.h; path = Firebase/Database/Core/View/FCancelEvent.h; sourceTree = ""; }; - 8A66B89D58B766882246645BD8B2E0F0 /* FIRVerifyPasswordResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyPasswordResponse.m; path = Firebase/Auth/Source/RPCs/FIRVerifyPasswordResponse.m; sourceTree = ""; }; - 8A77D403A4F87B097B9244EFC7B24DF6 /* FIRFacebookAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRFacebookAuthCredential.h; path = Firebase/Auth/Source/AuthProviders/Facebook/FIRFacebookAuthCredential.h; sourceTree = ""; }; - 8AA7A7BB1ADF6CCB1592E64A53DB1C62 /* log_reader.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = log_reader.cc; path = db/log_reader.cc; sourceTree = ""; }; - 8AFF0DA3FC96DC327460FCABA2816CD1 /* filter_policy.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = filter_policy.cc; path = util/filter_policy.cc; sourceTree = ""; }; - 8B668E4A710000BFFA9632B35FB7AE8D /* FIRUserInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRUserInfo.h; path = Firebase/Auth/Source/Public/FIRUserInfo.h; sourceTree = ""; }; - 8C64C70AD5154134898E499C76769E99 /* FIRSecureTokenRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSecureTokenRequest.h; path = Firebase/Auth/Source/RPCs/FIRSecureTokenRequest.h; sourceTree = ""; }; - 8CBDB93649A440F224E642D5BF21C2B3 /* GULAppEnvironmentUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULAppEnvironmentUtil.m; path = GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.m; sourceTree = ""; }; - 8CE62519C1AEBD2EA672C3C4ADC0B36E /* FIRAuthDefaultUIDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthDefaultUIDelegate.h; path = Firebase/Auth/Source/FIRAuthDefaultUIDelegate.h; sourceTree = ""; }; - 8D266EE2E7911E0026FDD2A6C2A0014D /* FIRFacebookAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRFacebookAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/Facebook/FIRFacebookAuthProvider.m; sourceTree = ""; }; - 8D2AC9D5074782B43D4B5D2636331414 /* GTMSessionFetcherService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionFetcherService.h; path = Source/GTMSessionFetcherService.h; sourceTree = ""; }; - 8DC34600911028B32C5CEF951B2ADDAA /* FValueEventRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FValueEventRegistration.h; path = Firebase/Database/Core/View/FValueEventRegistration.h; sourceTree = ""; }; - 8DFBE5EA96049C1672C00364804B5EF3 /* FirebaseDatabase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FirebaseDatabase.modulemap; sourceTree = ""; }; - 8E61D3AB47269E9013073B64BF54B214 /* FIRAuthInternalErrors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthInternalErrors.h; path = Firebase/Auth/Source/FIRAuthInternalErrors.h; sourceTree = ""; }; - 8ED1110811840E9F617886E43919F550 /* fbase64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fbase64.h; path = Firebase/Database/third_party/SocketRocket/fbase64.h; sourceTree = ""; }; - 8F82EABC1DAA7EA471B8C8AB7DE31B96 /* FIRStorageTaskSnapshot_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageTaskSnapshot_Private.h; path = Firebase/Storage/Private/FIRStorageTaskSnapshot_Private.h; sourceTree = ""; }; - 900C2CB2C93765FED9053D277A7CEBEC /* FIRAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthProvider.m; path = Firebase/Auth/Source/FIRAuthProvider.m; sourceTree = ""; }; - 90296F1A0DAD1733FF1C61C0C6694A52 /* FirebaseAuthVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FirebaseAuthVersion.h; path = Firebase/Auth/Source/Public/FirebaseAuthVersion.h; sourceTree = ""; }; - 90B703B7FED85EC7EEEEF99F30F00CE5 /* FNodeFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FNodeFilter.h; path = Firebase/Database/Core/View/Filter/FNodeFilter.h; sourceTree = ""; }; - 90F49D51CA2CDDBF412B34C8711C1F71 /* port_example.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = port_example.h; path = port/port_example.h; sourceTree = ""; }; - 915CEDFD3F25E8A85780D0CB51B28FFE /* c.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = c.cc; path = db/c.cc; sourceTree = ""; }; - 91C843E9530B8C86C66F2FEFB58C28E4 /* GoogleUtilities-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "GoogleUtilities-Info.plist"; sourceTree = ""; }; - 91F8AB2D820CE13E80F8E93EECE3EDEB /* FTupleNodePath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleNodePath.h; path = Firebase/Database/Utilities/Tuples/FTupleNodePath.h; sourceTree = ""; }; - 91FC50EC8CA0DF6A040A3CD790FF815B /* GULAppDelegateSwizzler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULAppDelegateSwizzler.h; path = GoogleUtilities/AppDelegateSwizzler/Private/GULAppDelegateSwizzler.h; sourceTree = ""; }; - 922A49DD4D7E595AFFEA9D03A413DF08 /* FIRServerValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRServerValue.h; path = Firebase/Database/Public/FIRServerValue.h; sourceTree = ""; }; - 926353C52E650786FCFC2CF7615C5300 /* FIRStorageErrors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageErrors.h; path = Firebase/Storage/Private/FIRStorageErrors.h; sourceTree = ""; }; - 92A8A121FADF5FD3EC9CC3DD36B63EC0 /* FCompoundWrite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FCompoundWrite.m; path = Firebase/Database/Snapshot/FCompoundWrite.m; sourceTree = ""; }; - 93143D7AC74AFDCAB18774F95C87F1EF /* version_set.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = version_set.h; path = db/version_set.h; sourceTree = ""; }; - 932AD7EB552A0ADFB8FE0EEAB5B42ECC /* FIRStorageObservableTask_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageObservableTask_Private.h; path = Firebase/Storage/Private/FIRStorageObservableTask_Private.h; sourceTree = ""; }; - 934C182766A57B59478E2208838394D2 /* FirebaseAuth.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseAuth.xcconfig; sourceTree = ""; }; - 9359C6214FE2610FE7661A415B0C1AFB /* FIRInstanceIDAPNSInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDAPNSInfo.h; path = Firebase/InstanceID/FIRInstanceIDAPNSInfo.h; sourceTree = ""; }; - 9366F68232237363C4C84CA8F270C673 /* FIRSetAccountInfoResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSetAccountInfoResponse.h; path = Firebase/Auth/Source/RPCs/FIRSetAccountInfoResponse.h; sourceTree = ""; }; - 93BD23B1719164B1BA99AD449BFB4F7C /* block.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = block.h; path = table/block.h; sourceTree = ""; }; - 93C7D157ED02B768BD9E369D0D0C7F92 /* FPruneForest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPruneForest.m; path = Firebase/Database/Persistence/FPruneForest.m; sourceTree = ""; }; - 93F646AF7E43AEB95F008C8A54AF76D3 /* GoogleUtilities.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GoogleUtilities.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 940CB393DBD4349DB28A6A2FBE4FBFA0 /* GoogleUtilities-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GoogleUtilities-prefix.pch"; sourceTree = ""; }; - 942E936F1CE4352A3B2232E542779672 /* FMerge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMerge.m; path = Firebase/Database/Core/Operation/FMerge.m; sourceTree = ""; }; - 94468DE6DA11937977EC9A39B1C8114D /* GTMSessionFetcherService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionFetcherService.m; path = Source/GTMSessionFetcherService.m; sourceTree = ""; }; - 94719BBBB60000BE23863F8E0AF72366 /* FIRAuthRPCResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthRPCResponse.h; path = Firebase/Auth/Source/RPCs/FIRAuthRPCResponse.h; sourceTree = ""; }; - 94A6B4C16AFB376AC14C3362B35E978D /* FirebaseCoreDiagnostics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseCoreDiagnostics.framework; path = Frameworks/FirebaseCoreDiagnostics.framework; sourceTree = ""; }; - 94ED34DD4D554FF493BBCE670219F6C5 /* SkyFloatingLabelTextField.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SkyFloatingLabelTextField.xcconfig; sourceTree = ""; }; - 9523E2CB3C294ADA7216491DA9918B67 /* GoogleUtilities.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GoogleUtilities.modulemap; sourceTree = ""; }; - 95AFD0B2A1708F278DBA55B9DB2EAA60 /* FImmutableSortedSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FImmutableSortedSet.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FImmutableSortedSet.m; sourceTree = ""; }; - 95DA6531C023E7175A3208301501809B /* FIRUserInfoImpl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRUserInfoImpl.h; path = Firebase/Auth/Source/FIRUserInfoImpl.h; sourceTree = ""; }; - 977B0B89B9FE59C1513D05CC42FB8DB0 /* FIRSignUpNewUserResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSignUpNewUserResponse.h; path = Firebase/Auth/Source/RPCs/FIRSignUpNewUserResponse.h; sourceTree = ""; }; - 9833A5B2D2380DF40F38FA62FC7D8CD7 /* FMaxNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMaxNode.h; path = Firebase/Database/FMaxNode.h; sourceTree = ""; }; - 98957EAE65ACCC19A5F7CD148E1FCA1D /* db_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = db_impl.h; path = db/db_impl.h; sourceTree = ""; }; - 98DAB9614219B17A5FCD582B78FC7857 /* FIRResetPasswordRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRResetPasswordRequest.h; path = Firebase/Auth/Source/RPCs/FIRResetPasswordRequest.h; sourceTree = ""; }; - 992177DD97A66FCC3F7EFA01ECC2BDC8 /* FIRInstanceIDKeyPairUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDKeyPairUtilities.h; path = Firebase/InstanceID/FIRInstanceIDKeyPairUtilities.h; sourceTree = ""; }; - 9A335D5BA33451AD785A958F13A99221 /* FIROAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIROAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthProvider.m; sourceTree = ""; }; - 9A4561E886C54A97192E4590A456297F /* FClock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FClock.m; path = Firebase/Database/FClock.m; sourceTree = ""; }; - 9A4DCDDD7C5C046C186E7370CF0A5CDB /* GTMSessionFetcher-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GTMSessionFetcher-umbrella.h"; sourceTree = ""; }; - 9B06C7E35631EF595CEB3F8D4C5F768B /* FIRGameCenterAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGameCenterAuthCredential.h; path = Firebase/Auth/Source/AuthProviders/GameCenter/FIRGameCenterAuthCredential.h; sourceTree = ""; }; - 9B991731B4B869DCDDB919913D058B70 /* FIRInstanceIDTokenOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDTokenOperation.h; path = Firebase/InstanceID/FIRInstanceIDTokenOperation.h; sourceTree = ""; }; - 9BE9E4E4854F120E2FC1713D8ECA0191 /* FAtomicNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FAtomicNumber.m; path = Firebase/Database/Utilities/FAtomicNumber.m; sourceTree = ""; }; - 9BF5F99257E9796E34DF71888809822A /* FIRInstanceIDTokenInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDTokenInfo.m; path = Firebase/InstanceID/FIRInstanceIDTokenInfo.m; sourceTree = ""; }; - 9BFE8375A2CADB978CD1C612B7B47674 /* FIRStorage_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorage_Private.h; path = Firebase/Storage/Private/FIRStorage_Private.h; sourceTree = ""; }; - 9C11107F3372A30CEBB81E77AB6A7266 /* FirebaseAuthVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FirebaseAuthVersion.m; path = Firebase/Auth/Source/FirebaseAuthVersion.m; sourceTree = ""; }; - 9C7AA0D303881127A10F0B6EAD3F784A /* FIRAnalyticsConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAnalyticsConfiguration.h; path = Firebase/Core/Public/FIRAnalyticsConfiguration.h; sourceTree = ""; }; - 9D3D4D22CEFA0D919069BA9E436545BC /* FIRAuthErrors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthErrors.h; path = Firebase/Auth/Source/Public/FIRAuthErrors.h; sourceTree = ""; }; - 9D56BFE95910C37D0ED318963FCECDD3 /* FIRInstanceIDTokenOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDTokenOperation.m; path = Firebase/InstanceID/FIRInstanceIDTokenOperation.m; sourceTree = ""; }; - 9D7D0B3F76B9E4F3EA6021AB49203DED /* FIRComponentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRComponentType.m; path = Firebase/Core/FIRComponentType.m; sourceTree = ""; }; - 9D8D63F0B466616D7B2178E5CC560FB8 /* FPersistenceManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPersistenceManager.h; path = Firebase/Database/Persistence/FPersistenceManager.h; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9DA93F74CD26A7246AA4CF97A08C6799 /* FLeafNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLeafNode.m; path = Firebase/Database/Snapshot/FLeafNode.m; sourceTree = ""; }; - 9DF9DB0FCD3EABD8AF1F6EF083A6BBC6 /* FirebaseDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FirebaseDatabase.h; path = Firebase/Database/Public/FirebaseDatabase.h; sourceTree = ""; }; - 9EFA5244BD97145BA119FD542B6F5F12 /* FTupleTSN.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleTSN.h; path = Firebase/Database/Utilities/Tuples/FTupleTSN.h; sourceTree = ""; }; + 71E3298885EE3DE0BDB54C17CEBA1E09 /* version_set.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = version_set.cc; path = db/version_set.cc; sourceTree = ""; }; + 71EAD519E00EE776B12BED7BCAA38E0F /* FTupleStringNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleStringNode.h; path = Firebase/Database/Utilities/Tuples/FTupleStringNode.h; sourceTree = ""; }; + 7236253F2E638A689AA4AA5ACA3A2205 /* FConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FConnection.h; path = Firebase/Database/Realtime/FConnection.h; sourceTree = ""; }; + 7241FA44043CFD6CFC158F98C7E1F805 /* FParsedUrl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FParsedUrl.m; path = Firebase/Database/Utilities/FParsedUrl.m; sourceTree = ""; }; + 7257998E4A8394E2B5817D64E457D59D /* FIRDatabaseQuery_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseQuery_Private.h; path = Firebase/Database/Api/Private/FIRDatabaseQuery_Private.h; sourceTree = ""; }; + 72919D3FE744D73BF2CBC4E485639DFB /* IQKeyboardManagerSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IQKeyboardManagerSwift-dummy.m"; sourceTree = ""; }; + 729A9D26C261307F12A65F4E43FD69C3 /* FIRDatabaseReference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDatabaseReference.m; path = Firebase/Database/FIRDatabaseReference.m; sourceTree = ""; }; + 72A7D0D588196B6975538D66837D8E1B /* FIREmailLinkSignInResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIREmailLinkSignInResponse.h; path = Firebase/Auth/Source/RPCs/FIREmailLinkSignInResponse.h; sourceTree = ""; }; + 72AEE339924C4AE1F6250387E823387F /* FPendingPut.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPendingPut.h; path = Firebase/Database/Persistence/FPendingPut.h; sourceTree = ""; }; + 72BAD1245F797C625ADBB0E8637EA422 /* FImmutableSortedDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FImmutableSortedDictionary.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FImmutableSortedDictionary.m; sourceTree = ""; }; + 72C01B922DCF2ED986DF1FD8B7B572B5 /* FIRInstanceIDKeyPair.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDKeyPair.m; path = Firebase/InstanceID/FIRInstanceIDKeyPair.m; sourceTree = ""; }; + 72CAB19DCC045D7BC4413C84C1911B3E /* FIREmailAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIREmailAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/EmailPassword/FIREmailAuthProvider.m; sourceTree = ""; }; + 72F214B853E1C258ECFECFF520F20924 /* FIRAuthDefaultUIDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthDefaultUIDelegate.m; path = Firebase/Auth/Source/FIRAuthDefaultUIDelegate.m; sourceTree = ""; }; + 740512380E38DADF4E39D75396D56873 /* FServerValues.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FServerValues.h; path = Firebase/Database/Core/FServerValues.h; sourceTree = ""; }; + 742748BD8B7303E1FD861F603DAAB844 /* FPersistentConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPersistentConnection.m; path = Firebase/Database/Core/FPersistentConnection.m; sourceTree = ""; }; + 743695C2A2DD07937AB27895973F838D /* options.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = options.cc; path = util/options.cc; sourceTree = ""; }; + 743F8E98E9F9EA3C2072FD2B02C0761A /* FIRVerifyPasswordRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyPasswordRequest.m; path = Firebase/Auth/Source/RPCs/FIRVerifyPasswordRequest.m; sourceTree = ""; }; + 745B383D181FBC0B472D2B90CF6B55BE /* FIRInstanceIDDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDDefines.h; path = Firebase/InstanceID/FIRInstanceIDDefines.h; sourceTree = ""; }; + 74775D0FD6EDB6C6AE96696685E4026D /* FIRAuthSerialTaskQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthSerialTaskQueue.m; path = Firebase/Auth/Source/FIRAuthSerialTaskQueue.m; sourceTree = ""; }; + 74ACCD0FCE01696EC706F9FA92E181CE /* FIRMutableData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRMutableData.m; path = Firebase/Database/Api/FIRMutableData.m; sourceTree = ""; }; + 74EB4C78412E7A014E28B37BB17931F1 /* GULNetworkURLSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULNetworkURLSession.h; path = GoogleUtilities/Network/Private/GULNetworkURLSession.h; sourceTree = ""; }; + 7582367A9CC89EA756282B4B00A070EC /* FPruneForest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPruneForest.m; path = Firebase/Database/Persistence/FPruneForest.m; sourceTree = ""; }; + 759B421DBC627A81273E16EFF2E9A116 /* FTree.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTree.m; path = Firebase/Database/Core/Utilities/FTree.m; sourceTree = ""; }; + 75E989111ED56BF720839D2DD8E763CF /* FIROAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIROAuthProvider.h; path = Firebase/Auth/Source/Public/FIROAuthProvider.h; sourceTree = ""; }; + 75F7F147F931715DA097172FF2AAB6DE /* FIRInstanceIDAPNSInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDAPNSInfo.h; path = Firebase/InstanceID/FIRInstanceIDAPNSInfo.h; sourceTree = ""; }; + 7638732A429BFFC4A6E64402B25A8276 /* FIRInstanceIDTokenFetchOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDTokenFetchOperation.h; path = Firebase/InstanceID/FIRInstanceIDTokenFetchOperation.h; sourceTree = ""; }; + 766694ED65C969FF27944158276BE54A /* coding.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = coding.cc; path = util/coding.cc; sourceTree = ""; }; + 76AB4428F551C0302E72C35C112DB2AC /* FKeepSyncedEventRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FKeepSyncedEventRegistration.m; path = Firebase/Database/Core/View/FKeepSyncedEventRegistration.m; sourceTree = ""; }; + 76B6021838F51EBC2BF85885001FDA10 /* FOperationSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FOperationSource.h; path = Firebase/Database/Core/Operation/FOperationSource.h; sourceTree = ""; }; + 76F6E832E09D75FDB87C2EECEECA6BE2 /* fbase64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fbase64.h; path = Firebase/Database/third_party/SocketRocket/fbase64.h; sourceTree = ""; }; + 7835736A09CD95B047DAC46CBA26BA73 /* status.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = status.cc; path = util/status.cc; sourceTree = ""; }; + 785D0D88B9D557A5137E33F229AE8753 /* FirebaseCore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FirebaseCore.h; path = Firebase/Core/Public/FirebaseCore.h; sourceTree = ""; }; + 78652E65F6DD7C2854B142B5FBB5E088 /* SkyFloatingLabelTextField-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SkyFloatingLabelTextField-dummy.m"; sourceTree = ""; }; + 786B6F6C4CEB7D626291A0FF9C1374F3 /* IQKeyboardManagerConstants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstants.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift; sourceTree = ""; }; + 78D4D224645409CF7B3ED0A882343BBF /* FIRStorageDeleteTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageDeleteTask.h; path = Firebase/Storage/Private/FIRStorageDeleteTask.h; sourceTree = ""; }; + 7910423CDDCAF64471AB4500EC6A8359 /* FIRInstanceIDVersionUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDVersionUtilities.m; path = Firebase/InstanceID/FIRInstanceIDVersionUtilities.m; sourceTree = ""; }; + 79369AE24A7C9F3431DF912830A52555 /* FTreeNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTreeNode.h; path = Firebase/Database/Core/Utilities/FTreeNode.h; sourceTree = ""; }; + 794B7E809C5AF0975CDA2D91CFF0DC40 /* FIRStorageUploadTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageUploadTask.m; path = Firebase/Storage/FIRStorageUploadTask.m; sourceTree = ""; }; + 7969A7406BC11F360BAF1414F1C6EF0C /* FKeyIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FKeyIndex.h; path = Firebase/Database/FKeyIndex.h; sourceTree = ""; }; + 79CA0FBA7D4ADD70AC17CF536CFE4DBF /* FIRAuthNotificationManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthNotificationManager.h; path = Firebase/Auth/Source/FIRAuthNotificationManager.h; sourceTree = ""; }; + 7A19BE5F7DC2C507356BE7F58BC378B0 /* FIRApp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRApp.h; path = Firebase/Core/Public/FIRApp.h; sourceTree = ""; }; + 7B0FE7287CAA1B50B0D9708BC1441E45 /* FirebaseAuthInterop.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseAuthInterop.xcconfig; sourceTree = ""; }; + 7B3FFFA521FFB0E0110E43AB2B848E20 /* FLeafNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLeafNode.m; path = Firebase/Database/Snapshot/FLeafNode.m; sourceTree = ""; }; + 7B4011E6948382995F1545C00FA9DDB8 /* FIROptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIROptions.m; path = Firebase/Core/FIROptions.m; sourceTree = ""; }; + 7BE2825A5214CC391D437F27FCD00EF3 /* FIRDeleteAccountRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDeleteAccountRequest.h; path = Firebase/Auth/Source/RPCs/FIRDeleteAccountRequest.h; sourceTree = ""; }; + 7C09EE80A53F233F52132FE6D9B19652 /* FIRGetOOBConfirmationCodeResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGetOOBConfirmationCodeResponse.h; path = Firebase/Auth/Source/RPCs/FIRGetOOBConfirmationCodeResponse.h; sourceTree = ""; }; + 7CA21109965CC2C4D8BD26BA110B7498 /* FIRComponentContainer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRComponentContainer.m; path = Firebase/Core/FIRComponentContainer.m; sourceTree = ""; }; + 7CABFEE59814C9EF3E20C6EFAF9F9630 /* posix_logger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = posix_logger.h; path = util/posix_logger.h; sourceTree = ""; }; + 7CD4C8A441F1A2126B3E75FBA02E0AEE /* arena.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = arena.cc; path = util/arena.cc; sourceTree = ""; }; + 7D2032377C607DB3CDF2DF23749E7C98 /* FValidation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FValidation.m; path = Firebase/Database/Utilities/FValidation.m; sourceTree = ""; }; + 7DA55E3DF780DB0132DFB8FEF7670747 /* FIRStorageUploadTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageUploadTask.h; path = Firebase/Storage/Public/FIRStorageUploadTask.h; sourceTree = ""; }; + 7DB935F7C8BD9FE6B43670B1FCAA50F2 /* FIRUserInfoImpl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRUserInfoImpl.h; path = Firebase/Auth/Source/FIRUserInfoImpl.h; sourceTree = ""; }; + 7DFAF20F19CD461B3E454300789F56E2 /* FIRAuthDispatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthDispatcher.h; path = Firebase/Auth/Source/FIRAuthDispatcher.h; sourceTree = ""; }; + 7E36BFFD3B6F3C2521750BEC1FC59F81 /* FTreeSortedDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTreeSortedDictionary.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FTreeSortedDictionary.h; sourceTree = ""; }; + 7E84EC7328FE5D7040552BE80A1DAEDE /* dumpfile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dumpfile.h; path = include/leveldb/dumpfile.h; sourceTree = ""; }; + 7ED8028B617190203126AACC91083E5F /* FRepo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FRepo.m; path = Firebase/Database/Core/FRepo.m; sourceTree = ""; }; + 7F1B27510016D10C12D47646167B7A73 /* FMerge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMerge.h; path = Firebase/Database/Core/Operation/FMerge.h; sourceTree = ""; }; + 7F3B1AF90A9A510351D35EC0721AC126 /* FIRStorageConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageConstants.m; path = Firebase/Storage/FIRStorageConstants.m; sourceTree = ""; }; + 7F7BF67FF2913A06C26C86AC20ED02E5 /* FIRAuthCredential_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthCredential_Internal.h; path = Firebase/Auth/Source/FIRAuthCredential_Internal.h; sourceTree = ""; }; + 7FA2E3B3C05C536EBBF05E977EB66FD9 /* FCancelEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FCancelEvent.h; path = Firebase/Database/Core/View/FCancelEvent.h; sourceTree = ""; }; + 7FE6DD8C7D9CF388913249A9BB27A410 /* dbformat.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = dbformat.cc; path = db/dbformat.cc; sourceTree = ""; }; + 8038AB110680893CC62064F2BB7B7C0F /* FIRGoogleAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGoogleAuthCredential.h; path = Firebase/Auth/Source/AuthProviders/Google/FIRGoogleAuthCredential.h; sourceTree = ""; }; + 80904A882D2E112FE1B9CD59DBCED890 /* FirebaseAuthVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FirebaseAuthVersion.m; path = Firebase/Auth/Source/FirebaseAuthVersion.m; sourceTree = ""; }; + 80A21FCE99E4AC7AD1FE06C89F0A325F /* FIRInstanceIDCheckinStore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDCheckinStore.h; path = Firebase/InstanceID/FIRInstanceIDCheckinStore.h; sourceTree = ""; }; + 80EB1E4270653CFEC9AEBEDDFA2391DF /* FIRInstanceIDConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDConstants.m; path = Firebase/InstanceID/FIRInstanceIDConstants.m; sourceTree = ""; }; + 8101A551B82C422CA2B12B8190BEF559 /* FIRActionCodeSettings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRActionCodeSettings.m; path = Firebase/Auth/Source/FIRActionCodeSettings.m; sourceTree = ""; }; + 811057F156C496D1C4F9208656966BDD /* FIRSendVerificationCodeRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSendVerificationCodeRequest.h; path = Firebase/Auth/Source/RPCs/FIRSendVerificationCodeRequest.h; sourceTree = ""; }; + 811491871D37C8EC9D8AB07F9075B8D0 /* FSparseSnapshotTree.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSparseSnapshotTree.m; path = Firebase/Database/Core/FSparseSnapshotTree.m; sourceTree = ""; }; + 814350DAC9500E3EC08915A81A82E22A /* FPersistenceManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPersistenceManager.h; path = Firebase/Database/Persistence/FPersistenceManager.h; sourceTree = ""; }; + 8205A93740A0400CD4761410BEA3E29E /* leveldb-library.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "leveldb-library.xcconfig"; sourceTree = ""; }; + 823B27EB6C90A8DF436CF5BFAB08D6FC /* GULLoggerCodes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULLoggerCodes.h; path = GoogleUtilities/Common/GULLoggerCodes.h; sourceTree = ""; }; + 82D03F89A427F783EE8CE62D993F03AA /* FSyncTree.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSyncTree.m; path = Firebase/Database/Core/FSyncTree.m; sourceTree = ""; }; + 834E58E243B949D40238A851996FE070 /* FIRInstanceIDTokenDeleteOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDTokenDeleteOperation.h; path = Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.h; sourceTree = ""; }; + 83E59D46FA2A2F5BB42A222F0C1D7ECB /* port_posix.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = port_posix.cc; path = port/port_posix.cc; sourceTree = ""; }; + 8403C0FCD81372D2C64EDD69407E321A /* FIRStorageDownloadTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageDownloadTask.m; path = Firebase/Storage/FIRStorageDownloadTask.m; sourceTree = ""; }; + 844FECB61F7E1CE84E7216A21967CC2B /* FIRSignInWithGameCenterResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSignInWithGameCenterResponse.h; path = Firebase/Auth/Source/RPCs/FIRSignInWithGameCenterResponse.h; sourceTree = ""; }; + 84C80CAAD03D6AE19180297CA79F67EC /* FIRUserMetadata_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRUserMetadata_Internal.h; path = Firebase/Auth/Source/FIRUserMetadata_Internal.h; sourceTree = ""; }; + 84FF9BEADC503A0844A823F5945C0CFB /* FImmutableSortedDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FImmutableSortedDictionary.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FImmutableSortedDictionary.h; sourceTree = ""; }; + 85065A76DA8BC7214D303AD4BAC909FC /* FAtomicNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FAtomicNumber.h; path = Firebase/Database/Utilities/FAtomicNumber.h; sourceTree = ""; }; + 852D77632A1F500EA0725975C61253B3 /* FIRErrors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRErrors.h; path = Firebase/Core/Private/FIRErrors.h; sourceTree = ""; }; + 85C4FB3F7235F50BA69CA40AA5C27444 /* FIRAuthWebView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthWebView.h; path = Firebase/Auth/Source/FIRAuthWebView.h; sourceTree = ""; }; + 861B6E3816521BCFFF2D86A52E4DC7AD /* FStringUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FStringUtilities.m; path = Firebase/Database/Utilities/FStringUtilities.m; sourceTree = ""; }; + 864942A138C9AB7B1F3941533B832A79 /* FIROAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIROAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthCredential.m; sourceTree = ""; }; + 866793CC367F998AE39FF3DD3350AE95 /* table_builder.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = table_builder.cc; path = table/table_builder.cc; sourceTree = ""; }; + 86A83AA0BD1A7056D6619D6995A4D262 /* FIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIndex.m; path = Firebase/Database/FIndex.m; sourceTree = ""; }; + 86B381AE8905550E84BA6CFBB4377802 /* FEventRaiser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FEventRaiser.m; path = Firebase/Database/Core/View/FEventRaiser.m; sourceTree = ""; }; + 8758E7C57F30B643374142691B1C75BE /* FIRSignInWithGameCenterResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSignInWithGameCenterResponse.m; path = Firebase/Auth/Source/RPCs/FIRSignInWithGameCenterResponse.m; sourceTree = ""; }; + 87A77351E74C12CB13D2347C22AA624F /* FIRResetPasswordResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRResetPasswordResponse.m; path = Firebase/Auth/Source/RPCs/FIRResetPasswordResponse.m; sourceTree = ""; }; + 883C4E3E07A380766F0FE934B39BCEF2 /* FIRBundleUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRBundleUtil.m; path = Firebase/Core/FIRBundleUtil.m; sourceTree = ""; }; + 890B965AC980A224161EDCBD19692AA1 /* GULNetworkConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULNetworkConstants.h; path = GoogleUtilities/Network/Private/GULNetworkConstants.h; sourceTree = ""; }; + 892A73C1DE60F1EBF74A15E5F269A282 /* FIRStorageComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageComponent.h; path = Firebase/Storage/Private/FIRStorageComponent.h; sourceTree = ""; }; + 898318EC9E7D0D3CCB7BB71B8F2E7FA9 /* FIRSignUpNewUserResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSignUpNewUserResponse.h; path = Firebase/Auth/Source/RPCs/FIRSignUpNewUserResponse.h; sourceTree = ""; }; + 899B0553D5DA571490A164523F258008 /* cache.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = cache.cc; path = util/cache.cc; sourceTree = ""; }; + 89C06E7A5B58E6415AF6AF4E0DDD5A10 /* GoogleUtilities.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GoogleUtilities.xcconfig; sourceTree = ""; }; + 8ABB8A9E3EDE82EDD42204070FEDC8E4 /* FTupleObjects.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleObjects.m; path = Firebase/Database/Utilities/Tuples/FTupleObjects.m; sourceTree = ""; }; + 8B024B8865BB133727235B8B3E43BDE0 /* fbase64.c */ = {isa = PBXFileReference; includeInIndex = 1; name = fbase64.c; path = Firebase/Database/third_party/SocketRocket/fbase64.c; sourceTree = ""; }; + 8B08175914A2569D75EC94EEC56D49D2 /* FLeafNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLeafNode.h; path = Firebase/Database/Snapshot/FLeafNode.h; sourceTree = ""; }; + 8B08F6CAB67FCF250B1D97C0C0A6049D /* FChildChangeAccumulator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FChildChangeAccumulator.h; path = Firebase/Database/Core/View/Filter/FChildChangeAccumulator.h; sourceTree = ""; }; + 8B2FEBB2C85674AF9840A87937A3E70D /* FIRGameCenterAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGameCenterAuthProvider.h; path = Firebase/Auth/Source/Public/FIRGameCenterAuthProvider.h; sourceTree = ""; }; + 8B53E726C17D99EA31B5A21E28AD140E /* FIRInstanceIDKeyPairStore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDKeyPairStore.h; path = Firebase/InstanceID/FIRInstanceIDKeyPairStore.h; sourceTree = ""; }; + 8C527E073394100C826D1B01EA9E8162 /* FIRStoragePath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStoragePath.h; path = Firebase/Storage/Private/FIRStoragePath.h; sourceTree = ""; }; + 8CA5CFBCBBE50C70263534AE6998D298 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + 8CA7E47459FF798B5419652EDFB9DE79 /* FRangeMerge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FRangeMerge.h; path = Firebase/Database/Core/FRangeMerge.h; sourceTree = ""; }; + 8CE43957BD7652CA8005140D23C6C8B7 /* FIRInstanceIDStringEncoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDStringEncoding.m; path = Firebase/InstanceID/FIRInstanceIDStringEncoding.m; sourceTree = ""; }; + 8D6471C9D95AFC4A1DA300D20751E613 /* FIRVerifyClientResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyClientResponse.m; path = Firebase/Auth/Source/RPCs/FIRVerifyClientResponse.m; sourceTree = ""; }; + 8DF267D7963BC873976B6BF2D5DF0B45 /* IQNSArray+Sort.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQNSArray+Sort.swift"; path = "IQKeyboardManagerSwift/Categories/IQNSArray+Sort.swift"; sourceTree = ""; }; + 8DFDACF5C628E1219181BAC57BC9A993 /* write_batch.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = write_batch.cc; path = db/write_batch.cc; sourceTree = ""; }; + 8E25FF8777C92BDD6428E864901E61FF /* GULReachabilityMessageCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULReachabilityMessageCode.h; path = GoogleUtilities/Reachability/Private/GULReachabilityMessageCode.h; sourceTree = ""; }; + 8E787AA64FC0F38B88F3F8909944E6C8 /* FIRAuthErrorUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthErrorUtils.h; path = Firebase/Auth/Source/FIRAuthErrorUtils.h; sourceTree = ""; }; + 8E8F35A0F33093EE0A5F59A38022C012 /* IQKeyboardManagerSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = IQKeyboardManagerSwift.modulemap; sourceTree = ""; }; + 8E907D050201807523CEAB6D847BEC93 /* FIRGoogleAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGoogleAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/Google/FIRGoogleAuthCredential.m; sourceTree = ""; }; + 8EB05AC9E99F9042A7E07EB9C5B05F2F /* FConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FConstants.h; path = Firebase/Database/Constants/FConstants.h; sourceTree = ""; }; + 8ED3AD4C9AB855F3CD877AC4D6DAE742 /* FIRAuthURLPresenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthURLPresenter.h; path = Firebase/Auth/Source/FIRAuthURLPresenter.h; sourceTree = ""; }; + 8EEEF1563F580108C52A150A2639D3EE /* FIRAuthWebUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthWebUtils.h; path = Firebase/Auth/Source/FIRAuthWebUtils.h; sourceTree = ""; }; + 8F24813F060DD8199A17FA59CD50B9E4 /* IQUITextFieldView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUITextFieldView+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUITextFieldView+Additions.swift"; sourceTree = ""; }; + 8F297668412D2D546C79924C58C3443F /* FIRAuthUserDefaultsStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthUserDefaultsStorage.m; path = Firebase/Auth/Source/FIRAuthUserDefaultsStorage.m; sourceTree = ""; }; + 8FA7FC01C500F8BF1CEB114D2508FB2F /* FView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FView.m; path = Firebase/Database/Core/View/FView.m; sourceTree = ""; }; + 8FB25F333449D3F5C9EFE8B1F27D97C1 /* FIRInstanceIDAuthService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDAuthService.h; path = Firebase/InstanceID/FIRInstanceIDAuthService.h; sourceTree = ""; }; + 8FC21FEB2EFD03AE4381358BE4103326 /* FIRVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVersion.h; path = Firebase/Core/Private/FIRVersion.h; sourceTree = ""; }; + 9034BB2B6F23DDCA14C9C86712E63D80 /* FIRInstanceIDTokenInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDTokenInfo.h; path = Firebase/InstanceID/FIRInstanceIDTokenInfo.h; sourceTree = ""; }; + 91038900478D9E4A5521002E8B7705A1 /* FirebaseStorage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FirebaseStorage.framework; path = FirebaseStorage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 91DDB68E7D3FBB14E5E6DDDF197BD072 /* FIRInstanceIDCheckinPreferences.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDCheckinPreferences.m; path = Firebase/InstanceID/FIRInstanceIDCheckinPreferences.m; sourceTree = ""; }; + 92F1DACC26728EDC007507006E6AE730 /* memtable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = memtable.h; path = db/memtable.h; sourceTree = ""; }; + 9324F815BF2D74D30135BC9DC0D82FE6 /* FIRStorageTaskSnapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageTaskSnapshot.h; path = Firebase/Storage/Public/FIRStorageTaskSnapshot.h; sourceTree = ""; }; + 9334B2BD345EC10F99F94EF85FFDC1C1 /* FViewProcessorResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FViewProcessorResult.h; path = Firebase/Database/FViewProcessorResult.h; sourceTree = ""; }; + 935AD241C3CF4EB6D800AD2229F77247 /* FIRInstanceIDTokenFetchOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDTokenFetchOperation.m; path = Firebase/InstanceID/FIRInstanceIDTokenFetchOperation.m; sourceTree = ""; }; + 938663BB94CF6FE7FDFC220D345D2B84 /* IQKeyboardReturnKeyHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardReturnKeyHandler.swift; path = IQKeyboardManagerSwift/IQKeyboardReturnKeyHandler.swift; sourceTree = ""; }; + 9429DEE5FBDD34FABDBD922F6F269A24 /* FirebaseCore.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseCore.xcconfig; sourceTree = ""; }; + 947B3B770D1B1E30CE0004400A7E825F /* FIRLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRLogger.m; path = Firebase/Core/FIRLogger.m; sourceTree = ""; }; + 94DBEAAA2DBC7F28FBBCC2B5F21F3931 /* FIRAuthBackend.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthBackend.m; path = Firebase/Auth/Source/RPCs/FIRAuthBackend.m; sourceTree = ""; }; + 953694C28DFBDF81EA5E3766D5D35494 /* FUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FUtilities.m; path = Firebase/Database/Utilities/FUtilities.m; sourceTree = ""; }; + 9616F08E4D2CD82DE4D20C02A0E4AAEC /* FIRSetAccountInfoResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSetAccountInfoResponse.h; path = Firebase/Auth/Source/RPCs/FIRSetAccountInfoResponse.h; sourceTree = ""; }; + 96B1EB9467489D616FC3FAFFE2F41F8C /* FTupleBoolBlock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleBoolBlock.m; path = Firebase/Database/Utilities/Tuples/FTupleBoolBlock.m; sourceTree = ""; }; + 9767B5B8D7BE7971EF665A40B2BBFCD1 /* FIRInstanceIDStore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDStore.m; path = Firebase/InstanceID/FIRInstanceIDStore.m; sourceTree = ""; }; + 97B5AB2B2C36BD945292787D35F5A5DC /* FTypedefs_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTypedefs_Private.h; path = Firebase/Database/Api/Private/FTypedefs_Private.h; sourceTree = ""; }; + 97DA82E1C8A7937DE3A78862C5F64DAD /* FirebaseInstanceID-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FirebaseInstanceID-umbrella.h"; sourceTree = ""; }; + 97E691D4DE9C94E842D90F09716FE8E7 /* c.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = c.h; path = include/leveldb/c.h; sourceTree = ""; }; + 9828827984BED1F74C34E74D16B575C6 /* bloom.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = bloom.cc; path = util/bloom.cc; sourceTree = ""; }; + 983071EAD7D8C1A000B04C6F5CF00B47 /* FIndexedNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIndexedNode.m; path = Firebase/Database/Snapshot/FIndexedNode.m; sourceTree = ""; }; + 98ADC475E84235BC84ADBA05C35685D5 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; + 98B9CE0ECF2982C16C6CB1ABF951C2E0 /* FTupleUserCallback.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleUserCallback.m; path = Firebase/Database/Utilities/Tuples/FTupleUserCallback.m; sourceTree = ""; }; + 991C861E49092079229105D00DA369A5 /* FPathIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPathIndex.h; path = Firebase/Database/FPathIndex.h; sourceTree = ""; }; + 9981BD1803C2C9DD386C23B07E43BC3A /* FIRInstanceIDLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDLogger.h; path = Firebase/InstanceID/FIRInstanceIDLogger.h; sourceTree = ""; }; + 99921180B1DC194FD9E541CB62501BCA /* FSnapshotHolder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSnapshotHolder.h; path = Firebase/Database/Core/FSnapshotHolder.h; sourceTree = ""; }; + 99B21FBC2D191DE85DF017800C02B772 /* comparator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = comparator.h; path = include/leveldb/comparator.h; sourceTree = ""; }; + 9A04C5D00BADEB6DF65EC5481CF5F027 /* FirebaseDatabase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FirebaseDatabase.modulemap; sourceTree = ""; }; + 9A05FF3AAA6445246323B608A93D05D7 /* GTMSessionUploadFetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionUploadFetcher.m; path = Source/GTMSessionUploadFetcher.m; sourceTree = ""; }; + 9A275416A54B81938577085A5688EF7D /* pb_decode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb_decode.h; sourceTree = ""; }; + 9B1B9D48BDCE8D0A06AB7491CAD8B1B8 /* FIRInstanceIDKeychain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDKeychain.h; path = Firebase/InstanceID/FIRInstanceIDKeychain.h; sourceTree = ""; }; + 9B4E1D6BCCCB72AED5216B1AD683C7B9 /* FIRVerifyCustomTokenRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyCustomTokenRequest.m; path = Firebase/Auth/Source/RPCs/FIRVerifyCustomTokenRequest.m; sourceTree = ""; }; + 9C1097A0630FCD1810EECDB446671CD9 /* log_writer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = log_writer.h; path = db/log_writer.h; sourceTree = ""; }; + 9C149003C9EEA0E845A4B53703D6882D /* db_impl.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = db_impl.cc; path = db/db_impl.cc; sourceTree = ""; }; + 9C1BC07A36F10FCD81E75C23689FD13B /* FIRStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorage.m; path = Firebase/Storage/FIRStorage.m; sourceTree = ""; }; + 9CF1D03F8C80D00A99EBC6CD5FA4146E /* FirebaseStorage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FirebaseStorage-umbrella.h"; sourceTree = ""; }; + 9D7667F906E1254B3B5E31B2509482B7 /* FIRStorageTaskSnapshot_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageTaskSnapshot_Private.h; path = Firebase/Storage/Private/FIRStorageTaskSnapshot_Private.h; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9DB1AA942B73E0FDCEDEB651EB283C36 /* log_format.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = log_format.h; path = db/log_format.h; sourceTree = ""; }; + 9DB244C96606BCFED8AF2BA281C1DE1C /* FirebaseCore-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FirebaseCore-umbrella.h"; sourceTree = ""; }; + 9E1DF5F6F099E1E9BA95677B5504DE02 /* FIRAuthNotificationManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthNotificationManager.m; path = Firebase/Auth/Source/FIRAuthNotificationManager.m; sourceTree = ""; }; + 9E2808A79061EECC10CD68C5AC371C8F /* FIRStorageUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageUtils.h; path = Firebase/Storage/Private/FIRStorageUtils.h; sourceTree = ""; }; + 9EEC37D3DF9487EE47D79355154E1FB3 /* FIRInstanceIDVersionUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDVersionUtilities.h; path = Firebase/InstanceID/FIRInstanceIDVersionUtilities.h; sourceTree = ""; }; 9F16CC78A164BDC25A829E764F398E1E /* Pods-FoodApp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-FoodApp-frameworks.sh"; sourceTree = ""; }; - 9F3E8A735316EEF206EAC0936A51B47F /* FStringUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FStringUtilities.h; path = Firebase/Database/Utilities/FStringUtilities.h; sourceTree = ""; }; - 9F8D3D02A27587DCFB8BE61D3B8D5145 /* FChildChangeAccumulator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FChildChangeAccumulator.m; path = Firebase/Database/Core/View/Filter/FChildChangeAccumulator.m; sourceTree = ""; }; - A00A9EF2134ECDDC82A1A3DB4EADF55A /* nanopb-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nanopb-prefix.pch"; sourceTree = ""; }; - A05F6A9BC071DEA50BE7948CA57ABD60 /* FIRAuthKeychain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthKeychain.m; path = Firebase/Auth/Source/FIRAuthKeychain.m; sourceTree = ""; }; - A0737E36676AA3ADD7D109D3A5BB75DE /* thread_annotations.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = thread_annotations.h; path = port/thread_annotations.h; sourceTree = ""; }; - A082045DDD2F14D1271C63E9A1A1D9C5 /* FIROAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIROAuthCredential.h; path = Firebase/Auth/Source/Public/FIROAuthCredential.h; sourceTree = ""; }; - A0986B6AD673E7D78EB6FB508D8EC150 /* FIRGitHubAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGitHubAuthProvider.h; path = Firebase/Auth/Source/Public/FIRGitHubAuthProvider.h; sourceTree = ""; }; - A0FD58516EF4F1ACE256C89526B79DBF /* SkyFloatingLabelTextField.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SkyFloatingLabelTextField.swift; path = Sources/SkyFloatingLabelTextField.swift; sourceTree = ""; }; - A15540E320476727C58633F8BDF310DE /* FIRAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthCredential.h; path = Firebase/Auth/Source/Public/FIRAuthCredential.h; sourceTree = ""; }; - A160366642204F7D0E485CEE01F19A5F /* FIRComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRComponent.h; path = Firebase/Core/Private/FIRComponent.h; sourceTree = ""; }; - A1B17C847E98CDDA439AFEFFFA4907A4 /* FCachePolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FCachePolicy.m; path = Firebase/Database/Persistence/FCachePolicy.m; sourceTree = ""; }; - A25FAE252409F1D18A4A93E988C990F9 /* FPruneForest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPruneForest.h; path = Firebase/Database/Persistence/FPruneForest.h; sourceTree = ""; }; - A28495A9579F9A0AED8E392DB2F68198 /* FLLRBValueNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLLRBValueNode.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FLLRBValueNode.m; sourceTree = ""; }; - A28820B9AAB019B26C0CD13F658FB084 /* leveldb-library.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "leveldb-library.xcconfig"; sourceTree = ""; }; - A3437890E45B7179924CE471E0194FB1 /* FPathIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPathIndex.h; path = Firebase/Database/FPathIndex.h; sourceTree = ""; }; - A3765B98D0FB3B3D2ABC84CD35697C2A /* FIRInstanceIDCheckinPreferences+Internal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "FIRInstanceIDCheckinPreferences+Internal.m"; path = "Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.m"; sourceTree = ""; }; - A389418F62EC453B4144889466014F44 /* FIRStorageUploadTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageUploadTask.h; path = Firebase/Storage/Public/FIRStorageUploadTask.h; sourceTree = ""; }; - A39B5CC64FD68103B773F6FBF2B6EAFB /* two_level_iterator.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = two_level_iterator.cc; path = table/two_level_iterator.cc; sourceTree = ""; }; - A3EEA32E2C9CA48F9A9271F62D61FE59 /* FNextPushId.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FNextPushId.h; path = Firebase/Database/Utilities/FNextPushId.h; sourceTree = ""; }; - A41503DC80A14FF4489AEDEEC437489F /* filename.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = filename.h; path = db/filename.h; sourceTree = ""; }; - A4371695BB8BE0B7F036B798A5184995 /* FIRVerifyAssertionRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyAssertionRequest.m; path = Firebase/Auth/Source/RPCs/FIRVerifyAssertionRequest.m; sourceTree = ""; }; - A47F76D6B9AD3BB9A2FB8C8C3B1141F7 /* FIRAuthRPCRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthRPCRequest.h; path = Firebase/Auth/Source/RPCs/FIRAuthRPCRequest.h; sourceTree = ""; }; - A4EE74BF0062C5527D4F1068C89383EC /* FIRStorageDownloadTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageDownloadTask.h; path = Firebase/Storage/Public/FIRStorageDownloadTask.h; sourceTree = ""; }; - A4FF1E23355AEF0D4A5F85D607AAE585 /* FIRInstanceIDUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDUtilities.h; path = Firebase/InstanceID/FIRInstanceIDUtilities.h; sourceTree = ""; }; - A5200884DCB20D1C532F3365D3BF7138 /* FSyncPoint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSyncPoint.m; path = Firebase/Database/Core/FSyncPoint.m; sourceTree = ""; }; + 9F596B3E32FC05B4C91E22401373203D /* table.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = table.cc; path = table/table.cc; sourceTree = ""; }; + 9F70C7096BB047DE6ACA4EAC80921653 /* FIRAuthInternalErrors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthInternalErrors.h; path = Firebase/Auth/Source/FIRAuthInternalErrors.h; sourceTree = ""; }; + 9F7A17A2C2E384EF92E0D83BFEF7E76B /* FIRSignUpNewUserRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSignUpNewUserRequest.m; path = Firebase/Auth/Source/RPCs/FIRSignUpNewUserRequest.m; sourceTree = ""; }; + 9F7D2BB37BA06C528FE19FEE336D871D /* FIRComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRComponent.m; path = Firebase/Core/FIRComponent.m; sourceTree = ""; }; + 9FF89B3977197928B5282A672130B448 /* pb_encode.c */ = {isa = PBXFileReference; includeInIndex = 1; path = pb_encode.c; sourceTree = ""; }; + A01181B65BC03574C55316D990429D2B /* GULUserDefaults.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULUserDefaults.m; path = GoogleUtilities/UserDefaults/GULUserDefaults.m; sourceTree = ""; }; + A0257596A8EFB43D3C35BD21539ABFB3 /* FIRSendVerificationCodeResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSendVerificationCodeResponse.h; path = Firebase/Auth/Source/RPCs/FIRSendVerificationCodeResponse.h; sourceTree = ""; }; + A08E99F37C9690951356608241428D81 /* GTMSessionFetcher-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GTMSessionFetcher-umbrella.h"; sourceTree = ""; }; + A17C4F6BCDB63D675280646E4291A96E /* FImmutableSortedSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FImmutableSortedSet.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FImmutableSortedSet.h; sourceTree = ""; }; + A1BB86B6D726ACA89A7085BFB31D7BE9 /* FIRCreateAuthURIResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRCreateAuthURIResponse.m; path = Firebase/Auth/Source/RPCs/FIRCreateAuthURIResponse.m; sourceTree = ""; }; + A1E6F23B492BF14104B26BF4788B28B9 /* FConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FConstants.m; path = Firebase/Database/Constants/FConstants.m; sourceTree = ""; }; + A2519A76F273A6F73D69D079771DC34F /* db_iter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = db_iter.h; path = db/db_iter.h; sourceTree = ""; }; + A313DAEBD92EE015CDC5E4CC91B57178 /* options.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = options.h; path = include/leveldb/options.h; sourceTree = ""; }; + A31BB33948A1415AD192E9C9F4315E7D /* FIRAuthTokenResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthTokenResult.m; path = Firebase/Auth/Source/FIRAuthTokenResult.m; sourceTree = ""; }; + A34232D2D10407050FE03924D7C2A71D /* FQueryParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FQueryParams.m; path = Firebase/Database/Core/FQueryParams.m; sourceTree = ""; }; + A34F601192ADDE97929034D398D63FF0 /* FRepoManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FRepoManager.h; path = Firebase/Database/Core/FRepoManager.h; sourceTree = ""; }; + A36B4B0B985EA258F6CE173AD9BA198A /* FIRAuthDataResult_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthDataResult_Internal.h; path = Firebase/Auth/Source/FIRAuthDataResult_Internal.h; sourceTree = ""; }; + A38D7B57937E25FBA84FC4DB7F612980 /* FIRStorageUploadTask_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageUploadTask_Private.h; path = Firebase/Storage/Private/FIRStorageUploadTask_Private.h; sourceTree = ""; }; + A3AD76FF368DB68E944118748DE289EA /* two_level_iterator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = two_level_iterator.h; path = table/two_level_iterator.h; sourceTree = ""; }; + A42342161B2DA0340887869176407F47 /* FIRSetAccountInfoResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSetAccountInfoResponse.m; path = Firebase/Auth/Source/RPCs/FIRSetAccountInfoResponse.m; sourceTree = ""; }; + A48096D2D99533B410B082D8B5C2A1A4 /* SkyFloatingLabelTextField.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SkyFloatingLabelTextField.swift; path = Sources/SkyFloatingLabelTextField.swift; sourceTree = ""; }; + A49673BB19ED1D52AD844C504FA1059B /* FPruneForest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPruneForest.h; path = Firebase/Database/Persistence/FPruneForest.h; sourceTree = ""; }; + A4D46D869DB97ED3E2574BD8EA115E4A /* FView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FView.h; path = Firebase/Database/Core/View/FView.h; sourceTree = ""; }; + A4FAD54AF24FB83CF12F293704D03C36 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; + A5220DBE2CD2244D7B6C824940063005 /* APLevelDB.mm */ = {isa = PBXFileReference; includeInIndex = 1; name = APLevelDB.mm; path = "Firebase/Database/third_party/Wrap-leveldb/APLevelDB.mm"; sourceTree = ""; }; A5565C0126D05A886ADF3ED07BF6B8C9 /* Pods-FoodApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FoodApp.release.xcconfig"; sourceTree = ""; }; - A5AA5F0780DFCE3F315867F4FAB9EBF8 /* FIRAuthSerialTaskQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthSerialTaskQueue.h; path = Firebase/Auth/Source/FIRAuthSerialTaskQueue.h; sourceTree = ""; }; - A5B3A317741BE3412E807AAD0DD15F50 /* FIRVerifyClientRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyClientRequest.m; path = Firebase/Auth/Source/RPCs/FIRVerifyClientRequest.m; sourceTree = ""; }; - A5D8AECCD534F19DA1C837E5E89F4AA7 /* memtable.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = memtable.cc; path = db/memtable.cc; sourceTree = ""; }; - A5E9E62FA9990E51C7843FE160B03BBD /* FTupleBoolBlock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleBoolBlock.m; path = Firebase/Database/Utilities/Tuples/FTupleBoolBlock.m; sourceTree = ""; }; - A61A8F6AAA65CF09CEF36DF23D7C19B5 /* FIRDatabaseComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDatabaseComponent.m; path = Firebase/Database/Api/FIRDatabaseComponent.m; sourceTree = ""; }; - A63E7400BF39FBF47E6F78F82F220A77 /* FIRStorageDownloadTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageDownloadTask.m; path = Firebase/Storage/FIRStorageDownloadTask.m; sourceTree = ""; }; - A66A3B40662E94017A77F0202A8E82FB /* FTreeSortedDictionaryEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTreeSortedDictionaryEnumerator.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FTreeSortedDictionaryEnumerator.m; sourceTree = ""; }; - A74CE0437D1733FAB9E082C23D5C551B /* FirebaseStorage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FirebaseStorage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A7B6D3C8A99058AC962CCF41D9F01DC1 /* FIRAuthAppCredentialManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthAppCredentialManager.h; path = Firebase/Auth/Source/FIRAuthAppCredentialManager.h; sourceTree = ""; }; + A5608247631FD07A69614088751E951A /* leveldb-library-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "leveldb-library-Info.plist"; sourceTree = ""; }; + A5B3396CD7B2D4607D4E265ACBE2006C /* FTupleObjectNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleObjectNode.m; path = Firebase/Database/Utilities/Tuples/FTupleObjectNode.m; sourceTree = ""; }; + A5B8B79504BFED0A612E40C3C8948A90 /* leveldb-library-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "leveldb-library-prefix.pch"; sourceTree = ""; }; + A5E2C194D1E0B47718A48C88C4BB76C3 /* FIRVerifyPasswordResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyPasswordResponse.m; path = Firebase/Auth/Source/RPCs/FIRVerifyPasswordResponse.m; sourceTree = ""; }; + A5F847BCB6DCB0A897FEB97B315F764F /* FirebaseDatabase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FirebaseDatabase-dummy.m"; sourceTree = ""; }; + A65DE8DD23ECCEA88F5D3B823D9597B6 /* IQKeyboardManagerSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-prefix.pch"; sourceTree = ""; }; + A6A8B1B2ECE0D7274E58D0794ABCB042 /* IQKeyboardManager.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = IQKeyboardManager.bundle; path = IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle; sourceTree = ""; }; + A6B4B34432D9985C294E8A3A06093EDB /* FViewProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FViewProcessor.m; path = Firebase/Database/FViewProcessor.m; sourceTree = ""; }; + A799292248219E9013E7DD107E235304 /* FQuerySpec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FQuerySpec.h; path = Firebase/Database/Core/FQuerySpec.h; sourceTree = ""; }; A7D05A88165A4534979F2118A069E5AD /* Pods-FoodApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-FoodApp-umbrella.h"; sourceTree = ""; }; - A7D7811A970E75D3A40194BD1010A88E /* block_builder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = block_builder.h; path = table/block_builder.h; sourceTree = ""; }; - A8366243C7D4EDE235C158FAD9285F55 /* GTMSessionFetcher.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GTMSessionFetcher.modulemap; sourceTree = ""; }; - A86BAA17746AB2A76A58A26849567470 /* pb_common.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb_common.h; sourceTree = ""; }; - A8C073941D87EDA4853F656767D46C19 /* FConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FConstants.h; path = Firebase/Database/Constants/FConstants.h; sourceTree = ""; }; - A924453706D0B054CC5FE39B4B64D5FD /* FIRGetProjectConfigResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGetProjectConfigResponse.m; path = Firebase/Auth/Source/RPCs/FIRGetProjectConfigResponse.m; sourceTree = ""; }; - A9329D0C552C07997A26E29D47F04888 /* table_builder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = table_builder.h; path = include/leveldb/table_builder.h; sourceTree = ""; }; - A9672A4DCB8C9BA9E9D6C762343E7D9B /* FIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIndex.m; path = Firebase/Database/FIndex.m; sourceTree = ""; }; - A9B43B3A7599ED9B6D5F543DB197466C /* FIRSignUpNewUserResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSignUpNewUserResponse.m; path = Firebase/Auth/Source/RPCs/FIRSignUpNewUserResponse.m; sourceTree = ""; }; - AA5B14AE26513421AA36E853BC69ECA7 /* FServerValues.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FServerValues.h; path = Firebase/Database/Core/FServerValues.h; sourceTree = ""; }; - AA96F671271411F0272D3373152688DD /* FTupleFirebase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleFirebase.h; path = Firebase/Database/Utilities/Tuples/FTupleFirebase.h; sourceTree = ""; }; - AAD4FBBA400D0C6F9E5873FD95BC8AFC /* NSError+FIRInstanceID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSError+FIRInstanceID.h"; path = "Firebase/InstanceID/NSError+FIRInstanceID.h"; sourceTree = ""; }; - AAF5035E2EADE55B74944C24B28F3C3F /* FIRAppAssociationRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAppAssociationRegistration.h; path = Firebase/Core/Private/FIRAppAssociationRegistration.h; sourceTree = ""; }; - AB9F9A4DDFBD010836D6BED1A9DC9641 /* FIRInstanceIDURLQueryItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDURLQueryItem.h; path = Firebase/InstanceID/FIRInstanceIDURLQueryItem.h; sourceTree = ""; }; - ABA464C82DC9E70F1A6864E2BD8A2DF9 /* write_batch_internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = write_batch_internal.h; path = db/write_batch_internal.h; sourceTree = ""; }; - ABAD483290B2EF5BE8FAEE1AF91ACEAF /* FKeepSyncedEventRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FKeepSyncedEventRegistration.m; path = Firebase/Database/Core/View/FKeepSyncedEventRegistration.m; sourceTree = ""; }; - AC39AED3931D2FB2C7BCCB4DBC9D1834 /* FMaxNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMaxNode.m; path = Firebase/Database/FMaxNode.m; sourceTree = ""; }; - ACECEFB8907FDE190C32EC5CB35721D0 /* FirebaseStorage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FirebaseStorage-dummy.m"; sourceTree = ""; }; - AD7238082E2DE76CE4BE772D49F32B5E /* GTMSessionUploadFetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionUploadFetcher.m; path = Source/GTMSessionUploadFetcher.m; sourceTree = ""; }; - ADF1E1BF913E7933D79D4E632E9991A1 /* FIRStorageErrors.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageErrors.m; path = Firebase/Storage/FIRStorageErrors.m; sourceTree = ""; }; - AEC92DCCE9B21D31F8874DD81009CE31 /* slice.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = slice.h; path = include/leveldb/slice.h; sourceTree = ""; }; - AF37F6017CDFEBB99829557BBFD81165 /* FIRBundleUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRBundleUtil.m; path = Firebase/Core/FIRBundleUtil.m; sourceTree = ""; }; - AF6DBF5CDCCA2BA453458F21F0B6CCCE /* FIRInstanceIDCheckinPreferences.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDCheckinPreferences.h; path = Firebase/InstanceID/FIRInstanceIDCheckinPreferences.h; sourceTree = ""; }; - AFA4D39C812A9736A68FE499ADB798E1 /* env_posix_test_helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = env_posix_test_helper.h; path = util/env_posix_test_helper.h; sourceTree = ""; }; - B019CAC921E53E2C80B07F1D11C99313 /* FPendingPut.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPendingPut.m; path = Firebase/Database/Persistence/FPendingPut.m; sourceTree = ""; }; - B07870B373F3CBE57521745E377A615A /* dbformat.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = dbformat.cc; path = db/dbformat.cc; sourceTree = ""; }; - B0B60F8E71EAF84A265B96758857FB14 /* FIRDatabaseConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseConfig.h; path = Firebase/Database/Api/FIRDatabaseConfig.h; sourceTree = ""; }; - B0ED57517179202968E9ECB7CA732AEE /* db_iter.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = db_iter.cc; path = db/db_iter.cc; sourceTree = ""; }; - B12B024257603D47BCF3B3683418D7B4 /* FIRInstanceIDKeyPairStore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDKeyPairStore.h; path = Firebase/InstanceID/FIRInstanceIDKeyPairStore.h; sourceTree = ""; }; - B18B2E4739D2C1E5C30CFC1A02E181C1 /* FIRDatabaseConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDatabaseConfig.m; path = Firebase/Database/Api/FIRDatabaseConfig.m; sourceTree = ""; }; - B1CF1D6A5AE5A851F33F8AAB1542D012 /* FAckUserWrite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FAckUserWrite.m; path = Firebase/Database/Core/Operation/FAckUserWrite.m; sourceTree = ""; }; - B27D67515558C81527EBF9AB7F7CCE94 /* FIRResetPasswordResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRResetPasswordResponse.h; path = Firebase/Auth/Source/RPCs/FIRResetPasswordResponse.h; sourceTree = ""; }; - B3051E912E2DF6FAA99B7AE07119B0AF /* FEventEmitter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FEventEmitter.h; path = Firebase/Database/Utilities/FEventEmitter.h; sourceTree = ""; }; - B31CA0E260796BFF7ABD942534D365D9 /* FirebaseDatabase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FirebaseDatabase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A8A68045783992B9D13A7B0EE8C4941D /* IQBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift; sourceTree = ""; }; + A8ED4F2B61985EE1E3984B6677548482 /* FIRAuthBackend.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthBackend.h; path = Firebase/Auth/Source/RPCs/FIRAuthBackend.h; sourceTree = ""; }; + A9023140F8DDBD51A3EF367CB6A220B1 /* FIRAuthAPNSToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthAPNSToken.h; path = Firebase/Auth/Source/FIRAuthAPNSToken.h; sourceTree = ""; }; + A90C6A6C445A44B5DB5802E8889A4DEB /* FIRServerValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRServerValue.h; path = Firebase/Database/Public/FIRServerValue.h; sourceTree = ""; }; + A91868FFED3A95B12A17081458851E70 /* testharness.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = testharness.cc; path = util/testharness.cc; sourceTree = ""; }; + A939BDBEF8563D5C74BAAB2A5CA500BC /* FCachePolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FCachePolicy.m; path = Firebase/Database/Persistence/FCachePolicy.m; sourceTree = ""; }; + A963FF14DFDC2978053A6A8330294079 /* FIRGetAccountInfoRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGetAccountInfoRequest.m; path = Firebase/Auth/Source/RPCs/FIRGetAccountInfoRequest.m; sourceTree = ""; }; + A9A0F2EFA35824DBE5C904F67C0045BA /* FWriteTree.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FWriteTree.m; path = Firebase/Database/Core/FWriteTree.m; sourceTree = ""; }; + A9A32DBF40E3746C2C4149C5C0058AD0 /* IQKeyboardManagerSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = IQKeyboardManagerSwift.framework; path = IQKeyboardManagerSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A9BB181D66A6560323ED5EC2A5A9F9F3 /* FDataEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FDataEvent.m; path = Firebase/Database/Core/View/FDataEvent.m; sourceTree = ""; }; + AA0A0E1B5E75DDB702AE7026F54977F1 /* FIRAuthWebViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthWebViewController.m; path = Firebase/Auth/Source/FIRAuthWebViewController.m; sourceTree = ""; }; + AA880AA39FEE0148B7A1C086B364313C /* FNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FNode.h; path = Firebase/Database/Snapshot/FNode.h; sourceTree = ""; }; + AB90BB381F001406E272B1D86AE4CE4F /* FLLRBNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLLRBNode.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FLLRBNode.h; sourceTree = ""; }; + AC50F2F5FB6689FCC37705765601AB4A /* GoogleUtilities.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GoogleUtilities.modulemap; sourceTree = ""; }; + ACC3CD4ABE9C03C98ABBE2E5FD5D0757 /* FIRStorageTokenAuthorizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageTokenAuthorizer.h; path = Firebase/Storage/Private/FIRStorageTokenAuthorizer.h; sourceTree = ""; }; + AD36EBDEB620D0B834B1FF1741D2A211 /* FIRInstanceIDBackupExcludedPlist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDBackupExcludedPlist.h; path = Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.h; sourceTree = ""; }; + AD4894CE770725E86ECD6D7FC3BA4516 /* FIRAuthAppCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthAppCredential.m; path = Firebase/Auth/Source/FIRAuthAppCredential.m; sourceTree = ""; }; + AD6F39147D010BA530243E1F085BC339 /* FIRVerifyAssertionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyAssertionResponse.h; path = Firebase/Auth/Source/RPCs/FIRVerifyAssertionResponse.h; sourceTree = ""; }; + ADA7B46D555005B7006926636B5B39BF /* comparator.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = comparator.cc; path = util/comparator.cc; sourceTree = ""; }; + AE21DF376D8F68A67CD3B8D095097691 /* SkyFloatingLabelTextField.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SkyFloatingLabelTextField.framework; path = SkyFloatingLabelTextField.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AE25DB2DFD74BD49CD57DA7C895F93E4 /* FIRInstanceIDKeychain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDKeychain.m; path = Firebase/InstanceID/FIRInstanceIDKeychain.m; sourceTree = ""; }; + AE96AA2D30EE99934B713A30EBEFD7F8 /* FListenComplete.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FListenComplete.m; path = Firebase/Database/FListenComplete.m; sourceTree = ""; }; + AEB770A77D4A5C16DF28E7AEDE2364E2 /* FClock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FClock.m; path = Firebase/Database/FClock.m; sourceTree = ""; }; + AF1F72A70ADF5D64ECC7F4EA995A0187 /* FIRStorageTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageTask.h; path = Firebase/Storage/Public/FIRStorageTask.h; sourceTree = ""; }; + AF23E6676267077074F97643B2FF9562 /* table_cache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = table_cache.h; path = db/table_cache.h; sourceTree = ""; }; + AF47C0C06B32B682CF0E92017C094A72 /* FIRDatabaseComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDatabaseComponent.m; path = Firebase/Database/Api/FIRDatabaseComponent.m; sourceTree = ""; }; + AF4C1D8768916983C5BAB72F4DE5E1BD /* FAckUserWrite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FAckUserWrite.h; path = Firebase/Database/Core/Operation/FAckUserWrite.h; sourceTree = ""; }; + AF4C3B754BF9328967EF15538AECFC62 /* FIRSendVerificationCodeRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSendVerificationCodeRequest.m; path = Firebase/Auth/Source/RPCs/FIRSendVerificationCodeRequest.m; sourceTree = ""; }; + B00B4338D71EDABE1B0159C2C0CDEE56 /* FIRPhoneAuthCredential_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRPhoneAuthCredential_Internal.h; path = Firebase/Auth/Source/AuthProviders/Phone/FIRPhoneAuthCredential_Internal.h; sourceTree = ""; }; + B0391512D5E1DA0C936666B3CEAD47FF /* FIRDatabaseQuery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseQuery.h; path = Firebase/Database/Public/FIRDatabaseQuery.h; sourceTree = ""; }; + B10440FBBECFB215F0DDD5749B55B163 /* FIRDataSnapshot_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDataSnapshot_Private.h; path = Firebase/Database/Api/Private/FIRDataSnapshot_Private.h; sourceTree = ""; }; + B1068A1364C95545E4E13793A692FEB9 /* GULAppEnvironmentUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULAppEnvironmentUtil.h; path = GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.h; sourceTree = ""; }; + B169644770EDA259FF9B881F4236DFEE /* db_iter.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = db_iter.cc; path = db/db_iter.cc; sourceTree = ""; }; + B2298071D9418C7806D1E0DC98CADC31 /* FIRInstanceIDCheckinService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDCheckinService.m; path = Firebase/InstanceID/FIRInstanceIDCheckinService.m; sourceTree = ""; }; B32170F2C1D880AFF5CDFB357914CDC8 /* Pods-FoodApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-FoodApp.modulemap"; sourceTree = ""; }; - B358DCEE74F597D184284C5A367C51DB /* c.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = c.h; path = include/leveldb/c.h; sourceTree = ""; }; - B3A9A3236666F99DA181A7736384737A /* FIRSecureTokenService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSecureTokenService.m; path = Firebase/Auth/Source/FIRSecureTokenService.m; sourceTree = ""; }; - B3B9B5914D0996581B41D838709FD693 /* FIROptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIROptions.m; path = Firebase/Core/FIROptions.m; sourceTree = ""; }; - B3D99B760348706303660256794EA8A7 /* snapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = snapshot.h; path = db/snapshot.h; sourceTree = ""; }; - B3F94C49BA00853911BFA9EEEC2974CD /* GTMSessionFetcherLogging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionFetcherLogging.h; path = Source/GTMSessionFetcherLogging.h; sourceTree = ""; }; - B4110C43E4C20610E6850CE7A37890B1 /* GULLoggerCodes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULLoggerCodes.h; path = GoogleUtilities/Common/GULLoggerCodes.h; sourceTree = ""; }; - B482AE8F6849922FB269B9A3FE7622F4 /* FIRInstanceIDKeyPairUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDKeyPairUtilities.m; path = Firebase/InstanceID/FIRInstanceIDKeyPairUtilities.m; sourceTree = ""; }; - B4E372BA6BDBDF66E522CB338400C2E2 /* FirebaseDatabase-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FirebaseDatabase-Info.plist"; sourceTree = ""; }; - B543EE2AE175BC23D7401CBE50EF0A52 /* FIRServerValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRServerValue.m; path = Firebase/Database/Api/FIRServerValue.m; sourceTree = ""; }; - B56D704C5EE166BAAF557C789184A2B9 /* FIRAuthKeychain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthKeychain.h; path = Firebase/Auth/Source/FIRAuthKeychain.h; sourceTree = ""; }; - B613D86CE910A8393F82455E873395CF /* FIRInstanceIDBackupExcludedPlist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDBackupExcludedPlist.m; path = Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.m; sourceTree = ""; }; - B65FABCEA365FCDFFDB2A6491A6D086C /* FRepo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FRepo.h; path = Firebase/Database/Core/FRepo.h; sourceTree = ""; }; - B70A9AB401D26851BAE07CFA4AC7E49B /* FTransformedEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTransformedEnumerator.m; path = Firebase/Database/FTransformedEnumerator.m; sourceTree = ""; }; - B79D5D278E18E8412B8077A070C3829A /* leveldb-library-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "leveldb-library-dummy.m"; sourceTree = ""; }; - B7AC0449F1AC4A52DC8070915CFF4F2F /* FTupleObjectNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleObjectNode.h; path = Firebase/Database/Utilities/Tuples/FTupleObjectNode.h; sourceTree = ""; }; - B7C7007AA00308EF6ADB44AA8D9769BC /* FIREmailPasswordAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIREmailPasswordAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/EmailPassword/FIREmailPasswordAuthCredential.m; sourceTree = ""; }; - B815965A4C80F9CCA191C0F5D9ED3D95 /* FIROAuthCredential_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIROAuthCredential_Internal.h; path = Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthCredential_Internal.h; sourceTree = ""; }; - B84487D3C626B10A1D3DB230108D4462 /* FIRInstanceID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceID.m; path = Firebase/InstanceID/FIRInstanceID.m; sourceTree = ""; }; - B84CAAEDE2700D1F4B947F4278E831EC /* FTupleBoolBlock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleBoolBlock.h; path = Firebase/Database/Utilities/Tuples/FTupleBoolBlock.h; sourceTree = ""; }; - B881F2682F6BB345F67A08D8008FFFB3 /* FPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPath.h; path = Firebase/Database/Core/Utilities/FPath.h; sourceTree = ""; }; - B8A7CC6912FE9817A70B102074E6A86E /* FTupleObjects.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleObjects.h; path = Firebase/Database/Utilities/Tuples/FTupleObjects.h; sourceTree = ""; }; - B8E2F6235EF762B63E5264EC9D4041B5 /* FEventRaiser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FEventRaiser.h; path = Firebase/Database/Core/View/FEventRaiser.h; sourceTree = ""; }; - B967AA508C8FAAF1CDB1B5CC554230A9 /* FIRStorageConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageConstants.h; path = Firebase/Storage/Public/FIRStorageConstants.h; sourceTree = ""; }; - B9AE967A93AB043B81715E0CB2729746 /* GULNSData+zlib.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GULNSData+zlib.h"; path = "GoogleUtilities/NSData+zlib/GULNSData+zlib.h"; sourceTree = ""; }; - BA567F9B50F1754221B75A72DF6DD86A /* FIRGetAccountInfoRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGetAccountInfoRequest.m; path = Firebase/Auth/Source/RPCs/FIRGetAccountInfoRequest.m; sourceTree = ""; }; - BB0E14C8B85C9056BE5062BEDD46192C /* FIRAdditionalUserInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAdditionalUserInfo.h; path = Firebase/Auth/Source/Public/FIRAdditionalUserInfo.h; sourceTree = ""; }; - BB252C4FCD980CB856579893AEDACAB6 /* FIRStorageMetadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageMetadata.m; path = Firebase/Storage/FIRStorageMetadata.m; sourceTree = ""; }; - BC1AFED460D9AA4AB8A26EA614F73ECF /* FValueIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FValueIndex.m; path = Firebase/Database/FValueIndex.m; sourceTree = ""; }; - BCA9CC5DD34C75E76BCC48A77392AEF8 /* FTupleSetIdPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleSetIdPath.h; path = Firebase/Database/Utilities/Tuples/FTupleSetIdPath.h; sourceTree = ""; }; - BD02EBD6BC2306B6C2D5D67A9F0EC244 /* FIRInstanceIDKeyPairStore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDKeyPairStore.m; path = Firebase/InstanceID/FIRInstanceIDKeyPairStore.m; sourceTree = ""; }; - BD0AA7F87323EC834D552AF7908B0D9B /* random.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = random.h; path = util/random.h; sourceTree = ""; }; - BD4B42E0ED51BB8BD4A18734F5E2E449 /* filter_block.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = filter_block.h; path = table/filter_block.h; sourceTree = ""; }; - BDA230B665853D12DF0E31CB6FEA8654 /* FIRCreateAuthURIRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRCreateAuthURIRequest.h; path = Firebase/Auth/Source/RPCs/FIRCreateAuthURIRequest.h; sourceTree = ""; }; - BE81185E37E8F99D4E4F4A943464B2C9 /* FIndexedNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIndexedNode.m; path = Firebase/Database/Snapshot/FIndexedNode.m; sourceTree = ""; }; - BE950F3DD06281B0BF7EFE6F3E568E59 /* FTreeSortedDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTreeSortedDictionary.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FTreeSortedDictionary.h; sourceTree = ""; }; - BEB94202C410BE9C5896D1F2DC73CE99 /* FTreeNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTreeNode.m; path = Firebase/Database/Core/Utilities/FTreeNode.m; sourceTree = ""; }; - BFC195BF5C0744C5F858C1458FF02684 /* FTupleNodePath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleNodePath.m; path = Firebase/Database/Utilities/Tuples/FTupleNodePath.m; sourceTree = ""; }; - BFCF55499AE3C02C6D20A2563D29B3EE /* FIRTwitterAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRTwitterAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthProvider.m; sourceTree = ""; }; - C04126C0A7D2A3EA824F859DE0B01532 /* FIRStorageGetDownloadURLTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageGetDownloadURLTask.h; path = Firebase/Storage/Private/FIRStorageGetDownloadURLTask.h; sourceTree = ""; }; - C0738815911609F860A0040EFB412853 /* FIRAuthGlobalWorkQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthGlobalWorkQueue.m; path = Firebase/Auth/Source/FIRAuthGlobalWorkQueue.m; sourceTree = ""; }; - C0960DEB72C885CE265CBC88C410094F /* FLevelDBStorageEngine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLevelDBStorageEngine.m; path = Firebase/Database/Persistence/FLevelDBStorageEngine.m; sourceTree = ""; }; - C0D3FB48B794C26E16117F36DF9EA181 /* port.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = port.h; path = port/port.h; sourceTree = ""; }; - C1466690E17D3E068E47539E060853AF /* FIRInstanceIDAuthService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDAuthService.m; path = Firebase/InstanceID/FIRInstanceIDAuthService.m; sourceTree = ""; }; - C17803F1D2CDD755AD99D8CDD6581D0C /* FirebaseCore.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FirebaseCore.modulemap; sourceTree = ""; }; - C1A9A402A55DA3A0F58B36FDF4A01E1B /* FIRInstanceIDStore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDStore.h; path = Firebase/InstanceID/FIRInstanceIDStore.h; sourceTree = ""; }; - C1C8E8A44987DC36C799C84C55B12D4E /* FIRStorageUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageUtils.h; path = Firebase/Storage/Private/FIRStorageUtils.h; sourceTree = ""; }; - C2CFC3A8F5DED03F79A3A9CCC5F616BA /* merger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = merger.h; path = table/merger.h; sourceTree = ""; }; - C2F6F8AB3C667704F7CF6B6E3CC126A6 /* FIRConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRConfiguration.h; path = Firebase/Core/Public/FIRConfiguration.h; sourceTree = ""; }; - C300267F62DE4EE2F00927D64648EAE8 /* FIRAppInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAppInternal.h; path = Firebase/Core/Private/FIRAppInternal.h; sourceTree = ""; }; - C30BADF1398C83CC5FC021D4ABED51A1 /* FView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FView.h; path = Firebase/Database/Core/View/FView.h; sourceTree = ""; }; - C33376A65CBAF31E8FA82A2DC5E0BE5F /* GoogleUtilities-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GoogleUtilities-umbrella.h"; sourceTree = ""; }; - C3E860857F9EB54581E1BB74834F180D /* FIRDataSnapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDataSnapshot.h; path = Firebase/Database/Public/FIRDataSnapshot.h; sourceTree = ""; }; - C52A9C80ACAD7A2FAEDBEAE17B5C3199 /* FCancelEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FCancelEvent.m; path = Firebase/Database/Core/View/FCancelEvent.m; sourceTree = ""; }; - C54BB6D9942B602515D259EA3423EB87 /* FIRStorageUploadTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageUploadTask.m; path = Firebase/Storage/FIRStorageUploadTask.m; sourceTree = ""; }; - C5EE76CDD6DCE2DBEBD3A1DECEC4B041 /* pb_encode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb_encode.h; sourceTree = ""; }; - C5F6AD964ACB0DF753728FB210CC1BED /* table.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = table.h; path = include/leveldb/table.h; sourceTree = ""; }; - C65122F2E19AF2939847FF097DF91FA1 /* mutexlock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mutexlock.h; path = util/mutexlock.h; sourceTree = ""; }; - C663417E94C6790A217AA1F15592BF69 /* FTreeSortedDictionaryEnumerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTreeSortedDictionaryEnumerator.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FTreeSortedDictionaryEnumerator.h; sourceTree = ""; }; - C6656E393B1F8CF249F0A2A0A091C0B4 /* FIRAuthSettings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthSettings.m; path = Firebase/Auth/Source/FIRAuthSettings.m; sourceTree = ""; }; - C6841A5C0F89D50912B3E34A10EC3A80 /* FTupleRemovedQueriesEvents.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleRemovedQueriesEvents.h; path = Firebase/Database/Utilities/Tuples/FTupleRemovedQueriesEvents.h; sourceTree = ""; }; - C6B2485FF2E4B99D2581B2128532395F /* FIRDataSnapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDataSnapshot.m; path = Firebase/Database/Api/FIRDataSnapshot.m; sourceTree = ""; }; - C6B9DDB1286042E54284A5AD4E8D6CCC /* FEmptyNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FEmptyNode.h; path = Firebase/Database/Snapshot/FEmptyNode.h; sourceTree = ""; }; - C7331B570A8DA4572A69F4F3499B6D1E /* FIRComponentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRComponentType.h; path = Firebase/Core/Private/FIRComponentType.h; sourceTree = ""; }; - C852790519048CAE41D6146DD81939F8 /* FIRPhoneAuthCredential_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRPhoneAuthCredential_Internal.h; path = Firebase/Auth/Source/AuthProviders/Phone/FIRPhoneAuthCredential_Internal.h; sourceTree = ""; }; - C880512238D15492925DB2F8A2FE3068 /* FIRInstanceIDCheckinPreferences+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FIRInstanceIDCheckinPreferences+Internal.h"; path = "Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h"; sourceTree = ""; }; - C8BA8F9578EAFFC0792C7B73BB428ACE /* FIRInstanceIDTokenFetchOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDTokenFetchOperation.m; path = Firebase/InstanceID/FIRInstanceIDTokenFetchOperation.m; sourceTree = ""; }; - C91C5220E8EC2E1874DAFF3FEC5177A8 /* GULReachabilityChecker+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GULReachabilityChecker+Internal.h"; path = "GoogleUtilities/Reachability/GULReachabilityChecker+Internal.h"; sourceTree = ""; }; - C9349FBBB83E4BCEBEB8EF8968E49EC6 /* FIRTransactionResult_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRTransactionResult_Private.h; path = Firebase/Database/Api/Private/FIRTransactionResult_Private.h; sourceTree = ""; }; - C94CCC58A07AEA281BD8D8AF197274FE /* status.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = status.h; path = include/leveldb/status.h; sourceTree = ""; }; - C953C1DB15B681BC1CB14D704C7E5B25 /* FIRStorageTokenAuthorizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageTokenAuthorizer.h; path = Firebase/Storage/Private/FIRStorageTokenAuthorizer.h; sourceTree = ""; }; - CA0D8266F19CAB63F0E23856D69EDE48 /* FTupleUserCallback.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleUserCallback.m; path = Firebase/Database/Utilities/Tuples/FTupleUserCallback.m; sourceTree = ""; }; - CAA73FC2A30420297F5DEB8AABD6F63F /* GTMSessionFetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionFetcher.m; path = Source/GTMSessionFetcher.m; sourceTree = ""; }; - CACB143E2ACF8905640CCB0695C90D42 /* FIRDeleteAccountResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDeleteAccountResponse.h; path = Firebase/Auth/Source/RPCs/FIRDeleteAccountResponse.h; sourceTree = ""; }; - CAE1281821C0F3D5A592ADA9056314FD /* arena.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = arena.h; path = util/arena.h; sourceTree = ""; }; - CB06D80565B3F13525AE067BE79D5E5B /* FirebaseCore-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FirebaseCore-dummy.m"; sourceTree = ""; }; - CB9EB78BB954E1FF00C1DC8F0B5ADB6B /* FIRInstanceIDLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDLogger.h; path = Firebase/InstanceID/FIRInstanceIDLogger.h; sourceTree = ""; }; - CBA49F08492728C7CEF722B4461A7682 /* version_set.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = version_set.cc; path = db/version_set.cc; sourceTree = ""; }; - CBDCA9718B784D740DB3648DC8DC2D1B /* FIRGetAccountInfoResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGetAccountInfoResponse.m; path = Firebase/Auth/Source/RPCs/FIRGetAccountInfoResponse.m; sourceTree = ""; }; - CC9AC6B848F7BA94C687C610AEB07CC7 /* nanopb.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = nanopb.modulemap; sourceTree = ""; }; - CCD6A79550150E407A109F599DCFCD0F /* FIRStorageConstants_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageConstants_Private.h; path = Firebase/Storage/Private/FIRStorageConstants_Private.h; sourceTree = ""; }; - CD07256A490D512F53ED67B1555D0150 /* FIRInstanceID+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FIRInstanceID+Private.h"; path = "Firebase/InstanceID/FIRInstanceID+Private.h"; sourceTree = ""; }; - CD31E1F69658A253011ACF1E70F68A77 /* FIRNoopAuthTokenProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRNoopAuthTokenProvider.m; path = Firebase/Database/Login/FIRNoopAuthTokenProvider.m; sourceTree = ""; }; - CD8C559B46946BD55A3D4B3561CEA1D1 /* SkyFloatingLabelTextField-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SkyFloatingLabelTextField-prefix.pch"; sourceTree = ""; }; - CDE61BF950EF6591C4A5B332BC379CE5 /* FSnapshotHolder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSnapshotHolder.h; path = Firebase/Database/Core/FSnapshotHolder.h; sourceTree = ""; }; - CE33D15441E97C4EFD8EB66C2297BBB4 /* FirebaseStorage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseStorage.xcconfig; sourceTree = ""; }; - CEB1A6D2E15931D9A6426F0D838F2051 /* atomic_pointer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = atomic_pointer.h; path = port/atomic_pointer.h; sourceTree = ""; }; - CF7A99AFD9AA45EE6E31FED31F0B6A7E /* FTree.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTree.h; path = Firebase/Database/Core/Utilities/FTree.h; sourceTree = ""; }; - CF827B2C266EA61D83C4FB16F013761E /* FIRStorageDeleteTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageDeleteTask.m; path = Firebase/Storage/FIRStorageDeleteTask.m; sourceTree = ""; }; - CFA589F72475C3B54328021ACE1C504D /* FDataEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FDataEvent.m; path = Firebase/Database/Core/View/FDataEvent.m; sourceTree = ""; }; - CFF610893571DFFE5EC4369379589AC0 /* FIndexedFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIndexedFilter.h; path = Firebase/Database/Core/View/Filter/FIndexedFilter.h; sourceTree = ""; }; - D039A2D1130015780787D9A546120CB7 /* hash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = hash.h; path = util/hash.h; sourceTree = ""; }; - D07E9815371236B64A7536957C6ADEBB /* FIRAuthBackend.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthBackend.h; path = Firebase/Auth/Source/RPCs/FIRAuthBackend.h; sourceTree = ""; }; - D13B176CC357231CD837F1EED6B94784 /* filter_policy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = filter_policy.h; path = include/leveldb/filter_policy.h; sourceTree = ""; }; - D15548A90347E765B7D3CBB0A5EC0900 /* FRangedFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FRangedFilter.h; path = Firebase/Database/FRangedFilter.h; sourceTree = ""; }; - D17D7FA24E4496865A23E3E240E8AB96 /* FTupleObjects.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleObjects.m; path = Firebase/Database/Utilities/Tuples/FTupleObjects.m; sourceTree = ""; }; - D18B977342D4EC54BA1DF3E600B21830 /* dbformat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dbformat.h; path = db/dbformat.h; sourceTree = ""; }; - D27EB043894FBB06981F61DD006719BE /* FirebaseAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseAnalytics.framework; path = Frameworks/FirebaseAnalytics.framework; sourceTree = ""; }; - D28B0012C933EDF2A89FEAE01FC9E3B6 /* FPersistentConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPersistentConnection.h; path = Firebase/Database/Core/FPersistentConnection.h; sourceTree = ""; }; - D3589D470EEE9055227B1C840786232F /* FRepo_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FRepo_Private.h; path = Firebase/Database/Core/FRepo_Private.h; sourceTree = ""; }; - D3D061F710CC7C80DF7AC37C5706E980 /* db_iter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = db_iter.h; path = db/db_iter.h; sourceTree = ""; }; - D42C66AA5F9003406B21B758D6CB7508 /* GULReachabilityChecker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULReachabilityChecker.m; path = GoogleUtilities/Reachability/GULReachabilityChecker.m; sourceTree = ""; }; - D4527281949963D776DC9D0985DF8EC3 /* FIRInstanceIDCheckinPreferences_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDCheckinPreferences_Private.h; path = Firebase/InstanceID/FIRInstanceIDCheckinPreferences_Private.h; sourceTree = ""; }; - D46BA107AB3D1D30D0179CB38DD127D9 /* FIRStorageTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageTask.h; path = Firebase/Storage/Public/FIRStorageTask.h; sourceTree = ""; }; - D4B66C1FB7D354B7CE95C3B4D844197D /* FChildChangeAccumulator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FChildChangeAccumulator.h; path = Firebase/Database/Core/View/Filter/FChildChangeAccumulator.h; sourceTree = ""; }; - D4E6F1DE89622CF0F1288F7E570EB35E /* FIRFacebookAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRFacebookAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/Facebook/FIRFacebookAuthCredential.m; sourceTree = ""; }; - D4F32BE1DD76FB6B9233983AA0FE23A1 /* FIRStorageComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageComponent.m; path = Firebase/Storage/FIRStorageComponent.m; sourceTree = ""; }; - D64A788B5F2EA356468F07FF24AC36BA /* leveldb-library-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "leveldb-library-umbrella.h"; sourceTree = ""; }; - D707F6297F69E51D6E2FF01CC3A70822 /* FCompoundHash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FCompoundHash.h; path = Firebase/Database/Core/FCompoundHash.h; sourceTree = ""; }; - D73913E36A92B1AFE64A3EE643F64436 /* FLeafNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLeafNode.h; path = Firebase/Database/Snapshot/FLeafNode.h; sourceTree = ""; }; - D76ABC3EBF88D2BE02B0DAD0E7DD7FB5 /* FIRIdentityToolkitRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRIdentityToolkitRequest.m; path = Firebase/Auth/Source/RPCs/FIRIdentityToolkitRequest.m; sourceTree = ""; }; - D78AABF08C18A87B8429428E8F12DBB6 /* NSData+SRB64Additions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+SRB64Additions.h"; path = "Firebase/Database/third_party/SocketRocket/NSData+SRB64Additions.h"; sourceTree = ""; }; - D7A4F1C6986110DFEE9B25914D9108FC /* GoogleUtilities-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GoogleUtilities-dummy.m"; sourceTree = ""; }; - D7F61CF01177A73ACCB2BB4BB1759117 /* FTupleCallbackStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleCallbackStatus.m; path = Firebase/Database/Utilities/Tuples/FTupleCallbackStatus.m; sourceTree = ""; }; - D82ECF6C0856929514162117B21AEFFE /* FLevelDBStorageEngine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLevelDBStorageEngine.h; path = Firebase/Database/Persistence/FLevelDBStorageEngine.h; sourceTree = ""; }; - D831D3FD816CBF98BE21B644C48CA252 /* FArraySortedDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FArraySortedDictionary.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FArraySortedDictionary.m; sourceTree = ""; }; - D85AFD3D61483F9F8742E3F923E18D7B /* FIRSetAccountInfoRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSetAccountInfoRequest.m; path = Firebase/Auth/Source/RPCs/FIRSetAccountInfoRequest.m; sourceTree = ""; }; - D8754DDAFD21CE11513C8DC98BC6CC5F /* FirebaseCore-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FirebaseCore-Info.plist"; sourceTree = ""; }; - D8A312264F5BBE10E809F7656F1AD078 /* GTMSessionFetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionFetcher.h; path = Source/GTMSessionFetcher.h; sourceTree = ""; }; - D8B22D589B5AF318906C6F661D003091 /* FIRSignInWithGameCenterRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSignInWithGameCenterRequest.m; path = Firebase/Auth/Source/RPCs/FIRSignInWithGameCenterRequest.m; sourceTree = ""; }; - D90FC4D7DD0D5832C4AB2B3AEB4A4419 /* FListenProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FListenProvider.h; path = Firebase/Database/Core/FListenProvider.h; sourceTree = ""; }; - D92393849E42D276AF062CBE5476A450 /* FIRBundleUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRBundleUtil.h; path = Firebase/Core/Private/FIRBundleUtil.h; sourceTree = ""; }; - D9BBE9102939B5AF8C30C316E653E8B9 /* FTreeSortedDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTreeSortedDictionary.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FTreeSortedDictionary.m; sourceTree = ""; }; - D9E978F30BE4FF3532C89EA5DCDDDD10 /* FPriorityIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPriorityIndex.h; path = Firebase/Database/FPriorityIndex.h; sourceTree = ""; }; - DAA4926E8C152BE798D055DE5632E692 /* FValueEventRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FValueEventRegistration.m; path = Firebase/Database/Core/View/FValueEventRegistration.m; sourceTree = ""; }; - DAB28F6B7DFA403629E23B3C2903D8D9 /* FIRDatabaseReference_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseReference_Private.h; path = Firebase/Database/Api/Private/FIRDatabaseReference_Private.h; sourceTree = ""; }; - DB711F58CA9FBB0C7AC9808EAB23CD6C /* FIRSetAccountInfoRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSetAccountInfoRequest.h; path = Firebase/Auth/Source/RPCs/FIRSetAccountInfoRequest.h; sourceTree = ""; }; - DB9722699362036FC8C7674FC18B7E51 /* FIRStorageUpdateMetadataTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageUpdateMetadataTask.m; path = Firebase/Storage/FIRStorageUpdateMetadataTask.m; sourceTree = ""; }; - DCB0C71551CCF6CB7397B39DB6E37F37 /* FIRAuthDefaultUIDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthDefaultUIDelegate.m; path = Firebase/Auth/Source/FIRAuthDefaultUIDelegate.m; sourceTree = ""; }; - DCB5DAA989436994242BDAB2CB654D47 /* FIRAuthErrorUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthErrorUtils.h; path = Firebase/Auth/Source/FIRAuthErrorUtils.h; sourceTree = ""; }; - DCDD3C4A494F2385C46C74B4142EEC52 /* table_builder.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = table_builder.cc; path = table/table_builder.cc; sourceTree = ""; }; - DD465CAEA3B10A4D75BA92FECF4B2B96 /* FChildrenNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FChildrenNode.h; path = Firebase/Database/Snapshot/FChildrenNode.h; sourceTree = ""; }; - DD4BF85A18197FEBF638B21FC3A784A2 /* FIRStorageGetDownloadURLTask_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageGetDownloadURLTask_Private.h; path = Firebase/Storage/Private/FIRStorageGetDownloadURLTask_Private.h; sourceTree = ""; }; - DD4F9D9A3DADB05BADCE88FC17D0D6B9 /* nanopb.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = nanopb.xcconfig; sourceTree = ""; }; - DE58FBF7EADFA831951FC894460F16D4 /* FParsedUrl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FParsedUrl.m; path = Firebase/Database/Utilities/FParsedUrl.m; sourceTree = ""; }; - DE8BE569494EB4B7D0B72BEF1496CE12 /* port_posix.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = port_posix.cc; path = port/port_posix.cc; sourceTree = ""; }; - DEEA88BC53765F53137E017BD8F0B909 /* FTrackedQueryManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTrackedQueryManager.m; path = Firebase/Database/Persistence/FTrackedQueryManager.m; sourceTree = ""; }; - DF1624A4ECBA631C7AFBD4CE87261806 /* FIRStoragePath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStoragePath.m; path = Firebase/Storage/FIRStoragePath.m; sourceTree = ""; }; - DF433EF745E3C7B6C69D8EAF9607517C /* FIREmailLinkSignInResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIREmailLinkSignInResponse.h; path = Firebase/Auth/Source/RPCs/FIREmailLinkSignInResponse.h; sourceTree = ""; }; - DF463DACC72310305C714B74983C46E7 /* db_impl.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = db_impl.cc; path = db/db_impl.cc; sourceTree = ""; }; - DF59051E24CC1EBE768ED9CA92B5F651 /* crc32c.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crc32c.h; path = util/crc32c.h; sourceTree = ""; }; - DF645AD33BB3CAEE3CD4F8503B6F8D92 /* FIRLibrary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRLibrary.h; path = Firebase/Core/Private/FIRLibrary.h; sourceTree = ""; }; - E04DC52ADCF63D8C857F65AB94B53E20 /* comparator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = comparator.h; path = include/leveldb/comparator.h; sourceTree = ""; }; - E0B1179FF09583A05F46D4164B6B4033 /* GULOriginalIMPConvenienceMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULOriginalIMPConvenienceMacros.h; path = GoogleUtilities/MethodSwizzler/Private/GULOriginalIMPConvenienceMacros.h; sourceTree = ""; }; - E26AF9026CF7937F0297FAF85E5CECD5 /* FIRAuthWebUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthWebUtils.h; path = Firebase/Auth/Source/FIRAuthWebUtils.h; sourceTree = ""; }; - E29CE32AF669DF14CEE4919254519DED /* crc32c.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = crc32c.cc; path = util/crc32c.cc; sourceTree = ""; }; - E3082EDA0CA6913A70074379EF196C21 /* version_edit.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = version_edit.cc; path = db/version_edit.cc; sourceTree = ""; }; - E3AFFF1C45DF347F548987E4EB86140F /* FIRStorageUploadTask_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageUploadTask_Private.h; path = Firebase/Storage/Private/FIRStorageUploadTask_Private.h; sourceTree = ""; }; - E41B383434458E8EE71B6B0F57AA04D4 /* FTypedefs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTypedefs.h; path = Firebase/Database/Utilities/FTypedefs.h; sourceTree = ""; }; - E4DE2DD0535F108E049C3B22D1D33010 /* FIRNoopAuthTokenProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRNoopAuthTokenProvider.h; path = Firebase/Database/Login/FIRNoopAuthTokenProvider.h; sourceTree = ""; }; - E4E3840561AFBA5611DE8E3007A1E202 /* FIRGetProjectConfigRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGetProjectConfigRequest.m; path = Firebase/Auth/Source/RPCs/FIRGetProjectConfigRequest.m; sourceTree = ""; }; - E530070FE51B10AACCAE0D2C596141EB /* FIRResetPasswordResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRResetPasswordResponse.m; path = Firebase/Auth/Source/RPCs/FIRResetPasswordResponse.m; sourceTree = ""; }; - E63E16F99EE19718A20E1CBA0E45C390 /* FNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FNode.h; path = Firebase/Database/Snapshot/FNode.h; sourceTree = ""; }; - E6585F123FAD0EBA2F45FA4C996B1BDB /* FQueryParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FQueryParams.h; path = Firebase/Database/Core/FQueryParams.h; sourceTree = ""; }; - E66CC3E1B1350B6E987AE70947B7E3F3 /* FIRPhoneAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRPhoneAuthProvider.h; path = Firebase/Auth/Source/Public/FIRPhoneAuthProvider.h; sourceTree = ""; }; - E714D102A2BA1F5C069BDC392A9B9AB0 /* FIRVerifyPhoneNumberResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyPhoneNumberResponse.h; path = Firebase/Auth/Source/RPCs/FIRVerifyPhoneNumberResponse.h; sourceTree = ""; }; - E72970A70A345A580BE5FC4014236186 /* FIRInstanceIDConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDConstants.m; path = Firebase/InstanceID/FIRInstanceIDConstants.m; sourceTree = ""; }; - E7C6EC935D0A5D103964E85EF6245304 /* FEventRaiser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FEventRaiser.m; path = Firebase/Database/Core/View/FEventRaiser.m; sourceTree = ""; }; - E7FCA4F0BD4046768D82ED3714E590B6 /* FIRAuthURLPresenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthURLPresenter.h; path = Firebase/Auth/Source/FIRAuthURLPresenter.h; sourceTree = ""; }; - E8965026C355CA3EAAFB8FE8544A96BE /* FIRStorageReference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageReference.m; path = Firebase/Storage/FIRStorageReference.m; sourceTree = ""; }; - E898C32AEC2476E6F7FD7E346F221F09 /* FWriteTree.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FWriteTree.h; path = Firebase/Database/Core/FWriteTree.h; sourceTree = ""; }; - E8AFCCE76FD7BEF3883C1ADF4A4D215A /* SkyFloatingLabelTextField.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SkyFloatingLabelTextField.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E8C9FC7977BD96BA45827A2EDC032919 /* coding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = coding.h; path = util/coding.h; sourceTree = ""; }; - E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - E9E8C3896AEAF09DB1EA0D209D696446 /* FWriteTreeRef.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FWriteTreeRef.m; path = Firebase/Database/Core/FWriteTreeRef.m; sourceTree = ""; }; - E9E99C2533E722AF92F81FBEC8C88B43 /* testutil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = testutil.h; path = util/testutil.h; sourceTree = ""; }; - EAFE47FC5CC2B8553298AB29EF09F50D /* fbase64.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = fbase64.c; path = Firebase/Database/third_party/SocketRocket/fbase64.c; sourceTree = ""; }; - EB38BD92EE246F087E4AD72812F841EF /* FConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FConnection.h; path = Firebase/Database/Realtime/FConnection.h; sourceTree = ""; }; - EB404E3AE01D2233399D6FFD727D3013 /* coding.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = coding.cc; path = util/coding.cc; sourceTree = ""; }; - EB7B05DE65A6CF0E021125602B9090AE /* FIRAuthDispatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthDispatcher.m; path = Firebase/Auth/Source/FIRAuthDispatcher.m; sourceTree = ""; }; - EB95EFB639A55B3E6E80FAFF8124A5FA /* GULNetwork.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULNetwork.m; path = GoogleUtilities/Network/GULNetwork.m; sourceTree = ""; }; - EBE6D705A8784B6AEEFE663D9DA3E9BB /* FIRStorageUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageUtils.m; path = Firebase/Storage/FIRStorageUtils.m; sourceTree = ""; }; - EC21CE527CDF9EA2FA8DCF24D14F9AB2 /* FirebaseDatabase-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FirebaseDatabase-umbrella.h"; sourceTree = ""; }; - EC5D564E8AD25867837771451F3ED2D0 /* leveldb-library-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "leveldb-library-Info.plist"; sourceTree = ""; }; - ECB19057C36D102FF9DE4902B90BFA76 /* FIRGoogleAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGoogleAuthProvider.h; path = Firebase/Auth/Source/Public/FIRGoogleAuthProvider.h; sourceTree = ""; }; - ED99989C760A526A72A2F63EF1D45CD7 /* FIRVerifyCustomTokenResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyCustomTokenResponse.h; path = Firebase/Auth/Source/RPCs/FIRVerifyCustomTokenResponse.h; sourceTree = ""; }; - EDF818E6EB2589316AD2FDA1783F4FD8 /* FirebaseAnalytics.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseAnalytics.xcconfig; sourceTree = ""; }; - EE0D085AF1B47CA9D5182E827784743B /* table_cache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = table_cache.h; path = db/table_cache.h; sourceTree = ""; }; - EE61A8B24BAD0322627DFA515F91CBEA /* FIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIndex.h; path = Firebase/Database/FIndex.h; sourceTree = ""; }; - EF99594D20D6047B92F06C7823F16073 /* pb.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb.h; sourceTree = ""; }; - EFE0894303E3D724FA0AD6F342EC77D7 /* FIRApp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRApp.h; path = Firebase/Core/Public/FIRApp.h; sourceTree = ""; }; - F007025FC416C22C0112996FB58041D2 /* FIRSecureTokenRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSecureTokenRequest.m; path = Firebase/Auth/Source/RPCs/FIRSecureTokenRequest.m; sourceTree = ""; }; - F01AA85527337C7BE615F1EE2239B34D /* FIRGetOOBConfirmationCodeRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGetOOBConfirmationCodeRequest.m; path = Firebase/Auth/Source/RPCs/FIRGetOOBConfirmationCodeRequest.m; sourceTree = ""; }; - F08F5A0C3C4176826AC4589549E65E77 /* skiplist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = skiplist.h; path = db/skiplist.h; sourceTree = ""; }; - F1488BB5004D9C1C2AC1E93498AF6FF8 /* FIRInstanceIDTokenFetchOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDTokenFetchOperation.h; path = Firebase/InstanceID/FIRInstanceIDTokenFetchOperation.h; sourceTree = ""; }; - F18041550B1F8E9C4A3CFF414F1C9E92 /* FTupleStringNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleStringNode.h; path = Firebase/Database/Utilities/Tuples/FTupleStringNode.h; sourceTree = ""; }; - F1F892D78BFE03BDB185F603A74BD1DD /* FImmutableTree.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FImmutableTree.h; path = Firebase/Database/Core/Utilities/FImmutableTree.h; sourceTree = ""; }; - F21218C0B98EEFCD7CB79BBB5DF3CEBA /* FIRStorageDeleteTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageDeleteTask.h; path = Firebase/Storage/Private/FIRStorageDeleteTask.h; sourceTree = ""; }; - F271C290409CE9A5105DC0CABB9F9EE5 /* FIRSendVerificationCodeResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSendVerificationCodeResponse.h; path = Firebase/Auth/Source/RPCs/FIRSendVerificationCodeResponse.h; sourceTree = ""; }; - F2B934C6C67272D8FA115AF50D08AAF4 /* FPathIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPathIndex.m; path = Firebase/Database/FPathIndex.m; sourceTree = ""; }; - F30ABACEADFBFF704F6090547BBA8069 /* FRepoManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FRepoManager.h; path = Firebase/Database/Core/FRepoManager.h; sourceTree = ""; }; - F34169A7B7AAB056684317D2289318D3 /* FIRAuthDataResult_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthDataResult_Internal.h; path = Firebase/Auth/Source/FIRAuthDataResult_Internal.h; sourceTree = ""; }; - F39807973782A2CFE0B5408F746922A0 /* FIRInstanceIDKeychain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDKeychain.h; path = Firebase/InstanceID/FIRInstanceIDKeychain.h; sourceTree = ""; }; - F3B9D50C1122D69F3AEFD7BC21A727CE /* FTupleStringNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleStringNode.m; path = Firebase/Database/Utilities/Tuples/FTupleStringNode.m; sourceTree = ""; }; - F3BD0D8B08F1AADDB71971C8B265CC1D /* FIRSecureTokenService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSecureTokenService.h; path = Firebase/Auth/Source/FIRSecureTokenService.h; sourceTree = ""; }; - F3E7BC9A5CD33728D88F26459F587D16 /* GULMutableDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULMutableDictionary.h; path = GoogleUtilities/Network/Private/GULMutableDictionary.h; sourceTree = ""; }; - F45F589B89526CC10AE48D099E8CAD68 /* FOperationSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FOperationSource.h; path = Firebase/Database/Core/Operation/FOperationSource.h; sourceTree = ""; }; - F47DD68A34B513617CFAC026AC6A88C8 /* FAckUserWrite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FAckUserWrite.h; path = Firebase/Database/Core/Operation/FAckUserWrite.h; sourceTree = ""; }; - F4D87116F132F40DC8867AE769A6B702 /* FIRStorageReference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageReference.h; path = Firebase/Storage/Public/FIRStorageReference.h; sourceTree = ""; }; - F4DA326F2A37A3A24338EC1E0C78BB9B /* FValidation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FValidation.h; path = Firebase/Database/Utilities/FValidation.h; sourceTree = ""; }; - F509109A513108F962890765CD53F0CA /* FSyncPoint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSyncPoint.h; path = Firebase/Database/Core/FSyncPoint.h; sourceTree = ""; }; - F50F42487664140489FF52111D770656 /* FLLRBValueNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLLRBValueNode.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FLLRBValueNode.h; sourceTree = ""; }; - F531ADDBD021A60C52DA3E8AAF74C59F /* FIRInstanceIDTokenOperation+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FIRInstanceIDTokenOperation+Private.h"; path = "Firebase/InstanceID/FIRInstanceIDTokenOperation+Private.h"; sourceTree = ""; }; - F56FAFE6DF1C497E7EC2E13D436C0491 /* FTuplePathValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTuplePathValue.m; path = Firebase/Database/Utilities/Tuples/FTuplePathValue.m; sourceTree = ""; }; - F57B7C0CCEEADB5650F78A4E984A5D07 /* FImmutableTree.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FImmutableTree.m; path = Firebase/Database/Core/Utilities/FImmutableTree.m; sourceTree = ""; }; - F5A9821F9F3900DDEA4F99B86AAA5F81 /* FKeepSyncedEventRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FKeepSyncedEventRegistration.h; path = Firebase/Database/Core/View/FKeepSyncedEventRegistration.h; sourceTree = ""; }; - F5FBC4839AE408BDC288B6F225B683DB /* FIRVerifyPasswordRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyPasswordRequest.m; path = Firebase/Auth/Source/RPCs/FIRVerifyPasswordRequest.m; sourceTree = ""; }; - F65B968B2E03C60865ABA577C531243E /* FirebaseAuth-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FirebaseAuth-Info.plist"; sourceTree = ""; }; - F68D493B7DD7FE0E1A5A2C4EF224F781 /* FTupleTSN.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleTSN.m; path = Firebase/Database/Utilities/Tuples/FTupleTSN.m; sourceTree = ""; }; - F75BDDA6A11CAE5F0BDCFC81BFCBD1C5 /* FEmptyNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FEmptyNode.m; path = Firebase/Database/Snapshot/FEmptyNode.m; sourceTree = ""; }; - F77D246EF3F096DDAB892B6ABC94D31F /* FTupleCallbackStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleCallbackStatus.h; path = Firebase/Database/Utilities/Tuples/FTupleCallbackStatus.h; sourceTree = ""; }; - F85CC629B21213EA018F283E322BDE58 /* FIRErrors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRErrors.h; path = Firebase/Core/Private/FIRErrors.h; sourceTree = ""; }; - F8C272FE47B0C64B7D5A896145B91EC3 /* merger.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = merger.cc; path = table/merger.cc; sourceTree = ""; }; - F91B980F928643DED2E8821F6C5961F0 /* GULNetworkURLSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULNetworkURLSession.h; path = GoogleUtilities/Network/Private/GULNetworkURLSession.h; sourceTree = ""; }; - F944A46EDC21C887848333C3765BAFA4 /* FIRAuthDataResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthDataResult.m; path = Firebase/Auth/Source/FIRAuthDataResult.m; sourceTree = ""; }; - F9E0C95EA754C2F25A3BB0F35D31D5D5 /* FirebaseInstanceID-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FirebaseInstanceID-umbrella.h"; sourceTree = ""; }; - FA59B9AAC1448068CECE850083F896E4 /* FIRUser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRUser.h; path = Firebase/Auth/Source/Public/FIRUser.h; sourceTree = ""; }; - FA6F78729FC55DECAACEDCEF3FFE6A62 /* FIRDatabaseQuery.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDatabaseQuery.m; path = Firebase/Database/Api/FIRDatabaseQuery.m; sourceTree = ""; }; - FAE542D691EE089E363E57016A391AA5 /* FIRInstanceIDVersionUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDVersionUtilities.m; path = Firebase/InstanceID/FIRInstanceIDVersionUtilities.m; sourceTree = ""; }; - FAF2426168EE844086BC8235C391A76F /* NSData+SRB64Additions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+SRB64Additions.m"; path = "Firebase/Database/third_party/SocketRocket/NSData+SRB64Additions.m"; sourceTree = ""; }; - FBF353AE4935C2D9FF55D2ED01C9DF0E /* FIRGitHubAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGitHubAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/GitHub/FIRGitHubAuthProvider.m; sourceTree = ""; }; - FC415D305974B59DFE20B392EA716AA5 /* logging.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = logging.cc; path = util/logging.cc; sourceTree = ""; }; - FC54BC1957D38E77CB3229650A46103F /* GTMSessionFetcher-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GTMSessionFetcher-prefix.pch"; sourceTree = ""; }; - FC5C0D2B4C8D3E5950A8879B40D5058B /* FirebaseAuth.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FirebaseAuth.h; path = Firebase/Auth/Source/Public/FirebaseAuth.h; sourceTree = ""; }; - FD73A21C208A102768DF85340F8F8898 /* FirebaseInstanceID.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseInstanceID.xcconfig; sourceTree = ""; }; - FDC73D637C87904FBE5BE383FCD3DB10 /* FNamedNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FNamedNode.m; path = Firebase/Database/FNamedNode.m; sourceTree = ""; }; - FDECA8C433B6BA80772C6BE5932EA5BC /* FirebaseAuth-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FirebaseAuth-umbrella.h"; sourceTree = ""; }; - FE17EA0AEC2F2252F4879428D468B1FF /* FPersistenceManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPersistenceManager.m; path = Firebase/Database/Persistence/FPersistenceManager.m; sourceTree = ""; }; - FEAAE357744E294CB1E6B494125348A7 /* FirebaseDatabase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FirebaseDatabase-dummy.m"; sourceTree = ""; }; - FF1F339425A43481A7287BA1FF760EF1 /* pb_decode.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; path = pb_decode.c; sourceTree = ""; }; - FF5122C1006A0D131CDFD3F9267E559B /* write_batch.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = write_batch.cc; path = db/write_batch.cc; sourceTree = ""; }; - FF5807D8A4FB9B0F77206CFA7C25B943 /* GULNetwork.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULNetwork.h; path = GoogleUtilities/Network/Private/GULNetwork.h; sourceTree = ""; }; - FFC62241E7D3F9B785BA34A3ABD60C32 /* arena.cc */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.cpp; name = arena.cc; path = util/arena.cc; sourceTree = ""; }; + B33EDC426A1A925001C6FEB8CD9F7494 /* FIRStorageGetDownloadURLTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageGetDownloadURLTask.m; path = Firebase/Storage/FIRStorageGetDownloadURLTask.m; sourceTree = ""; }; + B34F1E80B0D7283399E4ED1C97B67DF8 /* cache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cache.h; path = include/leveldb/cache.h; sourceTree = ""; }; + B36167953A8F20E22C644F8E6FDCFE98 /* FIRInstanceID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceID.h; path = Firebase/InstanceID/Public/FIRInstanceID.h; sourceTree = ""; }; + B3A96892CA2F4A9D0EA724F1F5D1DFB2 /* format.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = format.h; path = table/format.h; sourceTree = ""; }; + B3BA5EA706ED38B6508C6D1316B02739 /* db_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = db_impl.h; path = db/db_impl.h; sourceTree = ""; }; + B40872CD6E41C1164DA1DF63A4E25F83 /* FIRAuthExceptionUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthExceptionUtils.h; path = Firebase/Auth/Source/FIRAuthExceptionUtils.h; sourceTree = ""; }; + B47A0938A746EAB5E1904BDC022A775F /* FIRStorageTokenAuthorizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageTokenAuthorizer.m; path = Firebase/Storage/FIRStorageTokenAuthorizer.m; sourceTree = ""; }; + B4CF952FC0EAD3976914E54BA1220D3A /* FIRGetAccountInfoResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGetAccountInfoResponse.m; path = Firebase/Auth/Source/RPCs/FIRGetAccountInfoResponse.m; sourceTree = ""; }; + B5D73E0DF05F99859E29FBDF710F1B4B /* GTMSessionFetcher.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GTMSessionFetcher.modulemap; sourceTree = ""; }; + B618D55A5765B4CA02C16AFF54D5E257 /* GULNetworkMessageCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULNetworkMessageCode.h; path = GoogleUtilities/Network/Private/GULNetworkMessageCode.h; sourceTree = ""; }; + B635A66492681770F3FDCCBC2A4B1706 /* FIRAuthRequestConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthRequestConfiguration.h; path = Firebase/Auth/Source/RPCs/FIRAuthRequestConfiguration.h; sourceTree = ""; }; + B6477C0442D72A6DAF28A86DD24CC2FA /* GULSwizzler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULSwizzler.h; path = GoogleUtilities/MethodSwizzler/Private/GULSwizzler.h; sourceTree = ""; }; + B6671EDE6E7EB1649028F42D04C94D01 /* FSyncTree.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSyncTree.h; path = Firebase/Database/Core/FSyncTree.h; sourceTree = ""; }; + B670870C691E9619E59CC6C1AA889A03 /* FIRGetProjectConfigRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGetProjectConfigRequest.h; path = Firebase/Auth/Source/RPCs/FIRGetProjectConfigRequest.h; sourceTree = ""; }; + B6A09D05724B9E4317F0A1465EDAB18E /* IQUIViewController+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIViewController+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIViewController+Additions.swift"; sourceTree = ""; }; + B6F2834553BB9BF787FF35E2F05F09B3 /* FIRStorageMetadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageMetadata.h; path = Firebase/Storage/Public/FIRStorageMetadata.h; sourceTree = ""; }; + B717631E802378EE562C4D48DD02A0D7 /* FWriteRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FWriteRecord.m; path = Firebase/Database/Core/FWriteRecord.m; sourceTree = ""; }; + B747D7198A287EB4E28BE7A21308426B /* FTupleRemovedQueriesEvents.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTupleRemovedQueriesEvents.m; path = Firebase/Database/Utilities/Tuples/FTupleRemovedQueriesEvents.m; sourceTree = ""; }; + B786ED9C84710C654DA33154CFEDE8E0 /* FPathIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FPathIndex.m; path = Firebase/Database/FPathIndex.m; sourceTree = ""; }; + B78BA1E8D9525CCE4A86CD8FA57CF450 /* FIRDeleteAccountRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDeleteAccountRequest.m; path = Firebase/Auth/Source/RPCs/FIRDeleteAccountRequest.m; sourceTree = ""; }; + B7CE21914028710EF09F878EEE90E7EF /* FIRStorageObservableTask_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageObservableTask_Private.h; path = Firebase/Storage/Private/FIRStorageObservableTask_Private.h; sourceTree = ""; }; + B83C3524CC78FAEA0F53C9962E325DD6 /* FIRAuthAppCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthAppCredential.h; path = Firebase/Auth/Source/FIRAuthAppCredential.h; sourceTree = ""; }; + B8551C7058A8CBABF029E43D2BFD85B0 /* GULNetwork.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULNetwork.m; path = GoogleUtilities/Network/GULNetwork.m; sourceTree = ""; }; + B8B25584E9C0028B2657335D8C0219C4 /* FIRTwitterAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRTwitterAuthCredential.h; path = Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthCredential.h; sourceTree = ""; }; + B8E0894AFD816A91C9192B793D50E4EF /* FIRAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthCredential.m; path = Firebase/Auth/Source/FIRAuthCredential.m; sourceTree = ""; }; + B95C62FA9F4497F20AA06BD8C3DEBE42 /* c.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = c.cc; path = db/c.cc; sourceTree = ""; }; + B9935BE675A5BB44DF60B24237FAB347 /* FIRAuthInterop.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthInterop.h; path = Interop/Auth/Public/FIRAuthInterop.h; sourceTree = ""; }; + B9DD3698F1FFDC41C2AC62568CDBF486 /* env.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = env.h; path = include/leveldb/env.h; sourceTree = ""; }; + BA67B6E51290964128101FA9AF5702FB /* FIRAppAssociationRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAppAssociationRegistration.h; path = Firebase/Core/Private/FIRAppAssociationRegistration.h; sourceTree = ""; }; + BB8AA9F58CD7CF8E39B296EDA683A152 /* FAtomicNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FAtomicNumber.m; path = Firebase/Database/Utilities/FAtomicNumber.m; sourceTree = ""; }; + BC6DA207D4296769C78F5F65F0B2352D /* FIRDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDatabase.m; path = Firebase/Database/Api/FIRDatabase.m; sourceTree = ""; }; + BC6ECCF26DCA0190D7B7A746D894946D /* nanopb-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "nanopb-dummy.m"; sourceTree = ""; }; + BC73B015A10DB9962F5FBA0EFDED4C8C /* FirebaseAuthVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FirebaseAuthVersion.h; path = Firebase/Auth/Source/Public/FirebaseAuthVersion.h; sourceTree = ""; }; + BC84A49B94F9B3BEC488700D5BE29F40 /* GULReachabilityChecker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULReachabilityChecker.m; path = GoogleUtilities/Reachability/GULReachabilityChecker.m; sourceTree = ""; }; + BCAE5F67E0E7BD491D58833419DAB051 /* FirebaseDatabase-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FirebaseDatabase-Info.plist"; sourceTree = ""; }; + BD04BE3AD8B7A26C5C60DDB90A660B09 /* FIRGitHubAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGitHubAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/GitHub/FIRGitHubAuthProvider.m; sourceTree = ""; }; + BD4A4E78776AE341FB67EB822A14EA36 /* FIRAuthWebUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthWebUtils.m; path = Firebase/Auth/Source/FIRAuthWebUtils.m; sourceTree = ""; }; + BDEF2CE8CA4ADD97D1F98A56E7E6735E /* IQKeyboardManagerSwift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "IQKeyboardManagerSwift-Info.plist"; sourceTree = ""; }; + BE5F468BFDCED6CC5F16589010918BB5 /* FIRLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRLogger.h; path = Firebase/Core/Private/FIRLogger.h; sourceTree = ""; }; + BE7F9DC056277D8897B8A38FFCCC84B3 /* FIRInstanceIDCheckinService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDCheckinService.h; path = Firebase/InstanceID/FIRInstanceIDCheckinService.h; sourceTree = ""; }; + BF3E909D831447DBA89D631BB6797FEB /* FImmutableTree.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FImmutableTree.m; path = Firebase/Database/Core/Utilities/FImmutableTree.m; sourceTree = ""; }; + BF62E17B8F8C30A0BEB5132335C862F9 /* FIRStorageTaskSnapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageTaskSnapshot.m; path = Firebase/Storage/FIRStorageTaskSnapshot.m; sourceTree = ""; }; + BFD4CF2B282C44E15B56577BFB4592DA /* FIRMutableData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRMutableData.h; path = Firebase/Database/Public/FIRMutableData.h; sourceTree = ""; }; + C03716B0FFF18A640102A03B71205D1D /* FTrackedQueryManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTrackedQueryManager.h; path = Firebase/Database/Persistence/FTrackedQueryManager.h; sourceTree = ""; }; + C05C3AD460ADC6A1B3B85CAD19307C52 /* FIRComponentContainer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRComponentContainer.h; path = Firebase/Core/Private/FIRComponentContainer.h; sourceTree = ""; }; + C0B587B7595976187113BCDC733B8325 /* port_example.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = port_example.h; path = port/port_example.h; sourceTree = ""; }; + C0E61E1C77EA9483BD3140BDC57832A8 /* testutil.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = testutil.cc; path = util/testutil.cc; sourceTree = ""; }; + C1494BD04285E60B10768944E32FBA7D /* FIRInstanceID+Testing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FIRInstanceID+Testing.h"; path = "Firebase/InstanceID/FIRInstanceID+Testing.h"; sourceTree = ""; }; + C1F40FA1CE48C41DBF6109314A45DCB2 /* FIRAuthOperationType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthOperationType.h; path = Firebase/Auth/Source/FIRAuthOperationType.h; sourceTree = ""; }; + C21F345BCE597274D2CF7408D8A6D124 /* FOverwrite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FOverwrite.m; path = Firebase/Database/Core/Operation/FOverwrite.m; sourceTree = ""; }; + C23BF05B04A7ABD29BCB23D028D26DFA /* FTupleUserCallback.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleUserCallback.h; path = Firebase/Database/Utilities/Tuples/FTupleUserCallback.h; sourceTree = ""; }; + C382A991514B168743F9B20CBC9DCD40 /* SkyFloatingLabelTextField-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SkyFloatingLabelTextField-Info.plist"; sourceTree = ""; }; + C3E97E24BCEF827E42A17B40CC4B00CC /* FIRNoopAuthTokenProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRNoopAuthTokenProvider.h; path = Firebase/Database/Login/FIRNoopAuthTokenProvider.h; sourceTree = ""; }; + C424072055C2486B8469BAD2F70F9F65 /* FIRGetOOBConfirmationCodeRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGetOOBConfirmationCodeRequest.h; path = Firebase/Auth/Source/RPCs/FIRGetOOBConfirmationCodeRequest.h; sourceTree = ""; }; + C4FB8AF2E67BC0E1B08B1ADB20934548 /* GTMSessionFetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionFetcher.h; path = Source/GTMSessionFetcher.h; sourceTree = ""; }; + C52E4F0D9D9EB67A27B46748365DBA6B /* FChildChangeAccumulator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FChildChangeAccumulator.m; path = Firebase/Database/Core/View/Filter/FChildChangeAccumulator.m; sourceTree = ""; }; + C56AFBFB2CD709E1E9A7FB377080D7AC /* FirebaseInstanceID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FirebaseInstanceID.h; path = Firebase/InstanceID/Public/FirebaseInstanceID.h; sourceTree = ""; }; + C5DDBE813143551E7A15F500F9A6C892 /* FIRAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthProvider.m; path = Firebase/Auth/Source/FIRAuthProvider.m; sourceTree = ""; }; + C5EF7F31C003540230D94E8F9F7779ED /* FIRGameCenterAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGameCenterAuthCredential.h; path = Firebase/Auth/Source/AuthProviders/GameCenter/FIRGameCenterAuthCredential.h; sourceTree = ""; }; + C601B9803F132076341C71B1F874580A /* table_cache.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = table_cache.cc; path = db/table_cache.cc; sourceTree = ""; }; + C6271490AB427E4365F31DD78AC858AA /* FIRDatabaseReference_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabaseReference_Private.h; path = Firebase/Database/Api/Private/FIRDatabaseReference_Private.h; sourceTree = ""; }; + C6448EB9CF9319D50E8381D363C2C2B2 /* block.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = block.cc; path = table/block.cc; sourceTree = ""; }; + C662D521BD4B0D1E34C3FD17B80C6593 /* FIRErrors.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRErrors.m; path = Firebase/Core/FIRErrors.m; sourceTree = ""; }; + C66B782590119CB3586CFE568C5FB08F /* FEventGenerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FEventGenerator.m; path = Firebase/Database/FEventGenerator.m; sourceTree = ""; }; + C6F468263E030E4810736B21A2D31B3A /* FIRBundleUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRBundleUtil.h; path = Firebase/Core/Private/FIRBundleUtil.h; sourceTree = ""; }; + C71795BE270D18305CEE4B3FB629A6C8 /* FChildEventRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FChildEventRegistration.h; path = Firebase/Database/Core/View/FChildEventRegistration.h; sourceTree = ""; }; + C770A40C30420A62DD5CB4EEB238A13D /* version_edit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = version_edit.h; path = db/version_edit.h; sourceTree = ""; }; + C7E12202E94A450BB77DFD5DC4DEC7CE /* FEventRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FEventRegistration.h; path = Firebase/Database/Core/View/FEventRegistration.h; sourceTree = ""; }; + C862A133C850FCC2A5AC443C40AACDC9 /* GULAppDelegateSwizzler_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULAppDelegateSwizzler_Private.h; path = GoogleUtilities/AppDelegateSwizzler/Internal/GULAppDelegateSwizzler_Private.h; sourceTree = ""; }; + C88AE41EFC4FD02AE6940347A8B5EED9 /* FIRUser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRUser.m; path = Firebase/Auth/Source/FIRUser.m; sourceTree = ""; }; + C9E1395EE3171D0131510C3D3C98448E /* FirebaseStorage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FirebaseStorage.xcconfig; sourceTree = ""; }; + CA3155B3455F281271F5A05C815B08F6 /* FIRSignInWithGameCenterRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSignInWithGameCenterRequest.h; path = Firebase/Auth/Source/RPCs/FIRSignInWithGameCenterRequest.h; sourceTree = ""; }; + CA4778006FFC3B8EDA8056A73E0DA0AD /* GULAppDelegateSwizzler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULAppDelegateSwizzler.m; path = GoogleUtilities/AppDelegateSwizzler/GULAppDelegateSwizzler.m; sourceTree = ""; }; + CA53F13512170FAD6C3963453FF14785 /* FIRGoogleAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGoogleAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/Google/FIRGoogleAuthProvider.m; sourceTree = ""; }; + CA7809CF80F7222E1A17CF65509B3365 /* FIRInstanceIDConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDConstants.h; path = Firebase/InstanceID/FIRInstanceIDConstants.h; sourceTree = ""; }; + CA7E9643BA45A13517DF7027FB2328C4 /* FIRDependency.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDependency.m; path = Firebase/Core/FIRDependency.m; sourceTree = ""; }; + CB55A84CF5A2FC79608F37D51AC28C24 /* FDataEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FDataEvent.h; path = Firebase/Database/Core/View/FDataEvent.h; sourceTree = ""; }; + CBA4F62AE3688C1C487DD595AA71F78E /* crc32c.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crc32c.h; path = util/crc32c.h; sourceTree = ""; }; + CC0E81A5A7525B241770189FB7390457 /* FIRFederatedAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRFederatedAuthProvider.h; path = Firebase/Auth/Source/Public/FIRFederatedAuthProvider.h; sourceTree = ""; }; + CC39B25AF4669740AA9EA1508745D67A /* FTransformedEnumerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTransformedEnumerator.m; path = Firebase/Database/FTransformedEnumerator.m; sourceTree = ""; }; + CC45E260E5103DB897A574E058A66964 /* NSData+SRB64Additions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+SRB64Additions.h"; path = "Firebase/Database/third_party/SocketRocket/NSData+SRB64Additions.h"; sourceTree = ""; }; + CCA9A536D77F52FBE6BE7B6B41964681 /* log_reader.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = log_reader.cc; path = db/log_reader.cc; sourceTree = ""; }; + CE06EA29164BAFF76D06FBDEB21ED323 /* FTupleObjectNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleObjectNode.h; path = Firebase/Database/Utilities/Tuples/FTupleObjectNode.h; sourceTree = ""; }; + CE1530C2CAA16BA8F3E91529D38FFE76 /* FIRSecureTokenRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSecureTokenRequest.h; path = Firebase/Auth/Source/RPCs/FIRSecureTokenRequest.h; sourceTree = ""; }; + CE5063CE2A45D68DC28A30703D743723 /* thread_annotations.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = thread_annotations.h; path = port/thread_annotations.h; sourceTree = ""; }; + CE680B60AA48DAB593750F851B4800A6 /* GoogleUtilities-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GoogleUtilities-umbrella.h"; sourceTree = ""; }; + CE821E0871B8E3CE8FA81E2E510EC576 /* FIRTransactionResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRTransactionResult.h; path = Firebase/Database/Public/FIRTransactionResult.h; sourceTree = ""; }; + CEC41A912BEBE34CC58457C073CDF43A /* FIRFacebookAuthProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRFacebookAuthProvider.h; path = Firebase/Auth/Source/Public/FIRFacebookAuthProvider.h; sourceTree = ""; }; + CECF22B59ED90B9C0402692D48899F2C /* GULNSData+zlib.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GULNSData+zlib.h"; path = "GoogleUtilities/NSData+zlib/GULNSData+zlib.h"; sourceTree = ""; }; + CEF05E685C196684332099A42F81803B /* FIRAuthAPNSTokenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthAPNSTokenManager.m; path = Firebase/Auth/Source/FIRAuthAPNSTokenManager.m; sourceTree = ""; }; + CF0047FC3447344B84817DC284AE117F /* nanopb.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = nanopb.modulemap; sourceTree = ""; }; + D0ED27E220BD4FF36C21CD29EFC52B1D /* FIRDatabase_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDatabase_Private.h; path = Firebase/Database/Api/Private/FIRDatabase_Private.h; sourceTree = ""; }; + D1B5E4F5AB5E6118C90253311513E7DA /* FIRVerifyPhoneNumberResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyPhoneNumberResponse.h; path = Firebase/Auth/Source/RPCs/FIRVerifyPhoneNumberResponse.h; sourceTree = ""; }; + D1D3F503A583A37050B21FCFF0ED4BE3 /* FIRInstanceIDTokenStore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDTokenStore.m; path = Firebase/InstanceID/FIRInstanceIDTokenStore.m; sourceTree = ""; }; + D2361C8FA64DE880EB78AB95F1FC634E /* FIRSecureTokenResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSecureTokenResponse.m; path = Firebase/Auth/Source/RPCs/FIRSecureTokenResponse.m; sourceTree = ""; }; + D258D14BC79B5BE81F018225D1617EEB /* FIRInstanceIDTokenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDTokenManager.m; path = Firebase/InstanceID/FIRInstanceIDTokenManager.m; sourceTree = ""; }; + D27968B084706EDB81193863E154BB57 /* nanopb-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nanopb-umbrella.h"; sourceTree = ""; }; + D2D6FD686B4D94E26D0D5DC430366737 /* builder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = builder.h; path = db/builder.h; sourceTree = ""; }; + D2F2AC8582883B2F5CFCB721F0A20197 /* FIRNoopAuthTokenProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRNoopAuthTokenProvider.m; path = Firebase/Database/Login/FIRNoopAuthTokenProvider.m; sourceTree = ""; }; + D3E596E32D094BA7FEA6DDB9D5F0589B /* FIRAnalyticsConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAnalyticsConfiguration.h; path = Firebase/Core/Public/FIRAnalyticsConfiguration.h; sourceTree = ""; }; + D3FCDABE02DD992552AB5E4DAB835686 /* FIRStorage_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorage_Private.h; path = Firebase/Storage/Private/FIRStorage_Private.h; sourceTree = ""; }; + D4407E837EE9BA418818B47899C1D8E7 /* GTMSessionFetcher.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GTMSessionFetcher.xcconfig; sourceTree = ""; }; + D44CA21217D25202984043934B3348BD /* FNamedNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FNamedNode.h; path = Firebase/Database/FNamedNode.h; sourceTree = ""; }; + D45D69B64261E237F356C04A9526FF65 /* FIRVerifyAssertionRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyAssertionRequest.h; path = Firebase/Auth/Source/RPCs/FIRVerifyAssertionRequest.h; sourceTree = ""; }; + D5040717B8006BF61D43D7F6B48E12C0 /* FIRStorageUpdateMetadataTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageUpdateMetadataTask.h; path = Firebase/Storage/Private/FIRStorageUpdateMetadataTask.h; sourceTree = ""; }; + D50AA67FF17B2BFC7E217041C8E229B2 /* FCacheNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FCacheNode.h; path = Firebase/Database/Core/View/FCacheNode.h; sourceTree = ""; }; + D51A81B9B97B69A5A5DAD80F16DE4C0B /* mutexlock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mutexlock.h; path = util/mutexlock.h; sourceTree = ""; }; + D5243B62E1F2BDA8C1AA52554770083C /* FIRSecureTokenRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSecureTokenRequest.m; path = Firebase/Auth/Source/RPCs/FIRSecureTokenRequest.m; sourceTree = ""; }; + D549F2D0131B3350B813F36F858E1C54 /* FParsedUrl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FParsedUrl.h; path = Firebase/Database/Utilities/FParsedUrl.h; sourceTree = ""; }; + D5735F9DFCAF98F369ACC00BB6416F36 /* FIRVerifyCustomTokenRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRVerifyCustomTokenRequest.h; path = Firebase/Auth/Source/RPCs/FIRVerifyCustomTokenRequest.h; sourceTree = ""; }; + D57EF38AFCB1A45DC1DB769223D7937B /* FIRStorageDownloadTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRStorageDownloadTask.h; path = Firebase/Storage/Public/FIRStorageDownloadTask.h; sourceTree = ""; }; + D5D9F9EFED9ABA1EFEAAD2A52E438A3B /* FIRAuthAppCredentialManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuthAppCredentialManager.m; path = Firebase/Auth/Source/FIRAuthAppCredentialManager.m; sourceTree = ""; }; + D61916A1215314728E2FB2BA3A1D885B /* FIRSecureTokenService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSecureTokenService.h; path = Firebase/Auth/Source/FIRSecureTokenService.h; sourceTree = ""; }; + D70E831E909C98789ED151FBDEDC5905 /* FIRInstanceIDURLQueryItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDURLQueryItem.h; path = Firebase/InstanceID/FIRInstanceIDURLQueryItem.h; sourceTree = ""; }; + D74C79B83B07E3309F37ED7A75EC2CED /* FWriteTreeRef.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FWriteTreeRef.h; path = Firebase/Database/Core/FWriteTreeRef.h; sourceTree = ""; }; + D7B0C2EFD4A07791D23A3EDA1FC02C7C /* FIRAuthAPNSTokenType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthAPNSTokenType.h; path = Firebase/Auth/Source/Public/FIRAuthAPNSTokenType.h; sourceTree = ""; }; + D7D91E76471740C608932FB8191EDA0E /* FIRMutableData_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRMutableData_Private.h; path = Firebase/Database/Api/Private/FIRMutableData_Private.h; sourceTree = ""; }; + D800E0E09923D13652AD3E5F3A5E516B /* dumpfile.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = dumpfile.cc; path = db/dumpfile.cc; sourceTree = ""; }; + D90914E4131C0BE093BF34D8611523DF /* FEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FEvent.h; path = Firebase/Database/Core/View/FEvent.h; sourceTree = ""; }; + D913E78D0F02108339621D06444137A3 /* FirebaseAuth-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FirebaseAuth-Info.plist"; sourceTree = ""; }; + DB524CCBAA1ECD2E463C761B5DE059CD /* FLLRBValueNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLLRBValueNode.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FLLRBValueNode.m; sourceTree = ""; }; + DBFA2F7A4D78EC764D0F5E1B8EC0BF98 /* builder.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = builder.cc; path = db/builder.cc; sourceTree = ""; }; + DC0AD40E70FC90CF580A4E86E2922BDC /* FAckUserWrite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FAckUserWrite.m; path = Firebase/Database/Core/Operation/FAckUserWrite.m; sourceTree = ""; }; + DDC04CA5EE65D0CB8816FADD711FA835 /* snapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = snapshot.h; path = db/snapshot.h; sourceTree = ""; }; + DDC6594BF397339D58433A333DE18537 /* FIRTransactionResult_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRTransactionResult_Private.h; path = Firebase/Database/Api/Private/FIRTransactionResult_Private.h; sourceTree = ""; }; + DF437F214E11B23760C1A20559F8DD21 /* FirebaseCore-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FirebaseCore-dummy.m"; sourceTree = ""; }; + DF5AB584FF1DD6E115FE19A0878FC416 /* Firebase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Firebase.xcconfig; sourceTree = ""; }; + E02EE10C90FB7B6B85472ACB77E75486 /* FIRTwitterAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRTwitterAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/Twitter/FIRTwitterAuthProvider.m; sourceTree = ""; }; + E0CA2E46CBC978FC51DE6EF3E3B41E17 /* FArraySortedDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FArraySortedDictionary.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FArraySortedDictionary.m; sourceTree = ""; }; + E0EB817F97401681AB4723C0006D5FF8 /* FIRInstanceIDTokenInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDTokenInfo.m; path = Firebase/InstanceID/FIRInstanceIDTokenInfo.m; sourceTree = ""; }; + E120E059F551A1D5C82E3724267496F8 /* FImmutableTree.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FImmutableTree.h; path = Firebase/Database/Core/Utilities/FImmutableTree.h; sourceTree = ""; }; + E149BF7C18FC00B5589E62919F6D7E67 /* histogram.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = histogram.cc; path = util/histogram.cc; sourceTree = ""; }; + E14A183A09723184C126B9BF4C495CD6 /* FIRAuthUserDefaultsStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthUserDefaultsStorage.h; path = Firebase/Auth/Source/FIRAuthUserDefaultsStorage.h; sourceTree = ""; }; + E1BD678C39547DC158AB5186B6192CD5 /* FIRApp.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRApp.m; path = Firebase/Core/FIRApp.m; sourceTree = ""; }; + E1C21FDFCD08422A02F86FAE530CFF13 /* FIRIdentityToolkitRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRIdentityToolkitRequest.m; path = Firebase/Auth/Source/RPCs/FIRIdentityToolkitRequest.m; sourceTree = ""; }; + E265C90C1A9A5EEC46F1CD08C9ED045F /* FIRAdditionalUserInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAdditionalUserInfo.h; path = Firebase/Auth/Source/Public/FIRAdditionalUserInfo.h; sourceTree = ""; }; + E2C29AE6438D99DAFA9772BBDEBD482B /* FirebaseAuth-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FirebaseAuth-umbrella.h"; sourceTree = ""; }; + E2F753EA2F6EC642D9DB98A4057B79BE /* GULNetworkURLSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULNetworkURLSession.m; path = GoogleUtilities/Network/GULNetworkURLSession.m; sourceTree = ""; }; + E36752C049E975ADB4FFE9EF8F55C4D1 /* FIRVerifyPhoneNumberResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyPhoneNumberResponse.m; path = Firebase/Auth/Source/RPCs/FIRVerifyPhoneNumberResponse.m; sourceTree = ""; }; + E38243A4014DD1D48B71E12829A124CC /* FSparseSnapshotTree.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSparseSnapshotTree.h; path = Firebase/Database/Core/FSparseSnapshotTree.h; sourceTree = ""; }; + E4C09B4050A4C305E0895ED70EB188E5 /* FEventEmitter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FEventEmitter.h; path = Firebase/Database/Utilities/FEventEmitter.h; sourceTree = ""; }; + E5C0011917E70088AB9DF54D6C8A441B /* FIRAuth.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRAuth.m; path = Firebase/Auth/Source/FIRAuth.m; sourceTree = ""; }; + E6080F0B9079C846B0F28982453E50CE /* IQUIView+Hierarchy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+Hierarchy.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIView+Hierarchy.swift"; sourceTree = ""; }; + E685CFC33CF143CF4C7B2AE90D9A59BE /* FIRAuthDefaultUIDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthDefaultUIDelegate.h; path = Firebase/Auth/Source/FIRAuthDefaultUIDelegate.h; sourceTree = ""; }; + E6D5ACD151CFEAF17C5ACAFE048F01DF /* leveldb-library-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "leveldb-library-umbrella.h"; sourceTree = ""; }; + E726885254EAE8EF70AE64F561A40E1F /* FWriteTree.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FWriteTree.h; path = Firebase/Database/Core/FWriteTree.h; sourceTree = ""; }; + E7881D571FA0BA35A4655DF5918CFBB4 /* histogram.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = histogram.h; path = util/histogram.h; sourceTree = ""; }; + E89296FAD4B7175D1AFD7119FE8AAC26 /* FRepoInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FRepoInfo.h; path = Firebase/Database/Core/FRepoInfo.h; sourceTree = ""; }; + E8A8A2E913B877233494CC32BDD3539D /* FWebSocketConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FWebSocketConnection.m; path = Firebase/Database/Realtime/FWebSocketConnection.m; sourceTree = ""; }; + E8E1F2C7413D49306D2E126D66ADEBE2 /* env.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = env.cc; path = util/env.cc; sourceTree = ""; }; + E90FCCE89240010AE540C3715C0FCC46 /* slice.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = slice.h; path = include/leveldb/slice.h; sourceTree = ""; }; + E95851522D73846B4EFCFE4489965714 /* UITextField+fixCaretPosition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UITextField+fixCaretPosition.swift"; path = "Sources/UITextField+fixCaretPosition.swift"; sourceTree = ""; }; + E9657C19D7CB5BD2F8791C17217346A3 /* FIRDataSnapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRDataSnapshot.m; path = Firebase/Database/Api/FIRDataSnapshot.m; sourceTree = ""; }; + E96A841370B4867CF6714276BF75B343 /* FRepoInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FRepoInfo.m; path = Firebase/Database/Core/FRepoInfo.m; sourceTree = ""; }; + E9B6279948F4EC253F023FDDA378D6AC /* GULOriginalIMPConvenienceMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GULOriginalIMPConvenienceMacros.h; path = GoogleUtilities/MethodSwizzler/Private/GULOriginalIMPConvenienceMacros.h; sourceTree = ""; }; + E9BD89CEF2CE8038403A7014DFFDAEC8 /* FIRAuthAppDelegateProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthAppDelegateProxy.h; path = Firebase/Auth/Source/FIRAuthAppDelegateProxy.h; sourceTree = ""; }; + EA086E7971357AEA94281D1DF2FF79FE /* merger.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = merger.cc; path = table/merger.cc; sourceTree = ""; }; + EA284F1ED21CC5A476D0C6222974FB25 /* FAuthTokenProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FAuthTokenProvider.h; path = Firebase/Database/Login/FAuthTokenProvider.h; sourceTree = ""; }; + EA3850FC1573760E6D5E4BB736BEC7AC /* FChildrenNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FChildrenNode.m; path = Firebase/Database/Snapshot/FChildrenNode.m; sourceTree = ""; }; + EA5992E14CFC26816BF9A38F433386B9 /* FViewProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FViewProcessor.h; path = Firebase/Database/FViewProcessor.h; sourceTree = ""; }; + EAC9EA96E81EA0B61B22569B455F9EE2 /* FIRGetAccountInfoResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGetAccountInfoResponse.h; path = Firebase/Auth/Source/RPCs/FIRGetAccountInfoResponse.h; sourceTree = ""; }; + EB06DC78D24748B91CEACE63316D7EDA /* FirebaseAuth-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FirebaseAuth-dummy.m"; sourceTree = ""; }; + EB2AB68B59E52917B9E72C1B95089E46 /* FTupleOnDisconnect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleOnDisconnect.h; path = Firebase/Database/Utilities/Tuples/FTupleOnDisconnect.h; sourceTree = ""; }; + EB32D0B42B8DB3B939D7EFE70D050935 /* GULSwizzler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULSwizzler.m; path = GoogleUtilities/MethodSwizzler/GULSwizzler.m; sourceTree = ""; }; + EB6142978364E21B194618786B9C437B /* FMaxNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMaxNode.h; path = Firebase/Database/FMaxNode.h; sourceTree = ""; }; + EC0E8094EF58C3ADAE085AE921698A98 /* port_posix.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = port_posix.h; path = port/port_posix.h; sourceTree = ""; }; + EC201A9BD45B3AD83F8C8EBE025806CA /* FirebaseAuth.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FirebaseAuth.h; path = Firebase/Auth/Source/Public/FirebaseAuth.h; sourceTree = ""; }; + EC9A85A92E1BC6F0DD155CC44A8C9EE3 /* FCompleteChildSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FCompleteChildSource.h; path = Firebase/Database/Core/View/Filter/FCompleteChildSource.h; sourceTree = ""; }; + ECCD657CFD5E06E6685F1A8696646D3D /* FSnapshotHolder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSnapshotHolder.m; path = Firebase/Database/Core/FSnapshotHolder.m; sourceTree = ""; }; + ECFDDD694FE1027247EDEE1E4E8F7EB4 /* GoogleUtilities-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GoogleUtilities-prefix.pch"; sourceTree = ""; }; + EDB87775122E9BF3C4FFAC7632CAA5CA /* FIRUserMetadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRUserMetadata.h; path = Firebase/Auth/Source/Public/FIRUserMetadata.h; sourceTree = ""; }; + EDCFE3B15F78E9328E7E151D90486FE6 /* FIRAdditionalUserInfo_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAdditionalUserInfo_Internal.h; path = Firebase/Auth/Source/FIRAdditionalUserInfo_Internal.h; sourceTree = ""; }; + EDEC00DAE092B41855A25DF0CCFCB09D /* FTrackedQueryManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTrackedQueryManager.m; path = Firebase/Database/Persistence/FTrackedQueryManager.m; sourceTree = ""; }; + EDF6B3C910C2F08B88AC024C1AF07261 /* FPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FPath.h; path = Firebase/Database/Core/Utilities/FPath.h; sourceTree = ""; }; + EE50BF1FD1F7E8F8EFAAE3CA0882F78A /* FIRGetAccountInfoRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGetAccountInfoRequest.h; path = Firebase/Auth/Source/RPCs/FIRGetAccountInfoRequest.h; sourceTree = ""; }; + EE69F575EDC26038B38AD4D173F2F6F9 /* iterator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = iterator.h; path = include/leveldb/iterator.h; sourceTree = ""; }; + EE714EA1D8E6FBE5FB01F9B721ED4BD8 /* FIndexedFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIndexedFilter.m; path = Firebase/Database/Core/View/Filter/FIndexedFilter.m; sourceTree = ""; }; + EEAB4D913F9BB254393ADD3630F960E7 /* FirebaseInstanceID.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FirebaseInstanceID.framework; path = FirebaseInstanceID.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EF23EC72B19FD1C9F36192D8BCF91B8C /* FIRInstanceIDTokenDeleteOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDTokenDeleteOperation.m; path = Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.m; sourceTree = ""; }; + EF6C3553AACC95BC2679FB8691EA9EBC /* FLLRBEmptyNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLLRBEmptyNode.h; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FLLRBEmptyNode.h; sourceTree = ""; }; + EF831B353F8561732142615D027FA973 /* FIRDataEventType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRDataEventType.h; path = Firebase/Database/Public/FIRDataEventType.h; sourceTree = ""; }; + EF945AC2C1675239C11C0A86774C17D8 /* FIRInstanceIDCheckinStore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDCheckinStore.m; path = Firebase/InstanceID/FIRInstanceIDCheckinStore.m; sourceTree = ""; }; + F01C72ED17AC14CF272604C2E4B52F87 /* FSnapshotUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSnapshotUtilities.h; path = Firebase/Database/Snapshot/FSnapshotUtilities.h; sourceTree = ""; }; + F097893F18B1DF9C88D4EC9460602A8F /* FIRInstanceIDUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDUtilities.h; path = Firebase/InstanceID/FIRInstanceIDUtilities.h; sourceTree = ""; }; + F0F9288FDF699C66E00F7621A9F1484F /* IQUIScrollView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIScrollView+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIScrollView+Additions.swift"; sourceTree = ""; }; + F20674F4CFDFDDB521F89BFEACF3EA5B /* FTypedefs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTypedefs.h; path = Firebase/Database/Utilities/FTypedefs.h; sourceTree = ""; }; + F23651C02E078D1B59199AC4DE7CDC25 /* FIRPhoneAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRPhoneAuthCredential.m; path = Firebase/Auth/Source/AuthProviders/Phone/FIRPhoneAuthCredential.m; sourceTree = ""; }; + F2BF635FA9D3885CD4A80B29A362E439 /* FChildEventRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FChildEventRegistration.m; path = Firebase/Database/Core/View/FChildEventRegistration.m; sourceTree = ""; }; + F2C1CCA1089ED32FDB5596EEF49F6DD9 /* IQKeyboardManagerSwift.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.xcconfig; sourceTree = ""; }; + F2E146440E0102C6BBD0D9EBDB29A1DE /* FEmptyNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FEmptyNode.h; path = Firebase/Database/Snapshot/FEmptyNode.h; sourceTree = ""; }; + F313C58F4104E31C87DC22F5C9E1F1D4 /* FIRStoragePath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStoragePath.m; path = Firebase/Storage/FIRStoragePath.m; sourceTree = ""; }; + F336492FD112B280450FCB34C0EBCF67 /* FIRSignInWithGameCenterRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSignInWithGameCenterRequest.m; path = Firebase/Auth/Source/RPCs/FIRSignInWithGameCenterRequest.m; sourceTree = ""; }; + F3671E9F28A18A24C842C26811268C26 /* FTupleRemovedQueriesEvents.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FTupleRemovedQueriesEvents.h; path = Firebase/Database/Utilities/Tuples/FTupleRemovedQueriesEvents.h; sourceTree = ""; }; + F3A1A599C73E2FA5F76E568B8CA1560A /* block_builder.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = block_builder.cc; path = table/block_builder.cc; sourceTree = ""; }; + F4AC72A807F873968A3D2ABD8BE6B9D6 /* FTuplePathValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTuplePathValue.m; path = Firebase/Database/Utilities/Tuples/FTuplePathValue.m; sourceTree = ""; }; + F51DAA3906BC6D342E43B60166A8BFD8 /* FIRAnalyticsConfiguration+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FIRAnalyticsConfiguration+Internal.h"; path = "Firebase/Core/Private/FIRAnalyticsConfiguration+Internal.h"; sourceTree = ""; }; + F56D47C5FC2D489D6B455DF3F1743D3D /* FIRInstanceIDAuthKeyChain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDAuthKeyChain.m; path = Firebase/InstanceID/FIRInstanceIDAuthKeyChain.m; sourceTree = ""; }; + F59FC4CDC515A7A135A5453A3318AFC0 /* FIRInstanceIDCheckinPreferences.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDCheckinPreferences.h; path = Firebase/InstanceID/FIRInstanceIDCheckinPreferences.h; sourceTree = ""; }; + F622CFFBAD2E1E370FE0E99CE2A20FFF /* two_level_iterator.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = two_level_iterator.cc; path = table/two_level_iterator.cc; sourceTree = ""; }; + F62C1A63ED23D7737347980C3C35759B /* FListenComplete.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FListenComplete.h; path = Firebase/Database/FListenComplete.h; sourceTree = ""; }; + F63D4FB0A83317B4538A3558BBAEBBAE /* FIRInstanceIDBackupExcludedPlist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDBackupExcludedPlist.m; path = Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.m; sourceTree = ""; }; + F66D7F017D9EA7BAC8F29A3F2ED94D45 /* FListenProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FListenProvider.h; path = Firebase/Database/Core/FListenProvider.h; sourceTree = ""; }; + F74B5E05BBD455C1A494EA7D381CD556 /* FIRInstanceIDAuthService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRInstanceIDAuthService.m; path = Firebase/InstanceID/FIRInstanceIDAuthService.m; sourceTree = ""; }; + F7D40F08D87BA4D1D76E4B18EFC1F167 /* IQToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbar.swift; path = IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift; sourceTree = ""; }; + F7FD7EB4AD43C08DAC7A41393A0AFC3E /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; + F80978DC32B0CB17D5F42E149EDAA570 /* SkyFloatingLabelTextField-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SkyFloatingLabelTextField-umbrella.h"; sourceTree = ""; }; + F81AB3C991D9BB81456346DCA4FD091E /* FIRGetProjectConfigResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRGetProjectConfigResponse.m; path = Firebase/Auth/Source/RPCs/FIRGetProjectConfigResponse.m; sourceTree = ""; }; + F8B54854C75852E71A4B3D37630BB643 /* FIRResetPasswordRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRResetPasswordRequest.m; path = Firebase/Auth/Source/RPCs/FIRResetPasswordRequest.m; sourceTree = ""; }; + F8B7137FCDF6F9E1A186B07A4E7AE919 /* FIRStorageDeleteTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRStorageDeleteTask.m; path = Firebase/Storage/FIRStorageDeleteTask.m; sourceTree = ""; }; + F9338CB726B2F9BDAC63BD637662B8D0 /* log_writer.cc */ = {isa = PBXFileReference; includeInIndex = 1; name = log_writer.cc; path = db/log_writer.cc; sourceTree = ""; }; + F933B92C6B3F0A0EA08CD0435D54E8A0 /* filename.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = filename.h; path = db/filename.h; sourceTree = ""; }; + F9776B56BCEAE96F9B2A27F78073B4A7 /* FIRSetAccountInfoRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRSetAccountInfoRequest.h; path = Firebase/Auth/Source/RPCs/FIRSetAccountInfoRequest.h; sourceTree = ""; }; + F9EBBD2F336C7F8464383467706831C6 /* FIRSecureTokenService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRSecureTokenService.m; path = Firebase/Auth/Source/FIRSecureTokenService.m; sourceTree = ""; }; + FA272E422258B6250800056FDCA82B4F /* skiplist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = skiplist.h; path = db/skiplist.h; sourceTree = ""; }; + FA8F39F62F677C5CE89E4527FF00F8ED /* FIROAuthProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIROAuthProvider.m; path = Firebase/Auth/Source/AuthProviders/OAuth/FIROAuthProvider.m; sourceTree = ""; }; + FAB6FB5A2ED57995C6F8BE7795B05673 /* FIRAuthDataResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthDataResult.h; path = Firebase/Auth/Source/Public/FIRAuthDataResult.h; sourceTree = ""; }; + FB3CC2D9A013E1FBF9FE723F8911D074 /* GULAppEnvironmentUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GULAppEnvironmentUtil.m; path = GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.m; sourceTree = ""; }; + FB94EC91995A5AD5F36E9F07A99B5EFB /* FTreeSortedDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FTreeSortedDictionary.m; path = Firebase/Database/third_party/FImmutableSortedDictionary/FImmutableSortedDictionary/FTreeSortedDictionary.m; sourceTree = ""; }; + FB9FF5025D1B3C422391E4E4CA40702A /* FIRGetProjectConfigResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRGetProjectConfigResponse.h; path = Firebase/Auth/Source/RPCs/FIRGetProjectConfigResponse.h; sourceTree = ""; }; + FC16310A0B93B1946DE1A5AB7F1D06B6 /* FIRInstanceIDCheckinPreferences_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRInstanceIDCheckinPreferences_Private.h; path = Firebase/InstanceID/FIRInstanceIDCheckinPreferences_Private.h; sourceTree = ""; }; + FC76766D04FF90B8DF64E3C8462888E6 /* FLimitedFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLimitedFilter.m; path = Firebase/Database/Core/View/Filter/FLimitedFilter.m; sourceTree = ""; }; + FDEFEBE1B1B9CF32517F2885A2DE42EC /* FConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FConnection.m; path = Firebase/Database/Realtime/FConnection.m; sourceTree = ""; }; + FE03C07889040A88EC84701E63FEF9FD /* SkyFloatingLabelTextField-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SkyFloatingLabelTextField-prefix.pch"; sourceTree = ""; }; + FE6E999C1F8FA6801FECC38C542CAC5D /* filter_policy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = filter_policy.h; path = include/leveldb/filter_policy.h; sourceTree = ""; }; + FE902F782C52BFBAA9F6BC0BDEC70CB4 /* FIRAuthWebViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FIRAuthWebViewController.h; path = Firebase/Auth/Source/FIRAuthWebViewController.h; sourceTree = ""; }; + FEDEE19B653874407A1678CEAB98B87A /* FIRVerifyAssertionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FIRVerifyAssertionResponse.m; path = Firebase/Auth/Source/RPCs/FIRVerifyAssertionResponse.m; sourceTree = ""; }; + FEF695086157C39C4DED2CF08162B962 /* FirebaseStorage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FirebaseStorage.modulemap; sourceTree = ""; }; + FF66A06FF8EF8A70C95B603728471E3B /* FSnapshotUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSnapshotUtilities.m; path = Firebase/Database/Snapshot/FSnapshotUtilities.m; sourceTree = ""; }; + FFD726C731C02691F9B16C64F62E07C6 /* FirebaseInstanceID.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FirebaseInstanceID.modulemap; sourceTree = ""; }; + FFF47BC4A660741A2FDFDC98EA50806F /* GoogleAppMeasurement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleAppMeasurement.framework; path = Frameworks/GoogleAppMeasurement.framework; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -1947,36 +2000,47 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 8846E0BC73369EC59FEC257CAF49827D /* Frameworks */ = { + 8D1BF02079B445C41310546B06581550 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D22115F16C33AC1B0545F4B32D03C752 /* Foundation.framework in Frameworks */, + 0F1822F21B380B13B582E1B467D45045 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8D1BF02079B445C41310546B06581550 /* Frameworks */ = { + 9FC9B4AED5A9C2254004B46AA382D918 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0F1822F21B380B13B582E1B467D45045 /* Foundation.framework in Frameworks */, + 98F9D1DF6D8D8B956D90CA18324FF9FE /* Foundation.framework in Frameworks */, + 3F0BBCEC6202B967A454F106F16A75E1 /* Security.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9FC9B4AED5A9C2254004B46AA382D918 /* Frameworks */ = { + B886D41EF763DE44F455CB7E74E9A560 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 98F9D1DF6D8D8B956D90CA18324FF9FE /* Foundation.framework in Frameworks */, - 3F0BBCEC6202B967A454F106F16A75E1 /* Security.framework in Frameworks */, + 4E3E6EC07A4F261D041BA0C4CA258260 /* CoreGraphics.framework in Frameworks */, + A380ABE3F1AF1CA7A14F9449BDC0B73F /* Foundation.framework in Frameworks */, + 30C07F53D870FC78B292E0E4F91FEE9E /* QuartzCore.framework in Frameworks */, + E3334CC660C4BD5E41C1061B9DC56FF6 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D7CA3DC324123337BE1D1C48D2B765E6 /* Frameworks */ = { + C4A156FA8BA19CF85336EA8C59F76A38 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E7CB00871EAD9EA9BAE0CCA9F6C72A6C /* Foundation.framework in Frameworks */, + 58798D4F22F098B86BFD11E22D1D1901 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D5FF6454FE279F9DCCD68C0EF7D51647 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4DB2EBC5E75C28100A70505E5F3C2B31 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1999,1208 +2063,1275 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 00F093FE50C4F0A56E2AA6CEC765CB06 /* FirebaseInstanceID */ = { + 00D9672C44FA43C746E83B6368D5910B /* nanopb */ = { isa = PBXGroup; children = ( - 5A93033CA3699FE5432292AEB83EC6F2 /* FirebaseInstanceID.h */, - 4FEDEF37B6160C383E6EFA3276C17B1F /* FIRIMessageCode.h */, - 5CD9500EEEAAF5A6CF95BB131645F8A2 /* FIRInstanceID.h */, - B84487D3C626B10A1D3DB230108D4462 /* FIRInstanceID.m */, - CD07256A490D512F53ED67B1555D0150 /* FIRInstanceID+Private.h */, - 4F6B8C1361135C8BC75D55ADB886B1E5 /* FIRInstanceID+Private.m */, - 4AE78FCFA6B344FCF551625CD626300C /* FIRInstanceID+Testing.h */, - 9359C6214FE2610FE7661A415B0C1AFB /* FIRInstanceIDAPNSInfo.h */, - 02038AD49FDF208D2170F6C3A38915E9 /* FIRInstanceIDAPNSInfo.m */, - 7EA701869574D9D4D27B2574F3B485A7 /* FIRInstanceIDAuthKeyChain.h */, - 058F03E689162F33986593E86482BA92 /* FIRInstanceIDAuthKeyChain.m */, - 19FB01A8ED8FF3D01AC52B5D74C47717 /* FIRInstanceIDAuthService.h */, - C1466690E17D3E068E47539E060853AF /* FIRInstanceIDAuthService.m */, - 044076C868DFB45B7043B6939A074432 /* FIRInstanceIDBackupExcludedPlist.h */, - B613D86CE910A8393F82455E873395CF /* FIRInstanceIDBackupExcludedPlist.m */, - AF6DBF5CDCCA2BA453458F21F0B6CCCE /* FIRInstanceIDCheckinPreferences.h */, - 0560A99FAF8C2CF9E9892513562F0311 /* FIRInstanceIDCheckinPreferences.m */, - C880512238D15492925DB2F8A2FE3068 /* FIRInstanceIDCheckinPreferences+Internal.h */, - A3765B98D0FB3B3D2ABC84CD35697C2A /* FIRInstanceIDCheckinPreferences+Internal.m */, - D4527281949963D776DC9D0985DF8EC3 /* FIRInstanceIDCheckinPreferences_Private.h */, - 69F5D98870B7FDCD04B20E0379BDF3D5 /* FIRInstanceIDCheckinService.h */, - 054C19E563462CFBF0DBCA541A4D4A6E /* FIRInstanceIDCheckinService.m */, - 0283496AFD6FABCDC6FBCB6F333D6491 /* FIRInstanceIDCheckinStore.h */, - 5F9C8B151D3C58EF77FDA9C22A71882C /* FIRInstanceIDCheckinStore.m */, - 29EB50AC0367C40F0A0A72F72D8C8E68 /* FIRInstanceIDConstants.h */, - E72970A70A345A580BE5FC4014236186 /* FIRInstanceIDConstants.m */, - 21EF5103597DFAFE936A1312165188A1 /* FIRInstanceIDDefines.h */, - F39807973782A2CFE0B5408F746922A0 /* FIRInstanceIDKeychain.h */, - 72FF4C25C9781B5916125685B2B0D670 /* FIRInstanceIDKeychain.m */, - 6D714A51DDBB8C95DD3A56368F2BFC68 /* FIRInstanceIDKeyPair.h */, - 3801FBF1E8148FE35DD0BDDE586F53A3 /* FIRInstanceIDKeyPair.m */, - B12B024257603D47BCF3B3683418D7B4 /* FIRInstanceIDKeyPairStore.h */, - BD02EBD6BC2306B6C2D5D67A9F0EC244 /* FIRInstanceIDKeyPairStore.m */, - 992177DD97A66FCC3F7EFA01ECC2BDC8 /* FIRInstanceIDKeyPairUtilities.h */, - B482AE8F6849922FB269B9A3FE7622F4 /* FIRInstanceIDKeyPairUtilities.m */, - CB9EB78BB954E1FF00C1DC8F0B5ADB6B /* FIRInstanceIDLogger.h */, - 36A1977166C8CDAAD6F31DA6B8483AA2 /* FIRInstanceIDLogger.m */, - C1A9A402A55DA3A0F58B36FDF4A01E1B /* FIRInstanceIDStore.h */, - 00C8DD890AA752B92A71AAECF6A83967 /* FIRInstanceIDStore.m */, - 720D2D19CBDF9BBD1DC98B34F653E63F /* FIRInstanceIDStringEncoding.h */, - 6A8C6BB1240DB36C318DF918977AA071 /* FIRInstanceIDStringEncoding.m */, - 5A3860B900C0EC65DE3F087539EED8D8 /* FIRInstanceIDTokenDeleteOperation.h */, - 8901E8699A16F623E66B96C94B8A2B89 /* FIRInstanceIDTokenDeleteOperation.m */, - F1488BB5004D9C1C2AC1E93498AF6FF8 /* FIRInstanceIDTokenFetchOperation.h */, - C8BA8F9578EAFFC0792C7B73BB428ACE /* FIRInstanceIDTokenFetchOperation.m */, - 22BE51743C609FD0306CE746A9364DBE /* FIRInstanceIDTokenInfo.h */, - 9BF5F99257E9796E34DF71888809822A /* FIRInstanceIDTokenInfo.m */, - 45F91AC059C798A250085195C66B4487 /* FIRInstanceIDTokenManager.h */, - 18E4C3A1BADA586422F641630526217F /* FIRInstanceIDTokenManager.m */, - 9B991731B4B869DCDDB919913D058B70 /* FIRInstanceIDTokenOperation.h */, - 9D56BFE95910C37D0ED318963FCECDD3 /* FIRInstanceIDTokenOperation.m */, - F531ADDBD021A60C52DA3E8AAF74C59F /* FIRInstanceIDTokenOperation+Private.h */, - 27A2A4DC36D5B0A92A7E4CDCFD6F7A90 /* FIRInstanceIDTokenStore.h */, - 6EBFF31A64710B3D9E8C70A502FE6FDC /* FIRInstanceIDTokenStore.m */, - AB9F9A4DDFBD010836D6BED1A9DC9641 /* FIRInstanceIDURLQueryItem.h */, - 5AE27390794964B754321C4715002D22 /* FIRInstanceIDURLQueryItem.m */, - A4FF1E23355AEF0D4A5F85D607AAE585 /* FIRInstanceIDUtilities.h */, - 341F018261E8AE076F8DBDCA36E593D6 /* FIRInstanceIDUtilities.m */, - 532FFA75FEA4279D1F9DB74543C73470 /* FIRInstanceIDVersionUtilities.h */, - FAE542D691EE089E363E57016A391AA5 /* FIRInstanceIDVersionUtilities.m */, - AAD4FBBA400D0C6F9E5873FD95BC8AFC /* NSError+FIRInstanceID.h */, - 5AC1B137356697C28275A94586C5C739 /* NSError+FIRInstanceID.m */, - 05211D2FBFCC7070C84E88CCA0BC5702 /* Support Files */, + 33214F1F4DA44B638AA80FAE3BE29C5D /* pb.h */, + 277542CCACBABB940DAE59690620BA07 /* pb_common.c */, + 1526316ABDDC9265DBF0CE25335086CB /* pb_common.h */, + 6595393800F8601771ED6FF8E84D7CBF /* pb_decode.c */, + 9A275416A54B81938577085A5688EF7D /* pb_decode.h */, + 9FF89B3977197928B5282A672130B448 /* pb_encode.c */, + 6F9AD95E355D705F817A6E9FD4CBA522 /* pb_encode.h */, + C8E327211528FD6EA16F1A79A7785A6E /* decode */, + B950BE3C0FD8DB0E7EC417827EDA3C7D /* encode */, + 65E80872435B15D300C018865B4AB48D /* Support Files */, ); - path = FirebaseInstanceID; + name = nanopb; + path = nanopb; sourceTree = ""; }; - 03C5C200A0787E300053CFA8F53CA094 /* Frameworks */ = { + 05B7B0EAA982D34EF29E6257D28C0869 /* Support Files */ = { isa = PBXGroup; children = ( - 1F34D49F868138AC113B6B8380982805 /* iOS */, + AC50F2F5FB6689FCC37705765601AB4A /* GoogleUtilities.modulemap */, + 89C06E7A5B58E6415AF6AF4E0DDD5A10 /* GoogleUtilities.xcconfig */, + 63AC1C04CF9FA401647554B0B436C77C /* GoogleUtilities-dummy.m */, + 10BD4BFE53B577EEADCDA33F3BB65170 /* GoogleUtilities-Info.plist */, + ECFDDD694FE1027247EDEE1E4E8F7EB4 /* GoogleUtilities-prefix.pch */, + CE680B60AA48DAB593750F851B4800A6 /* GoogleUtilities-umbrella.h */, ); - name = Frameworks; + name = "Support Files"; + path = "../Target Support Files/GoogleUtilities"; sourceTree = ""; }; - 05211D2FBFCC7070C84E88CCA0BC5702 /* Support Files */ = { + 133E970AADCA82CD080BF2F5FB6205EE /* FirebaseCore */ = { isa = PBXGroup; children = ( - 52C447F13BA945C4EA2248E1BB28401B /* FirebaseInstanceID.modulemap */, - FD73A21C208A102768DF85340F8F8898 /* FirebaseInstanceID.xcconfig */, - 741C70BFEE85752ED0A32E46C8FED240 /* FirebaseInstanceID-dummy.m */, - 2A780B7B4D4BD94B748936DC31683D5C /* FirebaseInstanceID-Info.plist */, - F9E0C95EA754C2F25A3BB0F35D31D5D5 /* FirebaseInstanceID-umbrella.h */, + D3E596E32D094BA7FEA6DDB9D5F0589B /* FIRAnalyticsConfiguration.h */, + 2105321D0A5A7BDF062D0DE87007D0B1 /* FIRAnalyticsConfiguration.m */, + F51DAA3906BC6D342E43B60166A8BFD8 /* FIRAnalyticsConfiguration+Internal.h */, + 7A19BE5F7DC2C507356BE7F58BC378B0 /* FIRApp.h */, + E1BD678C39547DC158AB5186B6192CD5 /* FIRApp.m */, + BA67B6E51290964128101FA9AF5702FB /* FIRAppAssociationRegistration.h */, + 1152B45A2CEA9944F301C5884944C59C /* FIRAppAssociationRegistration.m */, + 07CCAD18C70F52BA44AAB0D09D893CFD /* FIRAppInternal.h */, + C6F468263E030E4810736B21A2D31B3A /* FIRBundleUtil.h */, + 883C4E3E07A380766F0FE934B39BCEF2 /* FIRBundleUtil.m */, + 5FCA6D2C0537BAF91552678A055149CE /* FIRComponent.h */, + 9F7D2BB37BA06C528FE19FEE336D871D /* FIRComponent.m */, + C05C3AD460ADC6A1B3B85CAD19307C52 /* FIRComponentContainer.h */, + 7CA21109965CC2C4D8BD26BA110B7498 /* FIRComponentContainer.m */, + 3195B1A1BD550DB221B2E1FC3DC60D4D /* FIRComponentContainerInternal.h */, + 137FC741F74E23CA158C33144D7D417B /* FIRComponentType.h */, + 284C444EAE7C611F50844108B8E11F33 /* FIRComponentType.m */, + 519ADA4C8E4DC6D0A303687861EAA4FE /* FIRConfiguration.h */, + 1255E905181A57E5997CFA971C46B701 /* FIRConfiguration.m */, + 39C5A86733E4054199488A1D81FAD0C2 /* FIRDependency.h */, + CA7E9643BA45A13517DF7027FB2328C4 /* FIRDependency.m */, + 785D0D88B9D557A5137E33F229AE8753 /* FirebaseCore.h */, + 6C4670C197D6A2575E2EE651F2BF6CF8 /* FIRErrorCode.h */, + 852D77632A1F500EA0725975C61253B3 /* FIRErrors.h */, + C662D521BD4B0D1E34C3FD17B80C6593 /* FIRErrors.m */, + 2E6850346BFA2E592A2CA757719C1D54 /* FIRLibrary.h */, + BE5F468BFDCED6CC5F16589010918BB5 /* FIRLogger.h */, + 947B3B770D1B1E30CE0004400A7E825F /* FIRLogger.m */, + 637A04702322D136F598E5D192D235AC /* FIRLoggerLevel.h */, + 14A3175B4BCFD861C21FD6F161F0AB85 /* FIROptions.h */, + 7B4011E6948382995F1545C00FA9DDB8 /* FIROptions.m */, + 2DEFC55BFA726E9863A58E4E3270A36A /* FIROptionsInternal.h */, + 8FC21FEB2EFD03AE4381358BE4103326 /* FIRVersion.h */, + 4BB892EC1BF8C5E3D051238A7EBC04AB /* FIRVersion.m */, + F8CC91EF82BEA2E9DFA4BC7DD088E94E /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/FirebaseInstanceID"; + name = FirebaseCore; + path = FirebaseCore; sourceTree = ""; }; - 093216E88910B773BA67601EC8C3CDAD /* Support Files */ = { + 2498D1E6FB0C52DD75010836F29CCCB6 /* MethodSwizzler */ = { isa = PBXGroup; children = ( - 254A62A10C5797962BBC1063EF6F33CA /* SkyFloatingLabelTextField.modulemap */, - 94ED34DD4D554FF493BBCE670219F6C5 /* SkyFloatingLabelTextField.xcconfig */, - 601459BB1E7BFDCFC46DD32F061D4423 /* SkyFloatingLabelTextField-dummy.m */, - 08A4168E69B1BA0C0603DD2504E504F7 /* SkyFloatingLabelTextField-Info.plist */, - CD8C559B46946BD55A3D4B3561CEA1D1 /* SkyFloatingLabelTextField-prefix.pch */, - 52C6659BBA4179DA63448DEB09831D84 /* SkyFloatingLabelTextField-umbrella.h */, + E9B6279948F4EC253F023FDDA378D6AC /* GULOriginalIMPConvenienceMacros.h */, + B6477C0442D72A6DAF28A86DD24CC2FA /* GULSwizzler.h */, + EB32D0B42B8DB3B939D7EFE70D050935 /* GULSwizzler.m */, ); - name = "Support Files"; - path = "../Target Support Files/SkyFloatingLabelTextField"; + name = MethodSwizzler; sourceTree = ""; }; - 09A4997951B37E27A63BEFE52DA3CB92 /* FirebaseStorage */ = { + 2CF2E4767E66475548980B3A0C3EFC7A /* Support Files */ = { isa = PBXGroup; children = ( - 755A35D882ADF037EF156A4CCD605D75 /* FirebaseStorage.h */, - 794126647C8FBC3E52C5C5B8104F3A88 /* FIRStorage.h */, - 0B7B4C111386140849DE52575FA5CA0B /* FIRStorage.m */, - 9BFE8375A2CADB978CD1C612B7B47674 /* FIRStorage_Private.h */, - 0DFD501B0E36E3ED96454C3D6909AA37 /* FIRStorageComponent.h */, - D4F32BE1DD76FB6B9233983AA0FE23A1 /* FIRStorageComponent.m */, - B967AA508C8FAAF1CDB1B5CC554230A9 /* FIRStorageConstants.h */, - 4FD36DAE25C947AEB33FE14F2AE3BD1B /* FIRStorageConstants.m */, - CCD6A79550150E407A109F599DCFCD0F /* FIRStorageConstants_Private.h */, - F21218C0B98EEFCD7CB79BBB5DF3CEBA /* FIRStorageDeleteTask.h */, - CF827B2C266EA61D83C4FB16F013761E /* FIRStorageDeleteTask.m */, - A4EE74BF0062C5527D4F1068C89383EC /* FIRStorageDownloadTask.h */, - A63E7400BF39FBF47E6F78F82F220A77 /* FIRStorageDownloadTask.m */, - 447375EC439FFD1C02EE932FF30E45A5 /* FIRStorageDownloadTask_Private.h */, - 926353C52E650786FCFC2CF7615C5300 /* FIRStorageErrors.h */, - ADF1E1BF913E7933D79D4E632E9991A1 /* FIRStorageErrors.m */, - C04126C0A7D2A3EA824F859DE0B01532 /* FIRStorageGetDownloadURLTask.h */, - 3B4437E6CFF46CA046598822779E1311 /* FIRStorageGetDownloadURLTask.m */, - DD4BF85A18197FEBF638B21FC3A784A2 /* FIRStorageGetDownloadURLTask_Private.h */, - 278C4E4D9BA5A68026CDE6C89AD685CF /* FIRStorageGetMetadataTask.h */, - 3A176C459355061F4D6BFD03405273D8 /* FIRStorageGetMetadataTask.m */, - 1BCA6DA0BBF77B9CB8174A7470CFC83F /* FIRStorageMetadata.h */, - BB252C4FCD980CB856579893AEDACAB6 /* FIRStorageMetadata.m */, - 39601DF8AC984023ACC8BE8AF796E190 /* FIRStorageMetadata_Private.h */, - 5E9FB6D0E0954573517B262A7F9405DF /* FIRStorageObservableTask.h */, - 791BBE4657D1CA8DEEB11B690210E2A1 /* FIRStorageObservableTask.m */, - 932AD7EB552A0ADFB8FE0EEAB5B42ECC /* FIRStorageObservableTask_Private.h */, - 3545E81BF0178BCCB06EEF760F1E5AAA /* FIRStoragePath.h */, - DF1624A4ECBA631C7AFBD4CE87261806 /* FIRStoragePath.m */, - F4D87116F132F40DC8867AE769A6B702 /* FIRStorageReference.h */, - E8965026C355CA3EAAFB8FE8544A96BE /* FIRStorageReference.m */, - 172EC98497ADE08096715EA63426E88F /* FIRStorageReference_Private.h */, - D46BA107AB3D1D30D0179CB38DD127D9 /* FIRStorageTask.h */, - 790AA261DA1AB9FB637730FB6F609E65 /* FIRStorageTask.m */, - 22F3A1E9A4F6AF9FAEC7B9ACA1D0AEB5 /* FIRStorageTask_Private.h */, - 01D7B14186D690E0E96CE2533174C3A0 /* FIRStorageTaskSnapshot.h */, - 5606BB1DF8ED99A820BBF2855E6370DA /* FIRStorageTaskSnapshot.m */, - 8F82EABC1DAA7EA471B8C8AB7DE31B96 /* FIRStorageTaskSnapshot_Private.h */, - C953C1DB15B681BC1CB14D704C7E5B25 /* FIRStorageTokenAuthorizer.h */, - 7DAC36DE3E8C47E4E8403FF361376E52 /* FIRStorageTokenAuthorizer.m */, - 86A65C60D39B9BFD68CD5EAEF8C81D54 /* FIRStorageUpdateMetadataTask.h */, - DB9722699362036FC8C7674FC18B7E51 /* FIRStorageUpdateMetadataTask.m */, - A389418F62EC453B4144889466014F44 /* FIRStorageUploadTask.h */, - C54BB6D9942B602515D259EA3423EB87 /* FIRStorageUploadTask.m */, - E3AFFF1C45DF347F548987E4EB86140F /* FIRStorageUploadTask_Private.h */, - C1C8E8A44987DC36C799C84C55B12D4E /* FIRStorageUtils.h */, - EBE6D705A8784B6AEEFE663D9DA3E9BB /* FIRStorageUtils.m */, - BF70B2D4FCB9CEAC8293B063749A8440 /* Support Files */, + 7B0FE7287CAA1B50B0D9708BC1441E45 /* FirebaseAuthInterop.xcconfig */, ); - path = FirebaseStorage; + name = "Support Files"; + path = "../Target Support Files/FirebaseAuthInterop"; sourceTree = ""; }; - 1916A7AF7BE2CD4B7C617E7B24633884 /* decode */ = { + 3B5C5C1222F8D3290FB77EEC1E9B0359 /* Pods */ = { isa = PBXGroup; children = ( + 95558FD4BB67C428B748958F94A5F862 /* Firebase */, + B380C35AF3EADE70F68C49222D3C5B7A /* FirebaseAnalytics */, + 40A9904C373DE79896D9E0120F6B6F40 /* FirebaseAuth */, + 69C46A2E4FCFD9FDFE669FE0AEA57FF8 /* FirebaseAuthInterop */, + 133E970AADCA82CD080BF2F5FB6205EE /* FirebaseCore */, + 643DED4A544FB2D1DADB7F6099AFCE68 /* FirebaseDatabase */, + F1B9DF58B250628F89DC24FF897BE93E /* FirebaseInstanceID */, + CA74DF7583C4B21AD213B17323B8B1A9 /* FirebaseStorage */, + E7E8FE04F2717945D156EFFF81440314 /* GoogleAppMeasurement */, + D97A19E39861C4DCC67243A5F159C37C /* GoogleUtilities */, + 55FF03855EA79A3EA835E7F5E8E4DEDD /* GTMSessionFetcher */, + EAF8B6BDA9BC60A96ED8BF5445CE152F /* IQKeyboardManagerSwift */, + 63B0F1A8C6D3D3CD9097C4B5B4520574 /* leveldb-library */, + 00D9672C44FA43C746E83B6368D5910B /* nanopb */, + A07D40B9E07D5B188C9CB769FE074D8F /* SkyFloatingLabelTextField */, ); - name = decode; + name = Pods; sourceTree = ""; }; - 1C16374DEBA402712F4539FC80B83CCF /* UserDefaults */ = { + 40A9904C373DE79896D9E0120F6B6F40 /* FirebaseAuth */ = { isa = PBXGroup; children = ( - 46A9486FDCBE1B6436670D6A8F1FC334 /* GULUserDefaults.h */, - 05E9D7BBB6C8712DCD0119FD5FEB8462 /* GULUserDefaults.m */, + 2EA77A9A159741B12D8D8D38F9A35AF1 /* FIRActionCodeSettings.h */, + 8101A551B82C422CA2B12B8190BEF559 /* FIRActionCodeSettings.m */, + E265C90C1A9A5EEC46F1CD08C9ED045F /* FIRAdditionalUserInfo.h */, + 325045AA7C99D3D78752274F02AA71DC /* FIRAdditionalUserInfo.m */, + EDCFE3B15F78E9328E7E151D90486FE6 /* FIRAdditionalUserInfo_Internal.h */, + 4DA1EFAA37BE3E6CFE8F0034044C627A /* FIRAuth.h */, + E5C0011917E70088AB9DF54D6C8A441B /* FIRAuth.m */, + 09443112369904F296CAEE7A3B304A2A /* FIRAuth_Internal.h */, + A9023140F8DDBD51A3EF367CB6A220B1 /* FIRAuthAPNSToken.h */, + 183326A44FBDEE35898C7E1FAD6C0851 /* FIRAuthAPNSToken.m */, + 3C38EA188697648DDCAD3F7D0B1A9EFA /* FIRAuthAPNSTokenManager.h */, + CEF05E685C196684332099A42F81803B /* FIRAuthAPNSTokenManager.m */, + D7B0C2EFD4A07791D23A3EDA1FC02C7C /* FIRAuthAPNSTokenType.h */, + B83C3524CC78FAEA0F53C9962E325DD6 /* FIRAuthAppCredential.h */, + AD4894CE770725E86ECD6D7FC3BA4516 /* FIRAuthAppCredential.m */, + 6B278E179F53087CB531D83821711893 /* FIRAuthAppCredentialManager.h */, + D5D9F9EFED9ABA1EFEAAD2A52E438A3B /* FIRAuthAppCredentialManager.m */, + E9BD89CEF2CE8038403A7014DFFDAEC8 /* FIRAuthAppDelegateProxy.h */, + 0C5BAE80B61F8AB85A079B5BC360D097 /* FIRAuthAppDelegateProxy.m */, + A8ED4F2B61985EE1E3984B6677548482 /* FIRAuthBackend.h */, + 94DBEAAA2DBC7F28FBBCC2B5F21F3931 /* FIRAuthBackend.m */, + 43135CF1497A4CE4737DBEBA574E8082 /* FIRAuthCredential.h */, + B8E0894AFD816A91C9192B793D50E4EF /* FIRAuthCredential.m */, + 7F7BF67FF2913A06C26C86AC20ED02E5 /* FIRAuthCredential_Internal.h */, + FAB6FB5A2ED57995C6F8BE7795B05673 /* FIRAuthDataResult.h */, + 418E6F462BE573466EE6BD751080D984 /* FIRAuthDataResult.m */, + A36B4B0B985EA258F6CE173AD9BA198A /* FIRAuthDataResult_Internal.h */, + E685CFC33CF143CF4C7B2AE90D9A59BE /* FIRAuthDefaultUIDelegate.h */, + 72F214B853E1C258ECFECFF520F20924 /* FIRAuthDefaultUIDelegate.m */, + 7DFAF20F19CD461B3E454300789F56E2 /* FIRAuthDispatcher.h */, + 1354F571209E1FC4B795115F71A2CBA4 /* FIRAuthDispatcher.m */, + 558AD646C035839B532AE1A9FCF44F8E /* FIRAuthErrors.h */, + 8E787AA64FC0F38B88F3F8909944E6C8 /* FIRAuthErrorUtils.h */, + 54C0D8893D1CB0B4A21ADEB8B7A86DDE /* FIRAuthErrorUtils.m */, + B40872CD6E41C1164DA1DF63A4E25F83 /* FIRAuthExceptionUtils.h */, + 035ABAFF31D87A83CFC6EEBBB68673C2 /* FIRAuthExceptionUtils.m */, + 5542005E5F5C24651F2EF10905909A98 /* FIRAuthGlobalWorkQueue.h */, + 1C11029CA303A9716DDC18309E345CB6 /* FIRAuthGlobalWorkQueue.m */, + 9F70C7096BB047DE6ACA4EAC80921653 /* FIRAuthInternalErrors.h */, + 59614F1D6332548E36EF86AFF220A443 /* FIRAuthKeychain.h */, + 0ED5ED8C8B13D15D59FA18252FADF279 /* FIRAuthKeychain.m */, + 79CA0FBA7D4ADD70AC17CF536CFE4DBF /* FIRAuthNotificationManager.h */, + 9E1DF5F6F099E1E9BA95677B5504DE02 /* FIRAuthNotificationManager.m */, + C1F40FA1CE48C41DBF6109314A45DCB2 /* FIRAuthOperationType.h */, + C5DDBE813143551E7A15F500F9A6C892 /* FIRAuthProvider.m */, + B635A66492681770F3FDCCBC2A4B1706 /* FIRAuthRequestConfiguration.h */, + 32E25AE318409C462D3998BA78217F33 /* FIRAuthRequestConfiguration.m */, + 71AC0901933AD2A5432E91142D482357 /* FIRAuthRPCRequest.h */, + 27BE3DF76450F5A994530FA877F71DB4 /* FIRAuthRPCResponse.h */, + 675F26DE0744932198A80E80C9B59671 /* FIRAuthSerialTaskQueue.h */, + 74775D0FD6EDB6C6AE96696685E4026D /* FIRAuthSerialTaskQueue.m */, + 57058732E363D33DD3290897751CE97A /* FIRAuthSettings.h */, + 5B10C972B892ED6DB107ED9BB47DA6F2 /* FIRAuthSettings.m */, + 6F5C70FFDAD2CA7580490595A3F6E5A9 /* FIRAuthTokenResult.h */, + A31BB33948A1415AD192E9C9F4315E7D /* FIRAuthTokenResult.m */, + 11539019691A0E899CCEFC5392C637FA /* FIRAuthTokenResult_Internal.h */, + 4248B7CE285E77B66D3491FD82A8ED05 /* FIRAuthUIDelegate.h */, + 8ED3AD4C9AB855F3CD877AC4D6DAE742 /* FIRAuthURLPresenter.h */, + 61A566D4D966D6FD3BA47083B227439C /* FIRAuthURLPresenter.m */, + E14A183A09723184C126B9BF4C495CD6 /* FIRAuthUserDefaultsStorage.h */, + 8F297668412D2D546C79924C58C3443F /* FIRAuthUserDefaultsStorage.m */, + 8EEEF1563F580108C52A150A2639D3EE /* FIRAuthWebUtils.h */, + BD4A4E78776AE341FB67EB822A14EA36 /* FIRAuthWebUtils.m */, + 85C4FB3F7235F50BA69CA40AA5C27444 /* FIRAuthWebView.h */, + 1D55D30E57F51334315AB26779DF0F69 /* FIRAuthWebView.m */, + FE902F782C52BFBAA9F6BC0BDEC70CB4 /* FIRAuthWebViewController.h */, + AA0A0E1B5E75DDB702AE7026F54977F1 /* FIRAuthWebViewController.m */, + 139648B847A4CE607C12641F9E5C64C7 /* FIRCreateAuthURIRequest.h */, + 1E893D5481EDD037B3E0D5865D7D6971 /* FIRCreateAuthURIRequest.m */, + 2D3D5ABB7D9ED03670E439E52F3E11D1 /* FIRCreateAuthURIResponse.h */, + A1BB86B6D726ACA89A7085BFB31D7BE9 /* FIRCreateAuthURIResponse.m */, + 7BE2825A5214CC391D437F27FCD00EF3 /* FIRDeleteAccountRequest.h */, + B78BA1E8D9525CCE4A86CD8FA57CF450 /* FIRDeleteAccountRequest.m */, + 56B801E61F6A8C23DB178EF20C143EE9 /* FIRDeleteAccountResponse.h */, + 46BE07306D95530B3F7C1F40FED30A2F /* FIRDeleteAccountResponse.m */, + EC201A9BD45B3AD83F8C8EBE025806CA /* FirebaseAuth.h */, + BC73B015A10DB9962F5FBA0EFDED4C8C /* FirebaseAuthVersion.h */, + 80904A882D2E112FE1B9CD59DBCED890 /* FirebaseAuthVersion.m */, + 37321833A613989B867D0FB0EB0FE47E /* FIREmailAuthProvider.h */, + 72CAB19DCC045D7BC4413C84C1911B3E /* FIREmailAuthProvider.m */, + 34DF897C6F43B5BE14D0733E5D5FDA3C /* FIREmailLinkSignInRequest.h */, + 6C1CCDFB0D7EBEB0883F20E3D4C290C4 /* FIREmailLinkSignInRequest.m */, + 72A7D0D588196B6975538D66837D8E1B /* FIREmailLinkSignInResponse.h */, + 5B028544CC6B62834C8A3423557C4DE5 /* FIREmailLinkSignInResponse.m */, + 5DC0B2F5445ED7629C3D5DE25138034C /* FIREmailPasswordAuthCredential.h */, + 4F924A12A2DF19AC35A63824104F6C14 /* FIREmailPasswordAuthCredential.m */, + 2D58D34CEA34FF3BBBD83EEE5E0CBAC3 /* FIRFacebookAuthCredential.h */, + 33FEB75D690009060D5BAB923911FC23 /* FIRFacebookAuthCredential.m */, + CEC41A912BEBE34CC58457C073CDF43A /* FIRFacebookAuthProvider.h */, + 0A94E8E446F77CD52C23F05DD7C64703 /* FIRFacebookAuthProvider.m */, + CC0E81A5A7525B241770189FB7390457 /* FIRFederatedAuthProvider.h */, + C5EF7F31C003540230D94E8F9F7779ED /* FIRGameCenterAuthCredential.h */, + 5DBAF4FF5A243F9CB2E3CE32C9BC72C8 /* FIRGameCenterAuthCredential.m */, + 8B2FEBB2C85674AF9840A87937A3E70D /* FIRGameCenterAuthProvider.h */, + 6C001D1D619B63B1EAFC511846975698 /* FIRGameCenterAuthProvider.m */, + EE50BF1FD1F7E8F8EFAAE3CA0882F78A /* FIRGetAccountInfoRequest.h */, + A963FF14DFDC2978053A6A8330294079 /* FIRGetAccountInfoRequest.m */, + EAC9EA96E81EA0B61B22569B455F9EE2 /* FIRGetAccountInfoResponse.h */, + B4CF952FC0EAD3976914E54BA1220D3A /* FIRGetAccountInfoResponse.m */, + C424072055C2486B8469BAD2F70F9F65 /* FIRGetOOBConfirmationCodeRequest.h */, + 541EED348C50B0AA88D60A7C4DA134DF /* FIRGetOOBConfirmationCodeRequest.m */, + 7C09EE80A53F233F52132FE6D9B19652 /* FIRGetOOBConfirmationCodeResponse.h */, + 006EAFFEDAACC2F909A2006C29F0B4CF /* FIRGetOOBConfirmationCodeResponse.m */, + B670870C691E9619E59CC6C1AA889A03 /* FIRGetProjectConfigRequest.h */, + 68AE6C45F35B9F7D377F609C176EF145 /* FIRGetProjectConfigRequest.m */, + FB9FF5025D1B3C422391E4E4CA40702A /* FIRGetProjectConfigResponse.h */, + F81AB3C991D9BB81456346DCA4FD091E /* FIRGetProjectConfigResponse.m */, + 3C4FFE102D0F9736DFDB6573634B9DFD /* FIRGitHubAuthCredential.h */, + 17DF3A9667D1FEDF59D77524CBAFF416 /* FIRGitHubAuthCredential.m */, + 3C0B24901819C76E6D49E0861593CB82 /* FIRGitHubAuthProvider.h */, + BD04BE3AD8B7A26C5C60DDB90A660B09 /* FIRGitHubAuthProvider.m */, + 8038AB110680893CC62064F2BB7B7C0F /* FIRGoogleAuthCredential.h */, + 8E907D050201807523CEAB6D847BEC93 /* FIRGoogleAuthCredential.m */, + 33625CC55436AE37384BEBE71AB382C6 /* FIRGoogleAuthProvider.h */, + CA53F13512170FAD6C3963453FF14785 /* FIRGoogleAuthProvider.m */, + 01692C6A094946F11ED83A1952BAA253 /* FIRIdentityToolkitRequest.h */, + E1C21FDFCD08422A02F86FAE530CFF13 /* FIRIdentityToolkitRequest.m */, + 51435D5603A25C86CF658A2E7D7A6B96 /* FIROAuthCredential.h */, + 864942A138C9AB7B1F3941533B832A79 /* FIROAuthCredential.m */, + 1895953C878F8CD732446D7B972B2A5E /* FIROAuthCredential_Internal.h */, + 75E989111ED56BF720839D2DD8E763CF /* FIROAuthProvider.h */, + FA8F39F62F677C5CE89E4527FF00F8ED /* FIROAuthProvider.m */, + 56512CB54D5AE7748E852DE6B5378233 /* FIRPhoneAuthCredential.h */, + F23651C02E078D1B59199AC4DE7CDC25 /* FIRPhoneAuthCredential.m */, + B00B4338D71EDABE1B0159C2C0CDEE56 /* FIRPhoneAuthCredential_Internal.h */, + 54B1B27A722B3FBA5496A720CC1A5CEE /* FIRPhoneAuthProvider.h */, + 18EDCFA2D5F24293CDE39A247CF57E8A /* FIRPhoneAuthProvider.m */, + 12F4F446D253DA0F436DA9EDC636B5A1 /* FIRResetPasswordRequest.h */, + F8B54854C75852E71A4B3D37630BB643 /* FIRResetPasswordRequest.m */, + 0F4C98284A88F5BF60547446ED103475 /* FIRResetPasswordResponse.h */, + 87A77351E74C12CB13D2347C22AA624F /* FIRResetPasswordResponse.m */, + CE1530C2CAA16BA8F3E91529D38FFE76 /* FIRSecureTokenRequest.h */, + D5243B62E1F2BDA8C1AA52554770083C /* FIRSecureTokenRequest.m */, + 63BD002B60FD8CF57C980BCA5DCAAA05 /* FIRSecureTokenResponse.h */, + D2361C8FA64DE880EB78AB95F1FC634E /* FIRSecureTokenResponse.m */, + D61916A1215314728E2FB2BA3A1D885B /* FIRSecureTokenService.h */, + F9EBBD2F336C7F8464383467706831C6 /* FIRSecureTokenService.m */, + 811057F156C496D1C4F9208656966BDD /* FIRSendVerificationCodeRequest.h */, + AF4C3B754BF9328967EF15538AECFC62 /* FIRSendVerificationCodeRequest.m */, + A0257596A8EFB43D3C35BD21539ABFB3 /* FIRSendVerificationCodeResponse.h */, + 1851DC3F8BBD91103DB7D81BCA96F8AF /* FIRSendVerificationCodeResponse.m */, + F9776B56BCEAE96F9B2A27F78073B4A7 /* FIRSetAccountInfoRequest.h */, + 21C44E0FCBC3FD409AF911F66083145E /* FIRSetAccountInfoRequest.m */, + 9616F08E4D2CD82DE4D20C02A0E4AAEC /* FIRSetAccountInfoResponse.h */, + A42342161B2DA0340887869176407F47 /* FIRSetAccountInfoResponse.m */, + CA3155B3455F281271F5A05C815B08F6 /* FIRSignInWithGameCenterRequest.h */, + F336492FD112B280450FCB34C0EBCF67 /* FIRSignInWithGameCenterRequest.m */, + 844FECB61F7E1CE84E7216A21967CC2B /* FIRSignInWithGameCenterResponse.h */, + 8758E7C57F30B643374142691B1C75BE /* FIRSignInWithGameCenterResponse.m */, + 22C1D5C86D1001DC26DEEED074A443F5 /* FIRSignUpNewUserRequest.h */, + 9F7A17A2C2E384EF92E0D83BFEF7E76B /* FIRSignUpNewUserRequest.m */, + 898318EC9E7D0D3CCB7BB71B8F2E7FA9 /* FIRSignUpNewUserResponse.h */, + 28582C025BACD55A7DCC97515F0072CB /* FIRSignUpNewUserResponse.m */, + B8B25584E9C0028B2657335D8C0219C4 /* FIRTwitterAuthCredential.h */, + 3A43DA4AA1E458D1D9E3BF081A20D3DF /* FIRTwitterAuthCredential.m */, + 011E87FC73D1CA00449BA6DD75FA93B4 /* FIRTwitterAuthProvider.h */, + E02EE10C90FB7B6B85472ACB77E75486 /* FIRTwitterAuthProvider.m */, + 06B19ADAC1BFC767F76B8AF5D01EE295 /* FIRUser.h */, + C88AE41EFC4FD02AE6940347A8B5EED9 /* FIRUser.m */, + 17104809A78BE3FE204B30B6EC20BCE6 /* FIRUser_Internal.h */, + 3DA8D3A2E0B8F1BB1317F93EC4E25590 /* FIRUserInfo.h */, + 7DB935F7C8BD9FE6B43670B1FCAA50F2 /* FIRUserInfoImpl.h */, + 4F5D30918C77A0FCFEC5B47313EBA1E0 /* FIRUserInfoImpl.m */, + EDB87775122E9BF3C4FFAC7632CAA5CA /* FIRUserMetadata.h */, + 2EA87E86672F1EE5D63BB6AFCDF19142 /* FIRUserMetadata.m */, + 84C80CAAD03D6AE19180297CA79F67EC /* FIRUserMetadata_Internal.h */, + D45D69B64261E237F356C04A9526FF65 /* FIRVerifyAssertionRequest.h */, + 4C5AF476FC15EE1DF80F873C7DC0A461 /* FIRVerifyAssertionRequest.m */, + AD6F39147D010BA530243E1F085BC339 /* FIRVerifyAssertionResponse.h */, + FEDEE19B653874407A1678CEAB98B87A /* FIRVerifyAssertionResponse.m */, + 2362FD7A5621613A543C642A63EF932B /* FIRVerifyClientRequest.h */, + 0E2AFDEF995D40A3A151B61D8A2C980D /* FIRVerifyClientRequest.m */, + 49CAE94CA62D827D2CB907579619194A /* FIRVerifyClientResponse.h */, + 8D6471C9D95AFC4A1DA300D20751E613 /* FIRVerifyClientResponse.m */, + D5735F9DFCAF98F369ACC00BB6416F36 /* FIRVerifyCustomTokenRequest.h */, + 9B4E1D6BCCCB72AED5216B1AD683C7B9 /* FIRVerifyCustomTokenRequest.m */, + 695115B98839955A70B2B4B53381BE98 /* FIRVerifyCustomTokenResponse.h */, + 1724632216FDB2FAEEF7F6914EFD2D8F /* FIRVerifyCustomTokenResponse.m */, + 3AC03FB70AE0CEB16BC437A90DB78F78 /* FIRVerifyPasswordRequest.h */, + 743F8E98E9F9EA3C2072FD2B02C0761A /* FIRVerifyPasswordRequest.m */, + 6AD914ADF4F1F30F5F4166A65F38F00E /* FIRVerifyPasswordResponse.h */, + A5E2C194D1E0B47718A48C88C4BB76C3 /* FIRVerifyPasswordResponse.m */, + 514E2D9A98B1D95C1CDA4273FE11A944 /* FIRVerifyPhoneNumberRequest.h */, + 4BADB20F20A84CABD204C407921CBDD6 /* FIRVerifyPhoneNumberRequest.m */, + D1B5E4F5AB5E6118C90253311513E7DA /* FIRVerifyPhoneNumberResponse.h */, + E36752C049E975ADB4FFE9EF8F55C4D1 /* FIRVerifyPhoneNumberResponse.m */, + 1146FA93009C150FCAF944E8EC5D5908 /* NSData+FIRBase64.h */, + 4C2C71AD761BA7321A89A6A01BBB41B2 /* NSData+FIRBase64.m */, + A9D2F8C77F377B827BB0F931D42DC3F7 /* Support Files */, ); - name = UserDefaults; + name = FirebaseAuth; + path = FirebaseAuth; sourceTree = ""; }; - 1F34D49F868138AC113B6B8380982805 /* iOS */ = { + 46A6F6AA932F0D356ED4576998B3743C /* Pods-FoodApp */ = { isa = PBXGroup; children = ( - E97B19021E1E8AF3519C89CB06E46C80 /* Foundation.framework */, - 2A62F5DEA813F07D663C4B01BE3FDEA0 /* Security.framework */, - 099602E95CC02BDF479BAE577F2E1E33 /* SystemConfiguration.framework */, + B32170F2C1D880AFF5CDFB357914CDC8 /* Pods-FoodApp.modulemap */, + 48B4125E3CF9C5BACE37D4E4C0444191 /* Pods-FoodApp-acknowledgements.markdown */, + 1E06B64600CF08545CDF37B6BCF5E501 /* Pods-FoodApp-acknowledgements.plist */, + 3EAD07CC0F86D45EA5E1C31331F5464E /* Pods-FoodApp-dummy.m */, + 9F16CC78A164BDC25A829E764F398E1E /* Pods-FoodApp-frameworks.sh */, + 71D59DFB0F7108991DE8BC21D863B3EB /* Pods-FoodApp-Info.plist */, + A7D05A88165A4534979F2118A069E5AD /* Pods-FoodApp-umbrella.h */, + 0E7E06A549C2EC13E577E78F1649EDC6 /* Pods-FoodApp.debug.xcconfig */, + A5565C0126D05A886ADF3ED07BF6B8C9 /* Pods-FoodApp.release.xcconfig */, ); - name = iOS; + name = "Pods-FoodApp"; + path = "Target Support Files/Pods-FoodApp"; sourceTree = ""; }; - 2036B39AFA22E51C9A71A6E08B9CC357 /* Pods */ = { + 55FF03855EA79A3EA835E7F5E8E4DEDD /* GTMSessionFetcher */ = { isa = PBXGroup; children = ( - 553C9D0A8963871036354C9DBF10E331 /* Firebase */, - 3CC17AF8645D94DB6B9BBBDDE77CC49C /* FirebaseAnalytics */, - C6E644AFAF9ACA189F7CA85885C9E43D /* FirebaseAuth */, - 9E9C20DEAAD0AE983DA654E673C415B8 /* FirebaseAuthInterop */, - BDA734F66E31711CD33F247023ADC59D /* FirebaseCore */, - 7E8861C84D97E314245FA6B29F743987 /* FirebaseDatabase */, - 00F093FE50C4F0A56E2AA6CEC765CB06 /* FirebaseInstanceID */, - 09A4997951B37E27A63BEFE52DA3CB92 /* FirebaseStorage */, - 6DDF683100C635357A5C59859E6F613A /* GoogleAppMeasurement */, - F21C9B79F421789A6692929D2348E3EA /* GoogleUtilities */, - AF4CE4200D05639527E0F56C26F6B21A /* GTMSessionFetcher */, - ED2A35AE8A334B3ADE6FCD5C8500FF08 /* leveldb-library */, - E18F7A130F3968AC2D36FB6B902429D3 /* nanopb */, - 3F8961D77F4A5775A887AC6978310D71 /* SkyFloatingLabelTextField */, + 8356CB02C551A39339B8D2D64F501752 /* Core */, + D1736F9CD7C1A4AE04F30B7C46D1E416 /* Support Files */, ); - name = Pods; + name = GTMSessionFetcher; + path = GTMSessionFetcher; sourceTree = ""; }; - 28FDDAEC385EA16F0FB6DE25084D427E /* Support Files */ = { + 5E01FE630F31E69D06AB2CDBF6E34A37 /* Support Files */ = { isa = PBXGroup; children = ( - 9523E2CB3C294ADA7216491DA9918B67 /* GoogleUtilities.modulemap */, - 0CC07E744C64DBCA25569B0E99624EC1 /* GoogleUtilities.xcconfig */, - D7A4F1C6986110DFEE9B25914D9108FC /* GoogleUtilities-dummy.m */, - 91C843E9530B8C86C66F2FEFB58C28E4 /* GoogleUtilities-Info.plist */, - 940CB393DBD4349DB28A6A2FBE4FBFA0 /* GoogleUtilities-prefix.pch */, - C33376A65CBAF31E8FA82A2DC5E0BE5F /* GoogleUtilities-umbrella.h */, + 9A04C5D00BADEB6DF65EC5481CF5F027 /* FirebaseDatabase.modulemap */, + 314DAF0DCB891CFF1059F80DAC87E0A1 /* FirebaseDatabase.xcconfig */, + A5F847BCB6DCB0A897FEB97B315F764F /* FirebaseDatabase-dummy.m */, + BCAE5F67E0E7BD491D58833419DAB051 /* FirebaseDatabase-Info.plist */, + 40766C67BF78A5AA66F18FEFC606B5B2 /* FirebaseDatabase-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/GoogleUtilities"; + path = "../Target Support Files/FirebaseDatabase"; sourceTree = ""; }; - 374BD0B1988F272C99A7E5F1F2648B8E /* Support Files */ = { + 62A2B20A2E959F00264546D4C96D5B00 /* NSData+zlib */ = { isa = PBXGroup; children = ( - A8366243C7D4EDE235C158FAD9285F55 /* GTMSessionFetcher.modulemap */, - 7ECCCC320952E6A75BFABF7ECD100615 /* GTMSessionFetcher.xcconfig */, - 4707F4492884C6E647168825F246A3AE /* GTMSessionFetcher-dummy.m */, - 13E8DA44F9B3FEF92CC33190B9AD7E95 /* GTMSessionFetcher-Info.plist */, - FC54BC1957D38E77CB3229650A46103F /* GTMSessionFetcher-prefix.pch */, - 9A4DCDDD7C5C046C186E7370CF0A5CDB /* GTMSessionFetcher-umbrella.h */, + CECF22B59ED90B9C0402692D48899F2C /* GULNSData+zlib.h */, + 4422C86ABED5E9028BBF41FEEF8ADA21 /* GULNSData+zlib.m */, ); - name = "Support Files"; - path = "../Target Support Files/GTMSessionFetcher"; + name = "NSData+zlib"; sourceTree = ""; }; - 3CC17AF8645D94DB6B9BBBDDE77CC49C /* FirebaseAnalytics */ = { + 62C0CAA675363B5F09D022D666888756 /* Products */ = { isa = PBXGroup; children = ( - E93640A79F7D956C15059989931B8B54 /* Frameworks */, - 8084B36174717EDC75562BAE3B2E52F4 /* Support Files */, + 4EDB9A2EE37A411045065371CF5DE9BB /* FirebaseAuth.framework */, + 35A985175C33AFA5BAF020A6EFF85A8F /* FirebaseCore.framework */, + 2C41C04FF1CC495A14B4D51CAF7F82C9 /* FirebaseDatabase.framework */, + EEAB4D913F9BB254393ADD3630F960E7 /* FirebaseInstanceID.framework */, + 91038900478D9E4A5521002E8B7705A1 /* FirebaseStorage.framework */, + 0F166109264EDEE2ED81825FCC1928DF /* GoogleUtilities.framework */, + 2EED29DCF463D921818F8E1834076D85 /* GTMSessionFetcher.framework */, + A9A32DBF40E3746C2C4149C5C0058AD0 /* IQKeyboardManagerSwift.framework */, + 674B8835D2F71D02E98DE7760D29A9DE /* leveldb.framework */, + 2D45242188FE1122A0B16A31C6DE984E /* nanopb.framework */, + 48A10C37A4C965A474AB90D4EBA1EF95 /* Pods_FoodApp.framework */, + AE21DF376D8F68A67CD3B8D095097691 /* SkyFloatingLabelTextField.framework */, ); - path = FirebaseAnalytics; + name = Products; sourceTree = ""; }; - 3CED2CB303940582E5B0544A963B60C5 /* CoreOnly */ = { + 63B0F1A8C6D3D3CD9097C4B5B4520574 /* leveldb-library */ = { isa = PBXGroup; children = ( - 6464899E1515D6E824797C8D18E61B5E /* Firebase.h */, + 7CD4C8A441F1A2126B3E75FBA02E0AEE /* arena.cc */, + 352E50E46F62044940F82B5D1833912C /* arena.h */, + 4C0D162409701E7B951394EDBB923CBE /* atomic_pointer.h */, + C6448EB9CF9319D50E8381D363C2C2B2 /* block.cc */, + 09F2BFB7D3BA8EBEE1945C5A95D528DB /* block.h */, + F3A1A599C73E2FA5F76E568B8CA1560A /* block_builder.cc */, + 1DC3794FF927777A6A2210F8FCE5CCB3 /* block_builder.h */, + 9828827984BED1F74C34E74D16B575C6 /* bloom.cc */, + DBFA2F7A4D78EC764D0F5E1B8EC0BF98 /* builder.cc */, + D2D6FD686B4D94E26D0D5DC430366737 /* builder.h */, + B95C62FA9F4497F20AA06BD8C3DEBE42 /* c.cc */, + 97E691D4DE9C94E842D90F09716FE8E7 /* c.h */, + 899B0553D5DA571490A164523F258008 /* cache.cc */, + B34F1E80B0D7283399E4ED1C97B67DF8 /* cache.h */, + 766694ED65C969FF27944158276BE54A /* coding.cc */, + 6224B637C41F80E96D3419611D9E4B53 /* coding.h */, + ADA7B46D555005B7006926636B5B39BF /* comparator.cc */, + 99B21FBC2D191DE85DF017800C02B772 /* comparator.h */, + 31BF0C9E8A19ADB4188DC547088929A5 /* crc32c.cc */, + CBA4F62AE3688C1C487DD595AA71F78E /* crc32c.h */, + 15B0E0E83BA9B2F2B211A49B41A23503 /* db.h */, + 9C149003C9EEA0E845A4B53703D6882D /* db_impl.cc */, + B3BA5EA706ED38B6508C6D1316B02739 /* db_impl.h */, + B169644770EDA259FF9B881F4236DFEE /* db_iter.cc */, + A2519A76F273A6F73D69D079771DC34F /* db_iter.h */, + 7FE6DD8C7D9CF388913249A9BB27A410 /* dbformat.cc */, + 29762751DB8B1F55F32493A5C59CD49B /* dbformat.h */, + D800E0E09923D13652AD3E5F3A5E516B /* dumpfile.cc */, + 7E84EC7328FE5D7040552BE80A1DAEDE /* dumpfile.h */, + E8E1F2C7413D49306D2E126D66ADEBE2 /* env.cc */, + B9DD3698F1FFDC41C2AC62568CDBF486 /* env.h */, + 53E767E55EDD268EDC310B99EBA67E08 /* env_posix.cc */, + 026A90298DB45F4D43ED6F105F1E1330 /* env_posix_test_helper.h */, + 1B22A533D3BD9052959A67C8A4DAFC24 /* filename.cc */, + F933B92C6B3F0A0EA08CD0435D54E8A0 /* filename.h */, + 514685B19E87177A5617C3E9E32DAB9E /* filter_block.cc */, + 6F3BBCBF64110AC895B4427FBB389482 /* filter_block.h */, + 54969A39FA3FD4371C1BE98E3969EB0E /* filter_policy.cc */, + FE6E999C1F8FA6801FECC38C542CAC5D /* filter_policy.h */, + 0551546834A74F6287B1B4F165ADA9B0 /* format.cc */, + B3A96892CA2F4A9D0EA724F1F5D1DFB2 /* format.h */, + 62F88D653E66D31DDDD32E1F1CAFEBC5 /* hash.cc */, + 051B5E78EC3AD95A4326027939DB2F54 /* hash.h */, + E149BF7C18FC00B5589E62919F6D7E67 /* histogram.cc */, + E7881D571FA0BA35A4655DF5918CFBB4 /* histogram.h */, + 20E5D91136CD814B6CDB9E135B153EB7 /* iterator.cc */, + EE69F575EDC26038B38AD4D173F2F6F9 /* iterator.h */, + 3861EA5293AC5FF3E13A3B8A6AF4F77A /* iterator_wrapper.h */, + 9DB1AA942B73E0FDCEDEB651EB283C36 /* log_format.h */, + CCA9A536D77F52FBE6BE7B6B41964681 /* log_reader.cc */, + 08F17F94D73195742C7638850525EE30 /* log_reader.h */, + F9338CB726B2F9BDAC63BD637662B8D0 /* log_writer.cc */, + 9C1097A0630FCD1810EECDB446671CD9 /* log_writer.h */, + 3D053796A6B75F79480D4BDCD0A8B7FD /* logging.cc */, + 5BB0C4678614E43CC59E990EE1D9561A /* logging.h */, + 5FF4CC98531DD61EB0322DBB1CD6084B /* memtable.cc */, + 92F1DACC26728EDC007507006E6AE730 /* memtable.h */, + EA086E7971357AEA94281D1DF2FF79FE /* merger.cc */, + 14BD137F8578B8451120D54CC9F06615 /* merger.h */, + D51A81B9B97B69A5A5DAD80F16DE4C0B /* mutexlock.h */, + 743695C2A2DD07937AB27895973F838D /* options.cc */, + A313DAEBD92EE015CDC5E4CC91B57178 /* options.h */, + 24477E158B843677C017E0890BFB5878 /* port.h */, + C0B587B7595976187113BCDC733B8325 /* port_example.h */, + 83E59D46FA2A2F5BB42A222F0C1D7ECB /* port_posix.cc */, + EC0E8094EF58C3ADAE085AE921698A98 /* port_posix.h */, + 557C5F58C6D170E6D15C9F936EE357B7 /* port_posix_sse.cc */, + 7CABFEE59814C9EF3E20C6EFAF9F9630 /* posix_logger.h */, + 003C8C25031B09DA0BE39C83F5EC6D82 /* random.h */, + 25F5C462B8D2CE1BD3D8AED6C6575B9D /* repair.cc */, + FA272E422258B6250800056FDCA82B4F /* skiplist.h */, + E90FCCE89240010AE540C3715C0FCC46 /* slice.h */, + DDC04CA5EE65D0CB8816FADD711FA835 /* snapshot.h */, + 7835736A09CD95B047DAC46CBA26BA73 /* status.cc */, + 20C9C0BC47C34338B67CE61497C78385 /* status.h */, + 9F596B3E32FC05B4C91E22401373203D /* table.cc */, + 45BDF1C04F63A58C17F7D8C1CDFC1EEB /* table.h */, + 866793CC367F998AE39FF3DD3350AE95 /* table_builder.cc */, + 4D576688A921B564504F8D0AED08AE55 /* table_builder.h */, + C601B9803F132076341C71B1F874580A /* table_cache.cc */, + AF23E6676267077074F97643B2FF9562 /* table_cache.h */, + A91868FFED3A95B12A17081458851E70 /* testharness.cc */, + 05589767A6B865C55C7299EF5B46E629 /* testharness.h */, + C0E61E1C77EA9483BD3140BDC57832A8 /* testutil.cc */, + 36AA9236DE33439C09428BEDA1D9DA82 /* testutil.h */, + CE5063CE2A45D68DC28A30703D743723 /* thread_annotations.h */, + F622CFFBAD2E1E370FE0E99CE2A20FFF /* two_level_iterator.cc */, + A3AD76FF368DB68E944118748DE289EA /* two_level_iterator.h */, + 0B24AD779C18878FA0EB9B0A6911CD59 /* version_edit.cc */, + C770A40C30420A62DD5CB4EEB238A13D /* version_edit.h */, + 71E3298885EE3DE0BDB54C17CEBA1E09 /* version_set.cc */, + 36F0817250CA4C739ADDC14260713E07 /* version_set.h */, + 8DFDACF5C628E1219181BAC57BC9A993 /* write_batch.cc */, + 40D87EC8F90E5F4FB41876D217CD20BB /* write_batch.h */, + 3E55EF8FC00B14961A33E933EA72E0ED /* write_batch_internal.h */, + E29D855D53CC679C7CB1F5DF067C98F4 /* Support Files */, ); - name = CoreOnly; + name = "leveldb-library"; + path = "leveldb-library"; sourceTree = ""; }; - 3F8961D77F4A5775A887AC6978310D71 /* SkyFloatingLabelTextField */ = { + 643DED4A544FB2D1DADB7F6099AFCE68 /* FirebaseDatabase */ = { isa = PBXGroup; children = ( - A0FD58516EF4F1ACE256C89526B79DBF /* SkyFloatingLabelTextField.swift */, - 7784FFEABEF15533E699BCD64A1C92FF /* SkyFloatingLabelTextFieldWithIcon.swift */, - 7C91FE44AD6A3131029787C2E6BCC5EE /* UITextField+fixCaretPosition.swift */, - 093216E88910B773BA67601EC8C3CDAD /* Support Files */, + 256EB4112E9162124973B228B3BCFEAE /* APLevelDB.h */, + A5220DBE2CD2244D7B6C824940063005 /* APLevelDB.mm */, + AF4C1D8768916983C5BAB72F4DE5E1BD /* FAckUserWrite.h */, + DC0AD40E70FC90CF580A4E86E2922BDC /* FAckUserWrite.m */, + 6852AD175807BBC8EA03620AF5BD63C4 /* FArraySortedDictionary.h */, + E0CA2E46CBC978FC51DE6EF3E3B41E17 /* FArraySortedDictionary.m */, + 85065A76DA8BC7214D303AD4BAC909FC /* FAtomicNumber.h */, + BB8AA9F58CD7CF8E39B296EDA683A152 /* FAtomicNumber.m */, + EA284F1ED21CC5A476D0C6222974FB25 /* FAuthTokenProvider.h */, + 3D44D8B2FB2A3B1EC087C0797BBEEEF0 /* FAuthTokenProvider.m */, + 8B024B8865BB133727235B8B3E43BDE0 /* fbase64.c */, + 76F6E832E09D75FDB87C2EECEECA6BE2 /* fbase64.h */, + D50AA67FF17B2BFC7E217041C8E229B2 /* FCacheNode.h */, + 28936CF230E28DC6E2943416752880FC /* FCacheNode.m */, + 2FF152469AE80A6A0670BC713E9B4292 /* FCachePolicy.h */, + A939BDBEF8563D5C74BAAB2A5CA500BC /* FCachePolicy.m */, + 7FA2E3B3C05C536EBBF05E977EB66FD9 /* FCancelEvent.h */, + 6BA84E23500EAC6172C32E5DD77C31E0 /* FCancelEvent.m */, + 6F0F74E4419B4B0B32702C217959748C /* FChange.h */, + 48DB3D798488069759FF4E97A9B32E50 /* FChange.m */, + 8B08F6CAB67FCF250B1D97C0C0A6049D /* FChildChangeAccumulator.h */, + C52E4F0D9D9EB67A27B46748365DBA6B /* FChildChangeAccumulator.m */, + C71795BE270D18305CEE4B3FB629A6C8 /* FChildEventRegistration.h */, + F2BF635FA9D3885CD4A80B29A362E439 /* FChildEventRegistration.m */, + 2ACD9EC67820A2CBF615AAF4BFA51FFA /* FChildrenNode.h */, + EA3850FC1573760E6D5E4BB736BEC7AC /* FChildrenNode.m */, + 314CF29A20CFF08E96DC58E8689717FB /* FClock.h */, + AEB770A77D4A5C16DF28E7AEDE2364E2 /* FClock.m */, + EC9A85A92E1BC6F0DD155CC44A8C9EE3 /* FCompleteChildSource.h */, + 2830664AD761FA33DCF9BA97BB93B0BA /* FCompoundHash.h */, + 166C592720B5F902576944B388FF3635 /* FCompoundHash.m */, + 54768ADC425E0DA61799615D91A3BD54 /* FCompoundWrite.h */, + 6C7B49E8EA6F147E817C44993FDA33FC /* FCompoundWrite.m */, + 7236253F2E638A689AA4AA5ACA3A2205 /* FConnection.h */, + FDEFEBE1B1B9CF32517F2885A2DE42EC /* FConnection.m */, + 8EB05AC9E99F9042A7E07EB9C5B05F2F /* FConstants.h */, + A1E6F23B492BF14104B26BF4788B28B9 /* FConstants.m */, + CB55A84CF5A2FC79608F37D51AC28C24 /* FDataEvent.h */, + A9BB181D66A6560323ED5EC2A5A9F9F3 /* FDataEvent.m */, + F2E146440E0102C6BBD0D9EBDB29A1DE /* FEmptyNode.h */, + 487E4862DD094741105A4E2F97903F47 /* FEmptyNode.m */, + D90914E4131C0BE093BF34D8611523DF /* FEvent.h */, + E4C09B4050A4C305E0895ED70EB188E5 /* FEventEmitter.h */, + 59918C2DE56B8C3FCAD64F8C8722EA9E /* FEventEmitter.m */, + 4332EB117A4AC20C899513AD5E08B7BE /* FEventGenerator.h */, + C66B782590119CB3586CFE568C5FB08F /* FEventGenerator.m */, + 4CECD03FFC51C751D990DCAB4240646B /* FEventRaiser.h */, + 86B381AE8905550E84BA6CFBB4377802 /* FEventRaiser.m */, + C7E12202E94A450BB77DFD5DC4DEC7CE /* FEventRegistration.h */, + 84FF9BEADC503A0844A823F5945C0CFB /* FImmutableSortedDictionary.h */, + 72BAD1245F797C625ADBB0E8637EA422 /* FImmutableSortedDictionary.m */, + A17C4F6BCDB63D675280646E4291A96E /* FImmutableSortedSet.h */, + 675D9B90CAB87906D12156D8C1A8D814 /* FImmutableSortedSet.m */, + E120E059F551A1D5C82E3724267496F8 /* FImmutableTree.h */, + BF3E909D831447DBA89D631BB6797FEB /* FImmutableTree.m */, + 3E7F4ABE5F7FA5482CA4C3F9813DC2AF /* FIndex.h */, + 86A83AA0BD1A7056D6619D6995A4D262 /* FIndex.m */, + 6C0245BC7BA8B341E61AA02479216C58 /* FIndexedFilter.h */, + EE714EA1D8E6FBE5FB01F9B721ED4BD8 /* FIndexedFilter.m */, + 375C6D2C5F15CD0F91DAF6545D5A5CB5 /* FIndexedNode.h */, + 983071EAD7D8C1A000B04C6F5CF00B47 /* FIndexedNode.m */, + 557E79A439DF42A434909C720A99FB62 /* FIRDatabase.h */, + BC6DA207D4296769C78F5F65F0B2352D /* FIRDatabase.m */, + D0ED27E220BD4FF36C21CD29EFC52B1D /* FIRDatabase_Private.h */, + 637AB617C757BD389EBA1F9DC6243CEB /* FIRDatabaseComponent.h */, + AF47C0C06B32B682CF0E92017C094A72 /* FIRDatabaseComponent.m */, + 1D2DD7E0C1E831934AB25F037406658A /* FIRDatabaseConfig.h */, + 01366B1DAD5060BE87D8221AAB37E165 /* FIRDatabaseConfig.m */, + 3FE698851F510549DA735390CC6DA51E /* FIRDatabaseConfig_Private.h */, + B0391512D5E1DA0C936666B3CEAD47FF /* FIRDatabaseQuery.h */, + 4F9AA9FAFC95C32808A9510E0460002C /* FIRDatabaseQuery.m */, + 7257998E4A8394E2B5817D64E457D59D /* FIRDatabaseQuery_Private.h */, + 15E535859B5AE344A343F768B1B53E4A /* FIRDatabaseReference.h */, + 729A9D26C261307F12A65F4E43FD69C3 /* FIRDatabaseReference.m */, + C6271490AB427E4365F31DD78AC858AA /* FIRDatabaseReference_Private.h */, + EF831B353F8561732142615D027FA973 /* FIRDataEventType.h */, + 24A50EA2A461EF3089E8818D6D8D52B6 /* FIRDataSnapshot.h */, + E9657C19D7CB5BD2F8791C17217346A3 /* FIRDataSnapshot.m */, + B10440FBBECFB215F0DDD5749B55B163 /* FIRDataSnapshot_Private.h */, + 5703EB80B49388A52554994F8DCF5C32 /* FirebaseDatabase.h */, + BFD4CF2B282C44E15B56577BFB4592DA /* FIRMutableData.h */, + 74ACCD0FCE01696EC706F9FA92E181CE /* FIRMutableData.m */, + D7D91E76471740C608932FB8191EDA0E /* FIRMutableData_Private.h */, + C3E97E24BCEF827E42A17B40CC4B00CC /* FIRNoopAuthTokenProvider.h */, + D2F2AC8582883B2F5CFCB721F0A20197 /* FIRNoopAuthTokenProvider.m */, + 00D5D604EA06C4915B0F2DBFEEA36ABF /* FIRRetryHelper.h */, + 1957F53C653A6FE1CE67776446F317B6 /* FIRRetryHelper.m */, + A90C6A6C445A44B5DB5802E8889A4DEB /* FIRServerValue.h */, + 4A3D4D1F551F933D84C7D5198A1C0B81 /* FIRServerValue.m */, + CE821E0871B8E3CE8FA81E2E510EC576 /* FIRTransactionResult.h */, + 203B7F3F148553F80218C3A0F1B3CEAC /* FIRTransactionResult.m */, + DDC6594BF397339D58433A333DE18537 /* FIRTransactionResult_Private.h */, + 5636C3E8A152D603ADAFA1FF227DFC3B /* FKeepSyncedEventRegistration.h */, + 76AB4428F551C0302E72C35C112DB2AC /* FKeepSyncedEventRegistration.m */, + 7969A7406BC11F360BAF1414F1C6EF0C /* FKeyIndex.h */, + 5CD6B2548148817028844F16E2C8674D /* FKeyIndex.m */, + 8B08175914A2569D75EC94EEC56D49D2 /* FLeafNode.h */, + 7B3FFFA521FFB0E0110E43AB2B848E20 /* FLeafNode.m */, + 555E67AD0E278F0F87DEB8A4F43C65C2 /* FLevelDBStorageEngine.h */, + 5CC1989D5BF1B4B814495E86F2D98D86 /* FLevelDBStorageEngine.m */, + 183F9D79C91BCC4DB7C12CDC0ED1D2A4 /* FLimitedFilter.h */, + FC76766D04FF90B8DF64E3C8462888E6 /* FLimitedFilter.m */, + F62C1A63ED23D7737347980C3C35759B /* FListenComplete.h */, + AE96AA2D30EE99934B713A30EBEFD7F8 /* FListenComplete.m */, + F66D7F017D9EA7BAC8F29A3F2ED94D45 /* FListenProvider.h */, + 6AB75124E71A3EE0EA2C785671E7967F /* FListenProvider.m */, + EF6C3553AACC95BC2679FB8691EA9EBC /* FLLRBEmptyNode.h */, + 427D710FA7409AFF82CF5DE93DBD71DC /* FLLRBEmptyNode.m */, + AB90BB381F001406E272B1D86AE4CE4F /* FLLRBNode.h */, + 2C003A81F734083A35C989A73A92BAFC /* FLLRBValueNode.h */, + DB524CCBAA1ECD2E463C761B5DE059CD /* FLLRBValueNode.m */, + EB6142978364E21B194618786B9C437B /* FMaxNode.h */, + 3772804F1FA6AF249CC62E54269A76D5 /* FMaxNode.m */, + 7F1B27510016D10C12D47646167B7A73 /* FMerge.h */, + 2D0C0C1ED1AA2E776D114351F4ABE467 /* FMerge.m */, + D44CA21217D25202984043934B3348BD /* FNamedNode.h */, + 5FF876BC06C5BADC0B2B8673ABB4C7E5 /* FNamedNode.m */, + 14AB87DEE3EE08B115283B8E252E7486 /* FNextPushId.h */, + 37AD682CFE799B95D1717B1A3CA260C0 /* FNextPushId.m */, + AA880AA39FEE0148B7A1C086B364313C /* FNode.h */, + 42C3BB1A938F2D0BF196B14A31C04CC5 /* FNodeFilter.h */, + 2A98F14CC1F09D6683372AE77D3CC99E /* FOperation.h */, + 76B6021838F51EBC2BF85885001FDA10 /* FOperationSource.h */, + 0A1F36451EB999D18A9CF80164A11267 /* FOperationSource.m */, + 1BE8933466D24A7FA16972DD2649955D /* FOverwrite.h */, + C21F345BCE597274D2CF7408D8A6D124 /* FOverwrite.m */, + D549F2D0131B3350B813F36F858E1C54 /* FParsedUrl.h */, + 7241FA44043CFD6CFC158F98C7E1F805 /* FParsedUrl.m */, + EDF6B3C910C2F08B88AC024C1AF07261 /* FPath.h */, + 2B3781F934D2117AB876B567B3FF71B1 /* FPath.m */, + 991C861E49092079229105D00DA369A5 /* FPathIndex.h */, + B786ED9C84710C654DA33154CFEDE8E0 /* FPathIndex.m */, + 72AEE339924C4AE1F6250387E823387F /* FPendingPut.h */, + 620B6DAF938B4A7E3C4CF0C36FCBEAE3 /* FPendingPut.m */, + 814350DAC9500E3EC08915A81A82E22A /* FPersistenceManager.h */, + 60B44236CEFBA91FD17FDFCA1A475EBC /* FPersistenceManager.m */, + 601420045E141718E00C7B19934978C1 /* FPersistentConnection.h */, + 742748BD8B7303E1FD861F603DAAB844 /* FPersistentConnection.m */, + 670BD094A4F1102AF515164E467FC428 /* FPriorityIndex.h */, + 536909D5AA24A381D1EA0944DDF887DC /* FPriorityIndex.m */, + A49673BB19ED1D52AD844C504FA1059B /* FPruneForest.h */, + 7582367A9CC89EA756282B4B00A070EC /* FPruneForest.m */, + 49353B01BF429F933FCD1B1A7A1A39B7 /* FQueryParams.h */, + A34232D2D10407050FE03924D7C2A71D /* FQueryParams.m */, + A799292248219E9013E7DD107E235304 /* FQuerySpec.h */, + 6DAF3D4A2BC11A3202EB04FAEFCCA272 /* FQuerySpec.m */, + 274B74DB7AA8CA76AE460046F5FC00A3 /* FRangedFilter.h */, + 60197ACA6705672CD29DEA0E55006246 /* FRangedFilter.m */, + 8CA7E47459FF798B5419652EDFB9DE79 /* FRangeMerge.h */, + 63CC6E3AD68079D393D47C09288BE0BE /* FRangeMerge.m */, + 6CE870E46463E9796591E55E166CAEC6 /* FRepo.h */, + 7ED8028B617190203126AACC91083E5F /* FRepo.m */, + 688577FD100FDA965AE63BA6E1E686EC /* FRepo_Private.h */, + E89296FAD4B7175D1AFD7119FE8AAC26 /* FRepoInfo.h */, + E96A841370B4867CF6714276BF75B343 /* FRepoInfo.m */, + A34F601192ADDE97929034D398D63FF0 /* FRepoManager.h */, + 15ED8DA31AA0864AE1DC78EE29BF1378 /* FRepoManager.m */, + 740512380E38DADF4E39D75396D56873 /* FServerValues.h */, + 6CF8CB713B517B8816DF2B91EE60CF1F /* FServerValues.m */, + 99921180B1DC194FD9E541CB62501BCA /* FSnapshotHolder.h */, + ECCD657CFD5E06E6685F1A8696646D3D /* FSnapshotHolder.m */, + F01C72ED17AC14CF272604C2E4B52F87 /* FSnapshotUtilities.h */, + FF66A06FF8EF8A70C95B603728471E3B /* FSnapshotUtilities.m */, + E38243A4014DD1D48B71E12829A124CC /* FSparseSnapshotTree.h */, + 811491871D37C8EC9D8AB07F9075B8D0 /* FSparseSnapshotTree.m */, + 4D57AD83854F00287F11B61C76F6F029 /* FSRWebSocket.h */, + 1689670FBE1700F48A0F17A05378FD5D /* FSRWebSocket.m */, + 3166DF80F9DD07F0E7B90A44E22FADA5 /* FStorageEngine.h */, + 449061F436F2D0017B2604418A306C95 /* FStringUtilities.h */, + 861B6E3816521BCFFF2D86A52E4DC7AD /* FStringUtilities.m */, + 35916DFDF2999CBBA62F1EBED562076D /* FSyncPoint.h */, + 59B830EACB8367CA9E1B7C1CE95A0C42 /* FSyncPoint.m */, + B6671EDE6E7EB1649028F42D04C94D01 /* FSyncTree.h */, + 82D03F89A427F783EE8CE62D993F03AA /* FSyncTree.m */, + 6F0FAEA390F44DE86D0081B0490EEDFF /* FTrackedQuery.h */, + 5C0D3DC222D57B13420340834F004FC8 /* FTrackedQuery.m */, + C03716B0FFF18A640102A03B71205D1D /* FTrackedQueryManager.h */, + EDEC00DAE092B41855A25DF0CCFCB09D /* FTrackedQueryManager.m */, + 6E412747A753D4F88BD21EB86D4FBE29 /* FTransformedEnumerator.h */, + CC39B25AF4669740AA9EA1508745D67A /* FTransformedEnumerator.m */, + 3388A8ECBE18C6D60BDCBC8DD4778B82 /* FTree.h */, + 759B421DBC627A81273E16EFF2E9A116 /* FTree.m */, + 79369AE24A7C9F3431DF912830A52555 /* FTreeNode.h */, + 6720FFBF362A0FF5170A80B492B945FE /* FTreeNode.m */, + 7E36BFFD3B6F3C2521750BEC1FC59F81 /* FTreeSortedDictionary.h */, + FB94EC91995A5AD5F36E9F07A99B5EFB /* FTreeSortedDictionary.m */, + 0C7A0A9EB0F86521354F8EE71FC54E63 /* FTreeSortedDictionaryEnumerator.h */, + 3FDEF153A443682E8AE6AEB5479A0D80 /* FTreeSortedDictionaryEnumerator.m */, + 4A353EF5C52837EEC27CF772A65D7ABB /* FTupleBoolBlock.h */, + 96B1EB9467489D616FC3FAFFE2F41F8C /* FTupleBoolBlock.m */, + 5CAC4A1BC915B1A16A6D6F7D048453B6 /* FTupleCallbackStatus.h */, + 0CB9317BC1CC6CD19A5720A35F131A5B /* FTupleCallbackStatus.m */, + 4F611F92B15753FC043260BC48F7B9D2 /* FTupleFirebase.h */, + 3F1EA5C48171AD0BF7C46569E46D5537 /* FTupleFirebase.m */, + 407203A460D055244FCF73DBA8F2F993 /* FTupleNodePath.h */, + 37B7978800D6C3FA88CA5440E68527E2 /* FTupleNodePath.m */, + CE06EA29164BAFF76D06FBDEB21ED323 /* FTupleObjectNode.h */, + A5B3396CD7B2D4607D4E265ACBE2006C /* FTupleObjectNode.m */, + 40E7B19F959409CD03E969E121E2ACFA /* FTupleObjects.h */, + 8ABB8A9E3EDE82EDD42204070FEDC8E4 /* FTupleObjects.m */, + EB2AB68B59E52917B9E72C1B95089E46 /* FTupleOnDisconnect.h */, + 0638EEF754A6ABC7E6CAEB566AC7C356 /* FTupleOnDisconnect.m */, + 6A3727F7F01D0627F99BDAD20A3A2A9B /* FTuplePathValue.h */, + F4AC72A807F873968A3D2ABD8BE6B9D6 /* FTuplePathValue.m */, + F3671E9F28A18A24C842C26811268C26 /* FTupleRemovedQueriesEvents.h */, + B747D7198A287EB4E28BE7A21308426B /* FTupleRemovedQueriesEvents.m */, + 6DD22FF448FA9CC3B18BB8C580C6221B /* FTupleSetIdPath.h */, + 5C5572C91FDAE844AEAE99BC78DDAF2B /* FTupleSetIdPath.m */, + 71EAD519E00EE776B12BED7BCAA38E0F /* FTupleStringNode.h */, + 305C3F694B7E505D86ADD0097A2D2EF3 /* FTupleStringNode.m */, + 0D5B8703797FE9A4CC0EF6518FC4AEFE /* FTupleTransaction.h */, + 189C7B3478FD5B63059CAB38C9C5104D /* FTupleTransaction.m */, + 4076BB7D0F9F0414BD108414B94543E5 /* FTupleTSN.h */, + 6F9259AA62C9A92EB5907DE9DCD1F0DD /* FTupleTSN.m */, + C23BF05B04A7ABD29BCB23D028D26DFA /* FTupleUserCallback.h */, + 98B9CE0ECF2982C16C6CB1ABF951C2E0 /* FTupleUserCallback.m */, + F20674F4CFDFDDB521F89BFEACF3EA5B /* FTypedefs.h */, + 97B5AB2B2C36BD945292787D35F5A5DC /* FTypedefs_Private.h */, + 69D5E78EF0FD49C5D342530F95311222 /* FUtilities.h */, + 953694C28DFBDF81EA5E3766D5D35494 /* FUtilities.m */, + 3CB2A53BE8E164DD96E59DCFE4214B7C /* FValidation.h */, + 7D2032377C607DB3CDF2DF23749E7C98 /* FValidation.m */, + 13BE2FDAF0781362DB78FEDB6928D5C1 /* FValueEventRegistration.h */, + 3441B69B80402FAE56CC66F80EA5A116 /* FValueEventRegistration.m */, + 6052FDD569BFCC3675E15AE002A4F69F /* FValueIndex.h */, + 2DB7F8E9194E1A1C14F0DA6EA599CC57 /* FValueIndex.m */, + A4D46D869DB97ED3E2574BD8EA115E4A /* FView.h */, + 8FA7FC01C500F8BF1CEB114D2508FB2F /* FView.m */, + 6416EB4BDDFD0365ADB5E88F6E052F48 /* FViewCache.h */, + 0AA61E8855C241DC191994774BEBF5C8 /* FViewCache.m */, + EA5992E14CFC26816BF9A38F433386B9 /* FViewProcessor.h */, + A6B4B34432D9985C294E8A3A06093EDB /* FViewProcessor.m */, + 9334B2BD345EC10F99F94EF85FFDC1C1 /* FViewProcessorResult.h */, + 5A74CE6E481FA06DB20ED88E60FB26B0 /* FViewProcessorResult.m */, + 2B18AF4189C50E9C5364C8A0605403F4 /* FWebSocketConnection.h */, + E8A8A2E913B877233494CC32BDD3539D /* FWebSocketConnection.m */, + 2B0F0F5231B06D3F928790D421BE9B8D /* FWriteRecord.h */, + B717631E802378EE562C4D48DD02A0D7 /* FWriteRecord.m */, + E726885254EAE8EF70AE64F561A40E1F /* FWriteTree.h */, + A9A0F2EFA35824DBE5C904F67C0045BA /* FWriteTree.m */, + D74C79B83B07E3309F37ED7A75EC2CED /* FWriteTreeRef.h */, + 2501F898111F1861C61683C629977FB2 /* FWriteTreeRef.m */, + CC45E260E5103DB897A574E058A66964 /* NSData+SRB64Additions.h */, + 12B8893756F77BEC4BAB835685A6117C /* NSData+SRB64Additions.m */, + 5E01FE630F31E69D06AB2CDBF6E34A37 /* Support Files */, ); - path = SkyFloatingLabelTextField; + name = FirebaseDatabase; + path = FirebaseDatabase; sourceTree = ""; }; - 41D3A6358B8A64218EB8D7ECE20D1783 /* Network */ = { + 64889DE8CA0B537F1C8EC167E7A33258 /* Support Files */ = { isa = PBXGroup; children = ( - F3E7BC9A5CD33728D88F26459F587D16 /* GULMutableDictionary.h */, - 5CD65B02663A9861D485885C274F1190 /* GULMutableDictionary.m */, - FF5807D8A4FB9B0F77206CFA7C25B943 /* GULNetwork.h */, - EB95EFB639A55B3E6E80FAFF8124A5FA /* GULNetwork.m */, - 2CCB6514F831CF17DC7C64A5AA2E3182 /* GULNetworkConstants.h */, - 5C703EAFCA972CD73B821E43C32DD817 /* GULNetworkConstants.m */, - 82E136E3716C867F20D7013B4FD8A501 /* GULNetworkLoggerProtocol.h */, - 192ED054F1897887A2256DC0EE0A6ED9 /* GULNetworkMessageCode.h */, - F91B980F928643DED2E8821F6C5961F0 /* GULNetworkURLSession.h */, - 7AD6ACED66DDD8762085018D1C9D9418 /* GULNetworkURLSession.m */, + 62BB7C14115AE8724050A9FAE71FCC0D /* SkyFloatingLabelTextField.modulemap */, + 4B0C265792FA6B16225A40566F3D76EF /* SkyFloatingLabelTextField.xcconfig */, + 78652E65F6DD7C2854B142B5FBB5E088 /* SkyFloatingLabelTextField-dummy.m */, + C382A991514B168743F9B20CBC9DCD40 /* SkyFloatingLabelTextField-Info.plist */, + FE03C07889040A88EC84701E63FEF9FD /* SkyFloatingLabelTextField-prefix.pch */, + F80978DC32B0CB17D5F42E149EDAA570 /* SkyFloatingLabelTextField-umbrella.h */, ); - name = Network; + name = "Support Files"; + path = "../Target Support Files/SkyFloatingLabelTextField"; sourceTree = ""; }; - 43BD2BE4F313EF9A465116E89CCB0F41 /* NSData+zlib */ = { + 65E80872435B15D300C018865B4AB48D /* Support Files */ = { isa = PBXGroup; children = ( - B9AE967A93AB043B81715E0CB2729746 /* GULNSData+zlib.h */, - 2D8A1EB37E58D2378EE2F71FF148531C /* GULNSData+zlib.m */, + CF0047FC3447344B84817DC284AE117F /* nanopb.modulemap */, + 56421B148D6FC3691D1CEF512BAF81D0 /* nanopb.xcconfig */, + BC6ECCF26DCA0190D7B7A746D894946D /* nanopb-dummy.m */, + 205BB22C8D4A1E32213511428B7A4289 /* nanopb-Info.plist */, + 2FD973064D811BC9AC2B5D49BD9EC206 /* nanopb-prefix.pch */, + D27968B084706EDB81193863E154BB57 /* nanopb-umbrella.h */, ); - name = "NSData+zlib"; + name = "Support Files"; + path = "../Target Support Files/nanopb"; sourceTree = ""; }; - 46A6F6AA932F0D356ED4576998B3743C /* Pods-FoodApp */ = { + 69C46A2E4FCFD9FDFE669FE0AEA57FF8 /* FirebaseAuthInterop */ = { isa = PBXGroup; children = ( - B32170F2C1D880AFF5CDFB357914CDC8 /* Pods-FoodApp.modulemap */, - 48B4125E3CF9C5BACE37D4E4C0444191 /* Pods-FoodApp-acknowledgements.markdown */, - 1E06B64600CF08545CDF37B6BCF5E501 /* Pods-FoodApp-acknowledgements.plist */, - 3EAD07CC0F86D45EA5E1C31331F5464E /* Pods-FoodApp-dummy.m */, - 9F16CC78A164BDC25A829E764F398E1E /* Pods-FoodApp-frameworks.sh */, - 71D59DFB0F7108991DE8BC21D863B3EB /* Pods-FoodApp-Info.plist */, - A7D05A88165A4534979F2118A069E5AD /* Pods-FoodApp-umbrella.h */, - 0E7E06A549C2EC13E577E78F1649EDC6 /* Pods-FoodApp.debug.xcconfig */, - A5565C0126D05A886ADF3ED07BF6B8C9 /* Pods-FoodApp.release.xcconfig */, + B9935BE675A5BB44DF60B24237FAB347 /* FIRAuthInterop.h */, + 2CF2E4767E66475548980B3A0C3EFC7A /* Support Files */, ); - name = "Pods-FoodApp"; - path = "Target Support Files/Pods-FoodApp"; + name = FirebaseAuthInterop; + path = FirebaseAuthInterop; sourceTree = ""; }; - 4788F355FC5F07F58259539B3C3F5C4E /* Support Files */ = { + 722F725E2807ADAB2BE9CC0CED8E8C9E /* Environment */ = { isa = PBXGroup; children = ( - 2297FBAA4C7F67EFA60AA4137E7520DB /* FirebaseAuth.modulemap */, - 934C182766A57B59478E2208838394D2 /* FirebaseAuth.xcconfig */, - 6536F41666B4EB96E59EADEB68BF2172 /* FirebaseAuth-dummy.m */, - F65B968B2E03C60865ABA577C531243E /* FirebaseAuth-Info.plist */, - FDECA8C433B6BA80772C6BE5932EA5BC /* FirebaseAuth-umbrella.h */, + B1068A1364C95545E4E13793A692FEB9 /* GULAppEnvironmentUtil.h */, + FB3CC2D9A013E1FBF9FE723F8911D074 /* GULAppEnvironmentUtil.m */, ); - name = "Support Files"; - path = "../Target Support Files/FirebaseAuth"; + name = Environment; sourceTree = ""; }; - 52938CF7570E1C71C67A4B24EE97EAD7 /* Frameworks */ = { + 78A5F385EFAE3FE39F6CBFA1D4A03558 /* Support Files */ = { isa = PBXGroup; children = ( - 7676764B2AB4CCFB9CAC47A15F2534C4 /* GoogleAppMeasurement.framework */, + DF5AB584FF1DD6E115FE19A0878FC416 /* Firebase.xcconfig */, ); - name = Frameworks; + name = "Support Files"; + path = "../Target Support Files/Firebase"; sourceTree = ""; }; - 553C9D0A8963871036354C9DBF10E331 /* Firebase */ = { + 7CE60591A09B73E614CCB7A32C049040 /* Reachability */ = { isa = PBXGroup; children = ( - 3CED2CB303940582E5B0544A963B60C5 /* CoreOnly */, - DF54FD19DE05985A882DDA918895CAAB /* Support Files */, + 15B5020C0CFA392D0D22F4754299132A /* GULReachabilityChecker.h */, + BC84A49B94F9B3BEC488700D5BE29F40 /* GULReachabilityChecker.m */, + 50351158AC71C552458607F6744E5DA8 /* GULReachabilityChecker+Internal.h */, + 8E25FF8777C92BDD6428E864901E61FF /* GULReachabilityMessageCode.h */, ); - path = Firebase; + name = Reachability; sourceTree = ""; }; - 63ECC18D5A0A76B3B434ADBA7C21CA2B /* AppDelegateSwizzler */ = { + 7D9CC76CDB121B023A4C300463CA6690 /* Support Files */ = { isa = PBXGroup; children = ( - 91FC50EC8CA0DF6A040A3CD790FF815B /* GULAppDelegateSwizzler.h */, - 77298E734BE0AC895E6EC19B4C3BE963 /* GULAppDelegateSwizzler.m */, - 7D6A5485297561155F4B4441ED60F970 /* GULAppDelegateSwizzler_Private.h */, - B4110C43E4C20610E6850CE7A37890B1 /* GULLoggerCodes.h */, + 403E42D5E84D5016B81A4794712DBBD6 /* GoogleAppMeasurement.xcconfig */, ); - name = AppDelegateSwizzler; + name = "Support Files"; + path = "../Target Support Files/GoogleAppMeasurement"; sourceTree = ""; }; - 645AD7DD76A3415C8F2EBA45CB5479F3 /* Support Files */ = { + 7E0CC4839DF7B8744143E97498BDF97D /* Frameworks */ = { isa = PBXGroup; children = ( - 6B2E3E90F00AD77391A3B96E40754802 /* leveldb-library.modulemap */, - A28820B9AAB019B26C0CD13F658FB084 /* leveldb-library.xcconfig */, - B79D5D278E18E8412B8077A070C3829A /* leveldb-library-dummy.m */, - EC5D564E8AD25867837771451F3ED2D0 /* leveldb-library-Info.plist */, - 6AF4F726A42D8F6333DF2951EE716C39 /* leveldb-library-prefix.pch */, - D64A788B5F2EA356468F07FF24AC36BA /* leveldb-library-umbrella.h */, + FFF47BC4A660741A2FDFDC98EA50806F /* GoogleAppMeasurement.framework */, ); - name = "Support Files"; - path = "../Target Support Files/leveldb-library"; + name = Frameworks; sourceTree = ""; }; - 650A97948EA207126D26DF19E9926AB6 /* Support Files */ = { + 8356CB02C551A39339B8D2D64F501752 /* Core */ = { isa = PBXGroup; children = ( - 8DFBE5EA96049C1672C00364804B5EF3 /* FirebaseDatabase.modulemap */, - 7C9459DC2DC41A34CCF8141DF5C842D6 /* FirebaseDatabase.xcconfig */, - FEAAE357744E294CB1E6B494125348A7 /* FirebaseDatabase-dummy.m */, - B4E372BA6BDBDF66E522CB338400C2E2 /* FirebaseDatabase-Info.plist */, - EC21CE527CDF9EA2FA8DCF24D14F9AB2 /* FirebaseDatabase-umbrella.h */, + C4FB8AF2E67BC0E1B08B1ADB20934548 /* GTMSessionFetcher.h */, + 4D6A87C2BC3A1FB99C3ABE3456043027 /* GTMSessionFetcher.m */, + 4EC8C4E195CEDED3251869173DD546DB /* GTMSessionFetcherLogging.h */, + 2067AE8E5DA01BC665BE1236068BC6F8 /* GTMSessionFetcherLogging.m */, + 459720E15C2151D3F6944086CA0661A2 /* GTMSessionFetcherService.h */, + 07B283A96B0DD8330120FDC6A68DC4E6 /* GTMSessionFetcherService.m */, + 3FF0B69E45BDD02B00B0DBD9EB900400 /* GTMSessionUploadFetcher.h */, + 9A05FF3AAA6445246323B608A93D05D7 /* GTMSessionUploadFetcher.m */, ); - name = "Support Files"; - path = "../Target Support Files/FirebaseDatabase"; + name = Core; sourceTree = ""; }; - 6D7E5399581567A6E6EF12B18CEB2138 /* Core */ = { + 8F07CA47D2AEB29314E3DF5118A03629 /* CoreOnly */ = { isa = PBXGroup; children = ( - D8A312264F5BBE10E809F7656F1AD078 /* GTMSessionFetcher.h */, - CAA73FC2A30420297F5DEB8AABD6F63F /* GTMSessionFetcher.m */, - B3F94C49BA00853911BFA9EEEC2974CD /* GTMSessionFetcherLogging.h */, - 1F9F4A97D91AF749272C3710C77E913C /* GTMSessionFetcherLogging.m */, - 8D2AC9D5074782B43D4B5D2636331414 /* GTMSessionFetcherService.h */, - 94468DE6DA11937977EC9A39B1C8114D /* GTMSessionFetcherService.m */, - 6A68484AC9286A05A28B89736FF14299 /* GTMSessionUploadFetcher.h */, - AD7238082E2DE76CE4BE772D49F32B5E /* GTMSessionUploadFetcher.m */, + 5C06F949E69100D717E4EE47D2A60087 /* Firebase.h */, ); - name = Core; + name = CoreOnly; sourceTree = ""; }; - 6DDF683100C635357A5C59859E6F613A /* GoogleAppMeasurement */ = { + 95558FD4BB67C428B748958F94A5F862 /* Firebase */ = { isa = PBXGroup; children = ( - 52938CF7570E1C71C67A4B24EE97EAD7 /* Frameworks */, - 7652E25C1024968E2EC0538DC9D79FB5 /* Support Files */, + 8F07CA47D2AEB29314E3DF5118A03629 /* CoreOnly */, + 78A5F385EFAE3FE39F6CBFA1D4A03558 /* Support Files */, ); - path = GoogleAppMeasurement; + name = Firebase; + path = Firebase; sourceTree = ""; }; - 7652E25C1024968E2EC0538DC9D79FB5 /* Support Files */ = { + A07D40B9E07D5B188C9CB769FE074D8F /* SkyFloatingLabelTextField */ = { isa = PBXGroup; children = ( - 506B8F8286ACF1729D434744A1BB8F6A /* GoogleAppMeasurement.xcconfig */, + A48096D2D99533B410B082D8B5C2A1A4 /* SkyFloatingLabelTextField.swift */, + 09670FAD5D0A0A3F4EBAA5D61BD3B957 /* SkyFloatingLabelTextFieldWithIcon.swift */, + E95851522D73846B4EFCFE4489965714 /* UITextField+fixCaretPosition.swift */, + 64889DE8CA0B537F1C8EC167E7A33258 /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/GoogleAppMeasurement"; + name = SkyFloatingLabelTextField; + path = SkyFloatingLabelTextField; sourceTree = ""; }; - 7E8861C84D97E314245FA6B29F743987 /* FirebaseDatabase */ = { + A5056A7E8A1F33E000FDAD6CE8132858 /* Network */ = { isa = PBXGroup; children = ( - 03E94D7319CBD1F09F2DAD9D00AD754C /* APLevelDB.h */, - 7C297F0C85A8E58477CB204FE422003A /* APLevelDB.mm */, - F47DD68A34B513617CFAC026AC6A88C8 /* FAckUserWrite.h */, - B1CF1D6A5AE5A851F33F8AAB1542D012 /* FAckUserWrite.m */, - 119F2C5ACFE39BCB25536C68796FC28C /* FArraySortedDictionary.h */, - D831D3FD816CBF98BE21B644C48CA252 /* FArraySortedDictionary.m */, - 520D12CE359999C3A4F9D3482128F3C4 /* FAtomicNumber.h */, - 9BE9E4E4854F120E2FC1713D8ECA0191 /* FAtomicNumber.m */, - 4B915379438A5F7A876EAAC4B1D1EED9 /* FAuthTokenProvider.h */, - 3D0DEADB4CF00FAD792DAF51354BADB4 /* FAuthTokenProvider.m */, - EAFE47FC5CC2B8553298AB29EF09F50D /* fbase64.c */, - 8ED1110811840E9F617886E43919F550 /* fbase64.h */, - 5F6C8EF2760B57057D700D7CE80BB917 /* FCacheNode.h */, - 885BDBA1FCCEA200D9092E6825C2938B /* FCacheNode.m */, - 4CC19884644323226FC5E15D6A5763F9 /* FCachePolicy.h */, - A1B17C847E98CDDA439AFEFFFA4907A4 /* FCachePolicy.m */, - 8987C1A05949C11F5BC9381ADBF32BA1 /* FCancelEvent.h */, - C52A9C80ACAD7A2FAEDBEAE17B5C3199 /* FCancelEvent.m */, - 1669C5FD7233E39DBCCD9C6B4EC8E68D /* FChange.h */, - 5426627213EB16EC17B75434562D58BF /* FChange.m */, - D4B66C1FB7D354B7CE95C3B4D844197D /* FChildChangeAccumulator.h */, - 9F8D3D02A27587DCFB8BE61D3B8D5145 /* FChildChangeAccumulator.m */, - 09A29D4F1A3C1FBECE51F2701FE8C1B0 /* FChildEventRegistration.h */, - 4190DD03B831235A771E7B0942BDC4A9 /* FChildEventRegistration.m */, - DD465CAEA3B10A4D75BA92FECF4B2B96 /* FChildrenNode.h */, - 88D0369BC3444B15C5A06B03ABED2D29 /* FChildrenNode.m */, - 612331A3D66CE332745ECAF349B3B3C0 /* FClock.h */, - 9A4561E886C54A97192E4590A456297F /* FClock.m */, - 341E8592A4E2723D89A9429AC4C81E73 /* FCompleteChildSource.h */, - D707F6297F69E51D6E2FF01CC3A70822 /* FCompoundHash.h */, - 165C032EF1376857509C3860D503015B /* FCompoundHash.m */, - 28C5627DFA189E51950D1225B96DF42B /* FCompoundWrite.h */, - 92A8A121FADF5FD3EC9CC3DD36B63EC0 /* FCompoundWrite.m */, - EB38BD92EE246F087E4AD72812F841EF /* FConnection.h */, - 38E65983D71A43219A65E820A3D93CF5 /* FConnection.m */, - A8C073941D87EDA4853F656767D46C19 /* FConstants.h */, - 3F5F6E90A8F01BBC2575E3EAE8717E9F /* FConstants.m */, - 1A59245D789E7EBEB993FB8A585AEB98 /* FDataEvent.h */, - CFA589F72475C3B54328021ACE1C504D /* FDataEvent.m */, - C6B9DDB1286042E54284A5AD4E8D6CCC /* FEmptyNode.h */, - F75BDDA6A11CAE5F0BDCFC81BFCBD1C5 /* FEmptyNode.m */, - 2C6A232FAD05B457BB78B661F3177449 /* FEvent.h */, - B3051E912E2DF6FAA99B7AE07119B0AF /* FEventEmitter.h */, - 64153FAC345A1928622517F8AF50D2CD /* FEventEmitter.m */, - 44719405C7DFBE23EB3ECDC1C76220FD /* FEventGenerator.h */, - 808441B96112DE059C0AAA1421FB4D91 /* FEventGenerator.m */, - B8E2F6235EF762B63E5264EC9D4041B5 /* FEventRaiser.h */, - E7C6EC935D0A5D103964E85EF6245304 /* FEventRaiser.m */, - 394646F176BB5B7F31EE1306F4ECD676 /* FEventRegistration.h */, - 2C7249AB9702317AD2CA574DD6018C00 /* FImmutableSortedDictionary.h */, - 79E56264BC316BB3716BF44923A61844 /* FImmutableSortedDictionary.m */, - 30AA7D6BA7E041B5D9536E7FB49C848F /* FImmutableSortedSet.h */, - 95AFD0B2A1708F278DBA55B9DB2EAA60 /* FImmutableSortedSet.m */, - F1F892D78BFE03BDB185F603A74BD1DD /* FImmutableTree.h */, - F57B7C0CCEEADB5650F78A4E984A5D07 /* FImmutableTree.m */, - EE61A8B24BAD0322627DFA515F91CBEA /* FIndex.h */, - A9672A4DCB8C9BA9E9D6C762343E7D9B /* FIndex.m */, - CFF610893571DFFE5EC4369379589AC0 /* FIndexedFilter.h */, - 81EB03E7EB76F8BABCED0D1C12C855CA /* FIndexedFilter.m */, - 2A678ACB65E722A9E22EE14ACFB6FF42 /* FIndexedNode.h */, - BE81185E37E8F99D4E4F4A943464B2C9 /* FIndexedNode.m */, - 4BD90375FF9D3C69DB1CFC3C9AF0CD1F /* FIRDatabase.h */, - 40B2D677633CA1CC059A449C8537E719 /* FIRDatabase.m */, - 14BAFD0E1DED6FE1F344632AA78249F9 /* FIRDatabase_Private.h */, - 6DC3AF9EECF1CC622A14C93AFD6F6E54 /* FIRDatabaseComponent.h */, - A61A8F6AAA65CF09CEF36DF23D7C19B5 /* FIRDatabaseComponent.m */, - B0B60F8E71EAF84A265B96758857FB14 /* FIRDatabaseConfig.h */, - B18B2E4739D2C1E5C30CFC1A02E181C1 /* FIRDatabaseConfig.m */, - 0BFB1C5725146F4B832E39F66B9EB917 /* FIRDatabaseConfig_Private.h */, - 18BFC555D60AF0A40CD9144B8D002E10 /* FIRDatabaseQuery.h */, - FA6F78729FC55DECAACEDCEF3FFE6A62 /* FIRDatabaseQuery.m */, - 1EB4F8306E3B833B43215790579D19C0 /* FIRDatabaseQuery_Private.h */, - 0FEE8D6DC1CDEF69076945AC187FC241 /* FIRDatabaseReference.h */, - 0D7BEC325E63ABB70051F75E2B6F8077 /* FIRDatabaseReference.m */, - DAB28F6B7DFA403629E23B3C2903D8D9 /* FIRDatabaseReference_Private.h */, - 582D206D216C3F6AF9D42F4F9E5B38C4 /* FIRDataEventType.h */, - C3E860857F9EB54581E1BB74834F180D /* FIRDataSnapshot.h */, - C6B2485FF2E4B99D2581B2128532395F /* FIRDataSnapshot.m */, - 3B12766C61A1D905BADA75D1D451E350 /* FIRDataSnapshot_Private.h */, - 9DF9DB0FCD3EABD8AF1F6EF083A6BBC6 /* FirebaseDatabase.h */, - 630C4AB279CEFE189C12CF2DC9053B01 /* FIRMutableData.h */, - 25286559408DBDE9BFAFA61A7C07C06D /* FIRMutableData.m */, - 69E602119E2C33F5EDC4A2348BB067B1 /* FIRMutableData_Private.h */, - E4DE2DD0535F108E049C3B22D1D33010 /* FIRNoopAuthTokenProvider.h */, - CD31E1F69658A253011ACF1E70F68A77 /* FIRNoopAuthTokenProvider.m */, - 2AFDC02BCDBA729386A95450D9B0277D /* FIRRetryHelper.h */, - 5BC83294537299214B742BD92C67BCC2 /* FIRRetryHelper.m */, - 922A49DD4D7E595AFFEA9D03A413DF08 /* FIRServerValue.h */, - B543EE2AE175BC23D7401CBE50EF0A52 /* FIRServerValue.m */, - 07815FB1924AC46479BB8CF9F6A0818E /* FIRTransactionResult.h */, - 123DD6504331849C9DABCDBB9DD2F0EB /* FIRTransactionResult.m */, - C9349FBBB83E4BCEBEB8EF8968E49EC6 /* FIRTransactionResult_Private.h */, - F5A9821F9F3900DDEA4F99B86AAA5F81 /* FKeepSyncedEventRegistration.h */, - ABAD483290B2EF5BE8FAEE1AF91ACEAF /* FKeepSyncedEventRegistration.m */, - 22F36F2EB5B85FC832AFEED2FA184D00 /* FKeyIndex.h */, - 1953AF6171D6076E26FAE1961F870C8E /* FKeyIndex.m */, - D73913E36A92B1AFE64A3EE643F64436 /* FLeafNode.h */, - 9DA93F74CD26A7246AA4CF97A08C6799 /* FLeafNode.m */, - D82ECF6C0856929514162117B21AEFFE /* FLevelDBStorageEngine.h */, - C0960DEB72C885CE265CBC88C410094F /* FLevelDBStorageEngine.m */, - 85A9CF5E02D5D1F12377C665D83CBB84 /* FLimitedFilter.h */, - 0003443AD8DD64B04D3272F3D0862D79 /* FLimitedFilter.m */, - 5F6362CD3C9A5D9161025540A9520C9C /* FListenComplete.h */, - 41280C219F02FF010042A3D4E80FB7A7 /* FListenComplete.m */, - D90FC4D7DD0D5832C4AB2B3AEB4A4419 /* FListenProvider.h */, - 3C28E06757512114CD7F3363157E8A77 /* FListenProvider.m */, - 2CB244292166D2C650852EFE5AD83E4E /* FLLRBEmptyNode.h */, - 16686BB74ADEBE8821651BC26754611C /* FLLRBEmptyNode.m */, - 25CE5A0CDCBC4CF96F6633F9EC9A1F1B /* FLLRBNode.h */, - F50F42487664140489FF52111D770656 /* FLLRBValueNode.h */, - A28495A9579F9A0AED8E392DB2F68198 /* FLLRBValueNode.m */, - 9833A5B2D2380DF40F38FA62FC7D8CD7 /* FMaxNode.h */, - AC39AED3931D2FB2C7BCCB4DBC9D1834 /* FMaxNode.m */, - 4F6D22246A3755841E95B3F86FA4BC10 /* FMerge.h */, - 942E936F1CE4352A3B2232E542779672 /* FMerge.m */, - 2D59DC40BAE72A3158EB1277E81A3415 /* FNamedNode.h */, - FDC73D637C87904FBE5BE383FCD3DB10 /* FNamedNode.m */, - A3EEA32E2C9CA48F9A9271F62D61FE59 /* FNextPushId.h */, - 002F79536BD998496972FA8B23791F1D /* FNextPushId.m */, - E63E16F99EE19718A20E1CBA0E45C390 /* FNode.h */, - 90B703B7FED85EC7EEEEF99F30F00CE5 /* FNodeFilter.h */, - 31867FAC1EB2A4D65E11AB668B86643D /* FOperation.h */, - F45F589B89526CC10AE48D099E8CAD68 /* FOperationSource.h */, - 18485D6BA9FCC1213D138610EC1AF34C /* FOperationSource.m */, - 0F7D5282D75751D8A5F1436C7EBBF861 /* FOverwrite.h */, - 3603C2FA454E6DE5F11D1EE21D15C201 /* FOverwrite.m */, - 450515881F12A8F340FAD4F2DDC44A1A /* FParsedUrl.h */, - DE58FBF7EADFA831951FC894460F16D4 /* FParsedUrl.m */, - B881F2682F6BB345F67A08D8008FFFB3 /* FPath.h */, - 0066B5196CA0DB2A3C6DDBCB5A4D007F /* FPath.m */, - A3437890E45B7179924CE471E0194FB1 /* FPathIndex.h */, - F2B934C6C67272D8FA115AF50D08AAF4 /* FPathIndex.m */, - 886892B767D8D353FE5F588C4729175C /* FPendingPut.h */, - B019CAC921E53E2C80B07F1D11C99313 /* FPendingPut.m */, - 9D8D63F0B466616D7B2178E5CC560FB8 /* FPersistenceManager.h */, - FE17EA0AEC2F2252F4879428D468B1FF /* FPersistenceManager.m */, - D28B0012C933EDF2A89FEAE01FC9E3B6 /* FPersistentConnection.h */, - 2DDD8D89CAE73BA716FB80BCC1E6BD64 /* FPersistentConnection.m */, - D9E978F30BE4FF3532C89EA5DCDDDD10 /* FPriorityIndex.h */, - 425CE85B61E218C1B00C1F2A73950267 /* FPriorityIndex.m */, - A25FAE252409F1D18A4A93E988C990F9 /* FPruneForest.h */, - 93C7D157ED02B768BD9E369D0D0C7F92 /* FPruneForest.m */, - E6585F123FAD0EBA2F45FA4C996B1BDB /* FQueryParams.h */, - 21426779DCDC25A3F6EC98B0752A9C7D /* FQueryParams.m */, - 7C41A9B4D0EBE871057D6EAE99567F9C /* FQuerySpec.h */, - 41EA7F628F3DFFF3DFE6ED909553FA9B /* FQuerySpec.m */, - D15548A90347E765B7D3CBB0A5EC0900 /* FRangedFilter.h */, - 1738F789E76BDEB211DCF2425958ABF4 /* FRangedFilter.m */, - 3C8A7F0B382D0FDD6AEF71D9953824F0 /* FRangeMerge.h */, - 1AB40632554642A4D4ED9E51EC01D577 /* FRangeMerge.m */, - B65FABCEA365FCDFFDB2A6491A6D086C /* FRepo.h */, - 88E1B937EAFE914A5C8EB536E70FA627 /* FRepo.m */, - D3589D470EEE9055227B1C840786232F /* FRepo_Private.h */, - 5E43181967F5EB964226B6C853F54CA4 /* FRepoInfo.h */, - 37DC8061E71A3F64016C10244E021962 /* FRepoInfo.m */, - F30ABACEADFBFF704F6090547BBA8069 /* FRepoManager.h */, - 42DC25056D82FC2CEB7DFF1043825F2D /* FRepoManager.m */, - AA5B14AE26513421AA36E853BC69ECA7 /* FServerValues.h */, - 5D1F57DF35FA7430AA6DB574F4DF43C8 /* FServerValues.m */, - CDE61BF950EF6591C4A5B332BC379CE5 /* FSnapshotHolder.h */, - 377B675225F8DC1F7D6ED035AEC9E4E9 /* FSnapshotHolder.m */, - 6A796118955772D03B72C9D1D9FE04D0 /* FSnapshotUtilities.h */, - 211AC4263BB604C499433728C2ED0995 /* FSnapshotUtilities.m */, - 4D7A1725B0A364A94929B294DFCC75F5 /* FSparseSnapshotTree.h */, - 74C74967E5661E0F5B1C993EB5FE9DB4 /* FSparseSnapshotTree.m */, - 28EC55F554A2886D0ABEE64B9361B4DA /* FSRWebSocket.h */, - 06C2AD009117FC01E7202F4DF4DABB56 /* FSRWebSocket.m */, - 5525DBB94ECC5FDC2AE2D157D9CF6368 /* FStorageEngine.h */, - 9F3E8A735316EEF206EAC0936A51B47F /* FStringUtilities.h */, - 8141BA0CB76E803CACC707E744E97600 /* FStringUtilities.m */, - F509109A513108F962890765CD53F0CA /* FSyncPoint.h */, - A5200884DCB20D1C532F3365D3BF7138 /* FSyncPoint.m */, - 51FC95B42B5C8AC75A566E4F9C74B31F /* FSyncTree.h */, - 633D37D69F01FA94799A855FD77A3C72 /* FSyncTree.m */, - 77F466771C4AB291E951DD480C6DD71D /* FTrackedQuery.h */, - 116A5DE0338A41AAB17F9BB9EC08A623 /* FTrackedQuery.m */, - 5F73492D8DEF538338512FC4677D9392 /* FTrackedQueryManager.h */, - DEEA88BC53765F53137E017BD8F0B909 /* FTrackedQueryManager.m */, - 46EDC7422DA801CADCFA21A3BF40F83C /* FTransformedEnumerator.h */, - B70A9AB401D26851BAE07CFA4AC7E49B /* FTransformedEnumerator.m */, - CF7A99AFD9AA45EE6E31FED31F0B6A7E /* FTree.h */, - 19BD0622D341CDA89327AE82E52F3D16 /* FTree.m */, - 4AB20970F0D4CB43ECEF65054340B45F /* FTreeNode.h */, - BEB94202C410BE9C5896D1F2DC73CE99 /* FTreeNode.m */, - BE950F3DD06281B0BF7EFE6F3E568E59 /* FTreeSortedDictionary.h */, - D9BBE9102939B5AF8C30C316E653E8B9 /* FTreeSortedDictionary.m */, - C663417E94C6790A217AA1F15592BF69 /* FTreeSortedDictionaryEnumerator.h */, - A66A3B40662E94017A77F0202A8E82FB /* FTreeSortedDictionaryEnumerator.m */, - B84CAAEDE2700D1F4B947F4278E831EC /* FTupleBoolBlock.h */, - A5E9E62FA9990E51C7843FE160B03BBD /* FTupleBoolBlock.m */, - F77D246EF3F096DDAB892B6ABC94D31F /* FTupleCallbackStatus.h */, - D7F61CF01177A73ACCB2BB4BB1759117 /* FTupleCallbackStatus.m */, - AA96F671271411F0272D3373152688DD /* FTupleFirebase.h */, - 17485D13DE5885F152F1A5D1891C1A85 /* FTupleFirebase.m */, - 91F8AB2D820CE13E80F8E93EECE3EDEB /* FTupleNodePath.h */, - BFC195BF5C0744C5F858C1458FF02684 /* FTupleNodePath.m */, - B7AC0449F1AC4A52DC8070915CFF4F2F /* FTupleObjectNode.h */, - 578359019DFA7CCA5CDD6ED42E63F030 /* FTupleObjectNode.m */, - B8A7CC6912FE9817A70B102074E6A86E /* FTupleObjects.h */, - D17D7FA24E4496865A23E3E240E8AB96 /* FTupleObjects.m */, - 76C29CCA43C080F16D81CD5867D9C52D /* FTupleOnDisconnect.h */, - 138B56BBD3C698B2EFAE4538A4D3811E /* FTupleOnDisconnect.m */, - 2E51481E3FFCBF81DFDD4952E6FABF63 /* FTuplePathValue.h */, - F56FAFE6DF1C497E7EC2E13D436C0491 /* FTuplePathValue.m */, - C6841A5C0F89D50912B3E34A10EC3A80 /* FTupleRemovedQueriesEvents.h */, - 602F188119657936FF891D0242F97DDB /* FTupleRemovedQueriesEvents.m */, - BCA9CC5DD34C75E76BCC48A77392AEF8 /* FTupleSetIdPath.h */, - 5A4280A8DC60CB88F1289DD8735B6600 /* FTupleSetIdPath.m */, - F18041550B1F8E9C4A3CFF414F1C9E92 /* FTupleStringNode.h */, - F3B9D50C1122D69F3AEFD7BC21A727CE /* FTupleStringNode.m */, - 5900BBB74A1C8A89D84404007A6B840F /* FTupleTransaction.h */, - 6C06024BA2EE601FEAD8A46844A8E68D /* FTupleTransaction.m */, - 9EFA5244BD97145BA119FD542B6F5F12 /* FTupleTSN.h */, - F68D493B7DD7FE0E1A5A2C4EF224F781 /* FTupleTSN.m */, - 1B1C84B8FDDF845F111A283BD981712E /* FTupleUserCallback.h */, - CA0D8266F19CAB63F0E23856D69EDE48 /* FTupleUserCallback.m */, - E41B383434458E8EE71B6B0F57AA04D4 /* FTypedefs.h */, - 3428FB24D92B1FEE46F15233C2AE580D /* FTypedefs_Private.h */, - 3483051669AF463CD0850ABB6628BD2A /* FUtilities.h */, - 3481FF00891AE43E4B632A4CDAB486D0 /* FUtilities.m */, - F4DA326F2A37A3A24338EC1E0C78BB9B /* FValidation.h */, - 60582E02AEB667F45A3E146E5002B446 /* FValidation.m */, - 8DC34600911028B32C5CEF951B2ADDAA /* FValueEventRegistration.h */, - DAA4926E8C152BE798D055DE5632E692 /* FValueEventRegistration.m */, - 7F52AC95F97B437D56D2A3734D32B0DB /* FValueIndex.h */, - BC1AFED460D9AA4AB8A26EA614F73ECF /* FValueIndex.m */, - C30BADF1398C83CC5FC021D4ABED51A1 /* FView.h */, - 7ACEFF86E27F21CAB8051BC4A6AC4DF3 /* FView.m */, - 2C828D0286D610BA9516A49349483CCD /* FViewCache.h */, - 5F4CB2132F61F96177159822288A0915 /* FViewCache.m */, - 559E04D19C518EDB9FC95ECC98B51CCB /* FViewProcessor.h */, - 4B8D4E6514FF098D7A1B55FF7A87D11C /* FViewProcessor.m */, - 49A8D167120F9DD74D4FEAF80685DCCB /* FViewProcessorResult.h */, - 6DF894F4C1A239B83FCFB1075389DF9D /* FViewProcessorResult.m */, - 63378BB17B99EFB9E779233D8E9815A3 /* FWebSocketConnection.h */, - 747FC211F893CF80A4E0F16A3C1D0352 /* FWebSocketConnection.m */, - 6EDB5D3344BD1CE65FF9829BE4FD2ACA /* FWriteRecord.h */, - 10D68B92FFCBCA03D8948486AB61BC4B /* FWriteRecord.m */, - E898C32AEC2476E6F7FD7E346F221F09 /* FWriteTree.h */, - 1A9F7B51BE6C26E2930B06A3E9B81096 /* FWriteTree.m */, - 6DAB34840CFAF0BD1C2D64499BD62AD1 /* FWriteTreeRef.h */, - E9E8C3896AEAF09DB1EA0D209D696446 /* FWriteTreeRef.m */, - D78AABF08C18A87B8429428E8F12DBB6 /* NSData+SRB64Additions.h */, - FAF2426168EE844086BC8235C391A76F /* NSData+SRB64Additions.m */, - 650A97948EA207126D26DF19E9926AB6 /* Support Files */, + 2390161B6A068F444F66B9E9FEE89CD8 /* GULMutableDictionary.h */, + 54B51BF3B2BB0B3F9CE8CE450A24ECD8 /* GULMutableDictionary.m */, + 5C32EF1A3B6B226629AC4EE0673C07D4 /* GULNetwork.h */, + B8551C7058A8CBABF029E43D2BFD85B0 /* GULNetwork.m */, + 890B965AC980A224161EDCBD19692AA1 /* GULNetworkConstants.h */, + 1DE76B71233CDE4E8276762DC5E2261D /* GULNetworkConstants.m */, + 1ABC5483348775FE1027B71959C611F0 /* GULNetworkLoggerProtocol.h */, + B618D55A5765B4CA02C16AFF54D5E257 /* GULNetworkMessageCode.h */, + 74EB4C78412E7A014E28B37BB17931F1 /* GULNetworkURLSession.h */, + E2F753EA2F6EC642D9DB98A4057B79BE /* GULNetworkURLSession.m */, ); - path = FirebaseDatabase; + name = Network; sourceTree = ""; }; - 8084B36174717EDC75562BAE3B2E52F4 /* Support Files */ = { + A9D2F8C77F377B827BB0F931D42DC3F7 /* Support Files */ = { isa = PBXGroup; children = ( - EDF818E6EB2589316AD2FDA1783F4FD8 /* FirebaseAnalytics.xcconfig */, + 5B3A1BB2E7020C533513EF1AAB524715 /* FirebaseAuth.modulemap */, + 4952791075A7D97CBEC9BD313152C9D7 /* FirebaseAuth.xcconfig */, + EB06DC78D24748B91CEACE63316D7EDA /* FirebaseAuth-dummy.m */, + D913E78D0F02108339621D06444137A3 /* FirebaseAuth-Info.plist */, + E2C29AE6438D99DAFA9772BBDEBD482B /* FirebaseAuth-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/FirebaseAnalytics"; + path = "../Target Support Files/FirebaseAuth"; sourceTree = ""; }; - 9E9C20DEAAD0AE983DA654E673C415B8 /* FirebaseAuthInterop */ = { + B01D0B60074705049764C2883CA50555 /* Support Files */ = { isa = PBXGroup; children = ( - 593CF585643ACF0679D49828717B90FF /* FIRAuthInterop.h */, - DE4CB95433980A951B1C7AC629E56453 /* Support Files */, + 4C0DE29941E9FB4280328365C6FB9909 /* FirebaseAnalytics.xcconfig */, ); - path = FirebaseAuthInterop; + name = "Support Files"; + path = "../Target Support Files/FirebaseAnalytics"; sourceTree = ""; }; - A42836FE85436C0FEF096AD732A14773 /* Reachability */ = { + B380C35AF3EADE70F68C49222D3C5B7A /* FirebaseAnalytics */ = { isa = PBXGroup; children = ( - 756C85068A7A74500B084C3204C4E44B /* GULReachabilityChecker.h */, - D42C66AA5F9003406B21B758D6CB7508 /* GULReachabilityChecker.m */, - C91C5220E8EC2E1874DAFF3FEC5177A8 /* GULReachabilityChecker+Internal.h */, - 36CF3FEA982BA82B1901A24AE8A7CD36 /* GULReachabilityMessageCode.h */, + F39A4AFAA6ACB26FC1F8E770BD3B034E /* Frameworks */, + B01D0B60074705049764C2883CA50555 /* Support Files */, ); - name = Reachability; + name = FirebaseAnalytics; + path = FirebaseAnalytics; sourceTree = ""; }; - AE61DE1B86A5070409AA2FACFEE966DE /* encode */ = { + B5EEEE74E1A9ED397D95C2DDA6FE3BFF /* Logger */ = { isa = PBXGroup; children = ( + 255AA58DE09D46DF5DAC3F97B5833E1B /* GULLogger.h */, + 1FB5003C2AA4ECB6EB79ED81573CFE4B /* GULLogger.m */, + 30E1EF7F78265C6C227BD6B91E4C9293 /* GULLoggerLevel.h */, ); - name = encode; + name = Logger; sourceTree = ""; }; - AF4CE4200D05639527E0F56C26F6B21A /* GTMSessionFetcher */ = { + B950BE3C0FD8DB0E7EC417827EDA3C7D /* encode */ = { isa = PBXGroup; children = ( - 6D7E5399581567A6E6EF12B18CEB2138 /* Core */, - 374BD0B1988F272C99A7E5F1F2648B8E /* Support Files */, ); - path = GTMSessionFetcher; + name = encode; sourceTree = ""; }; - BB5584D5EDBA7495C415399113C1E2F3 /* Products */ = { + B9A2964DF9FF6F619107A00A554BC8D4 /* Support Files */ = { isa = PBXGroup; children = ( - 6BA47EE4A7C428287C63AD7B204841A8 /* FirebaseAuth.framework */, - 4FBC67076469FA78E9BBD64611124BB8 /* FirebaseCore.framework */, - B31CA0E260796BFF7ABD942534D365D9 /* FirebaseDatabase.framework */, - 4D48EBC30356F0473F93B304E8310755 /* FirebaseInstanceID.framework */, - A74CE0437D1733FAB9E082C23D5C551B /* FirebaseStorage.framework */, - 93F646AF7E43AEB95F008C8A54AF76D3 /* GoogleUtilities.framework */, - 7B3779352CAE2C68BB95FDDC3BBDEAF8 /* GTMSessionFetcher.framework */, - 4C8459EA56588BB32331D44B5AE28367 /* leveldb.framework */, - 603FF7B49814B47F4C39CAD8BE66ADBC /* nanopb.framework */, - 091E73571875B7E8664786E572F2C27A /* Pods_FoodApp.framework */, - E8AFCCE76FD7BEF3883C1ADF4A4D215A /* SkyFloatingLabelTextField.framework */, + 8E8F35A0F33093EE0A5F59A38022C012 /* IQKeyboardManagerSwift.modulemap */, + F2C1CCA1089ED32FDB5596EEF49F6DD9 /* IQKeyboardManagerSwift.xcconfig */, + 72919D3FE744D73BF2CBC4E485639DFB /* IQKeyboardManagerSwift-dummy.m */, + BDEF2CE8CA4ADD97D1F98A56E7E6735E /* IQKeyboardManagerSwift-Info.plist */, + A65DE8DD23ECCEA88F5D3B823D9597B6 /* IQKeyboardManagerSwift-prefix.pch */, + 0483354E454DFD8F424AFF194D9A4F8E /* IQKeyboardManagerSwift-umbrella.h */, ); - name = Products; + name = "Support Files"; + path = "../Target Support Files/IQKeyboardManagerSwift"; sourceTree = ""; }; - BDA734F66E31711CD33F247023ADC59D /* FirebaseCore */ = { + BE74C7A12EC5DBD05AA9CB923872F911 /* Support Files */ = { isa = PBXGroup; children = ( - 9C7AA0D303881127A10F0B6EAD3F784A /* FIRAnalyticsConfiguration.h */, - 089B7D21BC1F40C0F6C3AAEDC9C146F2 /* FIRAnalyticsConfiguration.m */, - 01CEE211F40084D19BF400D025DDC30D /* FIRAnalyticsConfiguration+Internal.h */, - EFE0894303E3D724FA0AD6F342EC77D7 /* FIRApp.h */, - 53A54C43E5F55D332BA9E044A76A3481 /* FIRApp.m */, - AAF5035E2EADE55B74944C24B28F3C3F /* FIRAppAssociationRegistration.h */, - 45E4B33BAE7133D11EC5E322CC8328A2 /* FIRAppAssociationRegistration.m */, - C300267F62DE4EE2F00927D64648EAE8 /* FIRAppInternal.h */, - D92393849E42D276AF062CBE5476A450 /* FIRBundleUtil.h */, - AF37F6017CDFEBB99829557BBFD81165 /* FIRBundleUtil.m */, - A160366642204F7D0E485CEE01F19A5F /* FIRComponent.h */, - 394E4A120D5047DAE5A2E23BFAB11B23 /* FIRComponent.m */, - 70B5C9A7763DC577634E155C6D6D6BB9 /* FIRComponentContainer.h */, - 239C21D2EE55FAC507BD5C7BF69E0209 /* FIRComponentContainer.m */, - 71D749C54BB49BF9DA520FF68FACC23F /* FIRComponentContainerInternal.h */, - C7331B570A8DA4572A69F4F3499B6D1E /* FIRComponentType.h */, - 9D7D0B3F76B9E4F3EA6021AB49203DED /* FIRComponentType.m */, - C2F6F8AB3C667704F7CF6B6E3CC126A6 /* FIRConfiguration.h */, - 4723713D6AF8203263B7E0374AF2ACC0 /* FIRConfiguration.m */, - 2069651C0562010C6A877A7BF47C327B /* FIRDependency.h */, - 411AA7A9D2C16F6306E6F2DE64AECF82 /* FIRDependency.m */, - 0F3583008A46F23EBE74BE4C31CAFEE4 /* FirebaseCore.h */, - 5746A9E7F46321E2902DFD0DB8D84DFE /* FIRErrorCode.h */, - F85CC629B21213EA018F283E322BDE58 /* FIRErrors.h */, - 722E8ECD73E43FA6C9DABB306F2C0001 /* FIRErrors.m */, - DF645AD33BB3CAEE3CD4F8503B6F8D92 /* FIRLibrary.h */, - 00246EDF57666086835500E4565A8DAD /* FIRLogger.h */, - 480D871CC0C4F4014529D55C3F0898FF /* FIRLogger.m */, - 59578A022F1ACB09E967133D7EBE14F3 /* FIRLoggerLevel.h */, - 4F3342FB4C76308019B0A30E86DC68DF /* FIROptions.h */, - B3B9B5914D0996581B41D838709FD693 /* FIROptions.m */, - 825B69FB1C063E96EBA2310E2A997E4E /* FIROptionsInternal.h */, - 5ED1D1C6BFA726B230EA8B43BCC1F4D8 /* FIRVersion.h */, - 7DEA8143167D618A8DF96D434E77EC3C /* FIRVersion.m */, - F46517D91FD8FCDA658957CF000D36DE /* Support Files */, + FFD726C731C02691F9B16C64F62E07C6 /* FirebaseInstanceID.modulemap */, + 4D5A00E1825E7F2C7D102757FF908EE0 /* FirebaseInstanceID.xcconfig */, + 06C28D397D54D67F0EB49CC4BDF97FC7 /* FirebaseInstanceID-dummy.m */, + 2B5D5B33F45278DC48BF8284E1EC3389 /* FirebaseInstanceID-Info.plist */, + 97DA82E1C8A7937DE3A78862C5F64DAD /* FirebaseInstanceID-umbrella.h */, ); - path = FirebaseCore; + name = "Support Files"; + path = "../Target Support Files/FirebaseInstanceID"; sourceTree = ""; }; - BF70B2D4FCB9CEAC8293B063749A8440 /* Support Files */ = { + C8E327211528FD6EA16F1A79A7785A6E /* decode */ = { isa = PBXGroup; children = ( - 0473554C05A70EE45798961B1CC3111A /* FirebaseStorage.modulemap */, - CE33D15441E97C4EFD8EB66C2297BBB4 /* FirebaseStorage.xcconfig */, - ACECEFB8907FDE190C32EC5CB35721D0 /* FirebaseStorage-dummy.m */, - 44642310C71BE744EFABF79233BDEEF4 /* FirebaseStorage-Info.plist */, - 392DDD6C7DF71CB9569FB923909348D6 /* FirebaseStorage-umbrella.h */, ); - name = "Support Files"; - path = "../Target Support Files/FirebaseStorage"; + name = decode; sourceTree = ""; }; - C0222C20A6419F352032D6DEF5A981C8 /* Support Files */ = { + CA74DF7583C4B21AD213B17323B8B1A9 /* FirebaseStorage */ = { isa = PBXGroup; children = ( - CC9AC6B848F7BA94C687C610AEB07CC7 /* nanopb.modulemap */, - DD4F9D9A3DADB05BADCE88FC17D0D6B9 /* nanopb.xcconfig */, - 0E5447CBA649653063CDF6ACBDA6D06A /* nanopb-dummy.m */, - 682AB6A41F4B18BB8F46CE2649BEF462 /* nanopb-Info.plist */, - A00A9EF2134ECDDC82A1A3DB4EADF55A /* nanopb-prefix.pch */, - 0616470F6D0E026F6594009732EC068D /* nanopb-umbrella.h */, + 2839FC162EA0A47CBFBF41176399DE3D /* FirebaseStorage.h */, + 142D8BAB74176D3264F161E043288840 /* FIRStorage.h */, + 9C1BC07A36F10FCD81E75C23689FD13B /* FIRStorage.m */, + D3FCDABE02DD992552AB5E4DAB835686 /* FIRStorage_Private.h */, + 892A73C1DE60F1EBF74A15E5F269A282 /* FIRStorageComponent.h */, + 3DB331FA4E962A0C8DB9FD5C188B5E5C /* FIRStorageComponent.m */, + 55809B6C0E024540341FEEDBAA038BF2 /* FIRStorageConstants.h */, + 7F3B1AF90A9A510351D35EC0721AC126 /* FIRStorageConstants.m */, + 2CB923BE54DE32ADEC1C6FF4162A9807 /* FIRStorageConstants_Private.h */, + 78D4D224645409CF7B3ED0A882343BBF /* FIRStorageDeleteTask.h */, + F8B7137FCDF6F9E1A186B07A4E7AE919 /* FIRStorageDeleteTask.m */, + D57EF38AFCB1A45DC1DB769223D7937B /* FIRStorageDownloadTask.h */, + 8403C0FCD81372D2C64EDD69407E321A /* FIRStorageDownloadTask.m */, + 5BFE82A31BC997DC0490C1B3855C8F2C /* FIRStorageDownloadTask_Private.h */, + 18B47B8CEF6BADD4682C255A17146F7A /* FIRStorageErrors.h */, + 5047AC9DBC101A463A13C78F0174D73D /* FIRStorageErrors.m */, + 21E5E035F7596A4818BF2337342BA2BE /* FIRStorageGetDownloadURLTask.h */, + B33EDC426A1A925001C6FEB8CD9F7494 /* FIRStorageGetDownloadURLTask.m */, + 00AD1CD4B1018456F374FAC831EFCDD6 /* FIRStorageGetDownloadURLTask_Private.h */, + 59B6037A0131315B9D74BA2F5F0E9E53 /* FIRStorageGetMetadataTask.h */, + 5FCB9D8ED877634BB9AE95762152EABF /* FIRStorageGetMetadataTask.m */, + B6F2834553BB9BF787FF35E2F05F09B3 /* FIRStorageMetadata.h */, + 32751CB83490A73DF3D1EBDCC6CA4A63 /* FIRStorageMetadata.m */, + 374EBA59FFFEF55E38E0C8FA2B03D1E1 /* FIRStorageMetadata_Private.h */, + 1CF1522D55FA3316BDAF12C7CDBDBD28 /* FIRStorageObservableTask.h */, + 3AFB1F29923516C437B3F0D78BDD8F52 /* FIRStorageObservableTask.m */, + B7CE21914028710EF09F878EEE90E7EF /* FIRStorageObservableTask_Private.h */, + 8C527E073394100C826D1B01EA9E8162 /* FIRStoragePath.h */, + F313C58F4104E31C87DC22F5C9E1F1D4 /* FIRStoragePath.m */, + 1598E552B7307E9ED8D6820F9D301EAE /* FIRStorageReference.h */, + 4981BAA6B92BDB16B2C9437DE6E5E4F8 /* FIRStorageReference.m */, + 3BE3CEA5FDFA416DCB5559D16C20980B /* FIRStorageReference_Private.h */, + AF1F72A70ADF5D64ECC7F4EA995A0187 /* FIRStorageTask.h */, + 17B195A1AE4F215AC9F086A2D5BD04B4 /* FIRStorageTask.m */, + 0FE3B3D485BFF82FC44FB8B597E000A3 /* FIRStorageTask_Private.h */, + 9324F815BF2D74D30135BC9DC0D82FE6 /* FIRStorageTaskSnapshot.h */, + BF62E17B8F8C30A0BEB5132335C862F9 /* FIRStorageTaskSnapshot.m */, + 9D7667F906E1254B3B5E31B2509482B7 /* FIRStorageTaskSnapshot_Private.h */, + ACC3CD4ABE9C03C98ABBE2E5FD5D0757 /* FIRStorageTokenAuthorizer.h */, + B47A0938A746EAB5E1904BDC022A775F /* FIRStorageTokenAuthorizer.m */, + D5040717B8006BF61D43D7F6B48E12C0 /* FIRStorageUpdateMetadataTask.h */, + 1B462561E2B5FD154AAEF2B9B0A696CD /* FIRStorageUpdateMetadataTask.m */, + 7DA55E3DF780DB0132DFB8FEF7670747 /* FIRStorageUploadTask.h */, + 794B7E809C5AF0975CDA2D91CFF0DC40 /* FIRStorageUploadTask.m */, + A38D7B57937E25FBA84FC4DB7F612980 /* FIRStorageUploadTask_Private.h */, + 9E2808A79061EECC10CD68C5AC371C8F /* FIRStorageUtils.h */, + 25C6E4E729ED916184BADEAA778B0026 /* FIRStorageUtils.m */, + F8861894079B10CD056CE4C4F5B75D5E /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/nanopb"; + name = FirebaseStorage; + path = FirebaseStorage; sourceTree = ""; }; - C6E644AFAF9ACA189F7CA85885C9E43D /* FirebaseAuth */ = { + CE94163FD98E318F0BC1054D220CE8EF /* iOS */ = { isa = PBXGroup; children = ( - 7B638E1DAE036DF8F45F4B3D7823DAF2 /* FIRActionCodeSettings.h */, - 7706A5AC92B7A1D2C78EC18860FCBFDC /* FIRActionCodeSettings.m */, - BB0E14C8B85C9056BE5062BEDD46192C /* FIRAdditionalUserInfo.h */, - 25BB970C36717EAF606D445FC1BB9970 /* FIRAdditionalUserInfo.m */, - 408B57C4FBE836D1115451629D897551 /* FIRAdditionalUserInfo_Internal.h */, - 30B2A3A674C09C0191312B460DAAFD16 /* FIRAuth.h */, - 7BB13B320E25A8E10118F5AA4E4BEB2A /* FIRAuth.m */, - 19239311F709F916D061C98FD9612DAE /* FIRAuth_Internal.h */, - 14B1D625056F7F756EB32E0B066455CA /* FIRAuthAPNSToken.h */, - 03F5B3C06494674FD9411692EBC65240 /* FIRAuthAPNSToken.m */, - 620EF42980B95CE6CF84DC8C3AB73351 /* FIRAuthAPNSTokenManager.h */, - 158CE5C1EF386C7996C926205FCED4D9 /* FIRAuthAPNSTokenManager.m */, - 2F315EE5C1C7AB599527514B6B86EF23 /* FIRAuthAPNSTokenType.h */, - 43AD22E2ABA404BF3030B40E400B73B9 /* FIRAuthAppCredential.h */, - 294DE40D904297B85D2EC076ECA55A62 /* FIRAuthAppCredential.m */, - A7B6D3C8A99058AC962CCF41D9F01DC1 /* FIRAuthAppCredentialManager.h */, - 08F7229DEB8C36D92FE52955BF8744BE /* FIRAuthAppCredentialManager.m */, - 432F187F2407D612AC1926BF93610DA8 /* FIRAuthAppDelegateProxy.h */, - 49714AB0D4D0D3E3315FBED9D2F0572C /* FIRAuthAppDelegateProxy.m */, - D07E9815371236B64A7536957C6ADEBB /* FIRAuthBackend.h */, - 4DD187255D95DBB6078A19520067AF79 /* FIRAuthBackend.m */, - A15540E320476727C58633F8BDF310DE /* FIRAuthCredential.h */, - 5E3DE5DD649A16A93414B653A446BEC0 /* FIRAuthCredential.m */, - 51A7C19964FC578A1A16EC75F215AA1B /* FIRAuthCredential_Internal.h */, - 7871CCA6B38AAAA7C49C3F537B9D101E /* FIRAuthDataResult.h */, - F944A46EDC21C887848333C3765BAFA4 /* FIRAuthDataResult.m */, - F34169A7B7AAB056684317D2289318D3 /* FIRAuthDataResult_Internal.h */, - 8CE62519C1AEBD2EA672C3C4ADC0B36E /* FIRAuthDefaultUIDelegate.h */, - DCB0C71551CCF6CB7397B39DB6E37F37 /* FIRAuthDefaultUIDelegate.m */, - 3C2AB0587B6DEFCD5A98218E92E98FD9 /* FIRAuthDispatcher.h */, - EB7B05DE65A6CF0E021125602B9090AE /* FIRAuthDispatcher.m */, - 9D3D4D22CEFA0D919069BA9E436545BC /* FIRAuthErrors.h */, - DCB5DAA989436994242BDAB2CB654D47 /* FIRAuthErrorUtils.h */, - 71861DFA7BB3624BD632AAD00515E87D /* FIRAuthErrorUtils.m */, - 0658116941DE7643A7A46290104F6B22 /* FIRAuthExceptionUtils.h */, - 51D231171F02FC16507F09EFB5FCB56D /* FIRAuthExceptionUtils.m */, - 0C3ACF0C6C2662805FC41BFC81DE9931 /* FIRAuthGlobalWorkQueue.h */, - C0738815911609F860A0040EFB412853 /* FIRAuthGlobalWorkQueue.m */, - 8E61D3AB47269E9013073B64BF54B214 /* FIRAuthInternalErrors.h */, - B56D704C5EE166BAAF557C789184A2B9 /* FIRAuthKeychain.h */, - A05F6A9BC071DEA50BE7948CA57ABD60 /* FIRAuthKeychain.m */, - 28A4F690B518910B893FD0B61DFA3CC4 /* FIRAuthNotificationManager.h */, - 52D96C7DBB90DCF092EB949DB6C6EB24 /* FIRAuthNotificationManager.m */, - 73400156B74C0DA3AD4C910330E581D3 /* FIRAuthOperationType.h */, - 900C2CB2C93765FED9053D277A7CEBEC /* FIRAuthProvider.m */, - 548A75EF775F946A24E5BCE27D4A9406 /* FIRAuthRequestConfiguration.h */, - 6A40C0F4EAF56F93F636F14AB606B0F8 /* FIRAuthRequestConfiguration.m */, - A47F76D6B9AD3BB9A2FB8C8C3B1141F7 /* FIRAuthRPCRequest.h */, - 94719BBBB60000BE23863F8E0AF72366 /* FIRAuthRPCResponse.h */, - A5AA5F0780DFCE3F315867F4FAB9EBF8 /* FIRAuthSerialTaskQueue.h */, - 724B6D543445B74C7A14B47EDCF8F78D /* FIRAuthSerialTaskQueue.m */, - 41260A8CFC476497E72E2C7591DD7574 /* FIRAuthSettings.h */, - C6656E393B1F8CF249F0A2A0A091C0B4 /* FIRAuthSettings.m */, - 6C4495F0517BC62F190251D71026FB32 /* FIRAuthTokenResult.h */, - 13B8B40409B5A14D715A1D81C5458966 /* FIRAuthTokenResult.m */, - 31A66867F845649BC8FB6659824369BF /* FIRAuthTokenResult_Internal.h */, - 583562A98462CC5B8EE78FEA8B4CAC9A /* FIRAuthUIDelegate.h */, - E7FCA4F0BD4046768D82ED3714E590B6 /* FIRAuthURLPresenter.h */, - 4C49E36A0B879CF5408B740217074768 /* FIRAuthURLPresenter.m */, - 12DA39787ACEC67E8EF6C7A94158981F /* FIRAuthUserDefaultsStorage.h */, - 64B2AFE614693176E2E7ECA671B56F65 /* FIRAuthUserDefaultsStorage.m */, - E26AF9026CF7937F0297FAF85E5CECD5 /* FIRAuthWebUtils.h */, - 4A60C7A67F33111D198AB8CFA8BBA42A /* FIRAuthWebUtils.m */, - 3140E387E11BF2A87D6EBC35BE462CEE /* FIRAuthWebView.h */, - 08D54D229576FC653365892AB8872535 /* FIRAuthWebView.m */, - 76D68407463B88344E760BCEA86276C1 /* FIRAuthWebViewController.h */, - 609B646BA7CDA0E3B7C5F79AB0C843CF /* FIRAuthWebViewController.m */, - BDA230B665853D12DF0E31CB6FEA8654 /* FIRCreateAuthURIRequest.h */, - 518F093F87A904606DD082315D7C8944 /* FIRCreateAuthURIRequest.m */, - 36A5237B4B667FB9DD99A925C35D4BDD /* FIRCreateAuthURIResponse.h */, - 276ED8659F55873729E50A68D18D8BB4 /* FIRCreateAuthURIResponse.m */, - 2CD73CD7281BF60442814EDE05632BAD /* FIRDeleteAccountRequest.h */, - 1559D90CFC7F8637E6C5FD474E63404D /* FIRDeleteAccountRequest.m */, - CACB143E2ACF8905640CCB0695C90D42 /* FIRDeleteAccountResponse.h */, - 1619B1F9E6E76BABC17CEF6DFA699A01 /* FIRDeleteAccountResponse.m */, - FC5C0D2B4C8D3E5950A8879B40D5058B /* FirebaseAuth.h */, - 90296F1A0DAD1733FF1C61C0C6694A52 /* FirebaseAuthVersion.h */, - 9C11107F3372A30CEBB81E77AB6A7266 /* FirebaseAuthVersion.m */, - 6A6F7323B4A8CD7354C6E703CDCE8453 /* FIREmailAuthProvider.h */, - 6BBE207CB27564A845497814D036CB46 /* FIREmailAuthProvider.m */, - 4809A8AEB207BE09094C80E724B4C420 /* FIREmailLinkSignInRequest.h */, - 43E45774CEC57DBA12AE40E4D8F0732B /* FIREmailLinkSignInRequest.m */, - DF433EF745E3C7B6C69D8EAF9607517C /* FIREmailLinkSignInResponse.h */, - 7A0A123EEEB99AD273AA8FFC02C4C0A4 /* FIREmailLinkSignInResponse.m */, - 1A489BFBA782016F623533E55181A4C5 /* FIREmailPasswordAuthCredential.h */, - B7C7007AA00308EF6ADB44AA8D9769BC /* FIREmailPasswordAuthCredential.m */, - 8A77D403A4F87B097B9244EFC7B24DF6 /* FIRFacebookAuthCredential.h */, - D4E6F1DE89622CF0F1288F7E570EB35E /* FIRFacebookAuthCredential.m */, - 2A297CC1E3226DEDE9D8D550221D0149 /* FIRFacebookAuthProvider.h */, - 8D266EE2E7911E0026FDD2A6C2A0014D /* FIRFacebookAuthProvider.m */, - 11D557311BC56E727F596A91F344DC09 /* FIRFederatedAuthProvider.h */, - 9B06C7E35631EF595CEB3F8D4C5F768B /* FIRGameCenterAuthCredential.h */, - 2122B552F56707548D6BE3C2DA92C363 /* FIRGameCenterAuthCredential.m */, - 78528EFC6339BEE50784E020ED28B5C9 /* FIRGameCenterAuthProvider.h */, - 60EA4D965DE2D2E6E7599C16DEC13151 /* FIRGameCenterAuthProvider.m */, - 1034797C985586A397C8E6935C3C3EBA /* FIRGetAccountInfoRequest.h */, - BA567F9B50F1754221B75A72DF6DD86A /* FIRGetAccountInfoRequest.m */, - 54F584061427E2CC1975FEBA7EB7957A /* FIRGetAccountInfoResponse.h */, - CBDCA9718B784D740DB3648DC8DC2D1B /* FIRGetAccountInfoResponse.m */, - 7267D53C57FA08FAC0012713F45B79A7 /* FIRGetOOBConfirmationCodeRequest.h */, - F01AA85527337C7BE615F1EE2239B34D /* FIRGetOOBConfirmationCodeRequest.m */, - 71D6A81BE570ABCD48BF88B1C039ACBC /* FIRGetOOBConfirmationCodeResponse.h */, - 7FEA95D4CD2B9A707AA8E3FABA3B8E0E /* FIRGetOOBConfirmationCodeResponse.m */, - 1E05376F8114D7761110A93BB9269E0F /* FIRGetProjectConfigRequest.h */, - E4E3840561AFBA5611DE8E3007A1E202 /* FIRGetProjectConfigRequest.m */, - 2F73ED72759D84D1E45C37F712727036 /* FIRGetProjectConfigResponse.h */, - A924453706D0B054CC5FE39B4B64D5FD /* FIRGetProjectConfigResponse.m */, - 102C8829BE2DF1899095878C8AA8F632 /* FIRGitHubAuthCredential.h */, - 291FE3E17348A450097864F119F7E4E7 /* FIRGitHubAuthCredential.m */, - A0986B6AD673E7D78EB6FB508D8EC150 /* FIRGitHubAuthProvider.h */, - FBF353AE4935C2D9FF55D2ED01C9DF0E /* FIRGitHubAuthProvider.m */, - 6F7C8CDC6074F1510FD31604D2E8876F /* FIRGoogleAuthCredential.h */, - 247E102F195FA7F5EF5C5CDF7F516E5B /* FIRGoogleAuthCredential.m */, - ECB19057C36D102FF9DE4902B90BFA76 /* FIRGoogleAuthProvider.h */, - 56DA05C7BD2C764386BEBC47C0158012 /* FIRGoogleAuthProvider.m */, - 8973370B30473168FB7B54E64633C387 /* FIRIdentityToolkitRequest.h */, - D76ABC3EBF88D2BE02B0DAD0E7DD7FB5 /* FIRIdentityToolkitRequest.m */, - A082045DDD2F14D1271C63E9A1A1D9C5 /* FIROAuthCredential.h */, - 7E1D5DE7E86656144A403F0CA64C7D08 /* FIROAuthCredential.m */, - B815965A4C80F9CCA191C0F5D9ED3D95 /* FIROAuthCredential_Internal.h */, - 76593F07DC9EBE2104F65E90E1FF901A /* FIROAuthProvider.h */, - 9A335D5BA33451AD785A958F13A99221 /* FIROAuthProvider.m */, - 5FB4F6E35F781A7CECE37DAC099AAAEC /* FIRPhoneAuthCredential.h */, - 2348E4D2B13991D1EF39D0D2876A8C6C /* FIRPhoneAuthCredential.m */, - C852790519048CAE41D6146DD81939F8 /* FIRPhoneAuthCredential_Internal.h */, - E66CC3E1B1350B6E987AE70947B7E3F3 /* FIRPhoneAuthProvider.h */, - 41FDFA540103BFE5E19F3494B8505A5E /* FIRPhoneAuthProvider.m */, - 98DAB9614219B17A5FCD582B78FC7857 /* FIRResetPasswordRequest.h */, - 766D0826E7A2EC3AD9B458B857C0265D /* FIRResetPasswordRequest.m */, - B27D67515558C81527EBF9AB7F7CCE94 /* FIRResetPasswordResponse.h */, - E530070FE51B10AACCAE0D2C596141EB /* FIRResetPasswordResponse.m */, - 8C64C70AD5154134898E499C76769E99 /* FIRSecureTokenRequest.h */, - F007025FC416C22C0112996FB58041D2 /* FIRSecureTokenRequest.m */, - 7E94A847AAF36725558D13D154A5573E /* FIRSecureTokenResponse.h */, - 242713338442B10C2C94C52824EAAE2E /* FIRSecureTokenResponse.m */, - F3BD0D8B08F1AADDB71971C8B265CC1D /* FIRSecureTokenService.h */, - B3A9A3236666F99DA181A7736384737A /* FIRSecureTokenService.m */, - 4701099F524983436C814A2D89FF313B /* FIRSendVerificationCodeRequest.h */, - 520AFCF6FA37EDA97367B3823779931B /* FIRSendVerificationCodeRequest.m */, - F271C290409CE9A5105DC0CABB9F9EE5 /* FIRSendVerificationCodeResponse.h */, - 5FAB01774BC009DAF2FBA8BA94DAC6C8 /* FIRSendVerificationCodeResponse.m */, - DB711F58CA9FBB0C7AC9808EAB23CD6C /* FIRSetAccountInfoRequest.h */, - D85AFD3D61483F9F8742E3F923E18D7B /* FIRSetAccountInfoRequest.m */, - 9366F68232237363C4C84CA8F270C673 /* FIRSetAccountInfoResponse.h */, - 02191BFA74D66D8E84924B45B60080D7 /* FIRSetAccountInfoResponse.m */, - 83928E4E02C7FAB4019F7C5405982D95 /* FIRSignInWithGameCenterRequest.h */, - D8B22D589B5AF318906C6F661D003091 /* FIRSignInWithGameCenterRequest.m */, - 0BD19841DE323FEE839642AADCF879E0 /* FIRSignInWithGameCenterResponse.h */, - 287FD20FB1E704B5433F3348A94510AD /* FIRSignInWithGameCenterResponse.m */, - 17C82B891897BB47D488F8FFB83D5619 /* FIRSignUpNewUserRequest.h */, - 0BB358A9C2ADE6B010C30612602C0AFB /* FIRSignUpNewUserRequest.m */, - 977B0B89B9FE59C1513D05CC42FB8DB0 /* FIRSignUpNewUserResponse.h */, - A9B43B3A7599ED9B6D5F543DB197466C /* FIRSignUpNewUserResponse.m */, - 0EA984C0CA4E067FF2355EB4343907AE /* FIRTwitterAuthCredential.h */, - 6E98048E79C4D70E625E3E706B3537F6 /* FIRTwitterAuthCredential.m */, - 4D9F86C5BD87528712951A0BC2123308 /* FIRTwitterAuthProvider.h */, - BFCF55499AE3C02C6D20A2563D29B3EE /* FIRTwitterAuthProvider.m */, - FA59B9AAC1448068CECE850083F896E4 /* FIRUser.h */, - 4A68861BDAC9F79D60A1182C8026F41E /* FIRUser.m */, - 36EB1565044A97B1FF9AA8F23DBF0A5A /* FIRUser_Internal.h */, - 8B668E4A710000BFFA9632B35FB7AE8D /* FIRUserInfo.h */, - 95DA6531C023E7175A3208301501809B /* FIRUserInfoImpl.h */, - 5A5AE083E53318DEDFC4D6BC01E6F6DB /* FIRUserInfoImpl.m */, - 5269EE3A9C9A0B4E3B5606933F044539 /* FIRUserMetadata.h */, - 60D6FD692E41EEDD74AB50D0E342B115 /* FIRUserMetadata.m */, - 4D48AABB8FEF082D05C830512316011C /* FIRUserMetadata_Internal.h */, - 3A9AA771AF9F16BC3FC9A2B28208A59F /* FIRVerifyAssertionRequest.h */, - A4371695BB8BE0B7F036B798A5184995 /* FIRVerifyAssertionRequest.m */, - 485581E6831BD56380F402F7F9A31EBE /* FIRVerifyAssertionResponse.h */, - 7289445B04801259D57D61C0A09D359D /* FIRVerifyAssertionResponse.m */, - 63463ACECA0D0EBFA498CD3B29CDD805 /* FIRVerifyClientRequest.h */, - A5B3A317741BE3412E807AAD0DD15F50 /* FIRVerifyClientRequest.m */, - 42E5F1A69506D7FBD0ECEF6CD913754A /* FIRVerifyClientResponse.h */, - 057A37A0B59A832E8F58776C7E4CAECA /* FIRVerifyClientResponse.m */, - 73D7C4832D8848B73ABD12B152C7D3CE /* FIRVerifyCustomTokenRequest.h */, - 7529757A7047095C0723D1E4264957DB /* FIRVerifyCustomTokenRequest.m */, - ED99989C760A526A72A2F63EF1D45CD7 /* FIRVerifyCustomTokenResponse.h */, - 817E5BBA817024379AF7D85C00DFBB1E /* FIRVerifyCustomTokenResponse.m */, - 7883EA73BD06379080BB9C8DE1B6C7AD /* FIRVerifyPasswordRequest.h */, - F5FBC4839AE408BDC288B6F225B683DB /* FIRVerifyPasswordRequest.m */, - 59828102FCF314A76AF38010D8F92B98 /* FIRVerifyPasswordResponse.h */, - 8A66B89D58B766882246645BD8B2E0F0 /* FIRVerifyPasswordResponse.m */, - 365F356BEB40BD61262AA2E727C3665B /* FIRVerifyPhoneNumberRequest.h */, - 0EC51AFE930D198BBE8B156BFB9E27EF /* FIRVerifyPhoneNumberRequest.m */, - E714D102A2BA1F5C069BDC392A9B9AB0 /* FIRVerifyPhoneNumberResponse.h */, - 06A15F9620B94F308C2721CC589A088E /* FIRVerifyPhoneNumberResponse.m */, - 3234BBBF45EDF1C1ED53759A22CA12C9 /* NSData+FIRBase64.h */, - 192BBF5843C2BBC3D997185F4F0FA529 /* NSData+FIRBase64.m */, - 4788F355FC5F07F58259539B3C3F5C4E /* Support Files */, + 98ADC475E84235BC84ADBA05C35685D5 /* CoreGraphics.framework */, + 2280EB9A6A7DFA5F72F973764FCB5331 /* Foundation.framework */, + A4FAD54AF24FB83CF12F293704D03C36 /* QuartzCore.framework */, + 8CA5CFBCBBE50C70263534AE6998D298 /* Security.framework */, + F7FD7EB4AD43C08DAC7A41393A0AFC3E /* SystemConfiguration.framework */, + 5B40963D8B06B4003C2DD3EE05717E33 /* UIKit.framework */, ); - path = FirebaseAuth; + name = iOS; sourceTree = ""; }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - 03C5C200A0787E300053CFA8F53CA094 /* Frameworks */, - 2036B39AFA22E51C9A71A6E08B9CC357 /* Pods */, - BB5584D5EDBA7495C415399113C1E2F3 /* Products */, + D68CA58901FBF589D75F5E40F1EAF5BA /* Frameworks */, + 3B5C5C1222F8D3290FB77EEC1E9B0359 /* Pods */, + 62C0CAA675363B5F09D022D666888756 /* Products */, FF148B7C87A844C6C60CCF282AFDAFE0 /* Targets Support Files */, ); sourceTree = ""; }; - DE4CB95433980A951B1C7AC629E56453 /* Support Files */ = { + CF35DAB135B77161EBE7E253DA675928 /* UserDefaults */ = { + isa = PBXGroup; + children = ( + 4312FC140BBD80D7EC3B1E55365BF563 /* GULUserDefaults.h */, + A01181B65BC03574C55316D990429D2B /* GULUserDefaults.m */, + ); + name = UserDefaults; + sourceTree = ""; + }; + D1736F9CD7C1A4AE04F30B7C46D1E416 /* Support Files */ = { + isa = PBXGroup; + children = ( + B5D73E0DF05F99859E29FBDF710F1B4B /* GTMSessionFetcher.modulemap */, + D4407E837EE9BA418818B47899C1D8E7 /* GTMSessionFetcher.xcconfig */, + 709B62964648BEB33EA49DE11D3D09CF /* GTMSessionFetcher-dummy.m */, + 3D9B3CA4A2D4CC9C8CA34C4489F4619F /* GTMSessionFetcher-Info.plist */, + 5F9BA0E3E6BB198ABA28CC9D9A5D4F86 /* GTMSessionFetcher-prefix.pch */, + A08E99F37C9690951356608241428D81 /* GTMSessionFetcher-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/GTMSessionFetcher"; + sourceTree = ""; + }; + D68CA58901FBF589D75F5E40F1EAF5BA /* Frameworks */ = { + isa = PBXGroup; + children = ( + CE94163FD98E318F0BC1054D220CE8EF /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + D97A19E39861C4DCC67243A5F159C37C /* GoogleUtilities */ = { isa = PBXGroup; children = ( - 0A9ECA9A2280E589F6E2877215D4B385 /* FirebaseAuthInterop.xcconfig */, + EC5B645CC30E106B6A4F29CFE31D0633 /* AppDelegateSwizzler */, + 722F725E2807ADAB2BE9CC0CED8E8C9E /* Environment */, + B5EEEE74E1A9ED397D95C2DDA6FE3BFF /* Logger */, + 2498D1E6FB0C52DD75010836F29CCCB6 /* MethodSwizzler */, + A5056A7E8A1F33E000FDAD6CE8132858 /* Network */, + 62A2B20A2E959F00264546D4C96D5B00 /* NSData+zlib */, + 7CE60591A09B73E614CCB7A32C049040 /* Reachability */, + 05B7B0EAA982D34EF29E6257D28C0869 /* Support Files */, + CF35DAB135B77161EBE7E253DA675928 /* UserDefaults */, ); - name = "Support Files"; - path = "../Target Support Files/FirebaseAuthInterop"; + name = GoogleUtilities; + path = GoogleUtilities; sourceTree = ""; }; - DF54FD19DE05985A882DDA918895CAAB /* Support Files */ = { + DE4C3D8319611122852F2FFDFBB222A9 /* Resources */ = { isa = PBXGroup; children = ( - 8587842234E12AB08CD40DA275168C06 /* Firebase.xcconfig */, + A6A8B1B2ECE0D7274E58D0794ABCB042 /* IQKeyboardManager.bundle */, ); - name = "Support Files"; - path = "../Target Support Files/Firebase"; + name = Resources; sourceTree = ""; }; - E18F7A130F3968AC2D36FB6B902429D3 /* nanopb */ = { + E29D855D53CC679C7CB1F5DF067C98F4 /* Support Files */ = { isa = PBXGroup; children = ( - EF99594D20D6047B92F06C7823F16073 /* pb.h */, - 5C736C58C8011A9AB7EA574C4AAB4C81 /* pb_common.c */, - A86BAA17746AB2A76A58A26849567470 /* pb_common.h */, - FF1F339425A43481A7287BA1FF760EF1 /* pb_decode.c */, - 5BDC53FFF5CFDC7C851D99A9B5CA0196 /* pb_decode.h */, - 5D59EF2626A3624BBF5FE22C9A123190 /* pb_encode.c */, - C5EE76CDD6DCE2DBEBD3A1DECEC4B041 /* pb_encode.h */, - 1916A7AF7BE2CD4B7C617E7B24633884 /* decode */, - AE61DE1B86A5070409AA2FACFEE966DE /* encode */, - C0222C20A6419F352032D6DEF5A981C8 /* Support Files */, + 35C4FE497200525A4DA6D003040676E1 /* leveldb-library.modulemap */, + 8205A93740A0400CD4761410BEA3E29E /* leveldb-library.xcconfig */, + 35F84283B450204418E9BACAEF4AE056 /* leveldb-library-dummy.m */, + A5608247631FD07A69614088751E951A /* leveldb-library-Info.plist */, + A5B8B79504BFED0A612E40C3C8948A90 /* leveldb-library-prefix.pch */, + E6D5ACD151CFEAF17C5ACAFE048F01DF /* leveldb-library-umbrella.h */, ); - path = nanopb; + name = "Support Files"; + path = "../Target Support Files/leveldb-library"; sourceTree = ""; }; - E288D85D35E36260425E035A83811A11 /* Environment */ = { + E7E8FE04F2717945D156EFFF81440314 /* GoogleAppMeasurement */ = { isa = PBXGroup; children = ( - 5400DC6019076EB9F1A792870A10C3E9 /* GULAppEnvironmentUtil.h */, - 8CBDB93649A440F224E642D5BF21C2B3 /* GULAppEnvironmentUtil.m */, + 7E0CC4839DF7B8744143E97498BDF97D /* Frameworks */, + 7D9CC76CDB121B023A4C300463CA6690 /* Support Files */, ); - name = Environment; + name = GoogleAppMeasurement; + path = GoogleAppMeasurement; sourceTree = ""; }; - E7149370429FEA295C20CC7D21E0F705 /* MethodSwizzler */ = { + EAF8B6BDA9BC60A96ED8BF5445CE152F /* IQKeyboardManagerSwift */ = { isa = PBXGroup; children = ( - E0B1179FF09583A05F46D4164B6B4033 /* GULOriginalIMPConvenienceMacros.h */, - 267BF6D8786C8CB44EC92523CBD86470 /* GULSwizzler.h */, - 634F97D0C73BF093A37A6EAE872CEA86 /* GULSwizzler.m */, - ); - name = MethodSwizzler; + A8A68045783992B9D13A7B0EE8C4941D /* IQBarButtonItem.swift */, + 471E59A6C01312C6BD0C63AEE62AEC31 /* IQInvocation.swift */, + 43D517798B32A7D72D6E101888AE00BB /* IQKeyboardManager.swift */, + 786B6F6C4CEB7D626291A0FF9C1374F3 /* IQKeyboardManagerConstants.swift */, + 1637914D34CBA36FE1657EF748BD14E5 /* IQKeyboardManagerConstantsInternal.swift */, + 938663BB94CF6FE7FDFC220D345D2B84 /* IQKeyboardReturnKeyHandler.swift */, + 8DF267D7963BC873976B6BF2D5DF0B45 /* IQNSArray+Sort.swift */, + 0D0FB3FA0861D661947092EDA0B3F68C /* IQPreviousNextView.swift */, + 6B3E62A97581101DCF5FB7CBA61206B0 /* IQTextView.swift */, + 091F989264028F15A2E38F622A5DD05E /* IQTitleBarButtonItem.swift */, + F7D40F08D87BA4D1D76E4B18EFC1F167 /* IQToolbar.swift */, + F0F9288FDF699C66E00F7621A9F1484F /* IQUIScrollView+Additions.swift */, + 8F24813F060DD8199A17FA59CD50B9E4 /* IQUITextFieldView+Additions.swift */, + E6080F0B9079C846B0F28982453E50CE /* IQUIView+Hierarchy.swift */, + 33AA60A06DD7330A8B77921400C8EA04 /* IQUIView+IQKeyboardToolbar.swift */, + B6A09D05724B9E4317F0A1465EDAB18E /* IQUIViewController+Additions.swift */, + DE4C3D8319611122852F2FFDFBB222A9 /* Resources */, + B9A2964DF9FF6F619107A00A554BC8D4 /* Support Files */, + ); + name = IQKeyboardManagerSwift; + path = IQKeyboardManagerSwift; sourceTree = ""; }; - E93640A79F7D956C15059989931B8B54 /* Frameworks */ = { + EC5B645CC30E106B6A4F29CFE31D0633 /* AppDelegateSwizzler */ = { isa = PBXGroup; children = ( - 51D721E2807B140674490E49C6616E89 /* FIRAnalyticsConnector.framework */, - D27EB043894FBB06981F61DD006719BE /* FirebaseAnalytics.framework */, - 94A6B4C16AFB376AC14C3362B35E978D /* FirebaseCoreDiagnostics.framework */, + 176AB47C3BC85BBD1E34D6D442EE7535 /* GULAppDelegateSwizzler.h */, + CA4778006FFC3B8EDA8056A73E0DA0AD /* GULAppDelegateSwizzler.m */, + C862A133C850FCC2A5AC443C40AACDC9 /* GULAppDelegateSwizzler_Private.h */, + 823B27EB6C90A8DF436CF5BFAB08D6FC /* GULLoggerCodes.h */, ); - name = Frameworks; + name = AppDelegateSwizzler; sourceTree = ""; }; - ED2A35AE8A334B3ADE6FCD5C8500FF08 /* leveldb-library */ = { + F1B9DF58B250628F89DC24FF897BE93E /* FirebaseInstanceID */ = { isa = PBXGroup; children = ( - FFC62241E7D3F9B785BA34A3ABD60C32 /* arena.cc */, - CAE1281821C0F3D5A592ADA9056314FD /* arena.h */, - CEB1A6D2E15931D9A6426F0D838F2051 /* atomic_pointer.h */, - 7D9EC722304B8875B074F58B27860F35 /* block.cc */, - 93BD23B1719164B1BA99AD449BFB4F7C /* block.h */, - 42314F67CFAC6EF9F955C8F723D3E712 /* block_builder.cc */, - A7D7811A970E75D3A40194BD1010A88E /* block_builder.h */, - 2F92434E6CBF763A6981A36DCF3C6CBA /* bloom.cc */, - 012DCBB1860411CFE7E93C8BD2A2A5D9 /* builder.cc */, - 4788688CF0CE231B1EE91CA4C66DE9C7 /* builder.h */, - 915CEDFD3F25E8A85780D0CB51B28FFE /* c.cc */, - B358DCEE74F597D184284C5A367C51DB /* c.h */, - 628681DC6DCF623E2C4F5C597451DAC9 /* cache.cc */, - 4602C49799BE4C15D8BF3C6630FFED3D /* cache.h */, - EB404E3AE01D2233399D6FFD727D3013 /* coding.cc */, - E8C9FC7977BD96BA45827A2EDC032919 /* coding.h */, - 521D986356B47C8F71AC1D9BB3AD3A59 /* comparator.cc */, - E04DC52ADCF63D8C857F65AB94B53E20 /* comparator.h */, - E29CE32AF669DF14CEE4919254519DED /* crc32c.cc */, - DF59051E24CC1EBE768ED9CA92B5F651 /* crc32c.h */, - 4EA54BE66D07A4A6F0A572AF6F7A346B /* db.h */, - DF463DACC72310305C714B74983C46E7 /* db_impl.cc */, - 98957EAE65ACCC19A5F7CD148E1FCA1D /* db_impl.h */, - B0ED57517179202968E9ECB7CA732AEE /* db_iter.cc */, - D3D061F710CC7C80DF7AC37C5706E980 /* db_iter.h */, - B07870B373F3CBE57521745E377A615A /* dbformat.cc */, - D18B977342D4EC54BA1DF3E600B21830 /* dbformat.h */, - 3499199ED2492A1364D7DBA0C9951C96 /* dumpfile.cc */, - 54AF748D8D2E4CDFDE63B41270B35A99 /* dumpfile.h */, - 3BD9E0ADF784A90BF5D483F071D0CF52 /* env.cc */, - 09A2C7D544D38D59BE7DCC0CBF034170 /* env.h */, - 1CB28B86C0A673441E2D7834FF2F232E /* env_posix.cc */, - AFA4D39C812A9736A68FE499ADB798E1 /* env_posix_test_helper.h */, - 7480390585D32FB07CCAA8D8D2E506C6 /* filename.cc */, - A41503DC80A14FF4489AEDEEC437489F /* filename.h */, - 7DA88A30E7E799C090298B34FC0BAA84 /* filter_block.cc */, - BD4B42E0ED51BB8BD4A18734F5E2E449 /* filter_block.h */, - 8AFF0DA3FC96DC327460FCABA2816CD1 /* filter_policy.cc */, - D13B176CC357231CD837F1EED6B94784 /* filter_policy.h */, - 429628FD6B8399FA948693B4465FD784 /* format.cc */, - 85955A814652E06984348A0C9379F705 /* format.h */, - 0ED5BC2EF88081583C4E15A8444B903F /* hash.cc */, - D039A2D1130015780787D9A546120CB7 /* hash.h */, - 767E877685EF58546F3E47CC6FCDDD20 /* histogram.cc */, - 11A9F6F3EB1A14BF4FCDE1BE6766143C /* histogram.h */, - 110127A52F503DFD6F1ED87E8E9858C4 /* iterator.cc */, - 87E79BC1CC8862982040BD0CDA144791 /* iterator.h */, - 28623D9EA3BBD2255FAE8311D5A470CE /* iterator_wrapper.h */, - 1BF9C9BEC1B6A090CE85975F35E2EA97 /* log_format.h */, - 8AA7A7BB1ADF6CCB1592E64A53DB1C62 /* log_reader.cc */, - 552CA76DD960E7EF0D64D3FED5113F04 /* log_reader.h */, - 123C1445BFCD6A0CEE58CB89197CDA15 /* log_writer.cc */, - 1A3F76A9E21C49BF7DE1D75C742EFFCE /* log_writer.h */, - FC415D305974B59DFE20B392EA716AA5 /* logging.cc */, - 30AFDBDCD2ADDD1487E0FE6F8CB6C197 /* logging.h */, - A5D8AECCD534F19DA1C837E5E89F4AA7 /* memtable.cc */, - 49F77B40E347C0DC006248A2A7FD9494 /* memtable.h */, - F8C272FE47B0C64B7D5A896145B91EC3 /* merger.cc */, - C2CFC3A8F5DED03F79A3A9CCC5F616BA /* merger.h */, - C65122F2E19AF2939847FF097DF91FA1 /* mutexlock.h */, - 2C70A4A5A6D491676D0FE160136A10F8 /* options.cc */, - 0B446CFAA2A92C673B94D5B06FF456FF /* options.h */, - C0D3FB48B794C26E16117F36DF9EA181 /* port.h */, - 90F49D51CA2CDDBF412B34C8711C1F71 /* port_example.h */, - DE8BE569494EB4B7D0B72BEF1496CE12 /* port_posix.cc */, - 7987A65BF9C5D489F6720587C1B684FB /* port_posix.h */, - 3AC4C6979697B15479E52EA18869C2AD /* port_posix_sse.cc */, - 4528E911482F02D6B167BC48739318F9 /* posix_logger.h */, - BD0AA7F87323EC834D552AF7908B0D9B /* random.h */, - 0B07560A5FF24DBBF4C333188ED8B96B /* repair.cc */, - F08F5A0C3C4176826AC4589549E65E77 /* skiplist.h */, - AEC92DCCE9B21D31F8874DD81009CE31 /* slice.h */, - B3D99B760348706303660256794EA8A7 /* snapshot.h */, - 6AE2B22B7C9383FECC1A6F3AA1398038 /* status.cc */, - C94CCC58A07AEA281BD8D8AF197274FE /* status.h */, - 628E2099C62D25FD31A1D06C75984156 /* table.cc */, - C5F6AD964ACB0DF753728FB210CC1BED /* table.h */, - DCDD3C4A494F2385C46C74B4142EEC52 /* table_builder.cc */, - A9329D0C552C07997A26E29D47F04888 /* table_builder.h */, - 4E3628BD922E252A7EE129FE06583EA4 /* table_cache.cc */, - EE0D085AF1B47CA9D5182E827784743B /* table_cache.h */, - 0B4A2EB3FC46C0E3AFE983EBDAC4F6F3 /* testharness.cc */, - 5710715A6AACECF57B21EFC971B59C87 /* testharness.h */, - 665CD3D48831A201BBF48AC1CDE6808C /* testutil.cc */, - E9E99C2533E722AF92F81FBEC8C88B43 /* testutil.h */, - A0737E36676AA3ADD7D109D3A5BB75DE /* thread_annotations.h */, - A39B5CC64FD68103B773F6FBF2B6EAFB /* two_level_iterator.cc */, - 32BB67263669321F679A2EF1CA3D50BA /* two_level_iterator.h */, - E3082EDA0CA6913A70074379EF196C21 /* version_edit.cc */, - 288D551F2BC828C4B6142F138901B9B0 /* version_edit.h */, - CBA49F08492728C7CEF722B4461A7682 /* version_set.cc */, - 93143D7AC74AFDCAB18774F95C87F1EF /* version_set.h */, - FF5122C1006A0D131CDFD3F9267E559B /* write_batch.cc */, - 6B54156F39B2ACCF20AC8C43ACB97EE9 /* write_batch.h */, - ABA464C82DC9E70F1A6864E2BD8A2DF9 /* write_batch_internal.h */, - 645AD7DD76A3415C8F2EBA45CB5479F3 /* Support Files */, + C56AFBFB2CD709E1E9A7FB377080D7AC /* FirebaseInstanceID.h */, + 1DDA7A7A84EFD62B9CFDE223A1373E5D /* FIRIMessageCode.h */, + B36167953A8F20E22C644F8E6FDCFE98 /* FIRInstanceID.h */, + 465D39E042CCA7696BF7C7C669FE3923 /* FIRInstanceID.m */, + 268C0766CD95F26546BE64D1439A0AC4 /* FIRInstanceID+Private.h */, + 3B5557E5C870ACF41DBE53EA8EB0227D /* FIRInstanceID+Private.m */, + C1494BD04285E60B10768944E32FBA7D /* FIRInstanceID+Testing.h */, + 75F7F147F931715DA097172FF2AAB6DE /* FIRInstanceIDAPNSInfo.h */, + 3F3AC56D0FBE4AEEBAD138303F62A2B4 /* FIRInstanceIDAPNSInfo.m */, + 4DF6CDFBD2BB60EE93A1B7A9A1822070 /* FIRInstanceIDAuthKeyChain.h */, + F56D47C5FC2D489D6B455DF3F1743D3D /* FIRInstanceIDAuthKeyChain.m */, + 8FB25F333449D3F5C9EFE8B1F27D97C1 /* FIRInstanceIDAuthService.h */, + F74B5E05BBD455C1A494EA7D381CD556 /* FIRInstanceIDAuthService.m */, + AD36EBDEB620D0B834B1FF1741D2A211 /* FIRInstanceIDBackupExcludedPlist.h */, + F63D4FB0A83317B4538A3558BBAEBBAE /* FIRInstanceIDBackupExcludedPlist.m */, + F59FC4CDC515A7A135A5453A3318AFC0 /* FIRInstanceIDCheckinPreferences.h */, + 91DDB68E7D3FBB14E5E6DDDF197BD072 /* FIRInstanceIDCheckinPreferences.m */, + 43F044C323CCBA3DE722E72D00D40557 /* FIRInstanceIDCheckinPreferences+Internal.h */, + 54B5CF3EFFB7F1331CE609B2514E7293 /* FIRInstanceIDCheckinPreferences+Internal.m */, + FC16310A0B93B1946DE1A5AB7F1D06B6 /* FIRInstanceIDCheckinPreferences_Private.h */, + BE7F9DC056277D8897B8A38FFCCC84B3 /* FIRInstanceIDCheckinService.h */, + B2298071D9418C7806D1E0DC98CADC31 /* FIRInstanceIDCheckinService.m */, + 80A21FCE99E4AC7AD1FE06C89F0A325F /* FIRInstanceIDCheckinStore.h */, + EF945AC2C1675239C11C0A86774C17D8 /* FIRInstanceIDCheckinStore.m */, + CA7809CF80F7222E1A17CF65509B3365 /* FIRInstanceIDConstants.h */, + 80EB1E4270653CFEC9AEBEDDFA2391DF /* FIRInstanceIDConstants.m */, + 745B383D181FBC0B472D2B90CF6B55BE /* FIRInstanceIDDefines.h */, + 9B1B9D48BDCE8D0A06AB7491CAD8B1B8 /* FIRInstanceIDKeychain.h */, + AE25DB2DFD74BD49CD57DA7C895F93E4 /* FIRInstanceIDKeychain.m */, + 496BC0A261A8D8F223E3BEA98308B095 /* FIRInstanceIDKeyPair.h */, + 72C01B922DCF2ED986DF1FD8B7B572B5 /* FIRInstanceIDKeyPair.m */, + 8B53E726C17D99EA31B5A21E28AD140E /* FIRInstanceIDKeyPairStore.h */, + 1E25CD3D87E41B8CBB5FC635F8DC6284 /* FIRInstanceIDKeyPairStore.m */, + 39BBD0983A1DBD4FB00B5F9144069297 /* FIRInstanceIDKeyPairUtilities.h */, + 27DD21B21DA8F00AD11441EC732B17EB /* FIRInstanceIDKeyPairUtilities.m */, + 9981BD1803C2C9DD386C23B07E43BC3A /* FIRInstanceIDLogger.h */, + 44CA81B70969DA8F10AC134D5BE2A7E2 /* FIRInstanceIDLogger.m */, + 41E6BC65E9A612FAA83EAA8D81B6EFC9 /* FIRInstanceIDStore.h */, + 9767B5B8D7BE7971EF665A40B2BBFCD1 /* FIRInstanceIDStore.m */, + 2D7906648734D1513811314CA83E4AFB /* FIRInstanceIDStringEncoding.h */, + 8CE43957BD7652CA8005140D23C6C8B7 /* FIRInstanceIDStringEncoding.m */, + 834E58E243B949D40238A851996FE070 /* FIRInstanceIDTokenDeleteOperation.h */, + EF23EC72B19FD1C9F36192D8BCF91B8C /* FIRInstanceIDTokenDeleteOperation.m */, + 7638732A429BFFC4A6E64402B25A8276 /* FIRInstanceIDTokenFetchOperation.h */, + 935AD241C3CF4EB6D800AD2229F77247 /* FIRInstanceIDTokenFetchOperation.m */, + 9034BB2B6F23DDCA14C9C86712E63D80 /* FIRInstanceIDTokenInfo.h */, + E0EB817F97401681AB4723C0006D5FF8 /* FIRInstanceIDTokenInfo.m */, + 1F8DECF36944D1A7DA5C57BABB3544D0 /* FIRInstanceIDTokenManager.h */, + D258D14BC79B5BE81F018225D1617EEB /* FIRInstanceIDTokenManager.m */, + 5A8478CB94C0CBD8D1F623F1D75E313C /* FIRInstanceIDTokenOperation.h */, + 2273428CFACABD45372FCDD26B3E42BF /* FIRInstanceIDTokenOperation.m */, + 4ADEEE081084D1060A001A6345AA03B3 /* FIRInstanceIDTokenOperation+Private.h */, + 6113477F284AD5B9CA83A621BDE057B5 /* FIRInstanceIDTokenStore.h */, + D1D3F503A583A37050B21FCFF0ED4BE3 /* FIRInstanceIDTokenStore.m */, + D70E831E909C98789ED151FBDEDC5905 /* FIRInstanceIDURLQueryItem.h */, + 4C56BB89C4FFDB1C03F4EEA1A6A008B9 /* FIRInstanceIDURLQueryItem.m */, + F097893F18B1DF9C88D4EC9460602A8F /* FIRInstanceIDUtilities.h */, + 042B637C5CEB40B305A32416F8CDFD32 /* FIRInstanceIDUtilities.m */, + 9EEC37D3DF9487EE47D79355154E1FB3 /* FIRInstanceIDVersionUtilities.h */, + 7910423CDDCAF64471AB4500EC6A8359 /* FIRInstanceIDVersionUtilities.m */, + 023A1920CEFA87DC23833B3C3DC6509B /* NSError+FIRInstanceID.h */, + 228A010ACC4B98D785EBE217AE830C42 /* NSError+FIRInstanceID.m */, + BE74C7A12EC5DBD05AA9CB923872F911 /* Support Files */, ); - path = "leveldb-library"; + name = FirebaseInstanceID; + path = FirebaseInstanceID; sourceTree = ""; }; - F21C9B79F421789A6692929D2348E3EA /* GoogleUtilities */ = { + F39A4AFAA6ACB26FC1F8E770BD3B034E /* Frameworks */ = { isa = PBXGroup; children = ( - 63ECC18D5A0A76B3B434ADBA7C21CA2B /* AppDelegateSwizzler */, - E288D85D35E36260425E035A83811A11 /* Environment */, - FAC9BB44898274DFA2CAF9CAE5463AB5 /* Logger */, - E7149370429FEA295C20CC7D21E0F705 /* MethodSwizzler */, - 41D3A6358B8A64218EB8D7ECE20D1783 /* Network */, - 43BD2BE4F313EF9A465116E89CCB0F41 /* NSData+zlib */, - A42836FE85436C0FEF096AD732A14773 /* Reachability */, - 28FDDAEC385EA16F0FB6DE25084D427E /* Support Files */, - 1C16374DEBA402712F4539FC80B83CCF /* UserDefaults */, + 14C432492587F63C36D7F4B465EF2AB0 /* FIRAnalyticsConnector.framework */, + 717D748DAD2974BACC65632C39A40872 /* FirebaseAnalytics.framework */, + 5F4EC60FE8DD9C6B98649A0650D5D547 /* FirebaseCoreDiagnostics.framework */, ); - path = GoogleUtilities; + name = Frameworks; sourceTree = ""; }; - F46517D91FD8FCDA658957CF000D36DE /* Support Files */ = { + F8861894079B10CD056CE4C4F5B75D5E /* Support Files */ = { isa = PBXGroup; children = ( - C17803F1D2CDD755AD99D8CDD6581D0C /* FirebaseCore.modulemap */, - 8317FA07B1B0741CB70BDC7D019B36FA /* FirebaseCore.xcconfig */, - CB06D80565B3F13525AE067BE79D5E5B /* FirebaseCore-dummy.m */, - D8754DDAFD21CE11513C8DC98BC6CC5F /* FirebaseCore-Info.plist */, - 4B4D490C9D859736793136D2F6C343D0 /* FirebaseCore-umbrella.h */, + FEF695086157C39C4DED2CF08162B962 /* FirebaseStorage.modulemap */, + C9E1395EE3171D0131510C3D3C98448E /* FirebaseStorage.xcconfig */, + 0BA57D4835B7DD382D82146F5CBDFFBE /* FirebaseStorage-dummy.m */, + 6ADF7FAAA48A0C1464979E8D21822E7B /* FirebaseStorage-Info.plist */, + 9CF1D03F8C80D00A99EBC6CD5FA4146E /* FirebaseStorage-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/FirebaseCore"; + path = "../Target Support Files/FirebaseStorage"; sourceTree = ""; }; - FAC9BB44898274DFA2CAF9CAE5463AB5 /* Logger */ = { + F8CC91EF82BEA2E9DFA4BC7DD088E94E /* Support Files */ = { isa = PBXGroup; children = ( - 2A0DEFBE10B18D143EEB4944BA972AA3 /* GULLogger.h */, - 65612DBC517D0E3AEBD8511541D35945 /* GULLogger.m */, - 59EE4BB679FF846595EC77716FFDD84B /* GULLoggerLevel.h */, + 66733B4CFEA3915FADBAC9CFDFC4D439 /* FirebaseCore.modulemap */, + 9429DEE5FBDD34FABDBD922F6F269A24 /* FirebaseCore.xcconfig */, + DF437F214E11B23760C1A20559F8DD21 /* FirebaseCore-dummy.m */, + 6AA6140F195ADB3E8A0660C07EE7C065 /* FirebaseCore-Info.plist */, + 9DB244C96606BCFED8AF2BA281C1DE1C /* FirebaseCore-umbrella.h */, ); - name = Logger; + name = "Support Files"; + path = "../Target Support Files/FirebaseCore"; sourceTree = ""; }; FF148B7C87A844C6C60CCF282AFDAFE0 /* Targets Support Files */ = { @@ -3493,14 +3624,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4F3B31E860404330413DA6B70137D2A5 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - C5E83F359E59D15858A90C3011317B43 /* Pods-FoodApp-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 4FE0FD0D4BB1E7B017F8A73941526DB4 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -3543,11 +3666,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 9C5D1F0E39CA57E4E7A6F2347E0FBA8F /* Headers */ = { + 5FD2C029FC627D78FBEBD0C3829ACA56 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 516D66C94C762328B0F2F0A0AD115D5A /* SkyFloatingLabelTextField-umbrella.h in Headers */, + 5677C54BF14ABA45675F2DEB98AFD0D1 /* IQKeyboardManagerSwift-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 64B66CF4D6E46B3A0B634CE2D34E8AD7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 2D4F683D8B2E4586C84273AB4B179819 /* Pods-FoodApp-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3701,6 +3832,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + F1ADC1548623B0AF25F65B3B0B7EA28A /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B0716A5829B0FB4C908E5C171D387EE8 /* SkyFloatingLabelTextField-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -3723,7 +3862,7 @@ ); name = FirebaseAuth; productName = FirebaseAuth; - productReference = 6BA47EE4A7C428287C63AD7B204841A8 /* FirebaseAuth.framework */; + productReference = 4EDB9A2EE37A411045065371CF5DE9BB /* FirebaseAuth.framework */; productType = "com.apple.product-type.framework"; }; 30A9D3CC694691B7294567E895BE269F /* FirebaseCore */ = { @@ -3742,7 +3881,40 @@ ); name = FirebaseCore; productName = FirebaseCore; - productReference = 4FBC67076469FA78E9BBD64611124BB8 /* FirebaseCore.framework */; + productReference = 35A985175C33AFA5BAF020A6EFF85A8F /* FirebaseCore.framework */; + productType = "com.apple.product-type.framework"; + }; + 41F8EE79A4B48B36D0368EC1BD823932 /* Pods-FoodApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 828009159C078721008FB2B27076B7DB /* Build configuration list for PBXNativeTarget "Pods-FoodApp" */; + buildPhases = ( + 64B66CF4D6E46B3A0B634CE2D34E8AD7 /* Headers */, + 437351A03C17877B81E4A0B006E7C1E7 /* Sources */, + D5FF6454FE279F9DCCD68C0EF7D51647 /* Frameworks */, + D1A86E2F9AE1959CC463F6A3163D2838 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 44A48F82D7317A309DF75316725E78DF /* PBXTargetDependency */, + 8E9D2B958831C8F0DFCB92A26650C5DB /* PBXTargetDependency */, + 8C56870623A51869FBE9C5E199E8CF12 /* PBXTargetDependency */, + 327FA53C0445E3C27F646AC55F1D6BE7 /* PBXTargetDependency */, + DE6657284D3F6031231CADCB26A3FF35 /* PBXTargetDependency */, + 78C4B0B72B45DD43A5F98CC119576D53 /* PBXTargetDependency */, + DF94E64678EBE5E7D878EC047F0FCED4 /* PBXTargetDependency */, + 3DEEDE071459DAEEC8F06BF4DAB5F06B /* PBXTargetDependency */, + 5E836D55043BD1EE0A8DE5F9CD2508EC /* PBXTargetDependency */, + 4D0B038BAB89795BE27BC5782C63D699 /* PBXTargetDependency */, + 93BB79B077A852AC64DF198D8D7C4767 /* PBXTargetDependency */, + B8C810373612051849FFB89DF580F0DB /* PBXTargetDependency */, + D205DAEE98A940FC25A05E76376CC1CD /* PBXTargetDependency */, + 56D33C1BA7E1CA971CF689B40C597057 /* PBXTargetDependency */, + DE4B3BF84E759FEADFFCDD99C4F4A56F /* PBXTargetDependency */, + ); + name = "Pods-FoodApp"; + productName = "Pods-FoodApp"; + productReference = 48A10C37A4C965A474AB90D4EBA1EF95 /* Pods_FoodApp.framework */; productType = "com.apple.product-type.framework"; }; 5EB99C75A86DAE4C7A89C023BED98F0E /* FirebaseInstanceID */ = { @@ -3762,7 +3934,7 @@ ); name = FirebaseInstanceID; productName = FirebaseInstanceID; - productReference = 4D48EBC30356F0473F93B304E8310755 /* FirebaseInstanceID.framework */; + productReference = EEAB4D913F9BB254393ADD3630F960E7 /* FirebaseInstanceID.framework */; productType = "com.apple.product-type.framework"; }; 753F1FE412B4E54E2CCB0A1F23E593DD /* GoogleUtilities */ = { @@ -3780,7 +3952,25 @@ ); name = GoogleUtilities; productName = GoogleUtilities; - productReference = 93F646AF7E43AEB95F008C8A54AF76D3 /* GoogleUtilities.framework */; + productReference = 0F166109264EDEE2ED81825FCC1928DF /* GoogleUtilities.framework */; + productType = "com.apple.product-type.framework"; + }; + 817B051F9391A7F6248FD731537BD85A /* SkyFloatingLabelTextField */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9B826A61F5DE3589441FFB891E21A9C9 /* Build configuration list for PBXNativeTarget "SkyFloatingLabelTextField" */; + buildPhases = ( + F1ADC1548623B0AF25F65B3B0B7EA28A /* Headers */, + 45839BA730C130BBCFC45D01B6881051 /* Sources */, + C4A156FA8BA19CF85336EA8C59F76A38 /* Frameworks */, + 0EEF22B3541C2CAF62259C47CD4D73F2 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SkyFloatingLabelTextField; + productName = SkyFloatingLabelTextField; + productReference = AE21DF376D8F68A67CD3B8D095097691 /* SkyFloatingLabelTextField.framework */; productType = "com.apple.product-type.framework"; }; 88854632735B97DDAB1BDA14A9589AD9 /* FirebaseDatabase */ = { @@ -3801,7 +3991,7 @@ ); name = FirebaseDatabase; productName = FirebaseDatabase; - productReference = B31CA0E260796BFF7ABD942534D365D9 /* FirebaseDatabase.framework */; + productReference = 2C41C04FF1CC495A14B4D51CAF7F82C9 /* FirebaseDatabase.framework */; productType = "com.apple.product-type.framework"; }; 94202C445E4D686A22993FEE010E0FD8 /* nanopb */ = { @@ -3819,57 +4009,7 @@ ); name = nanopb; productName = nanopb; - productReference = 603FF7B49814B47F4C39CAD8BE66ADBC /* nanopb.framework */; - productType = "com.apple.product-type.framework"; - }; - A2703F2AF403B6B7FFAFCA1D0A931F6F /* SkyFloatingLabelTextField */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2EFC6380B5BF3A7326DC54F036AED07C /* Build configuration list for PBXNativeTarget "SkyFloatingLabelTextField" */; - buildPhases = ( - 9C5D1F0E39CA57E4E7A6F2347E0FBA8F /* Headers */, - C0F3B2F023B068767C12812A88585881 /* Sources */, - 8846E0BC73369EC59FEC257CAF49827D /* Frameworks */, - 8C53406C96D55C1E44FEE58400C2314F /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SkyFloatingLabelTextField; - productName = SkyFloatingLabelTextField; - productReference = E8AFCCE76FD7BEF3883C1ADF4A4D215A /* SkyFloatingLabelTextField.framework */; - productType = "com.apple.product-type.framework"; - }; - A97A5C5099C6F3C0CB9B20D9B0C22C51 /* Pods-FoodApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7E0EFD1048717B0C6AB63FBC3B85B5F1 /* Build configuration list for PBXNativeTarget "Pods-FoodApp" */; - buildPhases = ( - 4F3B31E860404330413DA6B70137D2A5 /* Headers */, - B4303B6CDBBE5E797BA6CA4688772BF8 /* Sources */, - D7CA3DC324123337BE1D1C48D2B765E6 /* Frameworks */, - E897BD158EAE58167E6DFE652C84FBBD /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 1872EA24827D45040BF46856EC1088AF /* PBXTargetDependency */, - A75F769C8BCF765D42C53906643E7CF5 /* PBXTargetDependency */, - EB260735F65107C3CC546D6969C8B63B /* PBXTargetDependency */, - 58EBDED18C95052B980988ECC6CD8DBA /* PBXTargetDependency */, - CBB28C0DAD23F752BBF3F4980B72C214 /* PBXTargetDependency */, - D5BDEDEE2715D807BCF8AE8882ACFA1A /* PBXTargetDependency */, - 1EB8B0C3E189E4FCCE65C56DB87C07D2 /* PBXTargetDependency */, - 5731C4C2B53DFAD7C0C42E8C3B7E9B72 /* PBXTargetDependency */, - F0F08B3B4BEF6096C2E71CC1B19AEA03 /* PBXTargetDependency */, - FD00CFA81E0C817149AE55111D90E83C /* PBXTargetDependency */, - 406B8B07EF5D8632455026F99495711D /* PBXTargetDependency */, - EC24FFA96AD3CF33FAD93DDCC98809BE /* PBXTargetDependency */, - 55AEA9579C70714CA0E5727349CD215D /* PBXTargetDependency */, - B703F61B3307CD989420FEEE9841343D /* PBXTargetDependency */, - ); - name = "Pods-FoodApp"; - productName = "Pods-FoodApp"; - productReference = 091E73571875B7E8664786E572F2C27A /* Pods_FoodApp.framework */; + productReference = 2D45242188FE1122A0B16A31C6DE984E /* nanopb.framework */; productType = "com.apple.product-type.framework"; }; BECD1DE73D1DA48926EB37BCEE853ACC /* GTMSessionFetcher */ = { @@ -3887,7 +4027,7 @@ ); name = GTMSessionFetcher; productName = GTMSessionFetcher; - productReference = 7B3779352CAE2C68BB95FDDC3BBDEAF8 /* GTMSessionFetcher.framework */; + productReference = 2EED29DCF463D921818F8E1834076D85 /* GTMSessionFetcher.framework */; productType = "com.apple.product-type.framework"; }; CDBA1591F55E427FD2DE7413CDBB00D8 /* FirebaseStorage */ = { @@ -3908,7 +4048,7 @@ ); name = FirebaseStorage; productName = FirebaseStorage; - productReference = A74CE0437D1733FAB9E082C23D5C551B /* FirebaseStorage.framework */; + productReference = 91038900478D9E4A5521002E8B7705A1 /* FirebaseStorage.framework */; productType = "com.apple.product-type.framework"; }; EADD9F329CC19420FA32FF7ED370E060 /* leveldb-library */ = { @@ -3926,7 +4066,25 @@ ); name = "leveldb-library"; productName = "leveldb-library"; - productReference = 4C8459EA56588BB32331D44B5AE28367 /* leveldb.framework */; + productReference = 674B8835D2F71D02E98DE7760D29A9DE /* leveldb.framework */; + productType = "com.apple.product-type.framework"; + }; + EFF87187B46551C36797F2B899C54212 /* IQKeyboardManagerSwift */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3B91B77FBB13EFD33FB1AE6F88ABA7C5 /* Build configuration list for PBXNativeTarget "IQKeyboardManagerSwift" */; + buildPhases = ( + 5FD2C029FC627D78FBEBD0C3829ACA56 /* Headers */, + 50CEEDE322708ABF7722F6D79CCF256B /* Sources */, + B886D41EF763DE44F455CB7E74E9A560 /* Frameworks */, + DC94709994DB7B9EF675DAE0DB5045E8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = IQKeyboardManagerSwift; + productName = IQKeyboardManagerSwift; + productReference = A9A32DBF40E3746C2C4149C5C0058AD0 /* IQKeyboardManagerSwift.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -3936,18 +4094,17 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0930; - LastUpgradeCheck = 1020; + LastUpgradeCheck = 0930; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = en; + developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, - Base, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = BB5584D5EDBA7495C415399113C1E2F3 /* Products */; + productRefGroup = 62C0CAA675363B5F09D022D666888756 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -3962,15 +4119,23 @@ C3725C4190F8BB9B0A36BCC488FEA7B4 /* GoogleAppMeasurement */, 753F1FE412B4E54E2CCB0A1F23E593DD /* GoogleUtilities */, BECD1DE73D1DA48926EB37BCEE853ACC /* GTMSessionFetcher */, + EFF87187B46551C36797F2B899C54212 /* IQKeyboardManagerSwift */, EADD9F329CC19420FA32FF7ED370E060 /* leveldb-library */, 94202C445E4D686A22993FEE010E0FD8 /* nanopb */, - A97A5C5099C6F3C0CB9B20D9B0C22C51 /* Pods-FoodApp */, - A2703F2AF403B6B7FFAFCA1D0A931F6F /* SkyFloatingLabelTextField */, + 41F8EE79A4B48B36D0368EC1BD823932 /* Pods-FoodApp */, + 817B051F9391A7F6248FD731537BD85A /* SkyFloatingLabelTextField */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 0EEF22B3541C2CAF62259C47CD4D73F2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 1E75F768B1C9481C2802726A00E8E75C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -4013,14 +4178,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 8C53406C96D55C1E44FEE58400C2314F /* Resources */ = { + CA14ABC4A23B4E963EE22752C14057E4 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - CA14ABC4A23B4E963EE22752C14057E4 /* Resources */ = { + D1A86E2F9AE1959CC463F6A3163D2838 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -4034,14 +4199,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E246E810097C39F519CEB57D312CD5FE /* Resources */ = { + DC94709994DB7B9EF675DAE0DB5045E8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + B178B38FCD7F99B07422484FC7FD6861 /* IQKeyboardManager.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E897BD158EAE58167E6DFE652C84FBBD /* Resources */ = { + E246E810097C39F519CEB57D312CD5FE /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -4082,6 +4248,25 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 437351A03C17877B81E4A0B006E7C1E7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 026BF4B84BDDB175F865207140047DBB /* Pods-FoodApp-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 45839BA730C130BBCFC45D01B6881051 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD461DB8BFFAD1552B9715B30053609 /* SkyFloatingLabelTextField-dummy.m in Sources */, + F04CEC891F81DA91CB8B803A64DF7433 /* SkyFloatingLabelTextField.swift in Sources */, + EE619F17670A80954C5ED4F5F514B347 /* SkyFloatingLabelTextFieldWithIcon.swift in Sources */, + 1A365BF1915CBDA6E5B99C1A16A89B1E /* UITextField+fixCaretPosition.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 4D116154911FD14856E52F1A3DCD3FDB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4103,6 +4288,30 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 50CEEDE322708ABF7722F6D79CCF256B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B2A4A7D1BD7C4D59EA0FF0A49163A387 /* IQBarButtonItem.swift in Sources */, + B888C49BC46C9A62CBF03A8FAD7126F1 /* IQInvocation.swift in Sources */, + 633A43974DB81C2CCB1A2C3A7B1BFB37 /* IQKeyboardManager.swift in Sources */, + DD420F096096C518F8E6B44583BF6521 /* IQKeyboardManagerConstants.swift in Sources */, + D8F4B5841E455F5170B1C2FC30863B05 /* IQKeyboardManagerConstantsInternal.swift in Sources */, + 92E9BD908B71CFA1C6EDA2FA86BF1635 /* IQKeyboardManagerSwift-dummy.m in Sources */, + BA61F495C0E45AA2A88D21D51575FF02 /* IQKeyboardReturnKeyHandler.swift in Sources */, + 986EF56798DE2C7C65737AD9334E517D /* IQNSArray+Sort.swift in Sources */, + F0A9F7366B446EDAE4716768BCCADE6C /* IQPreviousNextView.swift in Sources */, + 36DD0B1007BF3C7BFE352704D5C415F7 /* IQTextView.swift in Sources */, + D3A177F9BCAD7042B46E0A36CEDDBF8E /* IQTitleBarButtonItem.swift in Sources */, + D7D49BAE6EAAD5EC2DAF370BCDE783A2 /* IQToolbar.swift in Sources */, + DDAC963022C8D96EBAAD2284780E0276 /* IQUIScrollView+Additions.swift in Sources */, + 4467D1C8AABFA6FC321AC7CD6F327B48 /* IQUITextFieldView+Additions.swift in Sources */, + 4A3294F2FCFF96D15DA6FD2D5D839788 /* IQUIView+Hierarchy.swift in Sources */, + 02FB225950EEA73C12B14A3D74A2096E /* IQUIView+IQKeyboardToolbar.swift in Sources */, + F852C0100AB6D9D2CE3E28FCA487C67E /* IQUIViewController+Additions.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5B18B5CE74AB9DC6BE4920E54455A140 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4366,14 +4575,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - B4303B6CDBBE5E797BA6CA4688772BF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9328BE924D93807600398ECC53D13D96 /* Pods-FoodApp-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; B485C5E49D67E7ED9A29F4ED63C04B71 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4410,17 +4611,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C0F3B2F023B068767C12812A88585881 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8CA8C4D32541AEC9E1B27BF4679E04D9 /* SkyFloatingLabelTextField-dummy.m in Sources */, - F37933CD4E8B605DCFEA51952C8F7535 /* SkyFloatingLabelTextField.swift in Sources */, - EFB64362985AC4BC91B015BFB6E70BE9 /* SkyFloatingLabelTextFieldWithIcon.swift in Sources */, - D9CFAAE60BFD5DDF1114169C0AD0BA42 /* UITextField+fixCaretPosition.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; C724F0F27E5D744964491DEBEF57382C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4491,24 +4681,12 @@ target = 73232C6842ACAD87468B6393BA47375D /* FirebaseAuthInterop */; targetProxy = 9215A3EA46D1B9A634FB2A1F97531E20 /* PBXContainerItemProxy */; }; - 1872EA24827D45040BF46856EC1088AF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Firebase; - target = F2F10A8592399CCF0019051EDD0689D9 /* Firebase */; - targetProxy = D162198C6E8FB585F9224EC8B8C46271 /* PBXContainerItemProxy */; - }; 1E5C874E175AD4B1382AC986DC41007C /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = FirebaseCore; target = 30A9D3CC694691B7294567E895BE269F /* FirebaseCore */; targetProxy = 16E075DDECAEC016BC526C86473456E7 /* PBXContainerItemProxy */; }; - 1EB8B0C3E189E4FCCE65C56DB87C07D2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FirebaseInstanceID; - target = 5EB99C75A86DAE4C7A89C023BED98F0E /* FirebaseInstanceID */; - targetProxy = 500ADBCAB85F28EB8301372F90E19FB3 /* PBXContainerItemProxy */; - }; 30F02018A46F92DAFA6C7AA8FD92BF0F /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = GoogleUtilities; @@ -4527,11 +4705,17 @@ target = BECD1DE73D1DA48926EB37BCEE853ACC /* GTMSessionFetcher */; targetProxy = 443FC4392226B335F564408B603E4C64 /* PBXContainerItemProxy */; }; - 406B8B07EF5D8632455026F99495711D /* PBXTargetDependency */ = { + 327FA53C0445E3C27F646AC55F1D6BE7 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = GoogleUtilities; - target = 753F1FE412B4E54E2CCB0A1F23E593DD /* GoogleUtilities */; - targetProxy = C9BCC4F089502914A699E3DB194842E3 /* PBXContainerItemProxy */; + name = FirebaseAuthInterop; + target = 73232C6842ACAD87468B6393BA47375D /* FirebaseAuthInterop */; + targetProxy = 2353FBEFBD57E7E1E9A5DD23BB8E9B45 /* PBXContainerItemProxy */; + }; + 3DEEDE071459DAEEC8F06BF4DAB5F06B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FirebaseStorage; + target = CDBA1591F55E427FD2DE7413CDBB00D8 /* FirebaseStorage */; + targetProxy = 3858753E44787E52377FEE9034E8CAEE /* PBXContainerItemProxy */; }; 438895BEEF1778FCA506D735980294C8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -4539,6 +4723,12 @@ target = 30A9D3CC694691B7294567E895BE269F /* FirebaseCore */; targetProxy = 82666B38F0742937A176BAAB87412EA5 /* PBXContainerItemProxy */; }; + 44A48F82D7317A309DF75316725E78DF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Firebase; + target = F2F10A8592399CCF0019051EDD0689D9 /* Firebase */; + targetProxy = EBE720C2CE92BF66C8644C4269E17B35 /* PBXContainerItemProxy */; + }; 46DDFDA0B3335233087629754E7A1D80 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = FirebaseAuthInterop; @@ -4551,17 +4741,17 @@ target = 30A9D3CC694691B7294567E895BE269F /* FirebaseCore */; targetProxy = 29A971A669BFA52F8E0A9C7D74229BC0 /* PBXContainerItemProxy */; }; - 514DC1692B9BAF0396255F1B00D50377 /* PBXTargetDependency */ = { + 4D0B038BAB89795BE27BC5782C63D699 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "leveldb-library"; - target = EADD9F329CC19420FA32FF7ED370E060 /* leveldb-library */; - targetProxy = 5F080DB888D555C0C6DF3817B58B2754 /* PBXContainerItemProxy */; + name = GoogleAppMeasurement; + target = C3725C4190F8BB9B0A36BCC488FEA7B4 /* GoogleAppMeasurement */; + targetProxy = BE6F24F480AE90E564C71FFB60CF31CA /* PBXContainerItemProxy */; }; - 55AEA9579C70714CA0E5727349CD215D /* PBXTargetDependency */ = { + 514DC1692B9BAF0396255F1B00D50377 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "leveldb-library"; target = EADD9F329CC19420FA32FF7ED370E060 /* leveldb-library */; - targetProxy = BE78C3BE96D4DDDA73F9E48430FD905C /* PBXContainerItemProxy */; + targetProxy = 5F080DB888D555C0C6DF3817B58B2754 /* PBXContainerItemProxy */; }; 55D05CD2ABA79B5E11E94AADF1A8D64C /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -4569,17 +4759,17 @@ target = 5EB99C75A86DAE4C7A89C023BED98F0E /* FirebaseInstanceID */; targetProxy = 60F619BAA56701DEF3F1C4C7681841DA /* PBXContainerItemProxy */; }; - 5731C4C2B53DFAD7C0C42E8C3B7E9B72 /* PBXTargetDependency */ = { + 56D33C1BA7E1CA971CF689B40C597057 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FirebaseStorage; - target = CDBA1591F55E427FD2DE7413CDBB00D8 /* FirebaseStorage */; - targetProxy = 5E90BF134BE17500E659255112CD1F5C /* PBXContainerItemProxy */; + name = "leveldb-library"; + target = EADD9F329CC19420FA32FF7ED370E060 /* leveldb-library */; + targetProxy = 2D28BF1315862602DA8DD47CF23230A2 /* PBXContainerItemProxy */; }; - 58EBDED18C95052B980988ECC6CD8DBA /* PBXTargetDependency */ = { + 5E836D55043BD1EE0A8DE5F9CD2508EC /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FirebaseAuthInterop; - target = 73232C6842ACAD87468B6393BA47375D /* FirebaseAuthInterop */; - targetProxy = D7D43C9F3F2404973B191B9AD25BE7A9 /* PBXContainerItemProxy */; + name = GTMSessionFetcher; + target = BECD1DE73D1DA48926EB37BCEE853ACC /* GTMSessionFetcher */; + targetProxy = 21CCBF4A492A92727D1A216D580D610B /* PBXContainerItemProxy */; }; 6016A23C4D211710F18365081DA20F8F /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -4593,12 +4783,30 @@ target = C3725C4190F8BB9B0A36BCC488FEA7B4 /* GoogleAppMeasurement */; targetProxy = D24AFDB998D5F69E10C8D0D2C05F4FDB /* PBXContainerItemProxy */; }; + 78C4B0B72B45DD43A5F98CC119576D53 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FirebaseDatabase; + target = 88854632735B97DDAB1BDA14A9589AD9 /* FirebaseDatabase */; + targetProxy = 4A95E9F3ED904FC81777B0F3A6E56ED1 /* PBXContainerItemProxy */; + }; 7EC2E2E0837875CF55C77255CEDE836A /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = GTMSessionFetcher; target = BECD1DE73D1DA48926EB37BCEE853ACC /* GTMSessionFetcher */; targetProxy = A3614E40B45BDEE5BDEDDDD70EB503F1 /* PBXContainerItemProxy */; }; + 8C56870623A51869FBE9C5E199E8CF12 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FirebaseAuth; + target = 2C66BBA2E66E4A6713FD27179FA103ED /* FirebaseAuth */; + targetProxy = 351CF3A350B907615E1CEF6387B2C781 /* PBXContainerItemProxy */; + }; + 8E9D2B958831C8F0DFCB92A26650C5DB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FirebaseAnalytics; + target = 688C54B6BB608137AE3787B5304E54EE /* FirebaseAnalytics */; + targetProxy = 91057D468677D911765E0AB1DDA6340F /* PBXContainerItemProxy */; + }; 924026B6437C673D5EE3CA3EC4EC3586 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = nanopb; @@ -4611,11 +4819,11 @@ target = 688C54B6BB608137AE3787B5304E54EE /* FirebaseAnalytics */; targetProxy = 71FDC4F8015BFCB076D53224598B36BF /* PBXContainerItemProxy */; }; - A75F769C8BCF765D42C53906643E7CF5 /* PBXTargetDependency */ = { + 93BB79B077A852AC64DF198D8D7C4767 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FirebaseAnalytics; - target = 688C54B6BB608137AE3787B5304E54EE /* FirebaseAnalytics */; - targetProxy = A98138C43FBFB707206C7FCFADE53381 /* PBXContainerItemProxy */; + name = GoogleUtilities; + target = 753F1FE412B4E54E2CCB0A1F23E593DD /* GoogleUtilities */; + targetProxy = C431D9E0596F1B0D9F71F623E3AEF84B /* PBXContainerItemProxy */; }; A93CCEE77F73CC7BDAB79CCAD3859E4F /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -4623,18 +4831,18 @@ target = CDBA1591F55E427FD2DE7413CDBB00D8 /* FirebaseStorage */; targetProxy = 2CE7AA7006596CB9B0CD257206C8EE34 /* PBXContainerItemProxy */; }; - B703F61B3307CD989420FEEE9841343D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = nanopb; - target = 94202C445E4D686A22993FEE010E0FD8 /* nanopb */; - targetProxy = 0DD967FA3A049F7B3B05906530E81518 /* PBXContainerItemProxy */; - }; B7DF11369A11E020B6B683022F768132 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = nanopb; target = 94202C445E4D686A22993FEE010E0FD8 /* nanopb */; targetProxy = B66C844352CDAD87719C2087FF181D59 /* PBXContainerItemProxy */; }; + B8C810373612051849FFB89DF580F0DB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = IQKeyboardManagerSwift; + target = EFF87187B46551C36797F2B899C54212 /* IQKeyboardManagerSwift */; + targetProxy = FAE086BADADFDFDF801EDC2A309749B9 /* PBXContainerItemProxy */; + }; BDF3D3D03A284E13601DD0271C0F1FCB /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = FirebaseAuthInterop; @@ -4647,17 +4855,29 @@ target = 753F1FE412B4E54E2CCB0A1F23E593DD /* GoogleUtilities */; targetProxy = 369E8CF0B02058756C72577C00E20596 /* PBXContainerItemProxy */; }; - CBB28C0DAD23F752BBF3F4980B72C214 /* PBXTargetDependency */ = { + D205DAEE98A940FC25A05E76376CC1CD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SkyFloatingLabelTextField; + target = 817B051F9391A7F6248FD731537BD85A /* SkyFloatingLabelTextField */; + targetProxy = E50DE41D58182196EF7F8CFFC832E431 /* PBXContainerItemProxy */; + }; + DE4B3BF84E759FEADFFCDD99C4F4A56F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = nanopb; + target = 94202C445E4D686A22993FEE010E0FD8 /* nanopb */; + targetProxy = 729E8430B59833F8CF43E9975FEA7D4B /* PBXContainerItemProxy */; + }; + DE6657284D3F6031231CADCB26A3FF35 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = FirebaseCore; target = 30A9D3CC694691B7294567E895BE269F /* FirebaseCore */; - targetProxy = 43284EDFF3FAD908445B233470B6F5D5 /* PBXContainerItemProxy */; + targetProxy = B7DC4503920B0C3065637C14E31DD169 /* PBXContainerItemProxy */; }; - D5BDEDEE2715D807BCF8AE8882ACFA1A /* PBXTargetDependency */ = { + DF94E64678EBE5E7D878EC047F0FCED4 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FirebaseDatabase; - target = 88854632735B97DDAB1BDA14A9589AD9 /* FirebaseDatabase */; - targetProxy = 9CCB59517C9F02543CD17E7D5AD9C66F /* PBXContainerItemProxy */; + name = FirebaseInstanceID; + target = 5EB99C75A86DAE4C7A89C023BED98F0E /* FirebaseInstanceID */; + targetProxy = 000FE57DC8D81B30BD2328DC2A1D9531 /* PBXContainerItemProxy */; }; E9F87F9F74AAD926E8F22967EE866259 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -4665,73 +4885,18 @@ target = 753F1FE412B4E54E2CCB0A1F23E593DD /* GoogleUtilities */; targetProxy = B22886D098C5B23B4EE1D12709D4E9CF /* PBXContainerItemProxy */; }; - EB260735F65107C3CC546D6969C8B63B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FirebaseAuth; - target = 2C66BBA2E66E4A6713FD27179FA103ED /* FirebaseAuth */; - targetProxy = BEA92C4C19FE9B82516E9507BC9F4CBF /* PBXContainerItemProxy */; - }; - EC24FFA96AD3CF33FAD93DDCC98809BE /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SkyFloatingLabelTextField; - target = A2703F2AF403B6B7FFAFCA1D0A931F6F /* SkyFloatingLabelTextField */; - targetProxy = A90FDFF7CA3EA8DDAA12C70945A741B8 /* PBXContainerItemProxy */; - }; ED2B1E490799BEB4DC7CED9084AFDA22 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FirebaseCore; - target = 30A9D3CC694691B7294567E895BE269F /* FirebaseCore */; - targetProxy = 18FAA50EC3CA458A6C194D56B52BDCB8 /* PBXContainerItemProxy */; - }; - F0F08B3B4BEF6096C2E71CC1B19AEA03 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = GTMSessionFetcher; - target = BECD1DE73D1DA48926EB37BCEE853ACC /* GTMSessionFetcher */; - targetProxy = 1550644656C31C7338CA056D1E67BBBE /* PBXContainerItemProxy */; - }; - FD00CFA81E0C817149AE55111D90E83C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = GoogleAppMeasurement; - target = C3725C4190F8BB9B0A36BCC488FEA7B4 /* GoogleAppMeasurement */; - targetProxy = F32F1539452CC6DC362E661757F95E62 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 0379BEB1A339BC6C7318D924C5E8819C /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 94ED34DD4D554FF493BBCE670219F6C5 /* SkyFloatingLabelTextField.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField.modulemap"; - PRODUCT_MODULE_NAME = SkyFloatingLabelTextField; - PRODUCT_NAME = SkyFloatingLabelTextField; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; + isa = PBXTargetDependency; + name = FirebaseCore; + target = 30A9D3CC694691B7294567E895BE269F /* FirebaseCore */; + targetProxy = 18FAA50EC3CA458A6C194D56B52BDCB8 /* PBXContainerItemProxy */; }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ 121058F4C5733CFB039E59A5B3E782FA /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CE33D15441E97C4EFD8EB66C2297BBB4 /* FirebaseStorage.xcconfig */; + baseConfigurationReference = C9E1395EE3171D0131510C3D3C98448E /* FirebaseStorage.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4745,7 +4910,11 @@ INFOPLIST_FILE = "Target Support Files/FirebaseStorage/FirebaseStorage-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/FirebaseStorage/FirebaseStorage.modulemap"; PRODUCT_MODULE_NAME = FirebaseStorage; @@ -4762,7 +4931,7 @@ }; 16F27A64D201F3F9242B71A1AC4F6D16 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8317FA07B1B0741CB70BDC7D019B36FA /* FirebaseCore.xcconfig */; + baseConfigurationReference = 9429DEE5FBDD34FABDBD922F6F269A24 /* FirebaseCore.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4776,7 +4945,11 @@ INFOPLIST_FILE = "Target Support Files/FirebaseCore/FirebaseCore-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/FirebaseCore/FirebaseCore.modulemap"; PRODUCT_MODULE_NAME = FirebaseCore; @@ -4794,12 +4967,15 @@ }; 1B7798C0516443C02EB9FE28466215F4 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8587842234E12AB08CD40DA275168C06 /* Firebase.xcconfig */; + baseConfigurationReference = DF5AB584FF1DD6E115FE19A0878FC416 /* Firebase.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -4872,7 +5048,7 @@ }; 45D341C8A5F08D6C33171104C0E88C06 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CE33D15441E97C4EFD8EB66C2297BBB4 /* FirebaseStorage.xcconfig */; + baseConfigurationReference = C9E1395EE3171D0131510C3D3C98448E /* FirebaseStorage.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4886,7 +5062,11 @@ INFOPLIST_FILE = "Target Support Files/FirebaseStorage/FirebaseStorage-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/FirebaseStorage/FirebaseStorage.modulemap"; PRODUCT_MODULE_NAME = FirebaseStorage; @@ -4904,7 +5084,7 @@ }; 48E6D2CC1AEF78E1736FFF4FB18E7E4B /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 934C182766A57B59478E2208838394D2 /* FirebaseAuth.xcconfig */; + baseConfigurationReference = 4952791075A7D97CBEC9BD313152C9D7 /* FirebaseAuth.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4918,7 +5098,11 @@ INFOPLIST_FILE = "Target Support Files/FirebaseAuth/FirebaseAuth-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/FirebaseAuth/FirebaseAuth.modulemap"; PRODUCT_MODULE_NAME = FirebaseAuth; @@ -4936,7 +5120,7 @@ }; 5850298B5FE8758CB33B8C4FD221FC56 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0CC07E744C64DBCA25569B0E99624EC1 /* GoogleUtilities.xcconfig */; + baseConfigurationReference = 89C06E7A5B58E6415AF6AF4E0DDD5A10 /* GoogleUtilities.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4951,7 +5135,11 @@ INFOPLIST_FILE = "Target Support Files/GoogleUtilities/GoogleUtilities-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MODULEMAP_FILE = "Target Support Files/GoogleUtilities/GoogleUtilities.modulemap"; PRODUCT_MODULE_NAME = GoogleUtilities; PRODUCT_NAME = GoogleUtilities; @@ -4967,7 +5155,7 @@ }; 5E6C821C9C3260070D256DBC91559A58 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DD4F9D9A3DADB05BADCE88FC17D0D6B9 /* nanopb.xcconfig */; + baseConfigurationReference = 56421B148D6FC3691D1CEF512BAF81D0 /* nanopb.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4982,7 +5170,11 @@ INFOPLIST_FILE = "Target Support Files/nanopb/nanopb-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MODULEMAP_FILE = "Target Support Files/nanopb/nanopb.modulemap"; PRODUCT_MODULE_NAME = nanopb; PRODUCT_NAME = nanopb; @@ -4998,7 +5190,7 @@ }; 638F7EE282CB2B56DA5A1364BC186A05 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0CC07E744C64DBCA25569B0E99624EC1 /* GoogleUtilities.xcconfig */; + baseConfigurationReference = 89C06E7A5B58E6415AF6AF4E0DDD5A10 /* GoogleUtilities.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5013,7 +5205,11 @@ INFOPLIST_FILE = "Target Support Files/GoogleUtilities/GoogleUtilities-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MODULEMAP_FILE = "Target Support Files/GoogleUtilities/GoogleUtilities.modulemap"; PRODUCT_MODULE_NAME = GoogleUtilities; PRODUCT_NAME = GoogleUtilities; @@ -5030,7 +5226,7 @@ }; 646A86686C4EE9BA29579663FA99A472 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A28820B9AAB019B26C0CD13F658FB084 /* leveldb-library.xcconfig */; + baseConfigurationReference = 8205A93740A0400CD4761410BEA3E29E /* leveldb-library.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5045,7 +5241,11 @@ INFOPLIST_FILE = "Target Support Files/leveldb-library/leveldb-library-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MODULEMAP_FILE = "Target Support Files/leveldb-library/leveldb-library.modulemap"; PRODUCT_MODULE_NAME = leveldb; PRODUCT_NAME = leveldb; @@ -5061,7 +5261,7 @@ }; 715FA2CD5250310B733CE0E6FFB02498 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8317FA07B1B0741CB70BDC7D019B36FA /* FirebaseCore.xcconfig */; + baseConfigurationReference = 9429DEE5FBDD34FABDBD922F6F269A24 /* FirebaseCore.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5075,7 +5275,11 @@ INFOPLIST_FILE = "Target Support Files/FirebaseCore/FirebaseCore-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/FirebaseCore/FirebaseCore.modulemap"; PRODUCT_MODULE_NAME = FirebaseCore; @@ -5092,7 +5296,7 @@ }; 71C97830867819AA01C57F26048F75CB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FD73A21C208A102768DF85340F8F8898 /* FirebaseInstanceID.xcconfig */; + baseConfigurationReference = 4D5A00E1825E7F2C7D102757FF908EE0 /* FirebaseInstanceID.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5106,7 +5310,11 @@ INFOPLIST_FILE = "Target Support Files/FirebaseInstanceID/FirebaseInstanceID-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/FirebaseInstanceID/FirebaseInstanceID.modulemap"; PRODUCT_MODULE_NAME = FirebaseInstanceID; @@ -5121,9 +5329,26 @@ }; name = Debug; }; - 782FCC5D243B0E82274A575C120414CB /* Release */ = { + 7B334335D08F44EF6B1DD76279B76FC7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4C0DE29941E9FB4280328365C6FB9909 /* FirebaseAnalytics.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 7FB0AB126E67AE88666FA712DA0D9CC6 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 94ED34DD4D554FF493BBCE670219F6C5 /* SkyFloatingLabelTextField.xcconfig */; + baseConfigurationReference = F2C1CCA1089ED32FDB5596EEF49F6DD9 /* IQKeyboardManagerSwift.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5134,47 +5359,39 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField.modulemap"; - PRODUCT_MODULE_NAME = SkyFloatingLabelTextField; - PRODUCT_NAME = SkyFloatingLabelTextField; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap"; + PRODUCT_MODULE_NAME = IQKeyboardManagerSwift; + PRODUCT_NAME = IQKeyboardManagerSwift; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; - }; - 7B334335D08F44EF6B1DD76279B76FC7 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EDF818E6EB2589316AD2FDA1783F4FD8 /* FirebaseAnalytics.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; + name = Debug; }; 85F600B1D8E2AF812593742F00D51572 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8587842234E12AB08CD40DA275168C06 /* Firebase.xcconfig */; + baseConfigurationReference = DF5AB584FF1DD6E115FE19A0878FC416 /* Firebase.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -5182,7 +5399,7 @@ }; 8B08814EF875BFD87B67DA82F1120E94 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A28820B9AAB019B26C0CD13F658FB084 /* leveldb-library.xcconfig */; + baseConfigurationReference = 8205A93740A0400CD4761410BEA3E29E /* leveldb-library.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5197,7 +5414,11 @@ INFOPLIST_FILE = "Target Support Files/leveldb-library/leveldb-library-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MODULEMAP_FILE = "Target Support Files/leveldb-library/leveldb-library.modulemap"; PRODUCT_MODULE_NAME = leveldb; PRODUCT_NAME = leveldb; @@ -5212,9 +5433,45 @@ }; name = Release; }; + 8CC3C50CD896D7A9D3A703A04A50992F /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F2C1CCA1089ED32FDB5596EEF49F6DD9 /* IQKeyboardManagerSwift.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap"; + PRODUCT_MODULE_NAME = IQKeyboardManagerSwift; + PRODUCT_NAME = IQKeyboardManagerSwift; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 8F5A293415CF9FF0010D50F71A99D3F5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7C9459DC2DC41A34CCF8141DF5C842D6 /* FirebaseDatabase.xcconfig */; + baseConfigurationReference = 314DAF0DCB891CFF1059F80DAC87E0A1 /* FirebaseDatabase.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5228,7 +5485,11 @@ INFOPLIST_FILE = "Target Support Files/FirebaseDatabase/FirebaseDatabase-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/FirebaseDatabase/FirebaseDatabase.modulemap"; PRODUCT_MODULE_NAME = FirebaseDatabase; @@ -5245,12 +5506,15 @@ }; 91697EAA28186F412863C37A86FC532A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 506B8F8286ACF1729D434744A1BB8F6A /* GoogleAppMeasurement.xcconfig */; + baseConfigurationReference = 403E42D5E84D5016B81A4794712DBBD6 /* GoogleAppMeasurement.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -5309,7 +5573,8 @@ MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 4.2; SYMROOT = "${SRCROOT}/../build"; }; @@ -5317,24 +5582,25 @@ }; 990E8CAA823987A9AAF2420080D6D93A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 506B8F8286ACF1729D434744A1BB8F6A /* GoogleAppMeasurement.xcconfig */; + baseConfigurationReference = 403E42D5E84D5016B81A4794712DBBD6 /* GoogleAppMeasurement.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; name = Release; }; - B0C7807A5EDDCA65575A1854B8EAEECF /* Debug */ = { + BFBD76D0ED5578C43DBAB44CA61A122A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0E7E06A549C2EC13E577E78F1649EDC6 /* Pods-FoodApp.debug.xcconfig */; + baseConfigurationReference = 314DAF0DCB891CFF1059F80DAC87E0A1 /* FirebaseDatabase.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5344,28 +5610,32 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-FoodApp/Pods-FoodApp-Info.plist"; + INFOPLIST_FILE = "Target Support Files/FirebaseDatabase/FirebaseDatabase-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-FoodApp/Pods-FoodApp.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/FirebaseDatabase/FirebaseDatabase.modulemap"; + PRODUCT_MODULE_NAME = FirebaseDatabase; + PRODUCT_NAME = FirebaseDatabase; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - BFBD76D0ED5578C43DBAB44CA61A122A /* Release */ = { + D1058E63E06D913EFEC3C2D8BE3317AA /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7C9459DC2DC41A34CCF8141DF5C842D6 /* FirebaseDatabase.xcconfig */; + baseConfigurationReference = 4B0C265792FA6B16225A40566F3D76EF /* SkyFloatingLabelTextField.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5376,14 +5646,18 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/FirebaseDatabase/FirebaseDatabase-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/FirebaseDatabase/FirebaseDatabase.modulemap"; - PRODUCT_MODULE_NAME = FirebaseDatabase; - PRODUCT_NAME = FirebaseDatabase; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField.modulemap"; + PRODUCT_MODULE_NAME = SkyFloatingLabelTextField; + PRODUCT_NAME = SkyFloatingLabelTextField; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; @@ -5395,9 +5669,45 @@ }; name = Release; }; - C81A157469BB6480968D7CDA8F031272 /* Release */ = { + D3975571AF1E840C8670397476F20091 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A5565C0126D05A886ADF3ED07BF6B8C9 /* Pods-FoodApp.release.xcconfig */; + baseConfigurationReference = 56421B148D6FC3691D1CEF512BAF81D0 /* nanopb.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/nanopb/nanopb-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/nanopb/nanopb-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/nanopb/nanopb.modulemap"; + PRODUCT_MODULE_NAME = nanopb; + PRODUCT_NAME = nanopb; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + D3E5A3414741B7241566CBAFCE2C8535 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0E7E06A549C2EC13E577E78F1649EDC6 /* Pods-FoodApp.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -5413,7 +5723,11 @@ INFOPLIST_FILE = "Target Support Files/Pods-FoodApp/Pods-FoodApp-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-FoodApp/Pods-FoodApp.modulemap"; OTHER_LDFLAGS = ""; @@ -5424,16 +5738,17 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - D3975571AF1E840C8670397476F20091 /* Release */ = { + D42F57A9127F553E577804FE7B4C67FF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DD4F9D9A3DADB05BADCE88FC17D0D6B9 /* nanopb.xcconfig */; + baseConfigurationReference = A5565C0126D05A886ADF3ED07BF6B8C9 /* Pods-FoodApp.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5443,18 +5758,23 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/nanopb/nanopb-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/nanopb/nanopb-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-FoodApp/Pods-FoodApp-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/nanopb/nanopb.modulemap"; - PRODUCT_MODULE_NAME = nanopb; - PRODUCT_NAME = nanopb; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-FoodApp/Pods-FoodApp.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -5464,20 +5784,58 @@ }; D6519D24B915A00A922E21E8BCC62C44 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0A9ECA9A2280E589F6E2877215D4B385 /* FirebaseAuthInterop.xcconfig */; + baseConfigurationReference = 7B0FE7287CAA1B50B0D9708BC1441E45 /* FirebaseAuthInterop.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + DA49E922DB6A940DAA1BD2AE6EE0F5B5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4B0C265792FA6B16225A40566F3D76EF /* SkyFloatingLabelTextField.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/SkyFloatingLabelTextField/SkyFloatingLabelTextField.modulemap"; + PRODUCT_MODULE_NAME = SkyFloatingLabelTextField; + PRODUCT_NAME = SkyFloatingLabelTextField; SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Debug; }; DC15BBAE25A782975D4DBB1A77747609 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FD73A21C208A102768DF85340F8F8898 /* FirebaseInstanceID.xcconfig */; + baseConfigurationReference = 4D5A00E1825E7F2C7D102757FF908EE0 /* FirebaseInstanceID.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5491,7 +5849,11 @@ INFOPLIST_FILE = "Target Support Files/FirebaseInstanceID/FirebaseInstanceID-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/FirebaseInstanceID/FirebaseInstanceID.modulemap"; PRODUCT_MODULE_NAME = FirebaseInstanceID; @@ -5509,7 +5871,7 @@ }; E353062CD4CCEB769E3ABB2F0AEDD850 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7ECCCC320952E6A75BFABF7ECD100615 /* GTMSessionFetcher.xcconfig */; + baseConfigurationReference = D4407E837EE9BA418818B47899C1D8E7 /* GTMSessionFetcher.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5524,7 +5886,11 @@ INFOPLIST_FILE = "Target Support Files/GTMSessionFetcher/GTMSessionFetcher-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MODULEMAP_FILE = "Target Support Files/GTMSessionFetcher/GTMSessionFetcher.modulemap"; PRODUCT_MODULE_NAME = GTMSessionFetcher; PRODUCT_NAME = GTMSessionFetcher; @@ -5541,7 +5907,7 @@ }; EA41B305B18FC1D7693CE03B9F004026 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7ECCCC320952E6A75BFABF7ECD100615 /* GTMSessionFetcher.xcconfig */; + baseConfigurationReference = D4407E837EE9BA418818B47899C1D8E7 /* GTMSessionFetcher.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5556,7 +5922,11 @@ INFOPLIST_FILE = "Target Support Files/GTMSessionFetcher/GTMSessionFetcher-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MODULEMAP_FILE = "Target Support Files/GTMSessionFetcher/GTMSessionFetcher.modulemap"; PRODUCT_MODULE_NAME = GTMSessionFetcher; PRODUCT_NAME = GTMSessionFetcher; @@ -5572,12 +5942,15 @@ }; EB4CD429C58F1FB2E67E8987B612CA2B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EDF818E6EB2589316AD2FDA1783F4FD8 /* FirebaseAnalytics.xcconfig */; + baseConfigurationReference = 4C0DE29941E9FB4280328365C6FB9909 /* FirebaseAnalytics.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -5585,12 +5958,15 @@ }; F9BC22F0989BA2E2E889726702547F03 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0A9ECA9A2280E589F6E2877215D4B385 /* FirebaseAuthInterop.xcconfig */; + baseConfigurationReference = 7B0FE7287CAA1B50B0D9708BC1441E45 /* FirebaseAuthInterop.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -5599,7 +5975,7 @@ }; FFFB7F0A45CFB3F249AA2A5CF1746836 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 934C182766A57B59478E2208838394D2 /* FirebaseAuth.xcconfig */; + baseConfigurationReference = 4952791075A7D97CBEC9BD313152C9D7 /* FirebaseAuth.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5613,7 +5989,11 @@ INFOPLIST_FILE = "Target Support Files/FirebaseAuth/FirebaseAuth-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/FirebaseAuth/FirebaseAuth.modulemap"; PRODUCT_MODULE_NAME = FirebaseAuth; @@ -5649,20 +6029,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2EFC6380B5BF3A7326DC54F036AED07C /* Build configuration list for PBXNativeTarget "SkyFloatingLabelTextField" */ = { + 38415E1882C6BB072DDDCCEA9CC5A940 /* Build configuration list for PBXAggregateTarget "FirebaseAuthInterop" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0379BEB1A339BC6C7318D924C5E8819C /* Debug */, - 782FCC5D243B0E82274A575C120414CB /* Release */, + D6519D24B915A00A922E21E8BCC62C44 /* Debug */, + F9BC22F0989BA2E2E889726702547F03 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 38415E1882C6BB072DDDCCEA9CC5A940 /* Build configuration list for PBXAggregateTarget "FirebaseAuthInterop" */ = { + 3B91B77FBB13EFD33FB1AE6F88ABA7C5 /* Build configuration list for PBXNativeTarget "IQKeyboardManagerSwift" */ = { isa = XCConfigurationList; buildConfigurations = ( - D6519D24B915A00A922E21E8BCC62C44 /* Debug */, - F9BC22F0989BA2E2E889726702547F03 /* Release */, + 7FB0AB126E67AE88666FA712DA0D9CC6 /* Debug */, + 8CC3C50CD896D7A9D3A703A04A50992F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -5703,11 +6083,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7E0EFD1048717B0C6AB63FBC3B85B5F1 /* Build configuration list for PBXNativeTarget "Pods-FoodApp" */ = { + 828009159C078721008FB2B27076B7DB /* Build configuration list for PBXNativeTarget "Pods-FoodApp" */ = { isa = XCConfigurationList; buildConfigurations = ( - B0C7807A5EDDCA65575A1854B8EAEECF /* Debug */, - C81A157469BB6480968D7CDA8F031272 /* Release */, + D3E5A3414741B7241566CBAFCE2C8535 /* Debug */, + D42F57A9127F553E577804FE7B4C67FF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -5721,6 +6101,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 9B826A61F5DE3589441FFB891E21A9C9 /* Build configuration list for PBXNativeTarget "SkyFloatingLabelTextField" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DA49E922DB6A940DAA1BD2AE6EE0F5B5 /* Debug */, + D1058E63E06D913EFEC3C2D8BE3317AA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 9D00BB26BD7FFCB20AF19B9FE22F24D0 /* Build configuration list for PBXAggregateTarget "FirebaseAnalytics" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp-acknowledgements.markdown b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp-acknowledgements.markdown index e4e41ed..cb885a0 100644 --- a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp-acknowledgements.markdown +++ b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp-acknowledgements.markdown @@ -1661,6 +1661,31 @@ Copyright 2019 Google limitations under the License. +## IQKeyboardManagerSwift + +MIT License + +Copyright (c) 2013-2017 Iftekhar Qurashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + ## SkyFloatingLabelTextField Apache License diff --git a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp-acknowledgements.plist b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp-acknowledgements.plist index bc3b2a1..cdd7c5a 100644 --- a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp-acknowledgements.plist +++ b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp-acknowledgements.plist @@ -1738,6 +1738,37 @@ Type PSGroupSpecifier + + FooterText + MIT License + +Copyright (c) 2013-2017 Iftekhar Qurashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + IQKeyboardManagerSwift + Type + PSGroupSpecifier + FooterText Apache License diff --git a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp-frameworks.sh b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp-frameworks.sh index 1f32688..4c32990 100755 --- a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp-frameworks.sh +++ b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp-frameworks.sh @@ -155,6 +155,7 @@ strip_invalid_archs() { if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework" install_framework "${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework" + install_framework "${BUILT_PRODUCTS_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework" install_framework "${BUILT_PRODUCTS_DIR}/SkyFloatingLabelTextField/SkyFloatingLabelTextField.framework" install_framework "${BUILT_PRODUCTS_DIR}/leveldb-library/leveldb.framework" install_framework "${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework" @@ -162,6 +163,7 @@ fi if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework" install_framework "${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework" + install_framework "${BUILT_PRODUCTS_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework" install_framework "${BUILT_PRODUCTS_DIR}/SkyFloatingLabelTextField/SkyFloatingLabelTextField.framework" install_framework "${BUILT_PRODUCTS_DIR}/leveldb-library/leveldb.framework" install_framework "${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework" From d01cf9ade0c5aa7373538318283dcc2bd08e55cd Mon Sep 17 00:00:00 2001 From: gionoa Date: Sun, 31 Mar 2019 20:17:21 -0400 Subject: [PATCH 4/4] Add IQKeyboardManagerSwift --- .../Categories/IQNSArray+Sort.swift | 73 + .../Categories/IQUIScrollView+Additions.swift | 65 + .../IQUITextFieldView+Additions.swift | 110 + .../Categories/IQUIView+Hierarchy.swift | 340 +++ .../IQUIViewController+Additions.swift | 48 + .../IQKeyboardManagerConstants.swift | 152 ++ .../IQKeyboardManagerConstantsInternal.swift | 27 + .../IQKeyboardManager.swift | 2076 +++++++++++++++++ .../IQKeyboardReturnKeyHandler.swift | 628 +++++ .../IQTextView/IQTextView.swift | 209 ++ .../IQToolbar/IQBarButtonItem.swift | 136 ++ .../IQToolbar/IQInvocation.swift | 45 + .../IQToolbar/IQPreviousNextView.swift | 28 + .../IQToolbar/IQTitleBarButtonItem.swift | 178 ++ .../IQToolbar/IQToolbar.swift | 369 +++ .../IQUIView+IQKeyboardToolbar.swift | 612 +++++ .../IQButtonBarArrowDown@2x.png | Bin 0 -> 1764 bytes .../IQButtonBarArrowDown@3x.png | Bin 0 -> 2177 bytes .../IQButtonBarArrowLeft@2x.png | Bin 0 -> 1793 bytes .../IQButtonBarArrowLeft@3x.png | Bin 0 -> 1815 bytes .../IQButtonBarArrowRight@2x.png | Bin 0 -> 1786 bytes .../IQButtonBarArrowRight@3x.png | Bin 0 -> 1844 bytes .../IQButtonBarArrowUp@2x.png | Bin 0 -> 1769 bytes .../IQButtonBarArrowUp@3x.png | Bin 0 -> 2164 bytes .../Pods/IQKeyboardManagerSwift/LICENSE.md | 21 + FoodApp/Pods/IQKeyboardManagerSwift/README.md | 210 ++ .../IQKeyboardManagerSwift-Info.plist | 26 + .../IQKeyboardManagerSwift-dummy.m | 5 + .../IQKeyboardManagerSwift-prefix.pch | 12 + .../IQKeyboardManagerSwift-umbrella.h | 16 + .../IQKeyboardManagerSwift.modulemap | 6 + .../IQKeyboardManagerSwift.xcconfig | 10 + .../Pods-FoodApp/Pods-FoodApp.debug.xcconfig | 6 +- .../Pods-FoodApp.release.xcconfig | 6 +- 34 files changed, 5408 insertions(+), 6 deletions(-) create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQNSArray+Sort.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUIScrollView+Additions.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUITextFieldView+Additions.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUIView+Hierarchy.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUIViewController+Additions.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstantsInternal.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardReturnKeyHandler.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQTextView/IQTextView.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowDown@2x.png create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowDown@3x.png create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowLeft@2x.png create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowLeft@3x.png create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowRight@2x.png create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowRight@3x.png create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowUp@2x.png create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowUp@3x.png create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/LICENSE.md create mode 100644 FoodApp/Pods/IQKeyboardManagerSwift/README.md create mode 100644 FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist create mode 100644 FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-dummy.m create mode 100644 FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch create mode 100644 FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-umbrella.h create mode 100644 FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap create mode 100644 FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.xcconfig diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQNSArray+Sort.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQNSArray+Sort.swift new file mode 100644 index 0000000..8f7e8ab --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQNSArray+Sort.swift @@ -0,0 +1,73 @@ +// +// IQNSArray+Sort.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import Foundation +import UIKit + +/** +UIView.subviews sorting category. +*/ +internal extension Array { + + ///-------------- + /// MARK: Sorting + ///-------------- + + /** + Returns the array by sorting the UIView's by their tag property. + */ + internal func sortedArrayByTag() -> [Element] { + + return sorted(by: { (obj1 : Element, obj2 : Element) -> Bool in + + let view1 = obj1 as! UIView + let view2 = obj2 as! UIView + + return (view1.tag < view2.tag) + }) + } + + /** + Returns the array by sorting the UIView's by their tag property. + */ + internal func sortedArrayByPosition() -> [Element] { + + return sorted(by: { (obj1 : Element, obj2 : Element) -> Bool in + + let view1 = obj1 as! UIView + let view2 = obj2 as! UIView + + let x1 = view1.frame.minX + let y1 = view1.frame.minY + let x2 = view2.frame.minX + let y2 = view2.frame.minY + + if y1 != y2 { + return y1 < y2 + } else { + return x1 < x2 + } + }) + } +} + diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUIScrollView+Additions.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUIScrollView+Additions.swift new file mode 100644 index 0000000..236221b --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUIScrollView+Additions.swift @@ -0,0 +1,65 @@ +// +// IQUIScrollView+Additions.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import Foundation +import UIKit + +private var kIQShouldIgnoreScrollingAdjustment = "kIQShouldIgnoreScrollingAdjustment" +private var kIQShouldRestoreScrollViewContentOffset = "kIQShouldRestoreScrollViewContentOffset" + +public extension UIScrollView { + + /** + If YES, then scrollview will ignore scrolling (simply not scroll it) for adjusting textfield position. Default is NO. + */ + @objc public var shouldIgnoreScrollingAdjustment: Bool { + get { + + if let aValue = objc_getAssociatedObject(self, &kIQShouldIgnoreScrollingAdjustment) as? Bool { + return aValue + } else { + return false + } + } + set(newValue) { + objc_setAssociatedObject(self, &kIQShouldIgnoreScrollingAdjustment, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) + } + } + + /** + To set customized distance from keyboard for textField/textView. Can't be less than zero + */ + @objc public var shouldRestoreScrollViewContentOffset: Bool { + get { + + if let aValue = objc_getAssociatedObject(self, &kIQShouldRestoreScrollViewContentOffset) as? Bool { + return aValue + } else { + return false + } + } + set(newValue) { + objc_setAssociatedObject(self, &kIQShouldRestoreScrollViewContentOffset, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) + } + } +} diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUITextFieldView+Additions.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUITextFieldView+Additions.swift new file mode 100644 index 0000000..9135271 --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUITextFieldView+Additions.swift @@ -0,0 +1,110 @@ +// +// IQUITextFieldView+Additions.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import Foundation +import UIKit + +/** +Uses default keyboard distance for textField. +*/ +public let kIQUseDefaultKeyboardDistance = CGFloat.greatestFiniteMagnitude + +private var kIQKeyboardDistanceFromTextField = "kIQKeyboardDistanceFromTextField" +//private var kIQKeyboardEnableMode = "kIQKeyboardEnableMode" +private var kIQKeyboardShouldResignOnTouchOutsideMode = "kIQKeyboardShouldResignOnTouchOutsideMode" +private var kIQIgnoreSwitchingByNextPrevious = "kIQIgnoreSwitchingByNextPrevious" + +/** +UIView category for managing UITextField/UITextView +*/ +public extension UIView { + + /** + To set customized distance from keyboard for textField/textView. Can't be less than zero + */ + @objc public var keyboardDistanceFromTextField: CGFloat { + get { + + if let aValue = objc_getAssociatedObject(self, &kIQKeyboardDistanceFromTextField) as? CGFloat { + return aValue + } else { + return kIQUseDefaultKeyboardDistance + } + } + set(newValue) { + objc_setAssociatedObject(self, &kIQKeyboardDistanceFromTextField, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) + } + } + + /** + If shouldIgnoreSwitchingByNextPrevious is true then library will ignore this textField/textView while moving to other textField/textView using keyboard toolbar next previous buttons. Default is false + */ + @objc public var ignoreSwitchingByNextPrevious: Bool { + get { + + if let aValue = objc_getAssociatedObject(self, &kIQIgnoreSwitchingByNextPrevious) as? Bool { + return aValue + } else { + return false + } + } + set(newValue) { + objc_setAssociatedObject(self, &kIQIgnoreSwitchingByNextPrevious, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) + } + } + +// /** +// Override Enable/disable managing distance between keyboard and textField behaviour for this particular textField. +// */ +// @objc public var enableMode: IQEnableMode { +// get { +// +// if let savedMode = objc_getAssociatedObject(self, &kIQKeyboardEnableMode) as? IQEnableMode { +// return savedMode +// } else { +// return .Default +// } +// } +// set(newValue) { +// objc_setAssociatedObject(self, &kIQKeyboardEnableMode, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) +// } +// } + + /** + Override resigns Keyboard on touching outside of UITextField/View behaviour for this particular textField. + */ + @objc public var shouldResignOnTouchOutsideMode: IQEnableMode { + get { + + if let savedMode = objc_getAssociatedObject(self, &kIQKeyboardShouldResignOnTouchOutsideMode) as? IQEnableMode { + return savedMode + } else { + return .Default + } + } + set(newValue) { + objc_setAssociatedObject(self, &kIQKeyboardShouldResignOnTouchOutsideMode, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) + } + } +} + diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUIView+Hierarchy.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUIView+Hierarchy.swift new file mode 100644 index 0000000..fa79685 --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUIView+Hierarchy.swift @@ -0,0 +1,340 @@ +// +// IQUIView+Hierarchy.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +import UIKit + +/** +UIView hierarchy category. +*/ +public extension UIView { + + ///---------------------- + /// MARK: viewControllers + ///---------------------- + + /** + Returns the UIViewController object that manages the receiver. + */ + @objc public func viewContainingController()->UIViewController? { + + var nextResponder: UIResponder? = self + + repeat { + nextResponder = nextResponder?.next + + if let viewController = nextResponder as? UIViewController { + return viewController + } + + } while nextResponder != nil + + return nil + } + + /** + Returns the topMost UIViewController object in hierarchy. + */ + @objc public func topMostController()->UIViewController? { + + var controllersHierarchy = [UIViewController]() + + if var topController = window?.rootViewController { + controllersHierarchy.append(topController) + + while let presented = topController.presentedViewController { + + topController = presented + + controllersHierarchy.append(presented) + } + + var matchController :UIResponder? = viewContainingController() + + while matchController != nil && controllersHierarchy.contains(matchController as! UIViewController) == false { + + repeat { + matchController = matchController?.next + + } while matchController != nil && matchController is UIViewController == false + } + + return matchController as? UIViewController + + } else { + return viewContainingController() + } + } + + /** + Returns the UIViewController object that is actually the parent of this object. Most of the time it's the viewController object which actually contains it, but result may be different if it's viewController is added as childViewController of another viewController. + */ + @objc public func parentContainerViewController()->UIViewController? { + + var matchController = viewContainingController() + var parentContainerViewController : UIViewController? + + if var navController = matchController?.navigationController { + + while let parentNav = navController.navigationController { + navController = parentNav + } + + var parentController : UIViewController = navController + + while let parent = parentController.parent, + (parent.isKind(of: UINavigationController.self) == false && + parent.isKind(of: UITabBarController.self) == false && + parent.isKind(of: UISplitViewController.self) == false) { + + parentController = parent + } + + if navController == parentController { + parentContainerViewController = navController.topViewController + } else { + parentContainerViewController = parentController + } + } + else if let tabController = matchController?.tabBarController { + + if let navController = tabController.selectedViewController as? UINavigationController { + parentContainerViewController = navController.topViewController + } else { + parentContainerViewController = tabController.selectedViewController + } + } else { + while let parentController = matchController?.parent, + (parentController.isKind(of: UINavigationController.self) == false && + parentController.isKind(of: UITabBarController.self) == false && + parentController.isKind(of: UISplitViewController.self) == false) { + + matchController = parentController + } + + parentContainerViewController = matchController + } + + let finalController = parentContainerViewController?.parentIQContainerViewController() ?? parentContainerViewController + + return finalController + + } + + ///----------------------------------- + /// MARK: Superviews/Subviews/Siglings + ///----------------------------------- + + /** + Returns the superView of provided class type. + */ + @objc public func superviewOfClassType(_ classType:UIView.Type)->UIView? { + + var superView = superview + + while let unwrappedSuperView = superView { + + if unwrappedSuperView.isKind(of: classType) { + + //If it's UIScrollView, then validating for special cases + if unwrappedSuperView.isKind(of: UIScrollView.self) { + + let classNameString = NSStringFromClass(type(of:unwrappedSuperView.self)) + + // If it's not UITableViewWrapperView class, this is internal class which is actually manage in UITableview. The speciality of this class is that it's superview is UITableView. + // If it's not UITableViewCellScrollView class, this is internal class which is actually manage in UITableviewCell. The speciality of this class is that it's superview is UITableViewCell. + //If it's not _UIQueuingScrollView class, actually we validate for _ prefix which usually used by Apple internal classes + if unwrappedSuperView.superview?.isKind(of: UITableView.self) == false && + unwrappedSuperView.superview?.isKind(of: UITableViewCell.self) == false && + classNameString.hasPrefix("_") == false { + return superView + } + } + else { + return superView + } + } + + superView = unwrappedSuperView.superview + } + + return nil + } + + /** + Returns all siblings of the receiver which canBecomeFirstResponder. + */ + internal func responderSiblings()->[UIView] { + + //Array of (UITextField/UITextView's). + var tempTextFields = [UIView]() + + // Getting all siblings + if let siblings = superview?.subviews { + + for textField in siblings { + + if (textField == self || textField.ignoreSwitchingByNextPrevious == false) && textField._IQcanBecomeFirstResponder() == true { + tempTextFields.append(textField) + } + } + } + + return tempTextFields + } + + /** + Returns all deep subViews of the receiver which canBecomeFirstResponder. + */ + internal func deepResponderViews()->[UIView] { + + //Array of (UITextField/UITextView's). + var textfields = [UIView]() + + for textField in subviews { + + if (textField == self || textField.ignoreSwitchingByNextPrevious == false) && textField._IQcanBecomeFirstResponder() == true { + textfields.append(textField) + } + + //Sometimes there are hidden or disabled views and textField inside them still recorded, so we added some more validations here (Bug ID: #458) + //Uncommented else (Bug ID: #625) + if textField.subviews.count != 0 && isUserInteractionEnabled == true && isHidden == false && alpha != 0.0 { + for deepView in textField.deepResponderViews() { + textfields.append(deepView) + } + } + } + + //subviews are returning in opposite order. Sorting according the frames 'y'. + return textfields.sorted(by: { (view1 : UIView, view2 : UIView) -> Bool in + + let frame1 = view1.convert(view1.bounds, to: self) + let frame2 = view2.convert(view2.bounds, to: self) + + let x1 = frame1.minX + let y1 = frame1.minY + let x2 = frame2.minX + let y2 = frame2.minY + + if y1 != y2 { + return y1 < y2 + } else { + return x1 < x2 + } + }) + } + + private func _IQcanBecomeFirstResponder() -> Bool { + + var _IQcanBecomeFirstResponder = false + + // Setting toolbar to keyboard. + if let textField = self as? UITextField { + _IQcanBecomeFirstResponder = textField.isEnabled + } else if let textView = self as? UITextView { + _IQcanBecomeFirstResponder = textView.isEditable + } + + if _IQcanBecomeFirstResponder == true { + _IQcanBecomeFirstResponder = isUserInteractionEnabled == true && isHidden == false && alpha != 0.0 && isAlertViewTextField() == false && textFieldSearchBar() == nil + } + + return _IQcanBecomeFirstResponder + } + + ///------------------------- + /// MARK: Special TextFields + ///------------------------- + + /** + Returns searchBar if receiver object is UISearchBarTextField, otherwise return nil. + */ + internal func textFieldSearchBar()-> UISearchBar? { + + var responder : UIResponder? = self.next + + while let bar = responder { + + if let searchBar = bar as? UISearchBar { + return searchBar + } else if bar is UIViewController { + break + } + + responder = bar.next + } + + return nil + } + + /** + Returns YES if the receiver object is UIAlertSheetTextField, otherwise return NO. + */ + internal func isAlertViewTextField()->Bool { + + var alertViewController : UIResponder? = viewContainingController() + + var isAlertViewTextField = false + + while let controller = alertViewController, isAlertViewTextField == false { + + if controller.isKind(of: UIAlertController.self) { + isAlertViewTextField = true + break + } + + alertViewController = controller.next + } + + return isAlertViewTextField + } + + private func depth()->Int { + var depth : Int = 0 + + if let superView = superview { + depth = superView.depth()+1 + } + + return depth + } + +} + +public extension UIViewController { + + func parentIQContainerViewController() -> UIViewController? { + return self + } +} + +extension NSObject { + + internal func _IQDescription() -> String { + return "<\(self) \(Unmanaged.passUnretained(self).toOpaque())>" + } +} + + + diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUIViewController+Additions.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUIViewController+Additions.swift new file mode 100644 index 0000000..ab30451 --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Categories/IQUIViewController+Additions.swift @@ -0,0 +1,48 @@ +// +// IQUIViewController+Additions.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import UIKit + + +private var kIQLayoutGuideConstraint = "kIQLayoutGuideConstraint" + + +public extension UIViewController { + + /** + To set customized distance from keyboard for textField/textView. Can't be less than zero + + @deprecated Due to change in core-logic of handling distance between textField and keyboard distance, this layout contraint tweak is no longer needed and things will just work out of the box regardless of constraint pinned with safeArea/layoutGuide/superview + */ + @available(*,deprecated, message: "Due to change in core-logic of handling distance between textField and keyboard distance, this layout contraint tweak is no longer needed and things will just work out of the box regardless of constraint pinned with safeArea/layoutGuide/superview.") + @IBOutlet @objc public var IQLayoutGuideConstraint: NSLayoutConstraint? { + get { + + return objc_getAssociatedObject(self, &kIQLayoutGuideConstraint) as? NSLayoutConstraint + } + + set(newValue) { + objc_setAssociatedObject(self, &kIQLayoutGuideConstraint, newValue,objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) + } + } +} diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift new file mode 100644 index 0000000..0cc146a --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift @@ -0,0 +1,152 @@ +// +// IQKeyboardManagerConstants.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +import Foundation + +///----------------------------------- +/// MARK: IQAutoToolbarManageBehaviour +///----------------------------------- + +/** +`IQAutoToolbarBySubviews` +Creates Toolbar according to subview's hirarchy of Textfield's in view. + +`IQAutoToolbarByTag` +Creates Toolbar according to tag property of TextField's. + +`IQAutoToolbarByPosition` +Creates Toolbar according to the y,x position of textField in it's superview coordinate. +*/ +@objc public enum IQAutoToolbarManageBehaviour : Int { + case bySubviews + case byTag + case byPosition +} + +/** + `IQPreviousNextDisplayModeDefault` + Show NextPrevious when there are more than 1 textField otherwise hide. + + `IQPreviousNextDisplayModeAlwaysHide` + Do not show NextPrevious buttons in any case. + + `IQPreviousNextDisplayModeAlwaysShow` + Always show nextPrevious buttons, if there are more than 1 textField then both buttons will be visible but will be shown as disabled. + */ +@objc public enum IQPreviousNextDisplayMode : Int { + case Default + case alwaysHide + case alwaysShow +} + +/** + `IQEnableModeDefault` + Pick default settings. + + `IQEnableModeEnabled` + setting is enabled. + + `IQEnableModeDisabled` + setting is disabled. + */ +@objc public enum IQEnableMode : Int { + case Default + case enabled + case disabled +} + +/* + + /---------------------------------------------------------------------------------------------------\ + \---------------------------------------------------------------------------------------------------/ + | iOS Notification Mechanism | + /---------------------------------------------------------------------------------------------------\ + \---------------------------------------------------------------------------------------------------/ + + + ------------------------------------------------------------ + When UITextField become first responder + ------------------------------------------------------------ + - UITextFieldTextDidBeginEditingNotification (UITextField) + - UIKeyboardWillShowNotification + - UIKeyboardDidShowNotification + + ------------------------------------------------------------ + When UITextView become first responder + ------------------------------------------------------------ + - UIKeyboardWillShowNotification + - UITextViewTextDidBeginEditingNotification (UITextView) + - UIKeyboardDidShowNotification + + ------------------------------------------------------------ + When switching focus from UITextField to another UITextField + ------------------------------------------------------------ + - UITextFieldTextDidEndEditingNotification (UITextField1) + - UITextFieldTextDidBeginEditingNotification (UITextField2) + - UIKeyboardWillShowNotification + - UIKeyboardDidShowNotification + + ------------------------------------------------------------ + When switching focus from UITextView to another UITextView + ------------------------------------------------------------ + - UITextViewTextDidEndEditingNotification : (UITextView1) + - UIKeyboardWillShowNotification + - UITextViewTextDidBeginEditingNotification : (UITextView2) + - UIKeyboardDidShowNotification + + ------------------------------------------------------------ + When switching focus from UITextField to UITextView + ------------------------------------------------------------ + - UITextFieldTextDidEndEditingNotification (UITextField) + - UIKeyboardWillShowNotification + - UITextViewTextDidBeginEditingNotification (UITextView) + - UIKeyboardDidShowNotification + + ------------------------------------------------------------ + When switching focus from UITextView to UITextField + ------------------------------------------------------------ + - UITextViewTextDidEndEditingNotification (UITextView) + - UITextFieldTextDidBeginEditingNotification (UITextField) + - UIKeyboardWillShowNotification + - UIKeyboardDidShowNotification + + ------------------------------------------------------------ + When opening/closing UIKeyboard Predictive bar + ------------------------------------------------------------ + - UIKeyboardWillShowNotification + - UIKeyboardDidShowNotification + + ------------------------------------------------------------ + On orientation change + ------------------------------------------------------------ + - UIApplicationWillChangeStatusBarOrientationNotification + - UIKeyboardWillHideNotification + - UIKeyboardDidHideNotification + - UIApplicationDidChangeStatusBarOrientationNotification + - UIKeyboardWillShowNotification + - UIKeyboardDidShowNotification + - UIKeyboardWillShowNotification + - UIKeyboardDidShowNotification + + */ diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstantsInternal.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstantsInternal.swift new file mode 100644 index 0000000..41b69c1 --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstantsInternal.swift @@ -0,0 +1,27 @@ +// +// IQKeyboardManagerConstantsInternal.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +import Foundation + + diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager.swift new file mode 100644 index 0000000..6475e75 --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager.swift @@ -0,0 +1,2076 @@ +// +// IQKeyboardManager.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +import Foundation +import CoreGraphics +import UIKit +import QuartzCore + +///--------------------- +/// MARK: IQToolbar tags +///--------------------- + +/** +Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView. Neither need to write any code nor any setup required and much more. A generic version of KeyboardManagement. https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html +*/ + +public class IQKeyboardManager: NSObject, UIGestureRecognizerDelegate { + + /** + Default tag for toolbar with Done button -1002. + */ + private static let kIQDoneButtonToolbarTag = -1002 + + /** + Default tag for toolbar with Previous/Next buttons -1005. + */ + private static let kIQPreviousNextButtonToolbarTag = -1005 + + /** + Invalid point value. + */ + private static let kIQCGPointInvalid = CGPoint.init(x: CGFloat.greatestFiniteMagnitude, y: CGFloat.greatestFiniteMagnitude) + + ///--------------------------- + /// MARK: UIKeyboard handling + ///--------------------------- + + /** + Registered classes list with library. + */ + private var registeredClasses = [UIView.Type]() + + /** + Enable/disable managing distance between keyboard and textField. Default is YES(Enabled when class loads in `+(void)load` method). + */ + @objc public var enable = false { + + didSet { + //If not enable, enable it. + if enable == true && + oldValue == false { + //If keyboard is currently showing. Sending a fake notification for keyboardWillHide to retain view's original position. + if let notification = _kbShowNotification { + keyboardWillShow(notification) + } + showLog("Enabled") + } else if enable == false && + oldValue == true { //If not disable, desable it. + keyboardWillHide(nil) + showLog("Disabled") + } + } + } + + private func privateIsEnabled()-> Bool { + + var isEnabled = enable + +// let enableMode = _textFieldView?.enableMode +// +// if enableMode == .enabled { +// isEnabled = true +// } else if enableMode == .disabled { +// isEnabled = false +// } else { + + if let textFieldViewController = _textFieldView?.viewContainingController() { + + if isEnabled == false { + + //If viewController is kind of enable viewController class, then assuming it's enabled. + for enabledClass in enabledDistanceHandlingClasses { + + if textFieldViewController.isKind(of: enabledClass) { + isEnabled = true + break + } + } + } + + if isEnabled == true { + + //If viewController is kind of disabled viewController class, then assuming it's disabled. + for disabledClass in disabledDistanceHandlingClasses { + + if textFieldViewController.isKind(of: disabledClass) { + isEnabled = false + break + } + } + + //Special Controllers + if isEnabled == true { + + let classNameString = NSStringFromClass(type(of:textFieldViewController.self)) + + //_UIAlertControllerTextFieldViewController + if (classNameString.contains("UIAlertController") && classNameString.hasSuffix("TextFieldViewController")) { + isEnabled = false + } + } + } + } +// } + + return isEnabled + } + + /** + To set keyboard distance from textField. can't be less than zero. Default is 10.0. + */ + @objc public var keyboardDistanceFromTextField: CGFloat { + + set { + _privateKeyboardDistanceFromTextField = max(0, newValue) + showLog("keyboardDistanceFromTextField: \(_privateKeyboardDistanceFromTextField)") + } + get { + return _privateKeyboardDistanceFromTextField + } + } + + /** + Boolean to know if keyboard is showing. + */ + @objc public var keyboardShowing: Bool { + + return _privateIsKeyboardShowing + } + + /** + moved distance to the top used to maintain distance between keyboard and textField. Most of the time this will be a positive value. + */ + @objc public var movedDistance: CGFloat { + + return _privateMovedDistance + } + + /** + Returns the default singleton instance. + */ + @objc public class var shared: IQKeyboardManager { + struct Static { + //Singleton instance. Initializing keyboard manger. + static let kbManager = IQKeyboardManager() + } + + /** @return Returns the default singleton instance. */ + return Static.kbManager + } + + ///------------------------- + /// MARK: IQToolbar handling + ///------------------------- + + /** + Automatic add the IQToolbar functionality. Default is YES. + */ + @objc public var enableAutoToolbar = true { + + didSet { + + privateIsEnableAutoToolbar() ? addToolbarIfRequired() : removeToolbarIfRequired() + + let enableToolbar = enableAutoToolbar ? "Yes" : "NO" + + showLog("enableAutoToolbar: \(enableToolbar)") + } + } + + private func privateIsEnableAutoToolbar() -> Bool { + + var enableToolbar = enableAutoToolbar + + if let textFieldViewController = _textFieldView?.viewContainingController() { + + if enableToolbar == false { + + //If found any toolbar enabled classes then return. + for enabledClass in enabledToolbarClasses { + + if textFieldViewController.isKind(of: enabledClass) { + enableToolbar = true + break + } + } + } + + if enableToolbar == true { + + //If found any toolbar disabled classes then return. + for disabledClass in disabledToolbarClasses { + + if textFieldViewController.isKind(of: disabledClass) { + enableToolbar = false + break + } + } + + //Special Controllers + if enableToolbar == true { + + let classNameString = NSStringFromClass(type(of:textFieldViewController.self)) + + //_UIAlertControllerTextFieldViewController + if (classNameString.contains("UIAlertController") && classNameString.hasSuffix("TextFieldViewController")) { + enableToolbar = false + } + } + } + } + + return enableToolbar + } + + /** + /** + IQAutoToolbarBySubviews: Creates Toolbar according to subview's hirarchy of Textfield's in view. + IQAutoToolbarByTag: Creates Toolbar according to tag property of TextField's. + IQAutoToolbarByPosition: Creates Toolbar according to the y,x position of textField in it's superview coordinate. + + Default is IQAutoToolbarBySubviews. + */ + AutoToolbar managing behaviour. Default is IQAutoToolbarBySubviews. + */ + @objc public var toolbarManageBehaviour = IQAutoToolbarManageBehaviour.bySubviews + + /** + If YES, then uses textField's tintColor property for IQToolbar, otherwise tint color is black. Default is NO. + */ + @objc public var shouldToolbarUsesTextFieldTintColor = false + + /** + This is used for toolbar.tintColor when textfield.keyboardAppearance is UIKeyboardAppearanceDefault. If shouldToolbarUsesTextFieldTintColor is YES then this property is ignored. Default is nil and uses black color. + */ + @objc public var toolbarTintColor : UIColor? + + /** + This is used for toolbar.barTintColor. Default is nil and uses white color. + */ + @objc public var toolbarBarTintColor : UIColor? + + /** + IQPreviousNextDisplayModeDefault: Show NextPrevious when there are more than 1 textField otherwise hide. + IQPreviousNextDisplayModeAlwaysHide: Do not show NextPrevious buttons in any case. + IQPreviousNextDisplayModeAlwaysShow: Always show nextPrevious buttons, if there are more than 1 textField then both buttons will be visible but will be shown as disabled. + */ + @objc public var previousNextDisplayMode = IQPreviousNextDisplayMode.Default + + /** + Toolbar previous/next/done button icon, If nothing is provided then check toolbarDoneBarButtonItemText to draw done button. + */ + @objc public var toolbarPreviousBarButtonItemImage : UIImage? + @objc public var toolbarNextBarButtonItemImage : UIImage? + @objc public var toolbarDoneBarButtonItemImage : UIImage? + + /** + Toolbar previous/next/done button text, If nothing is provided then system default 'UIBarButtonSystemItemDone' will be used. + */ + @objc public var toolbarPreviousBarButtonItemText : String? + @objc public var toolbarNextBarButtonItemText : String? + @objc public var toolbarDoneBarButtonItemText : String? + + /** + If YES, then it add the textField's placeholder text on IQToolbar. Default is YES. + */ + @objc public var shouldShowToolbarPlaceholder = true + + /** + Placeholder Font. Default is nil. + */ + @objc public var placeholderFont: UIFont? + + /** + Placeholder Color. Default is nil. Which means lightGray + */ + @objc public var placeholderColor: UIColor? + + /** + Placeholder Button Color when it's treated as button. Default is nil. Which means iOS Blue for light toolbar and Yellow for dark toolbar + */ + @objc public var placeholderButtonColor: UIColor? + + + ///-------------------------- + /// MARK: UITextView handling + ///-------------------------- + + /** used to adjust contentInset of UITextView. */ + private var startingTextViewContentInsets = UIEdgeInsets() + + /** used to adjust scrollIndicatorInsets of UITextView. */ + private var startingTextViewScrollIndicatorInsets = UIEdgeInsets() + + /** used with textView to detect a textFieldView contentInset is changed or not. (Bug ID: #92)*/ + private var isTextViewContentInsetChanged = false + + + ///--------------------------------------- + /// MARK: UIKeyboard appearance overriding + ///--------------------------------------- + + /** + Override the keyboardAppearance for all textField/textView. Default is NO. + */ + @objc public var overrideKeyboardAppearance = false + + /** + If overrideKeyboardAppearance is YES, then all the textField keyboardAppearance is set using this property. + */ + @objc public var keyboardAppearance = UIKeyboardAppearance.default + + + ///----------------------------------------------------------- + /// MARK: UITextField/UITextView Next/Previous/Resign handling + ///----------------------------------------------------------- + + + /** + Resigns Keyboard on touching outside of UITextField/View. Default is NO. + */ + @objc public var shouldResignOnTouchOutside = false { + + didSet { + resignFirstResponderGesture.isEnabled = privateShouldResignOnTouchOutside() + + let shouldResign = shouldResignOnTouchOutside ? "Yes" : "NO" + + showLog("shouldResignOnTouchOutside: \(shouldResign)") + } + } + + /** TapGesture to resign keyboard on view's touch. It's a readonly property and exposed only for adding/removing dependencies if your added gesture does have collision with this one */ + @objc lazy public var resignFirstResponderGesture: UITapGestureRecognizer = { + + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapRecognized(_:))) + tapGesture.cancelsTouchesInView = false + tapGesture.delegate = self + + return tapGesture + }() + + /*******************************************/ + + private func privateShouldResignOnTouchOutside() -> Bool { + + var shouldResign = shouldResignOnTouchOutside + + let enableMode = _textFieldView?.shouldResignOnTouchOutsideMode + + if enableMode == .enabled { + shouldResign = true + } else if enableMode == .disabled { + shouldResign = false + } else { + if let textFieldViewController = _textFieldView?.viewContainingController() { + + if shouldResign == false { + + //If viewController is kind of enable viewController class, then assuming shouldResignOnTouchOutside is enabled. + for enabledClass in enabledTouchResignedClasses { + + if textFieldViewController.isKind(of: enabledClass) { + shouldResign = true + break + } + } + } + + if shouldResign == true { + + //If viewController is kind of disable viewController class, then assuming shouldResignOnTouchOutside is disable. + for disabledClass in disabledTouchResignedClasses { + + if textFieldViewController.isKind(of: disabledClass) { + shouldResign = false + break + } + } + + //Special Controllers + if shouldResign == true { + + let classNameString = NSStringFromClass(type(of:textFieldViewController.self)) + + //_UIAlertControllerTextFieldViewController + if (classNameString.contains("UIAlertController") && classNameString.hasSuffix("TextFieldViewController")) { + shouldResign = false + } + } + } + } + } + + return shouldResign + } + + /** + Resigns currently first responder field. + */ + @objc @discardableResult public func resignFirstResponder()-> Bool { + + if let textFieldRetain = _textFieldView { + + //Resigning first responder + let isResignFirstResponder = textFieldRetain.resignFirstResponder() + + // If it refuses then becoming it as first responder again. (Bug ID: #96) + if isResignFirstResponder == false { + //If it refuses to resign then becoming it first responder again for getting notifications callback. + textFieldRetain.becomeFirstResponder() + + showLog("Refuses to resign first responder: \(String(describing: textFieldRetain._IQDescription()))") + } + + return isResignFirstResponder + } + + return false + } + + /** + Returns YES if can navigate to previous responder textField/textView, otherwise NO. + */ + @objc public var canGoPrevious: Bool { + //Getting all responder view's. + if let textFields = responderViews() { + if let textFieldRetain = _textFieldView { + + //Getting index of current textField. + if let index = textFields.index(of: textFieldRetain) { + + //If it is not first textField. then it's previous object canBecomeFirstResponder. + if index > 0 { + return true + } + } + } + } + return false + } + + /** + Returns YES if can navigate to next responder textField/textView, otherwise NO. + */ + @objc public var canGoNext: Bool { + //Getting all responder view's. + if let textFields = responderViews() { + if let textFieldRetain = _textFieldView { + //Getting index of current textField. + if let index = textFields.index(of: textFieldRetain) { + + //If it is not first textField. then it's previous object canBecomeFirstResponder. + if index < textFields.count-1 { + return true + } + } + } + } + return false + } + + /** + Navigate to previous responder textField/textView. + */ + @objc @discardableResult public func goPrevious()-> Bool { + + //Getting all responder view's. + if let textFieldRetain = _textFieldView { + if let textFields = responderViews() { + //Getting index of current textField. + if let index = textFields.index(of: textFieldRetain) { + + //If it is not first textField. then it's previous object becomeFirstResponder. + if index > 0 { + + let nextTextField = textFields[index-1] + + let isAcceptAsFirstResponder = nextTextField.becomeFirstResponder() + + // If it refuses then becoming previous textFieldView as first responder again. (Bug ID: #96) + if isAcceptAsFirstResponder == false { + //If next field refuses to become first responder then restoring old textField as first responder. + textFieldRetain.becomeFirstResponder() + + showLog("Refuses to become first responder: \(nextTextField._IQDescription())") + } + + return isAcceptAsFirstResponder + } + } + } + } + + return false + } + + /** + Navigate to next responder textField/textView. + */ + @objc @discardableResult public func goNext()-> Bool { + + //Getting all responder view's. + if let textFieldRetain = _textFieldView { + if let textFields = responderViews() { + //Getting index of current textField. + if let index = textFields.index(of: textFieldRetain) { + //If it is not last textField. then it's next object becomeFirstResponder. + if index < textFields.count-1 { + + let nextTextField = textFields[index+1] + + let isAcceptAsFirstResponder = nextTextField.becomeFirstResponder() + + // If it refuses then becoming previous textFieldView as first responder again. (Bug ID: #96) + if isAcceptAsFirstResponder == false { + //If next field refuses to become first responder then restoring old textField as first responder. + textFieldRetain.becomeFirstResponder() + + showLog("Refuses to become first responder: \(nextTextField._IQDescription())") + } + + return isAcceptAsFirstResponder + } + } + } + } + + return false + } + + /** previousAction. */ + @objc internal func previousAction (_ barButton : IQBarButtonItem) { + + //If user wants to play input Click sound. + if shouldPlayInputClicks == true { + //Play Input Click Sound. + UIDevice.current.playInputClick() + } + + if canGoPrevious == true { + + if let textFieldRetain = _textFieldView { + let isAcceptAsFirstResponder = goPrevious() + + var invocation = barButton.invocation + //Handling search bar special case + do { + if let searchBar = textFieldRetain.textFieldSearchBar() { + invocation = searchBar.keyboardToolbar.previousBarButton.invocation + } + } + + if isAcceptAsFirstResponder { + invocation?.invoke(from: textFieldRetain) + } + } + } + } + + /** nextAction. */ + @objc internal func nextAction (_ barButton : IQBarButtonItem) { + + //If user wants to play input Click sound. + if shouldPlayInputClicks == true { + //Play Input Click Sound. + UIDevice.current.playInputClick() + } + + if canGoNext == true { + + if let textFieldRetain = _textFieldView { + let isAcceptAsFirstResponder = goNext() + + var invocation = barButton.invocation + //Handling search bar special case + do { + if let searchBar = textFieldRetain.textFieldSearchBar() { + invocation = searchBar.keyboardToolbar.nextBarButton.invocation + } + } + + if isAcceptAsFirstResponder { + invocation?.invoke(from: textFieldRetain) + } + } + } + } + + /** doneAction. Resigning current textField. */ + @objc internal func doneAction (_ barButton : IQBarButtonItem) { + + //If user wants to play input Click sound. + if shouldPlayInputClicks == true { + //Play Input Click Sound. + UIDevice.current.playInputClick() + } + + if let textFieldRetain = _textFieldView { + //Resign textFieldView. + let isResignedFirstResponder = resignFirstResponder() + + var invocation = barButton.invocation + //Handling search bar special case + do { + if let searchBar = textFieldRetain.textFieldSearchBar() { + invocation = searchBar.keyboardToolbar.doneBarButton.invocation + } + } + + if isResignedFirstResponder { + invocation?.invoke(from: textFieldRetain) + } + } + } + + /** Resigning on tap gesture. (Enhancement ID: #14)*/ + @objc internal func tapRecognized(_ gesture: UITapGestureRecognizer) { + + if gesture.state == .ended { + + //Resigning currently responder textField. + _ = resignFirstResponder() + } + } + + /** Note: returning YES is guaranteed to allow simultaneous recognition. returning NO is not guaranteed to prevent simultaneous recognition, as the other gesture's delegate may return YES. */ + @objc public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { + return false + } + + /** To not detect touch events in a subclass of UIControl, these may have added their own selector for specific work */ + @objc public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool { + // Should not recognize gesture if the clicked view is either UIControl or UINavigationBar(=4.2) + private var _animationCurve : UIView.AnimationOptions = .curveEaseOut + #else + private var _animationCurve : UIViewAnimationOptions = .curveEaseOut + #endif + + /*******************************************/ + + /** Boolean to maintain keyboard is showing or it is hide. To solve rootViewController.view.frame calculations. */ + private var _privateIsKeyboardShowing = false + + private var _privateMovedDistance : CGFloat = 0.0 + + /** To use with keyboardDistanceFromTextField. */ + private var _privateKeyboardDistanceFromTextField: CGFloat = 10.0 + + /** To know if we have any pending request to adjust view position. */ + private var _privateHasPendingAdjustRequest = false + + /**************************************************************************************/ + + ///-------------------------------------- + /// MARK: Initialization/Deinitialization + ///-------------------------------------- + + /* Singleton Object Initialization. */ + override init() { + + super.init() + + self.registerAllNotifications() + + //Creating gesture for @shouldResignOnTouchOutside. (Enhancement ID: #14) + resignFirstResponderGesture.isEnabled = shouldResignOnTouchOutside + + //Loading IQToolbar, IQTitleBarButtonItem, IQBarButtonItem to fix first time keyboard appearance delay (Bug ID: #550) + //If you experience exception breakpoint issue at below line then try these solutions https://stackoverflow.com/questions/27375640/all-exception-break-point-is-stopping-for-no-reason-on-simulator + let textField = UITextField() + textField.addDoneOnKeyboardWithTarget(nil, action: #selector(self.doneAction(_:))) + textField.addPreviousNextDoneOnKeyboardWithTarget(nil, previousAction: #selector(self.previousAction(_:)), nextAction: #selector(self.nextAction(_:)), doneAction: #selector(self.doneAction(_:))) + + disabledDistanceHandlingClasses.append(UITableViewController.self) + disabledDistanceHandlingClasses.append(UIAlertController.self) + disabledToolbarClasses.append(UIAlertController.self) + disabledTouchResignedClasses.append(UIAlertController.self) + toolbarPreviousNextAllowedClasses.append(UITableView.self) + toolbarPreviousNextAllowedClasses.append(UICollectionView.self) + toolbarPreviousNextAllowedClasses.append(IQPreviousNextView.self) + touchResignedGestureIgnoreClasses.append(UIControl.self) + touchResignedGestureIgnoreClasses.append(UINavigationBar.self) + } + + /** Override +load method to enable KeyboardManager when class loader load IQKeyboardManager. Enabling when app starts (No need to write any code) */ + /** It doesn't work from Swift 1.2 */ +// override public class func load() { +// super.load() +// +// //Enabling IQKeyboardManager. +// IQKeyboardManager.shared.enable = true +// } + + deinit { + // Disable the keyboard manager. + enable = false + + //Removing notification observers on dealloc. + NotificationCenter.default.removeObserver(self) + } + + /** Getting keyWindow. */ + private func keyWindow() -> UIWindow? { + + if let keyWindow = _textFieldView?.window { + return keyWindow + } else { + + struct Static { + /** @abstract Save keyWindow object for reuse. + @discussion Sometimes [[UIApplication sharedApplication] keyWindow] is returning nil between the app. */ + static weak var keyWindow : UIWindow? + } + + //If original key window is not nil and the cached keywindow is also not original keywindow then changing keywindow. + if let originalKeyWindow = UIApplication.shared.keyWindow, + (Static.keyWindow == nil || Static.keyWindow != originalKeyWindow) { + Static.keyWindow = originalKeyWindow + } + + //Return KeyWindow + return Static.keyWindow + } + } + + ///----------------------- + /// MARK: Helper Functions + ///----------------------- + + private func optimizedAdjustPosition() { + if _privateHasPendingAdjustRequest == false { + _privateHasPendingAdjustRequest = true + OperationQueue.main.addOperation { + self.adjustPosition() + self._privateHasPendingAdjustRequest = false + } + } + } + + /* Adjusting RootViewController's frame according to interface orientation. */ + private func adjustPosition() { + + // We are unable to get textField object while keyboard showing on UIWebView's textField. (Bug ID: #11) + if _privateHasPendingAdjustRequest == true, + let textFieldView = _textFieldView, + let rootController = textFieldView.parentContainerViewController(), + let window = keyWindow(), + let textFieldViewRectInWindow = textFieldView.superview?.convert(textFieldView.frame, to: window), + let textFieldViewRectInRootSuperview = textFieldView.superview?.convert(textFieldView.frame, to: rootController.view?.superview) + { + let startTime = CACurrentMediaTime() + showLog("****** \(#function) started ******") + + // Getting RootViewOrigin. + var rootViewOrigin = rootController.view.frame.origin + + //Maintain keyboardDistanceFromTextField + var specialKeyboardDistanceFromTextField = textFieldView.keyboardDistanceFromTextField + + if let searchBar = textFieldView.textFieldSearchBar() { + + specialKeyboardDistanceFromTextField = searchBar.keyboardDistanceFromTextField + } + + let newKeyboardDistanceFromTextField = (specialKeyboardDistanceFromTextField == kIQUseDefaultKeyboardDistance) ? keyboardDistanceFromTextField : specialKeyboardDistanceFromTextField + var kbSize = _kbSize + kbSize.height += newKeyboardDistanceFromTextField + + let navigationBarAreaHeight : CGFloat = UIApplication.shared.statusBarFrame.height + ( rootController.navigationController?.navigationBar.frame.height ?? 0) + let layoutAreaHeight : CGFloat = rootController.view.layoutMargins.bottom + + let topLayoutGuide : CGFloat = max(navigationBarAreaHeight, layoutAreaHeight) + 5 + let bottomLayoutGuide : CGFloat = (textFieldView is UITextView) ? 0 : rootController.view.layoutMargins.bottom //Validation of textView for case where there is a tab bar at the bottom or running on iPhone X and textView is at the bottom. + + // Move positive = textField is hidden. + // Move negative = textField is showing. + // Calculating move position. + var move : CGFloat = min(textFieldViewRectInRootSuperview.minY-(topLayoutGuide), textFieldViewRectInWindow.maxY-(window.frame.height-kbSize.height)+bottomLayoutGuide) + + showLog("Need to move: \(move)") + + var superScrollView : UIScrollView? = nil + var superView = textFieldView.superviewOfClassType(UIScrollView.self) as? UIScrollView + + //Getting UIScrollView whose scrolling is enabled. // (Bug ID: #285) + while let view = superView { + + if (view.isScrollEnabled && view.shouldIgnoreScrollingAdjustment == false) { + superScrollView = view + break + } + else { + // Getting it's superScrollView. // (Enhancement ID: #21, #24) + superView = view.superviewOfClassType(UIScrollView.self) as? UIScrollView + } + } + + //If there was a lastScrollView. // (Bug ID: #34) + if let lastScrollView = _lastScrollView { + //If we can't find current superScrollView, then setting lastScrollView to it's original form. + if superScrollView == nil { + + showLog("Restoring \(lastScrollView._IQDescription()) contentInset to : \(_startingContentInsets) and contentOffset to : \(_startingContentOffset)") + + UIView.animate(withDuration: _animationDuration, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in + + lastScrollView.contentInset = self._startingContentInsets + lastScrollView.scrollIndicatorInsets = self._startingScrollIndicatorInsets + }) { (animated:Bool) -> Void in } + + if lastScrollView.shouldRestoreScrollViewContentOffset == true { + lastScrollView.setContentOffset(_startingContentOffset, animated: UIView.areAnimationsEnabled) + } + + _startingContentInsets = UIEdgeInsets() + _startingScrollIndicatorInsets = UIEdgeInsets() + _startingContentOffset = CGPoint.zero + _lastScrollView = nil + } else if superScrollView != lastScrollView { //If both scrollView's are different, then reset lastScrollView to it's original frame and setting current scrollView as last scrollView. + + showLog("Restoring \(lastScrollView._IQDescription()) contentInset to : \(_startingContentInsets) and contentOffset to : \(_startingContentOffset)") + + UIView.animate(withDuration: _animationDuration, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in + + lastScrollView.contentInset = self._startingContentInsets + lastScrollView.scrollIndicatorInsets = self._startingScrollIndicatorInsets + }) { (animated:Bool) -> Void in } + + if lastScrollView.shouldRestoreScrollViewContentOffset == true { + lastScrollView.setContentOffset(_startingContentOffset, animated: UIView.areAnimationsEnabled) + } + + _lastScrollView = superScrollView + if let scrollView = superScrollView { + _startingContentInsets = scrollView.contentInset + _startingScrollIndicatorInsets = scrollView.scrollIndicatorInsets + _startingContentOffset = scrollView.contentOffset + } + + showLog("Saving New \(lastScrollView._IQDescription()) contentInset : \(_startingContentInsets) and contentOffset : \(_startingContentOffset)") + } + //Else the case where superScrollView == lastScrollView means we are on same scrollView after switching to different textField. So doing nothing, going ahead + } else if let unwrappedSuperScrollView = superScrollView { //If there was no lastScrollView and we found a current scrollView. then setting it as lastScrollView. + _lastScrollView = unwrappedSuperScrollView + _startingContentInsets = unwrappedSuperScrollView.contentInset + _startingScrollIndicatorInsets = unwrappedSuperScrollView.scrollIndicatorInsets + _startingContentOffset = unwrappedSuperScrollView.contentOffset + + showLog("Saving \(unwrappedSuperScrollView._IQDescription()) contentInset : \(_startingContentInsets) and contentOffset : \(_startingContentOffset)") + } + + // Special case for ScrollView. + // If we found lastScrollView then setting it's contentOffset to show textField. + if let lastScrollView = _lastScrollView { + //Saving + var lastView = textFieldView + var superScrollView = _lastScrollView + + while let scrollView = superScrollView { + + //Looping in upper hierarchy until we don't found any scrollView in it's upper hirarchy till UIWindow object. + if move > 0 ? (move > (-scrollView.contentOffset.y - scrollView.contentInset.top)) : scrollView.contentOffset.y>0 { + + var tempScrollView = scrollView.superviewOfClassType(UIScrollView.self) as? UIScrollView + var nextScrollView : UIScrollView? = nil + while let view = tempScrollView { + + if (view.isScrollEnabled && view.shouldIgnoreScrollingAdjustment == false) { + nextScrollView = view + break + } else { + tempScrollView = view.superviewOfClassType(UIScrollView.self) as? UIScrollView + } + } + + //Getting lastViewRect. + if let lastViewRect = lastView.superview?.convert(lastView.frame, to: scrollView) { + + //Calculating the expected Y offset from move and scrollView's contentOffset. + var shouldOffsetY = scrollView.contentOffset.y - min(scrollView.contentOffset.y,-move) + + //Rearranging the expected Y offset according to the view. + shouldOffsetY = min(shouldOffsetY, lastViewRect.origin.y) + + //[_textFieldView isKindOfClass:[UITextView class]] If is a UITextView type + //nextScrollView == nil If processing scrollView is last scrollView in upper hierarchy (there is no other scrollView upper hierrchy.) + //[_textFieldView isKindOfClass:[UITextView class]] If is a UITextView type + //shouldOffsetY >= 0 shouldOffsetY must be greater than in order to keep distance from navigationBar (Bug ID: #92) + if textFieldView is UITextView == true && + nextScrollView == nil && + shouldOffsetY >= 0 { + + // Converting Rectangle according to window bounds. + if let currentTextFieldViewRect = textFieldView.superview?.convert(textFieldView.frame, to: window) { + + //Calculating expected fix distance which needs to be managed from navigation bar + let expectedFixDistance = currentTextFieldViewRect.minY - topLayoutGuide + + //Now if expectedOffsetY (superScrollView.contentOffset.y + expectedFixDistance) is lower than current shouldOffsetY, which means we're in a position where navigationBar up and hide, then reducing shouldOffsetY with expectedOffsetY (superScrollView.contentOffset.y + expectedFixDistance) + shouldOffsetY = min(shouldOffsetY, scrollView.contentOffset.y + expectedFixDistance) + + //Setting move to 0 because now we don't want to move any view anymore (All will be managed by our contentInset logic. + move = 0 + } + else { + //Subtracting the Y offset from the move variable, because we are going to change scrollView's contentOffset.y to shouldOffsetY. + move -= (shouldOffsetY-scrollView.contentOffset.y) + } + } + else + { + //Subtracting the Y offset from the move variable, because we are going to change scrollView's contentOffset.y to shouldOffsetY. + move -= (shouldOffsetY-scrollView.contentOffset.y) + } + + //Getting problem while using `setContentOffset:animated:`, So I used animation API. + UIView.animate(withDuration: _animationDuration, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in + + self.showLog("Adjusting \(scrollView.contentOffset.y-shouldOffsetY) to \(scrollView._IQDescription()) ContentOffset") + + self.showLog("Remaining Move: \(move)") + + scrollView.contentOffset = CGPoint(x: scrollView.contentOffset.x, y: shouldOffsetY) + }) { (animated:Bool) -> Void in } + } + + // Getting next lastView & superScrollView. + lastView = scrollView + superScrollView = nextScrollView + } else { + break + } + } + + //Updating contentInset + if let lastScrollViewRect = lastScrollView.superview?.convert(lastScrollView.frame, to: window) { + + let bottom : CGFloat = (kbSize.height-newKeyboardDistanceFromTextField)-(window.frame.height-lastScrollViewRect.maxY) + + // Update the insets so that the scroll vew doesn't shift incorrectly when the offset is near the bottom of the scroll view. + var movedInsets = lastScrollView.contentInset + + movedInsets.bottom = max(_startingContentInsets.bottom, bottom) + + showLog("\(lastScrollView._IQDescription()) old ContentInset : \(lastScrollView.contentInset)") + + //Getting problem while using `setContentOffset:animated:`, So I used animation API. + UIView.animate(withDuration: _animationDuration, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in + lastScrollView.contentInset = movedInsets + + var newInset = lastScrollView.scrollIndicatorInsets + newInset.bottom = movedInsets.bottom + lastScrollView.scrollIndicatorInsets = newInset + + }) { (animated:Bool) -> Void in } + + showLog("\(lastScrollView._IQDescription()) new ContentInset : \(lastScrollView.contentInset)") + } + } + //Going ahead. No else if. + + //Special case for UITextView(Readjusting textView.contentInset when textView hight is too big to fit on screen) + //_lastScrollView If not having inside any scrollView, (now contentInset manages the full screen textView. + //[_textFieldView isKindOfClass:[UITextView class]] If is a UITextView type + if let textView = textFieldView as? UITextView { + +// CGRect rootSuperViewFrameInWindow = [_rootViewController.view.superview convertRect:_rootViewController.view.superview.bounds toView:keyWindow]; +// +// CGFloat keyboardOverlapping = CGRectGetMaxY(rootSuperViewFrameInWindow) - keyboardYPosition; +// +// CGFloat textViewHeight = MIN(CGRectGetHeight(_textFieldView.frame), (CGRectGetHeight(rootSuperViewFrameInWindow)-topLayoutGuide-keyboardOverlapping)); + + let keyboardYPosition = window.frame.height - (kbSize.height-newKeyboardDistanceFromTextField) + var rootSuperViewFrameInWindow = window.frame + if let rootSuperview = rootController.view.superview { + rootSuperViewFrameInWindow = rootSuperview.convert(rootSuperview.bounds, to: window) + } + + let keyboardOverlapping = rootSuperViewFrameInWindow.maxY - keyboardYPosition + + let textViewHeight = min(textView.frame.height, rootSuperViewFrameInWindow.height-topLayoutGuide-keyboardOverlapping) + + if (textView.frame.size.height-textView.contentInset.bottom>textViewHeight) + { + UIView.animate(withDuration: _animationDuration, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in + + self.showLog("\(textFieldView._IQDescription()) Old UITextView.contentInset : \(textView.contentInset)") + + //_isTextViewContentInsetChanged, If frame is not change by library in past, then saving user textView properties (Bug ID: #92) + if (self.isTextViewContentInsetChanged == false) + { + self.startingTextViewContentInsets = textView.contentInset + self.startingTextViewScrollIndicatorInsets = textView.scrollIndicatorInsets + } + + var newContentInset = textView.contentInset + newContentInset.bottom = textView.frame.size.height-textViewHeight + textView.contentInset = newContentInset + textView.scrollIndicatorInsets = newContentInset + self.isTextViewContentInsetChanged = true + + self.showLog("\(textFieldView._IQDescription()) Old UITextView.contentInset : \(textView.contentInset)") + + + }, completion: { (finished) -> Void in }) + } + } + + // +Positive or zero. + if move >= 0 { + + rootViewOrigin.y -= move + + rootViewOrigin.y = max(rootViewOrigin.y, min(0, -(kbSize.height-newKeyboardDistanceFromTextField))) + + showLog("Moving Upward") + // Setting adjusted rootViewRect + + UIView.animate(withDuration: _animationDuration, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in + + var rect = rootController.view.frame + rect.origin = rootViewOrigin + rootController.view.frame = rect + + //Animating content if needed (Bug ID: #204) + if self.layoutIfNeededOnUpdate == true { + //Animating content (Bug ID: #160) + rootController.view.setNeedsLayout() + rootController.view.layoutIfNeeded() + } + + self.showLog("Set \(String(describing: rootController._IQDescription())) origin to : \(rootViewOrigin)") + + }) { (finished) -> Void in } + + _privateMovedDistance = (_topViewBeginOrigin.y-rootViewOrigin.y) + } else { // -Negative + let disturbDistance : CGFloat = rootViewOrigin.y-_topViewBeginOrigin.y + + // disturbDistance Negative = frame disturbed. + // disturbDistance positive = frame not disturbed. + if disturbDistance <= 0 { + + rootViewOrigin.y -= max(move, disturbDistance) + + showLog("Moving Downward") + // Setting adjusted rootViewRect + // Setting adjusted rootViewRect + + UIView.animate(withDuration: _animationDuration, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in + + var rect = rootController.view.frame + rect.origin = rootViewOrigin + rootController.view.frame = rect + + //Animating content if needed (Bug ID: #204) + if self.layoutIfNeededOnUpdate == true { + //Animating content (Bug ID: #160) + rootController.view.setNeedsLayout() + rootController.view.layoutIfNeeded() + } + + self.showLog("Set \(String(describing: rootController._IQDescription())) origin to : \(rootViewOrigin)") + + }) { (finished) -> Void in } + + _privateMovedDistance = (_topViewBeginOrigin.y-rootViewOrigin.y) + } + } + + let elapsedTime = CACurrentMediaTime() - startTime + showLog("****** \(#function) ended: \(elapsedTime) seconds ******\n") + } + } + + private func restorePosition() { + + _privateHasPendingAdjustRequest = false + + // Setting rootViewController frame to it's original position. // (Bug ID: #18) + if _topViewBeginOrigin.equalTo(IQKeyboardManager.kIQCGPointInvalid) == false { + + if let rootViewController = _rootViewController { + + //Used UIViewAnimationOptionBeginFromCurrentState to minimize strange animations. + UIView.animate(withDuration: _animationDuration, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in + + self.showLog("Restoring \(rootViewController._IQDescription()) origin to : \(self._topViewBeginOrigin)") + + // Setting it's new frame + var rect = rootViewController.view.frame + rect.origin = self._topViewBeginOrigin + rootViewController.view.frame = rect + + self._privateMovedDistance = 0 + + if rootViewController.navigationController?.interactivePopGestureRecognizer?.state == .began { + self._rootViewControllerWhilePopGestureRecognizerActive = rootViewController + self._topViewBeginOriginWhilePopGestureRecognizerActive = self._topViewBeginOrigin + } + + //Animating content if needed (Bug ID: #204) + if self.layoutIfNeededOnUpdate == true { + //Animating content (Bug ID: #160) + rootViewController.view.setNeedsLayout() + rootViewController.view.layoutIfNeeded() + } + }) { (finished) -> Void in } + + _rootViewController = nil + } + } + } + + ///--------------------- + /// MARK: Public Methods + ///--------------------- + + /* Refreshes textField/textView position if any external changes is explicitly made by user. */ + @objc public func reloadLayoutIfNeeded() -> Void { + + if privateIsEnabled() == true { + if _privateIsKeyboardShowing == true, + _topViewBeginOrigin.equalTo(IQKeyboardManager.kIQCGPointInvalid) == false, + let textFieldView = _textFieldView, + textFieldView.isAlertViewTextField() == false { + optimizedAdjustPosition() + } + } + } + + ///------------------------------- + /// MARK: UIKeyboard Notifications + ///------------------------------- + + /* UIKeyboardWillShowNotification. */ + @objc internal func keyboardWillShow(_ notification : Notification?) -> Void { + + _kbShowNotification = notification + + // Boolean to know keyboard is showing/hiding + _privateIsKeyboardShowing = true + + let oldKBSize = _kbSize + + if let info = notification?.userInfo { + + #if swift(>=4.2) + let curveUserInfoKey = UIResponder.keyboardAnimationCurveUserInfoKey + let durationUserInfoKey = UIResponder.keyboardAnimationDurationUserInfoKey + let frameEndUserInfoKey = UIResponder.keyboardFrameEndUserInfoKey + #else + let curveUserInfoKey = UIKeyboardAnimationCurveUserInfoKey + let durationUserInfoKey = UIKeyboardAnimationDurationUserInfoKey + let frameEndUserInfoKey = UIKeyboardFrameEndUserInfoKey + #endif + + // Getting keyboard animation. + if let curve = info[curveUserInfoKey] as? UInt { + _animationCurve = .init(rawValue: curve) + } else { + _animationCurve = .curveEaseOut + } + + // Getting keyboard animation duration + if let duration = info[durationUserInfoKey] as? TimeInterval { + + //Saving animation duration + if duration != 0.0 { + _animationDuration = duration + } + } else { + _animationDuration = 0.25 + } + + // Getting UIKeyboardSize. + if let kbFrame = info[frameEndUserInfoKey] as? CGRect { + + let screenSize = UIScreen.main.bounds + + //Calculating actual keyboard displayed size, keyboard frame may be different when hardware keyboard is attached (Bug ID: #469) (Bug ID: #381) + let intersectRect = kbFrame.intersection(screenSize) + + if intersectRect.isNull { + _kbSize = CGSize(width: screenSize.size.width, height: 0) + } else { + _kbSize = intersectRect.size + } + + showLog("UIKeyboard Size : \(_kbSize)") + } + } + + if privateIsEnabled() == false { + return + } + + let startTime = CACurrentMediaTime() + showLog("****** \(#function) started ******") + + // (Bug ID: #5) + if let textFieldView = _textFieldView, _topViewBeginOrigin.equalTo(IQKeyboardManager.kIQCGPointInvalid) == true { + + // keyboard is not showing(At the beginning only). We should save rootViewRect. + _rootViewController = textFieldView.parentContainerViewController() + if let controller = _rootViewController { + + if _rootViewControllerWhilePopGestureRecognizerActive == controller { + _topViewBeginOrigin = _topViewBeginOriginWhilePopGestureRecognizerActive + } else { + _topViewBeginOrigin = controller.view.frame.origin + } + + _rootViewControllerWhilePopGestureRecognizerActive = nil + _topViewBeginOriginWhilePopGestureRecognizerActive = IQKeyboardManager.kIQCGPointInvalid + + self.showLog("Saving \(controller._IQDescription()) beginning origin : \(self._topViewBeginOrigin)") + } + } + + //If last restored keyboard size is different(any orientation accure), then refresh. otherwise not. + if _kbSize.equalTo(oldKBSize) == false { + + //If _textFieldView is inside UITableViewController then let UITableViewController to handle it (Bug ID: #37) (Bug ID: #76) See note:- https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html If it is UIAlertView textField then do not affect anything (Bug ID: #70). + + if _privateIsKeyboardShowing == true, + let textFieldView = _textFieldView, + textFieldView.isAlertViewTextField() == false { + + // keyboard is already showing. adjust position. + optimizedAdjustPosition() + } + } + + let elapsedTime = CACurrentMediaTime() - startTime + showLog("****** \(#function) ended: \(elapsedTime) seconds ******\n") + } + + /* UIKeyboardDidShowNotification. */ + @objc internal func keyboardDidShow(_ notification : Notification?) -> Void { + + if privateIsEnabled() == false { + return + } + + let startTime = CACurrentMediaTime() + showLog("****** \(#function) started ******") + + if let textFieldView = _textFieldView, + let parentController = textFieldView.parentContainerViewController(), (parentController.modalPresentationStyle == UIModalPresentationStyle.formSheet || parentController.modalPresentationStyle == UIModalPresentationStyle.pageSheet), + textFieldView.isAlertViewTextField() == false { + + self.optimizedAdjustPosition() + } + + let elapsedTime = CACurrentMediaTime() - startTime + showLog("****** \(#function) ended: \(elapsedTime) seconds ******\n") + } + + /* UIKeyboardWillHideNotification. So setting rootViewController to it's default frame. */ + @objc internal func keyboardWillHide(_ notification : Notification?) -> Void { + + //If it's not a fake notification generated by [self setEnable:NO]. + if notification != nil { + _kbShowNotification = nil + } + + // Boolean to know keyboard is showing/hiding + _privateIsKeyboardShowing = false + + if let info = notification?.userInfo { + + #if swift(>=4.2) + let durationUserInfoKey = UIResponder.keyboardAnimationDurationUserInfoKey + #else + let durationUserInfoKey = UIKeyboardAnimationDurationUserInfoKey + #endif + + // Getting keyboard animation duration + if let duration = info[durationUserInfoKey] as? TimeInterval { + if duration != 0 { + // Setitng keyboard animation duration + _animationDuration = duration + } + } + } + + //If not enabled then do nothing. + if privateIsEnabled() == false { + return + } + + let startTime = CACurrentMediaTime() + showLog("****** \(#function) started ******") + + //Commented due to #56. Added all the conditions below to handle UIWebView's textFields. (Bug ID: #56) + // We are unable to get textField object while keyboard showing on UIWebView's textField. (Bug ID: #11) + // if (_textFieldView == nil) return + + //Restoring the contentOffset of the lastScrollView + if let lastScrollView = _lastScrollView { + + UIView.animate(withDuration: _animationDuration, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in + + lastScrollView.contentInset = self._startingContentInsets + lastScrollView.scrollIndicatorInsets = self._startingScrollIndicatorInsets + + if lastScrollView.shouldRestoreScrollViewContentOffset == true { + lastScrollView.contentOffset = self._startingContentOffset + } + + self.showLog("Restoring \(lastScrollView._IQDescription()) contentInset to : \(self._startingContentInsets) and contentOffset to : \(self._startingContentOffset)") + + // TODO: restore scrollView state + // This is temporary solution. Have to implement the save and restore scrollView state + var superScrollView : UIScrollView? = lastScrollView + + while let scrollView = superScrollView { + + let contentSize = CGSize(width: max(scrollView.contentSize.width, scrollView.frame.width), height: max(scrollView.contentSize.height, scrollView.frame.height)) + + let minimumY = contentSize.height - scrollView.frame.height + + if minimumY < scrollView.contentOffset.y { + scrollView.contentOffset = CGPoint(x: scrollView.contentOffset.x, y: minimumY) + + self.showLog("Restoring \(scrollView._IQDescription()) contentOffset to : \(self._startingContentOffset)") + } + + superScrollView = scrollView.superviewOfClassType(UIScrollView.self) as? UIScrollView + } + }) { (finished) -> Void in } + } + + restorePosition() + + //Reset all values + _lastScrollView = nil + _kbSize = CGSize.zero + _startingContentInsets = UIEdgeInsets() + _startingScrollIndicatorInsets = UIEdgeInsets() + _startingContentOffset = CGPoint.zero + // topViewBeginRect = CGRectZero //Commented due to #82 + + let elapsedTime = CACurrentMediaTime() - startTime + showLog("****** \(#function) ended: \(elapsedTime) seconds ******\n") + } + + @objc internal func keyboardDidHide(_ notification:Notification) { + + let startTime = CACurrentMediaTime() + showLog("****** \(#function) started ******") + + _topViewBeginOrigin = IQKeyboardManager.kIQCGPointInvalid + + _kbSize = CGSize.zero + + let elapsedTime = CACurrentMediaTime() - startTime + showLog("****** \(#function) ended: \(elapsedTime) seconds ******\n") + } + + ///------------------------------------------- + /// MARK: UITextField/UITextView Notifications + ///------------------------------------------- + + /** UITextFieldTextDidBeginEditingNotification, UITextViewTextDidBeginEditingNotification. Fetching UITextFieldView object. */ + @objc internal func textFieldViewDidBeginEditing(_ notification:Notification) { + + let startTime = CACurrentMediaTime() + showLog("****** \(#function) started ******") + + // Getting object + _textFieldView = notification.object as? UIView + + if overrideKeyboardAppearance == true { + + if let textFieldView = _textFieldView as? UITextField { + //If keyboard appearance is not like the provided appearance + if textFieldView.keyboardAppearance != keyboardAppearance { + //Setting textField keyboard appearance and reloading inputViews. + textFieldView.keyboardAppearance = keyboardAppearance + textFieldView.reloadInputViews() + } + } else if let textFieldView = _textFieldView as? UITextView { + //If keyboard appearance is not like the provided appearance + if textFieldView.keyboardAppearance != keyboardAppearance { + //Setting textField keyboard appearance and reloading inputViews. + textFieldView.keyboardAppearance = keyboardAppearance + textFieldView.reloadInputViews() + } + } + } + + //If autoToolbar enable, then add toolbar on all the UITextField/UITextView's if required. + if privateIsEnableAutoToolbar() == true { + + //UITextView special case. Keyboard Notification is firing before textView notification so we need to resign it first and then again set it as first responder to add toolbar on it. + if let textView = _textFieldView as? UITextView, + textView.inputAccessoryView == nil { + + UIView.animate(withDuration: 0.00001, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in + + self.addToolbarIfRequired() + + }, completion: { (finished) -> Void in + + //On textView toolbar didn't appear on first time, so forcing textView to reload it's inputViews. + textView.reloadInputViews() + }) + } else { + //Adding toolbar + addToolbarIfRequired() + } + } else { + removeToolbarIfRequired() + } + + resignFirstResponderGesture.isEnabled = privateShouldResignOnTouchOutside() + _textFieldView?.window?.addGestureRecognizer(resignFirstResponderGesture) // (Enhancement ID: #14) + + if privateIsEnabled() == true { + if _topViewBeginOrigin.equalTo(IQKeyboardManager.kIQCGPointInvalid) == true { // (Bug ID: #5) + + _rootViewController = _textFieldView?.parentContainerViewController() + + if let controller = _rootViewController { + + if _rootViewControllerWhilePopGestureRecognizerActive == controller { + _topViewBeginOrigin = _topViewBeginOriginWhilePopGestureRecognizerActive + } else { + _topViewBeginOrigin = controller.view.frame.origin + } + + _rootViewControllerWhilePopGestureRecognizerActive = nil + _topViewBeginOriginWhilePopGestureRecognizerActive = IQKeyboardManager.kIQCGPointInvalid + + self.showLog("Saving \(controller._IQDescription()) beginning origin : \(self._topViewBeginOrigin)") + } + } + + //If _textFieldView is inside ignored responder then do nothing. (Bug ID: #37, #74, #76) + //See notes:- https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html If it is UIAlertView textField then do not affect anything (Bug ID: #70). + if _privateIsKeyboardShowing == true, + let textFieldView = _textFieldView, + textFieldView.isAlertViewTextField() == false { + + // keyboard is already showing. adjust position. + optimizedAdjustPosition() + } + } + + let elapsedTime = CACurrentMediaTime() - startTime + showLog("****** \(#function) ended: \(elapsedTime) seconds ******\n") + } + + /** UITextFieldTextDidEndEditingNotification, UITextViewTextDidEndEditingNotification. Removing fetched object. */ + @objc internal func textFieldViewDidEndEditing(_ notification:Notification) { + + let startTime = CACurrentMediaTime() + showLog("****** \(#function) started ******") + + //Removing gesture recognizer (Enhancement ID: #14) + _textFieldView?.window?.removeGestureRecognizer(resignFirstResponderGesture) + + // We check if there's a change in original frame or not. + + if let textView = _textFieldView as? UITextView { + + if isTextViewContentInsetChanged == true { + + UIView.animate(withDuration: _animationDuration, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in + + self.isTextViewContentInsetChanged = false + + self.showLog("Restoring \(textView._IQDescription()) textView.contentInset to : \(self.startingTextViewContentInsets)") + + //Setting textField to it's initial contentInset + textView.contentInset = self.startingTextViewContentInsets + textView.scrollIndicatorInsets = self.startingTextViewScrollIndicatorInsets + + }, completion: { (finished) -> Void in }) + } + } + + //Setting object to nil + _textFieldView = nil + + let elapsedTime = CACurrentMediaTime() - startTime + showLog("****** \(#function) ended: \(elapsedTime) seconds ******\n") + } + + ///--------------------------------------- + /// MARK: UIStatusBar Notification methods + ///--------------------------------------- + + /** UIApplicationWillChangeStatusBarOrientationNotification. Need to set the textView to it's original position. If any frame changes made. (Bug ID: #92)*/ + @objc internal func willChangeStatusBarOrientation(_ notification:Notification) { + + let startTime = CACurrentMediaTime() + showLog("****** \(#function) started ******") + + //If textViewContentInsetChanged is saved then restore it. + if let textView = _textFieldView as? UITextView { + + if isTextViewContentInsetChanged == true { + + UIView.animate(withDuration: _animationDuration, delay: 0, options: _animationCurve.union(.beginFromCurrentState), animations: { () -> Void in + + self.isTextViewContentInsetChanged = false + + self.showLog("Restoring \(textView._IQDescription()) textView.contentInset to : \(self.startingTextViewContentInsets)") + + //Setting textField to it's initial contentInset + textView.contentInset = self.startingTextViewContentInsets + textView.scrollIndicatorInsets = self.startingTextViewScrollIndicatorInsets + + }, completion: { (finished) -> Void in }) + } + } + + restorePosition() + + let elapsedTime = CACurrentMediaTime() - startTime + showLog("****** \(#function) ended: \(elapsedTime) seconds ******\n") + } + + ///------------------ + /// MARK: AutoToolbar + ///------------------ + + /** Get all UITextField/UITextView siblings of textFieldView. */ + private func responderViews()-> [UIView]? { + + var superConsideredView : UIView? + + //If find any consider responderView in it's upper hierarchy then will get deepResponderView. + for disabledClass in toolbarPreviousNextAllowedClasses { + + superConsideredView = _textFieldView?.superviewOfClassType(disabledClass) + + if superConsideredView != nil { + break + } + } + + //If there is a superConsideredView in view's hierarchy, then fetching all it's subview that responds. No sorting for superConsideredView, it's by subView position. (Enhancement ID: #22) + if let view = superConsideredView { + return view.deepResponderViews() + } else { //Otherwise fetching all the siblings + + if let textFields = _textFieldView?.responderSiblings() { + + //Sorting textFields according to behaviour + switch toolbarManageBehaviour { + //If autoToolbar behaviour is bySubviews, then returning it. + case IQAutoToolbarManageBehaviour.bySubviews: return textFields + + //If autoToolbar behaviour is by tag, then sorting it according to tag property. + case IQAutoToolbarManageBehaviour.byTag: return textFields.sortedArrayByTag() + + //If autoToolbar behaviour is by tag, then sorting it according to tag property. + case IQAutoToolbarManageBehaviour.byPosition: return textFields.sortedArrayByPosition() + } + } else { + return nil + } + } + } + + /** Add toolbar if it is required to add on textFields and it's siblings. */ + private func addToolbarIfRequired() { + + let startTime = CACurrentMediaTime() + showLog("****** \(#function) started ******") + + // Getting all the sibling textFields. + if let siblings = responderViews(), !siblings.isEmpty { + + showLog("Found \(siblings.count) responder sibling(s)") + + if let textField = _textFieldView { + //Either there is no inputAccessoryView or if accessoryView is not appropriate for current situation(There is Previous/Next/Done toolbar). + //setInputAccessoryView: check (Bug ID: #307) + if textField.responds(to: #selector(setter: UITextField.inputAccessoryView)) { + + if textField.inputAccessoryView == nil || + textField.inputAccessoryView?.tag == IQKeyboardManager.kIQPreviousNextButtonToolbarTag || + textField.inputAccessoryView?.tag == IQKeyboardManager.kIQDoneButtonToolbarTag { + + let rightConfiguration : IQBarButtonItemConfiguration + + if let doneBarButtonItemImage = toolbarDoneBarButtonItemImage { + rightConfiguration = IQBarButtonItemConfiguration(image: doneBarButtonItemImage, action: #selector(self.doneAction(_:))) + } else if let doneBarButtonItemText = toolbarDoneBarButtonItemText { + rightConfiguration = IQBarButtonItemConfiguration(title: doneBarButtonItemText, action: #selector(self.doneAction(_:))) + } else { + rightConfiguration = IQBarButtonItemConfiguration(barButtonSystemItem: .done, action: #selector(self.doneAction(_:))) + } + + // If only one object is found, then adding only Done button. + if (siblings.count == 1 && previousNextDisplayMode == .Default) || previousNextDisplayMode == .alwaysHide { + + textField.addKeyboardToolbarWithTarget(target: self, titleText: (shouldShowToolbarPlaceholder ? textField.drawingToolbarPlaceholder : nil), rightBarButtonConfiguration: rightConfiguration, previousBarButtonConfiguration: nil, nextBarButtonConfiguration: nil) + + textField.inputAccessoryView?.tag = IQKeyboardManager.kIQDoneButtonToolbarTag // (Bug ID: #78) + + } else if (siblings.count > 1 && previousNextDisplayMode == .Default) || previousNextDisplayMode == .alwaysShow { + + let prevConfiguration : IQBarButtonItemConfiguration + + if let doneBarButtonItemImage = toolbarPreviousBarButtonItemImage { + prevConfiguration = IQBarButtonItemConfiguration(image: doneBarButtonItemImage, action: #selector(self.previousAction(_:))) + } else if let doneBarButtonItemText = toolbarPreviousBarButtonItemText { + prevConfiguration = IQBarButtonItemConfiguration(title: doneBarButtonItemText, action: #selector(self.previousAction(_:))) + } else { + prevConfiguration = IQBarButtonItemConfiguration(image: (UIImage.keyboardPreviousImage() ?? UIImage()), action: #selector(self.previousAction(_:))) + } + + let nextConfiguration : IQBarButtonItemConfiguration + + if let doneBarButtonItemImage = toolbarNextBarButtonItemImage { + nextConfiguration = IQBarButtonItemConfiguration(image: doneBarButtonItemImage, action: #selector(self.nextAction(_:))) + } else if let doneBarButtonItemText = toolbarNextBarButtonItemText { + nextConfiguration = IQBarButtonItemConfiguration(title: doneBarButtonItemText, action: #selector(self.nextAction(_:))) + } else { + nextConfiguration = IQBarButtonItemConfiguration(image: (UIImage.keyboardNextImage() ?? UIImage()), action: #selector(self.nextAction(_:))) + } + + textField.addKeyboardToolbarWithTarget(target: self, titleText: (shouldShowToolbarPlaceholder ? textField.drawingToolbarPlaceholder : nil), rightBarButtonConfiguration: rightConfiguration, previousBarButtonConfiguration: prevConfiguration, nextBarButtonConfiguration: nextConfiguration) + + textField.inputAccessoryView?.tag = IQKeyboardManager.kIQPreviousNextButtonToolbarTag // (Bug ID: #78) + } + + let toolbar = textField.keyboardToolbar + + // Setting toolbar to keyboard. + if let _textField = textField as? UITextField { + + //Bar style according to keyboard appearance + switch _textField.keyboardAppearance { + + case .dark: + toolbar.barStyle = UIBarStyle.black + toolbar.tintColor = UIColor.white + toolbar.barTintColor = nil + default: + toolbar.barStyle = UIBarStyle.default + toolbar.barTintColor = toolbarBarTintColor + + //Setting toolbar tintColor // (Enhancement ID: #30) + if shouldToolbarUsesTextFieldTintColor { + toolbar.tintColor = _textField.tintColor + } else if let tintColor = toolbarTintColor { + toolbar.tintColor = tintColor + } else { + toolbar.tintColor = UIColor.black + } + } + } else if let _textView = textField as? UITextView { + + //Bar style according to keyboard appearance + switch _textView.keyboardAppearance { + + case .dark: + toolbar.barStyle = UIBarStyle.black + toolbar.tintColor = UIColor.white + toolbar.barTintColor = nil + default: + toolbar.barStyle = UIBarStyle.default + toolbar.barTintColor = toolbarBarTintColor + + if shouldToolbarUsesTextFieldTintColor { + toolbar.tintColor = _textView.tintColor + } else if let tintColor = toolbarTintColor { + toolbar.tintColor = tintColor + } else { + toolbar.tintColor = UIColor.black + } + } + } + + //Setting toolbar title font. // (Enhancement ID: #30) + if shouldShowToolbarPlaceholder == true && + textField.shouldHideToolbarPlaceholder == false { + + //Updating placeholder font to toolbar. //(Bug ID: #148, #272) + if toolbar.titleBarButton.title == nil || + toolbar.titleBarButton.title != textField.drawingToolbarPlaceholder { + toolbar.titleBarButton.title = textField.drawingToolbarPlaceholder + } + + //Setting toolbar title font. // (Enhancement ID: #30) + if let font = placeholderFont { + toolbar.titleBarButton.titleFont = font + } + + //Setting toolbar title color. // (Enhancement ID: #880) + if let color = placeholderColor { + toolbar.titleBarButton.titleColor = color + } + + //Setting toolbar button title color. // (Enhancement ID: #880) + if let color = placeholderButtonColor { + toolbar.titleBarButton.selectableTitleColor = color + } + + } else { + + toolbar.titleBarButton.title = nil + } + + //In case of UITableView (Special), the next/previous buttons has to be refreshed everytime. (Bug ID: #56) + // If firstTextField, then previous should not be enabled. + if siblings.first == textField { + if (siblings.count == 1) { + textField.keyboardToolbar.previousBarButton.isEnabled = false + textField.keyboardToolbar.nextBarButton.isEnabled = false + } else { + textField.keyboardToolbar.previousBarButton.isEnabled = false + textField.keyboardToolbar.nextBarButton.isEnabled = true + } + } else if siblings.last == textField { // If lastTextField then next should not be enaled. + textField.keyboardToolbar.previousBarButton.isEnabled = true + textField.keyboardToolbar.nextBarButton.isEnabled = false + } else { + textField.keyboardToolbar.previousBarButton.isEnabled = true + textField.keyboardToolbar.nextBarButton.isEnabled = true + } + } + } + } + } + + let elapsedTime = CACurrentMediaTime() - startTime + showLog("****** \(#function) ended: \(elapsedTime) seconds ******\n") + } + + /** Remove any toolbar if it is IQToolbar. */ + private func removeToolbarIfRequired() { // (Bug ID: #18) + + let startTime = CACurrentMediaTime() + showLog("****** \(#function) started ******") + + // Getting all the sibling textFields. + if let siblings = responderViews() { + + showLog("Found \(siblings.count) responder sibling(s)") + + for view in siblings { + + if let toolbar = view.inputAccessoryView as? IQToolbar { + + //setInputAccessoryView: check (Bug ID: #307) + if view.responds(to: #selector(setter: UITextField.inputAccessoryView)) && + (toolbar.tag == IQKeyboardManager.kIQDoneButtonToolbarTag || toolbar.tag == IQKeyboardManager.kIQPreviousNextButtonToolbarTag) { + + if let textField = view as? UITextField { + textField.inputAccessoryView = nil + textField.reloadInputViews() + } else if let textView = view as? UITextView { + textView.inputAccessoryView = nil + textView.reloadInputViews() + } + } + } + } + } + + let elapsedTime = CACurrentMediaTime() - startTime + showLog("****** \(#function) ended: \(elapsedTime) seconds ******\n") + } + + /** reloadInputViews to reload toolbar buttons enable/disable state on the fly Enhancement ID #434. */ + @objc public func reloadInputViews() { + + //If enabled then adding toolbar. + if privateIsEnableAutoToolbar() == true { + self.addToolbarIfRequired() + } else { + self.removeToolbarIfRequired() + } + } + + ///------------------------------------ + /// MARK: Debugging & Developer options + ///------------------------------------ + + @objc public var enableDebugging = false + + /** + @warning Use below methods to completely enable/disable notifications registered by library internally. Please keep in mind that library is totally dependent on NSNotification of UITextField, UITextField, Keyboard etc. If you do unregisterAllNotifications then library will not work at all. You should only use below methods if you want to completedly disable all library functions. You should use below methods at your own risk. + */ + @objc public func registerAllNotifications() { + + #if swift(>=4.2) + let UIKeyboardWillShow = UIResponder.keyboardWillShowNotification + let UIKeyboardDidShow = UIResponder.keyboardDidShowNotification + let UIKeyboardWillHide = UIResponder.keyboardWillHideNotification + let UIKeyboardDidHide = UIResponder.keyboardDidHideNotification + + let UITextFieldTextDidBeginEditing = UITextField.textDidBeginEditingNotification + let UITextFieldTextDidEndEditing = UITextField.textDidEndEditingNotification + + let UITextViewTextDidBeginEditing = UITextView.textDidBeginEditingNotification + let UITextViewTextDidEndEditing = UITextView.textDidEndEditingNotification + + let UIApplicationWillChangeStatusBarOrientation = UIApplication.willChangeStatusBarOrientationNotification + #else + let UIKeyboardWillShow = Notification.Name.UIKeyboardWillShow + let UIKeyboardDidShow = Notification.Name.UIKeyboardDidShow + let UIKeyboardWillHide = Notification.Name.UIKeyboardWillHide + let UIKeyboardDidHide = Notification.Name.UIKeyboardDidHide + + let UITextFieldTextDidBeginEditing = Notification.Name.UITextFieldTextDidBeginEditing + let UITextFieldTextDidEndEditing = Notification.Name.UITextFieldTextDidEndEditing + + let UITextViewTextDidBeginEditing = Notification.Name.UITextViewTextDidBeginEditing + let UITextViewTextDidEndEditing = Notification.Name.UITextViewTextDidEndEditing + + let UIApplicationWillChangeStatusBarOrientation = Notification.Name.UIApplicationWillChangeStatusBarOrientation + #endif + + // Registering for keyboard notification. + NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillShow(_:)), name: UIKeyboardWillShow, object: nil) + NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardDidShow(_:)), name: UIKeyboardDidShow, object: nil) + NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillHide(_:)), name: UIKeyboardWillHide, object: nil) + NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardDidHide(_:)), name: UIKeyboardDidHide, object: nil) + + // Registering for UITextField notification. + registerTextFieldViewClass(UITextField.self, didBeginEditingNotificationName: UITextFieldTextDidBeginEditing.rawValue, didEndEditingNotificationName: UITextFieldTextDidEndEditing.rawValue) + + // Registering for UITextView notification. + registerTextFieldViewClass(UITextView.self, didBeginEditingNotificationName: UITextViewTextDidBeginEditing.rawValue, didEndEditingNotificationName: UITextViewTextDidEndEditing.rawValue) + + // Registering for orientation changes notification + NotificationCenter.default.addObserver(self, selector: #selector(self.willChangeStatusBarOrientation(_:)), name: UIApplicationWillChangeStatusBarOrientation, object: UIApplication.shared) + } + + @objc public func unregisterAllNotifications() { + + #if swift(>=4.2) + let UIKeyboardWillShow = UIResponder.keyboardWillShowNotification + let UIKeyboardDidShow = UIResponder.keyboardDidShowNotification + let UIKeyboardWillHide = UIResponder.keyboardWillHideNotification + let UIKeyboardDidHide = UIResponder.keyboardDidHideNotification + + let UITextFieldTextDidBeginEditing = UITextField.textDidBeginEditingNotification + let UITextFieldTextDidEndEditing = UITextField.textDidEndEditingNotification + + let UITextViewTextDidBeginEditing = UITextView.textDidBeginEditingNotification + let UITextViewTextDidEndEditing = UITextView.textDidEndEditingNotification + + let UIApplicationWillChangeStatusBarOrientation = UIApplication.willChangeStatusBarOrientationNotification + #else + let UIKeyboardWillShow = Notification.Name.UIKeyboardWillShow + let UIKeyboardDidShow = Notification.Name.UIKeyboardDidShow + let UIKeyboardWillHide = Notification.Name.UIKeyboardWillHide + let UIKeyboardDidHide = Notification.Name.UIKeyboardDidHide + + let UITextFieldTextDidBeginEditing = Notification.Name.UITextFieldTextDidBeginEditing + let UITextFieldTextDidEndEditing = Notification.Name.UITextFieldTextDidEndEditing + + let UITextViewTextDidBeginEditing = Notification.Name.UITextViewTextDidBeginEditing + let UITextViewTextDidEndEditing = Notification.Name.UITextViewTextDidEndEditing + + let UIApplicationWillChangeStatusBarOrientation = Notification.Name.UIApplicationWillChangeStatusBarOrientation + #endif + + // Unregistering for keyboard notification. + NotificationCenter.default.removeObserver(self, name: UIKeyboardWillShow, object: nil) + NotificationCenter.default.removeObserver(self, name: UIKeyboardDidShow, object: nil) + NotificationCenter.default.removeObserver(self, name: UIKeyboardWillHide, object: nil) + NotificationCenter.default.removeObserver(self, name: UIKeyboardDidHide, object: nil) + + // Unregistering for UITextField notification. + unregisterTextFieldViewClass(UITextField.self, didBeginEditingNotificationName: UITextFieldTextDidBeginEditing.rawValue, didEndEditingNotificationName: UITextFieldTextDidEndEditing.rawValue) + + // Unregistering for UITextView notification. + unregisterTextFieldViewClass(UITextView.self, didBeginEditingNotificationName: UITextViewTextDidBeginEditing.rawValue, didEndEditingNotificationName: UITextViewTextDidEndEditing.rawValue) + + // Unregistering for orientation changes notification + NotificationCenter.default.removeObserver(self, name: UIApplicationWillChangeStatusBarOrientation, object: UIApplication.shared) + } + + private func showLog(_ logString: String) { + + if enableDebugging { + print("IQKeyboardManager: " + logString) + } + } +} + diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardReturnKeyHandler.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardReturnKeyHandler.swift new file mode 100644 index 0000000..cd85ecc --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardReturnKeyHandler.swift @@ -0,0 +1,628 @@ +// +// IQKeyboardReturnKeyHandler.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +import Foundation +import UIKit + +fileprivate class IQTextFieldViewInfoModal : NSObject { + + fileprivate weak var textFieldDelegate: UITextFieldDelegate? + fileprivate weak var textViewDelegate: UITextViewDelegate? + fileprivate weak var textFieldView: UIView? + fileprivate var originalReturnKeyType = UIReturnKeyType.default + + init(textFieldView : UIView?, textFieldDelegate : UITextFieldDelegate?, textViewDelegate : UITextViewDelegate?, originalReturnKeyType : UIReturnKeyType = .default) { + self.textFieldView = textFieldView + self.textFieldDelegate = textFieldDelegate + self.textViewDelegate = textViewDelegate + self.originalReturnKeyType = originalReturnKeyType + } +} + +/** +Manages the return key to work like next/done in a view hierarchy. +*/ +public class IQKeyboardReturnKeyHandler: NSObject , UITextFieldDelegate, UITextViewDelegate { + + + ///--------------- + /// MARK: Settings + ///--------------- + + /** + Delegate of textField/textView. + */ + @objc public weak var delegate: (UITextFieldDelegate & UITextViewDelegate)? + + /** + Set the last textfield return key type. Default is UIReturnKeyDefault. + */ + @objc public var lastTextFieldReturnKeyType : UIReturnKeyType = UIReturnKeyType.default { + + didSet { + + for modal in textFieldInfoCache { + + if let view = modal.textFieldView { + updateReturnKeyTypeOnTextField(view) + } + } + } + } + + ///-------------------------------------- + /// MARK: Initialization/Deinitialization + ///-------------------------------------- + + @objc public override init() { + super.init() + } + + /** + Add all the textFields available in UIViewController's view. + */ + @objc public init(controller : UIViewController) { + super.init() + + addResponderFromView(controller.view) + } + + deinit { + + for modal in textFieldInfoCache { + + if let textField = modal.textFieldView as? UITextField { + textField.returnKeyType = modal.originalReturnKeyType + + textField.delegate = modal.textFieldDelegate + + } else if let textView = modal.textFieldView as? UITextView { + + textView.returnKeyType = modal.originalReturnKeyType + + textView.delegate = modal.textViewDelegate + } + } + + textFieldInfoCache.removeAll() + } + + + ///------------------------ + /// MARK: Private variables + ///------------------------ + private var textFieldInfoCache = [IQTextFieldViewInfoModal]() + + ///------------------------ + /// MARK: Private Functions + ///------------------------ + private func textFieldViewCachedInfo(_ textField : UIView) -> IQTextFieldViewInfoModal? { + + for modal in textFieldInfoCache { + + if let view = modal.textFieldView { + + if view == textField { + return modal + } + } + } + + return nil + } + + private func updateReturnKeyTypeOnTextField(_ view : UIView) + { + var superConsideredView : UIView? + + //If find any consider responderView in it's upper hierarchy then will get deepResponderView. (Bug ID: #347) + for disabledClass in IQKeyboardManager.shared.toolbarPreviousNextAllowedClasses { + + superConsideredView = view.superviewOfClassType(disabledClass) + + if superConsideredView != nil { + break + } + } + + var textFields = [UIView]() + + //If there is a tableView in view's hierarchy, then fetching all it's subview that responds. + if let unwrappedTableView = superConsideredView { // (Enhancement ID: #22) + textFields = unwrappedTableView.deepResponderViews() + } else { //Otherwise fetching all the siblings + + textFields = view.responderSiblings() + + //Sorting textFields according to behaviour + switch IQKeyboardManager.shared.toolbarManageBehaviour { + //If needs to sort it by tag + case .byTag: textFields = textFields.sortedArrayByTag() + //If needs to sort it by Position + case .byPosition: textFields = textFields.sortedArrayByPosition() + default: break + } + } + + if let lastView = textFields.last { + + if let textField = view as? UITextField { + + //If it's the last textField in responder view, else next + textField.returnKeyType = (view == lastView) ? lastTextFieldReturnKeyType : UIReturnKeyType.next + } else if let textView = view as? UITextView { + + //If it's the last textField in responder view, else next + textView.returnKeyType = (view == lastView) ? lastTextFieldReturnKeyType : UIReturnKeyType.next + } + } + } + + + ///---------------------------------------------- + /// MARK: Registering/Unregistering textFieldView + ///---------------------------------------------- + + /** + Should pass UITextField/UITextView intance. Assign textFieldView delegate to self, change it's returnKeyType. + + @param view UITextField/UITextView object to register. + */ + @objc public func addTextFieldView(_ view : UIView) { + + let modal = IQTextFieldViewInfoModal(textFieldView: view, textFieldDelegate: nil, textViewDelegate: nil) + + if let textField = view as? UITextField { + + modal.originalReturnKeyType = textField.returnKeyType + modal.textFieldDelegate = textField.delegate + textField.delegate = self + + } else if let textView = view as? UITextView { + + modal.originalReturnKeyType = textView.returnKeyType + modal.textViewDelegate = textView.delegate + textView.delegate = self + } + + textFieldInfoCache.append(modal) + } + + /** + Should pass UITextField/UITextView intance. Restore it's textFieldView delegate and it's returnKeyType. + + @param view UITextField/UITextView object to unregister. + */ + @objc public func removeTextFieldView(_ view : UIView) { + + if let modal = textFieldViewCachedInfo(view) { + + if let textField = view as? UITextField { + + textField.returnKeyType = modal.originalReturnKeyType + textField.delegate = modal.textFieldDelegate + } else if let textView = view as? UITextView { + + textView.returnKeyType = modal.originalReturnKeyType + textView.delegate = modal.textViewDelegate + } + + if let index = textFieldInfoCache.index(where: { $0.textFieldView == view}) { + + textFieldInfoCache.remove(at: index) + } + } + } + + /** + Add all the UITextField/UITextView responderView's. + + @param view UIView object to register all it's responder subviews. + */ + @objc public func addResponderFromView(_ view : UIView) { + + let textFields = view.deepResponderViews() + + for textField in textFields { + + addTextFieldView(textField) + } + } + + /** + Remove all the UITextField/UITextView responderView's. + + @param view UIView object to unregister all it's responder subviews. + */ + @objc public func removeResponderFromView(_ view : UIView) { + + let textFields = view.deepResponderViews() + + for textField in textFields { + + removeTextFieldView(textField) + } + } + + @discardableResult private func goToNextResponderOrResign(_ view : UIView) -> Bool { + + var superConsideredView : UIView? + + //If find any consider responderView in it's upper hierarchy then will get deepResponderView. (Bug ID: #347) + for disabledClass in IQKeyboardManager.shared.toolbarPreviousNextAllowedClasses { + + superConsideredView = view.superviewOfClassType(disabledClass) + + if superConsideredView != nil { + break + } + } + + var textFields = [UIView]() + + //If there is a tableView in view's hierarchy, then fetching all it's subview that responds. + if let unwrappedTableView = superConsideredView { // (Enhancement ID: #22) + textFields = unwrappedTableView.deepResponderViews() + } else { //Otherwise fetching all the siblings + + textFields = view.responderSiblings() + + //Sorting textFields according to behaviour + switch IQKeyboardManager.shared.toolbarManageBehaviour { + //If needs to sort it by tag + case .byTag: textFields = textFields.sortedArrayByTag() + //If needs to sort it by Position + case .byPosition: textFields = textFields.sortedArrayByPosition() + default: + break + } + } + + //Getting index of current textField. + if let index = textFields.index(of: view) { + //If it is not last textField. then it's next object becomeFirstResponder. + if index < (textFields.count - 1) { + + let nextTextField = textFields[index+1] + nextTextField.becomeFirstResponder() + return false + } else { + + view.resignFirstResponder() + return true + } + } else { + return true + } + } + + + ///--------------------------------------- + /// MARK: UITextField/UITextView delegates + ///--------------------------------------- + + @objc public func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { + + if delegate == nil { + + if let unwrapDelegate = textFieldViewCachedInfo(textField)?.textFieldDelegate { + if unwrapDelegate.responds(to: #selector(UITextFieldDelegate.textFieldShouldBeginEditing(_:))) { + return unwrapDelegate.textFieldShouldBeginEditing?(textField) == true + } + } + } + + return true + } + + @objc public func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { + + if delegate == nil { + + if let unwrapDelegate = textFieldViewCachedInfo(textField)?.textFieldDelegate { + if unwrapDelegate.responds(to: #selector(UITextFieldDelegate.textFieldShouldEndEditing(_:))) { + return unwrapDelegate.textFieldShouldEndEditing?(textField) == true + } + } + } + + return true + } + + @objc public func textFieldDidBeginEditing(_ textField: UITextField) { + updateReturnKeyTypeOnTextField(textField) + + var aDelegate : UITextFieldDelegate? = delegate + + if aDelegate == nil { + + if let modal = textFieldViewCachedInfo(textField) { + aDelegate = modal.textFieldDelegate + } + } + + aDelegate?.textFieldDidBeginEditing?(textField) + } + + @objc public func textFieldDidEndEditing(_ textField: UITextField) { + + var aDelegate : UITextFieldDelegate? = delegate + + if aDelegate == nil { + + if let modal = textFieldViewCachedInfo(textField) { + aDelegate = modal.textFieldDelegate + } + } + + aDelegate?.textFieldDidEndEditing?(textField) + } + + #if swift(>=4.2) + @available(iOS 10.0, *) + @objc public func textFieldDidEndEditing(_ textField: UITextField, reason: UITextField.DidEndEditingReason) { + + var aDelegate : UITextFieldDelegate? = delegate + + if aDelegate == nil { + + if let modal = textFieldViewCachedInfo(textField) { + aDelegate = modal.textFieldDelegate + } + } + + aDelegate?.textFieldDidEndEditing?(textField, reason: reason) + } + #else + @available(iOS 10.0, *) + @objc public func textFieldDidEndEditing(_ textField: UITextField, reason: UITextFieldDidEndEditingReason) { + + var aDelegate : UITextFieldDelegate? = delegate + + if aDelegate == nil { + + if let modal = textFieldViewCachedInfo(textField) { + aDelegate = modal.textFieldDelegate + } + } + + aDelegate?.textFieldDidEndEditing?(textField, reason: reason) + } + #endif + + @objc public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { + + if delegate == nil { + + if let unwrapDelegate = textFieldViewCachedInfo(textField)?.textFieldDelegate { + if unwrapDelegate.responds(to: #selector(UITextFieldDelegate.textField(_:shouldChangeCharactersIn:replacementString:))) { + return unwrapDelegate.textField?(textField, shouldChangeCharactersIn: range, replacementString: string) == true + } + } + } + return true + } + + @objc public func textFieldShouldClear(_ textField: UITextField) -> Bool { + + if delegate == nil { + + if let unwrapDelegate = textFieldViewCachedInfo(textField)?.textFieldDelegate { + if unwrapDelegate.responds(to: #selector(UITextFieldDelegate.textFieldShouldClear(_:))) { + return unwrapDelegate.textFieldShouldClear?(textField) == true + } + } + } + + return true + } + + + @objc public func textFieldShouldReturn(_ textField: UITextField) -> Bool { + + var shouldReturn = true + + if delegate == nil { + + if let unwrapDelegate = textFieldViewCachedInfo(textField)?.textFieldDelegate { + if unwrapDelegate.responds(to: #selector(UITextFieldDelegate.textFieldShouldReturn(_:))) { + shouldReturn = unwrapDelegate.textFieldShouldReturn?(textField) == true + } + } + } + + if shouldReturn == true { + goToNextResponderOrResign(textField) + return true + } else { + return goToNextResponderOrResign(textField) + } + } + + + @objc public func textViewShouldBeginEditing(_ textView: UITextView) -> Bool { + + if delegate == nil { + + if let unwrapDelegate = textFieldViewCachedInfo(textView)?.textViewDelegate { + if unwrapDelegate.responds(to: #selector(UITextViewDelegate.textViewShouldBeginEditing(_:))) { + return unwrapDelegate.textViewShouldBeginEditing?(textView) == true + } + } + } + + return true + } + + @objc public func textViewShouldEndEditing(_ textView: UITextView) -> Bool { + + if delegate == nil { + + if let unwrapDelegate = textFieldViewCachedInfo(textView)?.textViewDelegate { + if unwrapDelegate.responds(to: #selector(UITextViewDelegate.textViewShouldEndEditing(_:))) { + return unwrapDelegate.textViewShouldEndEditing?(textView) == true + } + } + } + + return true + } + + @objc public func textViewDidBeginEditing(_ textView: UITextView) { + updateReturnKeyTypeOnTextField(textView) + + var aDelegate : UITextViewDelegate? = delegate + + if aDelegate == nil { + + if let modal = textFieldViewCachedInfo(textView) { + aDelegate = modal.textViewDelegate + } + } + + aDelegate?.textViewDidBeginEditing?(textView) + } + + @objc public func textViewDidEndEditing(_ textView: UITextView) { + + var aDelegate : UITextViewDelegate? = delegate + + if aDelegate == nil { + + if let modal = textFieldViewCachedInfo(textView) { + aDelegate = modal.textViewDelegate + } + } + + aDelegate?.textViewDidEndEditing?(textView) + } + + @objc public func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { + + var shouldReturn = true + + if delegate == nil { + + if let unwrapDelegate = textFieldViewCachedInfo(textView)?.textViewDelegate { + if unwrapDelegate.responds(to: #selector(UITextViewDelegate.textView(_:shouldChangeTextIn:replacementText:))) { + shouldReturn = (unwrapDelegate.textView?(textView, shouldChangeTextIn: range, replacementText: text)) == true + } + } + } + + if shouldReturn == true && text == "\n" { + shouldReturn = goToNextResponderOrResign(textView) + } + + return shouldReturn + } + + @objc public func textViewDidChange(_ textView: UITextView) { + + var aDelegate : UITextViewDelegate? = delegate + + if aDelegate == nil { + + if let modal = textFieldViewCachedInfo(textView) { + aDelegate = modal.textViewDelegate + } + } + + aDelegate?.textViewDidChange?(textView) + } + + @objc public func textViewDidChangeSelection(_ textView: UITextView) { + + var aDelegate : UITextViewDelegate? = delegate + + if aDelegate == nil { + + if let modal = textFieldViewCachedInfo(textView) { + aDelegate = modal.textViewDelegate + } + } + + aDelegate?.textViewDidChangeSelection?(textView) + } + + @available(iOS 10.0, *) + @objc public func textView(_ aTextView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { + + if delegate == nil { + + if let unwrapDelegate = textFieldViewCachedInfo(aTextView)?.textViewDelegate { + if unwrapDelegate.responds(to: #selector(textView as (UITextView, URL, NSRange, UITextItemInteraction) -> Bool)) { + return unwrapDelegate.textView?(aTextView, shouldInteractWith: URL, in: characterRange, interaction: interaction) == true + } + } + } + + return true + } + + @available(iOS 10.0, *) + @objc public func textView(_ aTextView: UITextView, shouldInteractWith textAttachment: NSTextAttachment, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { + + if delegate == nil { + + if let unwrapDelegate = textFieldViewCachedInfo(aTextView)?.textViewDelegate { + if unwrapDelegate.responds(to: #selector(textView as (UITextView, NSTextAttachment, NSRange, UITextItemInteraction) -> Bool)) { + return unwrapDelegate.textView?(aTextView, shouldInteractWith: textAttachment, in: characterRange, interaction: interaction) == true + } + } + } + + return true + } + + @available(iOS, deprecated: 10.0) + @objc public func textView(_ aTextView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool { + + if delegate == nil { + + if let unwrapDelegate = textFieldViewCachedInfo(aTextView)?.textViewDelegate { + if unwrapDelegate.responds(to: #selector(textView as (UITextView, URL, NSRange) -> Bool)) { + return unwrapDelegate.textView?(aTextView, shouldInteractWith: URL, in: characterRange) == true + } + } + } + + return true + } + + @available(iOS, deprecated: 10.0) + @objc public func textView(_ aTextView: UITextView, shouldInteractWith textAttachment: NSTextAttachment, in characterRange: NSRange) -> Bool { + + if delegate == nil { + + if let unwrapDelegate = textFieldViewCachedInfo(aTextView)?.textViewDelegate { + if unwrapDelegate.responds(to: #selector(textView as (UITextView, NSTextAttachment, NSRange) -> Bool)) { + return unwrapDelegate.textView?(aTextView, shouldInteractWith: textAttachment, in: characterRange) == true + } + } + } + + return true + } +} diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQTextView/IQTextView.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQTextView/IQTextView.swift new file mode 100644 index 0000000..3f7ec31 --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQTextView/IQTextView.swift @@ -0,0 +1,209 @@ +// +// IQTextView.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +import UIKit + +/** @abstract UITextView with placeholder support */ +open class IQTextView : UITextView { + + @objc required public init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + + #if swift(>=4.2) + let UITextViewTextDidChange = UITextView.textDidChangeNotification + #else + let UITextViewTextDidChange = Notification.Name.UITextViewTextDidChange + #endif + + NotificationCenter.default.addObserver(self, selector: #selector(self.refreshPlaceholder), name:UITextViewTextDidChange, object: self) + } + + @objc override public init(frame: CGRect, textContainer: NSTextContainer?) { + super.init(frame: frame, textContainer: textContainer) + + #if swift(>=4.2) + let notificationName = UITextView.textDidChangeNotification + #else + let notificationName = Notification.Name.UITextViewTextDidChange + #endif + + NotificationCenter.default.addObserver(self, selector: #selector(self.refreshPlaceholder), name: notificationName, object: self) + } + + @objc override open func awakeFromNib() { + super.awakeFromNib() + + #if swift(>=4.2) + let UITextViewTextDidChange = UITextView.textDidChangeNotification + #else + let UITextViewTextDidChange = Notification.Name.UITextViewTextDidChange + #endif + + NotificationCenter.default.addObserver(self, selector: #selector(self.refreshPlaceholder), name: UITextViewTextDidChange, object: self) + } + + deinit { + placeholderLabel.removeFromSuperview() + NotificationCenter.default.removeObserver(self) + } + + private var placeholderInsets : UIEdgeInsets { + return UIEdgeInsets(top: self.textContainerInset.top, left: self.textContainerInset.left + self.textContainer.lineFragmentPadding, bottom: self.textContainerInset.bottom, right: self.textContainerInset.right + self.textContainer.lineFragmentPadding) + } + + private var placeholderExpectedFrame : CGRect { + let placeholderInsets = self.placeholderInsets + let maxWidth = self.frame.width-placeholderInsets.left-placeholderInsets.right + let expectedSize = placeholderLabel.sizeThatFits(CGSize(width: maxWidth, height: self.frame.height-placeholderInsets.top-placeholderInsets.bottom)) + + return CGRect(x: placeholderInsets.left, y: placeholderInsets.top, width: maxWidth, height: expectedSize.height) + } + + lazy var placeholderLabel: UILabel = { + let label = UILabel() + + label.autoresizingMask = [.flexibleWidth, .flexibleHeight] + label.lineBreakMode = .byWordWrapping + label.numberOfLines = 0 + label.font = self.font + label.textAlignment = self.textAlignment + label.backgroundColor = UIColor.clear + label.textColor = UIColor(white: 0.7, alpha: 1.0) + label.alpha = 0 + self.addSubview(label) + + return label + }() + + /** @abstract To set textView's placeholder text color. */ + @IBInspectable open var placeholderTextColor : UIColor? { + + get { + return placeholderLabel.textColor + } + + set { + placeholderLabel.textColor = newValue + } + } + + /** @abstract To set textView's placeholder text. Default is nil. */ + @IBInspectable open var placeholder : String? { + + get { + return placeholderLabel.text + } + + set { + placeholderLabel.text = newValue + refreshPlaceholder() + } + } + + /** @abstract To set textView's placeholder attributed text. Default is nil. */ + open var attributedPlaceholder: NSAttributedString? { + get { + return placeholderLabel.attributedText + } + + set { + placeholderLabel.attributedText = newValue + refreshPlaceholder() + } + } + + @objc override open func layoutSubviews() { + super.layoutSubviews() + + placeholderLabel.frame = placeholderExpectedFrame + } + + @objc internal func refreshPlaceholder() { + + if !text.isEmpty || !attributedText.string.isEmpty { + placeholderLabel.alpha = 0 + } else { + placeholderLabel.alpha = 1 + } + } + + @objc override open var text: String! { + + didSet { + refreshPlaceholder() + } + } + + open override var attributedText: NSAttributedString! { + + didSet { + refreshPlaceholder() + } + } + + @objc override open var font : UIFont? { + + didSet { + + if let unwrappedFont = font { + placeholderLabel.font = unwrappedFont + } else { + placeholderLabel.font = UIFont.systemFont(ofSize: 12) + } + } + } + + @objc override open var textAlignment: NSTextAlignment + { + didSet { + placeholderLabel.textAlignment = textAlignment + } + } + + @objc override open var delegate : UITextViewDelegate? { + + get { + refreshPlaceholder() + return super.delegate + } + + set { + super.delegate = newValue + } + } + + @objc override open var intrinsicContentSize: CGSize { + guard !hasText else { + return super.intrinsicContentSize + } + + var newSize = super.intrinsicContentSize + let placeholderInsets = self.placeholderInsets + newSize.height = placeholderExpectedFrame.height + placeholderInsets.top + placeholderInsets.bottom + + return newSize + } +} + + diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift new file mode 100644 index 0000000..77bd00a --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift @@ -0,0 +1,136 @@ +// +// IQBarButtonItem.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +import UIKit +import Foundation + +open class IQBarButtonItem: UIBarButtonItem { + + private static var _classInitialize: Void = classInitialize() + + @objc public override init() { + _ = IQBarButtonItem._classInitialize + super.init() + } + + @objc public required init?(coder aDecoder: NSCoder) { + _ = IQBarButtonItem._classInitialize + super.init(coder: aDecoder) + } + + + private class func classInitialize() { + + let appearanceProxy = self.appearance() + + #if swift(>=4.2) + let states : [UIControl.State] + #else + let states : [UIControlState] + #endif + + states = [.normal,.highlighted,.disabled,.selected,.application,.reserved] + + for state in states { + + appearanceProxy.setBackgroundImage(nil, for: state, barMetrics: .default) + appearanceProxy.setBackgroundImage(nil, for: state, style: .done, barMetrics: .default) + appearanceProxy.setBackgroundImage(nil, for: state, style: .plain, barMetrics: .default) + appearanceProxy.setBackButtonBackgroundImage(nil, for: state, barMetrics: .default) + } + + appearanceProxy.setTitlePositionAdjustment(UIOffset(), for: .default) + appearanceProxy.setBackgroundVerticalPositionAdjustment(0, for: .default) + appearanceProxy.setBackButtonBackgroundVerticalPositionAdjustment(0, for: .default) + } + + @objc override open var tintColor: UIColor? { + didSet { + + #if swift(>=4.2) + var textAttributes = [NSAttributedString.Key : Any]() + let foregroundColorKey = NSAttributedString.Key.foregroundColor + #elseif swift(>=4) + var textAttributes = [NSAttributedStringKey : Any]() + let foregroundColorKey = NSAttributedStringKey.foregroundColor + #else + var textAttributes = [String:Any]() + let foregroundColorKey = NSForegroundColorAttributeName + #endif + + textAttributes[foregroundColorKey] = tintColor + + #if swift(>=4) + + if let attributes = titleTextAttributes(for: .normal) { + + for (key, value) in attributes { + #if swift(>=4.2) + textAttributes[key] = value + #else + textAttributes[NSAttributedStringKey.init(key)] = value + #endif + } + } + + #else + + if let attributes = titleTextAttributes(for: .normal) { + textAttributes = attributes + } + #endif + + setTitleTextAttributes(textAttributes, for: .normal) + } + } + + /** + Boolean to know if it's a system item or custom item, we are having a limitation that we cannot override a designated initializer, so we are manually setting this property once in initialization + */ + @objc internal var isSystemItem = false + + /** + Additional target & action to do get callback action. Note that setting custom target & selector doesn't affect native functionality, this is just an additional target to get a callback. + + @param target Target object. + @param action Target Selector. + */ + @objc open func setTarget(_ target: AnyObject?, action: Selector?) { + if let target = target, let action = action { + invocation = IQInvocation(target, action) + } else { + invocation = nil + } + } + + /** + Customized Invocation to be called when button is pressed. invocation is internally created using setTarget:action: method. + */ + @objc open var invocation : IQInvocation? + + deinit { + target = nil + invocation = nil + } +} diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift new file mode 100644 index 0000000..cb28e13 --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift @@ -0,0 +1,45 @@ +// +// IQInvocation.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +import UIKit + +public class IQInvocation : NSObject { + public weak var target: AnyObject? + public var action: Selector + + @objc public init(_ target: AnyObject, _ action: Selector) { + self.target = target + self.action = action + } + + @objc public func invoke(from: Any) { + if let target = target { + UIApplication.shared.sendAction(action, to: target, from: from, for: UIEvent()) + } + } + + deinit { + target = nil + } +} diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift new file mode 100644 index 0000000..fb6a879 --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift @@ -0,0 +1,28 @@ +// +// IQPreviousNextView.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import UIKit + +public class IQPreviousNextView: UIView { + +} diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift new file mode 100644 index 0000000..984f80f --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift @@ -0,0 +1,178 @@ +// +// IQTitleBarButtonItem.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +import Foundation +import UIKit + +open class IQTitleBarButtonItem: IQBarButtonItem { + + @objc open var titleFont : UIFont? { + + didSet { + if let unwrappedFont = titleFont { + titleButton?.titleLabel?.font = unwrappedFont + } else { + titleButton?.titleLabel?.font = UIFont.systemFont(ofSize: 13) + } + } + } + + @objc override open var title: String? { + didSet { + titleButton?.setTitle(title, for: .normal) + } + } + + /** + titleColor to be used for displaying button text when displaying title (disabled state). + */ + @objc open var titleColor : UIColor? { + + didSet { + + if let color = titleColor { + titleButton?.setTitleColor(color, for:.disabled) + } else { + titleButton?.setTitleColor(UIColor.lightGray, for:.disabled) + } + } + } + + /** + selectableTitleColor to be used for displaying button text when button is enabled. + */ + @objc open var selectableTitleColor : UIColor? { + + didSet { + + if let color = selectableTitleColor { + titleButton?.setTitleColor(color, for:.normal) + } else { + titleButton?.setTitleColor(UIColor.init(red: 0.0, green: 0.5, blue: 1.0, alpha: 1), for:.normal) + } + } + } + + /** + Customized Invocation to be called on title button action. titleInvocation is internally created using setTitleTarget:action: method. + */ + @objc override open var invocation : IQInvocation? { + + didSet { + + if let target = invocation?.target, let action = invocation?.action { + self.isEnabled = true + titleButton?.isEnabled = true + titleButton?.addTarget(target, action: action, for: .touchUpInside) + } else { + self.isEnabled = false + titleButton?.isEnabled = false + titleButton?.removeTarget(nil, action: nil, for: .touchUpInside) + } + } + } + + internal var titleButton : UIButton? + private var _titleView : UIView? + + override init() { + super.init() + } + + @objc public convenience init(title : String?) { + + self.init(title: nil, style: .plain, target: nil, action: nil) + + _titleView = UIView() + _titleView?.backgroundColor = UIColor.clear + + titleButton = UIButton(type: .system) + titleButton?.isEnabled = false + titleButton?.titleLabel?.numberOfLines = 3 + titleButton?.setTitleColor(UIColor.lightGray, for:.disabled) + titleButton?.setTitleColor(UIColor.init(red: 0.0, green: 0.5, blue: 1.0, alpha: 1), for:.normal) + titleButton?.backgroundColor = UIColor.clear + titleButton?.titleLabel?.textAlignment = .center + titleButton?.setTitle(title, for: .normal) + titleFont = UIFont.systemFont(ofSize: 13.0) + titleButton?.titleLabel?.font = self.titleFont + _titleView?.addSubview(titleButton!) + +#if swift(>=3.2) + if #available(iOS 11, *) { + + var layoutDefaultLowPriority : UILayoutPriority + var layoutDefaultHighPriority : UILayoutPriority + + #if swift(>=4.0) + let layoutPriorityLowValue = UILayoutPriority.defaultLow.rawValue-1 + let layoutPriorityHighValue = UILayoutPriority.defaultHigh.rawValue-1 + layoutDefaultLowPriority = UILayoutPriority(rawValue: layoutPriorityLowValue) + layoutDefaultHighPriority = UILayoutPriority(rawValue: layoutPriorityHighValue) + #else + layoutDefaultLowPriority = UILayoutPriorityDefaultLow-1 + layoutDefaultHighPriority = UILayoutPriorityDefaultHigh-1 + #endif + + _titleView?.translatesAutoresizingMaskIntoConstraints = false + _titleView?.setContentHuggingPriority(layoutDefaultLowPriority, for: .vertical) + _titleView?.setContentHuggingPriority(layoutDefaultLowPriority, for: .horizontal) + _titleView?.setContentCompressionResistancePriority(layoutDefaultHighPriority, for: .vertical) + _titleView?.setContentCompressionResistancePriority(layoutDefaultHighPriority, for: .horizontal) + + titleButton?.translatesAutoresizingMaskIntoConstraints = false + titleButton?.setContentHuggingPriority(layoutDefaultLowPriority, for: .vertical) + titleButton?.setContentHuggingPriority(layoutDefaultLowPriority, for: .horizontal) + titleButton?.setContentCompressionResistancePriority(layoutDefaultHighPriority, for: .vertical) + titleButton?.setContentCompressionResistancePriority(layoutDefaultHighPriority, for: .horizontal) + + let top = NSLayoutConstraint.init(item: titleButton!, attribute: .top, relatedBy: .equal, toItem: _titleView, attribute: .top, multiplier: 1, constant: 0) + let bottom = NSLayoutConstraint.init(item: titleButton!, attribute: .bottom, relatedBy: .equal, toItem: _titleView, attribute: .bottom, multiplier: 1, constant: 0) + let leading = NSLayoutConstraint.init(item: titleButton!, attribute: .leading, relatedBy: .equal, toItem: _titleView, attribute: .leading, multiplier: 1, constant: 0) + let trailing = NSLayoutConstraint.init(item: titleButton!, attribute: .trailing, relatedBy: .equal, toItem: _titleView, attribute: .trailing, multiplier: 1, constant: 0) + + _titleView?.addConstraints([top,bottom,leading,trailing]) + } else { + _titleView?.autoresizingMask = [.flexibleWidth,.flexibleHeight] + titleButton?.autoresizingMask = [.flexibleWidth,.flexibleHeight] + } +#else + _titleView?.autoresizingMask = [.flexibleWidth,.flexibleHeight] + titleButton?.autoresizingMask = [.flexibleWidth,.flexibleHeight] +#endif + + customView = _titleView + } + + @objc required public init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + deinit { + customView = nil + titleButton?.removeTarget(nil, action: nil, for: .touchUpInside) + _titleView = nil + titleButton = nil + } +} diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift new file mode 100644 index 0000000..808bb8e --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift @@ -0,0 +1,369 @@ +// +// IQToolbar.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +import UIKit + +/** @abstract IQToolbar for IQKeyboardManager. */ +open class IQToolbar: UIToolbar , UIInputViewAudioFeedback { + + private static var _classInitialize: Void = classInitialize() + + private class func classInitialize() { + + let appearanceProxy = self.appearance() + + appearanceProxy.barTintColor = nil + + let positions : [UIBarPosition] = [.any,.bottom,.top,.topAttached] + + for position in positions { + + appearanceProxy.setBackgroundImage(nil, forToolbarPosition: position, barMetrics: .default) + appearanceProxy.setShadowImage(nil, forToolbarPosition: .any) + } + + //Background color + appearanceProxy.backgroundColor = nil + } + + /** + Previous bar button of toolbar. + */ + private var privatePreviousBarButton: IQBarButtonItem? + @objc open var previousBarButton : IQBarButtonItem { + get { + if privatePreviousBarButton == nil { + privatePreviousBarButton = IQBarButtonItem(image: nil, style: .plain, target: nil, action: nil) + privatePreviousBarButton?.accessibilityLabel = "Toolbar Previous Button" + } + return privatePreviousBarButton! + } + + set (newValue) { + privatePreviousBarButton = newValue + } + } + + /** + Next bar button of toolbar. + */ + private var privateNextBarButton: IQBarButtonItem? + @objc open var nextBarButton : IQBarButtonItem { + get { + if privateNextBarButton == nil { + privateNextBarButton = IQBarButtonItem(image: nil, style: .plain, target: nil, action: nil) + privateNextBarButton?.accessibilityLabel = "Toolbar Next Button" + } + return privateNextBarButton! + } + + set (newValue) { + privateNextBarButton = newValue + } + } + + /** + Title bar button of toolbar. + */ + private var privateTitleBarButton: IQTitleBarButtonItem? + @objc open var titleBarButton : IQTitleBarButtonItem { + get { + if privateTitleBarButton == nil { + privateTitleBarButton = IQTitleBarButtonItem(title: nil) + privateTitleBarButton?.accessibilityLabel = "Toolbar Title Button" + } + return privateTitleBarButton! + } + + set (newValue) { + privateTitleBarButton = newValue + } + } + + /** + Done bar button of toolbar. + */ + private var privateDoneBarButton: IQBarButtonItem? + @objc open var doneBarButton : IQBarButtonItem { + get { + if privateDoneBarButton == nil { + privateDoneBarButton = IQBarButtonItem(title: nil, style: .done, target: nil, action: nil) + privateDoneBarButton?.accessibilityLabel = "Toolbar Done Button" + } + return privateDoneBarButton! + } + + set (newValue) { + privateDoneBarButton = newValue + } + } + + /** + Fixed space bar button of toolbar. + */ + private var privateFixedSpaceBarButton: IQBarButtonItem? + @objc open var fixedSpaceBarButton : IQBarButtonItem { + get { + if privateFixedSpaceBarButton == nil { + privateFixedSpaceBarButton = IQBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil) + } + privateFixedSpaceBarButton!.isSystemItem = true + + if #available(iOS 10, *) { + privateFixedSpaceBarButton!.width = 6 + } else { + privateFixedSpaceBarButton!.width = 20 + } + + return privateFixedSpaceBarButton! + } + + set (newValue) { + privateFixedSpaceBarButton = newValue + } + } + + override init(frame: CGRect) { + _ = IQToolbar._classInitialize + super.init(frame: frame) + + sizeToFit() + + autoresizingMask = .flexibleWidth + self.isTranslucent = true + } + + @objc required public init?(coder aDecoder: NSCoder) { + _ = IQToolbar._classInitialize + super.init(coder: aDecoder) + + sizeToFit() + + autoresizingMask = .flexibleWidth + self.isTranslucent = true + } + + @objc override open func sizeThatFits(_ size: CGSize) -> CGSize { + var sizeThatFit = super.sizeThatFits(size) + sizeThatFit.height = 44 + return sizeThatFit + } + + @objc override open var tintColor: UIColor! { + + didSet { + if let unwrappedItems = items { + for item in unwrappedItems { + item.tintColor = tintColor + } + } + } + } + + @objc override open var barStyle: UIBarStyle { + didSet { + + if titleBarButton.selectableTitleColor == nil { + if barStyle == .default { + titleBarButton.titleButton?.setTitleColor(UIColor.init(red: 0.0, green: 0.5, blue: 1.0, alpha: 1), for: .normal) + } else { + titleBarButton.titleButton?.setTitleColor(UIColor.yellow, for: .normal) + } + } + } + } + + @objc override open func layoutSubviews() { + + super.layoutSubviews() + + //If running on Xcode9 (iOS11) only then we'll validate for iOS version, otherwise for older versions of Xcode (iOS10 and below) we'll just execute the tweak +#if swift(>=3.2) + + if #available(iOS 11, *) { + return + } else if let customTitleView = titleBarButton.customView { + var leftRect = CGRect.null + var rightRect = CGRect.null + var isTitleBarButtonFound = false + + let sortedSubviews = self.subviews.sorted(by: { (view1 : UIView, view2 : UIView) -> Bool in + + let x1 = view1.frame.minX + let y1 = view1.frame.minY + let x2 = view2.frame.minX + let y2 = view2.frame.minY + + if x1 != x2 { + return x1 < x2 + } else { + return y1 < y2 + } + }) + + for barButtonItemView in sortedSubviews { + + if isTitleBarButtonFound == true { + rightRect = barButtonItemView.frame + break + } else if barButtonItemView === customTitleView { + isTitleBarButtonFound = true + //If it's UIToolbarButton or UIToolbarTextButton (which actually UIBarButtonItem) + } else if barButtonItemView.isKind(of: UIControl.self) == true { + leftRect = barButtonItemView.frame + } + } + + let titleMargin : CGFloat = 16 + + let maxWidth : CGFloat = self.frame.width - titleMargin*2 - (leftRect.isNull ? 0 : leftRect.maxX) - (rightRect.isNull ? 0 : self.frame.width - rightRect.minX) + let maxHeight = self.frame.height + + let sizeThatFits = customTitleView.sizeThatFits(CGSize(width: maxWidth, height: maxHeight)) + + var titleRect : CGRect + + if sizeThatFits.width > 0 && sizeThatFits.height > 0 { + let width = min(sizeThatFits.width, maxWidth) + let height = min(sizeThatFits.height, maxHeight) + + var x : CGFloat + + if (leftRect.isNull == false) { + x = titleMargin + leftRect.maxX + ((maxWidth - width)/2) + } else { + x = titleMargin + } + + let y = (maxHeight - height)/2 + + titleRect = CGRect(x: x, y: y, width: width, height: height) + } else { + + var x : CGFloat + + if (leftRect.isNull == false) { + x = titleMargin + leftRect.maxX + } else { + x = titleMargin + } + + let width : CGFloat = self.frame.width - titleMargin*2 - (leftRect.isNull ? 0 : leftRect.maxX) - (rightRect.isNull ? 0 : self.frame.width - rightRect.minX) + + titleRect = CGRect(x: x, y: 0, width: width, height: maxHeight) + } + + customTitleView.frame = titleRect + } + +#else + if let customTitleView = titleBarButton.customView { + var leftRect = CGRect.null + var rightRect = CGRect.null + var isTitleBarButtonFound = false + + let sortedSubviews = self.subviews.sorted(by: { (view1 : UIView, view2 : UIView) -> Bool in + + let x1 = view1.frame.minX + let y1 = view1.frame.minY + let x2 = view2.frame.minX + let y2 = view2.frame.minY + + if x1 != x2 { + return x1 < x2 + } else { + return y1 < y2 + } + }) + + for barButtonItemView in sortedSubviews { + + if isTitleBarButtonFound == true { + rightRect = barButtonItemView.frame + break + } else if barButtonItemView === titleBarButton.customView { + isTitleBarButtonFound = true + //If it's UIToolbarButton or UIToolbarTextButton (which actually UIBarButtonItem) + } else if barButtonItemView.isKind(of: UIControl.self) == true { + leftRect = barButtonItemView.frame + } + } + + let titleMargin : CGFloat = 16 + let maxWidth : CGFloat = self.frame.width - titleMargin*2 - (leftRect.isNull ? 0 : leftRect.maxX) - (rightRect.isNull ? 0 : self.frame.width - rightRect.minX) + let maxHeight = self.frame.height + + let sizeThatFits = customTitleView.sizeThatFits(CGSize(width: maxWidth, height: maxHeight)) + + var titleRect : CGRect + + if sizeThatFits.width > 0 && sizeThatFits.height > 0 { + let width = min(sizeThatFits.width, maxWidth) + let height = min(sizeThatFits.height, maxHeight) + + var x : CGFloat + + if (leftRect.isNull == false) { + x = titleMargin + leftRect.maxX + ((maxWidth - width)/2) + } else { + x = titleMargin + } + + let y = (maxHeight - height)/2 + + titleRect = CGRect(x: x, y: y, width: width, height: height) + } else { + + var x : CGFloat + + if (leftRect.isNull == false) { + x = titleMargin + leftRect.maxX + } else { + x = titleMargin + } + + let width : CGFloat = self.frame.width - titleMargin*2 - (leftRect.isNull ? 0 : leftRect.maxX) - (rightRect.isNull ? 0 : self.frame.width - rightRect.minX) + + titleRect = CGRect(x: x, y: 0, width: width, height: maxHeight) + } + + customTitleView.frame = titleRect + } +#endif + } + + @objc open var enableInputClicksWhenVisible: Bool { + return true + } + + deinit { + + items = nil + privatePreviousBarButton = nil + privateNextBarButton = nil + privateTitleBarButton = nil + privateDoneBarButton = nil + privateFixedSpaceBarButton = nil + } +} diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift new file mode 100644 index 0000000..a59c7fb --- /dev/null +++ b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift @@ -0,0 +1,612 @@ +// +// IQUIView+IQKeyboardToolbar.swift +// https://github.com/hackiftekhar/IQKeyboardManager +// Copyright (c) 2013-16 Iftekhar Qurashi. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +import UIKit + +private var kIQShouldHideToolbarPlaceholder = "kIQShouldHideToolbarPlaceholder" +private var kIQToolbarPlaceholder = "kIQToolbarPlaceholder" + +private var kIQKeyboardToolbar = "kIQKeyboardToolbar" + +/** + IQBarButtonItemConfiguration for creating toolbar with bar button items + */ +public class IQBarButtonItemConfiguration : NSObject { + + #if swift(>=4.2) + public init(barButtonSystemItem : UIBarButtonItem.SystemItem, action: Selector) { + self.barButtonSystemItem = barButtonSystemItem + self.image = nil + self.title = nil + self.action = action + super.init() + } + #else + public init(barButtonSystemItem : UIBarButtonSystemItem, action: Selector) { + self.barButtonSystemItem = barButtonSystemItem + self.image = nil + self.title = nil + self.action = action + super.init() + } + #endif + + public init(image : UIImage, action: Selector) { + self.barButtonSystemItem = nil + self.image = image + self.title = nil + self.action = action + super.init() + } + + public init(title : String, action: Selector) { + self.barButtonSystemItem = nil + self.image = nil + self.title = title + self.action = action + super.init() + } + + #if swift(>=4.2) + public let barButtonSystemItem : UIBarButtonItem.SystemItem? //System Item to be used to instantiate bar button. + #else + public let barButtonSystemItem : UIBarButtonSystemItem? //System Item to be used to instantiate bar button. + #endif + + public let image : UIImage? //Image to show on bar button item if it's not a system item. + + public let title : String? //Title to show on bar button item if it's not a system item. + + public let action : Selector? //action for bar button item. Usually 'doneAction:(IQBarButtonItem*)item'. +} + +/** + UIImage category methods to get next/prev images + */ +extension UIImage { + + public static func keyboardPreviousiOS9Image() -> UIImage? { + + struct Static { + static var keyboardPreviousiOS9Image : UIImage? + } + + if Static.keyboardPreviousiOS9Image == nil { + // Get the top level "bundle" which may actually be the framework + var bundle = Bundle(for: IQKeyboardManager.self) + + if let resourcePath = bundle.path(forResource: "IQKeyboardManager", ofType: "bundle") { + if let resourcesBundle = Bundle(path: resourcePath) { + bundle = resourcesBundle + } + } + + Static.keyboardPreviousiOS9Image = UIImage(named: "IQButtonBarArrowLeft", in: bundle, compatibleWith: nil) + + //Support for RTL languages like Arabic, Persia etc... (Bug ID: #448) + if #available(iOS 9, *) { + Static.keyboardPreviousiOS9Image = Static.keyboardPreviousiOS9Image?.imageFlippedForRightToLeftLayoutDirection() + } + } + + return Static.keyboardPreviousiOS9Image + } + + public static func keyboardNextiOS9Image() -> UIImage? { + + struct Static { + static var keyboardNextiOS9Image : UIImage? + } + + if Static.keyboardNextiOS9Image == nil { + // Get the top level "bundle" which may actually be the framework + var bundle = Bundle(for: IQKeyboardManager.self) + + if let resourcePath = bundle.path(forResource: "IQKeyboardManager", ofType: "bundle") { + if let resourcesBundle = Bundle(path: resourcePath) { + bundle = resourcesBundle + } + } + + Static.keyboardNextiOS9Image = UIImage(named: "IQButtonBarArrowRight", in: bundle, compatibleWith: nil) + + //Support for RTL languages like Arabic, Persia etc... (Bug ID: #448) + if #available(iOS 9, *) { + Static.keyboardNextiOS9Image = Static.keyboardNextiOS9Image?.imageFlippedForRightToLeftLayoutDirection() + } + } + + return Static.keyboardNextiOS9Image + } + + public static func keyboardPreviousiOS10Image() -> UIImage? { + + struct Static { + static var keyboardPreviousiOS10Image : UIImage? + } + + if Static.keyboardPreviousiOS10Image == nil { + // Get the top level "bundle" which may actually be the framework + var bundle = Bundle(for: IQKeyboardManager.self) + + if let resourcePath = bundle.path(forResource: "IQKeyboardManager", ofType: "bundle") { + if let resourcesBundle = Bundle(path: resourcePath) { + bundle = resourcesBundle + } + } + + Static.keyboardPreviousiOS10Image = UIImage(named: "IQButtonBarArrowUp", in: bundle, compatibleWith: nil) + + //Support for RTL languages like Arabic, Persia etc... (Bug ID: #448) + if #available(iOS 9, *) { + Static.keyboardPreviousiOS10Image = Static.keyboardPreviousiOS10Image?.imageFlippedForRightToLeftLayoutDirection() + } + } + + return Static.keyboardPreviousiOS10Image + } + + public static func keyboardNextiOS10Image() -> UIImage? { + + struct Static { + static var keyboardNextiOS10Image : UIImage? + } + + if Static.keyboardNextiOS10Image == nil { + // Get the top level "bundle" which may actually be the framework + var bundle = Bundle(for: IQKeyboardManager.self) + + if let resourcePath = bundle.path(forResource: "IQKeyboardManager", ofType: "bundle") { + if let resourcesBundle = Bundle(path: resourcePath) { + bundle = resourcesBundle + } + } + + Static.keyboardNextiOS10Image = UIImage(named: "IQButtonBarArrowDown", in: bundle, compatibleWith: nil) + + //Support for RTL languages like Arabic, Persia etc... (Bug ID: #448) + if #available(iOS 9, *) { + Static.keyboardNextiOS10Image = Static.keyboardNextiOS10Image?.imageFlippedForRightToLeftLayoutDirection() + } + } + + return Static.keyboardNextiOS10Image + } + + public static func keyboardPreviousImage() -> UIImage? { + + if #available(iOS 10, *) { + return keyboardPreviousiOS10Image() + } else { + return keyboardPreviousiOS9Image() + } + } + + public static func keyboardNextImage() -> UIImage? { + + if #available(iOS 10, *) { + return keyboardNextiOS10Image() + } else { + return keyboardNextiOS9Image() + } + } +} + +/** +UIView category methods to add IQToolbar on UIKeyboard. +*/ +public extension UIView { + + ///-------------- + /// MARK: Toolbar + ///-------------- + + /** + IQToolbar references for better customization control. + */ + public var keyboardToolbar: IQToolbar { + var toolbar = inputAccessoryView as? IQToolbar + + if (toolbar == nil) + { + toolbar = objc_getAssociatedObject(self, &kIQKeyboardToolbar) as? IQToolbar + } + + if let unwrappedToolbar = toolbar { + + return unwrappedToolbar + + } else { + + let newToolbar = IQToolbar() + + objc_setAssociatedObject(self, &kIQKeyboardToolbar, newToolbar, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) + + return newToolbar + } + } + + ///-------------------- + /// MARK: Toolbar title + ///-------------------- + + /** + If `shouldHideToolbarPlaceholder` is YES, then title will not be added to the toolbar. Default to NO. + */ + @objc public var shouldHideToolbarPlaceholder: Bool { + get { + let aValue = objc_getAssociatedObject(self, &kIQShouldHideToolbarPlaceholder) as Any? + + if let unwrapedValue = aValue as? Bool { + return unwrapedValue + } else { + return false + } + } + set(newValue) { + objc_setAssociatedObject(self, &kIQShouldHideToolbarPlaceholder, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) + + self.keyboardToolbar.titleBarButton.title = self.drawingToolbarPlaceholder + } + } + + /** + `toolbarPlaceholder` to override default `placeholder` text when drawing text on toolbar. + */ + @objc public var toolbarPlaceholder: String? { + get { + let aValue = objc_getAssociatedObject(self, &kIQToolbarPlaceholder) as? String + + return aValue + } + set(newValue) { + objc_setAssociatedObject(self, &kIQToolbarPlaceholder, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) + + self.keyboardToolbar.titleBarButton.title = self.drawingToolbarPlaceholder + } + } + + /** + `drawingToolbarPlaceholder` will be actual text used to draw on toolbar. This would either `placeholder` or `toolbarPlaceholder`. + */ + @objc public var drawingToolbarPlaceholder: String? { + + if (self.shouldHideToolbarPlaceholder) + { + return nil + } + else if (self.toolbarPlaceholder?.isEmpty == false) { + return self.toolbarPlaceholder + } + else if self.responds(to: #selector(getter: UITextField.placeholder)) { + + if let textField = self as? UITextField { + return textField.placeholder + } else if let textView = self as? IQTextView { + return textView.placeholder + } else { + return nil + } + } + else { + return nil + } + } + + ///--------------------- + /// MARK: Private helper + ///--------------------- + + private static func flexibleBarButtonItem () -> IQBarButtonItem { + + struct Static { + + static let nilButton = IQBarButtonItem(barButtonSystemItem:.flexibleSpace, target: nil, action: nil) + } + + Static.nilButton.isSystemItem = true + return Static.nilButton + } + + ///------------- + /// MARK: Common + ///------------- + + @objc public func addKeyboardToolbarWithTarget(target : AnyObject?, titleText : String?, rightBarButtonConfiguration:IQBarButtonItemConfiguration?, previousBarButtonConfiguration:IQBarButtonItemConfiguration? = nil, nextBarButtonConfiguration:IQBarButtonItemConfiguration? = nil) { + + //If can't set InputAccessoryView. Then return + if self.responds(to: #selector(setter: UITextField.inputAccessoryView)) { + + // Creating a toolBar for phoneNumber keyboard + let toolbar = self.keyboardToolbar + + var items : [IQBarButtonItem] = [] + + if let prevConfig = previousBarButtonConfiguration { + + var prev = toolbar.previousBarButton + + if prevConfig.barButtonSystemItem == nil && prev.isSystemItem == false { + prev.title = prevConfig.title + prev.image = prevConfig.image + prev.target = target + prev.action = prevConfig.action + } else { + if let systemItem = prevConfig.barButtonSystemItem { + prev = IQBarButtonItem(barButtonSystemItem: systemItem, target: target, action: prevConfig.action) + prev.isSystemItem = true + } else if let image = prevConfig.image { + prev = IQBarButtonItem(image: image, style: .plain, target: target, action: prevConfig.action) + } else { + prev = IQBarButtonItem(title: prevConfig.title, style: .plain, target: target, action: prevConfig.action) + } + + prev.invocation = toolbar.previousBarButton.invocation + prev.accessibilityLabel = toolbar.previousBarButton.accessibilityLabel + toolbar.previousBarButton = prev + } + + items.append(prev) + } + + if previousBarButtonConfiguration != nil && nextBarButtonConfiguration != nil { + + items.append(toolbar.fixedSpaceBarButton) + } + + if let nextConfig = nextBarButtonConfiguration { + + var next = toolbar.nextBarButton + + if nextConfig.barButtonSystemItem == nil && next.isSystemItem == false { + next.title = nextConfig.title + next.image = nextConfig.image + next.target = target + next.action = nextConfig.action + } else { + if let systemItem = nextConfig.barButtonSystemItem { + next = IQBarButtonItem(barButtonSystemItem: systemItem, target: target, action: nextConfig.action) + next.isSystemItem = true + } else if let image = nextConfig.image { + next = IQBarButtonItem(image: image, style: .plain, target: target, action: nextConfig.action) + } else { + next = IQBarButtonItem(title: nextConfig.title, style: .plain, target: target, action: nextConfig.action) + } + + next.invocation = toolbar.nextBarButton.invocation + next.accessibilityLabel = toolbar.nextBarButton.accessibilityLabel + toolbar.nextBarButton = next + } + + items.append(next) + } + + //Title bar button item + do { + //Flexible space + items.append(UIView.flexibleBarButtonItem()) + + //Title button + toolbar.titleBarButton.title = titleText + + #if swift(>=3.2) + if #available(iOS 11, *) {} + else { + toolbar.titleBarButton.customView?.frame = CGRect.zero + } + #else + toolbar.titleBarButton.customView?.frame = CGRect.zero + #endif + + items.append(toolbar.titleBarButton) + + //Flexible space + items.append(UIView.flexibleBarButtonItem()) + } + + if let rightConfig = rightBarButtonConfiguration { + + var done = toolbar.doneBarButton + + if rightConfig.barButtonSystemItem == nil && done.isSystemItem == false { + done.title = rightConfig.title + done.image = rightConfig.image + done.target = target + done.action = rightConfig.action + } else { + if let systemItem = rightConfig.barButtonSystemItem { + done = IQBarButtonItem(barButtonSystemItem: systemItem, target: target, action: rightConfig.action) + done.isSystemItem = true + } else if let image = rightConfig.image { + done = IQBarButtonItem(image: image, style: .plain, target: target, action: rightConfig.action) + } else { + done = IQBarButtonItem(title: rightConfig.title, style: .plain, target: target, action: rightConfig.action) + } + + done.invocation = toolbar.doneBarButton.invocation + done.accessibilityLabel = toolbar.doneBarButton.accessibilityLabel + toolbar.doneBarButton = done + } + + items.append(done) + } + + // Adding button to toolBar. + toolbar.items = items + + // Setting toolbar to keyboard. + if let textField = self as? UITextField { + textField.inputAccessoryView = toolbar + + switch textField.keyboardAppearance { + case .dark: + toolbar.barStyle = UIBarStyle.black + default: + toolbar.barStyle = UIBarStyle.default + } + } else if let textView = self as? UITextView { + textView.inputAccessoryView = toolbar + + switch textView.keyboardAppearance { + case .dark: + toolbar.barStyle = UIBarStyle.black + default: + toolbar.barStyle = UIBarStyle.default + } + } + } + } + + ///------------ + /// MARK: Right + ///------------ + + @objc public func addDoneOnKeyboardWithTarget(_ target : AnyObject?, action : Selector, shouldShowPlaceholder: Bool = false) { + + addDoneOnKeyboardWithTarget(target, action: action, titleText: (shouldShowPlaceholder ? self.drawingToolbarPlaceholder : nil)) + } + + @objc public func addDoneOnKeyboardWithTarget(_ target : AnyObject?, action : Selector, titleText: String?) { + + let rightConfiguration = IQBarButtonItemConfiguration(barButtonSystemItem: .done, action: action) + + addKeyboardToolbarWithTarget(target: target, titleText: titleText, rightBarButtonConfiguration: rightConfiguration) + } + + + @objc public func addRightButtonOnKeyboardWithImage(_ image : UIImage, target : AnyObject?, action : Selector, shouldShowPlaceholder: Bool = false) { + + addRightButtonOnKeyboardWithImage(image, target: target, action: action, titleText: (shouldShowPlaceholder ? self.drawingToolbarPlaceholder : nil)) + } + + @objc public func addRightButtonOnKeyboardWithImage(_ image : UIImage, target : AnyObject?, action : Selector, titleText: String?) { + + let rightConfiguration = IQBarButtonItemConfiguration(image: image, action: action) + + addKeyboardToolbarWithTarget(target: target, titleText: titleText, rightBarButtonConfiguration: rightConfiguration) + } + + + @objc public func addRightButtonOnKeyboardWithText(_ text : String, target : AnyObject?, action : Selector, shouldShowPlaceholder: Bool = false) { + + addRightButtonOnKeyboardWithText(text, target: target, action: action, titleText: (shouldShowPlaceholder ? self.drawingToolbarPlaceholder : nil)) + } + + @objc public func addRightButtonOnKeyboardWithText(_ text : String, target : AnyObject?, action : Selector, titleText: String?) { + + let rightConfiguration = IQBarButtonItemConfiguration(title: text, action: action) + + addKeyboardToolbarWithTarget(target: target, titleText: titleText, rightBarButtonConfiguration: rightConfiguration) + } + + ///----------------- + /// MARK: Right/Left + ///----------------- + + @objc public func addCancelDoneOnKeyboardWithTarget(_ target : AnyObject?, cancelAction : Selector, doneAction : Selector, shouldShowPlaceholder: Bool = false) { + + addCancelDoneOnKeyboardWithTarget(target, cancelAction: cancelAction, doneAction: doneAction, titleText: (shouldShowPlaceholder ? self.drawingToolbarPlaceholder : nil)) + } + + @objc public func addRightLeftOnKeyboardWithTarget(_ target : AnyObject?, leftButtonTitle : String, rightButtonTitle : String, leftButtonAction : Selector, rightButtonAction : Selector, shouldShowPlaceholder: Bool = false) { + + addRightLeftOnKeyboardWithTarget(target, leftButtonTitle: leftButtonTitle, rightButtonTitle: rightButtonTitle, leftButtonAction: leftButtonAction, rightButtonAction: rightButtonAction, titleText: (shouldShowPlaceholder ? self.drawingToolbarPlaceholder : nil)) + } + + @objc public func addRightLeftOnKeyboardWithTarget(_ target : AnyObject?, leftButtonImage : UIImage, rightButtonImage : UIImage, leftButtonAction : Selector, rightButtonAction : Selector, shouldShowPlaceholder: Bool = false) { + + addRightLeftOnKeyboardWithTarget(target, leftButtonImage: leftButtonImage, rightButtonImage: rightButtonImage, leftButtonAction: leftButtonAction, rightButtonAction: rightButtonAction, titleText: (shouldShowPlaceholder ? self.drawingToolbarPlaceholder : nil)) + } + + @objc public func addCancelDoneOnKeyboardWithTarget(_ target : AnyObject?, cancelAction : Selector, doneAction : Selector, titleText: String?) { + + let leftConfiguration = IQBarButtonItemConfiguration(barButtonSystemItem: .cancel, action: cancelAction) + let rightConfiguration = IQBarButtonItemConfiguration(barButtonSystemItem: .done , action: doneAction) + + addKeyboardToolbarWithTarget(target: target, titleText: titleText, rightBarButtonConfiguration: rightConfiguration, previousBarButtonConfiguration: leftConfiguration) + } + + @objc public func addRightLeftOnKeyboardWithTarget(_ target : AnyObject?, leftButtonTitle : String, rightButtonTitle : String, leftButtonAction : Selector, rightButtonAction : Selector, titleText: String?) { + + let leftConfiguration = IQBarButtonItemConfiguration(title: leftButtonTitle, action: leftButtonAction) + let rightConfiguration = IQBarButtonItemConfiguration(title: rightButtonTitle, action: rightButtonAction) + + addKeyboardToolbarWithTarget(target: target, titleText: titleText, rightBarButtonConfiguration: rightConfiguration, previousBarButtonConfiguration: leftConfiguration) + } + + @objc public func addRightLeftOnKeyboardWithTarget(_ target : AnyObject?, leftButtonImage : UIImage, rightButtonImage : UIImage, leftButtonAction : Selector, rightButtonAction : Selector, titleText: String?) { + + let leftConfiguration = IQBarButtonItemConfiguration(image: leftButtonImage, action: leftButtonAction) + let rightConfiguration = IQBarButtonItemConfiguration(image: rightButtonImage, action: rightButtonAction) + + addKeyboardToolbarWithTarget(target: target, titleText: titleText, rightBarButtonConfiguration: rightConfiguration, previousBarButtonConfiguration: leftConfiguration) + } + + ///-------------------------- + /// MARK: Previous/Next/Right + ///-------------------------- + + @objc public func addPreviousNextDoneOnKeyboardWithTarget (_ target : AnyObject?, previousAction : Selector, nextAction : Selector, doneAction : Selector, shouldShowPlaceholder: Bool = false) { + + addPreviousNextDoneOnKeyboardWithTarget(target, previousAction: previousAction, nextAction: nextAction, doneAction: doneAction, titleText: (shouldShowPlaceholder ? self.drawingToolbarPlaceholder : nil)) + } + + @objc public func addPreviousNextRightOnKeyboardWithTarget(_ target : AnyObject?, rightButtonImage : UIImage, previousAction : Selector, nextAction : Selector, rightButtonAction : Selector, shouldShowPlaceholder : Bool = false) { + + addPreviousNextRightOnKeyboardWithTarget(target, rightButtonImage: rightButtonImage, previousAction: previousAction, nextAction: nextAction, rightButtonAction: rightButtonAction, titleText: (shouldShowPlaceholder ? self.drawingToolbarPlaceholder : nil)) + } + + @objc public func addPreviousNextRightOnKeyboardWithTarget(_ target : AnyObject?, rightButtonTitle : String, previousAction : Selector, nextAction : Selector, rightButtonAction : Selector, shouldShowPlaceholder : Bool = false) { + + addPreviousNextRightOnKeyboardWithTarget(target, rightButtonTitle: rightButtonTitle, previousAction: previousAction, nextAction: nextAction, rightButtonAction: rightButtonAction, titleText: (shouldShowPlaceholder ? self.drawingToolbarPlaceholder : nil)) + } + + @objc public func addPreviousNextDoneOnKeyboardWithTarget (_ target : AnyObject?, previousAction : Selector, nextAction : Selector, doneAction : Selector, titleText: String?) { + + let rightConfiguration = IQBarButtonItemConfiguration(barButtonSystemItem: .done, action: doneAction) + let nextConfiguration = IQBarButtonItemConfiguration(image: UIImage.keyboardNextImage() ?? UIImage(), action: nextAction) + let prevConfiguration = IQBarButtonItemConfiguration(image: UIImage.keyboardPreviousImage() ?? UIImage(), action: previousAction) + + addKeyboardToolbarWithTarget(target: target, titleText: titleText, rightBarButtonConfiguration: rightConfiguration, previousBarButtonConfiguration: prevConfiguration, nextBarButtonConfiguration: nextConfiguration) + } + + @objc public func addPreviousNextRightOnKeyboardWithTarget(_ target : AnyObject?, rightButtonImage : UIImage, previousAction : Selector, nextAction : Selector, rightButtonAction : Selector, titleText : String?) { + + let rightConfiguration = IQBarButtonItemConfiguration(image: rightButtonImage, action: rightButtonAction) + let nextConfiguration = IQBarButtonItemConfiguration(image: UIImage.keyboardNextImage() ?? UIImage(), action: nextAction) + let prevConfiguration = IQBarButtonItemConfiguration(image: UIImage.keyboardPreviousImage() ?? UIImage(), action: previousAction) + + addKeyboardToolbarWithTarget(target: target, titleText: titleText, rightBarButtonConfiguration: rightConfiguration, previousBarButtonConfiguration: prevConfiguration, nextBarButtonConfiguration: nextConfiguration) + } + + @objc public func addPreviousNextRightOnKeyboardWithTarget(_ target : AnyObject?, rightButtonTitle : String, previousAction : Selector, nextAction : Selector, rightButtonAction : Selector, titleText : String?) { + + let rightConfiguration = IQBarButtonItemConfiguration(title: rightButtonTitle, action: rightButtonAction) + let nextConfiguration = IQBarButtonItemConfiguration(image: UIImage.keyboardNextImage() ?? UIImage(), action: nextAction) + let prevConfiguration = IQBarButtonItemConfiguration(image: UIImage.keyboardPreviousImage() ?? UIImage(), action: previousAction) + + addKeyboardToolbarWithTarget(target: target, titleText: titleText, rightBarButtonConfiguration: rightConfiguration, previousBarButtonConfiguration: prevConfiguration, nextBarButtonConfiguration: nextConfiguration) + } +} + diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowDown@2x.png b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowDown@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..81db2ed2407db352e0d31a45fe4521ea21b6efdd GIT binary patch literal 1764 zcmY*aX;_oT8vQC_LLfx}NyJb;BKsB~s1TAMCX|Fq#7JZb3Slt>Nx~8Y%BEC%*%K*+ zltsXcWr?6(d7x~)qEs#GRYU<%%Nl8svZ+8o`bDkx-g%yxcjnBQbKZC6$7Fai+>i)8 z1ONa?I*rPNqB+#j@NLkT9VOg=!d9+}hYJAQ5Ua0qRG~E(Ok;Wgz}LnAaP~X^tU=J( zmjDoJ0|37V0suh@0I0~4mZL;yLoJf#8v_99+RFYJP*j2jfX{q+UOplpkHdsuA>W!4 zA`A+(j^{^0Yycp}6QC(SRKx+}`4NH`LOcokoNCG#6*<=;(;EvBTNfSwRe| zm;`}{6K^Gm+517{ZyjoAOmH+WQp6JqK&37xNEj<3VX;c1PwhjVBHpS0ItgMvmIW1v zQ|{nwt!;3hw4tL!B}zCF%?pK`mHK2`;(O-*VIO^nIHmdjB=e!t_b5~<89~H-x;8T6 z@NE-c=+R!&sV-hLE#b$`^^wcWrcGO96 zLsNiNK{wuRM;58>{Q7p1)&}Lf;n~8-Ag<<&$IF9n)Oe=yEV4!ZQRoF%oG+B-In12ENTna7O=0}U|*WazQ- z^=scF!Pe5wV)tJQlW9h~7TI-^)=y%y?stci-#GN?R?bJ&Jks|px|z_o)cNKx86S}p z86Z>#D<(NLlPTCmP%!Mk{c#^xZ*0Xbsj>ZbkRagAm=y!IOSe!bj z@)po4UX@kPQPO2Q0(f;tx{D929mC@bw+nym8Z-}|o!_jte)pO6?R|dyV7!7 z{d1#RZRg})O&q?i-MwskNjOpBI^LSO+?Ww@hNw0)HWl-@(`0fo%i&ntHwzjWIn=VH z{LzAQ6?_(L`3WmOc}RzGoa=Pk;N8?!OEUQI@gZ`AFf$3i-@C2EzcvC;Gb*FBw`E1K zXqT5-E`Mv+oV~iZkbARski9n2fhc=qi-8Sn4}t5`_6@7?9gqwVS#OBqsL)JTEx{M^ zgX-=KN#oi8>f!Wn$546q_HXHWcXd{H#=$OUaL+9#bcl(7{q#`9wf_8W@5IDJc2!kX zb4!hh-V61gG?SbesJekeiDJg|vzRbh>*%~%&-!9{MW2dd>58w}B!(iL!nkoXegiH} zqu)7t*NRtmUDuc~ciFfeWnUE-WrEt>wBXy6R)=&KkH>mQF#mwn53buw ztqK{#XIAv`6SuMnxvK9{)teOVS|>Wk-exrXvB-_Le_K2Ufn5_ zZJ{OU&e(wo&8dD;c>wDG>_lIY>XbBP4S3_`q@z_3N}~Gt@5nndk)5cu;bGQ{5#jkA pV?R25;VelvZp3Y6YZ|P3rm7^@nEhw6mCjTCC3IH?wf<0G+Fvc__+kJ6 literal 0 HcmV?d00001 diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowDown@3x.png b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowDown@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..dd3412290d4e1ad8f7d5c0be8a598792922f1964 GIT binary patch literal 2177 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 U0v_c9{YL=cL-nUf$x-}&16+6esQ>@~ literal 0 HcmV?d00001 diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowLeft@3x.png b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowLeft@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..849b991336c0c2e85017ce29be00eb8a8e50f3dc GIT binary patch literal 1815 zcmV+y2k7{TP)Px*(Md!>RA>donO$fcRTRhXo!umxkNqU+M>e~&o9zdcN}y6duoRn8X-i96`>DlZ z5evokp$`>Q^r@f^MHK8qQ7p7jq10+MwMk==244h05b?o>Y<6ao&}cBbTWXTc&RqX@ zn+-E}caz=hY&tJ<&pE?6zd85ZkGVt06TF(6o1Kwh@EssXISgB_vE27|uh;ExI(rC} zPWs%Q@MJRaJs8*%0SX3#Ua8K}ODTOen+QreydL-3$z<~OvIDiXwfSl#sShyE7<+{h z`n1>WnWRQ#wcD+&t<8>_+Mf`#LyW};yA@TGV|LL{EjhAsyEhycmq!h^oqQ z=rhX#6lw{rA`aG%ZrLEhAT!qia{_ve+o}!}2n1Rsi3|`z*NHHMk*k0?3B8`P&5!?_ z!pb{pCQwVIL3C3d3^Mc8kQy_=@Yq$$PYyx{0)M z=cY?%7XfqLq$?m;1|+YRH{kX9F`8D1aTwD-j>gq@MSUUJ5}-&Ru#riWPkJlFAiB;j z49C?EM13*2;u;G3{T*1bc>(9aU=V#c99K$);gA(&2%~8eWuzBF+b6y;hW2|H+8>Gf z#pERewFd&5F^lwI)%J=(bi&RLtI9=DUy8gWppZZGJSL28bdy^Qg3O!)%%`HhRJm** zY&l=Vu)d1`PGbs680mgE{6VVCqbP7|UQka~v=?OnM81qBC_U z5ZX_v^bKN|VF;N;%^X8FSq{VBr(lLqGlwKfcvsZ$hYVL*)3qb9c>K0OXK6DJC=v)A z!y0rAQAFDey6GTb_^_|qWg7NjS$-3du3$8oV6e}e)^%+^x`|JSRlVkG2ry?PLcauz z2@<1eiZFdIGSgF4k~!zuOtc3==P;5!5d#9|k*1No%BVUZ+Nvc}Wae#T=5sLsU>IPw zE2GM?!EgqNW-`5mu~88ST}N$pateA=J&Dg*EoYYwd|gIrX?AlS5Cb4lH?h%r4fO+Te%t??n=My9%usY7Va zh&C%_6A*XI4+m-_8%`?7dNB|t#=E*gUx|^}v}m(R&I96(`SFRZp7mj2eM$_3EoyIC z&+Ho+8JQAoR><=cqtRLHpV$L3GrbML|1j!#8{N61RBWTQc}Ss@n$;*N*L$N!$r zq&u-}{4NHU1b(pshy75$s&9GTkctZ(S%XU(Fm z61iXvi4H@akVkTndw|$1+A#ipVX4&4=;UNF-&Ve+Bp~kA=kvL|PG>i&=mjwhYVB7& zMP802VhPb!u3Rz@cg(xT)zJ7OYG_MdAav`DuI<3+`!~;4hGM}Q68%g}OgwxvGrbe~ zLD7ccx2e`<@8@UHdA2eXWdU)&~WA$b2E)9S)o;@-u0(rF5xmAnqEY z@4vLJ?LqC_6GNdpHxh^Ae)eoyG?pNjRYL{*)wRnqzS-z*(T4f!uUTE|jK||+qHQ60 zNf|OYoWcKz1IW}523@v^H(k%qsQH2|+7^;41>(NbQ8jiD3-7mifhb+$u-OOsnRTA6 zh@#RiGrF}$f}!g;syS>_@;16p(Foh7D9W&C6J;whl=GRvuYy;RsjqX2+#PQ%^RsKd zGtKFW-K_-TF*MZF>sb4)h zcAjzWks^94)HD*5FJlIOOLT^s8qY9&yQ->xiZ;_%s%WfK#!uZY{M=oEdCIg)KutB- zC_U_PHuWS@sc~bRssiyqfV$&xdwkfsJZB7yb|Yr>Bd$hIZ}MUCLC#inARZ`@Omrht zE@aBQb)mF@O5}*w+?`_n>RNUn9vo1E9+!I-P}}EV zW{AcP;Gf!^Cj!JF5~<|RKDTQMbJ7-^z3+>TsM!Ot{{dv1C-l#MaIOFV002ovPDHLk FV1gYbUD*Ht literal 0 HcmV?d00001 diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowRight@2x.png b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowRight@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b9a874cf27641b060ff537de958ca197896774 GIT binary patch literal 1786 zcmY*adt8!P8vgJWg4as%-Y20Zt{`fK1S(2~ZCEi{ikCzMMN3o4b{`E4ZT%SnxGR;rjY@l^(=gasjJz8u~a$@05Ti_;8YF(ENP%q zN&qiShP4R+E{HYikT6bgs34TKhY-t6#xUc! zF)U14a;k<60K_zcCQW7um|$A+;S@e0jfDKjAZYS67>fiyQUpmPWGHPP=+EV`z^xch zj2qG$27(}w7sn>hDFL6aYjz}Lf_RteZR5-Q88gaOJ0` z2$*TEDg4c!ME;{gVew;moKyjan*y%sGGn+$1tcVL&FIVcRHuN${;yLC|8rZK2C-`= zSRBR;`$b!GmAHly_VPF^jq{qmH;(v``G44FA0l?m{C|r1)agf5)2cU&i2d?x-mpDA zPGJC`3lF4_gQ%ud`nq6ifr6Ru+H?rY(UPmzc_urs75QuCCxBn_W&}x`* zu(qPxVEyg7*HuX5Z9R3Zbe_!Fh4D8EG9>n0Ks!REb;bGeI4e}T6 zIZiD{O8f^LD8t3nJj?7hhp(B$8#n4Fv=S8xX$NR8F?DBEu@T5LB=sN?$vPJ9xinr( zzmv3%=OlqBGLr*n+U)~cH7Ls+W!KBDSay%4%VQc#1AJ{|uIcBSDlb3m*&AXnz;b3h zVXJ1aLx**Lu#y;M_Z-5}<~mSb3jf;Y`=#ku<0>J-j|Z#-d{>jQ`! zojc1$*1btsiD?avNYLZxT{#VwHy#-IORQ;$BD?QMqsi-1+u|U^UoTH4k)LRf`0tkQ zd0u3u`_O(9l6B2o(DKx?-kdab|1sDE_(8XY+ZSAVf0Oks9HoS=2Au!(pHU@$GM;Qd zwUTB3tp6Tq&J3mo1f28-^+jBX*o zmr=<-^T!jOyPx!{;GYOud~4(?zUHAnQR$}4GzdKfZIWrdo<&bdtZ^hf-h!F+td>ok zw3g!S7{ijLIOVdxF(ErHSF{J-s=x;kkV+4ckMf#8yd@-^kEuR6STC%xD{wk@=Y(jl zFW*>pqpYFku`0rQb=%}I9cZsdzAR;Ae$H2nK)fSo61MwH6~62|Y;96dFRYuoohLNP zyk7OFN5N1%<>xL67i~6edu$F`kBMLCn5jIb#l2yoiU(Xz(K3Rem!qH#M(v!nv6Ab{ z9+oX_9G-=ouGE|BT}0W8&awMSuGTIOFK?;2?@P25xm;GYM|i)tYd*u+dc-_JXdBm9 z+~PipHxBftJ(0CX?PuJy5uG6%RTw}Uj!Q4h9H8GpoimQz?%z2;8C|>;`h7inZqfM2 z#on-mlM0KZ-|D0b%~EMU)hd4f19jGd&-4mvY2~ZCT(sO^wD5gBeR&3WW%j!8b}y@K z(B+0-k|GImd`95Dh?m{+9a4Wkv1BeUi4wbvIWlI%y}w#LYrF7`tobU6WOToAHLXpW zFRrFkcRI+S)4d)IBhX{vn1qVKx?D_I-NZFB7y_3y^|J?SKKqC0?{d{4^Tcm$a;NbO zmtVH~*4n*{v5~XqR3x?K+}aNl MxHE{->=&K=Z!8)8l>h($ literal 0 HcmV?d00001 diff --git a/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowRight@3x.png b/FoodApp/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Resources/IQKeyboardManager.bundle/IQButtonBarArrowRight@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..95c43973b283158e67081158220a7f6d6edb8c8b GIT binary patch literal 1844 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 + Icon +

+

IQKeyboardManager

+

+ GitHub license + + +[![Build Status](https://travis-ci.org/hackiftekhar/IQKeyboardManager.svg)](https://travis-ci.org/hackiftekhar/IQKeyboardManager) + + +Often while developing an app, We ran into an issues where the iPhone keyboard slide up and cover the `UITextField/UITextView`. `IQKeyboardManager` allows you to prevent issues of the keyboard sliding up and cover `UITextField/UITextView` without needing you to enter any code and no additional setup required. To use `IQKeyboardManager` you simply need to add source files to your project. + + +#### Key Features + +1) `**CODELESS**, Zero Lines Of Code` + +2) `Works Automatically` + +3) `No More UIScrollView` + +4) `No More Subclasses` + +5) `No More Manual Work` + +6) `No More #imports` + +`IQKeyboardManager` works on all orientations, and with the toolbar. There are also nice optional features allowing you to customize the distance from the text field, add the next/previous done button as a keyboard UIToolbar, play sounds when the user navigations through the form and more. + + +## Screenshot +[![IQKeyboardManager](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/v3.3.0/Screenshot/IQKeyboardManagerScreenshot.png)](http://youtu.be/6nhLw6hju2A) +[![Settings](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/v3.3.0/Screenshot/IQKeyboardManagerSettings.png)](http://youtu.be/6nhLw6hju2A) + +## GIF animation +[![IQKeyboardManager](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/v3.3.0/Screenshot/IQKeyboardManager.gif)](http://youtu.be/6nhLw6hju2A) + +## Video + + + +## Tutorial video by @rebeloper ([#1135](https://github.com/hackiftekhar/IQKeyboardManager/issues/1135)) + +@rebeloper demonstrated two videos on how to implement **IQKeyboardManager** at it's core: + + + +https://www.youtube.com/playlist?list=PL_csAAO9PQ8aTL87XnueOXi3RpWE2m_8v + +## Warning + +- **If you're planning to build SDK/library/framework and wants to handle UITextField/UITextView with IQKeyboardManager then you're totally going on wrong way.** I would never suggest to add **IQKeyboardManager** as **dependency/adding/shipping** with any third-party library, instead of adding **IQKeyboardManager** you should implement your own solution to achieve same kind of results. **IQKeyboardManager** is totally designed for projects to help developers for their convenience, it's not designed for **adding/dependency/shipping** with any **third-party library**, because **doing this could block adoption by other developers for their projects as well(who are not using IQKeyboardManager and implemented their custom solution to handle UITextField/UITextView thought the project).** +- If **IQKeyboardManager** conflicts with other **third-party library**, then it's **developer responsibility** to **enable/disable IQKeyboardManager** when **presenting/dismissing** third-party library UI. Third-party libraries are not responsible to handle IQKeyboardManager. + +## Requirements +[![Platform iOS](https://img.shields.io/badge/Platform-iOS-blue.svg?style=fla)]() + +| | Language | Minimum iOS Target | Minimum Xcode Version | +|------------------------|----------|--------------------|-----------------------| +| IQKeyboardManager | Obj-C | iOS 8.0 | Xcode 8.2.1 | +| IQKeyboardManagerSwift | Swift | iOS 8.0 | Xcode 8.2.1 | +| Demo Project | | | Xcode 9.3 | + +**Note** +- 3.3.7 is the last iOS 7 supported version. + +#### Swift versions support + +| Swift | Xcode | IQKeyboardManagerSwift | +|-------------------|-------|------------------------| +| 4.2, 4.0, 3.2, 3.0| 10.0 | >= 6.0.4 | +| 4.0, 3.2, 3.0 | 9.0 | 5.0.0 | +| 3.1 | 8.3 | 4.0.10 | +| 3.0 (3.0.2) | 8.2 | 4.0.8 | +| 2.2 or 2.3 | 7.3 | 4.0.5 | +| 2.1.1 | 7.2 | 4.0.0 | +| 2.1 | 7.2 | 3.3.7 | +| 2.0 | 7.0 | 3.3.3.1 | +| 1.2 | 6.3 | 3.3.1 | +| 1.0 | 6.0 | 3.3.2 | + +Installation +========================== + +#### Installation with CocoaPods + +[![CocoaPods](https://img.shields.io/cocoapods/v/IQKeyboardManager.svg)](http://cocoadocs.org/docsets/IQKeyboardManager) + +***IQKeyboardManager (Objective-C):*** IQKeyboardManager is available through [CocoaPods](http://cocoapods.org), to install +it simply add the following line to your Podfile: ([#9](https://github.com/hackiftekhar/IQKeyboardManager/issues/9)) + +```ruby +pod 'IQKeyboardManager' #iOS8 and later + +pod 'IQKeyboardManager', '3.3.7' #iOS7 +``` + +***IQKeyboardManager (Swift):*** IQKeyboardManagerSwift is available through [CocoaPods](http://cocoapods.org), to install +it simply add the following line to your Podfile: ([#236](https://github.com/hackiftekhar/IQKeyboardManager/issues/236)) + +*Swift 4.2, 4.0, 3.2, 3.0 (Xcode 9)* + +```ruby +pod 'IQKeyboardManagerSwift' +``` + +*Or you can choose version you need based on Swift support table from [Requirements](README.md#requirements)* + +```ruby +pod 'IQKeyboardManagerSwift', '5.0.0' +``` + +In AppDelegate.swift, just import IQKeyboardManagerSwift framework and enable IQKeyboardManager. + +```swift +import IQKeyboardManagerSwift + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { + + IQKeyboardManager.shared.enable = true + + return true + } +} +``` + +#### Installation with Carthage + +[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. + +You can install Carthage with [Homebrew](http://brew.sh/) using the following command: + +```bash +$ brew update +$ brew install carthage +``` + +To integrate `IQKeyboardManger` or `IQKeyboardManagerSwift` into your Xcode project using Carthage, specify it in your `Cartfile`: + +```ogdl +github "hackiftekhar/IQKeyboardManager" +``` + +Run `carthage` to build the frameworks and drag the appropriate framework (`IQKeyboardManager.framework` or `IQKeyboardManagerSwift.framework`) into your Xcode project according to your need. Make sure to add only one framework and not both. + + +#### Installation with Source Code + +[![Github tag](https://img.shields.io/github/tag/hackiftekhar/iqkeyboardmanager.svg)]() + + + +***IQKeyboardManager (Objective-C):*** Just ***drag and drop*** `IQKeyboardManager` directory from demo project to your project. That's it. + +***IQKeyboardManager (Swift):*** ***Drag and drop*** `IQKeyboardManagerSwift` directory from demo project to your project + +In AppDelegate.swift, just enable IQKeyboardManager. + +```swift +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { + + IQKeyboardManager.shared.enable = true + + return true + } +} +``` + +Migration Guide +========================== +- [IQKeyboardManager 6.0.0 Migration Guide](https://github.com/hackiftekhar/IQKeyboardManager/wiki/IQKeyboardManager-6.0.0-Migration-Guide) + +Other Links +========================== + +- [Known Issues](https://github.com/hackiftekhar/IQKeyboardManager/wiki/Known-Issues) +- [Manual Management Tweaks](https://github.com/hackiftekhar/IQKeyboardManager/wiki/Manual-Management) +- [Properties and functions usage](https://github.com/hackiftekhar/IQKeyboardManager/wiki/Properties-&-Functions) + +## Flow Diagram +[![IQKeyboardManager CFD](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Screenshot/IQKeyboardManagerFlowDiagram.jpg)](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Screenshot/IQKeyboardManagerFlowDiagram.jpg) + +If you would like to see detailed Flow diagram then see [Detailed Flow Diagram](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/v3.3.0/Screenshot/IQKeyboardManagerCFD.jpg). + + +LICENSE +--- +Distributed under the MIT License. + +Contributions +--- +Any contribution is more than welcome! You can contribute through pull requests and issues on GitHub. + +Author +--- +If you wish to contact me, email at: hack.iftekhar@gmail.com diff --git a/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist b/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist new file mode 100644 index 0000000..45024a7 --- /dev/null +++ b/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 6.2.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-dummy.m b/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-dummy.m new file mode 100644 index 0000000..7937f27 --- /dev/null +++ b/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_IQKeyboardManagerSwift : NSObject +@end +@implementation PodsDummy_IQKeyboardManagerSwift +@end diff --git a/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch b/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-umbrella.h b/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-umbrella.h new file mode 100644 index 0000000..e95b398 --- /dev/null +++ b/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double IQKeyboardManagerSwiftVersionNumber; +FOUNDATION_EXPORT const unsigned char IQKeyboardManagerSwiftVersionString[]; + diff --git a/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap b/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap new file mode 100644 index 0000000..6d9b343 --- /dev/null +++ b/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap @@ -0,0 +1,6 @@ +framework module IQKeyboardManagerSwift { + umbrella header "IQKeyboardManagerSwift-umbrella.h" + + export * + module * { export * } +} diff --git a/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.xcconfig b/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.xcconfig new file mode 100644 index 0000000..0dbf94e --- /dev/null +++ b/FoodApp/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.xcconfig @@ -0,0 +1,10 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/IQKeyboardManagerSwift +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.debug.xcconfig b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.debug.xcconfig index 31b8865..1d88dca 100644 --- a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.debug.xcconfig +++ b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.debug.xcconfig @@ -1,9 +1,9 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth/FirebaseAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase/FirebaseDatabase.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage/FirebaseStorage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField/SkyFloatingLabelTextField.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library/leveldb.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAuthInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth/FirebaseAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase/FirebaseDatabase.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage/FirebaseStorage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField/SkyFloatingLabelTextField.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library/leveldb.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAuthInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"icucore" -l"sqlite3" -l"z" -framework "CFNetwork" -framework "FIRAnalyticsConnector" -framework "FirebaseAnalytics" -framework "FirebaseAuth" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseDatabase" -framework "FirebaseInstanceID" -framework "FirebaseStorage" -framework "Foundation" -framework "GTMSessionFetcher" -framework "GoogleAppMeasurement" -framework "GoogleUtilities" -framework "MobileCoreServices" -framework "SafariServices" -framework "Security" -framework "SkyFloatingLabelTextField" -framework "StoreKit" -framework "SystemConfiguration" -framework "leveldb" -framework "nanopb" +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"icucore" -l"sqlite3" -l"z" -framework "CFNetwork" -framework "CoreGraphics" -framework "FIRAnalyticsConnector" -framework "FirebaseAnalytics" -framework "FirebaseAuth" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseDatabase" -framework "FirebaseInstanceID" -framework "FirebaseStorage" -framework "Foundation" -framework "GTMSessionFetcher" -framework "GoogleAppMeasurement" -framework "GoogleUtilities" -framework "IQKeyboardManagerSwift" -framework "MobileCoreServices" -framework "QuartzCore" -framework "SafariServices" -framework "Security" -framework "SkyFloatingLabelTextField" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "leveldb" -framework "nanopb" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.release.xcconfig b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.release.xcconfig index 31b8865..1d88dca 100644 --- a/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.release.xcconfig +++ b/FoodApp/Pods/Target Support Files/Pods-FoodApp/Pods-FoodApp.release.xcconfig @@ -1,9 +1,9 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth/FirebaseAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase/FirebaseDatabase.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage/FirebaseStorage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField/SkyFloatingLabelTextField.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library/leveldb.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAuthInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAuth/FirebaseAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseDatabase/FirebaseDatabase.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseStorage/FirebaseStorage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SkyFloatingLabelTextField/SkyFloatingLabelTextField.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library/leveldb.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAuthInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"icucore" -l"sqlite3" -l"z" -framework "CFNetwork" -framework "FIRAnalyticsConnector" -framework "FirebaseAnalytics" -framework "FirebaseAuth" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseDatabase" -framework "FirebaseInstanceID" -framework "FirebaseStorage" -framework "Foundation" -framework "GTMSessionFetcher" -framework "GoogleAppMeasurement" -framework "GoogleUtilities" -framework "MobileCoreServices" -framework "SafariServices" -framework "Security" -framework "SkyFloatingLabelTextField" -framework "StoreKit" -framework "SystemConfiguration" -framework "leveldb" -framework "nanopb" +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"icucore" -l"sqlite3" -l"z" -framework "CFNetwork" -framework "CoreGraphics" -framework "FIRAnalyticsConnector" -framework "FirebaseAnalytics" -framework "FirebaseAuth" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseDatabase" -framework "FirebaseInstanceID" -framework "FirebaseStorage" -framework "Foundation" -framework "GTMSessionFetcher" -framework "GoogleAppMeasurement" -framework "GoogleUtilities" -framework "IQKeyboardManagerSwift" -framework "MobileCoreServices" -framework "QuartzCore" -framework "SafariServices" -framework "Security" -framework "SkyFloatingLabelTextField" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "leveldb" -framework "nanopb" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)

cN3o50JkRpHnPUgdZSr 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�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ȳ?0bhMW~fyK9%{wWs!6J%JEUx{z!(D79}_Q`S< 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