diff --git a/README.md b/README.md index fdd8643..275c9b2 100644 --- a/README.md +++ b/README.md @@ -1,330 +1,6 @@ -# Integration Guide +# Force Operation X ReactNative SDK Integration Guide -## Index +### LANGUAGE -* **[1. インストール](#install_sdk)** - * [1.1 OS共通手順](#install_common) - * [1.2 iOS](#install_ios) - * [1.3 Android](#install_android) - * [1.3.1 パーミッション](#android_permission) - * [1.3.2 ProGuardを利用する場合](#android_proguard) -* **[2. アクティベート](#activation)** -* **[3. 広告成果の計測](#measurement)** - * [3.1 インストール成果計測](#measurement_install) - * [3.2 インストールリファラ計測(Androidのみ)](#measurement_installreferrer) - * [3.3 リエンゲージメント成果計測](#measurement_reengagement) -* **[4. アプリ内イベントの計測](#measurement_event)** - * [4.1 チュートリアルイベント](#measurement_event_tutorial) - * [4.2 課金イベント](#measurement_event_purchase) - * [4.3 セッション計測](#measurement_event_session) - - -
- -## 1. インストール - -
- -#### 1.1 OS共通手順 - -[リリースページ](https://github.com/forceoperationx/react-native-sdk/releases)よりSDKのzipファイルをダウンロードします。
-zipファイルの展開後、`js`ディレクトリ内のjsファイルを導入先となるReactNativeプロジェクトにコピーします。 - -* `fox.js` -* `fox-ios.js` -* `fox-android.js` - -
- -#### 1.2 iOS -**【 libraryファイルによる導入 】** -共通手順でダウンロードしたSDKのzipファイルに同梱されている iOS SDK libraryファイル全てを導入先となるiOSプロジェクトのlibrary/framework search pathにコピーし、xcodeでlinkします。 -* `libFoxReact.a` -* `CYZFox.framework` - - -
- -#### 1.3 Android - -**【 Gradleによる導入 】** - -[ build.gradle ]
-```gradle -repositories { - maven { - url "https://github.com/cyber-z/public-fox-android-sdk/raw/master/mavenRepo" - } -} - -dependencies { - compile 'co.cyberz.fox:track-core:X.X.X' - compile 'co.cyberz.fox.support:track-reactnative:X.X.X' -} -``` - -> ※ `co.cyberz.fox:track-core:`のバージョンは4.3.0以上を指定してください。4.3.0未満はサポートしておりません。 - -> ※ `co.cyberz.fox.support:track-reactnative:`のバージョンはリリースページからバージョンを選択してください。 - -**【 jarファイルによる導入 】** - -共通手順でダウンロードしたSDKのzipファイルに同梱されているAndroid SDKのlibs内のjarファイル全てを導入先となるAndroidプロジェクトのlibsにコピーします。 -* `FOX_Android_SDK_X.X.X.jar` -* `FOX_Android_SDK_Support_ReactNative_X.X.X.jar` - -
- -#### 1.3.1 パーミッション - -F.O.X SDKでは下記3つのパーミッションを利用します。 -<Manifest>タグ内に次のパーミッションの設定を追加します。 - -```xml - - -``` - -パーミッション|Protection Level|必須|概要 -:---|:---:|:---:|:--- -INTERNET|Normal|必須|F.O.X SDKが通信を行うために必要となります。 -WRITE_EXTERNAL_STORAGE ※1|Dangerous|任意|ストレージを利用した重複排除機能向上に必要となります。(※2) - -> ※1 READ_EXTERNAL_STORAGE及びWRITE_EXTERNAL_STORAGEパーミッションは、外部ストレージにデータを記録することでアプリの再インストール時により正確にインストール計測を行うために必要ですが、必須ではありません。 - -> ※2 Android MよりProtectionLevelが`dangerous`に指定されているパーミッションを必要とする機能を利用するには、ユーザーの許可が必要になります。詳細はF.O.X Android SDKドキュメントの[外部ストレージを利用した重複排除設定(外部リンク)](https://github.com/cyber-z/public-fox-android-sdk/blob/4.x/lang/ja/doc/external_storage/README.md)をご確認ください。 - -
- -#### 1.3.2 ProGuardを利用する場合 - -ProGuard を利用してアプリケーションの難読化を行う際は F.O.X SDK のメソッドが対象とならないよう、以下の設定 を追加してください。 - -``` --keepattributes *Annotation* --keep class co.cyberz.** { *; } --keep class com.google.android.gms.ads.identifier.* { *; } --dontwarn co.cyberz.** -# Gradle経由でSDKをインストールしている場合、下記jarファイルの指定は不要です。 --libraryjars libs/FOX_Android_SDK_X.X.X.jar --libraryjars libs/FOX_Android_SDK_Support_ReactNative_X.X.X.jar -``` - -
- -## 2. アクティベート - -F.O.Xのライブラリを呼び出す際は必ず`fox.js`をimportします。以降、サンプル内ではCYZFoxと定義します。 - -```js -// fox.jsへのパスを通します -import CYZFox from './fox.js'; - -... - -componentDidMount() { -... - const config = { - ios : { - appId : 6421, - appSalt : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", - appKey : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", - customizedUserAgentEnabled : true - }, - android : { - appId : 2684, - appSalt : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", - appKey : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", - }, - // デバッグモードのON/OFF - debugModeEnabled : false - } - CYZFox.activate(config); -... -``` - - -> * `appId`, `appSalt`, `appKey`はF.O.Xのコンソールで発行された値を設定します。 -> * `customizedUserAgentEnabled`はiOS固有の設定で、アプリ内のWebViewのUserAgentをカスタマイズしている場合、trueに設定してください。 -> * `debugModeEnabled`はF.O.X SDKのデバッグログを出力する際にtrueを設定します。リリースの際はfalseに設定してください。 - -
- -## 3. 広告成果の計測 - -
- -#### 3.1 インストール成果計測 - -アプリの初回起動のインストール計測を実装することで、広告の効果測定を行うことができます。
-以下のコードをアプリの起動時に必ず呼ばれる箇所に効果測定用の処理を追加します。 - -```js -// fox.jsへのパスを通します -import CYZFox from './fox.js'; - -... - -const option = { - buid : "UserID", - redirectURL : "fox://react", - trackingCompletionHandler : () => {console.log("tracking completed implementation")}, - durationSinceClick : 60 * 60 * 12, - deferredDeeplinkHandler : (deepInfo) => {console.log(`deep link : ${deepInfo? deepInfo["deeplink"] : "empty"}`)} -} -// -CYZFox.trackInstall(option); -``` -> * trackInstallはオプション(引数)無しでも指定することが可能です。 -> * インストール計測のオプション一覧 -> -> |項目|詳細| -> |:---:|:---| -> |redirectURL|ブラウザを起動させた時に遷移させる先のURL。アプリ自身のカスタムURLも指定可能。| -> |buid|広告主端末ID(アプリのユーザーを特定するID)| -> |trackingCompletionHandler|インストール計測完了のコールバックハンドラ| -> |durationSinceClick|ディファードディープリンクを実行する際の、対象となるラストクリックの対象期間(秒)(初回起動からどれだけ遡るかを秒数で指定)
デフォルト : 86400 (1日)| -> |deferredDeeplinkHandler|ディープリンクを受け取るためのコールバックハンドラ| -> - -
- -#### 3.2 インストールリファラ計測(Androidのみ) - -インストールリファラーを用いたインストール計測を行うために下記の設定を<application>タグに追加します。 - -``` - - - - - -``` - -> 既に"com.android.vending.INSTALL_REFERRER"に対するレシーバークラスが定義されている場合には、F.O.X Android SDKドキュメントの[複数のINSTALL_REFERRERレシーバーを共存させる場合の設定(外部リンク)](https://github.com/cyber-z/public-fox-android-sdk/blob/4.x/lang/ja/doc/install_referrer/README.md) をご参照ください。 - -
- -#### 3.3 リエンゲージメント成果計測 - -リエンゲージメント計測(カスタムURLスキーム経由の起動を計測)するために必要な設定を行います。iOSは設定なしで自動で計測を行いますがAndroidは以下の設定が必要となります。
- -AndroidManifest.xmlのトップActivity (アプリ内の初めに呼ばれるActivity) の<activity>タグ内に、カスタムURLスキームでアプリを起動出来るよう以下のようにintent-filterを追記します。
-※ リエンゲージメント計測はカスタムURLスキームでActivityが呼び出されることで計測を行います。 - -```xml - - - - - - - - - - - - - - - - -``` - -> ※ カスタムURLスキームの詳細は[Android Developers (暗黙的インテントの受信)](https://developer.android.com/guide/components/intents-filters.html#Receiving) をご確認ください。 - -
- -## 4. アプリ内イベントの計測 - -会員登録、チュートリアル突破、課金など任意の成果地点にイベント計測を実装することで、流入元広告のLTVを測定することができます。
-尚、イベント計測が不要の場合には、本項目の実装を省略できます。成果がアプリ内部で発生する場合、成果処理部に以下のように記述してください。
-アプリ内イベントを計測するには`trackEvent`メソッドを利用します。 - -会員登録やアプリ内課金後の課金計測では、登録・課金処理実行後のコールバック内に以下のようにイベント計測処理を記述します。 - -
- -#### 4.1 チュートリアルイベント - -**【 実装例 】** - -```js -const event = { - ios : { - eventName : "iOSチュートリアル突破", - ltvId : 5973, - }, - android : { - eventName : "Androidチュートリアル突破", - ltvId : 5974, - }, - buid : "USER_001" -} -CYZFox.trackEvent(event); -``` - -
- -#### 4.2 課金イベント - -**【 実装例 】** - -```js -const event = { - ios : { - eventName : "ios-purchase", - ltvId : 5975, - }, - android : { - eventName : "android-purchase", - ltvId : 5976, - }, - buid : "USER_001", - value : 2, - orderId : "react-orderId", - sku : "react-sku", - itemName : "react-itemname", - price : 18.6, - quantity : 3, - currency : "USD", - eventInfo : { - name : "wuwei", - age : 35, - married : true - }, - extraInfo : { - eventId : "pur001", - coupon : "10%" - } -} -CYZFox.trackEvent(event); -``` - -> * イベント計測時に指定するパラメータ一覧 -> -> |**型**|**必須**|**パラメータ名**|**概要**| -> |:---:|:---:|:---|:---| -> |String|○|eventName|イベント名| -> |int|○|ltvId|成果地点ID
管理者より連絡します。その値を入力してください。| -> |String|-|buid|広告主様が管理しているユニークな識別子(会員IDなど)です。 指定できる値は64文字以内の半角英数字です。| -> |double|-|price|金額| -> |String|-|currency|通貨
[ISO 4217](http://ja.wikipedia.org/wiki/ISO_4217) で定義された通貨コードを指定してください。| -> |String|-|sku|SKU| -> |String|-|value|値| -> |String|-|orderId|オーダーID| -> |int|-|quantity|数量| -> |String|-|extraInfo|任意のパラメータのKey/Value
Key値にアンダースコア("_")をパラメータ名の先頭に記述しないでください。また、半角英数字以外は使用できません。| -> |String|-|eventInfo|任意のパラメータ群| - -
- -#### 4.3 セッション計測 - -自然流入と広告流入のインストール数比較、アプリケーションの起動数やユニークユーザー数(DAU/MAU)、継続率等を計測することができます。
-こちらはSDKがアプリの起動時・バックグラウンドからフォアグラウンドへの遷移をiOS/Androidのネイティブ側で自動検知して計測を行うため、実装する必要はありません。 +* [Japanese](./lang/ja/README.md) +* [Chinese(Simplified)](./lang/zh-cn/README.md) diff --git a/lang/ja/README.md b/lang/ja/README.md new file mode 100644 index 0000000..fdd8643 --- /dev/null +++ b/lang/ja/README.md @@ -0,0 +1,330 @@ +# Integration Guide + +## Index + +* **[1. インストール](#install_sdk)** + * [1.1 OS共通手順](#install_common) + * [1.2 iOS](#install_ios) + * [1.3 Android](#install_android) + * [1.3.1 パーミッション](#android_permission) + * [1.3.2 ProGuardを利用する場合](#android_proguard) +* **[2. アクティベート](#activation)** +* **[3. 広告成果の計測](#measurement)** + * [3.1 インストール成果計測](#measurement_install) + * [3.2 インストールリファラ計測(Androidのみ)](#measurement_installreferrer) + * [3.3 リエンゲージメント成果計測](#measurement_reengagement) +* **[4. アプリ内イベントの計測](#measurement_event)** + * [4.1 チュートリアルイベント](#measurement_event_tutorial) + * [4.2 課金イベント](#measurement_event_purchase) + * [4.3 セッション計測](#measurement_event_session) + + +
+ +## 1. インストール + +
+ +#### 1.1 OS共通手順 + +[リリースページ](https://github.com/forceoperationx/react-native-sdk/releases)よりSDKのzipファイルをダウンロードします。
+zipファイルの展開後、`js`ディレクトリ内のjsファイルを導入先となるReactNativeプロジェクトにコピーします。 + +* `fox.js` +* `fox-ios.js` +* `fox-android.js` + +
+ +#### 1.2 iOS +**【 libraryファイルによる導入 】** +共通手順でダウンロードしたSDKのzipファイルに同梱されている iOS SDK libraryファイル全てを導入先となるiOSプロジェクトのlibrary/framework search pathにコピーし、xcodeでlinkします。 +* `libFoxReact.a` +* `CYZFox.framework` + + +
+ +#### 1.3 Android + +**【 Gradleによる導入 】** + +[ build.gradle ]
+```gradle +repositories { + maven { + url "https://github.com/cyber-z/public-fox-android-sdk/raw/master/mavenRepo" + } +} + +dependencies { + compile 'co.cyberz.fox:track-core:X.X.X' + compile 'co.cyberz.fox.support:track-reactnative:X.X.X' +} +``` + +> ※ `co.cyberz.fox:track-core:`のバージョンは4.3.0以上を指定してください。4.3.0未満はサポートしておりません。 + +> ※ `co.cyberz.fox.support:track-reactnative:`のバージョンはリリースページからバージョンを選択してください。 + +**【 jarファイルによる導入 】** + +共通手順でダウンロードしたSDKのzipファイルに同梱されているAndroid SDKのlibs内のjarファイル全てを導入先となるAndroidプロジェクトのlibsにコピーします。 +* `FOX_Android_SDK_X.X.X.jar` +* `FOX_Android_SDK_Support_ReactNative_X.X.X.jar` + +
+ +#### 1.3.1 パーミッション + +F.O.X SDKでは下記3つのパーミッションを利用します。 +<Manifest>タグ内に次のパーミッションの設定を追加します。 + +```xml + + +``` + +パーミッション|Protection Level|必須|概要 +:---|:---:|:---:|:--- +INTERNET|Normal|必須|F.O.X SDKが通信を行うために必要となります。 +WRITE_EXTERNAL_STORAGE ※1|Dangerous|任意|ストレージを利用した重複排除機能向上に必要となります。(※2) + +> ※1 READ_EXTERNAL_STORAGE及びWRITE_EXTERNAL_STORAGEパーミッションは、外部ストレージにデータを記録することでアプリの再インストール時により正確にインストール計測を行うために必要ですが、必須ではありません。 + +> ※2 Android MよりProtectionLevelが`dangerous`に指定されているパーミッションを必要とする機能を利用するには、ユーザーの許可が必要になります。詳細はF.O.X Android SDKドキュメントの[外部ストレージを利用した重複排除設定(外部リンク)](https://github.com/cyber-z/public-fox-android-sdk/blob/4.x/lang/ja/doc/external_storage/README.md)をご確認ください。 + +
+ +#### 1.3.2 ProGuardを利用する場合 + +ProGuard を利用してアプリケーションの難読化を行う際は F.O.X SDK のメソッドが対象とならないよう、以下の設定 を追加してください。 + +``` +-keepattributes *Annotation* +-keep class co.cyberz.** { *; } +-keep class com.google.android.gms.ads.identifier.* { *; } +-dontwarn co.cyberz.** +# Gradle経由でSDKをインストールしている場合、下記jarファイルの指定は不要です。 +-libraryjars libs/FOX_Android_SDK_X.X.X.jar +-libraryjars libs/FOX_Android_SDK_Support_ReactNative_X.X.X.jar +``` + +
+ +## 2. アクティベート + +F.O.Xのライブラリを呼び出す際は必ず`fox.js`をimportします。以降、サンプル内ではCYZFoxと定義します。 + +```js +// fox.jsへのパスを通します +import CYZFox from './fox.js'; + +... + +componentDidMount() { +... + const config = { + ios : { + appId : 6421, + appSalt : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + appKey : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + customizedUserAgentEnabled : true + }, + android : { + appId : 2684, + appSalt : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + appKey : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + }, + // デバッグモードのON/OFF + debugModeEnabled : false + } + CYZFox.activate(config); +... +``` + + +> * `appId`, `appSalt`, `appKey`はF.O.Xのコンソールで発行された値を設定します。 +> * `customizedUserAgentEnabled`はiOS固有の設定で、アプリ内のWebViewのUserAgentをカスタマイズしている場合、trueに設定してください。 +> * `debugModeEnabled`はF.O.X SDKのデバッグログを出力する際にtrueを設定します。リリースの際はfalseに設定してください。 + +
+ +## 3. 広告成果の計測 + +
+ +#### 3.1 インストール成果計測 + +アプリの初回起動のインストール計測を実装することで、広告の効果測定を行うことができます。
+以下のコードをアプリの起動時に必ず呼ばれる箇所に効果測定用の処理を追加します。 + +```js +// fox.jsへのパスを通します +import CYZFox from './fox.js'; + +... + +const option = { + buid : "UserID", + redirectURL : "fox://react", + trackingCompletionHandler : () => {console.log("tracking completed implementation")}, + durationSinceClick : 60 * 60 * 12, + deferredDeeplinkHandler : (deepInfo) => {console.log(`deep link : ${deepInfo? deepInfo["deeplink"] : "empty"}`)} +} +// +CYZFox.trackInstall(option); +``` +> * trackInstallはオプション(引数)無しでも指定することが可能です。 +> * インストール計測のオプション一覧 +> +> |項目|詳細| +> |:---:|:---| +> |redirectURL|ブラウザを起動させた時に遷移させる先のURL。アプリ自身のカスタムURLも指定可能。| +> |buid|広告主端末ID(アプリのユーザーを特定するID)| +> |trackingCompletionHandler|インストール計測完了のコールバックハンドラ| +> |durationSinceClick|ディファードディープリンクを実行する際の、対象となるラストクリックの対象期間(秒)(初回起動からどれだけ遡るかを秒数で指定)
デフォルト : 86400 (1日)| +> |deferredDeeplinkHandler|ディープリンクを受け取るためのコールバックハンドラ| +> + +
+ +#### 3.2 インストールリファラ計測(Androidのみ) + +インストールリファラーを用いたインストール計測を行うために下記の設定を<application>タグに追加します。 + +``` + + + + + +``` + +> 既に"com.android.vending.INSTALL_REFERRER"に対するレシーバークラスが定義されている場合には、F.O.X Android SDKドキュメントの[複数のINSTALL_REFERRERレシーバーを共存させる場合の設定(外部リンク)](https://github.com/cyber-z/public-fox-android-sdk/blob/4.x/lang/ja/doc/install_referrer/README.md) をご参照ください。 + +
+ +#### 3.3 リエンゲージメント成果計測 + +リエンゲージメント計測(カスタムURLスキーム経由の起動を計測)するために必要な設定を行います。iOSは設定なしで自動で計測を行いますがAndroidは以下の設定が必要となります。
+ +AndroidManifest.xmlのトップActivity (アプリ内の初めに呼ばれるActivity) の<activity>タグ内に、カスタムURLスキームでアプリを起動出来るよう以下のようにintent-filterを追記します。
+※ リエンゲージメント計測はカスタムURLスキームでActivityが呼び出されることで計測を行います。 + +```xml + + + + + + + + + + + + + + + + +``` + +> ※ カスタムURLスキームの詳細は[Android Developers (暗黙的インテントの受信)](https://developer.android.com/guide/components/intents-filters.html#Receiving) をご確認ください。 + +
+ +## 4. アプリ内イベントの計測 + +会員登録、チュートリアル突破、課金など任意の成果地点にイベント計測を実装することで、流入元広告のLTVを測定することができます。
+尚、イベント計測が不要の場合には、本項目の実装を省略できます。成果がアプリ内部で発生する場合、成果処理部に以下のように記述してください。
+アプリ内イベントを計測するには`trackEvent`メソッドを利用します。 + +会員登録やアプリ内課金後の課金計測では、登録・課金処理実行後のコールバック内に以下のようにイベント計測処理を記述します。 + +
+ +#### 4.1 チュートリアルイベント + +**【 実装例 】** + +```js +const event = { + ios : { + eventName : "iOSチュートリアル突破", + ltvId : 5973, + }, + android : { + eventName : "Androidチュートリアル突破", + ltvId : 5974, + }, + buid : "USER_001" +} +CYZFox.trackEvent(event); +``` + +
+ +#### 4.2 課金イベント + +**【 実装例 】** + +```js +const event = { + ios : { + eventName : "ios-purchase", + ltvId : 5975, + }, + android : { + eventName : "android-purchase", + ltvId : 5976, + }, + buid : "USER_001", + value : 2, + orderId : "react-orderId", + sku : "react-sku", + itemName : "react-itemname", + price : 18.6, + quantity : 3, + currency : "USD", + eventInfo : { + name : "wuwei", + age : 35, + married : true + }, + extraInfo : { + eventId : "pur001", + coupon : "10%" + } +} +CYZFox.trackEvent(event); +``` + +> * イベント計測時に指定するパラメータ一覧 +> +> |**型**|**必須**|**パラメータ名**|**概要**| +> |:---:|:---:|:---|:---| +> |String|○|eventName|イベント名| +> |int|○|ltvId|成果地点ID
管理者より連絡します。その値を入力してください。| +> |String|-|buid|広告主様が管理しているユニークな識別子(会員IDなど)です。 指定できる値は64文字以内の半角英数字です。| +> |double|-|price|金額| +> |String|-|currency|通貨
[ISO 4217](http://ja.wikipedia.org/wiki/ISO_4217) で定義された通貨コードを指定してください。| +> |String|-|sku|SKU| +> |String|-|value|値| +> |String|-|orderId|オーダーID| +> |int|-|quantity|数量| +> |String|-|extraInfo|任意のパラメータのKey/Value
Key値にアンダースコア("_")をパラメータ名の先頭に記述しないでください。また、半角英数字以外は使用できません。| +> |String|-|eventInfo|任意のパラメータ群| + +
+ +#### 4.3 セッション計測 + +自然流入と広告流入のインストール数比較、アプリケーションの起動数やユニークユーザー数(DAU/MAU)、継続率等を計測することができます。
+こちらはSDKがアプリの起動時・バックグラウンドからフォアグラウンドへの遷移をiOS/Androidのネイティブ側で自動検知して計測を行うため、実装する必要はありません。 diff --git a/android/supportReactNative/.gitignore b/lang/ja/android/supportReactNative/.gitignore similarity index 100% rename from android/supportReactNative/.gitignore rename to lang/ja/android/supportReactNative/.gitignore diff --git a/android/supportReactNative/build.gradle b/lang/ja/android/supportReactNative/build.gradle similarity index 100% rename from android/supportReactNative/build.gradle rename to lang/ja/android/supportReactNative/build.gradle diff --git a/android/supportReactNative/proguard-rules.pro b/lang/ja/android/supportReactNative/proguard-rules.pro similarity index 100% rename from android/supportReactNative/proguard-rules.pro rename to lang/ja/android/supportReactNative/proguard-rules.pro diff --git a/android/supportReactNative/src/main/AndroidManifest.xml b/lang/ja/android/supportReactNative/src/main/AndroidManifest.xml similarity index 100% rename from android/supportReactNative/src/main/AndroidManifest.xml rename to lang/ja/android/supportReactNative/src/main/AndroidManifest.xml diff --git a/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxConfigModule.java b/lang/ja/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxConfigModule.java similarity index 100% rename from android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxConfigModule.java rename to lang/ja/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxConfigModule.java diff --git a/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxEventModule.java b/lang/ja/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxEventModule.java similarity index 100% rename from android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxEventModule.java rename to lang/ja/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxEventModule.java diff --git a/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxModule.java b/lang/ja/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxModule.java similarity index 100% rename from android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxModule.java rename to lang/ja/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxModule.java diff --git a/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactPackage.java b/lang/ja/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactPackage.java similarity index 100% rename from android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactPackage.java rename to lang/ja/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactPackage.java diff --git a/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactUtil.java b/lang/ja/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactUtil.java similarity index 100% rename from android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactUtil.java rename to lang/ja/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactUtil.java diff --git a/android/supportReactNative/src/main/res/values/strings.xml b/lang/ja/android/supportReactNative/src/main/res/values/strings.xml similarity index 100% rename from android/supportReactNative/src/main/res/values/strings.xml rename to lang/ja/android/supportReactNative/src/main/res/values/strings.xml diff --git a/exapp/.babelrc b/lang/ja/exapp/.babelrc similarity index 100% rename from exapp/.babelrc rename to lang/ja/exapp/.babelrc diff --git a/exapp/.buckconfig b/lang/ja/exapp/.buckconfig similarity index 100% rename from exapp/.buckconfig rename to lang/ja/exapp/.buckconfig diff --git a/exapp/.flowconfig b/lang/ja/exapp/.flowconfig similarity index 100% rename from exapp/.flowconfig rename to lang/ja/exapp/.flowconfig diff --git a/exapp/.gitattributes b/lang/ja/exapp/.gitattributes similarity index 100% rename from exapp/.gitattributes rename to lang/ja/exapp/.gitattributes diff --git a/exapp/.gitignore b/lang/ja/exapp/.gitignore similarity index 100% rename from exapp/.gitignore rename to lang/ja/exapp/.gitignore diff --git a/exapp/.watchmanconfig b/lang/ja/exapp/.watchmanconfig similarity index 100% rename from exapp/.watchmanconfig rename to lang/ja/exapp/.watchmanconfig diff --git a/exapp/App.js b/lang/ja/exapp/App.js similarity index 100% rename from exapp/App.js rename to lang/ja/exapp/App.js diff --git a/exapp/__tests__/App.js b/lang/ja/exapp/__tests__/App.js similarity index 100% rename from exapp/__tests__/App.js rename to lang/ja/exapp/__tests__/App.js diff --git a/exapp/android/app/.gitignore b/lang/ja/exapp/android/app/.gitignore similarity index 100% rename from exapp/android/app/.gitignore rename to lang/ja/exapp/android/app/.gitignore diff --git a/exapp/android/app/BUCK b/lang/ja/exapp/android/app/BUCK similarity index 100% rename from exapp/android/app/BUCK rename to lang/ja/exapp/android/app/BUCK diff --git a/exapp/android/app/build.gradle b/lang/ja/exapp/android/app/build.gradle similarity index 100% rename from exapp/android/app/build.gradle rename to lang/ja/exapp/android/app/build.gradle diff --git a/exapp/android/app/proguard-rules.pro b/lang/ja/exapp/android/app/proguard-rules.pro similarity index 100% rename from exapp/android/app/proguard-rules.pro rename to lang/ja/exapp/android/app/proguard-rules.pro diff --git a/exapp/android/app/src/main/AndroidManifest.xml b/lang/ja/exapp/android/app/src/main/AndroidManifest.xml similarity index 100% rename from exapp/android/app/src/main/AndroidManifest.xml rename to lang/ja/exapp/android/app/src/main/AndroidManifest.xml diff --git a/exapp/android/app/src/main/assets/index.android.bundle b/lang/ja/exapp/android/app/src/main/assets/index.android.bundle similarity index 100% rename from exapp/android/app/src/main/assets/index.android.bundle rename to lang/ja/exapp/android/app/src/main/assets/index.android.bundle diff --git a/exapp/android/app/src/main/assets/index.android.bundle.meta b/lang/ja/exapp/android/app/src/main/assets/index.android.bundle.meta similarity index 100% rename from exapp/android/app/src/main/assets/index.android.bundle.meta rename to lang/ja/exapp/android/app/src/main/assets/index.android.bundle.meta diff --git a/exapp/android/app/src/main/java/com/exapp/MainActivity.java b/lang/ja/exapp/android/app/src/main/java/com/exapp/MainActivity.java similarity index 100% rename from exapp/android/app/src/main/java/com/exapp/MainActivity.java rename to lang/ja/exapp/android/app/src/main/java/com/exapp/MainActivity.java diff --git a/exapp/android/app/src/main/java/com/exapp/MainApplication.java b/lang/ja/exapp/android/app/src/main/java/com/exapp/MainApplication.java similarity index 100% rename from exapp/android/app/src/main/java/com/exapp/MainApplication.java rename to lang/ja/exapp/android/app/src/main/java/com/exapp/MainApplication.java diff --git a/exapp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/lang/ja/exapp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from exapp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png rename to lang/ja/exapp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/exapp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/lang/ja/exapp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from exapp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png rename to lang/ja/exapp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/exapp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/lang/ja/exapp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from exapp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to lang/ja/exapp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/exapp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/lang/ja/exapp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from exapp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to lang/ja/exapp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/exapp/android/app/src/main/res/values/strings.xml b/lang/ja/exapp/android/app/src/main/res/values/strings.xml similarity index 100% rename from exapp/android/app/src/main/res/values/strings.xml rename to lang/ja/exapp/android/app/src/main/res/values/strings.xml diff --git a/exapp/android/app/src/main/res/values/styles.xml b/lang/ja/exapp/android/app/src/main/res/values/styles.xml similarity index 100% rename from exapp/android/app/src/main/res/values/styles.xml rename to lang/ja/exapp/android/app/src/main/res/values/styles.xml diff --git a/exapp/android/build.gradle b/lang/ja/exapp/android/build.gradle similarity index 100% rename from exapp/android/build.gradle rename to lang/ja/exapp/android/build.gradle diff --git a/exapp/android/gradle.properties b/lang/ja/exapp/android/gradle.properties similarity index 100% rename from exapp/android/gradle.properties rename to lang/ja/exapp/android/gradle.properties diff --git a/exapp/android/gradle/wrapper/gradle-wrapper.jar b/lang/ja/exapp/android/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from exapp/android/gradle/wrapper/gradle-wrapper.jar rename to lang/ja/exapp/android/gradle/wrapper/gradle-wrapper.jar diff --git a/exapp/android/gradle/wrapper/gradle-wrapper.properties b/lang/ja/exapp/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from exapp/android/gradle/wrapper/gradle-wrapper.properties rename to lang/ja/exapp/android/gradle/wrapper/gradle-wrapper.properties diff --git a/exapp/android/gradlew b/lang/ja/exapp/android/gradlew similarity index 100% rename from exapp/android/gradlew rename to lang/ja/exapp/android/gradlew diff --git a/exapp/android/gradlew.bat b/lang/ja/exapp/android/gradlew.bat similarity index 100% rename from exapp/android/gradlew.bat rename to lang/ja/exapp/android/gradlew.bat diff --git a/exapp/android/keystores/BUCK b/lang/ja/exapp/android/keystores/BUCK similarity index 100% rename from exapp/android/keystores/BUCK rename to lang/ja/exapp/android/keystores/BUCK diff --git a/exapp/android/keystores/debug.keystore.properties b/lang/ja/exapp/android/keystores/debug.keystore.properties similarity index 100% rename from exapp/android/keystores/debug.keystore.properties rename to lang/ja/exapp/android/keystores/debug.keystore.properties diff --git a/exapp/android/settings.gradle b/lang/ja/exapp/android/settings.gradle similarity index 100% rename from exapp/android/settings.gradle rename to lang/ja/exapp/android/settings.gradle diff --git a/exapp/app.json b/lang/ja/exapp/app.json similarity index 100% rename from exapp/app.json rename to lang/ja/exapp/app.json diff --git a/exapp/fox-android.js b/lang/ja/exapp/fox-android.js similarity index 100% rename from exapp/fox-android.js rename to lang/ja/exapp/fox-android.js diff --git a/exapp/fox-ios.js b/lang/ja/exapp/fox-ios.js similarity index 100% rename from exapp/fox-ios.js rename to lang/ja/exapp/fox-ios.js diff --git a/exapp/fox.js b/lang/ja/exapp/fox.js similarity index 100% rename from exapp/fox.js rename to lang/ja/exapp/fox.js diff --git a/exapp/index.js b/lang/ja/exapp/index.js similarity index 100% rename from exapp/index.js rename to lang/ja/exapp/index.js diff --git a/exapp/ios/Podfile b/lang/ja/exapp/ios/Podfile similarity index 100% rename from exapp/ios/Podfile rename to lang/ja/exapp/ios/Podfile diff --git a/exapp/ios/Podfile.lock b/lang/ja/exapp/ios/Podfile.lock similarity index 100% rename from exapp/ios/Podfile.lock rename to lang/ja/exapp/ios/Podfile.lock diff --git a/exapp/ios/exapp-tvOS/Info.plist b/lang/ja/exapp/ios/exapp-tvOS/Info.plist similarity index 100% rename from exapp/ios/exapp-tvOS/Info.plist rename to lang/ja/exapp/ios/exapp-tvOS/Info.plist diff --git a/exapp/ios/exapp-tvOSTests/Info.plist b/lang/ja/exapp/ios/exapp-tvOSTests/Info.plist similarity index 100% rename from exapp/ios/exapp-tvOSTests/Info.plist rename to lang/ja/exapp/ios/exapp-tvOSTests/Info.plist diff --git a/exapp/ios/exapp.xcodeproj/project.pbxproj b/lang/ja/exapp/ios/exapp.xcodeproj/project.pbxproj similarity index 100% rename from exapp/ios/exapp.xcodeproj/project.pbxproj rename to lang/ja/exapp/ios/exapp.xcodeproj/project.pbxproj diff --git a/exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp-tvOS.xcscheme b/lang/ja/exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp-tvOS.xcscheme similarity index 100% rename from exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp-tvOS.xcscheme rename to lang/ja/exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp-tvOS.xcscheme diff --git a/exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp.xcscheme b/lang/ja/exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp.xcscheme similarity index 100% rename from exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp.xcscheme rename to lang/ja/exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp.xcscheme diff --git a/exapp/ios/exapp.xcworkspace/contents.xcworkspacedata b/lang/ja/exapp/ios/exapp.xcworkspace/contents.xcworkspacedata similarity index 100% rename from exapp/ios/exapp.xcworkspace/contents.xcworkspacedata rename to lang/ja/exapp/ios/exapp.xcworkspace/contents.xcworkspacedata diff --git a/exapp/ios/exapp/AppDelegate.h b/lang/ja/exapp/ios/exapp/AppDelegate.h similarity index 100% rename from exapp/ios/exapp/AppDelegate.h rename to lang/ja/exapp/ios/exapp/AppDelegate.h diff --git a/exapp/ios/exapp/AppDelegate.m b/lang/ja/exapp/ios/exapp/AppDelegate.m similarity index 100% rename from exapp/ios/exapp/AppDelegate.m rename to lang/ja/exapp/ios/exapp/AppDelegate.m diff --git a/exapp/ios/exapp/Base.lproj/LaunchScreen.xib b/lang/ja/exapp/ios/exapp/Base.lproj/LaunchScreen.xib similarity index 100% rename from exapp/ios/exapp/Base.lproj/LaunchScreen.xib rename to lang/ja/exapp/ios/exapp/Base.lproj/LaunchScreen.xib diff --git a/exapp/ios/exapp/Images.xcassets/AppIcon.appiconset/Contents.json b/lang/ja/exapp/ios/exapp/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from exapp/ios/exapp/Images.xcassets/AppIcon.appiconset/Contents.json rename to lang/ja/exapp/ios/exapp/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/exapp/ios/exapp/Info.plist b/lang/ja/exapp/ios/exapp/Info.plist similarity index 100% rename from exapp/ios/exapp/Info.plist rename to lang/ja/exapp/ios/exapp/Info.plist diff --git a/exapp/ios/exapp/main.m b/lang/ja/exapp/ios/exapp/main.m similarity index 100% rename from exapp/ios/exapp/main.m rename to lang/ja/exapp/ios/exapp/main.m diff --git a/exapp/ios/exappTests/Info.plist b/lang/ja/exapp/ios/exappTests/Info.plist similarity index 100% rename from exapp/ios/exappTests/Info.plist rename to lang/ja/exapp/ios/exappTests/Info.plist diff --git a/exapp/ios/exappTests/exappTests.m b/lang/ja/exapp/ios/exappTests/exappTests.m similarity index 100% rename from exapp/ios/exappTests/exappTests.m rename to lang/ja/exapp/ios/exappTests/exappTests.m diff --git a/exapp/package-lock.json b/lang/ja/exapp/package-lock.json similarity index 100% rename from exapp/package-lock.json rename to lang/ja/exapp/package-lock.json diff --git a/exapp/package.json b/lang/ja/exapp/package.json similarity index 100% rename from exapp/package.json rename to lang/ja/exapp/package.json diff --git a/exapp/run-android b/lang/ja/exapp/run-android similarity index 100% rename from exapp/run-android rename to lang/ja/exapp/run-android diff --git a/ios/.gitignore b/lang/ja/ios/.gitignore similarity index 100% rename from ios/.gitignore rename to lang/ja/ios/.gitignore diff --git a/ios/FoxReact/FoxReact.xcodeproj/project.pbxproj b/lang/ja/ios/FoxReact/FoxReact.xcodeproj/project.pbxproj similarity index 100% rename from ios/FoxReact/FoxReact.xcodeproj/project.pbxproj rename to lang/ja/ios/FoxReact/FoxReact.xcodeproj/project.pbxproj diff --git a/ios/FoxReact/FoxReact.xcodeproj/xcshareddata/xcschemes/FoxReact.xcscheme b/lang/ja/ios/FoxReact/FoxReact.xcodeproj/xcshareddata/xcschemes/FoxReact.xcscheme similarity index 100% rename from ios/FoxReact/FoxReact.xcodeproj/xcshareddata/xcschemes/FoxReact.xcscheme rename to lang/ja/ios/FoxReact/FoxReact.xcodeproj/xcshareddata/xcschemes/FoxReact.xcscheme diff --git a/ios/FoxReact/FoxReact/CYZFoxAppDelegateSwizzling.m b/lang/ja/ios/FoxReact/FoxReact/CYZFoxAppDelegateSwizzling.m similarity index 100% rename from ios/FoxReact/FoxReact/CYZFoxAppDelegateSwizzling.m rename to lang/ja/ios/FoxReact/FoxReact/CYZFoxAppDelegateSwizzling.m diff --git a/ios/FoxReact/FoxReact/CYZFoxReactModule.h b/lang/ja/ios/FoxReact/FoxReact/CYZFoxReactModule.h similarity index 100% rename from ios/FoxReact/FoxReact/CYZFoxReactModule.h rename to lang/ja/ios/FoxReact/FoxReact/CYZFoxReactModule.h diff --git a/ios/FoxReact/FoxReact/CYZFoxReactModule.m b/lang/ja/ios/FoxReact/FoxReact/CYZFoxReactModule.m similarity index 100% rename from ios/FoxReact/FoxReact/CYZFoxReactModule.m rename to lang/ja/ios/FoxReact/FoxReact/CYZFoxReactModule.m diff --git a/lang/zh-cn/README.md b/lang/zh-cn/README.md new file mode 100644 index 0000000..99cba7e --- /dev/null +++ b/lang/zh-cn/README.md @@ -0,0 +1,330 @@ +# Integration Guide + +## Index + +* **[1. 导入](#install_sdk)** + * [1.1 OS通用步骤](#install_common) + * [1.2 iOS](#install_ios) + * [1.3 Android](#install_android) + * [1.3.1 权限](#android_permission) + * [1.3.2 使用ProGuard](#android_proguard) +* **[2. 激活](#activation)** +* **[3. 广告成果计测](#measurement)** + * [3.1 Install成果计测](#measurement_install) + * [3.2 InstallReferrer计测(仅Android)](#measurement_installreferrer) + * [3.3 流失唤回广告(Reengagement)成果计测](#measurement_reengagement) +* **[4. APP内事件计测](#measurement_event)** + * [4.1 新手引导事件](#measurement_event_tutorial) + * [4.2 消费事件](#measurement_event_purchase) + * [4.3 Session计测](#measurement_event_session) + + +
+ +## 1. 导入 + +
+ +#### 1.1 OS通用步骤 + +请在[发布页面](https://github.com/forceoperationx/react-native-sdk/releases)下载SDK的zip文件。
+解压展开zip文件以后、将`js`目录内的js文件拷贝到导入目标的ReactNative项目。 + +* `fox.js` +* `fox-ios.js` +* `fox-android.js` + +
+ +#### 1.2 iOS +**【 依靠library文件导入 】** +按照通用步骤,将下载SDK时的zip文件同捆的iOS SDK Library的全部文件拷贝到目标iOS项目的library/framework search path里、并用xcode来link。 +* `libFoxReact.a` +* `CYZFox.framework` + + +
+ +#### 1.3 Android + +**【 依靠Gradle导入 】** + +[ build.gradle ]
+```gradle +repositories { + maven { + url "https://github.com/cyber-z/public-fox-android-sdk/raw/master/mavenRepo" + } +} + +dependencies { + compile 'co.cyberz.fox:track-core:X.X.X' + compile 'co.cyberz.fox.support:track-reactnative:X.X.X' +} +``` + +> ※ 请将`co.cyberz.fox:track-core:`的版本指定为4.3.0及以上。目前无法支持不足4.3.0的版本。 + +> ※ `co.cyberz.fox.support:track-reactnative:`的版本请从发布页面里选择。 + +**【 依靠jar文件导入 】** + +按照通用步骤,将下载SDK时的zip文件同捆的Android SDK的libs内所有jar文件拷贝到Android目标项目的libs里。 +* `FOX_Android_SDK_X.X.X.jar` +* `FOX_Android_SDK_Support_ReactNative_X.X.X.jar` + +
+ +#### 1.3.1 权限 + +在F.O.X SDK里可以利用下面3种权限。 +请在<Manifest>标签内设置下面的权限。 + +```xml + + +``` + +权限|Protection Level|必须|概要 +:---|:---:|:---:|:--- +INTERNET|Normal|必须|F.O.X SDK进行通信所必须的。 +WRITE_EXTERNAL_STORAGE ※1|Dangerous|任意|利用外部存储提高排除重复精度。(※2) + +> ※1 通过将数据记录在外部存储器的方式,在APP再次被安装的时候能够更精确地计测Install成果的时候,可以添加READ_EXTERNAL_STORAGE以及WRITE_EXTERNAL_STORAGE权限,并不是必须。 + +> ※2 从Android M版本开始、使用ProtectionLevel为dangerous且需要权限的功能时,必须得到用户许可。详细请查看F.O.X Android SDK文档的[利用外部储存来优化排除重复(外部链接)](https://github.com/cyber-z/public-fox-android-sdk/blob/4.x/lang/ja/doc/external_storage/README.md)。 + +
+ +#### 1.3.2 使用ProGuard + +使用Proguard进行APP代码混淆时,为排除F.O.X SDK的调用方法,请添加以下设置。 + +``` +-keepattributes *Annotation* +-keep class co.cyberz.** { *; } +-keep class com.google.android.gms.ads.identifier.* { *; } +-dontwarn co.cyberz.** +# 经由Gradle导入SDK的话,不需要指定下面jar文件。 +-libraryjars libs/FOX_Android_SDK_X.X.X.jar +-libraryjars libs/FOX_Android_SDK_Support_ReactNative_X.X.X.jar +``` + +
+ +## 2. 激活 + +调用F.O.X类库之前请务必导入`fox.js`。之后,在案例代码里定义为CYZFox。 + +```js +// 指定访问fox.js的路径 +import CYZFox from './fox.js'; + +... + +componentDidMount() { +... + const config = { + ios : { + appId : 6421, + appSalt : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + appKey : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + customizedUserAgentEnabled : true + }, + android : { + appId : 2684, + appSalt : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + appKey : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + }, + // DEGUG模式的ON/OFF + debugModeEnabled : false + } + CYZFox.activate(config); +... +``` + + +> * 将F.O.X管理画面发行的值设置到`appId`, `appSalt`, `appKey`里。 +> * `customizedUserAgentEnabled`为iOS固有的设置,如果定制化APP内WebView的UserAgent、请设置为true。 +> * `debugModeEnabled`在希望输出F.O.X SDK的DEBUG LOG的时候设置为true。发布的时候设置为false。 + +
+ +## 3. 广告成果计测 + +
+ +#### 3.1 Install成果计测 + +通过在APP的初次启动处理里执行Install计测,能够实施广告的效果测定。
+请把下面做效果测定的代码添加到在APP启动时必被调用的处理里 + +```js +// 指定访问fox.js的路径 +import CYZFox from './fox.js'; + +... + +const option = { + buid : "UserID", + redirectURL : "fox://react", + trackingCompletionHandler : () => {console.log("tracking completed implementation")}, + durationSinceClick : 60 * 60 * 12, + deferredDeeplinkHandler : (deepInfo) => {console.log(`deep link : ${deepInfo? deepInfo["deeplink"] : "empty"}`)} +} +// +CYZFox.trackInstall(option); +``` +> * trackInstall方法即使不指定option参数也可以执行。 +> * Install计测的option一览 +> +> |項目|詳細| +> |:---:|:---| +> |redirectURL|启动浏览器的时候跳转目的地的URL。可以指定APP本身的定制化URL。| +> |buid|广告主终端ID(app的特定用户的ID)| +> |trackingCompletionHandler|Install计测完成的callback handler| +> |durationSinceClick|执行Deferred DeepLink的时候、对象最终点击的对象期间(秒)(指定从初次启动开始追溯到之前多少秒)
默认 : 86400 (1天)| +> |deferredDeeplinkHandler|为接收DeepLink的callback handler| +> + +
+ +#### 3.2 Install Referrer计测計測(只有Android) + +为了进行使用InstallReferrer的Install计测,请在<application>标签里添加如下设置。 + +``` + + + + + +``` + +> "com.android.vending.INSTALL_REFERRER"的Receiver类已经被定义的情况下,请参照F.O.X Android SDK文档的[让多个INSTALL_REFERRER RECEIVER共存的设置(外部链接)](https://github.com/cyber-z/public-fox-android-sdk/blob/4.x/lang/ja/doc/install_referrer/README.md) 。 + +
+ +#### 3.3 流失唤回(Reengagement)广告成果计测リエンゲージメント成果計測 + +为实施流失唤回广告成果计测(计测经由定制化URLScheme的启动)做必要的设定。iOS环境无需设定就能自动计测,Android环境需要下面的测试
+ +在AndroidManifest.xml的主Activity(APP里初次调用的Activity)的<activity>标签里,为了使用定制化的URLScheme让APP启动起来,请按照如下事例添加intent-filter。
+※ 流失唤回广告成果计测是通过使用定制化URLScheme调用Activity的方式来实现计测的。 + +```xml + + + + + + + + + + + + + + + + +``` + +> ※ 定制化URLScheme的详细请参考[Android Developers (隐式intent的接收)](https://developer.android.com/guide/components/intents-filters.html#Receiving) 。 + +
+ +## 4. APP内事件的计测 + +可以在会员注册,完成新手引导,付费等任意成果地点执行事件计测,能够测定广告流入源的LTV。
+不需要事件计测的话,可以忽略本项。在APP内部产生成果的时候,请按照下面那样书写成果处理部分。
+为了计测APP内事件请利用`trackEvent`方法。 + +对于会员注册或APP内消费后的消费计测,请在注册・消费处理执行后的回调处理里执行如下事件计测处理。 + +
+ +#### 4.1 新手引导事件 + +**【 执行案例 】** + +```js +const event = { + ios : { + eventName : "iOS新手引导突破", + ltvId : 5973, + }, + android : { + eventName : "Android新手引导突破", + ltvId : 5974, + }, + buid : "USER_001" +} +CYZFox.trackEvent(event); +``` + +
+ +#### 4.2 付费事件 + +**【 执行案例 】** + +```js +const event = { + ios : { + eventName : "ios-purchase", + ltvId : 5975, + }, + android : { + eventName : "android-purchase", + ltvId : 5976, + }, + buid : "USER_001", + value : 2, + orderId : "react-orderId", + sku : "react-sku", + itemName : "react-itemname", + price : 18.6, + quantity : 3, + currency : "USD", + eventInfo : { + name : "wuwei", + age : 35, + married : true + }, + extraInfo : { + eventId : "pur001", + coupon : "10%" + } +} +CYZFox.trackEvent(event); +``` + +> * 事件计测时候指定的参数一览 +> +> |**类型**|**必须**|**参数名**|**概要**| +> |:---:|:---:|:---|:---| +> |String|○|eventName|事件名| +> |int|○|ltvId|成果地点ID
请输入管理者告知的值。| +> |String|-|buid|是广告主管理的唯一的判别ID(会员ID等)。 能指定的值为64文字以内的半角英文数字。| +> |double|-|price|金额| +> |String|-|currency|货币
请使用[ISO 4217](http://ja.wikipedia.org/wiki/ISO_4217) 定义的货币代码。| +> |String|-|sku|SKU| +> |String|-|value|値| +> |String|-|orderId|订单ID| +> |int|-|quantity|数量| +> |String|-|extraInfo|任意的参数的Key/Value
在Key値里请不要将下划线("_")写在参数名的最前面。此外,无法使用半角英文数字以外的字符。| +> |String|-|eventInfo|任意的参数群| + +
+ +#### 4.3 Session计测 + +能够进行自然流入和广告流入的安装数比较,计测APP的启动数或唯一用户数(DAU/MAU),留存率等。
+这个是指在iOS/Android的native代码里,SDK自动探知在APP启动・后台跳转前台的迁移时进行计测,不需要编写代码。 diff --git a/lang/zh-cn/android/supportReactNative/.gitignore b/lang/zh-cn/android/supportReactNative/.gitignore new file mode 100644 index 0000000..e2d7e27 --- /dev/null +++ b/lang/zh-cn/android/supportReactNative/.gitignore @@ -0,0 +1,58 @@ +mavenRepo/ + +# Built application files +*.apk +*.ap_ + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# Intellij +*.iml +.idea/workspace.xml +.idea/tasks.xml +.idea/gradle.xml +.idea/dictionaries +.idea/libraries + +# Keystore files +# Uncomment the following line if you do not want to check your keystore files in. +#*.jks + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json diff --git a/lang/zh-cn/android/supportReactNative/build.gradle b/lang/zh-cn/android/supportReactNative/build.gradle new file mode 100644 index 0000000..342cfae --- /dev/null +++ b/lang/zh-cn/android/supportReactNative/build.gradle @@ -0,0 +1,63 @@ +apply plugin: 'com.android.library' +apply plugin: 'maven' + +android { + compileSdkVersion 26 + buildToolsVersion "26.0.1" + publishNonDefault false + + defaultConfig { + minSdkVersion 14 + targetSdkVersion 26 + versionCode 1 + versionName "1.0" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +group = 'co.cyberz.fox.support' +def artifact = 'track-reactnative' +version = '1.0.0' +description = 'F.O.X Android SDK React Native Plugin' + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + provided "com.facebook.react:react-native:+" // From node_modules + provided 'co.cyberz.fox:track-core:4.3.0' +} + +uploadArchives { + repositories.mavenDeployer { + repository(url: "file:${projectDir}/mavenRepo") + pom.project { + licenses { + license { + name "Copyright © CyberZ, inc. All Rights Reserved." + } + } + } + pom.artifactId = "${artifact}" + } +} + +task removeJar(type:Delete) { + delete fileTree(dir:'build/outputs/jar/', include:("*")) +} + + +task copyJar(type:Copy, dependsOn:removeJar) { + from('build/intermediates/bundles/release/') + into('build/outputs/jar/') + include('classes.jar') + rename('classes.jar', "FOX_Android_SDK_Support_ReactNative_${version}.jar") +} + +task assembleReleaseJar(dependsOn:copyJar) << { + println("assemble jar : " + copyJar.destinationDir) +} \ No newline at end of file diff --git a/lang/zh-cn/android/supportReactNative/proguard-rules.pro b/lang/zh-cn/android/supportReactNative/proguard-rules.pro new file mode 100644 index 0000000..5687bf6 --- /dev/null +++ b/lang/zh-cn/android/supportReactNative/proguard-rules.pro @@ -0,0 +1,25 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /Users/z00066/Library/Android/sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/lang/zh-cn/android/supportReactNative/src/main/AndroidManifest.xml b/lang/zh-cn/android/supportReactNative/src/main/AndroidManifest.xml new file mode 100644 index 0000000..abf12b3 --- /dev/null +++ b/lang/zh-cn/android/supportReactNative/src/main/AndroidManifest.xml @@ -0,0 +1,10 @@ + + + + + + + diff --git a/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxConfigModule.java b/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxConfigModule.java new file mode 100644 index 0000000..a660269 --- /dev/null +++ b/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxConfigModule.java @@ -0,0 +1,30 @@ +package co.cyberz.fox.support.reactnative; + +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; + +import co.cyberz.fox.FoxConfig; + +/** + * Created by Garhira on 2017/10/20. + */ + +public class FoxConfigModule extends ReactContextBaseJavaModule { + + public FoxConfigModule(ReactApplicationContext reactContext) { + super(reactContext); + } + + @Override + public String getName() { + return "CYZFoxConfig"; + } + + @ReactMethod + public void activate(int appId, String appKey, String appSalt, boolean isDebug) { + FoxConfig mFoxConfig = new FoxConfig(getReactApplicationContext(), appId, appKey, appSalt); + mFoxConfig.addDebugOption(isDebug); + mFoxConfig.activate(); + } +} diff --git a/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxEventModule.java b/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxEventModule.java new file mode 100644 index 0000000..f8754fd --- /dev/null +++ b/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxEventModule.java @@ -0,0 +1,103 @@ +package co.cyberz.fox.support.reactnative; + +import android.util.Log; + +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.ReadableMap; +import org.json.JSONObject; + +import java.util.HashMap; + +import co.cyberz.fox.Fox; +import co.cyberz.fox.service.FoxEvent; + +/** + * FoxEventを作るクラス + * Created by Garhira on 2017/10/24. + */ +public class FoxEventModule extends ReactContextBaseJavaModule { + + private static final String NAME = "eventName"; + private static final String ID = "ltvId"; + private static final String PRICE = "price"; + private static final String SKU = "sku"; + private static final String CURRENCY = "currency"; + private static final String BUID = "buid"; + private static final String VALUE = "value"; + private static final String ORDER_ID = "orderId"; + private static final String ITEM_NAME = "itemName"; + private static final String QUANTITY = "quantity"; + private static final String EXTRA_INFO = "extraInfo"; + private static final String EVENT_INFO = "eventInfo"; + + public FoxEventModule(ReactApplicationContext reactContext) { + super(reactContext); + } + + @Override + public String getName() { + return "CYZFoxEvent"; + } + + /** + * イベント計測の必須情報をセット + * @param map + */ + @ReactMethod + public void track(ReadableMap map) { + if (map == null) { + Log.e("FOX-Event", "Event description must be not null!!!"); + return; + } else if (!map.hasKey(NAME)) { + Log.e("FOX-Event", "Event name is require parameter!!"); + return; + } + ReactFoxEvent event; + if (map.hasKey(ID)) { + event = new ReactFoxEvent(map.getString(NAME), map.getInt(ID)); + } else { + event = new ReactFoxEvent(map.getString(NAME)); + } + if (map.hasKey(PRICE)) event.price = map.getDouble(PRICE); + if (map.hasKey(SKU)) event.sku = map.getString(SKU); + if (map.hasKey(CURRENCY)) event.currency = map.getString(CURRENCY); + if (map.hasKey(BUID)) event.buid = map.getString(BUID); + if (map.hasKey(VALUE)) event.value = map.getInt(VALUE); + if (map.hasKey(ORDER_ID)) event.orderId = map.getString(ORDER_ID); + if (map.hasKey(ITEM_NAME)) event.itemName = map.getString(ITEM_NAME); + if (map.hasKey(QUANTITY)) event.quantity = map.getInt(QUANTITY); + if (map.hasKey(EXTRA_INFO)) event.addExtraInfo(map.getMap(EXTRA_INFO)); + + if (map.hasKey(EVENT_INFO)) { + try { + HashMap eventInfoHashMap = map.getMap(EVENT_INFO).toHashMap(); + if (eventInfoHashMap != null && 0 < eventInfoHashMap.size()) + event.eventInfo = new JSONObject(eventInfoHashMap); + } catch (Throwable t) { + Log.e("FOX-Event", "setEventInfo", t); + } + } + Fox.trackEvent(event); + } + + private class ReactFoxEvent extends FoxEvent { + + public ReactFoxEvent(String eventName) { + super(eventName); + } + + public ReactFoxEvent(String eventName, int ltvId) { + super(eventName, ltvId); + } + + public void addExtraInfo(ReadableMap extraInfoMap) { + if (extraInfo == null) { + extraInfo = new HashMap(); + } + extraInfo.putAll(FoxReactUtil.toHashMap(extraInfoMap)); + } + } + +} diff --git a/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxModule.java b/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxModule.java new file mode 100644 index 0000000..332d518 --- /dev/null +++ b/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxModule.java @@ -0,0 +1,143 @@ +package co.cyberz.fox.support.reactnative; + +import android.content.Context; +import android.support.annotation.Nullable; +import android.text.TextUtils; +import android.util.Log; + +import com.facebook.react.bridge.Callback; +import com.facebook.react.bridge.LifecycleEventListener; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.ReadableMap; + +import org.json.JSONObject; + +import java.util.HashMap; + +import co.cyberz.fox.Fox; +import co.cyberz.fox.FoxTrackOption; + +/** + * Created by z00066 on 2017/10/18. + */ + +/** + * Created by Garhira on 2017/10/20. + */ +public class FoxModule extends ReactContextBaseJavaModule implements LifecycleEventListener { + + private FoxTrackOption option; + + public FoxModule(ReactApplicationContext reactContext) { + super(reactContext); + option = new FoxTrackOption(); + reactContext.addLifecycleEventListener(this); + } + + @Override + public String getName() { + return "CYZFox"; + } + + @ReactMethod + public void addOptionRedirectUrl(String url) { + if (!TextUtils.isEmpty(url)) option.addRedirectUrl(url); + } + + @ReactMethod + public void addOptionBuid(String buid) { + if (!TextUtils.isEmpty(buid)) option.addBuid(buid); + } + + @ReactMethod + public void setTrackingStateListener(final Callback onComplete) { + option.setTrackingStateListener(new FoxTrackOption.TrackingStateListener() { + @Override + public void onComplete() { + if (onComplete != null) onComplete.invoke(); + } + }); + } + + @ReactMethod + public void registerDeeplinkHandler(final long duration, final Callback deeplinkCallback) { + option.registerDeeplinkHandler(new FoxTrackOption.DeeplinkHandler() { + + @Override + public long getDuration() { + if (0l < duration) { + return duration; + } + return super.getDuration(); + } + + @Override + public void onReceived(Context context, @Nullable JSONObject deeplinkInfo) { + if (deeplinkInfo != null) { + try { + if (deeplinkCallback != null) + deeplinkCallback.invoke(FoxReactUtil.convertJsonToMap(deeplinkInfo)); + } catch (Exception e) { + Log.e("FOX", "registerDeeplinkHandler", e); + } + } + } + }); + } + + @ReactMethod + public void trackInstall() { + Fox.trackInstall(option); + } + + @ReactMethod + public void trackSession() { + Fox.trackSession(); + } + + @ReactMethod + public void setUserInfo(ReadableMap userInfoMap) { + if (userInfoMap.hasKey("redirectURL")) userInfoMap.getString("userInfoMap."); + try { + HashMap userInfo = FoxReactUtil.toHashMap(userInfoMap); + Fox.setUserInfo(new JSONObject(userInfo)); + } catch (Throwable t) { + Log.e("FOX", "setUserInfo", t); + } + } + + @ReactMethod + public void getUserInfo(Callback userInfoCallback) { + if (userInfoCallback == null) return; + try { + JSONObject userInfo = Fox.getUserInfo(); + if (userInfo == null) { + userInfoCallback.invoke(); + } else { + userInfoCallback.invoke(FoxReactUtil.convertJsonToMap(userInfo)); + } + } catch (Throwable t) { + Log.e("FOX", "getUserInfo", t); + } + } + + @Override + public void onHostResume() { + if (Fox.isConversionCompleted()) { + Fox.trackSession(); + } + if (getReactApplicationContext().hasCurrentActivity()) { + Fox.trackDeeplinkLaunch(getCurrentActivity()); + } + } + + @Override + public void onHostPause() { + } + + @Override + public void onHostDestroy() { + } +} diff --git a/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactPackage.java b/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactPackage.java new file mode 100644 index 0000000..316deaf --- /dev/null +++ b/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactPackage.java @@ -0,0 +1,31 @@ +package co.cyberz.fox.support.reactnative; + +import com.facebook.react.ReactPackage; +import com.facebook.react.bridge.NativeModule; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.uimanager.ViewManager; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * Created by z00066 on 2017/10/18. + */ + +public class FoxReactPackage implements ReactPackage { + + @Override + public List createNativeModules(ReactApplicationContext reactContext) { + List modules = new ArrayList<>(); + modules.add(new FoxConfigModule(reactContext)); + modules.add(new FoxModule(reactContext)); + modules.add(new FoxEventModule(reactContext)); + return modules; + } + + @Override + public List createViewManagers(ReactApplicationContext reactContext) { + return Collections.emptyList(); + } +} diff --git a/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactUtil.java b/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactUtil.java new file mode 100644 index 0000000..30b6ae2 --- /dev/null +++ b/lang/zh-cn/android/supportReactNative/src/main/java/co/cyberz/fox/support/reactnative/FoxReactUtil.java @@ -0,0 +1,114 @@ +package co.cyberz.fox.support.reactnative; + +import android.text.TextUtils; +import android.util.Log; + +import com.facebook.react.bridge.ReadableMap; +import com.facebook.react.bridge.WritableArray; +import com.facebook.react.bridge.WritableMap; +import com.facebook.react.bridge.WritableNativeArray; +import com.facebook.react.bridge.WritableNativeMap; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +/** + * Created by Garhira on 2017/10/25. + */ +public class FoxReactUtil { + + /** + * HashMapに変換する + * @param map ReadableMap + * @return HashMap + */ + public static HashMap toHashMap(ReadableMap map) { + HashMap extraMap = new HashMap(); + for (Map.Entry extraData : map.toHashMap().entrySet()) { + try { + String extraValue = null; + Object value = extraData.getValue(); + if (value instanceof String) { + extraValue = (String) value; + } else if (value instanceof Integer) { + extraValue = String.valueOf((int) value); + } else if (value instanceof Boolean) { + extraValue = String.valueOf((boolean) value); + } else if (value instanceof Double) { + extraValue = String.valueOf((double) value); + } + if (!TextUtils.isEmpty(extraValue)) extraMap.put(extraData.getKey(), extraValue); + } catch (Throwable e) { + Log.e("FOX-ReactUtil", extraData.getKey() + "'s value is illegal!!"); + } + } + return extraMap; + } + + /** + * + * @param jsonObject + * @return + * @throws JSONException + */ + public static WritableMap convertJsonToMap(JSONObject jsonObject) throws JSONException { + WritableMap map = new WritableNativeMap(); + + Iterator iterator = jsonObject.keys(); + while (iterator.hasNext()) { + String key = iterator.next(); + Object value = jsonObject.get(key); + if (value instanceof JSONObject) { + map.putMap(key, convertJsonToMap((JSONObject) value)); + } else if (value instanceof JSONArray) { + map.putArray(key, convertJsonToArray((JSONArray) value)); + } else if (value instanceof Boolean) { + map.putBoolean(key, (Boolean) value); + } else if (value instanceof Integer) { + map.putInt(key, (Integer) value); + } else if (value instanceof Double) { + map.putDouble(key, (Double) value); + } else if (value instanceof String) { + map.putString(key, (String) value); + } else { + map.putString(key, value.toString()); + } + } + return map; + } + + /** + * + * @param jsonArray + * @return + * @throws JSONException + */ + public static WritableArray convertJsonToArray(JSONArray jsonArray) throws JSONException { + WritableArray array = new WritableNativeArray(); + + for (int i = 0; i < jsonArray.length(); i++) { + Object value = jsonArray.get(i); + if (value instanceof JSONObject) { + array.pushMap(convertJsonToMap((JSONObject) value)); + } else if (value instanceof JSONArray) { + array.pushArray(convertJsonToArray((JSONArray) value)); + } else if (value instanceof Boolean) { + array.pushBoolean((Boolean) value); + } else if (value instanceof Integer) { + array.pushInt((Integer) value); + } else if (value instanceof Double) { + array.pushDouble((Double) value); + } else if (value instanceof String) { + array.pushString((String) value); + } else { + array.pushString(value.toString()); + } + } + return array; + } +} diff --git a/lang/zh-cn/android/supportReactNative/src/main/res/values/strings.xml b/lang/zh-cn/android/supportReactNative/src/main/res/values/strings.xml new file mode 100644 index 0000000..6f6474a --- /dev/null +++ b/lang/zh-cn/android/supportReactNative/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + CYZFoxReact + diff --git a/lang/zh-cn/exapp/.babelrc b/lang/zh-cn/exapp/.babelrc new file mode 100644 index 0000000..a9ce136 --- /dev/null +++ b/lang/zh-cn/exapp/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["react-native"] +} diff --git a/lang/zh-cn/exapp/.buckconfig b/lang/zh-cn/exapp/.buckconfig new file mode 100644 index 0000000..934256c --- /dev/null +++ b/lang/zh-cn/exapp/.buckconfig @@ -0,0 +1,6 @@ + +[android] + target = Google Inc.:Google APIs:23 + +[maven_repositories] + central = https://repo1.maven.org/maven2 diff --git a/lang/zh-cn/exapp/.flowconfig b/lang/zh-cn/exapp/.flowconfig new file mode 100644 index 0000000..a359500 --- /dev/null +++ b/lang/zh-cn/exapp/.flowconfig @@ -0,0 +1,48 @@ +[ignore] +; We fork some components by platform +.*/*[.]android.js + +; Ignore "BUCK" generated dirs +/\.buckd/ + +; Ignore unexpected extra "@providesModule" +.*/node_modules/.*/node_modules/fbjs/.* + +; Ignore duplicate module providers +; For RN Apps installed via npm, "Libraries" folder is inside +; "node_modules/react-native" but in the source repo it is in the root +.*/Libraries/react-native/React.js + +; Ignore polyfills +.*/Libraries/polyfills/.* + +[include] + +[libs] +node_modules/react-native/Libraries/react-native/react-native-interface.js +node_modules/react-native/flow/ + +[options] +emoji=true + +module.system=haste + +munge_underscores=true + +module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' + +suppress_type=$FlowIssue +suppress_type=$FlowFixMe +suppress_type=$FlowFixMeProps +suppress_type=$FlowFixMeState +suppress_type=$FixMe + +suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(5[0-3]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) +suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(5[0-3]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ +suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy +suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError + +unsafe.enable_getters_and_setters=true + +[version] +^0.53.0 diff --git a/lang/zh-cn/exapp/.gitattributes b/lang/zh-cn/exapp/.gitattributes new file mode 100644 index 0000000..d42ff18 --- /dev/null +++ b/lang/zh-cn/exapp/.gitattributes @@ -0,0 +1 @@ +*.pbxproj -text diff --git a/lang/zh-cn/exapp/.gitignore b/lang/zh-cn/exapp/.gitignore new file mode 100644 index 0000000..8be3325 --- /dev/null +++ b/lang/zh-cn/exapp/.gitignore @@ -0,0 +1,61 @@ +# OSX +# +.DS_Store + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml + +# node.js +# +node_modules/ +npm-debug.log +yarn-error.log + +# BUCK +buck-out/ +\.buckd/ +*.keystore + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/ + +*/fastlane/report.xml +*/fastlane/Preview.html +*/fastlane/screenshots + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +Pods/ diff --git a/lang/zh-cn/exapp/.watchmanconfig b/lang/zh-cn/exapp/.watchmanconfig new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/lang/zh-cn/exapp/.watchmanconfig @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/lang/zh-cn/exapp/App.js b/lang/zh-cn/exapp/App.js new file mode 100644 index 0000000..0ec38a5 --- /dev/null +++ b/lang/zh-cn/exapp/App.js @@ -0,0 +1,134 @@ +/** + * Sample React Native App + * https://github.com/facebook/react-native + * @flow + */ + +import React, { Component } from 'react'; +import { + Platform, + StyleSheet, + Text, + View +} from 'react-native'; + +import CZYFox from './fox.js'; + + +const instructions = Platform.select({ + ios: 'Press Cmd+R to reload,\n' + + 'Cmd+D or shake for dev menu', + android: 'Double tap R on your keyboard to reload,\n' + + 'Shake or press menu button for dev menu', +}); + +export default class App extends Component<{}> { + render() { + + const iosConfig1 = { + ios :{ + appId : 4879, + appSalt : "42b199d17f20bffa15d242d37cf9650d9558ed78", + appKey : "20131c689b5617940ac82919356bab22cdabcf81", + customizedUserAgentEnabled : true + } + } + + const config = { + ios : { + appId : 6421, + appSalt : "5aebe7204d3136fa6c89cd551761d1629ad9ad50", + appKey : "8c4d483a307c8438222753774bbe0c23f67fbb5e", + customizedUserAgentEnabled : true + }, + android : { + appId : 2684, + appSalt : "bcb5a88f92c9f13a92adf58e91498a5f942f3c2b", + appKey : "1678bb2f08e02c81ddaa8dbfa4618eb93ed1e330" + }, + debugModeEnabled : true + } + CZYFox.activate(config); + + const profile = { + name : "wuwei", + age : 35, + married : true + } + CZYFox.setUserInfo(profile); + CZYFox.getUserInfo((info) => { + if (info) console.log(`profile of user : ${info.name}`) + }); + + const option = { + buid : "user-fox-react", + redirectURL : "fox://react", + optout : true, + trackingCompletionHandler : () => {console.log("tracking completed implementation")}, + durationSinceClick : 60 * 60 * 12, + deferredDeeplinkHandler : (deepInfo) => {console.log(`deep link : ${deepInfo? deepInfo["deeplink"] : "empty"}`)} + } + + CZYFox.trackInstall(option); + + CZYFox.trackSession(); + + const event = { + eventName : "react-purchase", + ltvId : 5975, + buid : "react-buid", + value : 2, + orderId : "react-orderId", + sku : "react-sku", + itemName : "react-itemname", + price : 66.6, + quantity : 3, + currency : "USD", + eventInfo : { + name : "wuwei", + age : 35, + married : true + }, + extraInfo : { + eventId : "pur001", + coupon : "10%" + } + } + + CZYFox.trackEvent(event); +// **/ + + return ( + + + Welcome to React Native! + + + To get started, edit App.js + + + {instructions} + + + ); + } +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: '#F5FCFF', + }, + welcome: { + fontSize: 20, + textAlign: 'center', + margin: 10, + }, + instructions: { + textAlign: 'center', + color: '#333333', + marginBottom: 5, + }, +}); diff --git a/lang/zh-cn/exapp/__tests__/App.js b/lang/zh-cn/exapp/__tests__/App.js new file mode 100644 index 0000000..d0b9ee3 --- /dev/null +++ b/lang/zh-cn/exapp/__tests__/App.js @@ -0,0 +1,12 @@ +import 'react-native'; +import React from 'react'; +import App from '../App'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; + +it('renders correctly', () => { + const tree = renderer.create( + + ); +}); diff --git a/lang/zh-cn/exapp/android/app/.gitignore b/lang/zh-cn/exapp/android/app/.gitignore new file mode 100644 index 0000000..f2d8310 --- /dev/null +++ b/lang/zh-cn/exapp/android/app/.gitignore @@ -0,0 +1,56 @@ +# Built application files +*.apk +*.ap_ + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# Intellij +*.iml +.idea/workspace.xml +.idea/tasks.xml +.idea/gradle.xml +.idea/dictionaries +.idea/libraries + +# Keystore files +# Uncomment the following line if you do not want to check your keystore files in. +#*.jks + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json \ No newline at end of file diff --git a/lang/zh-cn/exapp/android/app/BUCK b/lang/zh-cn/exapp/android/app/BUCK new file mode 100644 index 0000000..eae70ab --- /dev/null +++ b/lang/zh-cn/exapp/android/app/BUCK @@ -0,0 +1,65 @@ +# To learn about Buck see [Docs](https://buckbuild.com/). +# To run your application with Buck: +# - install Buck +# - `npm start` - to start the packager +# - `cd android` +# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` +# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck +# - `buck install -r android/app` - compile, install and run application +# + +lib_deps = [] + +for jarfile in glob(['libs/*.jar']): + name = 'jars__' + jarfile[jarfile.rindex('/') + 1: jarfile.rindex('.jar')] + lib_deps.append(':' + name) + prebuilt_jar( + name = name, + binary_jar = jarfile, + ) + +for aarfile in glob(['libs/*.aar']): + name = 'aars__' + aarfile[aarfile.rindex('/') + 1: aarfile.rindex('.aar')] + lib_deps.append(':' + name) + android_prebuilt_aar( + name = name, + aar = aarfile, + ) + +android_library( + name = "all-libs", + exported_deps = lib_deps, +) + +android_library( + name = "app-code", + srcs = glob([ + "src/main/java/**/*.java", + ]), + deps = [ + ":all-libs", + ":build_config", + ":res", + ], +) + +android_build_config( + name = "build_config", + package = "com.exapp", +) + +android_resource( + name = "res", + package = "com.exapp", + res = "src/main/res", +) + +android_binary( + name = "app", + keystore = "//android/keystores:debug", + manifest = "src/main/AndroidManifest.xml", + package_type = "debug", + deps = [ + ":app-code", + ], +) diff --git a/lang/zh-cn/exapp/android/app/build.gradle b/lang/zh-cn/exapp/android/app/build.gradle new file mode 100644 index 0000000..bc36429 --- /dev/null +++ b/lang/zh-cn/exapp/android/app/build.gradle @@ -0,0 +1,155 @@ +apply plugin: "com.android.application" + +import com.android.build.OutputFile + +/** + * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets + * and bundleReleaseJsAndAssets). + * These basically call `react-native bundle` with the correct arguments during the Android build + * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the + * bundle directly from the development server. Below you can see all the possible configurations + * and their defaults. If you decide to add a configuration block, make sure to add it before the + * `apply from: "../../node_modules/react-native/react.gradle"` line. + * + * project.ext.react = [ + * // the name of the generated asset file containing your JS bundle + * bundleAssetName: "index.android.bundle", + * + * // the entry file for bundle generation + * entryFile: "index.android.js", + * + * // whether to bundle JS and assets in debug mode + * bundleInDebug: false, + * + * // whether to bundle JS and assets in release mode + * bundleInRelease: true, + * + * // whether to bundle JS and assets in another build variant (if configured). + * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants + * // The configuration property can be in the following formats + * // 'bundleIn${productFlavor}${buildType}' + * // 'bundleIn${buildType}' + * // bundleInFreeDebug: true, + * // bundleInPaidRelease: true, + * // bundleInBeta: true, + * + * // whether to disable dev mode in custom build variants (by default only disabled in release) + * // for example: to disable dev mode in the staging build type (if configured) + * devDisabledInStaging: true, + * // The configuration property can be in the following formats + * // 'devDisabledIn${productFlavor}${buildType}' + * // 'devDisabledIn${buildType}' + * + * // the root of your project, i.e. where "package.json" lives + * root: "../../", + * + * // where to put the JS bundle asset in debug mode + * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", + * + * // where to put the JS bundle asset in release mode + * jsBundleDirRelease: "$buildDir/intermediates/assets/release", + * + * // where to put drawable resources / React Native assets, e.g. the ones you use via + * // require('./image.png')), in debug mode + * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", + * + * // where to put drawable resources / React Native assets, e.g. the ones you use via + * // require('./image.png')), in release mode + * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", + * + * // by default the gradle tasks are skipped if none of the JS files or assets change; this means + * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to + * // date; if you have any other folders that you want to ignore for performance reasons (gradle + * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ + * // for example, you might want to remove it from here. + * inputExcludes: ["android/**", "ios/**"], + * + * // override which node gets called and with what additional arguments + * nodeExecutableAndArgs: ["node"], + * + * // supply additional arguments to the packager + * extraPackagerArgs: [] + * ] + */ + +project.ext.react = [ + entryFile: "index.js" +] + +apply from: "../../node_modules/react-native/react.gradle" + +/** + * Set this to true to create two separate APKs instead of one: + * - An APK that only works on ARM devices + * - An APK that only works on x86 devices + * The advantage is the size of the APK is reduced by about 4MB. + * Upload all the APKs to the Play Store and people will download + * the correct one based on the CPU architecture of their device. + */ +def enableSeparateBuildPerCPUArchitecture = false + +/** + * Run Proguard to shrink the Java bytecode in release builds. + */ +def enableProguardInReleaseBuilds = false + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.1" + publishNonDefault true + + defaultConfig { + applicationId "com.exapp" + minSdkVersion 16 + targetSdkVersion 22 + versionCode 1 + versionName "1.0" + ndk { + abiFilters "armeabi-v7a", "x86" + } + } + splits { + abi { + reset() + enable enableSeparateBuildPerCPUArchitecture + universalApk false // If true, also generate a universal APK + include "armeabi-v7a", "x86" + } + } + buildTypes { + release { + minifyEnabled enableProguardInReleaseBuilds + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + } + } + // applicationVariants are e.g. debug, release + applicationVariants.all { variant -> + variant.outputs.each { output -> + // For each separate APK per architecture, set a unique version code as described here: + // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits + def versionCodes = ["armeabi-v7a":1, "x86":2] + def abi = output.getFilter(OutputFile.ABI) + if (abi != null) { // null for the universal-debug, universal-release variants + output.versionCodeOverride = + versionCodes.get(abi) * 1048576 + defaultConfig.versionCode + } + } + } +} + +dependencies { + compile fileTree(dir: "libs", include: ["*.jar"]) + compile "com.android.support:appcompat-v7:23.0.1" + compile "com.facebook.react:react-native:+" // From node_modules +// compile project(':supportReactNative') + compile 'com.google.android.gms:play-services-ads:8.4.0' + compile 'co.cyberz.fox:track-core:4.3.0' + compile 'co.cyberz.fox.support:track-reactnative:1.0.0' +} + +// Run this once to be able to run the application with BUCK +// puts all compile dependencies into folder libs for BUCK to use +task copyDownloadableDepsToLibs(type: Copy) { + from configurations.compile + into 'libs' +} diff --git a/lang/zh-cn/exapp/android/app/proguard-rules.pro b/lang/zh-cn/exapp/android/app/proguard-rules.pro new file mode 100644 index 0000000..6e8516c --- /dev/null +++ b/lang/zh-cn/exapp/android/app/proguard-rules.pro @@ -0,0 +1,70 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Disabling obfuscation is useful if you collect stack traces from production crashes +# (unless you are using a system that supports de-obfuscate the stack traces). +-dontobfuscate + +# React Native + +# Keep our interfaces so they can be used by other ProGuard rules. +# See http://sourceforge.net/p/proguard/bugs/466/ +-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip +-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters +-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip + +# Do not strip any method/class that is annotated with @DoNotStrip +-keep @com.facebook.proguard.annotations.DoNotStrip class * +-keep @com.facebook.common.internal.DoNotStrip class * +-keepclassmembers class * { + @com.facebook.proguard.annotations.DoNotStrip *; + @com.facebook.common.internal.DoNotStrip *; +} + +-keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { + void set*(***); + *** get*(); +} + +-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; } +-keep class * extends com.facebook.react.bridge.NativeModule { *; } +-keepclassmembers,includedescriptorclasses class * { native ; } +-keepclassmembers class * { @com.facebook.react.uimanager.UIProp ; } +-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp ; } +-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup ; } + +-dontwarn com.facebook.react.** + +# TextLayoutBuilder uses a non-public Android constructor within StaticLayout. +# See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details. +-dontwarn android.text.StaticLayout + +# okhttp + +-keepattributes Signature +-keepattributes *Annotation* +-keep class okhttp3.** { *; } +-keep interface okhttp3.** { *; } +-dontwarn okhttp3.** + +# okio + +-keep class sun.misc.Unsafe { *; } +-dontwarn java.nio.file.* +-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement +-dontwarn okio.** diff --git a/lang/zh-cn/exapp/android/app/src/main/AndroidManifest.xml b/lang/zh-cn/exapp/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..26d1c23 --- /dev/null +++ b/lang/zh-cn/exapp/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lang/zh-cn/exapp/android/app/src/main/assets/index.android.bundle b/lang/zh-cn/exapp/android/app/src/main/assets/index.android.bundle new file mode 100644 index 0000000..461cf67 --- /dev/null +++ b/lang/zh-cn/exapp/android/app/src/main/assets/index.android.bundle @@ -0,0 +1,308 @@ +!function(e){e.__DEV__=!1,e.__BUNDLE_START_TIME__=e.nativePerformanceNow?e.nativePerformanceNow():Date.now()}("undefined"!=typeof global?global:"undefined"!=typeof self?self:this); +!function(r){"use strict";function e(r,e,t){e in u||(u[e]={dependencyMap:t,exports:void 0,factory:r,hasError:!1,isInitialized:!1})}function t(r){var e=r,t=u[e];return t&&t.isInitialized?t.exports:n(e,t)}function n(e,t){if(!c&&r.ErrorUtils){c=!0;var n=void 0;try{n=i(e,t)}catch(e){r.ErrorUtils.reportFatalError(e)}return c=!1,n}return i(e,t)}function i(e,n){var i=r.nativeRequire;if(!n&&i&&(i(e),n=u[e]),!n)throw o(e);if(n.hasError)throw a(e,n.error);n.isInitialized=!0;var c=n.exports={},s=n,d=s.factory,f=s.dependencyMap;try{var l={exports:c};return d(r,t,l,c,f),n.factory=void 0,n.dependencyMap=void 0,n.exports=l.exports}catch(r){throw n.hasError=!0,n.error=r,n.isInitialized=!1,n.exports=void 0,r}}function o(r){var e='Requiring unknown module "'+r+'".';return Error(e)}function a(r,e){var t=r;return Error('Requiring module "'+t+'", which threw an exception: '+e)}r.require=t,r.__d=e;var u=Object.create(null);t.async=function(r){return Promise.resolve().then(function(){return t(r)})};var c=!1}("undefined"!=typeof global?global:"undefined"!=typeof self?self:this); +!function(n){Object.assign=function(n,e){for(var f=1;f=u.error&&(t=u.warn),n.__inspectorLog&&n.__inspectorLog(a[t],e,[].slice.call(arguments),l),n.nativeLoggingHook(e,t)}}function e(n,r){return Array.apply(null,Array(r)).map(function(){return n})}function t(r){function t(n,r){var t=n.map(function(n,r){var t=e(" ",p[r]-n.length).join("");return n+t});return r=r||" ",t.join(r+"|"+r)}if(!Array.isArray(r)){var i=r;r=[];for(var a in i)if(i.hasOwnProperty(a)){var l=i[a];l[o]=a,r.push(l)}}if(0===r.length)return void n.nativeLoggingHook("",u.info);var c=Object.keys(r[0]).sort(),f=[],p=[];c.forEach(function(n,e){p[e]=n.length;for(var t=0;t=0||p.indexOf("description")>=0))return o(r);if(0===p.length){if(m(r)){var g=r.name?": "+r.name:"";return n.stylize("[Function"+g+"]","special")}if(v(r))return n.stylize(RegExp.prototype.toString.call(r),"regexp");if(d(r))return n.stylize(Date.prototype.toString.call(r),"date");if(b(r))return o(r)}var y="",h=!1,j=["{","}"];if(c(r)&&(h=!0,j=["[","]"]),m(r)){var z=r.name?": "+r.name:"";y=" [Function"+z+"]"}if(v(r)&&(y=" "+RegExp.prototype.toString.call(r)),d(r)&&(y=" "+Date.prototype.toUTCString.call(r)),b(r)&&(y=" "+o(r)),0===p.length&&(!h||0==r.length))return j[0]+y+j[1];if(t<0)return v(r)?n.stylize(RegExp.prototype.toString.call(r),"regexp"):n.stylize("[Object]","special");n.seen.push(r);var O;return O=h?u(n,r,t,s,p):p.map(function(e){return a(n,r,t,s,e,h)}),n.seen.pop(),l(O,y,j)}function i(n,r){if(y(r))return n.stylize("undefined","undefined");if(g(r)){var e="'"+JSON.stringify(r).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return n.stylize(e,"string")}return s(r)?n.stylize(""+r,"number"):f(r)?n.stylize(""+r,"boolean"):p(r)?n.stylize("null","null"):void 0}function o(n){return"["+Error.prototype.toString.call(n)+"]"}function u(n,r,e,t,i){for(var o=[],u=0,l=r.length;u-1&&(l=u?l.split("\n").map(function(n){return" "+n}).join("\n").substr(2):"\n"+l.split("\n").map(function(n){return" "+n}).join("\n"))):l=n.stylize("[Circular]","special")),y(a)){if(u&&o.match(/^\d+$/))return l;a=JSON.stringify(""+o),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=n.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=n.stylize(a,"string"))}return a+": "+l}function l(n,r,e){var t=0,i=n.reduce(function(n,r){return t++,r.indexOf("\n")>=0&&t++,n+r.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?e[0]+(""===r?"":r+"\n ")+" "+n.join(",\n ")+" "+e[1]:e[0]+r+" "+n.join(", ")+" "+e[1]}function c(n){return Array.isArray(n)}function f(n){return"boolean"==typeof n}function p(n){return null===n}function s(n){return"number"==typeof n}function g(n){return"string"==typeof n}function y(n){return void 0===n}function v(n){return h(n)&&"[object RegExp]"===j(n)}function h(n){return"object"==typeof n&&null!==n}function d(n){return h(n)&&"[object Date]"===j(n)}function b(n){return h(n)&&("[object Error]"===j(n)||n instanceof Error)}function m(n){return"function"==typeof n}function j(n){return Object.prototype.toString.call(n)}function z(n,r){return Object.prototype.hasOwnProperty.call(n,r)}return n}(),o="(index)",u={trace:0,info:1,warn:2,error:3},a=[];a[u.trace]="debug",a[u.info]="log",a[u.warn]="warning",a[u.error]="error";var l=1;if(n.nativeLoggingHook){n.console;n.console={error:r(u.error),info:r(u.info),log:r(u.info),warn:r(u.warn),trace:r(u.trace),debug:r(u.trace),table:t}}else if(!n.console){var c=n.print||function(){};n.console={error:c,info:c,log:c,warn:c,trace:c,debug:c,table:c}}}("undefined"!=typeof global?global:"undefined"!=typeof self?self:this); +!function(r){var n=0,t=function(r){throw r},u={setGlobalHandler:function(r){t=r},getGlobalHandler:function(){return t},reportError:function(r){t&&t(r)},reportFatalError:function(r){t&&t(r,!0)},applyWithGuard:function(r,t,e){try{return n++,r.apply(t,e)}catch(r){u.reportError(r)}finally{n--}return null},applyWithGuardIfNeeded:function(r,n,t){return u.inGuard()?r.apply(n,t):(u.applyWithGuard(r,n,t),null)},inGuard:function(){return n},guard:function(r,n,t){function e(){return u.applyWithGuard(r,t||this,arguments,null,n)}return"function"!=typeof r?(console.warn("A function must be passed to ErrorUtils.guard, got ",r),null):(n=n||r.name||"",e)}};r.ErrorUtils=u}("undefined"!=typeof global?global:"undefined"!=typeof self?self:this); +!function(e){if(void 0===Number.EPSILON&&Object.defineProperty(Number,"EPSILON",{value:Math.pow(2,-52)}),void 0===Number.MAX_SAFE_INTEGER&&Object.defineProperty(Number,"MAX_SAFE_INTEGER",{value:Math.pow(2,53)-1}),void 0===Number.MIN_SAFE_INTEGER&&Object.defineProperty(Number,"MIN_SAFE_INTEGER",{value:-(Math.pow(2,53)-1)}),!Number.isNaN){var r=e.isNaN;Object.defineProperty(Number,"isNaN",{configurable:!0,enumerable:!1,value:function(e){return"number"==typeof e&&r(e)},writable:!0})}}("undefined"!=typeof global?global:"undefined"!=typeof self?self:this); +!function(t){String.prototype.startsWith||(String.prototype.startsWith=function(t){"use strict";if(null==this)throw TypeError();var r=String(this),e=arguments.length>1?Number(arguments[1])||0:0,n=Math.min(Math.max(e,0),r.length);return r.indexOf(String(t),e)===n}),String.prototype.endsWith||(String.prototype.endsWith=function(t){"use strict";if(null==this)throw TypeError();var r=String(this),e=r.length,n=String(t),i=arguments.length>1?Number(arguments[1])||0:e,o=Math.min(Math.max(i,0),e),h=o-n.length;return!(h<0)&&r.lastIndexOf(n,h)===h}),String.prototype.repeat||(String.prototype.repeat=function(t){"use strict";if(null==this)throw TypeError();var r=String(this);if(t=Number(t)||0,t<0||t===1/0)throw RangeError();if(1===t)return r;for(var e="";t;)1&t&&(e+=r),(t>>=1)&&(r+=r);return e}),String.prototype.includes||(String.prototype.includes=function(t,r){"use strict";return"number"!=typeof r&&(r=0),!(r+t.length>this.length)&&this.indexOf(t,r)!==-1}),String.prototype.codePointAt||(String.prototype.codePointAt=function(t){if(null==this)throw TypeError();var r=String(this),e=r.length,n=t?Number(t):0;if(Number.isNaN(n)&&(n=0),!(n<0||n>=e)){var i,o=r.charCodeAt(n);return o>=55296&&o<=56319&&e>n+1&&(i=r.charCodeAt(n+1),i>=56320&&i<=57343)?1024*(o-55296)+i-56320+65536:o}})}("undefined"!=typeof global?global:"undefined"!=typeof self?self:this); +!function(e){function r(e,r){if(null==this)throw new TypeError("Array.prototype.findIndex called on null or undefined");if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var n=Object(this),t=n.length>>>0,o=0;o=0?t=o:(t=n+o,t<0&&(t=0));for(var i;t=0||Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t},r.possibleConstructorReturn=function(e,r){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!r||"object"!=typeof r&&"function"!=typeof r?e:r},r.slicedToArray=function(){function e(e,r){var t=[],n=!0,o=!1,i=void 0;try{for(var f,u=e["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(n=(f=u.next()).done)&&(t.push(f.value),!r||t.length!==r);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&u.return&&u.return()}finally{if(o)throw i}}return t}return function(r,t){if(Array.isArray(r))return r;if(("function"==typeof Symbol?Symbol.iterator:"@@iterator")in Object(r))return e(r,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r.taggedTemplateLiteral=function(e,r){return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(r)}}))},r.toArray=function(e){return Array.isArray(e)?e:Array.from(e)},r.toConsumableArray=function(e){if(Array.isArray(e)){for(var r=0,t=Array(e.length);r0?r[r.length-1]:null,u=r.length>1?r[r.length-2]:null,i="function"==typeof a,l="function"==typeof u;l&&s(i,"Cannot have a non-function arg after a function arg.");var c=i?a:null,v=l?u:null,d=i+l;r=r.slice(0,r.length-d),f.enqueueNativeCall(e,n,r,v,c)},r.type=t,r}function i(e,n){return e.indexOf(n)!==-1}function l(e){var n=e||{},t=n.message,r=babelHelpers.objectWithoutProperties(n,["message"]),o=new Error(t);return o.framesToPop=1,babelHelpers.extends(o,r)}var f=n(16),s=n(13);e.__fbGenNativeModule=o;var c={};if(e.nativeModuleProxy)c=e.nativeModuleProxy;else{var v=e.__fbBatchedBridgeConfig;s(v,"__fbBatchedBridgeConfig is not set, cannot invoke native modules");var d=n(29);(v.remoteModuleConfig||[]).forEach(function(e,n){var t=o(e,n);t&&(t.module?c[t.name]=t.module:d(c,t.name,{get:function(){return a(t.name,n)}}))})}t.exports=c},15); +__d(function(e,r,t,c){"use strict";var i=r(17),n=new i;Object.defineProperty(e,"__fbBatchedBridge",{configurable:!0,value:n}),t.exports=n},16); +__d(function(e,l,t,s){"use strict";var u=l(18),a=l(19),i=(l(20),l(13)),n=(l(21),0),_=1,c=0,o=1,h=2,r=5,d=null,v=function(){function t(){var e=this;babelHelpers.classCallCheck(this,t),this.callFunctionReturnFlushedQueue=function(l,t,s){return e.__guard(function(){e.__callFunction(l,t,s)}),e.flushedQueue()},this.callFunctionReturnResultAndFlushedQueue=function(l,t,s){var u=void 0;return e.__guard(function(){u=e.__callFunction(l,t,s)}),[u,e.flushedQueue()]},this.invokeCallbackAndReturnFlushedQueue=function(l,t){return e.__guard(function(){e.__invokeCallback(l,t)}),e.flushedQueue()},this.flushedQueue=function(){e.__guard(function(){e.__callImmediates()});var l=e._queue;return e._queue=[[],[],[],e._callID],l[0].length?l:null},this._lazyCallableModules={},this._queue=[[],[],[],0],this._successCallbacks=[],this._failureCallbacks=[],this._callID=0,this._lastFlush=0,this._eventLoopStartTime=(new Date).getTime()}return babelHelpers.createClass(t,[{key:"getEventLoopRunningTime",value:function(){return(new Date).getTime()-this._eventLoopStartTime}},{key:"registerCallableModule",value:function(e,l){this._lazyCallableModules[e]=function(){return l}}},{key:"registerLazyCallableModule",value:function(e,l){var t=void 0,s=l;this._lazyCallableModules[e]=function(){return s&&(t=s(),s=null),t}}},{key:"getCallableModule",value:function(e){var l=this._lazyCallableModules[e];return l?l():null}},{key:"enqueueNativeCall",value:function(l,t,s,u,i){(u||i)&&(u&&s.push(this._callID<<1),i&&s.push(this._callID<<1|1),this._successCallbacks[this._callID]=i,this._failureCallbacks[this._callID]=u),this._callID++,this._queue[c].push(l),this._queue[o].push(t),this._queue[h].push(s);var n=(new Date).getTime();if(e.nativeFlushQueueImmediate&&(n-this._lastFlush>=r||0===this._inCall)){var _=this._queue;this._queue=[[],[],[],this._callID],this._lastFlush=n,e.nativeFlushQueueImmediate(_)}a.counterEvent("pending_js_to_native_queue",this._queue[0].length),this.__spy&&this.__spyNativeCall(l,t,s,{failCbId:u?s[s.length-2]:-1,successCbId:i?s[s.length-1]:-1})}},{key:"callSyncHook",value:function(l,t,s){var u=e.nativeCallSyncHook(l,t,s);return this.__spy&&this.__spyNativeCall(l,t,s,{isSync:!0,returnValue:u}),u}},{key:"createDebugLookup",value:function(e,l,t){}},{key:"__guard",value:function(e){this._inCall++;try{e()}catch(e){u.reportFatalError(e)}finally{this._inCall--}}},{key:"__callImmediates",value:function(){a.beginEvent("JSTimers.callImmediates()"),d||(d=l(22)),d.callImmediates(),a.endEvent()}},{key:"__callFunction",value:function(e,l,t){this._lastFlush=(new Date).getTime(),this._eventLoopStartTime=this._lastFlush,a.beginEvent(e+"."+l+"()"),this.__spy&&this.__spyJSCall(e,l,t);var s=this.getCallableModule(e);i(!!s,"Module %s is not a registered callable module (calling %s)",e,l),i(!!s[l],"Method %s does not exist on module %s",l,e);var u=s[l].apply(s,t);return a.endEvent(),u}},{key:"__invokeCallback",value:function(e,l){this._lastFlush=(new Date).getTime(),this._eventLoopStartTime=this._lastFlush;var t=e>>>1,s=1&e,u=s?this._successCallbacks[t]:this._failureCallbacks[t];u&&(this._successCallbacks[t]=this._failureCallbacks[t]=null,u.apply(null,l))}},{key:"__spyJSCall",value:function(e,l,t,s){this.__spy&&this.__spy(babelHelpers.extends({type:n,isSync:!1,module:e,method:l,failCbId:-1,successCbId:-1,args:t},s))}},{key:"__spyNativeCall",value:function(e,l,t,s){var u=this.__spy;if(u){var a=e+"",i=l;u(babelHelpers.extends({type:_,isSync:!1,module:a,method:i,failCbId:-1,successCbId:-1,args:t},s))}}}],[{key:"spy",value:function(e){e===!0?t.prototype.__spy=function(e){console.log((e.type===n?"N->JS":"JS->N")+" : "+(""+(e.module?e.module+".":"")+e.method)+("("+JSON.stringify(e.args)+")"))}:e===!1?t.prototype.__spy=null:t.prototype.__spy=e}}]),t}();t.exports=v},17); +__d(function(r,o,t,i){t.exports=r.ErrorUtils},18); +__d(function(n,e,t,i){"use strict";var c=(e(13),131072),o=!1,a=0,r=!1,u=!1,f={installReactHook:function(n){u=n,r=!0},setEnabled:function(n){o!==n&&(o=n)},isEnabled:function(){return o},beginEvent:function(e,t){o&&(e="function"==typeof e?e():e,n.nativeTraceBeginSection(c,e,t))},endEvent:function(){o&&n.nativeTraceEndSection(c)},beginAsyncEvent:function(e){var t=a;return o&&(a++,e="function"==typeof e?e():e,n.nativeTraceBeginAsyncSection(c,e,t,0)),t},endAsyncEvent:function(e,t){o&&(e="function"==typeof e?e():e,n.nativeTraceEndAsyncSection(c,e,t,0))},counterEvent:function(e,t){o&&(e="function"==typeof e?e():e,n.nativeTraceCounter&&n.nativeTraceCounter(c,e,t))},attachToRelayProfiler:function(n){n.attachProfileHandler("*",function(n){var e=f.beginAsyncEvent(n);return function(){f.endAsyncEvent(n,e)}}),n.attachAggregateHandler("*",function(n,e){f.beginEvent(n),e(),f.endEvent()})},swizzleJSON:function(){f.measureMethods(JSON,"JSON",["parse","stringify"])},measureMethods:function(n,e,t){},measure:function(n,e,t){return t}};t.exports=f},19); +__d(function(t,n,c,i){"use strict";function o(t){}c.exports=o},20); +__d(function(t,n,i,e){"use strict";function f(t){var n,i=typeof t;if(void 0===t)n="undefined";else if(null===t)n="null";else if("string"===i)n='"'+t+'"';else if("function"===i)try{n=t.toString()}catch(t){n="[function unknown]"}else try{n=JSON.stringify(t)}catch(i){if("function"==typeof t.toString)try{n=t.toString()}catch(t){}}return n||'["'+i+'" failed to stringify]'}i.exports=f},21); +__d(function(e,t,n,r){"use strict";function i(){return v||(v=t(24)),v()}function l(){var e=p.indexOf(null);return e===-1&&(e=p.length),e}function a(e,t){var n=q++,r=l();return p[r]=n,T[r]=e,g[r]=t,n}function o(e,n,r){t(27)(e<=q,"Tried to call timer with ID %s but no such timer exists.",e);var l=p.indexOf(e);if(l!==-1){var a=g[l],o=T[l];if(!o||!a)return void console.error("No callback found for timerID "+e);"setTimeout"!==a&&"setImmediate"!==a&&"requestAnimationFrame"!==a&&"requestIdleCallback"!==a||c(l);try{"setTimeout"===a||"setInterval"===a||"setImmediate"===a?o():"requestAnimationFrame"===a?o(i()):"requestIdleCallback"===a?o({timeRemaining:function(){return Math.max(0,h-(i()-n))},didTimeout:!!r}):console.error("Tried to call a callback with invalid type: "+a)}catch(e){y?y.push(e):y=[e]}}}function u(){if(b.length>0){var e=b.slice();b=[];for(var t=0;t0}function c(e){p[e]=null,T[e]=null,g[e]=null,k[e]=null}function s(e){if(null!=e){var t=p.indexOf(e);if(t!==-1){c(t);var n=g[t];"setImmediate"!==n&&"requestIdleCallback"!==n&&d.deleteTimer(e)}}}var m=(t(23),t(19),t(13)),f=t(15),d=f.Timing,v=null,h=16.666666666666668,I=1,T=[],g=[],p=[],b=[],w=[],x={},k=[],q=1,y=null,A=!1,C={setTimeout:function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;i2?n-2:0),i=2;i1?t-1:0),r=1;r-1&&(w.splice(e,1),o(r,i(),!0)),delete x[r],0===w.length&&d.setSendIdleEvents(!1)},n);x[r]=l}return r},cancelIdleCallback:function(e){s(e);var t=w.indexOf(e);t!==-1&&w.splice(t,1);var n=x[e];n&&(C.clearTimeout(n),delete x[e]),0===w.length&&d.setSendIdleEvents(!1)},clearTimeout:function(e){s(e)},clearInterval:function(e){s(e)},clearImmediate:function(e){s(e);var t=b.indexOf(e);t!==-1&&b.splice(t,1)},cancelAnimationFrame:function(e){s(e)},callTimers:function(e){m(0!==e.length,"Cannot call `callTimers` with an empty list of IDs."),y=null;for(var t=0;t1)for(var r=1;r0){var t=w.slice();w=[];for(var n=0;n>>0===e&&e>=0&&e<=4294967295?e:null:(r=b.hex6.exec(e))?parseInt(r[1]+"ff",16)>>>0:m.hasOwnProperty(e)?m[e]:(r=b.rgb.exec(e))?(u(r[1])<<24|u(r[2])<<16|u(r[3])<<8|255)>>>0:(r=b.rgba.exec(e))?(u(r[1])<<24|u(r[2])<<16|u(r[3])<<8|g(r[4]))>>>0:(r=b.hex3.exec(e))?parseInt(r[1]+r[1]+r[2]+r[2]+r[3]+r[3]+"ff",16)>>>0:(r=b.hex8.exec(e))?parseInt(r[1],16)>>>0:(r=b.hex4.exec(e))?parseInt(r[1]+r[1]+r[2]+r[2]+r[3]+r[3]+r[4]+r[4],16)>>>0:(r=b.hsl.exec(e))?(255|i(d(r[1]),s(r[2]),s(r[3])))>>>0:(r=b.hsla.exec(e))?(i(d(r[1]),s(r[2]),s(r[3]))|g(r[4]))>>>0:null}function t(e,r,a){return a<0&&(a+=1),a>1&&(a-=1),a<.16666666666666666?e+6*(r-e)*a:a<.5?r:a<.6666666666666666?e+(r-e)*(.6666666666666666-a)*6:e}function i(e,r,a){var l=a<.5?a*(1+r):a+r-a*r,n=2*a-l,i=t(n,l,e+.3333333333333333),o=t(n,l,e),u=t(n,l,e-.3333333333333333);return Math.round(255*i)<<24|Math.round(255*o)<<16|Math.round(255*u)<<8}function o(){for(var e=arguments.length,r=Array(e),a=0;a255?255:r}function d(e){var r=parseFloat(e);return(r%360+360)%360/360}function g(e){var r=parseFloat(e);return r<0?0:r>1?255:Math.round(255*r)}function s(e){var r=parseFloat(e);return r<0?0:r>100?1:r/100}var h="[-+]?\\d*\\.?\\d+",c=h+"%",b={rgb:new RegExp("rgb"+o(h,h,h)),rgba:new RegExp("rgba"+o(h,h,h,h)),hsl:new RegExp("hsl"+o(h,c,c)),hsla:new RegExp("hsla"+o(h,c,c,h)),hex3:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex4:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#([0-9a-fA-F]{6})$/,hex8:/^#([0-9a-fA-F]{8})$/},m={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199};a.exports=n},37); +__d(function(_,t,E,i){"use strict";var e=t(39),s=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,N=s.NativeMethodsMixin;E.exports=N},38); +__d(function(e,i,r,s){"use strict";var t=i(40),o=void 0;o=i(t.useFiber?41:108),r.exports=o},39); +__d(function(e,t,r,n){"use strict";var c,i={get useFiber(){return null==c&&(c=!0),c},set useFiber(e){if(null!=c)throw new Error("Cannot set useFiber feature flag after it has been accessed. Please override it before requiring React.");c=e}};r.exports=i},40); +__d(function(e,t,n,r){"use strict";function o(e){if(!1!==Mt(e)){var t=e.error;console.error(t)}}function i(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function a(e){return"topMouseMove"===e||"topTouchMove"===e}function u(e){return"topMouseDown"===e||"topTouchStart"===e}function l(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=qt.getNodeFromInstance(r),Gt.invokeGuardedCallbackAndCatchFirstError(o,n,void 0,e),e.currentTarget=null}function s(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;op?(m=f,f=null):m=f.sibling;var y=g(e,f,u[p],l);if(null===y){null===f&&(f=m);break}t&&f&&null===y.alternate&&n(e,f),d=a(y,d,p),null===c?s=y:c.sibling=y,c=y,f=m}if(p===u.length)return r(e,f),s;if(null===f){for(;py?(b=p,p=null):b=p.sibling;var P=g(e,p,C.value,l);if(null===P){p||(p=b);break}t&&p&&null===P.alternate&&n(e,p),m=a(P,m,y),null===d?f=P:d.sibling=P,d=P,p=b}if(C.done)return r(e,p),f;if(null===p){for(;!C.done;y++,C=c.next()){var T=h(e,C.value,l);null!==T&&(m=a(T,m,y),null===d?f=T:d.sibling=T,d=T)}return f}for(var k=o(e,p);!C.done;y++,C=c.next()){var x=v(k,e,y,C.value,l);null!==x&&(t&&null!==x.alternate&&k.delete(null===x.key?y:x.key),m=a(x,m,y),null===d?f=x:d.sibling=x,d=x)}return t&&k.forEach(function(t){return n(e,t)}),f}function b(e,t,n,o){if(null!==t&&t.tag===zo){r(e,t.sibling);var a=i(t,o);return a.pendingProps=n,a.return=e,a}r(e,t);var u=Do(n,e.internalContextTag,o);return u.return=e,u}function C(e,t,o,a){for(var u=o.key,l=t;null!==l;){if(l.key===u){if(l.type===o.type){r(e,l.sibling);var s=i(l,a);return s.ref=oe(l,o),s.pendingProps=o.props,s.return=e,s}r(e,l);break}n(e,l),l=l.sibling}var c=Fo(o,e.internalContextTag,a);return c.ref=oe(t,o),c.return=e,c}function P(e,t,o,a){for(var u=o.key,l=t;null!==l;){if(l.key===u){if(l.tag===Bo){r(e,l.sibling);var s=i(l,a);return s.pendingProps=o,s.return=e,s}r(e,l);break}n(e,l),l=l.sibling}var c=Uo(o,e.internalContextTag,a);return c.return=e,c}function T(e,t,n,o){var a=t;if(null!==a){if(a.tag===Qo){r(e,a.sibling);var u=i(a,o);return u.type=n.value,u.return=e,u}r(e,a)}var l=jo(n,e.internalContextTag,o);return l.type=n.value,l.return=e,l}function k(e,t,o,a){for(var u=o.key,l=t;null!==l;){if(l.key===u){if(l.tag===Yo&&l.stateNode.containerInfo===o.containerInfo&&l.stateNode.implementation===o.implementation){r(e,l.sibling);var s=i(l,a);return s.pendingProps=o.children||[],s.return=e,s}r(e,l);break}n(e,l),l=l.sibling}var c=Wo(o,e.internalContextTag,a);return c.return=e,c}function x(e,t,n,o){var i=xn.disableNewFiberFeatures,a="object"==typeof n&&null!==n;if(a)if(i)switch(n.$$typeof){case Ko:return u(C(e,t,n,o));case _o:return u(k(e,t,n,o))}else switch(n.$$typeof){case Ko:return u(C(e,t,n,o));case Eo:return u(P(e,t,n,o));case Io:return u(T(e,t,n,o));case _o:return u(k(e,t,n,o))}if(i)switch(e.tag){case Mo:var l=e.type;Nt(null===n||!1===n,"%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.",l.displayName||l.name||"Component");break;case Oo:var s=e.type;Nt(null===n||!1===n,"%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.",s.displayName||s.name||"Component")}if("string"==typeof n||"number"==typeof n)return u(b(e,t,""+n,o));if(Lo(n))return m(e,t,n,o);if(re(n))return y(e,t,n,o);if(a&&ie(e,n),!i&&void 0===n)switch(e.tag){case Mo:case Oo:var c=e.type;Nt(!1,"%s(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.",c.displayName||c.name||"Component")}return r(e,t)}return x}function ue(e){return function(t){try{return e(t)}catch(e){}}}function le(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!t.supportsFiber)return!0;try{var n=t.inject(e);pa=ue(function(e){return t.onCommitFiberRoot(n,e)}),ha=ue(function(e){return t.onCommitFiberUnmount(n,e)})}catch(e){}return!0}function se(e){"function"==typeof pa&&pa(e)}function ce(e){"function"==typeof ha&&ha(e)}function fe(e){if(!e)return St;var t=Bn.get(e);return"number"==typeof t.tag?ku(t):t._processChildContext(t._context)}function de(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function pe(e,t){return"object"!=typeof t||null===t||It(e,t)}function he(e){return"number"==typeof e?Wu.getByID(e):e}function ge(e,t,n){if(Array.isArray(t))for(var r=t.length;r--&&Mu>0;)ge(e,t[r],n);else if(t&&Mu>0){var o=he(t);for(var i in Ou)if(Ou[i]){var a=o[i];if(void 0!==a){var u=n[i];if(u){if("function"==typeof a&&(a=!0),void 0===a&&(a=null),"object"!=typeof u)e[i]=a;else if("function"==typeof u.diff||"function"==typeof u.process){var l="function"==typeof u.process?u.process(a):a;e[i]=l}Ou[i]=!1,Mu--}}}}}function ve(e,t,n,r){var o,i=t.length0&&e&&(ge(e,i,o),Ou=null);for(u in t)void 0===n[u]&&(o=r[u])&&(e&&void 0!==e[u]||void 0!==(a=t[u])&&("object"!=typeof o||"function"==typeof o.diff||"function"==typeof o.process?((e||(e={}))[u]=null,Ou||(Ou={}),Ou[u]||(Ou[u]=!0,Mu++)):e=be(e,a,o)));return e}function Pe(e,t,n){return Ce(e,Lu,t,n)}function Te(e,t,n){return Ce(e,t,Lu,n)}function ke(e,t){return function(){if(t){if("boolean"==typeof e.__isMounted){if(!e.__isMounted)return}else if("function"==typeof e.isMounted&&!e.isMounted())return;return t.apply(e,arguments)}}}function xe(e,t){if(void 0!==t.styles){var n=e._owner||null,r=e.constructor.displayName,o="`styles` is not a supported property of `"+r+"`, did you mean `style` (singular)?";throw n&&n.constructor&&n.constructor.displayName&&(o+="\n\nCheck the `"+n.constructor.displayName+"` parent component."),new Error(o)}}function Ne(e,t){for(var n in t.style)t[n]||void 0===e[n]||console.error("You are setting the style `{ "+n+": ... }` as a prop. You should nest it in a style object. E.g. `{ style: { "+n+": ... } }`")}function Re(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Se(e){"number"==typeof e?tl(e):(tl(e._nativeTag),e._children.forEach(Se))}function we(e){if(null==e)return null;if("number"==typeof e)return e;var t=e,n=Bn.get(t);return n?sl(n):t||(Nt("object"==typeof t&&("_rootNodeID"in t||"_nativeTag"in t)||null!=t.render&&"function"==typeof t.render,"findNodeHandle(...): Argument is not a component (type: %s, keys: %s)",typeof t,Object.keys(t)),void Nt(!1,"findNodeHandle(...): Unable to find node handle for unmounted component."))}function Ee(){if(dl)for(var e in pl){var t=pl[e],n=dl.indexOf(e);if(Nt(n>-1,"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.",e),!hl.plugins[n]){Nt(t.extractEvents,"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.",e),hl.plugins[n]=t;var r=t.eventTypes;for(var o in r)Nt(Ie(r[o],t,o),"EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.",o,e)}}}function Ie(e,t,n){Nt(!hl.eventNameDispatchConfigs.hasOwnProperty(n),"EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.",n),hl.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var i=r[o];_e(i,t,n)}return!0}return!!e.registrationName&&(_e(e.registrationName,t,n),!0)}function _e(e,t,n){Nt(!hl.registrationNameModules[e],"EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.",e),hl.registrationNameModules[e]=t,hl.registrationNameDependencies[e]=t.eventTypes[n].dependencies}function He(e,t){return Nt(null!=t,"accumulateInto(...): Accumulated items must not be null or undefined."),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function Fe(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}function Ae(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}function De(e,t,n){switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":return!(!n.disabled||!Ae(t));default:return!1}}function Ue(e){if(void 0!==e._hostParent)return e._hostParent;if("number"==typeof e.tag){do e=e.return;while(e&&e.tag!==xl);if(e)return e}return null}function je(e,t){for(var n=0,r=e;r;r=Ue(r))n++;for(var o=0,i=t;i;i=Ue(i))o++;for(;n-o>0;)e=Ue(e),n--;for(;o-n>0;)t=Ue(t),o--;for(var a=n;a--;){if(e===t||e===t.alternate)return e;e=Ue(e),t=Ue(t)}return null}function We(e,t){for(;t;){if(e===t||e===t.alternate)return!0;t=Ue(t)}return!1}function Le(e){return Ue(e)}function Oe(e,t,n){for(var r=[];e;)r.push(e),e=Ue(e);var o;for(o=r.length;o-- >0;)t(r[o],"captured",n);for(o=0;o0;)n(u[l],"captured",o)}function ze(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return Rl(e,r)}function Ye(e,t,n){var r=ze(e,n,t);r&&(n._dispatchListeners=vl(n._dispatchListeners,r),n._dispatchInstances=vl(n._dispatchInstances,e))}function Be(e){e&&e.dispatchConfig.phasedRegistrationNames&&Nl.traverseTwoPhase(e._targetInst,Ye,e)}function Qe(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst,n=t?Nl.getParentInstance(t):null;Nl.traverseTwoPhase(n,Ye,e)}}function Xe(e,t,n){if(e&&n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=Rl(e,r);o&&(n._dispatchListeners=vl(n._dispatchListeners,o),n._dispatchInstances=vl(n._dispatchInstances,e))}}function Ve(e){e&&e.dispatchConfig.registrationName&&Xe(e._targetInst,null,e)}function Ge(e){ml(e,Be)}function $e(e){ml(e,Qe)}function qe(e,t,n,r){Nl.traverseEnterLeave(n,r,Xe,e,t)}function Je(e){ml(e,Ve)}function Ke(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n;var o=this.constructor.Interface;for(var i in o)if(o.hasOwnProperty(i)){var a=o[i];a?this[i]=a(n):"target"===i?this.target=r:this[i]=n[i]}var u=null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue;return this.isDefaultPrevented=u?Lt.thatReturnsTrue:Lt.thatReturnsFalse,this.isPropagationStopped=Lt.thatReturnsFalse,this}function Ze(e,t,n,r){var o=this;if(o.eventPool.length){var i=o.eventPool.pop();return o.call(i,e,t,n,r),i}return new o(e,t,n,r)}function et(e){var t=this;Nt(e instanceof t,"Trying to release an event instance into a pool of a different type."),e.destructor(),t.eventPool.lengthns&&(e+=" (original size: "+rs.length+")"),e}function pt(e,t){return Nt(null!=t,"accumulate(...): Accumulated items must be not be null or undefined."),null==e?t:Array.isArray(e)?e.concat(t):Array.isArray(t)?[e].concat(t):[e,t]}function ht(e,t,n,r){var o=ls(e)?ys.startShouldSetResponder:ss(e)?ys.moveShouldSetResponder:"topSelectionChange"===e?ys.selectionChangeShouldSetResponder:ys.scrollShouldSetResponder,i=hs?Nl.getLowestCommonAncestor(hs,t):t,a=i===hs,u=Kl.getPooled(o,i,n,r);u.touchHistory=as.touchHistory,a?wl.accumulateTwoPhaseDispatchesSkipTarget(u):wl.accumulateTwoPhaseDispatches(u);var l=ps(u);if(u.isPersistent()||u.constructor.release(u),!l||l===hs)return null;var s,c=Kl.getPooled(ys.responderGrant,l,n,r);c.touchHistory=as.touchHistory,wl.accumulateDirectDispatches(c);var f=!0===fs(c);if(hs){var d=Kl.getPooled(ys.responderTerminationRequest,hs,n,r);d.touchHistory=as.touchHistory,wl.accumulateDirectDispatches(d);var p=!ds(d)||fs(d);if(d.isPersistent()||d.constructor.release(d),p){var h=Kl.getPooled(ys.responderTerminate,hs,n,r);h.touchHistory=as.touchHistory,wl.accumulateDirectDispatches(h),s=us(s,[c,h]),ms(l,f)}else{var g=Kl.getPooled(ys.responderReject,l,n,r);g.touchHistory=as.touchHistory,wl.accumulateDirectDispatches(g),s=us(s,g)}}else s=us(s,c),ms(l,f);return s}function gt(e,t,n){return t&&("topScroll"===e&&!n.responderIgnoreScroll||gs>0&&"topSelectionChange"===e||ls(e)||ss(e))}function vt(e){var t=e.touches;if(!t||0===t.length)return!0;for(var n=0;n3&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:pn,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}},gn=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===pn},vn=pn,mn={createPortal:hn,isPortal:gn,REACT_PORTAL_TYPE:vn},yn={},bn={},Cn={getClosestInstanceFromNode:x,getInstanceFromNode:x,getNodeFromInstance:N,precacheFiberNode:P,precacheNode:C,uncacheFiberNode:k,uncacheNode:T,getFiberCurrentPropsFromNode:R,updateFiberProps:S},Pn=Cn,Tn="undefined"!=typeof window?window:"undefined"!=typeof e?e:"undefined"!=typeof self?self:{},kn={disableNewFiberFeatures:!1,enableAsyncSubtreeAPI:!1},xn=kn,Nn={NoEffect:0,PerformedWork:1,Placement:2,Update:4,PlacementAndUpdate:6,Deletion:8,ContentReset:16,Callback:32,Err:64,Ref:128},Rn={NoWork:0,SynchronousPriority:1,TaskPriority:2,HighPriority:3,LowPriority:4,OffscreenPriority:5},Sn={IndeterminateComponent:0,FunctionalComponent:1,ClassComponent:2,HostRoot:3,HostPortal:4,HostComponent:5,HostText:6,CoroutineComponent:7,CoroutineHandlerPhase:8,YieldComponent:9,Fragment:10},wn=Nn.Callback,En=Rn.NoWork,In=Rn.SynchronousPriority,_n=Rn.TaskPriority,Hn=Sn.ClassComponent,Fn=Sn.HostRoot,An=D,Dn=U,Un=j,jn=W,Wn=L,Ln=M,On=z,Mn={addUpdate:An,addReplaceUpdate:Dn,addForceUpdate:Un,getUpdatePriority:jn,addTopLevelUpdate:Wn,beginUpdateQueue:Ln,commitCallbacks:On},zn=Y,Yn={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}},Bn=Yn,Qn=wt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Xn={ReactCurrentOwner:Qn.ReactCurrentOwner},Vn=Xn,Gn=Sn.HostComponent,$n=Sn.HostRoot,qn=Sn.HostPortal,Jn=Sn.HostText,Kn=Nn.NoEffect,Zn=Nn.Placement,er=1,tr=2,nr=3,rr=function(e){return B(e)===tr},or=function(e){var t=Bn.get(e);return!!t&&B(t)===tr},ir=X,ar=function(e){var t=X(e);if(!t)return null;for(var n=t;!0;){if(n.tag===Gn||n.tag===Jn)return n;if(n.child)n.child.return=n,n=n.child;else{if(n===t)return null;for(;!n.sibling;){if(!n.return||n.return===t)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}}return null},ur=function(e){var t=X(e);if(!t)return null;for(var n=t;!0;){if(n.tag===Gn||n.tag===Jn)return n;if(n.child&&n.tag!==qn)n.child.return=n,n=n.child;else{if(n===t)return null;for(;!n.sibling;){if(!n.return||n.return===t)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}}return null},lr={isFiberMounted:rr,isMounted:or,findCurrentFiberUsingSlowPath:ir,findCurrentHostFiber:ar,findCurrentHostFiberWithNoPortals:ur},sr=[],cr=-1,fr=function(e){return{current:e}},dr=function(){return-1===cr},pr=function(e,t){cr<0||(e.current=sr[cr],sr[cr]=null,cr--)},hr=function(e,t,n){cr++,sr[cr]=e.current,e.current=t},gr=function(){for(;cr>-1;)sr[cr]=null,cr--},vr={createCursor:fr,isEmpty:dr,pop:pr,push:hr,reset:gr},mr=lr.isFiberMounted,yr=Sn.ClassComponent,br=Sn.HostRoot,Cr=vr.createCursor,Pr=vr.pop,Tr=vr.push,kr=Cr(St),xr=Cr(!1),Nr=St,Rr=V,Sr=G,wr=function(e,t){var n=e.type,r=n.contextTypes;if(!r)return St;var o=e.stateNode;if(o&&o.__reactInternalMemoizedUnmaskedChildContext===t)return o.__reactInternalMemoizedMaskedChildContext;var i={};for(var a in r)i[a]=t[a];return o&&G(e,t,i),i},Er=function(){return xr.current},Ir=$,_r=q,Hr=J,Fr=function(e,t,n){Nt(null==kr.cursor,"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue."),Tr(kr,t,e),Tr(xr,n,e)},Ar=K,Dr=function(e){if(!q(e))return!1;var t=e.stateNode,n=t&&t.__reactInternalMemoizedMergedChildContext||St;return Nr=kr.current,Tr(kr,n,e),Tr(xr,xr.current,e),!0},Ur=function(e,t){var n=e.stateNode;if(Nt(n,"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue."),t){var r=K(e,Nr,!0);n.__reactInternalMemoizedMergedChildContext=r,Pr(xr,e),Pr(kr,e),Tr(kr,r,e),Tr(xr,t,e)}else Pr(xr,e),Tr(xr,t,e)},jr=function(){Nr=St,kr.current=St,xr.current=!1},Wr=function(e){Nt(mr(e)&&e.tag===yr,"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");for(var t=e;t.tag!==br;){if(q(t))return t.stateNode.__reactInternalMemoizedMergedChildContext;var n=t.return;Nt(n,"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue."),t=n}return t.stateNode.context},Lr={getUnmaskedContext:Rr,cacheContext:Sr,getMaskedContext:wr,hasContextChanged:Er,isContextConsumer:Ir,isContextProvider:_r,popContextProvider:Hr,pushTopLevelContextObject:Fr,processChildContext:Ar,pushContextProvider:Dr,invalidateContextProvider:Ur,resetContext:jr,findCurrentUnmaskedContext:Wr},Or={NoContext:0,AsyncUpdates:1},Mr=Sn.IndeterminateComponent,zr=Sn.ClassComponent,Yr=Sn.HostRoot,Br=Sn.HostComponent,Qr=Sn.HostText,Xr=Sn.HostPortal,Vr=Sn.CoroutineComponent,Gr=Sn.YieldComponent,$r=Sn.Fragment,qr=Rn.NoWork,Jr=Or.NoContext,Kr=Nn.NoEffect,Zr=function(e,t,n){return{tag:e,key:t,type:null,stateNode:null,return:null,child:null,sibling:null,index:0,ref:null,pendingProps:null,memoizedProps:null,updateQueue:null,memoizedState:null,internalContextTag:n,effectTag:Kr,nextEffect:null,firstEffect:null,lastEffect:null,pendingWorkPriority:qr,alternate:null}},eo=function(e,t){var n=e.alternate;return null===n?(n=Zr(e.tag,e.key,e.internalContextTag),n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.effectTag=qr,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.pendingWorkPriority=t,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n},to=function(){return Zr(Yr,null,Jr)},no=function(e,t,n){var r=null,o=ee(e.type,e.key,t,r);return o.pendingProps=e.props,o.pendingWorkPriority=n,o},ro=function(e,t,n){var r=Zr($r,null,t);return r.pendingProps=e,r.pendingWorkPriority=n,r},oo=function(e,t,n){var r=Zr(Qr,null,t);return r.pendingProps=e,r.pendingWorkPriority=n,r},io=ee,ao=function(){var e=Zr(Br,null,Jr);return e.type="DELETED",e},uo=function(e,t,n){var r=Zr(Vr,e.key,t);return r.type=e.handler,r.pendingProps=e,r.pendingWorkPriority=n,r},lo=function(e,t,n){return Zr(Gr,null,t)},so=function(e,t,n){var r=Zr(Xr,e.key,t);return r.pendingProps=e.children||[],r.pendingWorkPriority=n,r.stateNode={containerInfo:e.containerInfo,implementation:e.implementation},r},co=function(e,t){return e!==qr&&(t===qr||t>e)?e:t},fo={createWorkInProgress:eo,createHostRootFiber:to,createFiberFromElement:no,createFiberFromFragment:ro,createFiberFromText:oo,createFiberFromElementType:io,createFiberFromHostInstanceForDeletion:ao,createFiberFromCoroutine:uo,createFiberFromYield:lo,createFiberFromPortal:so,largerPriority:co},po=fo.createHostRootFiber,ho=function(e){var t=po(),n={current:t,containerInfo:e,isScheduled:!1,nextScheduledRoot:null,context:null,pendingContext:null};return t.stateNode=n,n},go={createFiberRoot:ho},vo=function(e,t,n){return"\n in "+(e||"Unknown")+(t?" (at "+t.fileName.replace(/^.*[\\\/]/,"")+":"+t.lineNumber+")":n?" (created by "+n+")":"")},mo=Sn.IndeterminateComponent,yo=Sn.FunctionalComponent,bo=Sn.ClassComponent,Co=Sn.HostComponent,Po={getStackAddendumByWorkInProgressFiber:ne};"function"==typeof Symbol&&("function"==typeof Symbol?Symbol.for:"@@for")?(Ut=("function"==typeof Symbol?Symbol.for:"@@for")("react.coroutine"),jt=("function"==typeof Symbol?Symbol.for:"@@for")("react.yield")):(Ut=60104,jt=60105);var To=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Ut,key:null==r?null:""+r,children:e,handler:t,props:n}},ko=function(e){return{$$typeof:jt,value:e}},xo=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===Ut},No=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===jt},Ro=jt,So=Ut,wo={createCoroutine:To,createYield:ko,isCoroutine:xo,isYield:No,REACT_YIELD_TYPE:Ro,REACT_COROUTINE_TYPE:So},Eo=wo.REACT_COROUTINE_TYPE,Io=wo.REACT_YIELD_TYPE,_o=mn.REACT_PORTAL_TYPE,Ho=fo.createWorkInProgress,Fo=fo.createFiberFromElement,Ao=fo.createFiberFromFragment,Do=fo.createFiberFromText,Uo=fo.createFiberFromCoroutine,jo=fo.createFiberFromYield,Wo=fo.createFiberFromPortal,Lo=Array.isArray,Oo=Sn.FunctionalComponent,Mo=Sn.ClassComponent,zo=Sn.HostText,Yo=Sn.HostPortal,Bo=Sn.CoroutineComponent,Qo=Sn.YieldComponent,Xo=Sn.Fragment,Vo=Nn.NoEffect,Go=Nn.Placement,$o=Nn.Deletion,qo="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.iterator:"@@iterator"),Jo="@@iterator",Ko="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.for:"@@for")&&("function"==typeof Symbol?Symbol.for:"@@for")("react.element")||60103,Zo=ae(!0,!0),ei=ae(!1,!0),ti=ae(!1,!1),ni=function(e,t){if(Nt(null===e||t.child===e.child,"Resuming work not yet implemented."),null!==t.child){var n=t.child,r=Ho(n,n.pendingWorkPriority);for(r.pendingProps=n.pendingProps,t.child=r,r.return=t;null!==n.sibling;)n=n.sibling,r=r.sibling=Ho(n,n.pendingWorkPriority),r.pendingProps=n.pendingProps,r.return=t;r.sibling=null}},ri={reconcileChildFibers:Zo,reconcileChildFibersInPlace:ei,mountChildFibersInPlace:ti,cloneChildFibers:ni},oi=Nn.Update,ii=Or.AsyncUpdates,ai=Lr.cacheContext,ui=Lr.getMaskedContext,li=Lr.getUnmaskedContext,si=Lr.isContextConsumer,ci=Mn.addUpdate,fi=Mn.addReplaceUpdate,di=Mn.addForceUpdate,pi=Mn.beginUpdateQueue,hi=Lr,gi=hi.hasContextChanged,vi=lr.isMounted,mi=function(e,t,n,r){function o(e,t,n,r,o,i){if(null===t||null!==e.updateQueue&&e.updateQueue.hasForceUpdate)return!0;var a=e.stateNode,u=e.type;return"function"==typeof a.shouldComponentUpdate?a.shouldComponentUpdate(n,o,i):!(u.prototype&&u.prototype.isPureReactComponent&&Et(t,n)&&Et(r,o))}function i(e,t){t.props=e.memoizedProps,t.state=e.memoizedState}function a(e,t){t.updater=d,e.stateNode=t,Bn.set(t,e)}function u(e,t){var n=e.type,r=li(e),o=si(e),i=o?ui(e,r):St,u=new n(t,i);return a(e,u),o&&ai(e,r,i),u}function l(e,t){var n=t.state;t.componentWillMount(),n!==t.state&&d.enqueueReplaceState(t,t.state,null)}function s(e,t,n,r){var o=t.state;t.componentWillReceiveProps(n,r),t.state!==o&&d.enqueueReplaceState(t,t.state,null)}function c(e,t){var n=e.alternate,r=e.stateNode,o=r.state||null,i=e.pendingProps;Nt(i,"There must be pending props for an initial mount. This error is likely caused by a bug in React. Please file an issue.");var a=li(e);if(r.props=i,r.state=o,r.refs=St,r.context=ui(e,a),xn.enableAsyncSubtreeAPI&&null!=e.type&&null!=e.type.prototype&&!0===e.type.prototype.unstable_isAsyncReactComponent&&(e.internalContextTag|=ii),"function"==typeof r.componentWillMount){l(e,r);var u=e.updateQueue;null!==u&&(r.state=pi(n,e,u,r,o,i,t))}"function"==typeof r.componentDidMount&&(e.effectTag|=oi)}function f(e,t,a){var u=t.stateNode;i(t,u);var l=t.memoizedProps,c=t.pendingProps;c||(c=l,Nt(null!=c,"There should always be pending or memoized props. This error is likely caused by a bug in React. Please file an issue."));var f=u.context,d=li(t),p=ui(t,d);"function"!=typeof u.componentWillReceiveProps||l===c&&f===p||s(t,u,c,p);var h=t.memoizedState,g=void 0;if(g=null!==t.updateQueue?pi(e,t,t.updateQueue,u,h,c,a):h,!(l!==c||h!==g||gi()||null!==t.updateQueue&&t.updateQueue.hasForceUpdate))return"function"==typeof u.componentDidUpdate&&(l===e.memoizedProps&&h===e.memoizedState||(t.effectTag|=oi)),!1;var v=o(t,l,c,h,g,p);return v?("function"==typeof u.componentWillUpdate&&u.componentWillUpdate(c,g,p),"function"==typeof u.componentDidUpdate&&(t.effectTag|=oi)):("function"==typeof u.componentDidUpdate&&(l===e.memoizedProps&&h===e.memoizedState||(t.effectTag|=oi)),n(t,c),r(t,g)),u.props=c,u.state=g,u.context=p,v}var d={isMounted:vi,enqueueSetState:function(n,r,o){var i=Bn.get(n),a=t(i,!1);o=void 0===o?null:o,ci(i,r,o,a),e(i,a)},enqueueReplaceState:function(n,r,o){var i=Bn.get(n),a=t(i,!1);o=void 0===o?null:o,fi(i,r,o,a),e(i,a)},enqueueForceUpdate:function(n,r){var o=Bn.get(n),i=t(o,!1);r=void 0===r?null:r,di(o,r,i),e(o,i)}};return{adoptClassInstance:a,constructClassInstance:u,mountClassInstance:c,updateClassInstance:f}},yi=ri.mountChildFibersInPlace,bi=ri.reconcileChildFibers,Ci=ri.reconcileChildFibersInPlace,Pi=ri.cloneChildFibers,Ti=Mn.beginUpdateQueue,ki=Lr.getMaskedContext,xi=Lr.getUnmaskedContext,Ni=Lr.hasContextChanged,Ri=Lr.pushContextProvider,Si=Lr.pushTopLevelContextObject,wi=Lr.invalidateContextProvider,Ei=Sn.IndeterminateComponent,Ii=Sn.FunctionalComponent,_i=Sn.ClassComponent,Hi=Sn.HostRoot,Fi=Sn.HostComponent,Ai=Sn.HostText,Di=Sn.HostPortal,Ui=Sn.CoroutineComponent,ji=Sn.CoroutineHandlerPhase,Wi=Sn.YieldComponent,Li=Sn.Fragment,Oi=Rn.NoWork,Mi=Rn.OffscreenPriority,zi=Nn.PerformedWork,Yi=Nn.Placement,Bi=Nn.ContentReset,Qi=Nn.Err,Xi=Nn.Ref,Vi=Vn.ReactCurrentOwner,Gi=function(e,t,n,r,o){function i(e,t,n){a(e,t,n,t.pendingWorkPriority)}function a(e,t,n,r){null===e?t.child=yi(t,t.child,n,r):e.child===t.child?t.child=bi(t,t.child,n,r):t.child=Ci(t,t.child,n,r)}function u(e,t){var n=t.pendingProps;if(Ni())null===n&&(n=t.memoizedProps);else if(null===n||t.memoizedProps===n)return y(e,t);return i(e,t,n),C(t,n),t.child}function l(e,t){var n=t.ref;null===n||e&&e.ref===n||(t.effectTag|=Xi)}function s(e,t){var n=t.type,r=t.pendingProps,o=t.memoizedProps;if(Ni())null===r&&(r=o);else if(null===r||o===r)return y(e,t);var a,u=xi(t),l=ki(t,u);return a=n(r,l),t.effectTag|=zi,i(e,t,a),C(t,r),t.child}function c(e,t,n){var r=Ri(t),o=void 0;return null===e?t.stateNode?Nt(!1,"Resuming work not yet implemented."):(A(t,t.pendingProps),D(t,n),o=!0):o=U(e,t,n),f(e,t,o,r)}function f(e,t,n,r){if(l(e,t),!n)return r&&wi(t,!1),y(e,t);var o=t.stateNode;Vi.current=t;var a=void 0;return a=o.render(),t.effectTag|=zi,i(e,t,a),P(t,o.state),C(t,o.props),r&&wi(t,!0),t.child}function d(e,t,n){var r=t.stateNode;r.pendingContext?Si(t,r.pendingContext,r.pendingContext!==r.context):r.context&&Si(t,r.context,!1),w(t,r.containerInfo);var o=t.updateQueue;if(null!==o){var a=t.memoizedState,u=Ti(e,t,o,null,a,null,n);if(a===u)return I(),y(e,t);var l=u.element;return null!==e&&null!==e.child||!E(t)?(I(),i(e,t,l)):(t.effectTag|=Yi,t.child=yi(t,t.child,l,n)),P(t,u),t.child}return I(),y(e,t)}function p(e,t,n){S(t),null===e&&_(t);var r=t.type,o=t.memoizedProps,a=t.pendingProps;null===a&&(a=o,Nt(null!==a,"We should always have pending or current props. This error is likely caused by a bug in React. Please file an issue."));var u=null!==e?e.memoizedProps:null;if(Ni());else if(null===a||o===a)return y(e,t);var s=a.children;return x(r,a)?s=null:u&&x(r,u)&&(t.effectTag|=Bi),l(e,t),n!==Mi&&!N&&R(r,a)?(t.pendingWorkPriority=Mi,null):(i(e,t,s),C(t,a),t.child)}function h(e,t){null===e&&_(t);var n=t.pendingProps;return null===n&&(n=t.memoizedProps),C(t,n),null}function g(e,t,n){Nt(null===e,"An indeterminate component should never have mounted. This error is likely caused by a bug in React. Please file an issue.");var r,o=t.type,a=t.pendingProps,u=xi(t),l=ki(t,u);if(r=o(a,l),t.effectTag|=zi,"object"==typeof r&&null!==r&&"function"==typeof r.render){t.tag=_i;var s=Ri(t);return F(t,r),D(t,n),f(e,t,!0,s)}return t.tag=Ii,i(e,t,r),C(t,a),t.child}function v(e,t){var n=t.pendingProps;Ni()?null===n&&(n=e&&e.memoizedProps,Nt(null!==n,"We should always have pending or current props. This error is likely caused by a bug in React. Please file an issue.")):null!==n&&t.memoizedProps!==n||(n=t.memoizedProps);var r=n.children,o=t.pendingWorkPriority;return null===e?t.stateNode=yi(t,t.stateNode,r,o):e.child===t.child?t.stateNode=bi(t,t.stateNode,r,o):t.stateNode=Ci(t,t.stateNode,r,o),C(t,n),t.stateNode}function m(e,t){w(t,t.stateNode.containerInfo);var n=t.pendingWorkPriority,r=t.pendingProps;if(Ni())null===r&&(r=e&&e.memoizedProps,Nt(null!=r,"We should always have pending or current props. This error is likely caused by a bug in React. Please file an issue."));else if(null===r||t.memoizedProps===r)return y(e,t);return null===e?(t.child=Ci(t,t.child,r,n),C(t,r)):(i(e,t,r),C(t,r)),t.child}function y(e,t){return Pi(e,t),t.child}function b(e,t){switch(t.tag){case _i:Ri(t);break;case Di:w(t,t.stateNode.containerInfo)}return null}function C(e,t){e.memoizedProps=t}function P(e,t){e.memoizedState=t}function T(e,t,n){if(t.pendingWorkPriority===Oi||t.pendingWorkPriority>n)return b(e,t);switch(t.tag){case Ei:return g(e,t,n);case Ii:return s(e,t);case _i:return c(e,t,n);case Hi:return d(e,t,n);case Fi:return p(e,t,n);case Ai:return h(e,t);case ji:t.tag=Ui;case Ui:return v(e,t);case Wi:return null;case Di:return m(e,t);case Li:return u(e,t);default:Nt(!1,"Unknown unit of work tag. This error is likely caused by a bug in React. Please file an issue.")}}function k(e,t,n){switch(t.tag){case _i:Ri(t);break;case Hi:var r=t.stateNode;w(t,r.containerInfo);break;default:Nt(!1,"Invalid type of work. This error is likely caused by a bug in React. Please file an issue.")}if(t.effectTag|=Qi,null===e?t.child=null:t.child!==e.child&&(t.child=e.child),t.pendingWorkPriority===Oi||t.pendingWorkPriority>n)return b(e,t);if(t.firstEffect=null,t.lastEffect=null,a(e,t,null,n),t.tag===_i){var o=t.stateNode;t.memoizedProps=o.props,t.memoizedState=o.state}return t.child}var x=e.shouldSetTextContent,N=e.useSyncScheduling,R=e.shouldDeprioritizeSubtree,S=t.pushHostContext,w=t.pushHostContainer,E=n.enterHydrationState,I=n.resetHydrationState,_=n.tryToClaimNextHydratableInstance,H=mi(r,o,C,P),F=H.adoptClassInstance,A=H.constructClassInstance,D=H.mountClassInstance,U=H.updateClassInstance;return{beginWork:T,beginFailedWork:k}},$i=ri.reconcileChildFibers,qi=Lr.popContextProvider,Ji=Sn.IndeterminateComponent,Ki=Sn.FunctionalComponent,Zi=Sn.ClassComponent,ea=Sn.HostRoot,ta=Sn.HostComponent,na=Sn.HostText,ra=Sn.HostPortal,oa=Sn.CoroutineComponent,ia=Sn.CoroutineHandlerPhase,aa=Sn.YieldComponent,ua=Sn.Fragment,la=Nn.Placement,sa=Nn.Ref,ca=Nn.Update,fa=Rn.OffscreenPriority,da=function(e,t,n){function r(e){e.effectTag|=ca}function o(e){e.effectTag|=sa}function i(e,t){var n=t.stateNode;for(n&&(n.return=t);null!==n;){if(n.tag===ta||n.tag===na||n.tag===ra)Nt(!1,"A coroutine cannot have host component children.");else if(n.tag===aa)e.push(n.type);else if(null!==n.child){n.child.return=n,n=n.child;continue}for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function a(e,t){var n=t.memoizedProps;Nt(n,"Should be resolved by now. This error is likely caused by a bug in React. Please file an issue."),t.tag=ia;var r=[];i(r,t);var o=n.handler,a=n.props,u=o(a,r),l=null!==e?e.child:null,s=t.pendingWorkPriority;return t.child=$i(t,l,u,s),t.child}function u(e,t){for(var n=t.child;null!==n;){if(n.tag===ta||n.tag===na)f(e,n.stateNode);else if(n.tag===ra);else if(null!==n.child){n=n.child;continue}if(n===t)return;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n=n.sibling}}function l(e,t,n){var i=t.pendingProps;switch(null===i?i=t.memoizedProps:t.pendingWorkPriority===fa&&n!==fa||(t.pendingProps=null),t.tag){case Ki:return null;case Zi:return qi(t),null;case ea:var l=t.stateNode;return l.pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),null!==e&&null!==e.child||(C(t),t.effectTag&=~la),null;case ta:g(t);var f=h(),P=t.type;if(null!==e&&null!=t.stateNode){var T=e.memoizedProps,k=t.stateNode,x=v(),N=p(k,P,T,i,f,x);t.updateQueue=N,N&&r(t),e.ref!==t.ref&&o(t)}else{if(!i)return Nt(null!==t.stateNode,"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."),null;var R=v();if(C(t))y(t,f)&&r(t);else{var S=s(P,i,f,R,t);u(S,t),d(S,P,i,f)&&r(t),t.stateNode=S}null!==t.ref&&o(t)}return null;case na:var w=i;if(e&&null!=t.stateNode)e.memoizedProps!==w&&r(t);else{if("string"!=typeof w)return Nt(null!==t.stateNode,"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."),null;var E=h(),I=v();C(t)?b(t)&&r(t):t.stateNode=c(w,E,I,t)}return null;case oa:return a(e,t);case ia:return t.tag=oa,null;case aa:case ua:return null;case ra:return r(t),m(t),null;case Ji:Nt(!1,"An indeterminate component should have become determinate before completing. This error is likely caused by a bug in React. Please file an issue.");default:Nt(!1,"Unknown unit of work tag. This error is likely caused by a bug in React. Please file an issue.")}}var s=e.createInstance,c=e.createTextInstance,f=e.appendInitialChild,d=e.finalizeInitialChildren,p=e.prepareUpdate,h=t.getRootHostContainer,g=t.popHostContext,v=t.getHostContext,m=t.popHostContainer,y=n.prepareToHydrateHostInstance,b=n.prepareToHydrateHostTextInstance,C=n.popHydrationState;return{completeWork:l}},pa=null,ha=null,ga=le,va=se,ma=ce,ya={injectInternals:ga,onCommitRoot:va,onCommitUnmount:ma},ba=Sn.ClassComponent,Ca=Sn.HostRoot,Pa=Sn.HostComponent,Ta=Sn.HostText,ka=Sn.HostPortal,xa=Sn.CoroutineComponent,Na=Mn.commitCallbacks,Ra=ya.onCommitUnmount,Sa=Nn.Placement,wa=Nn.Update,Ea=Nn.Callback,Ia=Nn.ContentReset,_a=function(e,t){function n(e,n){try{n.componentWillUnmount()}catch(n){t(e,n)}}function r(e){var n=e.ref;if(null!==n)try{n(null)}catch(n){t(e,n)}}function o(e){for(var t=e.return;null!==t;){if(i(t))return t;t=t.return}Nt(!1,"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.")}function i(e){return e.tag===Pa||e.tag===Ca||e.tag===ka}function a(e){var t=e;e:for(;!0;){for(;null===t.sibling;){if(null===t.return||i(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==Pa&&t.tag!==Ta;){if(t.effectTag&Sa)continue e;if(null===t.child||t.tag===ka)continue e;t.child.return=t,t=t.child}if(!(t.effectTag&Sa))return t.stateNode}}function u(e){var t=o(e),n=void 0,r=void 0;switch(t.tag){case Pa:n=t.stateNode,r=!1;break;case Ca:case ka:n=t.stateNode.containerInfo,r=!0;break;default:Nt(!1,"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.")}t.effectTag&Ia&&(y(n),t.effectTag&=~Ia);for(var i=a(e),u=e;!0;){if(u.tag===Pa||u.tag===Ta)i?r?k(n,u.stateNode,i):T(n,u.stateNode,i):r?P(n,u.stateNode):C(n,u.stateNode);else if(u.tag===ka);else if(null!==u.child){u.child.return=u,u=u.child;continue}if(u===e)return;for(;null===u.sibling;){if(null===u.return||u.return===e)return;u=u.return}u.sibling.return=u.return,u=u.sibling}}function l(e){for(var t=e;!0;)if(f(t),null===t.child||t.tag===ka){if(t===e)return;for(;null===t.sibling;){if(null===t.return||t.return===e)return;t=t.return}t.sibling.return=t.return,t=t.sibling}else t.child.return=t,t=t.child}function s(e){for(var t=e,n=!1,r=void 0,o=void 0;!0;){if(!n){var i=t.return;e:for(;!0;){switch(Nt(null!==i,"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue."),i.tag){case Pa:r=i.stateNode,o=!1;break e;case Ca:case ka:r=i.stateNode.containerInfo,o=!0;break e}i=i.return}n=!0}if(t.tag===Pa||t.tag===Ta)l(t),o?N(r,t.stateNode):x(r,t.stateNode);else if(t.tag===ka){if(r=t.stateNode.containerInfo,null!==t.child){t.child.return=t,t=t.child;continue}}else if(f(t),null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)return;for(;null===t.sibling;){if(null===t.return||t.return===e)return;t=t.return,t.tag===ka&&(n=!1)}t.sibling.return=t.return,t=t.sibling}}function c(e){s(e),e.return=null,e.child=null,e.alternate&&(e.alternate.child=null,e.alternate.return=null)}function f(e){switch("function"==typeof Ra&&Ra(e),e.tag){case ba:r(e);var t=e.stateNode;return void("function"==typeof t.componentWillUnmount&&n(e,t));case Pa:return void r(e);case xa:return void l(e.stateNode);case ka:return void s(e)}}function d(e,t){switch(t.tag){case ba:return;case Pa:var n=t.stateNode;if(null!=n){var r=t.memoizedProps,o=null!==e?e.memoizedProps:r,i=t.type,a=t.updateQueue;t.updateQueue=null,null!==a&&m(n,a,i,o,r,t)}return;case Ta:Nt(null!==t.stateNode,"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.");var u=t.stateNode,l=t.memoizedProps,s=null!==e?e.memoizedProps:l;return void b(u,s,l);case Ca:case ka:return;default:Nt(!1,"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}}function p(e,t){switch(t.tag){case ba:var n=t.stateNode;if(t.effectTag&wa)if(null===e)n.componentDidMount();else{var r=e.memoizedProps,o=e.memoizedState;n.componentDidUpdate(r,o)}return void(t.effectTag&Ea&&null!==t.updateQueue&&Na(t,t.updateQueue,n));case Ca:var i=t.updateQueue;if(null!==i){var a=t.child&&t.child.stateNode;Na(t,i,a)}return;case Pa:var u=t.stateNode;if(null===e&&t.effectTag&wa){var l=t.type,s=t.memoizedProps;v(u,l,s,t)}return;case Ta:case ka:return;default:Nt(!1,"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}}function h(e){var t=e.ref;if(null!==t){var n=e.stateNode;switch(e.tag){case Pa:t(R(n));break;default:t(n)}}}function g(e){var t=e.ref;null!==t&&t(null)}var v=e.commitMount,m=e.commitUpdate,y=e.resetTextContent,b=e.commitTextUpdate,C=e.appendChild,P=e.appendChildToContainer,T=e.insertBefore,k=e.insertInContainerBefore,x=e.removeChild,N=e.removeChildFromContainer,R=e.getPublicInstance;return{commitPlacement:u,commitDeletion:c,commitWork:d,commitLifeCycles:p,commitAttachRef:h,commitDetachRef:g}},Ha=vr.createCursor,Fa=vr.pop,Aa=vr.push,Da={},Ua=function(e){function t(e){return Nt(e!==Da,"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."),e}function n(){return t(p.current)}function r(e,t){Aa(p,t,e);var n=c(t);Aa(d,e,e),Aa(f,n,e)}function o(e){Fa(f,e),Fa(d,e),Fa(p,e)}function i(){return t(f.current)}function a(e){var n=t(p.current),r=t(f.current),o=s(r,e.type,n);r!==o&&(Aa(d,e,e),Aa(f,o,e))}function u(e){d.current===e&&(Fa(f,e),Fa(d,e))}function l(){f.current=Da,p.current=Da}var s=e.getChildHostContext,c=e.getRootHostContext,f=Ha(Da),d=Ha(Da),p=Ha(Da);return{getHostContext:i,getRootHostContainer:n,popHostContainer:o,popHostContext:u,pushHostContainer:r,pushHostContext:a,resetHostContainer:l}},ja=Sn.HostComponent,Wa=Sn.HostText,La=Sn.HostRoot,Oa=Nn.Deletion,Ma=Nn.Placement,za=fo.createFiberFromHostInstanceForDeletion,Ya=function(e){function t(e){var t=e.stateNode.containerInfo;return T=g(t),P=e,k=!0,!0}function n(e,t){var n=za();n.stateNode=t,n.return=e,n.effectTag=Oa,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function r(e,t){t.effectTag|=Ma}function o(e,t){switch(e.tag){case ja:var n=e.type,r=e.pendingProps;return d(t,n,r);case Wa:var o=e.pendingProps;return p(t,o);default:return!1}}function i(e){if(k){var t=T;if(!t)return r(P,e),k=!1,void(P=e);if(!o(e,t)){if(!(t=h(t))||!o(e,t))return r(P,e),k=!1,void(P=e);n(P,T)}e.stateNode=t,P=e,T=g(t)}}function a(e,t){var n=e.stateNode,r=v(n,e.type,e.memoizedProps,t,e);return e.updateQueue=r,null!==r}function u(e){var t=e.stateNode;return m(t,e.memoizedProps,e)}function l(e){for(var t=e.return;null!==t&&t.tag!==ja&&t.tag!==La;)t=t.return;P=t}function s(e){if(e!==P)return!1;if(!k)return l(e),k=!0,!1;var t=e.type;if(e.tag!==ja||"head"!==t&&"body"!==t&&!f(t,e.memoizedProps))for(var r=T;r;)n(e,r),r=h(r);return l(e),T=P?h(e.stateNode):null,!0}function c(){P=null,T=null,k=!1}var f=e.shouldSetTextContent,d=e.canHydrateInstance,p=e.canHydrateTextInstance,h=e.getNextHydratableSibling,g=e.getFirstHydratableChild,v=e.hydrateInstance,m=e.hydrateTextInstance,y=e.didNotHydrateInstance,b=e.didNotFindHydratableInstance,C=e.didNotFindHydratableTextInstance;if(!(d&&p&&h&&g&&v&&m&&y&&b&&C))return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){Nt(!1,"Expected prepareToHydrateHostInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.")},prepareToHydrateHostTextInstance:function(){Nt(!1,"Expected prepareToHydrateHostTextInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.")},popHydrationState:function(e){return!1}};var P=null,T=null,k=!1;return{enterHydrationState:t,resetHydrationState:c,tryToClaimNextHydratableInstance:i,prepareToHydrateHostInstance:a,prepareToHydrateHostTextInstance:u,popHydrationState:s}},Ba=Lr.popContextProvider,Qa=vr.reset,Xa=Po.getStackAddendumByWorkInProgressFiber,Va=Bt.logCapturedError,Ga=Vn.ReactCurrentOwner,$a=fo.createWorkInProgress,qa=fo.largerPriority,Ja=ya.onCommitRoot,Ka=Rn.NoWork,Za=Rn.SynchronousPriority,eu=Rn.TaskPriority,tu=Rn.HighPriority,nu=Rn.LowPriority,ru=Rn.OffscreenPriority,ou=Or.AsyncUpdates,iu=Nn.PerformedWork,au=Nn.Placement,uu=Nn.Update,lu=Nn.PlacementAndUpdate,su=Nn.Deletion,cu=Nn.ContentReset,fu=Nn.Callback,du=Nn.Err,pu=Nn.Ref,hu=Sn.HostRoot,gu=Sn.HostComponent,vu=Sn.HostPortal,mu=Sn.ClassComponent,yu=Mn.getUpdatePriority,bu=Lr,Cu=bu.resetContext,Pu=1,Tu=function(e){function t(){Qa(),Cu(),A()}function n(){for(;null!==ae&&ae.current.pendingWorkPriority===Ka;){ae.isScheduled=!1;var e=ae.nextScheduledRoot;if(ae.nextScheduledRoot=null,ae===ue)return ae=null,ue=null,re=Ka,null;ae=e}for(var n=ae,r=null,o=Ka;null!==n;)n.current.pendingWorkPriority!==Ka&&(o===Ka||o>n.current.pendingWorkPriority)&&(o=n.current.pendingWorkPriority,r=n),n=n.nextScheduledRoot;return null!==r?(re=o,t(),void(ne=$a(r.current,o))):(re=Ka,void(ne=null))}function r(){for(;null!==oe;){var t=oe.effectTag;if(t&cu&&e.resetTextContent(oe.stateNode),t&pu){var n=oe.alternate;null!==n&&X(n)}switch(t&~(fu|du|cu|pu|iu)){case au:M(oe),oe.effectTag&=~au;break;case lu:M(oe),oe.effectTag&=~au;var r=oe.alternate;Y(r,oe);break;case uu:var o=oe.alternate;Y(o,oe);break;case su:ge=!0,z(oe),ge=!1}oe=oe.nextEffect}}function o(){for(;null!==oe;){var e=oe.effectTag;if(e&(uu|fu)){var t=oe.alternate;B(t,oe)}e&pu&&Q(oe),e&du&&y(oe);var n=oe.nextEffect;oe.nextEffect=null,oe=n}}function i(e){he=!0,ie=null;var t=e.stateNode;Nt(t.current!==e,"Cannot commit the same tree as before. This is probably a bug related to the return field. This error is likely caused by a bug in React. Please file an issue."),re!==Za&&re!==eu||me++,Ga.current=null;var i=void 0;for(e.effectTag>iu?null!==e.lastEffect?(e.lastEffect.nextEffect=e,i=e.firstEffect):i=e:i=e.firstEffect,$(),oe=i;null!==oe;){var a=!1,u=void 0;try{r()}catch(e){a=!0,u=e}a&&(Nt(null!==oe,"Should have next effect. This error is likely caused by a bug in React. Please file an issue."),g(oe,u),null!==oe&&(oe=oe.nextEffect))}for(q(),t.current=e,oe=i;null!==oe;){var l=!1,s=void 0;try{o()}catch(e){l=!0,s=e}l&&(Nt(null!==oe,"Should have next effect. This error is likely caused by a bug in React. Please file an issue."),g(oe,s),null!==oe&&(oe=oe.nextEffect))}he=!1,"function"==typeof Ja&&Ja(e.stateNode),fe&&(fe.forEach(x),fe=null),n()}function a(e,t){if(!(e.pendingWorkPriority!==Ka&&e.pendingWorkPriority>t)){for(var n=yu(e),r=e.child;null!==r;)n=qa(n,r.pendingWorkPriority),r=r.sibling;e.pendingWorkPriority=n}}function u(e){for(;!0;){var t=e.alternate,n=L(t,e,re),r=e.return,o=e.sibling;if(a(e,re),null!==n)return n;if(null!==r&&(null===r.firstEffect&&(r.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==r.lastEffect&&(r.lastEffect.nextEffect=e.firstEffect),r.lastEffect=e.lastEffect),e.effectTag>iu&&(null!==r.lastEffect?r.lastEffect.nextEffect=e:r.firstEffect=e,r.lastEffect=e)),null!==o)return o; +if(null===r)return ie=e,null;e=r}return null}function l(e){var t=e.alternate,n=U(t,e,re);return null===n&&(n=u(e)),Ga.current=null,n}function s(e){var t=e.alternate,n=j(t,e,re);return null===n&&(n=u(e)),Ga.current=null,n}function c(e){h(ru,e)}function f(){if(null!==se&&se.size>0&&re===eu)for(;null!==ne&&(null!==(ne=v(ne)?s(ne):l(ne))||(Nt(null!==ie,"Should have a pending commit. This error is likely caused by a bug in React. Please file an issue."),J=eu,i(ie),J=re,null!==se&&0!==se.size&&re===eu)););}function d(e,t){if(null!==ie?(J=eu,i(ie),f()):null===ne&&n(),!(re===Ka||re>e)){J=re;e:for(;;){if(re<=eu)for(;null!==ne&&!(null===(ne=l(ne))&&(Nt(null!==ie,"Should have a pending commit. This error is likely caused by a bug in React. Please file an issue."),J=eu,i(ie),J=re,f(),re===Ka||re>e||re>eu)););else if(null!==t)for(;null!==ne&&!Z;)if(t.timeRemaining()>Pu){if(null===(ne=l(ne)))if(Nt(null!==ie,"Should have a pending commit. This error is likely caused by a bug in React. Please file an issue."),t.timeRemaining()>Pu){if(J=eu,i(ie),J=re,f(),re===Ka||re>e||reeu&&!le&&(V(c),le=!0);var u=de;if(K=!1,Z=!1,pe=!1,de=null,se=null,ce=null,null!==u)throw u}function g(e,t){Ga.current=null;var n=null,r=!1,o=!1,i=null;if(e.tag===hu)n=e,m(e)&&(pe=!0);else for(var a=e.return;null!==a&&null===n;){if(a.tag===mu){var u=a.stateNode;"function"==typeof u.componentDidCatch&&(r=!0,i=zn(a),n=a,o=!0)}else a.tag===hu&&(n=a);if(m(a)){if(ge)return null;if(null!==fe&&(fe.has(a)||null!==a.alternate&&fe.has(a.alternate)))return null;n=null,o=!1}a=a.return}if(null!==n){null===ce&&(ce=new Set),ce.add(n);var l=Xa(e),s=zn(e);null===se&&(se=new Map);var c={componentName:s,componentStack:l,error:t,errorBoundary:r?n.stateNode:null,errorBoundaryFound:r,errorBoundaryName:i,willRetry:o};se.set(n,c);try{Va(c)}catch(e){console.error(e)}return he?(null===fe&&(fe=new Set),fe.add(n)):x(n),n}return null===de&&(de=t),null}function v(e){return null!==se&&(se.has(e)||null!==e.alternate&&se.has(e.alternate))}function m(e){return null!==ce&&(ce.has(e)||null!==e.alternate&&ce.has(e.alternate))}function y(e){var t=void 0;switch(null!==se&&(t=se.get(e),se.delete(e),null==t&&null!==e.alternate&&(e=e.alternate,t=se.get(e),se.delete(e))),Nt(null!=t,"No error for given unit of work. This error is likely caused by a bug in React. Please file an issue."),e.tag){case mu:var n=e.stateNode,r={componentStack:t.componentStack};return void n.componentDidCatch(t.error,r);case hu:return void(null===de&&(de=t.error));default:Nt(!1,"Invalid type of work. This error is likely caused by a bug in React. Please file an issue.")}}function b(e,t){for(var n=e;null!==n;){switch(n.tag){case mu:Ba(n);break;case gu:F(n);break;case hu:case vu:H(n)}if(n===t||n.alternate===t)break;n=n.return}}function C(e,t){t!==Ka&&(e.isScheduled||(e.isScheduled=!0,ue?(ue.nextScheduledRoot=e,ue=e):(ae=e,ue=e)))}function P(e,t){return T(e,t,!1)}function T(e,t,n){me>ve&&(pe=!0,Nt(!1,"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.")),!K&&t<=re&&(ne=null);for(var r=e,o=!0;null!==r&&o;){if(o=!1,(r.pendingWorkPriority===Ka||r.pendingWorkPriority>t)&&(o=!0,r.pendingWorkPriority=t),null!==r.alternate&&(r.alternate.pendingWorkPriority===Ka||r.alternate.pendingWorkPriority>t)&&(o=!0,r.alternate.pendingWorkPriority=t),null===r.return){if(r.tag!==hu)return;if(C(r.stateNode,t),!K)switch(t){case Za:te?h(Za,null):h(eu,null);break;case eu:Nt(ee,"Task updates can only be scheduled as a nested update or inside batchedUpdates.");break;default:le||(V(c),le=!0)}}r=r.return}}function k(e,t){var n=J;return n===Ka&&(n=!G||e.internalContextTag&ou||t?nu:Za),n===Za&&(K||ee)?eu:n}function x(e){T(e,eu,!0)}function N(e,t){var n=J;J=e;try{t()}finally{J=n}}function R(e,t){var n=ee;ee=!0;try{return e(t)}finally{ee=n,K||ee||h(eu,null)}}function S(e){var t=te,n=ee;te=ee,ee=!1;try{return e()}finally{ee=n,te=t}}function w(e){var t=ee,n=J;ee=!0,J=Za;try{return e()}finally{ee=t,J=n,Nt(!K,"flushSync was called from inside a lifecycle method. It cannot be called when React is already rendering."),h(eu,null)}}function E(e){var t=J;J=nu;try{return e()}finally{J=t}}var I=Ua(e),_=Ya(e),H=I.popHostContainer,F=I.popHostContext,A=I.resetHostContainer,D=Gi(e,I,_,P,k),U=D.beginWork,j=D.beginFailedWork,W=da(e,I,_),L=W.completeWork,O=_a(e,g),M=O.commitPlacement,z=O.commitDeletion,Y=O.commitWork,B=O.commitLifeCycles,Q=O.commitAttachRef,X=O.commitDetachRef,V=e.scheduleDeferredCallback,G=e.useSyncScheduling,$=e.prepareForCommit,q=e.resetAfterCommit,J=Ka,K=!1,Z=!1,ee=!1,te=!1,ne=null,re=Ka,oe=null,ie=null,ae=null,ue=null,le=!1,se=null,ce=null,fe=null,de=null,pe=!1,he=!1,ge=!1,ve=1e3,me=0;return{scheduleUpdate:P,getPriorityContext:k,performWithPriority:N,batchedUpdates:R,unbatchedUpdates:S,flushSync:w,deferredUpdates:E}},ku=function(e){Nt(!1,"Missing injection for fiber getContextForSubtree")};fe._injectFiber=function(e){ku=e};var xu=fe,Nu=Mn.addTopLevelUpdate,Ru=Lr.findCurrentUnmaskedContext,Su=Lr.isContextProvider,wu=Lr.processChildContext,Eu=go.createFiberRoot,Iu=Sn.HostComponent,_u=lr.findCurrentHostFiber,Hu=lr.findCurrentHostFiberWithNoPortals;xu._injectFiber(function(e){var t=Ru(e);return Su(e)?wu(e,t,!1):t});var Fu=function(e){function t(e,t,n){var r=xn.enableAsyncSubtreeAPI&&null!=t&&null!=t.type&&null!=t.type.prototype&&!0===t.type.prototype.unstable_isAsyncReactComponent,a=i(e,r),u={element:t};n=void 0===n?null:n,Nu(e,u,n,a),o(e,a)}var n=e.getPublicInstance,r=Tu(e),o=r.scheduleUpdate,i=r.getPriorityContext,a=r.performWithPriority,u=r.batchedUpdates,l=r.unbatchedUpdates,s=r.flushSync,c=r.deferredUpdates;return{createContainer:function(e){return Eu(e)},updateContainer:function(e,n,r,o){var i=n.current,a=xu(r);null===n.context?n.context=a:n.pendingContext=a,t(i,e,o)},performWithPriority:a,batchedUpdates:u,unbatchedUpdates:l,deferredUpdates:c,flushSync:s,getPublicRootInstance:function(e){var t=e.current;if(!t.child)return null;switch(t.child.tag){case Iu:return n(t.child.stateNode);default:return t.child.stateNode}},findHostInstance:function(e){var t=_u(e);return null===t?null:t.stateNode},findHostInstanceWithNoPortals:function(e){var t=Hu(e);return null===t?null:t.stateNode}}},Au={},Du=1,Uu={},ju=function(){function e(){de(this,e)}return e.register=function(e){var t=++Du;return Au[t]=e,t},e.getByID=function(e){if(!e)return Uu;var t=Au[e];return t||(console.warn("Invalid style with id `"+e+"`. Skipping ..."),Uu)},e}(),Wu=ju,Lu={},Ou=null,Mu=0,zu={create:function(e,t){return Pe(null,e,t)},diff:function(e,t,n){return Ce(null,e,t,n)}},Yu=zu,Bu={mountSafeCallback:ke,throwOnStylesProp:xe,warnForStyleProps:Ne},Qu=Bu.mountSafeCallback,Xu=function(){function e(t,n){Re(this,e),this._nativeTag=t,this._children=[],this.viewConfig=n}return e.prototype.blur=function(){Ht.blurTextInput(this._nativeTag)},e.prototype.focus=function(){Ht.focusTextInput(this._nativeTag)},e.prototype.measure=function(e){Ft.measure(this._nativeTag,Qu(this,e))},e.prototype.measureInWindow=function(e){Ft.measureInWindow(this._nativeTag,Qu(this,e))},e.prototype.measureLayout=function(e,t,n){Ft.measureLayout(this._nativeTag,e,Qu(this,n),Qu(this,t))},e.prototype.setNativeProps=function(e){var t=Yu.create(e,this.viewConfig.validAttributes);Ft.updateView(this._nativeTag,this.viewConfig.uiViewClassName,t)},e}(),Vu=Xu,Gu=1,$u={tagsStartAt:Gu,tagCount:Gu,allocateTag:function(){for(;this.reactTagIsNativeTopRootID($u.tagCount);)$u.tagCount++;var e=$u.tagCount;return $u.tagCount++,e},assertRootTag:function(e){Nt(this.reactTagIsNativeTopRootID(e),"Expect a native root tag, instead got %s",e)},reactTagIsNativeTopRootID:function(e){return e%10==1}},qu=$u,Ju=new Map,Ku={register:function(e){var t=e.uiViewClassName;return Nt(!Ju.has(t),"Tried to register two views with the same name %s",t),Ju.set(t,e),t},get:function(e){var t=Ju.get(e);return Nt(t,"View config not found for name %s",e),t}},Zu=Ku,el=Pn.precacheFiberNode,tl=Pn.uncacheFiberNode,nl=Pn.updateFiberProps,rl=Fu({appendChild:function(e,t){var n="number"==typeof t?t:t._nativeTag,r=e._children,o=r.indexOf(t);o>=0?(r.splice(o,1),r.push(t),Ft.manageChildren(e._nativeTag,[o],[r.length-1],[],[],[])):(r.push(t),Ft.manageChildren(e._nativeTag,[],[],[n],[r.length-1],[]))},appendChildToContainer:function(e,t){var n="number"==typeof t?t:t._nativeTag;Ft.setChildren(e,[n])},appendInitialChild:function(e,t){e._children.push(t)},commitTextUpdate:function(e,t,n){Ft.updateView(e,"RCTRawText",{text:n})},commitMount:function(e,t,n,r){},commitUpdate:function(e,t,n,r,o,i){var a=e.viewConfig;nl(e._nativeTag,o);var u=Yu.diff(r,o,a.validAttributes);Ft.updateView(e._nativeTag,a.uiViewClassName,u)},createInstance:function(e,t,n,r,o){var i=qu.allocateTag(),a=Zu.get(e),u=Yu.create(t,a.validAttributes);Ft.createView(i,a.uiViewClassName,n,u);var l=new Vu(i,a);return el(o,i),nl(i,t),l},createTextInstance:function(e,t,n,r){var o=qu.allocateTag();return Ft.createView(o,"RCTRawText",t,{text:e}),el(r,o),o},finalizeInitialChildren:function(e,t,n,r){if(0===e._children.length)return!1;var o=e._children.map(function(e){return"number"==typeof e?e:e._nativeTag});return Ft.setChildren(e._nativeTag,o),!1},getRootHostContext:function(){return St},getChildHostContext:function(){return St},getPublicInstance:function(e){return e},insertBefore:function(e,t,n){var r=e._children,o=r.indexOf(t);if(o>=0){r.splice(o,1);var i=r.indexOf(n);r.splice(i,0,t),Ft.manageChildren(e._nativeTag,[o],[i],[],[],[])}else{var a=r.indexOf(n);r.splice(a,0,t);var u="number"==typeof t?t:t._nativeTag;Ft.manageChildren(e._nativeTag,[],[],[u],[a],[])}},insertInContainerBefore:function(e,t,n){Nt("number"!=typeof e,"Container does not support insertBefore operation")},prepareForCommit:function(){},prepareUpdate:function(e,t,n,r,o,i){return St},removeChild:function(e,t){Se(t);var n=e._children,r=n.indexOf(t);n.splice(r,1),Ft.manageChildren(e._nativeTag,[],[],[],[],[r])},removeChildFromContainer:function(e,t){Se(t),Ft.manageChildren(e,[],[],[],[],[0])},resetAfterCommit:function(){},resetTextContent:function(e){},shouldDeprioritizeSubtree:function(e,t){return!1},scheduleDeferredCallback:Tn.requestIdleCallback,shouldSetTextContent:function(e,t){return!1},useSyncScheduling:!0}),ol=rl,il=void 0;il=function(){Nt(!1,"getInspectorDataForViewTag() is not available in production")};var al={getInspectorDataForViewTag:il},ul="16.0.0-beta.5",ll=t(40),sl=ll.useFiber?function(e){return ol.findHostInstance(e)}:function(e){return e},cl=we,fl=function(e){var t=cl(e);return null==t||"number"==typeof t?t:t._nativeTag},dl=null,pl={},hl={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){Nt(!dl,"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."),dl=Array.prototype.slice.call(e),Ee()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];pl.hasOwnProperty(n)&&pl[n]===r||(Nt(!pl[n],"EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.",n),pl[n]=r,t=!0)}t&&Ee()}},gl=hl,vl=He,ml=Fe,yl=null,bl=function(e,t){e&&(Jt.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},Cl=function(e){return bl(e,!0)},Pl=function(e){return bl(e,!1)},Tl={injection:{injectEventPluginOrder:gl.injectEventPluginOrder,injectEventPluginsByName:gl.injectEventPluginsByName},getListener:function(e,t){var n;if("number"==typeof e.tag){var r=e.stateNode;if(!r)return null;var o=Jt.getFiberCurrentPropsFromNode(r);if(!o)return null;if(n=o[t],De(t,e.type,o))return null}else{var i=e._currentElement;if("string"==typeof i||"number"==typeof i)return null;if(!e._rootNodeID)return null;var a=i.props;if(n=a[t],De(t,i.type,a))return null}return Nt(!n||"function"==typeof n,"Expected %s listener to be a function, instead got type %s",t,typeof n),n},extractEvents:function(e,t,n,r){for(var o,i=gl.plugins,a=0;a=0))return console.error("Ended a touch event which was not counted in `trackedTouchCount`."),null;gs-=1}as.recordTouchTrack(e,n);var o=gt(e,t,n)?ht(e,t,n,r):null,i=hs&&ls(e),a=hs&&ss(e),u=hs&&cs(e),l=i?ys.responderStart:a?ys.responderMove:u?ys.responderEnd:null;if(l){var s=Kl.getPooled(l,hs,n,r);s.touchHistory=as.touchHistory,wl.accumulateDirectDispatches(s),o=us(o,s)}var c=hs&&"topTouchCancel"===e,f=hs&&!c&&cs(e)&&vt(n),d=c?ys.responderTerminate:f?ys.responderRelease:null;if(d){var p=Kl.getPooled(d,hs,n,r);p.touchHistory=as.touchHistory,wl.accumulateDirectDispatches(p),o=us(o,p),ms(null)}var h=as.touchHistory.numberActiveTouches;return bs.GlobalInteractionHandler&&h!==vs&&bs.GlobalInteractionHandler.onChange(h),vs=h,o},GlobalResponderHandler:null,GlobalInteractionHandler:null,injection:{injectGlobalResponderHandler:function(e){bs.GlobalResponderHandler=e},injectGlobalInteractionHandler:function(e){bs.GlobalInteractionHandler=e}}},Cs=bs;Wt.register(Xl),kl.injection.injectEventPluginOrder(Gl),Jt.injection.injectComponentTree(Pn),Cs.injection.injectGlobalResponderHandler(ql),kl.injection.injectEventPluginsByName({ResponderEventPlugin:Cs,ReactNativeBridgeEventPlugin:Ll});var Ps=null,Ts=t(40),ks=Bu.mountSafeCallback,xs=Ts.useFiber?fl:Ps,Ns=function(e){function t(){return mt(this,t),yt(this,e.apply(this,arguments))}return bt(t,e),t.prototype.blur=function(){Ht.blurTextInput(xs(this))},t.prototype.focus=function(){Ht.focusTextInput(xs(this))},t.prototype.measure=function(e){Ft.measure(xs(this),ks(this,e))},t.prototype.measureInWindow=function(e){Ft.measureInWindow(xs(this),ks(this,e))},t.prototype.measureLayout=function(e,t,n){Ft.measureLayout(xs(this),e,ks(this,n),ks(this,t))},t.prototype.setNativeProps=function(e){Rs(this,e)},t}(wt.Component),Rs=void 0;Rs=Ts.useFiber?Ct:Pt;var Ss=Ns,ws=t(40),Es=Bu.mountSafeCallback,Is=ws.useFiber?fl:Ps,_s={measure:function(e){Ft.measure(Is(this),Es(this,e))},measureInWindow:function(e){Ft.measureInWindow(Is(this),Es(this,e))},measureLayout:function(e,t,n){Ft.measureLayout(Is(this),e,Es(this,n),Es(this,t))},setNativeProps:function(e){Hs(this,e)},focus:function(){Ht.focusTextInput(Is(this))},blur:function(){Ht.blurTextInput(Is(this))}},Hs=void 0;Hs=ws.useFiber?Tt:kt;var Fs=_s,As={centroidDimension:function(e,t,n,r){var o=e.touchBank,i=0,a=0,u=1===e.numberActiveTouches?e.touchBank[e.indexOfSingleActiveTouch]:null;if(null!==u)u.touchActive&&u.currentTimeStamp>t&&(i+=r&&n?u.currentPageX:r&&!n?u.currentPageY:!r&&n?u.previousPageX:u.previousPageY,a=1);else for(var l=0;l=t){var c;c=r&&n?s.currentPageX:r&&!n?s.currentPageY:!r&&n?s.previousPageX:s.previousPageY,i+=c,a++}}return a>0?i/a:As.noCentroid},currentCentroidXOfTouchesChangedAfter:function(e,t){return As.centroidDimension(e,t,!0,!0)},currentCentroidYOfTouchesChangedAfter:function(e,t){return As.centroidDimension(e,t,!1,!0)},previousCentroidXOfTouchesChangedAfter:function(e,t){return As.centroidDimension(e,t,!0,!1)},previousCentroidYOfTouchesChangedAfter:function(e,t){return As.centroidDimension(e,t,!1,!1)},currentCentroidX:function(e){return As.centroidDimension(e,0,!0,!0)},currentCentroidY:function(e){return As.centroidDimension(e,0,!1,!0)},noCentroid:-1},Ds=As,Us=function(e){return Zu.register(e)},js=Us,Ws=t(40),Ls=Ws.useFiber?js:Ps,Os=t(40),Ms=Os.useFiber?fl:Ps,zs=xt,Ys=ya.injectInternals;cn.injection.injectFiberBatchedUpdates(ol.batchedUpdates);var Bs=new Map;Bt.injection.injectDialog(dn.showDialog);var Qs={NativeComponent:Ss,findNodeHandle:fl,render:function(e,t,n){var r=Bs.get(t);return r||(r=ol.createContainer(t),Bs.set(t,r)),ol.updateContainer(e,r,null,n),ol.getPublicRootInstance(r)},unmountComponentAtNode:function(e){var t=Bs.get(e);t&&ol.updateContainer(null,t,null,function(){Bs.delete(e)})},unmountComponentAtNodeAndRemoveContainer:function(e){Qs.unmountComponentAtNode(e),Ft.removeRootView(e)},unstable_createPortal:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return mn.createPortal(e,t,null,n)},unstable_batchedUpdates:cn.batchedUpdates,flushSync:ol.flushSync,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{NativeMethodsMixin:Fs,ReactGlobalSharedState:Vn,ReactNativeComponentTree:Pn,ReactNativePropRegistry:Wu,TouchHistoryMath:Ds,createReactNativeComponentClass:Ls,takeSnapshot:zs}};Ys({findFiberByHostInstance:Pn.getClosestInstanceFromNode,findHostInstanceByFiber:ol.findHostInstance,getInspectorDataForViewTag:al.getInspectorDataForViewTag,bundleType:0,version:ul});var Xs=Qs;n.exports=Xs},41); +__d(function(r,o,e,n){"use strict";function s(r,e){var n=o(15),s=n.ExceptionsManager;if(s){var i=o(43),c=i(r),l=++a;e?s.reportFatalException(r.message,c,l):s.reportSoftException(r.message,c,l)}}function i(r,o){r.message||(r=new Error(r)),console._errorOriginal?console._errorOriginal(r.message):console.error(r.message),s(r,o)}function c(){if(console._errorOriginal.apply(console,arguments),console.reportErrorsAsExceptions)if(arguments[0]&&arguments[0].stack)s(arguments[0],!1);else{var r=o(21),e=Array.prototype.map.call(arguments,r).join(", ");if('"Warning: '===e.slice(0,10))return;var n=new Error("console.error: "+e);n.framesToPop=1,s(n,!1)}}function l(){console._errorOriginal||(console._errorOriginal=console.error.bind(console),console.error=c,void 0===console.reportErrorsAsExceptions&&(console.reportErrorsAsExceptions=!0))}var a=0;e.exports={handleException:i,installConsoleErrorReporter:l}},42); +__d(function(r,t,s,a){"use strict";function e(r){if(!r||!r.stack)return[];for(var s=t(44),a=Array.isArray(r.stack)?r.stack:s.parse(r.stack),e="number"==typeof r.framesToPop?r.framesToPop:0;e--;)a.shift();return a}s.exports=e},43); +__d(function(n,o,t,_){t.exports=o(45)},44); +__d(function(e,n,t,l){var o="",i={parse:function(e){for(var n,t,l=/^\s*at (?:(?:(?:Anonymous function)?|((?:\[object object\])?\S+(?: \[as \S+\])?)) )?\(?((?:file|http|https):.*?):(\d+)(?::(\d+))?\)?\s*$/i,i=/^(?:\s*([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i,u=/^\s*at (?:((?:\[object object\])?\S+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i,s=e.split("\n"),c=[],m=0,f=s.length;m1){for(var s=Array(f),y=0;y1){for(var m=Array(y),d=0;d=n?(this._iteratedObject=void 0,t(void 0,!0)):(this._nextIndex=s+1,u===i?t(s,!1):u===o?t(r[s],!1):u===a?t([s,r[s]],!1):void 0)}},{key:"@@iterator",value:function(){return this}}]),e}(),r=function(){function e(t){if(babelHelpers.classCallCheck(this,e),"string"!=typeof t)throw new TypeError("Object is not a string");this._iteratedString=t,this._nextIndex=0}return babelHelpers.createClass(e,[{key:"next",value:function(){if(!this instanceof e)throw new TypeError("Object is not a StringIterator");if(null==this._iteratedString)return t(void 0,!0);var r=this._nextIndex,n=this._iteratedString,i=n.length;if(r>=i)return this._iteratedString=void 0,t(void 0,!0);var o,a=n.charCodeAt(r);if(a<55296||a>56319||r+1===i)o=n[r];else{var s=n.charCodeAt(r+1);o=s<56320||s>57343?n[r]:n[r]+n[r+1]}return this._nextIndex=r+o.length,t(o,!1)}},{key:"@@iterator",value:function(){return this}}]),e}();return function(t,n){return"string"==typeof t?new r(t):Array.isArray(t)?new e(t,n||o):t[s]()}}()}();babelHelpers.extends(u,{KIND_KEY:i,KIND_VALUE:o,KIND_KEY_VAL:a,ITERATOR_SYMBOL:s}),r.exports=u},65); +__d(function(e,t,n,s){"use strict";var i=t(62),r=t(61),a=t(65);n.exports=function(e){function t(e){e._map=new i,e.size=e._map.size}if(!r("Set"))return e.Set;var n=function(){function e(n){if(babelHelpers.classCallCheck(this,e),null==this||"object"!=typeof this&&"function"!=typeof this)throw new TypeError("Wrong set object type.");if(t(this),null!=n)for(var s,i=a(n);!(s=i.next()).done;)this.add(s.value)}return babelHelpers.createClass(e,[{key:"add",value:function(e){return this._map.set(e,e),this.size=this._map.size,this}},{key:"clear",value:function(){t(this)}},{key:"delete",value:function(e){var t=this._map.delete(e);return this.size=this._map.size,t}},{key:"entries",value:function(){return this._map.entries()}},{key:"forEach",value:function(e){for(var t,n=arguments[1],s=this._map.keys();!(t=s.next()).done;)e.call(n,t.value,t.value,this)}},{key:"has",value:function(e){return this._map.has(e)}},{key:"values",value:function(){return this._map.values()}}]),e}();return n.prototype[a.ITERATOR_SYMBOL]=n.prototype.values,n.prototype.keys=n.prototype.values,n}(Function("return this")())},66); +__d(function(t,r,s,c){"use strict";var e=r(68);s.exports=e},67); +__d(function(t,n,r,e){"use strict";var i=n(69);n(71),i.prototype.finally=function(t){return this.then(t,t)},r.exports=i},68); +__d(function(n,t,e,r){"use strict";function o(n){var t=new f(f._61);return t._65=1,t._55=n,t}var f=t(70);e.exports=f;var i=o(!0),u=o(!1),c=o(null),a=o(void 0),l=o(0),h=o("");f.resolve=function(n){if(n instanceof f)return n;if(null===n)return c;if(void 0===n)return a;if(n===!0)return i;if(n===!1)return u;if(0===n)return l;if(""===n)return h;if("object"==typeof n||"function"==typeof n)try{var t=n.then;if("function"==typeof t)return new f(t.bind(n))}catch(n){return new f(function(t,e){e(n)})}return o(n)},f.all=function(n){var t=Array.prototype.slice.call(n);return new f(function(n,e){function r(i,u){if(u&&("object"==typeof u||"function"==typeof u)){if(u instanceof f&&u.then===f.prototype.then){for(;3===u._65;)u=u._55;return 1===u._65?r(i,u._55):(2===u._65&&e(u._55),void u.then(function(n){r(i,n)},e))}var c=u.then;if("function"==typeof c){var a=new f(c.bind(u));return void a.then(function(n){r(i,n)},e)}}t[i]=u,0===--o&&n(t)}if(0===t.length)return n([]);for(var o=t.length,i=0;i=0;--n){var o=this.tryEntries[n],i=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var a=d.call(o,"catchLoc"),c=d.call(o,"finallyLoc");if(a&&c){if(this.prev=0;--e){var n=this.tryEntries[e];if(n.tryLoc<=this.prev&&d.call(n,"finallyLoc")&&this.prev=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),h(e),G}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var o=n.arg;h(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,e){return this.delegate={iterator:y(t),resultName:r,nextLoc:e},G}}}("object"==typeof t?t:"object"==typeof window?window:"object"==typeof self?self:this)},72); +__d(function(e,t,s,r){"use strict";var i=t(74),n=t(78),o=t(83),a=t(13),h=t(27),p=0,d=1,u=2,l=3,_=4,c={arraybuffer:"function"==typeof e.ArrayBuffer,blob:"function"==typeof e.Blob,document:!1,json:!0,text:!0,"":!0},y=["abort","error","load","loadstart","progress","timeout","loadend"],b=y.concat("readystatechange"),v=function(e){function t(){return babelHelpers.classCallCheck(this,t),babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return babelHelpers.inherits(t,e),t}(i.apply(void 0,y)),f=function(t){function s(){babelHelpers.classCallCheck(this,s);var e=babelHelpers.possibleConstructorReturn(this,(s.__proto__||Object.getPrototypeOf(s)).call(this));return e.UNSENT=p,e.OPENED=d,e.HEADERS_RECEIVED=u,e.LOADING=l,e.DONE=_,e.readyState=p,e.status=0,e.timeout=0,e.withCredentials=!0,e.upload=new v,e._aborted=!1,e._hasError=!1,e._method=null,e._response="",e._url=null,e._timedOut=!1,e._trackingName="unknown",e._incrementalEvents=!1,e._reset(),e}return babelHelpers.inherits(s,t),babelHelpers.createClass(s,null,[{key:"setInterceptor",value:function(e){s._interceptor=e}}]),babelHelpers.createClass(s,[{key:"_reset",value:function(){this.readyState=this.UNSENT,this.responseHeaders=void 0,this.status=0,delete this.responseURL,this._requestId=null,this._cachedResponse=void 0,this._hasError=!1,this._headers={},this._response="",this._responseType="",this._sent=!1,this._lowerCaseResponseHeaders={},this._clearSubscriptions(),this._timedOut=!1}},{key:"__didCreateRequest",value:function(e){this._requestId=e,s._interceptor&&s._interceptor.requestSent(e,this._url||"",this._method||"GET",this._headers)}},{key:"__didUploadProgress",value:function(e,t,s){e===this._requestId&&this.upload.dispatchEvent({type:"progress",lengthComputable:!0,loaded:t,total:s})}},{key:"__didReceiveResponse",value:function(e,t,r,i){e===this._requestId&&(this.status=t,this.setResponseHeaders(r),this.setReadyState(this.HEADERS_RECEIVED),i||""===i?this.responseURL=i:delete this.responseURL,s._interceptor&&s._interceptor.responseReceived(e,i||this._url||"",t,r||{}))}},{key:"__didReceiveData",value:function(e,t){e===this._requestId&&(this._response=t,this._cachedResponse=void 0,this.setReadyState(this.LOADING),s._interceptor&&s._interceptor.dataReceived(e,t))}},{key:"__didReceiveIncrementalData",value:function(e,t,r,i){e===this._requestId&&(this._response?this._response+=t:this._response=t,s._interceptor&&s._interceptor.dataReceived(e,t),this.setReadyState(this.LOADING),this.__didReceiveDataProgress(e,r,i))}},{key:"__didReceiveDataProgress",value:function(e,t,s){e===this._requestId&&this.dispatchEvent({type:"progress",lengthComputable:s>=0,loaded:t,total:s})}},{key:"__didCompleteResponse",value:function(e,t,r){e===this._requestId&&(t&&(""!==this._responseType&&"text"!==this._responseType||(this._response=t),this._hasError=!0,r&&(this._timedOut=!0)),this._clearSubscriptions(),this._requestId=null,this.setReadyState(this.DONE),t?s._interceptor&&s._interceptor.loadingFailed(e,t):s._interceptor&&s._interceptor.loadingFinished(e,this._response.length))}},{key:"_clearSubscriptions",value:function(){(this._subscriptions||[]).forEach(function(e){e&&e.remove()}),this._subscriptions=[]}},{key:"getAllResponseHeaders",value:function(){if(!this.responseHeaders)return null;var e=this.responseHeaders||{};return Object.keys(e).map(function(t){return t+": "+e[t]}).join("\r\n")}},{key:"getResponseHeader",value:function(e){var t=this._lowerCaseResponseHeaders[e.toLowerCase()];return void 0!==t?t:null}},{key:"setRequestHeader",value:function(e,t){if(this.readyState!==this.OPENED)throw new Error("Request has not been opened");this._headers[e.toLowerCase()]=String(t)}},{key:"setTrackingName",value:function(e){return this._trackingName=e,this}},{key:"open",value:function(e,t,s){if(this.readyState!==this.UNSENT)throw new Error("Cannot open, already sending");if(void 0!==s&&!s)throw new Error("Synchronous http requests are not supported");if(!t)throw new Error("Cannot load an empty url");this._method=e.toUpperCase(),this._url=t,this._aborted=!1,this.setReadyState(this.OPENED)}},{key:"send",value:function(e){var t=this;if(this.readyState!==this.OPENED)throw new Error("Request has not been opened");if(this._sent)throw new Error("Request has already been sent");this._sent=!0;var s=this._incrementalEvents||!!this.onreadystatechange||!!this.onprogress;this._subscriptions.push(n.addListener("didSendNetworkData",function(e){return t.__didUploadProgress.apply(t,babelHelpers.toConsumableArray(e))})),this._subscriptions.push(n.addListener("didReceiveNetworkResponse",function(e){return t.__didReceiveResponse.apply(t,babelHelpers.toConsumableArray(e))})),this._subscriptions.push(n.addListener("didReceiveNetworkData",function(e){return t.__didReceiveData.apply(t,babelHelpers.toConsumableArray(e))})),this._subscriptions.push(n.addListener("didReceiveNetworkIncrementalData",function(e){return t.__didReceiveIncrementalData.apply(t,babelHelpers.toConsumableArray(e))})),this._subscriptions.push(n.addListener("didReceiveNetworkDataProgress",function(e){return t.__didReceiveDataProgress.apply(t,babelHelpers.toConsumableArray(e))})),this._subscriptions.push(n.addListener("didCompleteNetworkResponse",function(e){return t.__didCompleteResponse.apply(t,babelHelpers.toConsumableArray(e))}));var r="text";"arraybuffer"!==this._responseType&&"blob"!==this._responseType||(r="base64"),a(this._method,"Request method needs to be defined."),a(this._url,"Request URL needs to be defined."),n.sendRequest(this._method,this._trackingName,this._url,this._headers,e,r,s,this.timeout,this.__didCreateRequest.bind(this),this.withCredentials)}},{key:"abort",value:function(){this._aborted=!0,this._requestId&&n.abortRequest(this._requestId),this.readyState===this.UNSENT||this.readyState===this.OPENED&&!this._sent||this.readyState===this.DONE||(this._reset(),this.setReadyState(this.DONE)),this._reset()}},{key:"setResponseHeaders",value:function(e){this.responseHeaders=e||null;var t=e||{};this._lowerCaseResponseHeaders=Object.keys(t).reduce(function(e,s){return e[s.toLowerCase()]=t[s],e},{})}},{key:"setReadyState",value:function(e){this.readyState=e,this.dispatchEvent({type:"readystatechange"}),e===this.DONE&&(this._aborted?this.dispatchEvent({type:"abort"}):this._hasError?this._timedOut?this.dispatchEvent({type:"timeout"}):this.dispatchEvent({type:"error"}):this.dispatchEvent({type:"load"}),this.dispatchEvent({type:"loadend"}))}},{key:"addEventListener",value:function(e,t){"readystatechange"!==e&&"progress"!==e||(this._incrementalEvents=!0),babelHelpers.get(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"addEventListener",this).call(this,e,t)}},{key:"responseType",get:function(){return this._responseType},set:function(e){if(this._sent)throw new Error("Failed to set the 'responseType' property on 'XMLHttpRequest': The response type cannot be set after the request has been sent.");return c.hasOwnProperty(e)?(a(c[e]||"document"===e,"The provided value '"+e+"' is unsupported in this environment."),void(this._responseType=e)):void h(!1,"The provided value '"+e+"' is not a valid 'responseType'.")}},{key:"responseText",get:function(){if(""!==this._responseType&&"text"!==this._responseType)throw new Error("The 'responseText' property is only available if 'responseType' "+("is set to '' or 'text', but it is '"+this._responseType+"'."));return this.readyState0){for(var t=Array(arguments.length),n=0;n0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===r[t-2]?2:"="===r[t-1]?1:0}function a(r){return 3*r.length/4-o(r)}function h(r){var t,n,e,a,h,c=r.length;a=o(r),h=new f(3*c/4-a),n=a>0?c-4:c;var u=0;for(t=0;t>16&255,h[u++]=e>>8&255,h[u++]=255&e;return 2===a?(e=d[r.charCodeAt(t)]<<2|d[r.charCodeAt(t+1)]>>4,h[u++]=255&e):1===a&&(e=d[r.charCodeAt(t)]<<10|d[r.charCodeAt(t+1)]<<4|d[r.charCodeAt(t+2)]>>2,h[u++]=e>>8&255,h[u++]=255&e),h}function c(r){return A[r>>18&63]+A[r>>12&63]+A[r>>6&63]+A[63&r]}function u(r,t,n){for(var e,o=[],a=t;ai?i:c+h));return 1===e?(t=r[n-1],o+=A[t>>2],o+=A[t<<4&63],o+="=="):2===e&&(t=(r[n-2]<<8)+r[n-1],o+=A[t>>10],o+=A[t>>4&63],o+=A[t<<2&63],o+="="),a.push(o),a.join("")}e.byteLength=a,e.toByteArray=h,e.fromByteArray=i;for(var A=[],d=[],f="undefined"!=typeof Uint8Array?Uint8Array:Array,C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",y=0,g=C.length;y-1?e:t}function c(t,e){e=e||{};var r=e.body;if("string"==typeof t)this.url=t;else{if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new n(t.headers)),this.method=t.method,this.mode=t.mode,r||null==t._bodyInit||(r=t._bodyInit,t.bodyUsed=!0)}if(this.credentials=e.credentials||this.credentials||"omit",!e.headers&&this.headers||(this.headers=new n(e.headers)),this.method=y(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(r)}function l(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),o=r.shift().replace(/\+/g," "),n=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(o),decodeURIComponent(n))}}),e}function p(t){var e=new n;return t.split("\r\n").forEach(function(t){var r=t.split(":"),o=r.shift().trim();if(o){var n=r.join(":").trim();e.append(o,n)}}),e}function b(t,e){e||(e={}),this.type="default",this.status="status"in e?e.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new n(e.headers),this.url=e.url||"",this._initBody(t)}if(!t.fetch){var m={searchParams:"URLSearchParams"in t,iterable:"Symbol"in t&&"iterator"in Symbol,blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(t){return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t};if(m.arrayBuffer)var w=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],v=function(t){return t&&DataView.prototype.isPrototypeOf(t)},_=ArrayBuffer.isView||function(t){return t&&w.indexOf(Object.prototype.toString.call(t))>-1};n.prototype.append=function(t,o){t=e(t),o=r(o);var n=this.map[t];n||(n=[],this.map[t]=n),n.push(o)},n.prototype.delete=function(t){delete this.map[e(t)]},n.prototype.get=function(t){var r=this.map[e(t)];return r?r[0]:null},n.prototype.getAll=function(t){return this.map[e(t)]||[]},n.prototype.has=function(t){return this.map.hasOwnProperty(e(t))},n.prototype.set=function(t,o){this.map[e(t)]=[r(o)]},n.prototype.forEach=function(t,e){Object.getOwnPropertyNames(this.map).forEach(function(r){this.map[r].forEach(function(o){t.call(e,o,r,this)},this)},this)},n.prototype.keys=function(){var t=[];return this.forEach(function(e,r){t.push(r)}),o(t)},n.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),o(t)},n.prototype.entries=function(){var t=[];return this.forEach(function(e,r){t.push([r,e])}),o(t)},m.iterable&&(n.prototype["function"==typeof Symbol?Symbol.iterator:"@@iterator"]=n.prototype.entries);var B=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];c.prototype.clone=function(){return new c(this,{body:this._bodyInit})},d.call(c.prototype),d.call(b.prototype),b.prototype.clone=function(){return new b(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new n(this.headers),url:this.url})},b.error=function(){var t=new b(null,{status:0,statusText:""});return t.type="error",t};var A=[301,302,303,307,308];b.redirect=function(t,e){if(A.indexOf(e)===-1)throw new RangeError("Invalid status code");return new b(null,{status:e,headers:{location:t}})},t.Headers=n,t.Request=c,t.Response=b,t.fetch=function(t,e){return new Promise(function(r,o){var n=new c(t,e),i=new XMLHttpRequest;i.onload=function(){var t={status:i.status,statusText:i.statusText,headers:p(i.getAllResponseHeaders()||"")};t.url="responseURL"in i?i.responseURL:t.headers.get("X-Request-URL");var e="response"in i?i.response:i.responseText;r(new b(e,t))},i.onerror=function(){o(new TypeError("Network request failed"))},i.ontimeout=function(){o(new TypeError("Network request failed"))},i.open(n.method,n.url,!0),"include"===n.credentials&&(i.withCredentials=!0),"responseType"in i&&m.blob&&(i.responseType="blob"),n.headers.forEach(function(t,e){i.setRequestHeader(e,t)}),i.send("undefined"==typeof n._bodyInit?null:n._bodyInit)})},t.fetch.polyfill=!0}}("undefined"!=typeof self?self:this)},86); +__d(function(e,t,s,r){"use strict";var i=t(88),o=t(74),n=t(80),a=t(15),c=(t(23),t(94)),d=t(83),l=t(82),u=t(13),b=a.WebSocketModule,h=0,p=1,y=2,f=3,_=1e3,v=["close","error","message","open"],E=0,k=function(e){function t(e,s,r){babelHelpers.classCallCheck(this,t);var i=babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));i.CONNECTING=h,i.OPEN=p,i.CLOSING=y,i.CLOSED=f,i.readyState=h,"string"==typeof s&&(s=[s]);var o=r||{},a=o.headers,c=void 0===a?{}:a,d=babelHelpers.objectWithoutProperties(o,["headers"]);if(d&&"string"==typeof d.origin&&(console.warn("Specifying `origin` as a WebSocket connection option is deprecated. Include it under `headers` instead."),c.origin=d.origin,delete d.origin),Object.keys(d).length>0&&console.warn("Unrecognized WebSocket connection option(s) `"+Object.keys(d).join("`, `")+"`. Did you mean to put these under `headers`?"),Array.isArray(s)||(s=null),!t.isAvailable)throw new Error("Cannot initialize WebSocket module. Native module WebSocketModule is missing.");return i._eventEmitter=new n(b),i._socketId=E++,i._registerEvents(),b.connect(e,s,{headers:c},i._socketId),i}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"close",value:function(e,t){this.readyState!==this.CLOSING&&this.readyState!==this.CLOSED&&(this.readyState=this.CLOSING,this._close(e,t))}},{key:"send",value:function(e){if(this.readyState===this.CONNECTING)throw new Error("INVALID_STATE_ERR");if(e instanceof i){var t=a.BlobModule;return u(t,"Native module BlobModule is required for blob support"),void t.sendBlob(e,this._socketId)}if("string"==typeof e)return void b.send(e,this._socketId);if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return void b.sendBinary(l(e),this._socketId);throw new Error("Unsupported data type")}},{key:"ping",value:function(){if(this.readyState===this.CONNECTING)throw new Error("INVALID_STATE_ERR");b.ping(this._socketId)}},{key:"_close",value:function(e,t){var s="number"==typeof e?e:_,r="string"==typeof t?t:"";b.close(s,r,this._socketId)}},{key:"_unregisterEvents",value:function(){this._subscriptions.forEach(function(e){return e.remove()}),this._subscriptions=[]}},{key:"_registerEvents",value:function(){var e=this;this._subscriptions=[this._eventEmitter.addListener("websocketMessage",function(t){if(t.id===e._socketId){var s=t.data;switch(t.type){case"binary":s=d.toByteArray(t.data).buffer;break;case"blob":s=i.create(t.data)}e.dispatchEvent(new c("message",{data:s}))}}),this._eventEmitter.addListener("websocketOpen",function(t){t.id===e._socketId&&(e.readyState=e.OPEN,e.dispatchEvent(new c("open")))}),this._eventEmitter.addListener("websocketClosed",function(t){t.id===e._socketId&&(e.readyState=e.CLOSED,e.dispatchEvent(new c("close",{code:t.code,reason:t.reason})),e._unregisterEvents(),e.close())}),this._eventEmitter.addListener("websocketFailed",function(t){t.id===e._socketId&&(e.readyState=e.CLOSED,e.dispatchEvent(new c("error",{message:t.message})),e.dispatchEvent(new c("close",{message:t.message})),e._unregisterEvents(),e.close())})]}},{key:"binaryType",get:function(){return this._binaryType},set:function(e){if("blob"!==e&&"arraybuffer"!==e)throw new Error("binaryType must be either 'blob' or 'arraybuffer'");if("blob"===this._binaryType||"blob"===e){var t=a.BlobModule;u(t,"Native module BlobModule is required for blob support"),t&&("blob"===e?t.enableBlobSupport(this._socketId):t.disableBlobSupport(this._socketId))}this._binaryType=e}}]),t}(o.apply(void 0,v));k.CONNECTING=h,k.OPEN=p,k.CLOSING=y,k.CLOSED=f,k.isAvailable=!!b,s.exports=k},87); +__d(function(e,t,r,s){"use strict";var l=t(13),o=t(89),a=t(15),n=a.BlobModule,c=function(){function e(t,r){babelHelpers.classCallCheck(this,e);var s=o(),a=0;return t.forEach(function(t){l(t instanceof e,"Can currently only create a Blob from other Blobs"),a+=t.size}),n.createFromParts(t,s),e.create({blobId:s,offset:0,size:a})}return babelHelpers.createClass(e,null,[{key:"create",value:function(t){return babelHelpers.extends(Object.create(e.prototype),t)}}]),babelHelpers.createClass(e,[{key:"slice",value:function(t,r){var s=this.offset,l=this.size;return"number"==typeof t&&(t>l&&(t=l),s+=t,l-=t,"number"==typeof r&&(r<0&&(r=this.size+r),l=r-t)),e.create({blobId:this.blobId,offset:s,size:l})}},{key:"close",value:function(){n.release(this.blobId)}}]),e}();r.exports=c},88); +__d(function(v,n,o,r){var t=n(90),_=n(93),a=_;a.v1=t,a.v4=_,o.exports=a},89); +__d(function(e,o,r,s){function c(e,o,r){var s=o&&r||0,c=o||[];e=e||{};var n=void 0!==e.clockseq?e.clockseq:t,i=void 0!==e.msecs?e.msecs:(new Date).getTime(),f=void 0!==e.nsecs?e.nsecs:u+1,m=i-d+(f-u)/1e4;if(m<0&&void 0===e.clockseq&&(n=n+1&16383),(m<0||i>d)&&void 0===e.nsecs&&(f=0),f>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");d=i,u=f,t=n,i+=122192928e5;var k=(1e4*(268435455&i)+f)%4294967296;c[s++]=k>>>24&255,c[s++]=k>>>16&255,c[s++]=k>>>8&255,c[s++]=255&k;var l=i/4294967296*1e4&268435455;c[s++]=l>>>8&255,c[s++]=255&l,c[s++]=l>>>24&15|16,c[s++]=l>>>16&255,c[s++]=n>>>8|128,c[s++]=255&n;for(var q=e.node||a,w=0;w<6;++w)c[s+w]=q[w];return o?o:v(c)}var n=o(91),v=o(92),i=n(),a=[1|i[0],i[1],i[2],i[3],i[4],i[5]],t=16383&(i[6]<<8|i[7]),d=0,u=0;r.exports=c},90); +__d(function(r,n,a,t){var o,e=r.crypto||r.msCrypto;if(e&&e.getRandomValues){var u=new Uint8Array(16);o=function(){return e.getRandomValues(u),u}}if(!o){var f=new Array(16);o=function(){for(var r,n=0;n<16;n++)0===(3&n)&&(r=4294967296*Math.random()),f[n]=r>>>((3&n)<<3)&255;return f}}a.exports=o},91); +__d(function(r,t,n,o){function u(r,t){var n=t||0,o=f;return o[r[n++]]+o[r[n++]]+o[r[n++]]+o[r[n++]]+"-"+o[r[n++]]+o[r[n++]]+"-"+o[r[n++]]+o[r[n++]]+"-"+o[r[n++]]+o[r[n++]]+"-"+o[r[n++]]+o[r[n++]]+o[r[n++]]+o[r[n++]]+o[r[n++]]+o[r[n++]]}for(var f=[],i=0;i<256;++i)f[i]=(i+256).toString(16).substr(1);n.exports=u},92); +__d(function(r,n,a,o){function t(r,n,a){var o=n&&a||0;"string"==typeof r&&(n="binary"==r?new Array(16):null,r=null),r=r||{};var t=r.random||(r.rng||f)();if(t[6]=15&t[6]|64,t[8]=63&t[8]|128,n)for(var u=0;u<16;++u)n[o+u]=t[u];return n||i(t)}var f=n(91),i=n(92);a.exports=t},93); +__d(function(e,t,s,i){"use strict";var l=function e(t,s){babelHelpers.classCallCheck(this,e),this.type=t.toString(),babelHelpers.extends(this,s)};s.exports=l},94); +__d(function(e,t,r,o){"use strict";var n=(t(88),t(15)),l=n.BlobModule,s=null;l&&"string"==typeof l.BLOB_URI_SCHEME&&(s=l.BLOB_URI_SCHEME+":","string"==typeof l.BLOB_URI_HOST&&(s+="//"+l.BLOB_URI_HOST+"/"));var u=function(){function e(){throw babelHelpers.classCallCheck(this,e),new Error("Creating BlobURL objects is not supported yet.")}return babelHelpers.createClass(e,null,[{key:"createObjectURL",value:function(e){if(null===s)throw new Error("Cannot create URL for blob!");return""+s+e.blobId+"?offset="+e.offset+"&size="+e.size}},{key:"revokeObjectURL",value:function(e){}}]),e}();r.exports=u},95); +__d(function(e,n,t,s){"use strict";var a=(n(97),n(15)),l=(n(23),function(){function e(){babelHelpers.classCallCheck(this,e)}return babelHelpers.createClass(e,null,[{key:"alert",value:function(e,n,t,s,a){r.alert(e,n,t,s)}}]),e}()),r=function(){function e(){babelHelpers.classCallCheck(this,e)}return babelHelpers.createClass(e,null,[{key:"alert",value:function(e,n,t,s){var l={title:e||"",message:n||""};s&&(l=babelHelpers.extends({},l,{cancelable:s.cancelable}));var r=t?t.slice(0,3):[{text:"OK"}],o=r.pop(),i=r.pop(),u=r.pop();u&&(l=babelHelpers.extends({},l,{buttonNeutral:u.text||""})),i&&(l=babelHelpers.extends({},l,{buttonNegative:i.text||""})),o&&(l=babelHelpers.extends({},l,{buttonPositive:o.text||""})),a.DialogManagerAndroid.showAlert(l,function(e){return console.warn(e)},function(e,n){e===a.DialogManagerAndroid.buttonClicked?n===a.DialogManagerAndroid.buttonNeutral?u.onPress&&u.onPress():n===a.DialogManagerAndroid.buttonNegative?i.onPress&&i.onPress():n===a.DialogManagerAndroid.buttonPositive&&o.onPress&&o.onPress():e===a.DialogManagerAndroid.dismissed&&s&&s.onDismiss&&s.onDismiss()})}}]),e}();t.exports=l},96); +__d(function(e,t,a,r){"use strict";var n=t(15).AlertManager,l=function(){function e(){babelHelpers.classCallCheck(this,e)}return babelHelpers.createClass(e,null,[{key:"alert",value:function(e,t,a,r){return"undefined"!=typeof r?(console.warn('AlertIOS.alert() with a 4th "type" parameter is deprecated and will be removed. Use AlertIOS.prompt() instead.'),void this.prompt(e,t,a,r)):void this.prompt(e,t,a,"default")}},{key:"prompt",value:function(e,t,a){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"plain-text",l=arguments[4],i=arguments[5];if("function"==typeof r){console.warn('You passed a callback function as the "type" argument to AlertIOS.prompt(). React Native is assuming you want to use the deprecated AlertIOS.prompt(title, defaultValue, buttons, callback) signature. The current signature is AlertIOS.prompt(title, message, callbackOrButtons, type, defaultValue, keyboardType) and the old syntax will be removed in a future version.');var o=r,l=t;return void n.alertWithArgs({title:e,type:"plain-text",defaultValue:l},function(e,t){o(t)})}var s,u,c=[],p=[];"function"==typeof a?c=[a]:a instanceof Array&&a.forEach(function(e,t){if(c[t]=e.onPress,"cancel"===e.style?s=String(t):"destructive"===e.style&&(u=String(t)),e.text||t<(a||[]).length-1){var r={};r[t]=e.text||"",p.push(r)}}),n.alertWithArgs({title:e,message:t||void 0,buttons:p,type:r||void 0,defaultValue:l,cancelButtonKey:s,destructiveButtonKey:u,keyboardType:i},function(e,t){var a=c[e];a&&a(t)})}}]),e}();a.exports=l},97); +__d(function(e,t,n,r){"use strict";var i=t(80),o=t(15).LocationObserver,s=t(13),a=t(99),u=t(27),c=new i(o),v=t(23),f=t(100),g=[],l=!1,h={setRNConfiguration:function(e){o.setConfiguration&&o.setConfiguration(e)},requestAuthorization:function(){o.requestAuthorization()},getCurrentPosition:function(e,t,n){var r,i;return regeneratorRuntime.async(function(u){for(;;)switch(u.prev=u.next){case 0:if(s("function"==typeof e,"Must provide a valid geo_success callback."),r=!0,!(v.Version>=23)){u.next=11;break}return u.next=5,regeneratorRuntime.awrap(f.check(f.PERMISSIONS.ACCESS_FINE_LOCATION));case 5:if(r=u.sent){u.next=11;break}return u.next=9,regeneratorRuntime.awrap(f.request(f.PERMISSIONS.ACCESS_FINE_LOCATION));case 9:i=u.sent,r=i===f.RESULTS.GRANTED;case 11:r&&o.getCurrentPosition(n||{},e,t||a);case 12:case"end":return u.stop()}},null,this)},watchPosition:function(e,t,n){l||(o.startObserving(n||{}),l=!0);var r=g.length;return g.push([c.addListener("geolocationDidChange",e),t?c.addListener("geolocationError",t):null]),r},clearWatch:function(e){var t=g[e];if(t){t[0].remove();var n=t[1];n&&n.remove(),g[e]=void 0;for(var r=!0,i=0;i1?e-1:0),a=1;a1?n-1:0),i=1;i-1,"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.",e),!mo.plugins[n]){Et(t.extractEvents,"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.",e),mo.plugins[n]=t;var o=t.eventTypes;for(var r in o)Et(W(o[r],t,r),"EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.",r,e)}}}function W(e,t,n){Et(!mo.eventNameDispatchConfigs.hasOwnProperty(n),"EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.",n),mo.eventNameDispatchConfigs[n]=e;var o=e.phasedRegistrationNames;if(o){for(var r in o)if(o.hasOwnProperty(r)){var i=o[r];L(i,t,n)}return!0}return!!e.registrationName&&(L(e.registrationName,t,n),!0)}function L(e,t,n){Et(!mo.registrationNameModules[e],"EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.",e),mo.registrationNameModules[e]=t,mo.registrationNameDependencies[e]=t.eventTypes[n].dependencies}function B(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function Y(e){return"topMouseMove"===e||"topTouchMove"===e}function V(e){return"topMouseDown"===e||"topTouchStart"===e}function X(e,t,n,o){var r=e.type||"unknown-event";e.currentTarget=_o.getNodeFromInstance(o),Mn.invokeGuardedCallbackAndCatchFirstError(r,n,void 0,e),e.currentTarget=null}function G(e,t){var n=e._dispatchListeners,o=e._dispatchInstances;if(Array.isArray(n))for(var r=0;r0;)e=te(e),n--;for(;r-n>0;)t=te(t),r--;for(var a=n;a--;){if(e===t||e===t.alternate)return e;e=te(e),t=te(t)}return null}function oe(e,t){for(;t;){if(e===t||e===t.alternate)return!0;t=te(t)}return!1}function re(e){return te(e)}function ie(e,t,n){for(var o=[];e;)o.push(e),e=te(e);var r;for(r=o.length;r-- >0;)t(o[r],"captured",n);for(r=0;r0;)n(s[u],"captured",r)}function se(e,t,n){var o=t.dispatchConfig.phasedRegistrationNames[n];return xo(e,o)}function ue(e,t,n){var o=se(e,n,t);o&&(n._dispatchListeners=yo(n._dispatchListeners,o),n._dispatchInstances=yo(n._dispatchInstances,e))}function ce(e){e&&e.dispatchConfig.phasedRegistrationNames&&wo.traverseTwoPhase(e._targetInst,ue,e)}function le(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst,n=t?wo.getParentInstance(t):null;wo.traverseTwoPhase(n,ue,e)}}function pe(e,t,n){if(e&&n&&n.dispatchConfig.registrationName){var o=n.dispatchConfig.registrationName,r=xo(e,o);r&&(n._dispatchListeners=yo(n._dispatchListeners,r),n._dispatchInstances=yo(n._dispatchInstances,e))}}function de(e){e&&e.dispatchConfig.registrationName&&pe(e._targetInst,null,e)}function he(e){bo(e,ce)}function fe(e){bo(e,le)}function me(e,t,n,o){wo.traverseEnterLeave(n,o,pe,e,t)}function ve(e){bo(e,de)}function ge(e,t,n,o){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n;var r=this.constructor.Interface;for(var i in r)if(r.hasOwnProperty(i)){var a=r[i];a?this[i]=a(n):"target"===i?this.target=o:this[i]=n[i]}var s=null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue;return this.isDefaultPrevented=s?kt.thatReturnsTrue:kt.thatReturnsFalse,this.isPropagationStopped=kt.thatReturnsFalse,this}function _e(e,t,n,o){var r=this;if(r.eventPool.length){var i=r.eventPool.pop();return r.call(i,e,t,n,o),i}return new r(e,t,n,o)}function Ce(e){var t=this;Et(e instanceof t,"Trying to release an event instance into a pool of a different type."),e.destructor(),t.eventPool.lengthCr&&(e+=" (original size: "+yr.length+")"),e}function Me(e,t){return Et(null!=t,"accumulate(...): Accumulated items must be not be null or undefined."),null==e?t:Array.isArray(e)?e.concat(t):Array.isArray(t)?[e].concat(t):[e,t]}function He(e,t,n,o){var r=Ir(e)?jr.startShouldSetResponder:Er(e)?jr.moveShouldSetResponder:"topSelectionChange"===e?jr.selectionChangeShouldSetResponder:jr.scrollShouldSetResponder,i=Ar?wo.getLowestCommonAncestor(Ar,t):t,a=i===Ar,s=mr.getPooled(r,i,n,o);s.touchHistory=Rr.touchHistory,a?Do.accumulateTwoPhaseDispatchesSkipTarget(s):Do.accumulateTwoPhaseDispatches(s);var u=xr(s);if(s.isPersistent()||s.constructor.release(s),!u||u===Ar)return null;var c,l=mr.getPooled(jr.responderGrant,u,n,o);l.touchHistory=Rr.touchHistory,Do.accumulateDirectDispatches(l);var p=!0===Sr(l);if(Ar){var d=mr.getPooled(jr.responderTerminationRequest,Ar,n,o);d.touchHistory=Rr.touchHistory,Do.accumulateDirectDispatches(d);var h=!wr(d)||Sr(d);if(d.isPersistent()||d.constructor.release(d),h){var f=mr.getPooled(jr.responderTerminate,Ar,n,o);f.touchHistory=Rr.touchHistory,Do.accumulateDirectDispatches(f),c=Nr(c,[l,f]),Or(u,p)}else{var m=mr.getPooled(jr.responderReject,u,n,o);m.touchHistory=Rr.touchHistory,Do.accumulateDirectDispatches(m),c=Nr(c,m)}}else c=Nr(c,l),Or(u,p);return c}function Ue(e,t,n){return t&&("topScroll"===e&&!n.responderIgnoreScroll||Dr>0&&"topSelectionChange"===e||Ir(e)||Er(e))}function Fe(e){var t=e.touches;if(!t||0===t.length)return!0;for(var n=0;n0;)qe(e,t[o],n);else if(t&&fi>0){var r=Ge(t);for(var i in hi)if(hi[i]){var a=r[i];if(void 0!==a){var s=n[i];if(s){if("function"==typeof a&&(a=!0),void 0===a&&(a=null),"object"!=typeof s)e[i]=a;else if("function"==typeof s.diff||"function"==typeof s.process){var u="function"==typeof s.process?s.process(a):a;e[i]=u}hi[i]=!1,fi--}}}}}function ze(e,t,n,o){var r,i=t.length0&&e&&(qe(e,i,r),hi=null);for(s in t)void 0===n[s]&&(r=o[s])&&(e&&void 0!==e[s]||void 0!==(a=t[s])&&("object"!=typeof r||"function"==typeof r.diff||"function"==typeof r.process?((e||(e={}))[s]=null,hi||(hi={}),hi[s]||(hi[s]=!0,fi++)):e=Je(e,a,r)));return e}function Ze(e,t,n){return $e(e,di,t,n)}function et(e,t,n){return $e(e,t,di,n)}function tt(e,t){return function(){if(t){if("boolean"==typeof e.__isMounted){if(!e.__isMounted)return}else if("function"==typeof e.isMounted&&!e.isMounted())return;return t.apply(e,arguments)}}}function nt(e,t){if(void 0!==t.styles){var n=e._owner||null,o=e.constructor.displayName,r="`styles` is not a supported property of `"+o+"`, did you mean `style` (singular)?";throw n&&n.constructor&&n.constructor.displayName&&(r+="\n\nCheck the `"+n.constructor.displayName+"` parent component."),new Error(r)}}function ot(e,t){for(var n in t.style)t[n]||void 0===e[n]||console.error("You are setting the style `{ "+n+": ... }` as a prop. You should nest it in a style object. E.g. `{ style: { "+n+": ... } }`")}function rt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function it(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function at(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function st(e,t){var n=void 0;try{n=ro(e)}catch(e){}if(null!=n){var o=n.viewConfig,r=vi.create(t,o.validAttributes);xt.updateView(n._nativeTag,o.uiViewClassName,r)}}function ut(e,t){var n=ro(e);if(null!=n){var o=void 0;if(void 0!==n.viewConfig)o=n.viewConfig;else if(void 0!==n._instance&&void 0!==n._instance.viewConfig)o=n._instance.viewConfig;else{for(;void 0!==n._renderedComponent;)n=n._renderedComponent;o=n.viewConfig}var r="function"==typeof n.getHostNode?n.getHostNode():n._rootNodeID,i=vi.create(t,o.validAttributes);xt.updateView(r,o.uiViewClassName,i)}}function ct(e,t){var n=void 0;try{n=ro(e)}catch(e){}if(null!=n){var o=n.viewConfig,r=vi.create(t,o.validAttributes);xt.updateView(n._nativeTag,o.uiViewClassName,r)}}function lt(e,t){var n=ro(e);if(null!=n){var o=void 0;if(void 0!==n.viewConfig)o=n.viewConfig;else if(void 0!==n._instance&&void 0!==n._instance.viewConfig)o=n._instance.viewConfig;else{for(;void 0!==n._renderedComponent;)n=n._renderedComponent;o=n.viewConfig}var r="function"==typeof n.getHostNode?n.getHostNode():n._rootNodeID,i=vi.create(t,o.validAttributes);xt.updateView(r,o.uiViewClassName,i)}}function pt(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})}function dt(e,t){return e&&"object"==typeof e&&null!=e.key?ji.escape(e.key):t.toString(36)}function ht(e,t,n,o){var r=typeof e;if("undefined"!==r&&"boolean"!==r||(e=null),null===e||"string"===r||"number"===r||"object"===r&&e.$$typeof===Ui)return n(o,e,""===t?Fi+dt(e,0):t),1;var i,a,s=0,u=""===t?Fi:t+Wi;if(Array.isArray(e))for(var c=0;c=0))return console.error("Ended a touch event which was not counted in `trackedTouchCount`."),null;Dr-=1}Rr.recordTouchTrack(e,n);var r=Ue(e,t,n)?He(e,t,n,o):null,i=Ar&&Ir(e),a=Ar&&Er(e),s=Ar&&Pr(e),u=i?jr.responderStart:a?jr.responderMove:s?jr.responderEnd:null;if(u){var c=mr.getPooled(u,Ar,n,o);c.touchHistory=Rr.touchHistory,Do.accumulateDirectDispatches(c),r=Nr(r,c)}var l=Ar&&"topTouchCancel"===e,p=Ar&&!l&&Pr(e)&&Fe(n),d=l?jr.responderTerminate:p?jr.responderRelease:null;if(d){var h=mr.getPooled(d,Ar,n,o);h.touchHistory=Rr.touchHistory,Do.accumulateDirectDispatches(h),r=Nr(r,h),Or(null)}var f=Rr.touchHistory.numberActiveTouches;return Mr.GlobalInteractionHandler&&f!==kr&&Mr.GlobalInteractionHandler.onChange(f),kr=f,r},GlobalResponderHandler:null,GlobalInteractionHandler:null,injection:{injectGlobalResponderHandler:function(e){Mr.GlobalResponderHandler=e},injectGlobalInteractionHandler:function(e){Mr.GlobalInteractionHandler=e}}},Hr=Mr;Dt.register(ur),Po.injection.injectEventPluginOrder(lr),Co.injection.injectComponentTree(Wt),Hr.injection.injectGlobalResponderHandler(dr),Po.injection.injectEventPluginsByName({ResponderEventPlugin:Hr,ReactNativeBridgeEventPlugin:Yo});var Ur={initialize:kt,close:function(){Br.isBatchingUpdates=!1}},Fr={initialize:kt,close:Rn.flushBatchedUpdates.bind(Rn)},Wr=[Fr,Ur];babelHelpers.extends(We.prototype,fn,{getTransactionWrappers:function(){return Wr}});var Lr=new We,Br={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,o,r,i){var a=Br.isBatchingUpdates;return Br.isBatchingUpdates=!0,a?e(t,n,o,r,i):Lr.perform(e,null,t,n,o,r,i)}},Yr=Br,Vr=function(e,t){if(t.length){for(var n,o,r,i,a,s=Wt.getNodeFromInstance(e),u=0;u component.',this._stringText),this._hostParent=t;var r=Vt.allocateTag();this._rootNodeID=r;var i=n._tag;return xt.createView(r,"RCTRawText",i,{text:this._stringText}),Wt.precacheNode(this,r),r},getHostNode:function(){return this._rootNodeID},receiveComponent:function(e,t,n){if(e!==this._currentElement){this._currentElement=e;var o=""+e;o!==this._stringText&&(this._stringText=o,xt.updateView(this._rootNodeID,"RCTRawText",{text:this._stringText}))}},unmountComponent:function(){Wt.uncacheNode(this),this._currentElement=null,this._stringText=null,this._rootNodeID=0}});var oi=ni,ri=function(e,t){this._currentElement=null,this._renderedComponent=t(e)};babelHelpers.extends(ri.prototype,{mountComponent:function(e,t,n,o,r){return $t.mountComponent(this._renderedComponent,e,t,n,o,r)},receiveComponent:function(){},getHostNode:function(){return $t.getHostNode(this._renderedComponent)},unmountComponent:function(e,t){$t.unmountComponent(this._renderedComponent,e,t),this._renderedComponent=null}});var ii=ri;or.injection.injectStackBatchedUpdates(Rn.batchedUpdates),Rn.injection.injectReconcileTransaction(ti.ReactReconcileTransaction),Rn.injection.injectBatchingStrategy(Yr),An.injection.injectEnvironment(ti);var ai=function(e){var n=t(110);return new ii(Pt.createElement(n,{collapsable:!0,style:{position:"absolute"}}),e)};qn.injection.injectEmptyComponentFactory(ai),$n.injection.injectTextComponentClass(oi),$n.injection.injectGenericComponentClass(function(e){var t="";"string"==typeof e&&/^[a-z]/.test(e)&&(t+=" Each component name should start with an uppercase letter."),Et(!1,"Expected a component class, got %s.%s",e,t)});var si={},ui=1,ci={},li=function(){function e(){Ve(this,e)}return e.register=function(e){var t=++ui;return si[t]=e,t},e.getByID=function(e){if(!e)return ci;var t=si[e];return t||(console.warn("Invalid style with id `"+e+"`. Skipping ..."),ci)},e}(),pi=li,di={},hi=null,fi=0,mi={create:function(e,t){return Ze(null,e,t)},diff:function(e,t,n){return $e(null,e,t,n)}},vi=mi,gi={mountSafeCallback:tt,throwOnStylesProp:nt,warnForStyleProps:ot},_i=t(40),Ci=gi.mountSafeCallback,yi=_i.useFiber?to:po,bi=function(e){function t(){return rt(this,t),it(this,e.apply(this,arguments))}return at(t,e),t.prototype.blur=function(){Mt.blurTextInput(yi(this))},t.prototype.focus=function(){Mt.focusTextInput(yi(this))},t.prototype.measure=function(e){xt.measure(yi(this),Ci(this,e))},t.prototype.measureInWindow=function(e){xt.measureInWindow(yi(this),Ci(this,e))},t.prototype.measureLayout=function(e,t,n){xt.measureLayout(yi(this),e,Ci(this,n),Ci(this,t))},t.prototype.setNativeProps=function(e){Ti(this,e)},t}(Pt.Component),Ti=void 0;Ti=_i.useFiber?st:ut;var Ri=bi,Ni=t(40),Ii=gi.mountSafeCallback,Ei=Ni.useFiber?to:po,Pi={measure:function(e){xt.measure(Ei(this),Ii(this,e))},measureInWindow:function(e){xt.measureInWindow(Ei(this),Ii(this,e))},measureLayout:function(e,t,n){xt.measureLayout(Ei(this),e,Ii(this,n),Ii(this,t))},setNativeProps:function(e){Si(this,e)},focus:function(){Mt.focusTextInput(Ei(this))},blur:function(){Mt.blurTextInput(Ei(this))}},Si=void 0;Si=Ni.useFiber?ct:lt;var wi,xi=Pi,Ai={centroidDimension:function(e,t,n,o){var r=e.touchBank,i=0,a=0,s=1===e.numberActiveTouches?e.touchBank[e.indexOfSingleActiveTouch]:null;if(null!==s)s.touchActive&&s.currentTimeStamp>t&&(i+=o&&n?s.currentPageX:o&&!n?s.currentPageY:!o&&n?s.previousPageX:s.previousPageY,a=1);else for(var u=0;u=t){var l;l=o&&n?c.currentPageX:o&&!n?c.currentPageY:!o&&n?c.previousPageX:c.previousPageY,i+=l,a++}}return a>0?i/a:Ai.noCentroid},currentCentroidXOfTouchesChangedAfter:function(e,t){return Ai.centroidDimension(e,t,!0,!0)},currentCentroidYOfTouchesChangedAfter:function(e,t){return Ai.centroidDimension(e,t,!1,!0)},previousCentroidXOfTouchesChangedAfter:function(e,t){return Ai.centroidDimension(e,t,!0,!1)},previousCentroidYOfTouchesChangedAfter:function(e,t){return Ai.centroidDimension(e,t,!1,!1)},currentCentroidX:function(e){return Ai.centroidDimension(e,0,!0,!0)},currentCentroidY:function(e){return Ai.centroidDimension(e,0,!1,!0)},noCentroid:-1},Di=Ai,ki=kt,Oi={escape:pt,unescapeInDev:ki},ji=Oi,Mi="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.iterator:"@@iterator"),Hi="@@iterator",Ui="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.for:"@@for")&&("function"==typeof Symbol?Symbol.for:"@@for")("react.element")||60103,Fi=".",Wi=":",Li=ft;"undefined"!=typeof process&&process.env&&!1&&(wi=En.ReactComponentTreeHook);var Bi,Yi={instantiateChildren:function(e,t,n,o){if(null==e)return null;var r={};return Li(e,mt,r),r},updateChildren:function(e,t,n,o,r,i,a,s,u){if(t||e){var c,l;for(c in t)if(t.hasOwnProperty(c)){l=e&&e[c];var p=l&&l._currentElement,d=t[c];if(null!=l&&Fn(p,d))$t.receiveComponent(l,d,r,s),t[c]=l;else{var h=eo(d,!0);t[c]=h;var f=$t.mountComponent(h,r,i,a,s,u);n.push(f),l&&(o[c]=$t.getHostNode(l),$t.unmountComponent(l,!1,!1))}}for(c in e)!e.hasOwnProperty(c)||t&&t.hasOwnProperty(c)||(l=e[c],o[c]=$t.getHostNode(l),$t.unmountComponent(l,!1,!1))}},unmountChildren:function(e,t,n){for(var o in e)if(e.hasOwnProperty(o)){var r=e[o];$t.unmountComponent(r,t,n)}}},Vi=Yi;"undefined"!=typeof process&&process.env&&!1&&(Bi=En.ReactComponentTreeHook);var Xi=gt,Gi={_reconcilerInstantiateChildren:function(e,t,n){return Vi.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,o,r,i){var a,s=0;return a=Xi(t,s),Vi.updateChildren(e,a,n,o,r,this,this._hostContainerInfo,i,s),a},mountChildren:function(e,t,n){var o=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=o;var r=[],i=0;for(var a in o)if(o.hasOwnProperty(a)){var s=o[a],u=0,c=$t.mountComponent(s,t,this,this._hostContainerInfo,n,u);s._mountIndex=i++,r.push(c)}return r},updateTextContent:function(e){var t=this._renderedChildren;Vi.unmountChildren(t,!1,!1);for(var n in t)t.hasOwnProperty(n)&&Et(!1,"updateTextContent called on non-empty component.");Nt(this,[Tt(e)])},updateMarkup:function(e){var t=this._renderedChildren;Vi.unmountChildren(t,!1,!1);for(var n in t)t.hasOwnProperty(n)&&Et(!1,"updateTextContent called on non-empty component.");Nt(this,[bt(e)])},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var o=this._renderedChildren,r={},i=[],a=this._reconcilerUpdateChildren(o,e,i,r,t,n);if(a||o){var s,u=null,c=0,l=0,p=0,d=null;for(s in a)if(a.hasOwnProperty(s)){var h=o&&o[s],f=a[s];h===f?(u=Rt(u,this.moveChild(h,d,c,l)),l=Math.max(h._mountIndex,l),h._mountIndex=c):(h&&(l=Math.max(h._mountIndex,l)),u=Rt(u,this._mountChildAtIndex(f,i[p],d,c,t,n)),p++),c++,d=$t.getHostNode(f)}for(s in r)r.hasOwnProperty(s)&&(u=Rt(u,this._unmountChild(o[s],r[s])));u&&Nt(this,u),this._renderedChildren=a}},unmountChildren:function(e,t){var n=this._renderedChildren;Vi.unmountChildren(n,e,t),this._renderedChildren=null},moveChild:function(e,t,n,o){if(e._mountIndex within is not supported on Android."),s.createElement(c,this.props)}}),c=w("RCTView",T,{nativeOnly:{nativeBackgroundAndroid:!0,nativeForegroundAndroid:!0}}),x=c;t.exports=x},110); +__d(function(n,o,t,_){t.exports=o(112)()},111); +__d(function(e,t,r,o){"use strict";var p=t(52),n=t(51),s=t(113);r.exports=function(){function e(e,t,r,o,p,c){c!==s&&n(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var r={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return r.checkPropTypes=p,r.PropTypes=r,r}},112); +__d(function(_,t,E,O){"use strict";var S="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";E.exports=S},113); +__d(function(t,s,c,e){"use strict";c.exports=s(47)},114); +__d(function(o,r,e,t){"use strict";var l=r(116),s=r(123),d=r(124),C=r(118),a=r(125),b=r(126),c=r(128),f=babelHelpers.extends({},C(d),C(s),C(l));f.transform={process:b},f.shadowOffset={diff:c};var n={process:a};f.backgroundColor=n,f.borderBottomColor=n,f.borderColor=n,f.borderLeftColor=n,f.borderRightColor=n,f.borderTopColor=n,f.color=n,f.shadowColor=n,f.textDecorationColor=n,f.tintColor=n,f.textShadowColor=n,f.overlayColor=n,e.exports=f},115); +__d(function(e,r,o,i){"use strict";var b=r(36),d=r(117),t=r(119),n=r(111),s=r(120),u=r(121),a=babelHelpers.extends({},t,s,u,{resizeMode:n.oneOf(Object.keys(d)),backfaceVisibility:n.oneOf(["visible","hidden"]),backgroundColor:b,borderColor:b,borderWidth:n.number,borderRadius:n.number,overflow:n.oneOf(["visible","hidden"]),tintColor:b,opacity:n.number,overlayColor:n.string,borderTopLeftRadius:n.number,borderTopRightRadius:n.number,borderBottomLeftRadius:n.number,borderBottomRightRadius:n.number});o.exports=a},116); +__d(function(l,n,t,e){"use strict";var r=n(118),u=r({contain:null,cover:null,stretch:null,center:null,repeat:null});t.exports=u},117); +__d(function(r,n,t,i){"use strict";var o=n(13),a=function(r){var n,t={};r instanceof Object&&!Array.isArray(r)?void 0:o(!1);for(n in r)r.hasOwnProperty(n)&&(t[n]=n);return t};t.exports=a},118); +__d(function(e,n,r,t){"use strict";var i=n(111),o={display:i.oneOf(["none","flex"]),width:i.oneOfType([i.number,i.string]),height:i.oneOfType([i.number,i.string]),top:i.oneOfType([i.number,i.string]),left:i.oneOfType([i.number,i.string]),right:i.oneOfType([i.number,i.string]),bottom:i.oneOfType([i.number,i.string]),minWidth:i.oneOfType([i.number,i.string]),maxWidth:i.oneOfType([i.number,i.string]),minHeight:i.oneOfType([i.number,i.string]),maxHeight:i.oneOfType([i.number,i.string]),margin:i.oneOfType([i.number,i.string]),marginVertical:i.oneOfType([i.number,i.string]),marginHorizontal:i.oneOfType([i.number,i.string]),marginTop:i.oneOfType([i.number,i.string]),marginBottom:i.oneOfType([i.number,i.string]),marginLeft:i.oneOfType([i.number,i.string]),marginRight:i.oneOfType([i.number,i.string]),padding:i.oneOfType([i.number,i.string]),paddingVertical:i.oneOfType([i.number,i.string]),paddingHorizontal:i.oneOfType([i.number,i.string]),paddingTop:i.oneOfType([i.number,i.string]),paddingBottom:i.oneOfType([i.number,i.string]),paddingLeft:i.oneOfType([i.number,i.string]),paddingRight:i.oneOfType([i.number,i.string]),borderWidth:i.number,borderTopWidth:i.number,borderRightWidth:i.number,borderBottomWidth:i.number,borderLeftWidth:i.number,position:i.oneOf(["absolute","relative"]),flexDirection:i.oneOf(["row","row-reverse","column","column-reverse"]),flexWrap:i.oneOf(["wrap","nowrap"]),justifyContent:i.oneOf(["flex-start","flex-end","center","space-between","space-around"]),alignItems:i.oneOf(["flex-start","flex-end","center","stretch","baseline"]),alignSelf:i.oneOf(["auto","flex-start","flex-end","center","stretch","baseline"]),alignContent:i.oneOf(["flex-start","flex-end","center","stretch","space-between","space-around"]),overflow:i.oneOf(["visible","hidden","scroll"]),flex:i.number,flexGrow:i.number,flexShrink:i.number,flexBasis:i.oneOfType([i.number,i.string]),aspectRatio:i.number,zIndex:i.number,direction:i.oneOf(["inherit","ltr","rtl"])};r.exports=o},119); +__d(function(s,e,a,h){"use strict";var o=e(36),r=e(111),t={shadowColor:o,shadowOffset:r.shape({width:r.number,height:r.number}),shadowOpacity:r.number,shadowRadius:r.number};a.exports=t},120); +__d(function(e,r,t,s){"use strict";var a=r(111),n=r(122),o=function(e,r,t){if(e[r])return new Error("The transformMatrix style property is deprecated. Use `transform: [{ matrix: ... }]` instead.")},p=function(e,r,t){if(e[r])return new Error("The decomposedMatrix style property is deprecated. Use `transform: [...]` instead.")},i={transform:a.arrayOf(a.oneOfType([a.shape({perspective:a.number}),a.shape({rotate:a.string}),a.shape({rotateX:a.string}),a.shape({rotateY:a.string}),a.shape({rotateZ:a.string}),a.shape({scale:a.number}),a.shape({scaleX:a.number}),a.shape({scaleY:a.number}),a.shape({translateX:a.number}),a.shape({translateY:a.number}),a.shape({skewX:a.string}),a.shape({skewY:a.string})])),transformMatrix:o,decomposedMatrix:p,scaleX:n(a.number,"Use the transform prop instead."),scaleY:n(a.number,"Use the transform prop instead."),rotation:n(a.number,"Use the transform prop instead."),translateX:n(a.number,"Use the transform prop instead."),translateY:n(a.number,"Use the transform prop instead.")};t.exports=i},121); +__d(function(n,r,e,t){"use strict";function o(n,r){return function(e,t,o){a[o]||void 0===e[t]||console.warn("`"+t+"` supplied to `"+o+"` has been deprecated. "+r);for(var c=arguments.length,i=Array(c>3?c-3:0),u=3;u>>8)>>>0,r|=0}var o=(r(23),r(37));i.exports=u},125); +__d(function(t,n,r,u){"use strict";function c(t){return t}n(127),n(23),n(13),n(21);r.exports=c},126); +__d(function(t,e,a,n){"use strict";var r=e(13),o={createIdentityMatrix:function(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},createCopy:function(t){return[t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]]},createOrthographic:function(t,e,a,n,r,o){var i=2/(e-t),u=2/(n-a),s=-2/(o-r),c=-(e+t)/(e-t),m=-(n+a)/(n-a),v=-(o+r)/(o-r);return[i,0,0,0,0,u,0,0,0,0,s,0,c,m,v,1]},createFrustum:function(t,e,a,n,r,o){var i=1/(e-t),u=1/(n-a),s=1/(r-o),c=2*(r*i),m=2*(r*u),v=(e+t)*i,l=(n+a)*u,f=(o+r)*s,d=2*(o*r*s);return[c,0,0,0,0,m,0,0,v,l,f,-1,0,0,d,0]},createPerspective:function(t,e,a,n){var r=1/Math.tan(t/2),o=1/(a-n),i=(n+a)*o,u=2*(n*a*o);return[r/e,0,0,0,0,r,0,0,0,0,i,-1,0,0,u,0]},createTranslate2d:function(t,e){var a=o.createIdentityMatrix();return o.reuseTranslate2dCommand(a,t,e),a},reuseTranslate2dCommand:function(t,e,a){t[12]=e,t[13]=a},reuseTranslate3dCommand:function(t,e,a,n){t[12]=e,t[13]=a,t[14]=n},createScale:function(t){var e=o.createIdentityMatrix();return o.reuseScaleCommand(e,t),e},reuseScaleCommand:function(t,e){t[0]=e,t[5]=e},reuseScale3dCommand:function(t,e,a,n){t[0]=e,t[5]=a,t[10]=n},reusePerspectiveCommand:function(t,e){t[11]=-1/e},reuseScaleXCommand:function(t,e){t[0]=e},reuseScaleYCommand:function(t,e){t[5]=e},reuseScaleZCommand:function(t,e){t[10]=e},reuseRotateXCommand:function(t,e){t[5]=Math.cos(e),t[6]=Math.sin(e),t[9]=-Math.sin(e),t[10]=Math.cos(e)},reuseRotateYCommand:function(t,e){t[0]=Math.cos(e),t[2]=-Math.sin(e),t[8]=Math.sin(e),t[10]=Math.cos(e)},reuseRotateZCommand:function(t,e){t[0]=Math.cos(e),t[1]=Math.sin(e),t[4]=-Math.sin(e),t[5]=Math.cos(e)},createRotateZ:function(t){var e=o.createIdentityMatrix();return o.reuseRotateZCommand(e,t),e},reuseSkewXCommand:function(t,e){t[4]=Math.tan(e)},reuseSkewYCommand:function(t,e){t[1]=Math.tan(e)},multiplyInto:function(t,e,a){var n=e[0],r=e[1],o=e[2],i=e[3],u=e[4],s=e[5],c=e[6],m=e[7],v=e[8],l=e[9],f=e[10],d=e[11],h=e[12],M=e[13],C=e[14],p=e[15],T=a[0],x=a[1],y=a[2],b=a[3];t[0]=T*n+x*u+y*v+b*h,t[1]=T*r+x*s+y*l+b*M,t[2]=T*o+x*c+y*f+b*C,t[3]=T*i+x*m+y*d+b*p,T=a[4],x=a[5],y=a[6],b=a[7],t[4]=T*n+x*u+y*v+b*h,t[5]=T*r+x*s+y*l+b*M,t[6]=T*o+x*c+y*f+b*C,t[7]=T*i+x*m+y*d+b*p,T=a[8],x=a[9],y=a[10],b=a[11],t[8]=T*n+x*u+y*v+b*h,t[9]=T*r+x*s+y*l+b*M,t[10]=T*o+x*c+y*f+b*C,t[11]=T*i+x*m+y*d+b*p,T=a[12],x=a[13],y=a[14],b=a[15],t[12]=T*n+x*u+y*v+b*h,t[13]=T*r+x*s+y*l+b*M,t[14]=T*o+x*c+y*f+b*C,t[15]=T*i+x*m+y*d+b*p},determinant:function(t){var e=babelHelpers.slicedToArray(t,16),a=e[0],n=e[1],r=e[2],o=e[3],i=e[4],u=e[5],s=e[6],c=e[7],m=e[8],v=e[9],l=e[10],f=e[11],d=e[12],h=e[13],M=e[14],C=e[15];return o*s*v*d-r*c*v*d-o*u*l*d+n*c*l*d+r*u*f*d-n*s*f*d-o*s*m*h+r*c*m*h+o*i*l*h-a*c*l*h-r*i*f*h+a*s*f*h+o*u*m*M-n*c*m*M-o*i*v*M+a*c*v*M+n*i*f*M-a*u*f*M-r*u*m*C+n*s*m*C+r*i*v*C-a*s*v*C-n*i*l*C+a*u*l*C},inverse:function(t){var e=o.determinant(t);if(!e)return t;var a=babelHelpers.slicedToArray(t,16),n=a[0],r=a[1],i=a[2],u=a[3],s=a[4],c=a[5],m=a[6],v=a[7],l=a[8],f=a[9],d=a[10],h=a[11],M=a[12],C=a[13],p=a[14],T=a[15];return[(m*h*C-v*d*C+v*f*p-c*h*p-m*f*T+c*d*T)/e,(u*d*C-i*h*C-u*f*p+r*h*p+i*f*T-r*d*T)/e,(i*v*C-u*m*C+u*c*p-r*v*p-i*c*T+r*m*T)/e,(u*m*f-i*v*f-u*c*d+r*v*d+i*c*h-r*m*h)/e,(v*d*M-m*h*M-v*l*p+s*h*p+m*l*T-s*d*T)/e,(i*h*M-u*d*M+u*l*p-n*h*p-i*l*T+n*d*T)/e,(u*m*M-i*v*M-u*s*p+n*v*p+i*s*T-n*m*T)/e,(i*v*l-u*m*l+u*s*d-n*v*d-i*s*h+n*m*h)/e,(c*h*M-v*f*M+v*l*C-s*h*C-c*l*T+s*f*T)/e,(u*f*M-r*h*M-u*l*C+n*h*C+r*l*T-n*f*T)/e,(r*v*M-u*c*M+u*s*C-n*v*C-r*s*T+n*c*T)/e,(u*c*l-r*v*l-u*s*f+n*v*f+r*s*h-n*c*h)/e,(m*f*M-c*d*M-m*l*C+s*d*C+c*l*p-s*f*p)/e,(r*d*M-i*f*M+i*l*C-n*d*C-r*l*p+n*f*p)/e,(i*c*M-r*m*M-i*s*C+n*m*C+r*s*p-n*c*p)/e,(r*m*l-i*c*l+i*s*f-n*m*f-r*s*d+n*c*d)/e]},transpose:function(t){return[t[0],t[4],t[8],t[12],t[1],t[5],t[9],t[13],t[2],t[6],t[10],t[14],t[3],t[7],t[11],t[15]]},multiplyVectorByMatrix:function(t,e){var a=babelHelpers.slicedToArray(t,4),n=a[0],r=a[1],o=a[2],i=a[3];return[n*e[0]+r*e[4]+o*e[8]+i*e[12],n*e[1]+r*e[5]+o*e[9]+i*e[13],n*e[2]+r*e[6]+o*e[10]+i*e[14],n*e[3]+r*e[7]+o*e[11]+i*e[15]]},v3Length:function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])},v3Normalize:function(t,e){var a=1/(e||o.v3Length(t));return[t[0]*a,t[1]*a,t[2]*a]},v3Dot:function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},v3Combine:function(t,e,a,n){return[a*t[0]+n*e[0],a*t[1]+n*e[1],a*t[2]+n*e[2]]},v3Cross:function(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]},quaternionToDegreesXYZ:function(t,e,a){var n=babelHelpers.slicedToArray(t,4),r=n[0],i=n[1],u=n[2],s=n[3],c=s*s,m=r*r,v=i*i,l=u*u,f=r*i+u*s,d=c+m+v+l,h=180/Math.PI;return f>.49999*d?[0,2*Math.atan2(r,s)*h,90]:f<-.49999*d?[0,-2*Math.atan2(r,s)*h,-90]:[o.roundTo3Places(Math.atan2(2*r*s-2*i*u,1-2*m-2*l)*h),o.roundTo3Places(Math.atan2(2*i*s-2*r*u,1-2*v-2*l)*h),o.roundTo3Places(Math.asin(2*r*i+2*u*s)*h)]},roundTo3Places:function(t){var e=t.toString().split("e");return.001*Math.round(e[0]+"e"+(e[1]?+e[1]-3:3))},decomposeMatrix:function(t){r(16===t.length,"Matrix decomposition needs a list of 3d matrix values, received %s",t);var e=[],a=[],n=[],i=[],u=[];if(t[15]){for(var s=[],c=[],m=0;m<4;m++){s.push([]);for(var v=0;v<4;v++){var l=t[4*m+v]/t[15];s[m].push(l),c.push(3===v?0:l)}}if(c[15]=1,o.determinant(c)){if(0!==s[0][3]||0!==s[1][3]||0!==s[2][3])var f=[s[0][3],s[1][3],s[2][3],s[3][3]],d=o.inverse(c),h=o.transpose(d),e=o.multiplyVectorByMatrix(f,h);else e[0]=e[1]=e[2]=0,e[3]=1;for(var m=0;m<3;m++)u[m]=s[3][m];var M=[];for(m=0;m<3;m++)M[m]=[s[m][0],s[m][1],s[m][2]];n[0]=o.v3Length(M[0]),M[0]=o.v3Normalize(M[0],n[0]),i[0]=o.v3Dot(M[0],M[1]),M[1]=o.v3Combine(M[1],M[0],1,-i[0]),i[0]=o.v3Dot(M[0],M[1]),M[1]=o.v3Combine(M[1],M[0],1,-i[0]),n[1]=o.v3Length(M[1]),M[1]=o.v3Normalize(M[1],n[1]),i[0]/=n[1],i[1]=o.v3Dot(M[0],M[2]),M[2]=o.v3Combine(M[2],M[0],1,-i[1]),i[2]=o.v3Dot(M[1],M[2]),M[2]=o.v3Combine(M[2],M[1],1,-i[2]),n[2]=o.v3Length(M[2]),M[2]=o.v3Normalize(M[2],n[2]),i[1]/=n[2],i[2]/=n[2];var C=o.v3Cross(M[1],M[2]);if(o.v3Dot(M[0],C)<0)for(m=0;m<3;m++)n[m]*=-1,M[m][0]*=-1,M[m][1]*=-1,M[m][2]*=-1;a[0]=.5*Math.sqrt(Math.max(1+M[0][0]-M[1][1]-M[2][2],0)),a[1]=.5*Math.sqrt(Math.max(1-M[0][0]+M[1][1]-M[2][2],0)),a[2]=.5*Math.sqrt(Math.max(1-M[0][0]-M[1][1]+M[2][2],0)),a[3]=.5*Math.sqrt(Math.max(1+M[0][0]+M[1][1]+M[2][2],0)),M[2][1]>M[1][2]&&(a[0]=-a[0]),M[0][2]>M[2][0]&&(a[1]=-a[1]),M[1][0]>M[0][1]&&(a[2]=-a[2]);var p;return p=a[0]<.001&&a[0]>=0&&a[1]<.001&&a[1]>=0?[0,0,o.roundTo3Places(180*Math.atan2(M[0][1],M[0][0])/Math.PI)]:o.quaternionToDegreesXYZ(a,s,M),{rotationDegrees:p,perspective:e,quaternion:a,scale:n,skew:i,translation:u,rotate:p[2],rotateX:p[0],rotateY:p[1],scaleX:n[0],scaleY:n[1],translateX:u[0],translateY:u[1]}}}}};a.exports=o},127); +__d(function(t,i,h,d){"use strict";var e={width:void 0,height:void 0},n=function(t,i){return t=t||e,i=i||e,t!==i&&(t.width!==i.width||t.height!==i.height)};h.exports=n},128); +__d(function(e,i,s,t){"use strict";var a=i(115),c={};c.UIView={pointerEvents:!0,accessible:!0,accessibilityLabel:!0,accessibilityComponentType:!0,accessibilityLiveRegion:!0,accessibilityTraits:!0,importantForAccessibility:!0,nativeID:!0,testID:!0,renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,onLayout:!0,onAccessibilityTap:!0,onMagicTap:!0,collapsable:!0,needsOffscreenAlphaCompositing:!0,style:a},c.RCTView=babelHelpers.extends({},c.UIView,{removeClippedSubviews:!0}),s.exports=c},129); +__d(function(e,o,n,s){"use strict";var i=o(131),t=o(136),c=o(111),r=o(137),a=o(124),l=o(138),p=l.AccessibilityComponentTypes,d=l.AccessibilityTraits,u=r(a);n.exports=babelHelpers.extends({},t,{accessible:c.bool,accessibilityLabel:c.node,accessibilityComponentType:c.oneOf(p),accessibilityLiveRegion:c.oneOf(["none","polite","assertive"]),importantForAccessibility:c.oneOf(["auto","yes","no","no-hide-descendants"]),accessibilityTraits:c.oneOfType([c.oneOf(d),c.arrayOf(c.oneOf(d))]),accessibilityViewIsModal:c.bool,onAccessibilityTap:c.func,onMagicTap:c.func,testID:c.string,nativeID:c.string,onResponderGrant:c.func,onResponderMove:c.func,onResponderReject:c.func,onResponderRelease:c.func,onResponderTerminate:c.func,onResponderTerminationRequest:c.func,onStartShouldSetResponder:c.func,onStartShouldSetResponderCapture:c.func,onMoveShouldSetResponder:c.func,onMoveShouldSetResponderCapture:c.func,hitSlop:i,onLayout:c.func,pointerEvents:c.oneOf(["box-none","none","box-only","auto"]),style:u,removeClippedSubviews:c.bool,renderToHardwareTextureAndroid:c.bool,shouldRasterizeIOS:c.bool,collapsable:c.bool,needsOffscreenAlphaCompositing:c.bool})},130); +__d(function(t,r,e,n){"use strict";var u=r(111),b=r(132),m=b({top:u.number,left:u.number,bottom:u.number,right:u.number});e.exports=m},131); +__d(function(n,e,t,i){"use strict";function r(n){function e(e,t,i,r,c){if(!t[i])return void(e&&o(!1,"Required object `"+i+"` was not specified in "+("`"+r+"`.")));var l=t[i],u=typeof l,d=c||"(unknown)";"object"!==u&&o(!1,"Invalid "+d+" `"+i+"` of type `"+u+"` "+("supplied to `"+r+"`, expected `object`."));for(var s=a(t[i],n),p=arguments.length,f=Array(p>5?p-5:0),v=5;v4?o-4:0),c=4;c4?e-4:0),v=4;v=t)return e[r];return e[e.length-1]||1}}]),e}();r.exports=l},154); +__d(function(r,e,t,n){"use strict";function a(r){switch(r){case.75:return"ldpi";case 1:return"mdpi";case 1.5:return"hdpi";case 2:return"xhdpi";case 3:return"xxhdpi";case 4:return"xxxhdpi"}throw new Error("no such scale")}function s(r,e){var t=a(e);if(!t)throw new Error("Don't know which android drawable suffix to use for asset: "+JSON.stringify(r));var n="drawable-"+t;return n}function i(r){var e=o(r);return(e+"/"+r.name).toLowerCase().replace(/\//g,"_").replace(/([^a-z0-9_])/g,"").replace(/^assets_/,"")}function o(r){var e=r.httpServerLocation;return"/"===e[0]&&(e=e.substr(1)),e}t.exports={getAndroidAssetSuffix:a,getAndroidDrawableFolderName:s,getAndroidResourceIdentifier:i,getBasePath:o}},155); +__d(function(e,o,r,a){"use strict";function n(e,o,r){if(o){var a=e.displayName||e.name||"unknown",n=e.__propTypesSecretDontUseThesePlease||e.propTypes;if(!n)throw new Error("`"+a+"` has no propTypes defined`");var p=o.NativeProps;for(var s in p)if(!(n[s]||t[s]||r&&r[s])){var i;throw i=n.hasOwnProperty(s)?"`"+a+"` has incorrectly defined propType for native prop `"+o.uiViewClassName+"."+s+"` of native type `"+p[s]:"`"+a+"` has no propType for native prop `"+o.uiViewClassName+"."+s+"` of native type `"+p[s]+"`",i+="\nIf you haven't changed this prop yourself, this usually means that your versions of the native code and JavaScript code are out of sync. Updating both should make this error go away.",new Error(i)}}}var t=o(115);r.exports=n},156); +__d(function(e,t,n,r){"use strict";function i(e,t){if(null==e||null==t)return!0;if(e.length!==t.length)return!0;for(var n=0;n must be a child of a "),A.createElement(X,{opacity:u(e),transform:a(e)},this.props.children)}}]),t}(A.Component);$.contextTypes={isInSurface:P.bool.isRequired};var B=function(e){function t(){return babelHelpers.classCallCheck(this,t),babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"render",value:function(){var e=this.props,t=s(e.x,0),n=s(e.y,0),r=s(e.width,0),i=s(e.height,0),l=[t,n,r,i],o=I(e);return delete o.x,delete o.y,A.createElement(X,{clipping:l,opacity:u(e),transform:a(o)},this.props.children)}}]),t}(A.Component),K=0,Q=1,Z=2,ee=3,te=function(e){function t(){return babelHelpers.classCallCheck(this,t),babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"render",value:function(){var e=this.props,t=e.d||o(e.children),n=(t instanceof T?t:new T(t)).toJSON();return A.createElement(Y,{fill:y(e.fill,e),opacity:u(e),stroke:g(e.stroke),strokeCap:m(e.strokeCap),strokeDash:e.strokeDash||null,strokeJoin:v(e.strokeJoin),strokeWidth:s(e.strokeWidth,1),transform:a(e),d:n})}}]),t}(A.Component),ne={},re=/^[\s"']*/,ie=/[\s"']*$/,le=/\n/g,oe=function(e){function t(){return babelHelpers.classCallCheck(this,t),babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"render",value:function(){var e=this.props,t=e.path,n=t?(t instanceof T?t:new T(t)).toJSON():null,r=S(e.font,o(e.children));return A.createElement(q,{fill:y(e.fill,e),opacity:u(e),stroke:g(e.stroke),strokeCap:m(e.strokeCap),strokeDash:e.strokeDash||null,strokeJoin:v(e.strokeJoin),strokeWidth:s(e.strokeWidth,1),transform:a(e),alignment:w(e.alignment),frame:r,path:n})}}]),t}(A.Component),se={LinearGradient:H,RadialGradient:x,Pattern:O,Transform:W,Path:T,Surface:L,Group:$,ClippingRectangle:B,Shape:te,Text:oe};n.exports=se},157); +__d(function(t,r,e,n){var a={maroon:"#800000",red:"#ff0000",orange:"#ffA500",yellow:"#ffff00",olive:"#808000",purple:"#800080",fuchsia:"#ff00ff",white:"#ffffff",lime:"#00ff00",green:"#008000",navy:"#000080",blue:"#0000ff",aqua:"#00ffff",teal:"#008080",black:"#000000",silver:"#c0c0c0",gray:"#808080"},h=function(t,r){for(var e=[],n=0,a=t.length;nY?(p-=v,c-=X):l>0&&0!=Y&&(p-=l/Y*v,c-=l/Y*X),a=p*p+c*c,p=s-t,c=h-i,l=p*v+c*X,l>Y?(p-=v,c-=X):l>0&&0!=Y&&(p-=l/Y*v,c-=l/Y*X),u=p*p+c*c,a<.01&&u<.01)return void this.onLine(t,i,o,r);if(isNaN(a)||isNaN(u))throw new Error("Bad input");var f=.5*(n+s),M=.5*(e+h),b=.5*(n+t),T=.5*(e+i),k=.5*(b+f),w=.5*(T+M),_=.5*(o+s),D=.5*(r+h),z=.5*(_+f),C=.5*(D+M),m=.5*(k+z),B=.5*(w+C);this.onBezierCurve(t,i,b,T,k,w,m,B),this.onBezierCurve(m,B,z,C,_,D,o,r)},onArc:function(t,i,n,e,s,h,o,r,a,u,p,c){var l=c?c*Math.PI/180:0,v=Math.cos(l),X=Math.sin(l),Y=v*o,f=-X*r,M=X*o,b=v*r,T=u-a;T<0&&!p?T+=2*Math.PI:T>0&&p&&(T-=2*Math.PI);for(var k=Math.ceil(Math.abs(T/(Math.PI/2))),w=T/k,_=1.3333333333333333*Math.tan(w/4),D=Math.cos(a),z=Math.sin(a),C=0;Ci.yy/i.xy?-1:1;return(i.xx<0?i.xy>=0:i.xy<0)&&(n=-n),this.rotate(t-180*Math.atan2(n*i.yx,n*i.xx)/Math.PI,x,y)},scaleTo:function(t,x){var y=this,i=Math.sqrt(y.xx*y.xx+y.yx*y.yx);return y.xx/=i,y.yx/=i,i=Math.sqrt(y.yy*y.yy+y.xy*y.xy),y.yy/=i,y.xy/=i,this.scale(t,x)},resizeTo:function(t,x){var y=this.width,i=this.height;return y&&i?this.scaleTo(t/y,x/i):this},inversePoint:function(t,x){var y=this.xx,i=this.yx,n=this.xy,r=this.yy,s=this.x,h=this.y,o=i*n-y*r;return 0==o?null:{x:(r*(s-t)+n*(x-h))/o,y:(y*(h-x)+i*(t-s))/o}},point:function(t,x){var y=this;return{x:y.xx*t+y.xy*x+y.x,y:y.yx*t+y.yy*x+y.y}}})},162); +__d(function(e,t,s,r){"use strict";var i=t(36),o=(t(23),t(114)),l=t(111),a=t(143),n=t(164),b=t(172),c=(t(176),t(110)),u=t(13),d=function(e){function t(){return babelHelpers.classCallCheck(this,t),babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"render",value:function(){var e=this.props,t=e.accessibilityLabel,s=e.color,r=e.onPress,i=e.title,l=e.disabled,a=e.testID,d=[p.button],h=[p.text];s&&d.push({backgroundColor:s});var y=["button"];l&&(d.push(p.buttonDisabled),h.push(p.textDisabled),y.push("disabled")),u("string"==typeof i,"The title prop of a Button must be a string");var f=i.toUpperCase(),g=b;return o.createElement(g,{accessibilityComponentType:"button",accessibilityLabel:t,accessibilityTraits:y,testID:a,disabled:l,onPress:r},o.createElement(c,{style:d},o.createElement(n,{style:h,disabled:l},f)))}}]),t}(o.Component);d.propTypes={title:l.string.isRequired,accessibilityLabel:l.string,color:i,disabled:l.bool,onPress:l.func.isRequired,testID:l.string};var p=a.create({button:{elevation:4,backgroundColor:"#2196F3",borderRadius:2},text:{color:"white",textAlign:"center",padding:8,fontWeight:"500"},buttonDisabled:{elevation:0,backgroundColor:"#dfdfdf"},textDisabled:{color:"#a1a1a1"}});s.exports=d},163); +__d(function(e,t,s,n){"use strict";var o=t(36),i=t(131),r=t(38),l=(t(23),t(114)),a=t(111),p=t(129),h=t(137),d=t(123),u=t(165),c=t(139),b=t(148),g=t(171),f=t(125),R=h(d),H={validAttributes:g(p.UIView,{isHighlighted:!0,numberOfLines:!0,ellipsizeMode:!0,allowFontScaling:!0,disabled:!0,selectable:!0,selectionColor:!0,adjustsFontSizeToFit:!0,minimumFontScale:!0,textBreakStrategy:!0}),uiViewClassName:"RCTText"},P=c({displayName:"Text",propTypes:{ellipsizeMode:a.oneOf(["head","middle","tail","clip"]),numberOfLines:a.number,textBreakStrategy:a.oneOf(["simple","highQuality","balanced"]),onLayout:a.func,onPress:a.func,onLongPress:a.func,pressRetentionOffset:i,selectable:a.bool,selectionColor:o,suppressHighlighting:a.bool,style:R,testID:a.string,nativeID:a.string,allowFontScaling:a.bool,accessible:a.bool,adjustsFontSizeToFit:a.bool,minimumFontScale:a.number,disabled:a.bool},getDefaultProps:function(){return{accessible:!0,allowFontScaling:!0,ellipsizeMode:"tail",disabled:!1}},getInitialState:function(){return g(u.Mixin.touchableGetInitialState(),{isHighlighted:!1})},mixins:[r],viewConfig:H,getChildContext:function(){return{isInAParentText:!0}},childContextTypes:{isInAParentText:a.bool},contextTypes:{isInAParentText:a.bool},_handlers:null,_hasPressHandler:function(){return!!this.props.onPress||!!this.props.onLongPress},touchableHandleActivePressIn:null,touchableHandleActivePressOut:null,touchableHandlePress:null,touchableHandleLongPress:null,touchableGetPressRectOffset:null,render:function(){var e=this,t=this.props;return(this.props.onStartShouldSetResponder||this._hasPressHandler())&&(this._handlers||(this._handlers={onStartShouldSetResponder:function(){var t=e.props.onStartShouldSetResponder&&e.props.onStartShouldSetResponder(),s=t||e._hasPressHandler();if(s&&!e.touchableHandleActivePressIn){for(var n in u.Mixin)"function"==typeof u.Mixin[n]&&(e[n]=u.Mixin[n].bind(e));e.touchableHandleActivePressIn=function(){!e.props.suppressHighlighting&&e._hasPressHandler()&&e.setState({isHighlighted:!0})},e.touchableHandleActivePressOut=function(){!e.props.suppressHighlighting&&e._hasPressHandler()&&e.setState({isHighlighted:!1})},e.touchableHandlePress=function(t){e.props.onPress&&e.props.onPress(t)},e.touchableHandleLongPress=function(t){e.props.onLongPress&&e.props.onLongPress(t)},e.touchableGetPressRectOffset=function(){return this.props.pressRetentionOffset||m}}return s},onResponderGrant:function(e,t){this.touchableHandleResponderGrant(e,t),this.props.onResponderGrant&&this.props.onResponderGrant.apply(this,arguments)}.bind(this),onResponderMove:function(e){this.touchableHandleResponderMove(e),this.props.onResponderMove&&this.props.onResponderMove.apply(this,arguments)}.bind(this),onResponderRelease:function(e){this.touchableHandleResponderRelease(e),this.props.onResponderRelease&&this.props.onResponderRelease.apply(this,arguments)}.bind(this),onResponderTerminate:function(e){this.touchableHandleResponderTerminate(e),this.props.onResponderTerminate&&this.props.onResponderTerminate.apply(this,arguments)}.bind(this),onResponderTerminationRequest:function(){var e=this.touchableHandleResponderTerminationRequest();return e&&this.props.onResponderTerminationRequest&&(e=this.props.onResponderTerminationRequest.apply(this,arguments)),e}.bind(this)}),t=babelHelpers.extends({},this.props,this._handlers,{isHighlighted:this.state.isHighlighted})),null!=t.selectionColor&&(t=babelHelpers.extends({},t,{selectionColor:f(t.selectionColor)})),u.TOUCH_TARGET_DEBUG&&t.onPress&&(t=babelHelpers.extends({},t,{style:[this.props.style,{color:"magenta"}]})),this.context.isInAParentText?l.createElement(T,t):l.createElement(S,t)}}),m={top:20,left:20,right:20,bottom:30},S=b(H),T=S;T=b({validAttributes:g(p.UIView,{isHighlighted:!0}),uiViewClassName:"RCTVirtualText"}),s.exports=P},164); +__d(function(E,t,e,R){"use strict";var i=t(166),_=t(23),s=t(168),S=(t(114),t(39)),o=t(169),n=t(170),a=t(58),l=(t(110),t(118)),N=(t(37),l({NOT_RESPONDER:null,RESPONDER_INACTIVE_PRESS_IN:null,RESPONDER_INACTIVE_PRESS_OUT:null,RESPONDER_ACTIVE_PRESS_IN:null,RESPONDER_ACTIVE_PRESS_OUT:null,RESPONDER_ACTIVE_LONG_PRESS_IN:null,RESPONDER_ACTIVE_LONG_PRESS_OUT:null,ERROR:null})),T={RESPONDER_ACTIVE_PRESS_OUT:!0,RESPONDER_ACTIVE_PRESS_IN:!0},h={RESPONDER_INACTIVE_PRESS_IN:!0,RESPONDER_ACTIVE_PRESS_IN:!0,RESPONDER_ACTIVE_LONG_PRESS_IN:!0},P={RESPONDER_ACTIVE_LONG_PRESS_IN:!0},O=l({DELAY:null,RESPONDER_GRANT:null,RESPONDER_RELEASE:null,RESPONDER_TERMINATED:null,ENTER_PRESS_RECT:null,LEAVE_PRESS_RECT:null,LONG_PRESS_DETECTED:null}),u={NOT_RESPONDER:{DELAY:N.ERROR,RESPONDER_GRANT:N.RESPONDER_INACTIVE_PRESS_IN,RESPONDER_RELEASE:N.ERROR,RESPONDER_TERMINATED:N.ERROR,ENTER_PRESS_RECT:N.ERROR,LEAVE_PRESS_RECT:N.ERROR,LONG_PRESS_DETECTED:N.ERROR},RESPONDER_INACTIVE_PRESS_IN:{DELAY:N.RESPONDER_ACTIVE_PRESS_IN,RESPONDER_GRANT:N.ERROR,RESPONDER_RELEASE:N.NOT_RESPONDER,RESPONDER_TERMINATED:N.NOT_RESPONDER,ENTER_PRESS_RECT:N.RESPONDER_INACTIVE_PRESS_IN,LEAVE_PRESS_RECT:N.RESPONDER_INACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:N.ERROR},RESPONDER_INACTIVE_PRESS_OUT:{DELAY:N.RESPONDER_ACTIVE_PRESS_OUT,RESPONDER_GRANT:N.ERROR,RESPONDER_RELEASE:N.NOT_RESPONDER,RESPONDER_TERMINATED:N.NOT_RESPONDER,ENTER_PRESS_RECT:N.RESPONDER_INACTIVE_PRESS_IN,LEAVE_PRESS_RECT:N.RESPONDER_INACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:N.ERROR},RESPONDER_ACTIVE_PRESS_IN:{DELAY:N.ERROR,RESPONDER_GRANT:N.ERROR,RESPONDER_RELEASE:N.NOT_RESPONDER,RESPONDER_TERMINATED:N.NOT_RESPONDER,ENTER_PRESS_RECT:N.RESPONDER_ACTIVE_PRESS_IN,LEAVE_PRESS_RECT:N.RESPONDER_ACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:N.RESPONDER_ACTIVE_LONG_PRESS_IN},RESPONDER_ACTIVE_PRESS_OUT:{DELAY:N.ERROR,RESPONDER_GRANT:N.ERROR,RESPONDER_RELEASE:N.NOT_RESPONDER,RESPONDER_TERMINATED:N.NOT_RESPONDER,ENTER_PRESS_RECT:N.RESPONDER_ACTIVE_PRESS_IN,LEAVE_PRESS_RECT:N.RESPONDER_ACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:N.ERROR},RESPONDER_ACTIVE_LONG_PRESS_IN:{DELAY:N.ERROR,RESPONDER_GRANT:N.ERROR,RESPONDER_RELEASE:N.NOT_RESPONDER,RESPONDER_TERMINATED:N.NOT_RESPONDER,ENTER_PRESS_RECT:N.RESPONDER_ACTIVE_LONG_PRESS_IN,LEAVE_PRESS_RECT:N.RESPONDER_ACTIVE_LONG_PRESS_OUT,LONG_PRESS_DETECTED:N.RESPONDER_ACTIVE_LONG_PRESS_IN},RESPONDER_ACTIVE_LONG_PRESS_OUT:{DELAY:N.ERROR,RESPONDER_GRANT:N.ERROR,RESPONDER_RELEASE:N.NOT_RESPONDER,RESPONDER_TERMINATED:N.NOT_RESPONDER,ENTER_PRESS_RECT:N.RESPONDER_ACTIVE_LONG_PRESS_IN,LEAVE_PRESS_RECT:N.RESPONDER_ACTIVE_LONG_PRESS_OUT,LONG_PRESS_DETECTED:N.ERROR},error:{DELAY:N.NOT_RESPONDER,RESPONDER_GRANT:N.RESPONDER_INACTIVE_PRESS_IN,RESPONDER_RELEASE:N.NOT_RESPONDER,RESPONDER_TERMINATED:N.NOT_RESPONDER,ENTER_PRESS_RECT:N.NOT_RESPONDER,LEAVE_PRESS_RECT:N.NOT_RESPONDER,LONG_PRESS_DETECTED:N.NOT_RESPONDER}},r=130,D=20,c=500,A=c-r,I=10,d={componentDidMount:function(){_.isTVOS&&(this._tvEventHandler=new o,this._tvEventHandler.enable(this,function(E,t){var e=S.findNodeHandle(E);t.dispatchConfig={},e===t.tag&&("focus"===t.eventType?E.touchableHandleActivePressIn&&E.touchableHandleActivePressIn(t):"blur"===t.eventType?E.touchableHandleActivePressOut&&E.touchableHandleActivePressOut(t):"select"===t.eventType&&E.touchableHandlePress&&E.touchableHandlePress(t))}))},componentWillUnmount:function(){this._tvEventHandler&&(this._tvEventHandler.disable(),delete this._tvEventHandler),this.touchableDelayTimeout&&clearTimeout(this.touchableDelayTimeout),this.longPressDelayTimeout&&clearTimeout(this.longPressDelayTimeout),this.pressOutDelayTimeout&&clearTimeout(this.pressOutDelayTimeout)},touchableGetInitialState:function(){return{touchable:{touchState:void 0,responderID:null}}},touchableHandleResponderTerminationRequest:function(){return!this.props.rejectResponderTermination},touchableHandleStartShouldSetResponder:function(){return!this.props.disabled},touchableLongPressCancelsPress:function(){return!0},touchableHandleResponderGrant:function(E){var t=E.currentTarget;E.persist(),this.pressOutDelayTimeout&&clearTimeout(this.pressOutDelayTimeout),this.pressOutDelayTimeout=null,this.state.touchable.touchState=N.NOT_RESPONDER,this.state.touchable.responderID=t,this._receiveSignal(O.RESPONDER_GRANT,E);var e=void 0!==this.touchableGetHighlightDelayMS?Math.max(this.touchableGetHighlightDelayMS(),0):r;e=isNaN(e)?r:e,0!==e?this.touchableDelayTimeout=setTimeout(this._handleDelay.bind(this,E),e):this._handleDelay(E);var R=void 0!==this.touchableGetLongPressDelayMS?Math.max(this.touchableGetLongPressDelayMS(),10):A;R=isNaN(R)?A:R,this.longPressDelayTimeout=setTimeout(this._handleLongDelay.bind(this,E),R+e)},touchableHandleResponderRelease:function(E){this._receiveSignal(O.RESPONDER_RELEASE,E)},touchableHandleResponderTerminate:function(E){this._receiveSignal(O.RESPONDER_TERMINATED,E)},touchableHandleResponderMove:function(E){if(this.state.touchable.touchState!==N.RESPONDER_INACTIVE_PRESS_IN&&this.state.touchable.positionOnActivate){var t=this.state.touchable.positionOnActivate,e=this.state.touchable.dimensionsOnActivate,R=this.touchableGetPressRectOffset?this.touchableGetPressRectOffset():{left:D,right:D,top:D,bottom:D},i=R.left,_=R.top,s=R.right,S=R.bottom,o=this.touchableGetHitSlop?this.touchableGetHitSlop():null;o&&(i+=o.left,_+=o.top,s+=o.right,S+=o.bottom);var a=n.extractSingleTouch(E.nativeEvent),l=a&&a.pageX,T=a&&a.pageY;if(this.pressInLocation){var h=this._getDistanceBetweenPoints(l,T,this.pressInLocation.pageX,this.pressInLocation.pageY);h>I&&this._cancelLongPressDelayTimeout()}var P=l>t.left-i&&T>t.top-_&&l0,r=n&&n.length>0;return!c&&r?n[0]:c?e[0]:t}};n.exports=r},170); +__d(function(r,n,t,i){"use strict";var o=function(r,n){var t={};for(var i in r)t[i]=r[i];for(var o in n)t[o]=n[o];return t};t.exports=o},171); +__d(function(e,t,o,s){"use strict";var r=t(23),n=t(114),i=t(111),a=t(39),p=t(165),l=t(173),d=t(58),c=t(139),u=t(175),h=t(125),b=i.shape({type:i.oneOf(["RippleAndroid"]),color:i.number,borderless:i.bool}),f=i.shape({type:i.oneOf(["ThemeAttrAndroid"]),attribute:i.string.isRequired}),y=i.oneOfType([b,f]),P={top:20,left:20,right:20,bottom:30},g=c({displayName:"TouchableNativeFeedback",propTypes:babelHelpers.extends({},l.propTypes,{background:y,useForeground:i.bool}),statics:{SelectableBackground:function(){return{type:"ThemeAttrAndroid",attribute:"selectableItemBackground"}},SelectableBackgroundBorderless:function(){return{type:"ThemeAttrAndroid",attribute:"selectableItemBackgroundBorderless"}},Ripple:function(e,t){return{type:"RippleAndroid",color:h(e),borderless:t}},canUseNativeForeground:function(){return r.Version>=23}},mixins:[p.Mixin],getDefaultProps:function(){return{background:this.SelectableBackground()}},getInitialState:function(){return this.touchableGetInitialState()},componentDidMount:function(){u(this.props)},componentWillReceiveProps:function(e){u(e)},touchableHandleActivePressIn:function(e){this.props.onPressIn&&this.props.onPressIn(e),this._dispatchPressedStateChange(!0),this._dispatchHotspotUpdate(this.pressInLocation.locationX,this.pressInLocation.locationY)},touchableHandleActivePressOut:function(e){this.props.onPressOut&&this.props.onPressOut(e),this._dispatchPressedStateChange(!1)},touchableHandlePress:function(e){this.props.onPress&&this.props.onPress(e)},touchableHandleLongPress:function(e){this.props.onLongPress&&this.props.onLongPress(e)},touchableGetPressRectOffset:function(){return this.props.pressRetentionOffset||P},touchableGetHitSlop:function(){return this.props.hitSlop},touchableGetHighlightDelayMS:function(){return this.props.delayPressIn},touchableGetLongPressDelayMS:function(){return this.props.delayLongPress},touchableGetPressOutDelayMS:function(){return this.props.delayPressOut},_handleResponderMove:function(e){this.touchableHandleResponderMove(e),this._dispatchHotspotUpdate(e.nativeEvent.locationX,e.nativeEvent.locationY)},_dispatchHotspotUpdate:function(e,t){d.dispatchViewManagerCommand(a.findNodeHandle(this),d.RCTView.Commands.hotspotUpdate,[e||0,t||0])},_dispatchPressedStateChange:function(e){d.dispatchViewManagerCommand(a.findNodeHandle(this),d.RCTView.Commands.setPressed,[e])},render:function(){var e,t=n.Children.only(this.props.children),o=t.props.children;p.TOUCH_TARGET_DEBUG&&"View"===t.type.displayName&&(Array.isArray(o)||(o=[o]),o.push(p.renderDebugView({color:"brown",hitSlop:this.props.hitSlop}))),this.props.useForeground&&!g.canUseNativeForeground()&&console.warn("Requested foreground ripple, but it is not available on this version of Android. Consider calling TouchableNativeFeedback.canUseNativeForeground() and using a different Touchable if the result is false.");var s=this.props.useForeground&&g.canUseNativeForeground()?"nativeForegroundAndroid":"nativeBackgroundAndroid",r=babelHelpers.extends({},t.props,(e={},babelHelpers.defineProperty(e,s,this.props.background),babelHelpers.defineProperty(e,"accessible",this.props.accessible!==!1),babelHelpers.defineProperty(e,"accessibilityLabel",this.props.accessibilityLabel),babelHelpers.defineProperty(e,"accessibilityComponentType",this.props.accessibilityComponentType),babelHelpers.defineProperty(e,"accessibilityTraits",this.props.accessibilityTraits),babelHelpers.defineProperty(e,"children",o),babelHelpers.defineProperty(e,"testID",this.props.testID),babelHelpers.defineProperty(e,"onLayout",this.props.onLayout),babelHelpers.defineProperty(e,"hitSlop",this.props.hitSlop),babelHelpers.defineProperty(e,"onStartShouldSetResponder",this.touchableHandleStartShouldSetResponder),babelHelpers.defineProperty(e,"onResponderTerminationRequest",this.touchableHandleResponderTerminationRequest),babelHelpers.defineProperty(e,"onResponderGrant",this.touchableHandleResponderGrant),babelHelpers.defineProperty(e,"onResponderMove",this._handleResponderMove),babelHelpers.defineProperty(e,"onResponderRelease",this.touchableHandleResponderRelease),babelHelpers.defineProperty(e,"onResponderTerminate",this.touchableHandleResponderTerminate),e));return n.cloneElement(t,r)}});o.exports=g},172); +__d(function(e,s,t,o){"use strict";var n=s(131),i=s(114),r=s(111),p=s(174),a=s(165),l=s(139),c=s(175),h=s(27),u=s(138),d=u.AccessibilityComponentTypes,y=u.AccessibilityTraits,b={top:20,left:20,right:20,bottom:30},f=l({displayName:"TouchableWithoutFeedback",mixins:[p,a.Mixin],propTypes:{accessible:r.bool,accessibilityComponentType:r.oneOf(d),accessibilityTraits:r.oneOfType([r.oneOf(y),r.arrayOf(r.oneOf(y))]),disabled:r.bool,onPress:r.func,onPressIn:r.func,onPressOut:r.func,onLayout:r.func,onLongPress:r.func,delayPressIn:r.number,delayPressOut:r.number,delayLongPress:r.number,pressRetentionOffset:n,hitSlop:n},getInitialState:function(){return this.touchableGetInitialState()},componentDidMount:function(){c(this.props)},componentWillReceiveProps:function(e){c(e)},touchableHandlePress:function(e){this.props.onPress&&this.props.onPress(e)},touchableHandleActivePressIn:function(e){this.props.onPressIn&&this.props.onPressIn(e)},touchableHandleActivePressOut:function(e){this.props.onPressOut&&this.props.onPressOut(e)},touchableHandleLongPress:function(e){this.props.onLongPress&&this.props.onLongPress(e)},touchableGetPressRectOffset:function(){return this.props.pressRetentionOffset||b},touchableGetHitSlop:function(){return this.props.hitSlop},touchableGetHighlightDelayMS:function(){return this.props.delayPressIn||0},touchableGetLongPressDelayMS:function(){return 0===this.props.delayLongPress?0:this.props.delayLongPress||500},touchableGetPressOutDelayMS:function(){return this.props.delayPressOut||0},render:function(){var e=i.Children.only(this.props.children),s=e.props.children;h(!e.type||"Text"!==e.type.displayName,"TouchableWithoutFeedback does not work well with Text children. Wrap children in a View instead. See "+(e._owner&&e._owner.getName&&e._owner.getName()||"")),a.TOUCH_TARGET_DEBUG&&e.type&&"View"===e.type.displayName&&(s=i.Children.toArray(s),s.push(a.renderDebugView({color:"red",hitSlop:this.props.hitSlop})));var t=a.TOUCH_TARGET_DEBUG&&e.type&&"Text"===e.type.displayName?[e.props.style,{color:"red"}]:e.props.style;return i.cloneElement(e,{accessible:this.props.accessible!==!1,accessibilityLabel:this.props.accessibilityLabel,accessibilityComponentType:this.props.accessibilityComponentType,accessibilityTraits:this.props.accessibilityTraits,nativeID:this.props.nativeID,testID:this.props.testID,onLayout:this.props.onLayout,hitSlop:this.props.hitSlop,onStartShouldSetResponder:this.touchableHandleStartShouldSetResponder,onResponderTerminationRequest:this.touchableHandleResponderTerminationRequest,onResponderGrant:this.touchableHandleResponderGrant,onResponderMove:this.touchableHandleResponderMove,onResponderRelease:this.touchableHandleResponderRelease,onResponderTerminate:this.touchableHandleResponderTerminate,style:t,children:s})}});t.exports=f},173); +__d(function(i,t,e,n){"use strict";var a="undefined"==typeof window?i:window,r=function(i,t,e){return function(n,a){var r=i(function(){t.call(this,r),n.apply(this,arguments)}.bind(this),a);return this[e]?this[e].push(r):this[e]=[r],r}},s=function(i,t){return function(e){if(this[t]){var n=this[t].indexOf(e);n!==-1&&this[t].splice(n,1)}i(e)}},c="TimerMixin_timeouts",m=s(a.clearTimeout,c),o=r(a.setTimeout,m,c),l="TimerMixin_intervals",u=s(a.clearInterval,l),h=r(a.setInterval,function(){},l),f="TimerMixin_immediates",d=s(a.clearImmediate,f),I=r(a.setImmediate,d,f),v="TimerMixin_rafs",T=s(a.cancelAnimationFrame,v),p=r(a.requestAnimationFrame,T,v),x={componentWillUnmount:function(){this[c]&&this[c].forEach(function(i){a.clearTimeout(i)}),this[c]=null,this[l]&&this[l].forEach(function(i){a.clearInterval(i)}),this[l]=null,this[f]&&this[f].forEach(function(i){a.clearImmediate(i)}),this[f]=null,this[v]&&this[v].forEach(function(i){a.cancelAnimationFrame(i)}),this[v]=null},setTimeout:o,clearTimeout:m,setInterval:h,clearInterval:u,setImmediate:I,clearImmediate:d,requestAnimationFrame:p,cancelAnimationFrame:T};e.exports=x},174); +__d(function(e,n,s,t){"use strict";var a=n(13),o=function(e){a(!(e.delayPressIn<0||e.delayPressOut<0||e.delayLongPress<0),"Touchable components cannot have negative delay properties")};s.exports=o},175); +__d(function(t,e,s,i){"use strict";var o=e(177),n=e(202),a=e(38),r=e(114),p=e(111),c=e(174),l=e(165),h=e(173),u=e(139),y=e(175),d=e(55),b={top:20,left:20,right:20,bottom:30},f=u({displayName:"TouchableOpacity",mixins:[c,l.Mixin,a],propTypes:babelHelpers.extends({},h.propTypes,{activeOpacity:p.number,tvParallaxProperties:p.object}),getDefaultProps:function(){return{activeOpacity:.2}},getInitialState:function(){return babelHelpers.extends({},this.touchableGetInitialState(),{anim:new o.Value(this._getChildStyleOpacityWithDefault())})},componentDidMount:function(){y(this.props)},componentWillReceiveProps:function(t){y(t)},setOpacityTo:function(t,e){o.timing(this.state.anim,{toValue:t,duration:e,easing:n.inOut(n.quad),useNativeDriver:!0}).start()},touchableHandleActivePressIn:function(t){"onResponderGrant"===t.dispatchConfig.registrationName?this._opacityActive(0):this._opacityActive(150),this.props.onPressIn&&this.props.onPressIn(t)},touchableHandleActivePressOut:function(t){this._opacityInactive(250),this.props.onPressOut&&this.props.onPressOut(t)},touchableHandlePress:function(t){this.props.onPress&&this.props.onPress(t)},touchableHandleLongPress:function(t){this.props.onLongPress&&this.props.onLongPress(t)},touchableGetPressRectOffset:function(){return this.props.pressRetentionOffset||b},touchableGetHitSlop:function(){return this.props.hitSlop},touchableGetHighlightDelayMS:function(){return this.props.delayPressIn||0},touchableGetLongPressDelayMS:function(){return 0===this.props.delayLongPress?0:this.props.delayLongPress||500},touchableGetPressOutDelayMS:function(){return this.props.delayPressOut},_opacityActive:function(t){this.setOpacityTo(this.props.activeOpacity,t)},_opacityInactive:function(t){this.setOpacityTo(this._getChildStyleOpacityWithDefault(),t)},_getChildStyleOpacityWithDefault:function(){var t=d(this.props.style)||{};return void 0==t.opacity?1:t.opacity},render:function(){return r.createElement(o.View,{accessible:this.props.accessible!==!1,accessibilityLabel:this.props.accessibilityLabel,accessibilityComponentType:this.props.accessibilityComponentType,accessibilityTraits:this.props.accessibilityTraits,style:[this.props.style,{opacity:this.state.anim}],nativeID:this.props.nativeID,testID:this.props.testID,onLayout:this.props.onLayout,isTVSelectable:!0,tvParallaxProperties:this.props.tvParallaxProperties,hitSlop:this.props.hitSlop,onStartShouldSetResponder:this.touchableHandleStartShouldSetResponder,onResponderTerminationRequest:this.touchableHandleResponderTerminationRequest,onResponderGrant:this.touchableHandleResponderGrant,onResponderMove:this.touchableHandleResponderMove,onResponderRelease:this.touchableHandleResponderRelease,onResponderTerminate:this.touchableHandleResponderTerminate},this.props.children,l.renderDebugView({color:"cyan",hitSlop:this.props.hitSlop}))}});s.exports=f},176); +__d(function(e,t,n,o){"use strict";var a=t(178),r=t(205),c=t(164),i=t(110),m=void 0,d={View:a.createAnimatedComponent(i),Text:a.createAnimatedComponent(c),Image:a.createAnimatedComponent(r),get ScrollView(){return m||(m=a.createAnimatedComponent(t(207))),m}};babelHelpers.extends(d,a),n.exports=d},177); +__d(function(n,t,e,i){"use strict";function r(n,t){return n?n instanceof u?(n.__addListener(t),n):function(){"function"==typeof n&&n.apply(void 0,arguments),t.apply(void 0,arguments)}:t}function o(n,t){n&&n instanceof u&&n.__removeListener(t)}var a=t(179),u=a.AnimatedEvent,s=a.attachNativeEvent,c=t(187),f=t(188),v=t(189),p=t(181),l=t(190),d=t(191),g=t(182),h=t(192),m=t(195),_=t(180),N=t(196),w=t(197),y=t(199),E=t(201),L=t(204),A=function(n,t){return new c(n,t)},D=function(n,t){return new v(n,t)},b=function(n,t){return new d(n,t)},x=function(n,t){return new l(n,t)},U=function(n,t,e){return new f(n,t,e)},k=function(n,t){return n&&t.onComplete?function(){t.onComplete&&t.onComplete.apply(t,arguments),n&&n.apply(void 0,arguments)}:n||t.onComplete},V=function(n,t,e){if(n instanceof N){var i=babelHelpers.extends({},t),r=babelHelpers.extends({},t);for(var o in t){var a=t[o],u=a.x,s=a.y;void 0!==u&&void 0!==s&&(i[o]=u,r[o]=s)}var c=e(n.x,i),f=e(n.y,r);return q([c,f],{stopTogether:!1})}return null},C=function n(t,e){var i=function(n,t,e){e=k(e,t);var i=n,r=t;i.stopTracking(),t.toValue instanceof g?i.track(new m(i,t.toValue,y,r,e)):i.animate(new y(r),e)};return V(t,e,n)||{start:function(n){function t(t){return n.apply(this,arguments)}return t.toString=function(){return n.toString()},t}(function(n){i(t,e,n)}),stop:function(){t.stopAnimation()},reset:function(){t.resetAnimation()},_startNativeLoop:function(n){var r=babelHelpers.extends({},e,{iterations:n});i(t,r)},_isUsingNativeDriver:function(){return e.useNativeDriver||!1}}},H=function n(t,e){var i=function(n,t,e){e=k(e,t);var i=n,r=t;i.stopTracking(),t.toValue instanceof g?i.track(new m(i,t.toValue,E,r,e)):i.animate(new E(r),e)};return V(t,e,n)||{start:function(n){function t(t){return n.apply(this,arguments)}return t.toString=function(){return n.toString()},t}(function(n){i(t,e,n)}),stop:function(){t.stopAnimation()},reset:function(){t.resetAnimation()},_startNativeLoop:function(n){var r=babelHelpers.extends({},e,{iterations:n});i(t,r)},_isUsingNativeDriver:function(){return e.useNativeDriver||!1}}},S=function n(t,e){var i=function(n,t,e){e=k(e,t);var i=n,r=t;i.stopTracking(),i.animate(new w(r),e)};return V(t,e,n)||{start:function(n){function t(t){return n.apply(this,arguments)}return t.toString=function(){return n.toString()},t}(function(n){i(t,e,n)}),stop:function(){t.stopAnimation()},reset:function(){t.resetAnimation()},_startNativeLoop:function(n){var r=babelHelpers.extends({},e,{iterations:n});i(t,r)},_isUsingNativeDriver:function(){return e.useNativeDriver||!1}}},T=function(n){var t=0;return{start:function(e){var i=function i(r){return r.finished?(t++,t===n.length?void(e&&e(r)):void n[t].start(i)):void(e&&e(r))};0===n.length?e&&e({finished:!0}):n[t].start(i)},stop:function(){t1&&void 0!==arguments[1]?arguments[1]:{},e=t.iterations,i=void 0===e?-1:e,r=!1,o=0;return{start:function(t){var e=function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{finished:!0};r||o===i||a.finished===!1?t&&t(a):(o++,n.reset(),n.start(e))};n&&0!==i?n._isUsingNativeDriver()?n._startNativeLoop(i):e():t&&t({finished:!0})},stop:function(){r=!0,n.stop()},reset:function(){o=0,r=!1,n.reset()},_startNativeLoop:function(){throw new Error("Loops run using the native driver cannot contain Animated.loop animations")},_isUsingNativeDriver:function(){return n._isUsingNativeDriver()}}},P=function(n,t){var e=new u(n,t);return e.__isNative?e:e.__getHandler()};e.exports={Value:_,ValueXY:N,Interpolation:p,Node:g,decay:S,timing:H,spring:C,add:A,divide:D,multiply:b,modulo:x,diffClamp:U,delay:F,sequence:T,parallel:q,stagger:I,loop:O,event:P,createAnimatedComponent:L,attachNativeEvent:s,forkEvent:r,unforkEvent:o,__PropsOnlyForTests:h}},178); +__d(function(e,t,n,i){"use strict";function a(e,t,n){var i=[],a=function e(t,n){if(t instanceof s)t.__makeNative(),i.push({nativeEventPath:n,animatedValueTag:t.__getNativeTag()});else if("object"==typeof t)for(var a in t)e(t[a],n.concat(a))};l(n[0]&&n[0].nativeEvent,"Native driven events only support animated values contained inside `nativeEvent`."),a(n[0].nativeEvent,[]);var o=v.findNodeHandle(e);return i.forEach(function(e){r.API.addAnimatedEventToView(o,t,e)}),{detach:function(){i.forEach(function(e){r.API.removeAnimatedEventFromView(o,t,e.animatedValueTag)})}}}var s=t(180),r=t(183),v=t(39),l=t(13),o=t(183),c=o.shouldUseNativeDriver,_=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};babelHelpers.classCallCheck(this,e),this._listeners=[],this._argMapping=t,n.listener&&this.__addListener(n.listener),this._callListeners=this._callListeners.bind(this),this._attachedEvent=null,this.__isNative=c(n)}return babelHelpers.createClass(e,[{key:"__addListener",value:function(e){this._listeners.push(e)}},{key:"__removeListener",value:function(e){this._listeners=this._listeners.filter(function(t){return t!==e})}},{key:"__attach",value:function(e,t){l(this.__isNative,"Only native driven events need to be attached."),this._attachedEvent=a(e,t,this._argMapping)}},{key:"__detach",value:function(e,t){l(this.__isNative,"Only native driven events need to be detached."),this._attachedEvent&&this._attachedEvent.detach()}},{key:"__getHandler",value:function(){var e=this;return this.__isNative?this._callListeners:function(){for(var t=arguments.length,n=Array(t),i=0;in){if("identity"===u)return p;"clamp"===u&&(p=n)}return a===r?a:e===n?t<=e?a:r:(e===-(1/0)?p=-p:n===1/0?p-=e:p=(p-e)/(n-e),p=i(p),a===-(1/0)?p=-p:r===1/0?p+=a:p=p*(r-a)+a,p)}function o(t){var e=_(t);if(null===e)return t;e=e||0;var n=(4278190080&e)>>>24,a=(16711680&e)>>>16,r=(65280&e)>>>8,i=(255&e)/255;return"rgba("+n+", "+a+", "+r+", "+i+")"}function u(t){var e=t.outputRange;g(e.length>=2,"Bad output range"),e=e.map(o),l(e);var n=e[0].match(m).map(function(){return[]});e.forEach(function(t){t.match(m).forEach(function(t,e){n[e].push(+t)})});var a=e[0].match(m).map(function(e,a){return r(babelHelpers.extends({},t,{outputRange:n[a]}))}),i=p(e[0]);return function(t){var n=0;return e[0].replace(m,function(){var e=+a[n++](t),r=i&&n<4?Math.round(e):Math.round(1e3*e)/1e3;return String(r)})}}function p(t){return"string"==typeof t&&t.startsWith("rgb")}function l(t){for(var e=t[0].replace(m,""),n=1;n=t);++n);return n-1}function f(t){g(t.length>=2,"inputRange must have at least 2 elements");for(var e=1;e=t[e-1],"inputRange must be monotonically increasing "+t)}function s(t,e){g(e.length>=2,t+" must have at least 2 elements"),g(2!==e.length||e[0]!==-(1/0)||e[1]!==1/0,t+"cannot be ]-infinity;+infinity[ "+e)}var h=(e(182),e(184)),g=(e(183),e(13)),_=e(37),v=function(t){return t},m=/[0-9\.-]+/g,y=function(t){function e(t,n){babelHelpers.classCallCheck(this,e);var a=babelHelpers.possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a._parent=t,a._config=n,a._interpolation=r(n),a}return babelHelpers.inherits(e,t),babelHelpers.createClass(e,[{key:"__makeNative",value:function(){this._parent.__makeNative(),babelHelpers.get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){var t=this._parent.__getValue();return g("number"==typeof t,"Cannot interpolate an input which is not a number."),this._interpolation(t)}},{key:"interpolate",value:function(t){return new e(this,t)}},{key:"__attach",value:function(){this._parent.__addChild(this)}},{key:"__detach",value:function(){this._parent.__removeChild(this),babelHelpers.get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"__detach",this).call(this)}},{key:"__transformDataType",value:function(t){return t.map(function(t){if("string"!=typeof t)return t;if(/deg$/.test(t)){var e=parseFloat(t)||0,n=e*Math.PI/180;return n}return parseFloat(t)||0})}},{key:"__getNativeConfig",value:function(){return{inputRange:this._config.inputRange,outputRange:this.__transformDataType(this._config.outputRange),extrapolateLeft:this._config.extrapolateLeft||this._config.extrapolate||"extend",extrapolateRight:this._config.extrapolateRight||this._config.extrapolate||"extend",type:"interpolation"}}}]),e}(h);y.__createInterpolation=r,n.exports=y},181); +__d(function(e,t,a,n){"use strict";var i=t(183),_=t(13),o=function(){function e(){babelHelpers.classCallCheck(this,e)}return babelHelpers.createClass(e,[{key:"__attach",value:function(){}},{key:"__detach",value:function(){this.__isNative&&null!=this.__nativeTag&&(i.API.dropAnimatedNode(this.__nativeTag),this.__nativeTag=void 0)}},{key:"__getValue",value:function(){}},{key:"__getAnimatedValue",value:function(){return this.__getValue()}},{key:"__addChild",value:function(e){}},{key:"__removeChild",value:function(e){}},{key:"__getChildren",value:function(){return[]}},{key:"__makeNative",value:function(){if(!this.__isNative)throw new Error('This node cannot be made a "native" animated node')}},{key:"__getNativeTag",value:function(){if(i.assertNativeAnimatedModule(),_(this.__isNative,'Attempt to get native tag from node not marked as "native"'),null==this.__nativeTag){var e=i.generateNewNodeTag();i.API.createAnimatedNode(e,this.__getNativeConfig()),this.__nativeTag=e}return this.__nativeTag}},{key:"__getNativeConfig",value:function(){throw new Error("This JS animated node type cannot be used as native animated node")}},{key:"toJSON",value:function(){return this.__getValue()}}]),e}();a.exports=o},182); +__d(function(e,t,n,o){"use strict";function i(e){e.forEach(function(e){if(!g.hasOwnProperty(e.property))throw new Error("Property '"+e.property+"' is not supported by native animated module")})}function a(e){for(var t in e)if(!w.hasOwnProperty(t))throw new Error("Style property '"+t+"' is not supported by native animated module")}function r(e){var t={inputRange:!0,outputRange:!0,extrapolate:!0,extrapolateRight:!0,extrapolateLeft:!0};for(var n in e)if(!t.hasOwnProperty(n))throw new Error("Interpolation property '"+n+"' is not supported by native animated module")}function d(){return p++}function s(){return A++}function c(){l(u,"Native animated module is not available")}function m(e){return e.useNativeDriver&&!u?(h||(console.warn("Animated: `useNativeDriver` is not supported because the native animated module is missing. Falling back to JS-based animation. To resolve this, add `RCTAnimation` module to this app, or remove `useNativeDriver`. More info: https://github.com/facebook/react-native/issues/11094#issuecomment-263240420"),h=!0),!1):e.useNativeDriver||!1}var u=t(15).NativeAnimatedModule,f=t(80),l=t(13),p=1,A=1,N=void 0,v={createAnimatedNode:function(e,t){c(),u.createAnimatedNode(e,t)},startListeningToAnimatedNodeValue:function(e){c(),u.startListeningToAnimatedNodeValue(e)},stopListeningToAnimatedNodeValue:function(e){c(),u.stopListeningToAnimatedNodeValue(e)},connectAnimatedNodes:function(e,t){c(),u.connectAnimatedNodes(e,t)},disconnectAnimatedNodes:function(e,t){c(),u.disconnectAnimatedNodes(e,t)},startAnimatingNode:function(e,t,n,o){c(),u.startAnimatingNode(e,t,n,o)},stopAnimation:function(e){c(),u.stopAnimation(e)},setAnimatedNodeValue:function(e,t){c(),u.setAnimatedNodeValue(e,t)},setAnimatedNodeOffset:function(e,t){c(),u.setAnimatedNodeOffset(e,t)},flattenAnimatedNodeOffset:function(e){c(),u.flattenAnimatedNodeOffset(e)},extractAnimatedNodeOffset:function(e){c(),u.extractAnimatedNodeOffset(e)},connectAnimatedNodeToView:function(e,t){c(),u.connectAnimatedNodeToView(e,t)},disconnectAnimatedNodeFromView:function(e,t){c(),u.disconnectAnimatedNodeFromView(e,t)},dropAnimatedNode:function(e){c(),u.dropAnimatedNode(e)},addAnimatedEventToView:function(e,t,n){c(),u.addAnimatedEventToView(e,t,n)},removeAnimatedEventFromView:function(e,t,n){c(),u.removeAnimatedEventFromView(e,t,n)}},w={opacity:!0,transform:!0,scaleX:!0,scaleY:!0,translateX:!0,translateY:!0},g={translateX:!0,translateY:!0,scale:!0,scaleX:!0,scaleY:!0,rotate:!0,rotateX:!0,rotateY:!0,perspective:!0},h=!1;n.exports={API:v,validateStyles:a,validateTransform:i,validateInterpolation:r,generateNewNodeTag:d,generateNewAnimationId:s,assertNativeAnimatedModule:c,shouldUseNativeDriver:m,get nativeEventEmitter(){return N||(N=new f(u)),N}}},183); +__d(function(e,t,i,a){"use strict";var _=t(182),n=t(183),r=function(e){function t(){babelHelpers.classCallCheck(this,t);var e=babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e._children=[],e}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"__makeNative",value:function(){if(!this.__isNative){this.__isNative=!0;for(var e=this._children,t=Array.isArray(e),i=0,e=t?e:e["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var a;if(t){if(i>=e.length)break;a=e[i++]}else{if(i=e.next(),i.done)break;a=i.value}var _=a;_.__makeNative(),n.API.connectAnimatedNodes(this.__getNativeTag(),_.__getNativeTag())}}}},{key:"__addChild",value:function(e){0===this._children.length&&this.__attach(),this._children.push(e),this.__isNative&&(e.__makeNative(),n.API.connectAnimatedNodes(this.__getNativeTag(),e.__getNativeTag()))}},{key:"__removeChild",value:function(e){var t=this._children.indexOf(e);return t===-1?void console.warn("Trying to remove a child that doesn't exist"):(this.__isNative&&e.__isNative&&n.API.disconnectAnimatedNodes(this.__getNativeTag(),e.__getNativeTag()),this._children.splice(t,1),void(0===this._children.length&&this.__detach()))}},{key:"__getChildren",value:function(){return this._children}}]),t}(_);i.exports=r},184); +__d(function(e,n,t,r){"use strict";function a(){b||(b=L>0?setTimeout(o,0+p):setImmediate(o))}function o(){b=0;var e=w.size;T.forEach(function(e){return w.add(e)}),E.forEach(function(e){return w.delete(e)});var n=w.size;if(0!==e&&0===n?m.emit(h.Events.interactionComplete):0===e&&0!==n&&m.emit(h.Events.interactionStart),0===n)for(;k.hasTasksToProcess();)if(k.processNext(),L>0&&i.getEventLoopRunningTime()>=L){a();break}T.clear(),E.clear()}var i=n(16),c=n(31),s=n(66),d=n(186),u=n(106),l=n(13),f=n(118),m=new c,p=0,v=!1,h={Events:f({interactionStart:!0,interactionComplete:!0}),runAfterInteractions:function(e){var n=[],t=new Promise(function(t){a(),e&&n.push(e),n.push({run:t,name:"resolve "+(e&&e.name||"?")}),k.enqueueTasks(n)});return{then:t.then.bind(t),done:function(){return t.done?t.done.apply(t,arguments):void console.warn("Tried to call done when not supported by current Promise implementation.")},cancel:function(){k.cancelTasks(n)}}},createInteractionHandle:function(){v&&u("create interaction handle"),a();var e=++I;return T.add(e),e},clearInteractionHandle:function(e){v&&u("clear interaction handle"),l(!!e,"Must provide a handle to clear."),a(),T.delete(e),E.add(e)},addListener:m.addListener.bind(m),setDeadline:function(e){L=e}},w=new s,T=new s,E=new s,k=new d({onMoreTasks:a}),b=0,I=0,L=-1;t.exports=h},185); +__d(function(e,t,s,u){"use strict";var n=t(106),a=t(13),r=!1,i=function(){function e(t){var s=t.onMoreTasks;babelHelpers.classCallCheck(this,e),this._onMoreTasks=s,this._queueStack=[{tasks:[],popable:!1}]}return babelHelpers.createClass(e,[{key:"enqueue",value:function(e){this._getCurrentQueue().push(e)}},{key:"enqueueTasks",value:function(e){var t=this;e.forEach(function(e){return t.enqueue(e)})}},{key:"cancelTasks",value:function(e){this._queueStack=this._queueStack.map(function(t){return babelHelpers.extends({},t,{tasks:t.tasks.filter(function(t){return e.indexOf(t)===-1})})}).filter(function(e,t){return e.tasks.length>0||0===t})}},{key:"hasTasksToProcess",value:function(){return this._getCurrentQueue().length>0}},{key:"processNext",value:function(){var e=this._getCurrentQueue();if(e.length){var t=e.shift();try{t.gen?(r&&n("genPromise for task "+t.name),this._genPromise(t)):t.run?(r&&n("run task "+t.name),t.run()):(a("function"==typeof t,"Expected Function, SimpleTask, or PromiseTask, but got:\n"+JSON.stringify(t,null,2)),r&&n("run anonymous task"),t())}catch(e){throw e.message="TaskQueue: Error with task "+(t.name||"")+": "+e.message,e}}}},{key:"_getCurrentQueue",value:function(){var e=this._queueStack.length-1,t=this._queueStack[e];return t.popable&&0===t.tasks.length&&this._queueStack.length>1?(this._queueStack.pop(),r&&n("popped queue: ",{stackIdx:e,queueStackSize:this._queueStack.length}),this._getCurrentQueue()):t.tasks}},{key:"_genPromise",value:function(e){var t=this;this._queueStack.push({tasks:[],popable:!1});var s=this._queueStack.length-1;r&&n("push new queue: ",{stackIdx:s}),r&&n("exec gen task "+e.name),e.gen().then(function(){r&&n("onThen for gen task "+e.name,{stackIdx:s,queueStackSize:t._queueStack.length}),t._queueStack[s].popable=!0,t.hasTasksToProcess()&&t._onMoreTasks()}).catch(function(t){throw t.message="TaskQueue: Error resolving Promise in task "+e.name+": "+t.message,t}).done()}}]),e}();s.exports=i},186); +__d(function(e,t,_,a){"use strict";var i=t(181),o=(t(182),t(180)),r=t(184),s=function(e){function t(e,_){babelHelpers.classCallCheck(this,t);var a=babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return a._a="number"==typeof e?new o(e):e,a._b="number"==typeof _?new o(_):_,a}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),babelHelpers.get(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._a.__getValue()+this._b.__getValue()}},{key:"interpolate",value:function(e){return new i(this,e)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),babelHelpers.get(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:"addition",input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),t}(r);_.exports=s},187); +__d(function(t,e,a,_){"use strict";var i=e(181),l=(e(182),e(184)),s=function(t){function e(t,a,_){babelHelpers.classCallCheck(this,e);var i=babelHelpers.possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return i._a=t,i._min=a,i._max=_,i._value=i._lastValue=i._a.__getValue(),i}return babelHelpers.inherits(e,t),babelHelpers.createClass(e,[{key:"__makeNative",value:function(){this._a.__makeNative(),babelHelpers.get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"__makeNative",this).call(this)}},{key:"interpolate",value:function(t){return new i(this,t)}},{key:"__getValue",value:function(){var t=this._a.__getValue(),e=t-this._lastValue;return this._lastValue=t,this._value=Math.min(Math.max(this._value+e,this._min),this._max),this._value}},{key:"__attach",value:function(){this._a.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),babelHelpers.get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:"diffclamp",input:this._a.__getNativeTag(),min:this._min,max:this._max}}}]),e}(l);a.exports=s},188); +__d(function(e,t,i,_){"use strict";var a=t(181),o=(t(182),t(180)),r=t(184),s=function(e){function t(e,i){babelHelpers.classCallCheck(this,t);var _=babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return _._a="number"==typeof e?new o(e):e,_._b="number"==typeof i?new o(i):i,_}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),babelHelpers.get(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){var e=this._a.__getValue(),t=this._b.__getValue();return 0===t&&console.error("Detected division by zero in AnimatedDivision"),e/t}},{key:"interpolate",value:function(e){return new a(this,e)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),babelHelpers.get(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:"division",input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),t}(r);i.exports=s},189); +__d(function(t,e,_,a){"use strict";var o=e(181),s=(e(182),e(184)),i=function(t){function e(t,_){babelHelpers.classCallCheck(this,e);var a=babelHelpers.possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a._a=t,a._modulus=_,a}return babelHelpers.inherits(e,t),babelHelpers.createClass(e,[{key:"__makeNative",value:function(){this._a.__makeNative(),babelHelpers.get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return(this._a.__getValue()%this._modulus+this._modulus)%this._modulus}},{key:"interpolate",value:function(t){return new o(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),babelHelpers.get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:"modulus",input:this._a.__getNativeTag(),modulus:this._modulus}}}]),e}(s);_.exports=i},190); +__d(function(e,t,_,i){"use strict";var a=t(181),o=(t(182),t(180)),r=t(184),l=function(e){function t(e,_){babelHelpers.classCallCheck(this,t);var i=babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return i._a="number"==typeof e?new o(e):e,i._b="number"==typeof _?new o(_):_,i}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),babelHelpers.get(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._a.__getValue()*this._b.__getValue()}},{key:"interpolate",value:function(e){return new a(this,e)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),babelHelpers.get(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:"multiplication",input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),t}(r);_.exports=l},191); +__d(function(e,t,i,a){"use strict";var n=t(179),s=n.AnimatedEvent,_=t(182),o=t(193),r=t(183),c=t(39),l=t(13),v=function(e){function t(e,i){babelHelpers.classCallCheck(this,t);var a=babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.style&&(e=babelHelpers.extends({},e,{style:new o(e.style)})),a._props=e,a._callback=i,a.__attach(),a}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"__getValue",value:function(){var e={};for(var t in this._props){var i=this._props[t];i instanceof _?(!i.__isNative||i instanceof o)&&(e[t]=i.__getValue()):i instanceof s?e[t]=i.__getHandler():e[t]=i}return e}},{key:"__getAnimatedValue",value:function(){var e={};for(var t in this._props){var i=this._props[t];i instanceof _&&(e[t]=i.__getAnimatedValue())}return e}},{key:"__attach",value:function(){for(var e in this._props){var t=this._props[e];t instanceof _&&t.__addChild(this)}}},{key:"__detach",value:function(){this.__isNative&&this._animatedView&&this.__disconnectAnimatedView();for(var e in this._props){var i=this._props[e];i instanceof _&&i.__removeChild(this)}babelHelpers.get(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"__detach",this).call(this)}},{key:"update",value:function(){this._callback()}},{key:"__makeNative",value:function(){if(!this.__isNative){this.__isNative=!0;for(var e in this._props){var t=this._props[e];t instanceof _&&t.__makeNative()}this._animatedView&&this.__connectAnimatedView()}}},{key:"setNativeView",value:function(e){this._animatedView!==e&&(this._animatedView=e,this.__isNative&&this.__connectAnimatedView())}},{key:"__connectAnimatedView",value:function(){l(this.__isNative,'Expected node to be marked as "native"');var e=c.findNodeHandle(this._animatedView);l(null!=e,"Unable to locate attached view in the native tree"),r.API.connectAnimatedNodeToView(this.__getNativeTag(),e)}},{key:"__disconnectAnimatedView",value:function(){l(this.__isNative,'Expected node to be marked as "native"');var e=c.findNodeHandle(this._animatedView);l(null!=e,"Unable to locate attached view in the native tree"),r.API.disconnectAnimatedNodeFromView(this.__getNativeTag(),e)}},{key:"__getNativeConfig",value:function(){var e={};for(var t in this._props){var i=this._props[t];i instanceof _&&(e[t]=i.__getNativeTag())}return{type:"props",props:e}}}]),t}(_);i.exports=v},192); +__d(function(e,t,a,s){"use strict";var r=t(182),l=t(194),i=t(184),n=t(183),_=t(55),o=function(e){function t(e){babelHelpers.classCallCheck(this,t);var a=babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e=_(e)||{},e.transform&&(e=babelHelpers.extends({},e,{transform:new l(e.transform)})),a._style=e,a}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"_walkStyleAndGetValues",value:function(e){var t={};for(var a in e){var s=e[a];s instanceof r?s.__isNative||(t[a]=s.__getValue()):s&&!Array.isArray(s)&&"object"==typeof s?t[a]=this._walkStyleAndGetValues(s):t[a]=s}return t}},{key:"__getValue",value:function(){return this._walkStyleAndGetValues(this._style)}},{key:"_walkStyleAndGetAnimatedValues",value:function(e){var t={};for(var a in e){var s=e[a];s instanceof r?t[a]=s.__getAnimatedValue():s&&!Array.isArray(s)&&"object"==typeof s&&(t[a]=this._walkStyleAndGetAnimatedValues(s))}return t}},{key:"__getAnimatedValue",value:function(){return this._walkStyleAndGetAnimatedValues(this._style)}},{key:"__attach",value:function(){for(var e in this._style){var t=this._style[e];t instanceof r&&t.__addChild(this)}}},{key:"__detach",value:function(){for(var e in this._style){var a=this._style[e];a instanceof r&&a.__removeChild(this)}babelHelpers.get(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"__detach",this).call(this)}},{key:"__makeNative",value:function(){babelHelpers.get(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"__makeNative",this).call(this);for(var e in this._style){var a=this._style[e];a instanceof r&&a.__makeNative()}}},{key:"__getNativeConfig",value:function(){var e={};for(var t in this._style)this._style[t]instanceof r&&(e[t]=this._style[t].__getNativeTag());return n.validateStyles(e),{type:"style",style:e}}}]),t}(i);a.exports=o},193); +__d(function(t,e,r,a){"use strict";var n=e(182),o=e(184),i=e(183),s=function(t){function e(t){babelHelpers.classCallCheck(this,e);var r=babelHelpers.possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return r._transforms=t,r}return babelHelpers.inherits(e,t),babelHelpers.createClass(e,[{key:"__makeNative",value:function(){babelHelpers.get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"__makeNative",this).call(this),this._transforms.forEach(function(t){for(var e in t){var r=t[e];r instanceof n&&r.__makeNative()}})}},{key:"__getValue",value:function(){return this._transforms.map(function(t){var e={};for(var r in t){var a=t[r];a instanceof n?e[r]=a.__getValue():e[r]=a}return e})}},{key:"__getAnimatedValue",value:function(){return this._transforms.map(function(t){var e={};for(var r in t){var a=t[r];a instanceof n?e[r]=a.__getAnimatedValue():e[r]=a}return e})}},{key:"__attach",value:function(){var t=this;this._transforms.forEach(function(e){for(var r in e){var a=e[r];a instanceof n&&a.__addChild(t)}})}},{key:"__detach",value:function(){var t=this;this._transforms.forEach(function(e){for(var r in e){var a=e[r];a instanceof n&&a.__removeChild(t)}}),babelHelpers.get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){var t=[];return this._transforms.forEach(function(e){for(var r in e){var a=e[r];a instanceof n?t.push({type:"animated",property:r,nodeTag:a.__getNativeTag()}):t.push({type:"static",property:r,value:a})}}),i.validateTransform(t),{type:"transform",transforms:t}}}]),e}(o);r.exports=s},194); +__d(function(t,e,a,i){"use strict";var _=(e(180),e(182)),l=function(t){function e(t,a,i,_,l){babelHelpers.classCallCheck(this,e);var n=babelHelpers.possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return n._value=t,n._parent=a,n._animationClass=i,n._animationConfig=_,n._callback=l,n.__attach(),n}return babelHelpers.inherits(e,t),babelHelpers.createClass(e,[{key:"__getValue",value:function(){return this._parent.__getValue()}},{key:"__attach",value:function(){this._parent.__addChild(this)}},{key:"__detach",value:function(){this._parent.__removeChild(this),babelHelpers.get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"__detach",this).call(this)}},{key:"update",value:function(){this._value.animate(new this._animationClass(babelHelpers.extends({},this._animationConfig,{toValue:this._animationConfig.toValue.__getValue()})),this._callback)}}]),e}(_);a.exports=l},195); +__d(function(e,t,s,i){"use strict";var n=t(180),a=t(184),r=t(13),l=1,u=function(e){function t(e){babelHelpers.classCallCheck(this,t);var s=babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this)),i=e||{x:0,y:0};return"number"==typeof i.x&&"number"==typeof i.y?(s.x=new n(i.x),s.y=new n(i.y)):(r(i.x instanceof n&&i.y instanceof n,"AnimatedValueXY must be initalized with an object of numbers or AnimatedValues."),s.x=i.x,s.y=i.y),s._listeners={},s}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"setValue",value:function(e){this.x.setValue(e.x),this.y.setValue(e.y)}},{key:"setOffset",value:function(e){this.x.setOffset(e.x),this.y.setOffset(e.y)}},{key:"flattenOffset",value:function(){this.x.flattenOffset(),this.y.flattenOffset()}},{key:"extractOffset",value:function(){this.x.extractOffset(),this.y.extractOffset()}},{key:"__getValue",value:function(){return{x:this.x.__getValue(),y:this.y.__getValue()}}},{key:"resetAnimation",value:function(e){this.x.resetAnimation(),this.y.resetAnimation(),e&&e(this.__getValue())}},{key:"stopAnimation",value:function(e){this.x.stopAnimation(),this.y.stopAnimation(),e&&e(this.__getValue())}},{key:"addListener",value:function(e){var t=this,s=String(l++),i=function(s){s.value;e(t.__getValue())};return this._listeners[s]={x:this.x.addListener(i),y:this.y.addListener(i)},s}},{key:"removeListener",value:function(e){this.x.removeListener(this._listeners[e].x),this.y.removeListener(this._listeners[e].y),delete this._listeners[e]}},{key:"removeAllListeners",value:function(){this.x.removeAllListeners(),this.y.removeAllListeners(),this._listeners={}}},{key:"getLayout",value:function(){return{left:this.x,top:this.y}}},{key:"getTranslateTransform",value:function(){return[{translateX:this.x},{translateY:this.y}]}}]),t}(a);s.exports=u},196); +__d(function(t,e,i,a){"use strict";var s=e(198),n=e(183),o=n.shouldUseNativeDriver,r=function(e){function i(t){babelHelpers.classCallCheck(this,i);var e=babelHelpers.possibleConstructorReturn(this,(i.__proto__||Object.getPrototypeOf(i)).call(this));return e._deceleration=void 0!==t.deceleration?t.deceleration:.998,e._velocity=t.velocity,e._useNativeDriver=o(t),e.__isInteraction=void 0===t.isInteraction||t.isInteraction,e.__iterations=void 0!==t.iterations?t.iterations:1,e}return babelHelpers.inherits(i,e),babelHelpers.createClass(i,[{key:"__getNativeAnimationConfig",value:function(){return{type:"decay",deceleration:this._deceleration,velocity:this._velocity,iterations:this.__iterations}}},{key:"start",value:function(t,e,i,a,s){this.__active=!0,this._lastValue=t,this._fromValue=t,this._onUpdate=e,this.__onEnd=i,this._startTime=Date.now(),this._useNativeDriver?this.__startNativeAnimation(s):this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this))}},{key:"onUpdate",value:function(){var t=Date.now(),e=this._fromValue+this._velocity/(1-this._deceleration)*(1-Math.exp(-(1-this._deceleration)*(t-this._startTime)));return this._onUpdate(e),Math.abs(this._lastValue-e)<.1?void this.__debouncedOnEnd({finished:!0}):(this._lastValue=e,void(this.__active&&(this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this)))))}},{key:"stop",value:function(){babelHelpers.get(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"stop",this).call(this),this.__active=!1,t.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),i}(s);i.exports=r},197); +__d(function(t,n,e,i){"use strict";var a=n(183),o=function(){function t(){babelHelpers.classCallCheck(this,t)}return babelHelpers.createClass(t,[{key:"start",value:function(t,n,e,i,a){}},{key:"stop",value:function(){this.__nativeId&&a.API.stopAnimation(this.__nativeId)}},{key:"__getNativeAnimationConfig",value:function(){throw new Error("This animation type cannot be offloaded to native")}},{key:"__debouncedOnEnd",value:function(t){var n=this.__onEnd;this.__onEnd=null,n&&n(t)}},{key:"__startNativeAnimation",value:function(t){t.__makeNative(),this.__nativeId=a.generateNewAnimationId(),a.API.startAnimatingNode(this.__nativeId,t.__getNativeTag(),this.__getNativeAnimationConfig(),this.__debouncedOnEnd.bind(this))}}]),t}();e.exports=o},198); +__d(function(t,i,e,s){"use strict";function o(t,i){return void 0===t||null===t?i:t}var n=(i(180),i(196),i(198)),a=i(200),l=i(13),r=i(183),h=r.shouldUseNativeDriver,_=function(i){function e(t){babelHelpers.classCallCheck(this,e);var i=babelHelpers.possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));i._overshootClamping=o(t.overshootClamping,!1),i._restDisplacementThreshold=o(t.restDisplacementThreshold,.001),i._restSpeedThreshold=o(t.restSpeedThreshold,.001),i._initialVelocity=t.velocity,i._lastVelocity=o(t.velocity,0),i._toValue=t.toValue,i._delay=o(t.delay,0),i._useNativeDriver=h(t),i.__isInteraction=void 0===t.isInteraction||t.isInteraction,i.__iterations=void 0!==t.iterations?t.iterations:1;var s=void 0;return void 0!==t.bounciness||void 0!==t.speed?(l(void 0===t.tension&&void 0===t.friction,"You can only define bounciness/speed or tension/friction but not both"),s=a.fromBouncinessAndSpeed(o(t.bounciness,8),o(t.speed,12))):s=a.fromOrigamiTensionAndFriction(o(t.tension,40),o(t.friction,7)),i._tension=s.tension,i._friction=s.friction,i}return babelHelpers.inherits(e,i),babelHelpers.createClass(e,[{key:"__getNativeAnimationConfig",value:function(){return{type:"spring",overshootClamping:this._overshootClamping,restDisplacementThreshold:this._restDisplacementThreshold,restSpeedThreshold:this._restSpeedThreshold,tension:this._tension,friction:this._friction,initialVelocity:o(this._initialVelocity,this._lastVelocity),toValue:this._toValue,iterations:this.__iterations}}},{key:"start",value:function t(i,s,o,n,a){var l=this;if(this.__active=!0,this._startPosition=i,this._lastPosition=this._startPosition,this._onUpdate=s,this.__onEnd=o,this._lastTime=Date.now(),n instanceof e){var r=n.getInternalState();this._lastPosition=r.lastPosition,this._lastVelocity=r.lastVelocity,this._lastTime=r.lastTime}void 0!==this._initialVelocity&&null!==this._initialVelocity&&(this._lastVelocity=this._initialVelocity);var t=function(){l._useNativeDriver?l.__startNativeAnimation(a):l.onUpdate()};this._delay?this._timeout=setTimeout(t,this._delay):t()}},{key:"getInternalState",value:function(){return{lastPosition:this._lastPosition,lastVelocity:this._lastVelocity,lastTime:this._lastTime}}},{key:"onUpdate",value:function(){var t=this._lastPosition,i=this._lastVelocity,e=this._lastPosition,s=this._lastVelocity,o=64,n=Date.now();n>this._lastTime+o&&(n=this._lastTime+o);for(var a=1,l=Math.floor((n-this._lastTime)/a),r=0;rthis._toValue:t18&&n<=44?a(n):p(n)}var h=r(n/1.7,0,20);h=o(h,0,.8);var w=r(t/1.7,0,20),M=o(w,.5,200),d=c(h,s(M),.01);return{tension:u(M),friction:i(d)}}r.exports={fromOrigamiTensionAndFriction:e,fromBouncinessAndSpeed:c}},200); +__d(function(t,i,e,a){"use strict";function s(){if(!_){var t=i(202);_=t.inOut(t.ease)}return _}var n=(i(180),i(196),i(198)),o=i(183),r=o.shouldUseNativeDriver,_=void 0,u=function(i){function e(t){babelHelpers.classCallCheck(this,e);var i=babelHelpers.possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return i._toValue=t.toValue,i._easing=void 0!==t.easing?t.easing:s(),i._duration=void 0!==t.duration?t.duration:500,i._delay=void 0!==t.delay?t.delay:0,i.__iterations=void 0!==t.iterations?t.iterations:1,i.__isInteraction=void 0===t.isInteraction||t.isInteraction,i._useNativeDriver=r(t),i}return babelHelpers.inherits(e,i),babelHelpers.createClass(e,[{key:"__getNativeAnimationConfig",value:function(){for(var t=16.666666666666668,i=[],e=0;e=this._startTime+this._duration?(0===this._duration?this._onUpdate(this._toValue):this._onUpdate(this._fromValue+this._easing(1)*(this._toValue-this._fromValue)),void this.__debouncedOnEnd({finished:!0})):(this._onUpdate(this._fromValue+this._easing((t-this._startTime)/this._duration)*(this._toValue-this._fromValue)),void(this.__active&&(this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this)))))}},{key:"stop",value:function(){babelHelpers.get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"stop",this).call(this),this.__active=!1,clearTimeout(this._timeout),t.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),e}(n);e.exports=u},201); +__d(function(e,n,u,t){"use strict";var r=void 0,a=function(){function e(){babelHelpers.classCallCheck(this,e)}return babelHelpers.createClass(e,null,[{key:"step0",value:function(e){return e>0?1:0}},{key:"step1",value:function(e){return e>=1?1:0}},{key:"linear",value:function(e){return e}},{key:"ease",value:function(n){return r||(r=e.bezier(.42,0,1,1)),r(n)}},{key:"quad",value:function(e){return e*e}},{key:"cubic",value:function(e){return e*e*e}},{key:"poly",value:function(e){return function(n){return Math.pow(n,e)}}},{key:"sin",value:function(e){return 1-Math.cos(e*Math.PI/2)}},{key:"circle",value:function(e){return 1-Math.sqrt(1-e*e)}},{key:"exp",value:function(e){return Math.pow(2,10*(e-1))}},{key:"elastic",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=e*Math.PI;return function(e){return 1-Math.pow(Math.cos(e*Math.PI/2),3)*Math.cos(e*n)}}},{key:"back",value:function(e){return void 0===e&&(e=1.70158),function(n){return n*n*((e+1)*n-e)}}},{key:"bounce",value:function(e){return e<.36363636363636365?7.5625*e*e:e<.7272727272727273?(e-=.5454545454545454,7.5625*e*e+.75):e<.9090909090909091?(e-=.8181818181818182,7.5625*e*e+.9375):(e-=.9545454545454546,7.5625*e*e+.984375)}},{key:"bezier",value:function(e,u,t,r){var a=n(203);return a(e,u,t,r)}},{key:"in",value:function(e){return e}},{key:"out",value:function(e){return function(n){return 1-e(1-n)}}},{key:"inOut",value:function(e){return function(n){return n<.5?e(2*n)/2:1-e(2*(1-n))/2}}}]),e}();u.exports=a},202); +__d(function(r,n,t,u){"use strict";function e(r,n){return 1-3*n+3*r}function o(r,n){return 3*n-6*r}function f(r){return 3*r}function i(r,n,t){return((e(n,t)*r+o(n,t))*r+f(n))*r}function a(r,n,t){return 3*e(n,t)*r*r+2*o(n,t)*r+f(n)}function c(r,n,t,u,e){var o,f,a=0;do f=n+(t-n)/2,o=i(f,u,e)-r,o>0?t=f:n=f;while(Math.abs(o)>l&&++a=w?v(n,s,r,t):0===l?s:c(n,u,u+h,r,t)}if(!(0<=r&&r<=1&&0<=t&&t<=1))throw new Error("bezier x values must be in [0, 1] range");var o=A?new Float32Array(b):new Array(b);if(r!==n||t!==u)for(var f=0;f component requires a `source` property rather than `src`."),e&&(e.uri||Array.isArray(e))){var t=void 0,n=void 0;if(e.uri){var i=e.width,o=e.height;t=y([{width:i,height:o},z.base,this.props.style]),n=[{uri:e.uri}]}else t=y([z.base,this.props.style]),n=e;var s=this.props,a=s.onLoadStart,u=s.onLoad,d=s.onLoadEnd,l=s.onError,h=I(this.props,{style:t,shouldNotifyLoadEvents:!!(a||u||d||l),src:n,headers:e.headers,loadingIndicatorSrc:r?r.uri:null});if(h.children){var p=v(t,function(e,r){return!L.has(r)}),f=v(t,function(e,r){return L.has(r)}),m=I(h,{style:[f,z.absoluteImage],children:void 0});return c.createElement(g,{style:p},c.createElement(A,m),this.props.children)}return this.context.isInAParentText?c.createElement(N,h):c.createElement(A,h)}return null}}),z=p.create({base:{overflow:"hidden"},absoluteImage:{left:0,right:0,top:0,bottom:0,position:"absolute"}}),O={nativeOnly:{src:!0,headers:!0,loadingIndicatorSrc:!0,shouldNotifyLoadEvents:!0}},A=C("RCTImageView",S,O),N=C("RCTTextInlineImage",S,O);t.exports=S},205); +__d(function(r,t,n,e){"use strict";function o(r,t,n){if(!r)return null;var e={};for(var o in r)a.call(r,o)&&t.call(n,r[o],o,r)&&(e[o]=r[o]);return e}var a=Object.prototype.hasOwnProperty;n.exports=o},206); +__d(function(e,o,n,t){"use strict";var l=o(177),r=o(36),s=o(131),i=(o(23),o(208)),a=o(111),c=o(114),d=o(39),h=o(209),p=o(216),u=o(143),m=o(137),f=o(110),S=o(130),y=o(124),R=o(139),v=o(212),b=(o(55),o(13)),_=o(217),w=o(141),H=(o(27),R({displayName:"ScrollView",propTypes:babelHelpers.extends({},S,{automaticallyAdjustContentInsets:a.bool,contentInset:s,contentOffset:i,bounces:a.bool,bouncesZoom:a.bool,alwaysBounceHorizontal:a.bool,alwaysBounceVertical:a.bool,centerContent:a.bool,contentContainerStyle:m(y),decelerationRate:a.oneOfType([a.oneOf(["fast","normal"]),a.number]),horizontal:a.bool,indicatorStyle:a.oneOf(["default","black","white"]),directionalLockEnabled:a.bool,canCancelContentTouches:a.bool,keyboardDismissMode:a.oneOf(["none","on-drag","interactive"]),keyboardShouldPersistTaps:a.oneOf(["always","never","handled",!1,!0]),maximumZoomScale:a.number,minimumZoomScale:a.number,onMomentumScrollBegin:a.func,onMomentumScrollEnd:a.func,onScroll:a.func,onContentSizeChange:a.func,pagingEnabled:a.bool,pinchGestureEnabled:a.bool,scrollEnabled:a.bool,scrollEventThrottle:a.number,scrollIndicatorInsets:s,scrollsToTop:a.bool,showsHorizontalScrollIndicator:a.bool,showsVerticalScrollIndicator:a.bool,stickyHeaderIndices:a.arrayOf(a.number),style:m(y),snapToInterval:a.number,snapToAlignment:a.oneOf(["start","center","end"]),removeClippedSubviews:a.bool,zoomScale:a.number,contentInsetAdjustmentBehavior:a.oneOf(["automatic","scrollableAxes","never","always"]),refreshControl:a.element,endFillColor:r,scrollPerfTag:a.string,overScrollMode:a.oneOf(["auto","always","never"]),DEPRECATED_sendUpdatedChildFrames:a.bool}),mixins:[h.Mixin],_scrollAnimatedValue:new l.Value(0),_scrollAnimatedValueAttachment:null,_stickyHeaderRefs:new Map,_headerLayoutYs:new Map,getInitialState:function(){return this.scrollResponderMixinGetInitialState()},componentWillMount:function(){this._scrollAnimatedValue=new l.Value(0),this._stickyHeaderRefs=new Map,this._headerLayoutYs=new Map},componentDidMount:function(){this._updateAnimatedNodeAttachment()},componentDidUpdate:function(){this._updateAnimatedNodeAttachment()},componentWillUnmount:function(){this._scrollAnimatedValueAttachment&&this._scrollAnimatedValueAttachment.detach()},setNativeProps:function(e){this._scrollViewRef&&this._scrollViewRef.setNativeProps(e)},getScrollResponder:function(){return this},getScrollableNode:function(){return d.findNodeHandle(this._scrollViewRef)},getInnerViewNode:function(){return d.findNodeHandle(this._innerViewRef)},scrollTo:function(e,o,n){if("number"==typeof e)console.warn("`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.");else{var t=e||{};o=t.x,e=t.y,n=t.animated}this.getScrollResponder().scrollResponderScrollTo({x:o||0,y:e||0,animated:n!==!1})},scrollToEnd:function(e){var o=(e&&e.animated)!==!1;this.getScrollResponder().scrollResponderScrollToEnd({animated:o})},scrollWithoutAnimationTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;console.warn("`scrollWithoutAnimationTo` is deprecated. Use `scrollTo` instead"),this.scrollTo({x:o,y:e,animated:!1})},flashScrollIndicators:function(){this.getScrollResponder().scrollResponderFlashScrollIndicators()},_getKeyForIndex:function(e,o){var n=o[e];return n&&n.key},_updateAnimatedNodeAttachment:function(){this._scrollAnimatedValueAttachment&&this._scrollAnimatedValueAttachment.detach(),this.props.stickyHeaderIndices&&this.props.stickyHeaderIndices.length>0&&(this._scrollAnimatedValueAttachment=l.attachNativeEvent(this._scrollViewRef,"onScroll",[{nativeEvent:{contentOffset:{y:this._scrollAnimatedValue}}}]))},_setStickyHeaderRef:function(e,o){o?this._stickyHeaderRefs.set(e,o):this._stickyHeaderRefs.delete(e)},_onStickyHeaderLayout:function(e,o,n){if(this.props.stickyHeaderIndices){var t=c.Children.toArray(this.props.children);if(n===this._getKeyForIndex(e,t)){var l=o.nativeEvent.layout.y;this._headerLayoutYs.set(n,l);var r=this.props.stickyHeaderIndices.indexOf(e),s=this.props.stickyHeaderIndices[r-1];if(null!=s){var i=this._stickyHeaderRefs.get(this._getKeyForIndex(s,t));i&&i.setNextHeaderY(l)}}}},_handleScroll:function(e){"on-drag"===this.props.keyboardDismissMode&&v(),this.scrollResponderHandleScroll(e)},_handleContentOnLayout:function(e){var o=e.nativeEvent.layout,n=o.width,t=o.height;this.props.onContentSizeChange&&this.props.onContentSizeChange(n,t)},_scrollViewRef:null,_setScrollViewRef:function(e){this._scrollViewRef=e},_innerViewRef:null,_setInnerViewRef:function(e){this._innerViewRef=e},render:function(){var e=this,o=void 0,n=void 0;o=this.props.horizontal?E:V,n=f,b(void 0!==o,"ScrollViewClass must not be undefined"),b(void 0!==n,"ScrollContentContainerViewClass must not be undefined");var t=[this.props.horizontal&&C.contentContainerHorizontal,this.props.contentContainerStyle],l={};this.props.onContentSizeChange&&(l={onLayout:this._handleContentOnLayout});var r=this.props.stickyHeaderIndices,s=r&&r.length>0,i=s&&c.Children.toArray(this.props.children),a=s?i.map(function(o,n){var t=o?r.indexOf(n):-1;if(t>-1){var l=o.key,s=r[t+1];return c.createElement(p,{key:l,ref:function(o){return e._setStickyHeaderRef(l,o)},nextHeaderLayoutY:e._headerLayoutYs.get(e._getKeyForIndex(s,i)),onLayout:function(o){return e._onStickyHeaderLayout(n,o,l)},scrollAnimatedValue:e._scrollAnimatedValue},o)}return o}):this.props.children,d=c.createElement(n,babelHelpers.extends({},l,{ref:this._setInnerViewRef,style:t,removeClippedSubviews:!s&&this.props.removeClippedSubviews,collapsable:!1}),a),h=void 0!==this.props.alwaysBounceHorizontal?this.props.alwaysBounceHorizontal:this.props.horizontal,u=void 0!==this.props.alwaysBounceVertical?this.props.alwaysBounceVertical:!this.props.horizontal,m=!!this.props.DEPRECATED_sendUpdatedChildFrames,S=this.props.horizontal?C.baseHorizontal:C.baseVertical,y=babelHelpers.extends({},this.props,{alwaysBounceHorizontal:h,alwaysBounceVertical:u,style:[S,this.props.style],onContentSizeChange:null,onMomentumScrollBegin:this.scrollResponderHandleMomentumScrollBegin,onMomentumScrollEnd:this.scrollResponderHandleMomentumScrollEnd,onResponderGrant:this.scrollResponderHandleResponderGrant,onResponderReject:this.scrollResponderHandleResponderReject,onResponderRelease:this.scrollResponderHandleResponderRelease,onResponderTerminate:this.scrollResponderHandleTerminate,onResponderTerminationRequest:this.scrollResponderHandleTerminationRequest,onScroll:this._handleScroll,onScrollBeginDrag:this.scrollResponderHandleScrollBeginDrag,onScrollEndDrag:this.scrollResponderHandleScrollEndDrag,onScrollShouldSetResponder:this.scrollResponderHandleScrollShouldSetResponder,onStartShouldSetResponder:this.scrollResponderHandleStartShouldSetResponder,onStartShouldSetResponderCapture:this.scrollResponderHandleStartShouldSetResponderCapture,onTouchEnd:this.scrollResponderHandleTouchEnd,onTouchMove:this.scrollResponderHandleTouchMove,onTouchStart:this.scrollResponderHandleTouchStart,scrollEventThrottle:s?1:this.props.scrollEventThrottle,sendMomentumEvents:!(!this.props.onMomentumScrollBegin&&!this.props.onMomentumScrollEnd),DEPRECATED_sendUpdatedChildFrames:m}),R=this.props.decelerationRate;R&&(y.decelerationRate=_(R));var v=this.props.refreshControl;return v?c.cloneElement(v,{style:y.style},c.createElement(o,babelHelpers.extends({},y,{style:S,ref:this._setScrollViewRef}),d)):c.createElement(o,babelHelpers.extends({},y,{ref:this._setScrollViewRef}),d)}})),C=u.create({baseVertical:{flexGrow:1,flexShrink:1,flexDirection:"column",overflow:"scroll"},baseHorizontal:{flexGrow:1,flexShrink:1,flexDirection:"row",overflow:"scroll"},contentContainerHorizontal:{flexDirection:"row"}}),g=void 0,V=void 0,E=void 0;g={nativeOnly:{sendMomentumEvents:!0}},V=w("RCTScrollView",H,g),E=w("AndroidHorizontalScrollView",H,g),n.exports=H},207); +__d(function(r,e,n,t){"use strict";var u=e(111),s=e(132),b=s({x:u.number,y:u.number});n.exports=b},208); +__d(function(e,o,n,r){"use strict";function s(e){var o=f(e);return o&&o.viewConfig&&("AndroidTextInput"===o.viewConfig.uiViewClassName||"RCTTextView"===o.viewConfig.uiViewClassName||"RCTTextField"===o.viewConfig.uiViewClassName)}var l=o(145),t=o(210),i=o(211),d=o(39),a=o(213),c=o(57),p=o(58),h=o(13),u=o(214),S=o(24),m=o(27),R=o(15),T=R.ScrollViewManager,b=o(215),f=b.getInstanceFromNode,g=16,y={mixins:[a.Mixin],scrollResponderMixinGetInitialState:function(){return{isTouching:!1,lastMomentumScrollBeginTime:0,lastMomentumScrollEndTime:0,observedScrollSinceBecomingResponder:!1,becameResponderWhileAnimating:!1}},scrollResponderHandleScrollShouldSetResponder:function(){return this.state.isTouching},scrollResponderHandleStartShouldSetResponder:function(e){var o=c.currentlyFocusedField();return"handled"===this.props.keyboardShouldPersistTaps&&null!=o&&e.target!==o},scrollResponderHandleStartShouldSetResponderCapture:function(e){var o=c.currentlyFocusedField(),n=this.props.keyboardShouldPersistTaps,r=!n||"never"===n;return!(!r||null==o||s(e.target))||this.scrollResponderIsAnimating()},scrollResponderHandleResponderReject:function(){},scrollResponderHandleTerminationRequest:function(){return!this.state.observedScrollSinceBecomingResponder},scrollResponderHandleTouchEnd:function(e){var o=e.nativeEvent;this.state.isTouching=0!==o.touches.length,this.props.onTouchEnd&&this.props.onTouchEnd(e)},scrollResponderHandleResponderRelease:function(e){this.props.onResponderRelease&&this.props.onResponderRelease(e);var o=c.currentlyFocusedField();this.props.keyboardShouldPersistTaps===!0||"always"===this.props.keyboardShouldPersistTaps||null==o||e.target===o||this.state.observedScrollSinceBecomingResponder||this.state.becameResponderWhileAnimating||(this.props.onScrollResponderKeyboardDismissed&&this.props.onScrollResponderKeyboardDismissed(e),c.blurTextInput(o))},scrollResponderHandleScroll:function(e){this.state.observedScrollSinceBecomingResponder=!0,this.props.onScroll&&this.props.onScroll(e)},scrollResponderHandleResponderGrant:function(e){this.state.observedScrollSinceBecomingResponder=!1,this.props.onResponderGrant&&this.props.onResponderGrant(e),this.state.becameResponderWhileAnimating=this.scrollResponderIsAnimating()},scrollResponderHandleScrollBeginDrag:function(e){t.beginScroll(),this.props.onScrollBeginDrag&&this.props.onScrollBeginDrag(e)},scrollResponderHandleScrollEndDrag:function(e){var o=e.nativeEvent.velocity;this.scrollResponderIsAnimating()||o&&(0!==o.x||0!==o.y)||t.endScroll(),this.props.onScrollEndDrag&&this.props.onScrollEndDrag(e)},scrollResponderHandleMomentumScrollBegin:function(e){this.state.lastMomentumScrollBeginTime=S(),this.props.onMomentumScrollBegin&&this.props.onMomentumScrollBegin(e)},scrollResponderHandleMomentumScrollEnd:function(e){t.endScroll(),this.state.lastMomentumScrollEndTime=S(),this.props.onMomentumScrollEnd&&this.props.onMomentumScrollEnd(e)},scrollResponderHandleTouchStart:function(e){this.state.isTouching=!0,this.props.onTouchStart&&this.props.onTouchStart(e)},scrollResponderHandleTouchMove:function(e){this.props.onTouchMove&&this.props.onTouchMove(e)},scrollResponderIsAnimating:function(){var e=S(),o=e-this.state.lastMomentumScrollEndTime,n=o=o?(l.push(p,p+1),i.push(p-o,p-o)):(l.push(o+1),i.push(1))}var y=this.props.scrollAnimatedValue.interpolate({inputRange:l,outputRange:i}),h=n.Children.only(this.props.children);return n.createElement(r.View,{collapsable:!1,onLayout:this._onLayout,style:[h.props.style,u.header,{transform:[{translateY:y}]}]},n.cloneElement(h,{style:u.fill,onLayout:void 0}))}}]),t}(n.Component),u=s.create({header:{zIndex:10},fill:{flex:1}});a.exports=l},216); +__d(function(t,n,r,o){"use strict";function s(t){return"normal"===t?t=.998:"fast"===t&&(t=.99),t}r.exports=s},217); +__d(function(e,n,t,o){"use strict";var s=n(38),r=n(111),a=n(114),i=n(143),h=n(130),p=n(139),l=n(141),u=p({displayName:"CheckBox",propTypes:babelHelpers.extends({},h,{value:r.bool,disabled:r.bool,onChange:r.func,onValueChange:r.func,testID:r.string}),getDefaultProps:function(){return{value:!1,disabled:!1}},mixins:[s],_rctCheckBox:{},_onChange:function(e){this._rctCheckBox.setNativeProps({value:this.props.value}),this.props.onChange&&this.props.onChange(e),this.props.onValueChange&&this.props.onValueChange(e.nativeEvent.value)},render:function(){var e=this,n=babelHelpers.extends({},this.props);return n.onStartShouldSetResponder=function(){return!0},n.onResponderTerminationRequest=function(){return!1},n.enabled=!this.props.disabled,n.on=this.props.value,n.style=[c.rctCheckBox,this.props.style],a.createElement(d,babelHelpers.extends({},n,{ref:function(n){e._rctCheckBox=n},onChange:this._onChange}))}}),c=i.create({rctCheckBox:{height:32,width:32}}),d=l("AndroidCheckBox",u,{nativeOnly:{onChange:!0,on:!0,enabled:!0}});t.exports=u},218); +__d(function(e,t,r,n){"use strict";var o=t(114),s=t(143),i=t(164),l=t(110),a=function(e){function t(){return babelHelpers.classCallCheck(this,t),babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"render",value:function(){return o.createElement(l,{style:[c.dummyDatePickerIOS,this.props.style]},o.createElement(i,{style:c.datePickerText},"DatePickerIOS is not supported on this platform!"))}}]),t}(o.Component),c=s.create({dummyDatePickerIOS:{height:100,width:300,backgroundColor:"#ffbcbc",borderWidth:1,borderColor:"red",alignItems:"center",justifyContent:"center",margin:10},datePickerText:{color:"#333333",margin:20}});r.exports=a},219); +__d(function(e,r,o,t){"use strict";var a=r(36),n=r(38),s=r(23),i=r(114),d=r(111),l=r(39),w=r(221),p=r(143),u=r(58),c=r(110),h=r(130),g=u.AndroidDrawerLayout.Constants,D=r(139),f=r(212),C=r(141),b="drawerlayout",m="innerView",S=["Idle","Dragging","Settling"],k=D({displayName:"DrawerLayoutAndroid",statics:{positions:g.DrawerPosition},propTypes:babelHelpers.extends({},h,{keyboardDismissMode:d.oneOf(["none","on-drag"]),drawerBackgroundColor:a,drawerPosition:d.oneOf([g.DrawerPosition.Left,g.DrawerPosition.Right]),drawerWidth:d.number,drawerLockMode:d.oneOf(["unlocked","locked-closed","locked-open"]),onDrawerSlide:d.func,onDrawerStateChanged:d.func,onDrawerOpen:d.func,onDrawerClose:d.func,renderNavigationView:d.func.isRequired,statusBarBackgroundColor:a}),mixins:[n],getDefaultProps:function(){return{drawerBackgroundColor:"white"}},getInitialState:function(){return{statusBarBackgroundColor:void 0}},getInnerViewNode:function(){return this.refs[m].getInnerViewNode()},render:function(){var e=s.Version>=21&&this.props.statusBarBackgroundColor,r=i.createElement(c,{style:[y.drawerSubview,{width:this.props.drawerWidth,backgroundColor:this.props.drawerBackgroundColor}],collapsable:!1},this.props.renderNavigationView(),e&&i.createElement(c,{style:y.drawerStatusBar})),o=i.createElement(c,{ref:m,style:y.mainSubview,collapsable:!1},e&&i.createElement(w,{translucent:!0,backgroundColor:this.props.statusBarBackgroundColor}),e&&i.createElement(c,{style:[y.statusBar,{backgroundColor:this.props.statusBarBackgroundColor}]}),this.props.children);return i.createElement(B,babelHelpers.extends({},this.props,{ref:b,drawerWidth:this.props.drawerWidth,drawerPosition:this.props.drawerPosition,drawerLockMode:this.props.drawerLockMode,style:[y.base,this.props.style],onDrawerSlide:this._onDrawerSlide,onDrawerOpen:this._onDrawerOpen,onDrawerClose:this._onDrawerClose,onDrawerStateChanged:this._onDrawerStateChanged}),o,r)},_onDrawerSlide:function(e){this.props.onDrawerSlide&&this.props.onDrawerSlide(e),"on-drag"===this.props.keyboardDismissMode&&f()},_onDrawerOpen:function(){this.props.onDrawerOpen&&this.props.onDrawerOpen()},_onDrawerClose:function(){this.props.onDrawerClose&&this.props.onDrawerClose()},_onDrawerStateChanged:function(e){this.props.onDrawerStateChanged&&this.props.onDrawerStateChanged(S[e.nativeEvent.drawerState])},openDrawer:function(){u.dispatchViewManagerCommand(this._getDrawerLayoutHandle(),u.AndroidDrawerLayout.Commands.openDrawer,null)},closeDrawer:function(){u.dispatchViewManagerCommand(this._getDrawerLayoutHandle(),u.AndroidDrawerLayout.Commands.closeDrawer,null)},_getDrawerLayoutHandle:function(){return l.findNodeHandle(this.refs[b])}}),y=p.create({base:{flex:1,elevation:16},mainSubview:{position:"absolute",top:0,left:0,right:0,bottom:0},drawerSubview:{position:"absolute",top:0,bottom:0},statusBar:{height:w.currentHeight},drawerStatusBar:{position:"absolute",top:0,left:0,right:0,height:w.currentHeight,backgroundColor:"rgba(0, 0, 0, 0.251)"}}),B=C("AndroidDrawerLayout",k);o.exports=k},220); +__d(function(e,t,n,a){"use strict";function r(e,t){return e.reduce(function(e,t){for(var n in t)null!=t[n]&&(e[n]=t[n]);return e},babelHelpers.extends({},t))}function o(e){return{backgroundColor:null!=e.backgroundColor?{value:e.backgroundColor,animated:e.animated}:null,barStyle:null!=e.barStyle?{value:e.barStyle,animated:e.animated}:null,translucent:e.translucent,hidden:null!=e.hidden?{value:e.hidden,animated:e.animated,transition:e.showHideTransition}:null,networkActivityIndicatorVisible:e.networkActivityIndicatorVisible}}var l=t(114),i=t(111),u=t(36),s=(t(23),t(125)),c=t(15).StatusBarManager,d=function(e){function t(){var e,n,a,o;babelHelpers.classCallCheck(this,t);for(var l=arguments.length,i=Array(l),u=0;u1){for(var o=[],s=0;s1?(a(Array.isArray(e),"FlatList: Encountered internal consistency error, expected each item to consist of an array with 1-%s columns; instead, received a single item.",s),e.map(function(e,n){return o(e,t*s+n)}).join(":")):o(e,t)},r._onViewableItemsChanged=function(e){var t=r.props,n=t.numColumns,o=t.onViewableItemsChanged;if(o)if(n>1){var s=[],l=[];e.viewableItems.forEach(function(e){return r._pushMultiColumnViewable(l,e)}),e.changed.forEach(function(e){return r._pushMultiColumnViewable(s,e)}),o({viewableItems:l,changed:s})}else o(e)},r._renderItem=function(e){var t=r.props,n=t.renderItem,o=t.numColumns,i=t.columnWrapperStyle;if(o>1){var u=e.item,c=e.index;return a(Array.isArray(u),"Expected array of items with numColumns > 1"),s.createElement(l,{style:[{flexDirection:"row"},i]},u.map(function(t,r){var l=n({item:t,index:c*o+r,separators:e.separators});return l&&s.cloneElement(l,{key:r})}))}return n(e)},o=n,babelHelpers.possibleConstructorReturn(r,o)}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"scrollToEnd",value:function(e){this._listRef.scrollToEnd(e)}},{key:"scrollToIndex",value:function(e){this._listRef.scrollToIndex(e)}},{key:"scrollToItem",value:function(e){this._listRef.scrollToItem(e)}},{key:"scrollToOffset",value:function(e){this._listRef.scrollToOffset(e)}},{key:"recordInteraction",value:function(){this._listRef.recordInteraction()}},{key:"flashScrollIndicators",value:function(){this._listRef.flashScrollIndicators()}},{key:"getScrollResponder",value:function(){if(this._listRef)return this._listRef.getScrollResponder()}},{key:"getScrollableNode",value:function(){if(this._listRef)return this._listRef.getScrollableNode()}},{key:"setNativeProps",value:function(e){this._listRef&&this._listRef.setNativeProps(e)}},{key:"componentWillMount",value:function(){this._checkProps(this.props)}},{key:"componentWillReceiveProps",value:function(e){a(e.numColumns===this.props.numColumns,"Changing numColumns on the fly is not supported. Change the key prop on FlatList when changing the number of columns to force a fresh render of the component."),this._checkProps(e)}},{key:"_checkProps",value:function(e){var t=e.getItem,n=e.getItemCount,r=e.horizontal,o=e.legacyImplementation,s=e.numColumns,l=e.columnWrapperStyle;a(!t&&!n,"FlatList does not support custom data formats."),s>1?a(!r,"numColumns does not support horizontal."):a(!l,"columnWrapperStyle not supported for single column lists"),o&&(a(1===s,"Legacy list does not support multiple columns."),this._hasWarnedLegacy||(console.warn("FlatList: Using legacyImplementation - some features not supported and performance may suffer"),this._hasWarnedLegacy=!0))}},{key:"_pushMultiColumnViewable",value:function(e,t){var n=this.props,r=n.numColumns,o=n.keyExtractor;t.item.forEach(function(n,s){a(null!=t.index,"Missing index!");var l=t.index*r+s;e.push(babelHelpers.extends({},t,{item:n,key:o(n,l),index:l}))})}},{key:"render",value:function(){return this.props.legacyImplementation?s.createElement(o,babelHelpers.extends({},this.props,{items:this.props.data,ref:this._captureRef})):s.createElement(i,babelHelpers.extends({},this.props,{renderItem:this._renderItem,getItem:this._getItem,getItemCount:this._getItemCount,keyExtractor:this._keyExtractor,ref:this._captureRef,onViewableItemsChanged:this.props.onViewableItemsChanged&&this._onViewableItemsChanged}))}}]),t}(s.PureComponent);c.defaultProps=u,n.exports=c},222); +__d(function(e,t,r,o){"use strict";var n=t(224),s=t(114),a=t(229),i=t(207),c=t(13),l=function(e){function t(){var e,r,o,a,i=this;babelHelpers.classCallCheck(this,t);for(var l=arguments.length,p=Array(l),u=0;u=this._prevRenderedRowsCount&&o.rowShouldUpdate(p,C),E=r.createElement(c,{key:"r_"+b,shouldUpdate:!!y,render:this.props.renderRow.bind(null,o.getRowData(p,C),g,_,this._onRowHighlighted)});if(e.push(E),h++,this.props.renderSeparator&&(C!==w.length-1||p===n.length-1)){var L=this.state.highlightedRow.sectionID===g&&(this.state.highlightedRow.rowID===_||this.state.highlightedRow.rowID===w[C+1]),I=this.props.renderSeparator(g,_,L);I&&(e.push(r.createElement(u,{key:"s_"+b},I)),h++)}if(++s===this.state.curRenderedRowsCount)break}if(s>=this.state.curRenderedRowsCount)break}var P=this.props,H=P.renderScrollComponent,D=babelHelpers.objectWithoutProperties(P,["renderScrollComponent"]);return D.scrollEventThrottle||(D.scrollEventThrottle=v),void 0===D.removeClippedSubviews&&(D.removeClippedSubviews=!0),babelHelpers.extends(D,{onScroll:this._onScroll,stickyHeaderIndices:this.props.stickyHeaderIndices.concat(i),onKeyboardWillShow:void 0,onKeyboardWillHide:void 0,onKeyboardDidShow:void 0,onKeyboardDidHide:void 0}),R(H(D),{ref:this._setScrollComponentRef,onContentSizeChange:this._onContentSizeChange,onLayout:this._onLayout,DEPRECATED_sendUpdatedChildFrames:void 0!==typeof D.onChangeVisibleRows},d,e,a)},_measureAndUpdateScrollProps:function(){var e=this.getScrollResponder();e&&e.getInnerViewNode&&d&&d.calculateChildFrames&&d.calculateChildFrames(l.findNodeHandle(e),this._updateVisibleRows)},_setScrollComponentRef:function(e){this._scrollComponent=e},_onContentSizeChange:function(e,t){var o=this.props.horizontal?e:t;o!==this.scrollProperties.contentLength&&(this.scrollProperties.contentLength=o,this._updateVisibleRows(),this._renderMoreRowsIfNeeded()),this.props.onContentSizeChange&&this.props.onContentSizeChange(e,t)},_onLayout:function(e){var t=e.nativeEvent.layout,o=t.width,n=t.height,s=this.props.horizontal?o:n;s!==this.scrollProperties.visibleLength&&(this.scrollProperties.visibleLength=s,this._updateVisibleRows(),this._renderMoreRowsIfNeeded()),this.props.onLayout&&this.props.onLayout(e)},_maybeCallOnEndReached:function(e){return!!(this.props.onEndReached&&this.scrollProperties.contentLength!==this._sentEndForContentLength&&this._getDistanceFromEnd(this.scrollProperties)r||vthis.props.onEndReachedThreshold&&(this._sentEndForContentLength=null),this.props.onScroll&&this.props.onScroll(e)}});o.exports=b},224); +__d(function(t,e,i,n){"use strict";function s(t,e,i){return t[e][i]}function a(t,e){return t[e]}function o(t){for(var e=0,i=0;i=this.rowIdentities[i].length))return this.rowIdentities[i][e];e-=this.rowIdentities[i].length}return null}},{key:"getSectionIDForFlatIndex",value:function(t){for(var e=t,i=0;i=this.rowIdentities[i].length))return this.sectionIdentities[i];e-=this.rowIdentities[i].length}return null}},{key:"getSectionLengths",value:function(){for(var t=[],e=0;e2?c-2:0),a=2;a=0&&l0){v=!1;var _=i?"width":"height",g=this.props.initialScrollIndex?-1:this.props.initialNumToRender-1,y=this.state,b=y.first,C=y.last;this._pushCells(p,u,c,0,g,h);var x=Math.max(g+1,b);if(!a&&b>g+1){var S=!1;if(c.size>0)for(var M=s?1:0,R=x-1;R>g;R--)if(c.has(R+M)){var E=this._getFrameMetricsApprox(g),k=this._getFrameMetricsApprox(R),I=k.offset-(E.offset+E.length);p.push(l.createElement(d,{key:"$sticky_lead",style:babelHelpers.defineProperty({},_,I)})),this._pushCells(p,u,c,R,R,h);var T=this._getFrameMetricsApprox(b).offset-(k.offset+k.length);p.push(l.createElement(d,{key:"$sticky_trail",style:babelHelpers.defineProperty({},_,T)})),S=!0;break}if(!S){var w=this._getFrameMetricsApprox(g),H=this._getFrameMetricsApprox(b).offset-(w.offset+w.length);p.push(l.createElement(d,{key:"$lead_spacer",style:babelHelpers.defineProperty({},_,H)}))}}if(this._pushCells(p,u,c,x,C,h),!this._hasWarned.keys&&v&&(console.warn("VirtualizedList: missing keys for items, make sure to specify a key property on each item or provide a custom keyExtractor."),this._hasWarned.keys=!0),!a&&C0||r2&&p500&&e._scrollMetrics.dt>500&&o>5*s&&!e._hasWarned.perf&&(f("VirtualizedList: You have a large list that is slow to update - make sure your renderItem function renders components that follow React performance best practices like PureComponent, shouldComponentUpdate, etc.",{dt:i,prevDt:e._scrollMetrics.dt,contentLength:o}),e._hasWarned.perf=!0);var l=n-e._scrollMetrics.offset,a=l/i;e._scrollMetrics={contentLength:o,dt:i,dOffset:l,offset:n,timestamp:r,velocity:a,visibleLength:s},e._updateViewableItems(e.props.data),e.props&&(e._maybeCallOnEndReached(),0!==a&&e._fillRateHelper.activate(),e._computeBlankness(),e._scheduleCellsToRenderUpdate())},this._onScrollBeginDrag=function(t){e._viewabilityHelper.recordInteraction(),e.props.onScrollBeginDrag&&e.props.onScrollBeginDrag(t)},this._onScrollEndDrag=function(t){var r=t.nativeEvent.velocity;r&&(e._scrollMetrics.velocity=e._selectOffset(r)),e._computeBlankness(),e.props.onScrollEndDrag&&e.props.onScrollEndDrag(t)},this._onMomentumScrollEnd=function(t){e._scrollMetrics.velocity=0,e._computeBlankness(),e.props.onMomentumScrollEnd&&e.props.onMomentumScrollEnd(t)},this._updateCellsToRender=function(){var t=e.props,r=t.data,s=t.getItemCount,o=t.onEndReachedThreshold,n=e._isVirtualizationDisabled();e._updateViewableItems(r),r&&e.setState(function(t){var i=void 0;if(n){var l=e._scrollMetrics,a=l.contentLength,h=l.offset,p=l.visibleLength,c=a-p-h,d=ct,"Tried to get frame for out of range index "+t);var a=o(s,t),h=a&&e._frames[l(a,t)];return h&&h.index===t||i&&(h=i(s,t)),h}},C=function(e){function t(){var e,r,s,o;babelHelpers.classCallCheck(this,t);for(var n=arguments.length,i=Array(n),l=0;l0&&void 0!==arguments[0]?arguments[0]:{abort:!1};this._taskHandle&&(this._taskHandle.cancel(),t.abort||this._callback(),this._taskHandle=null)}},{key:"schedule",value:function(){var t=this;if(!this._taskHandle){var a=setTimeout(function(){t._taskHandle=n.runAfterInteractions(function(){t._taskHandle=null,t._callback()})},this._delay);this._taskHandle={cancel:function(){return clearTimeout(a)}}}}}]),t}();e.exports=s},231); +__d(function(t,e,a,n){"use strict";var s=e(24),i=e(27),l=function t(){babelHelpers.classCallCheck(this,t),this.any_blank_count=0,this.any_blank_ms=0,this.any_blank_speed_sum=0,this.mostly_blank_count=0,this.mostly_blank_ms=0,this.pixels_blank=0,this.pixels_sampled=0,this.pixels_scrolled=0,this.total_time_spent=0,this.sample_count=0},_=!1,o=[],r=10,h=_?1:null,u=function(){function t(e){babelHelpers.classCallCheck(this,t),this._anyBlankStartTime=null,this._enabled=!1,this._info=new l,this._mostlyBlankStartTime=null,this._samplesStartTime=null,this._getFrameMetrics=e,this._enabled=(h||0)>Math.random(),this._resetData()}return babelHelpers.createClass(t,null,[{key:"addListener",value:function(t){return i(null!==h,"Call `FillRateHelper.setSampleRate` before `addListener`."),o.push(t),{remove:function(){o=o.filter(function(e){return t!==e})}}}},{key:"setSampleRate",value:function(t){h=t}},{key:"setMinSampleCount",value:function(t){r=t}}]),babelHelpers.createClass(t,[{key:"activate",value:function(){this._enabled&&null==this._samplesStartTime&&(_&&console.debug("FillRateHelper: activate"),this._samplesStartTime=s())}},{key:"deactivateAndFlush",value:function(){if(this._enabled){var t=this._samplesStartTime;if(null==t)return void(_&&console.debug("FillRateHelper: bail on deactivate with no start time"));if(this._info.sample_count0&&(h=Math.min(_,Math.max(0,m.offset-i)));for(var f=0,c=e.last,b=this._getFrameMetrics(c);c>=e.first&&(!b||!b.inLayout);)b=this._getFrameMetrics(c),c--;if(b&&c0?(this._anyBlankStartTime=r,this._info.any_blank_speed_sum+=o,this._info.any_blank_count++,this._info.pixels_blank+=d,p>.5&&(this._mostlyBlankStartTime=r,this._info.mostly_blank_count++)):(o<.01||Math.abs(n)<1)&&this.deactivateAndFlush(),p}},{key:"enabled",value:function(){return this._enabled}},{key:"_resetData",value:function(){this._anyBlankStartTime=null,this._info=new l,this._mostlyBlankStartTime=null,this._samplesStartTime=null}}]),t}();a.exports=u},232); +__d(function(e,t,i,r){"use strict";function a(e,t,i,r,a,l){if(s(i,r,a))return!0;var o=n(i,r,a),h=100*(e?o/a:o/l);return h>=t}function n(e,t,i){var r=Math.min(t,i)-Math.max(e,0);return Math.max(0,r)}function s(e,t,i){return e>=0&&t<=i&&t>e}var l=t(13),o=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{viewAreaCoveragePercentThreshold:0};babelHelpers.classCallCheck(this,e),this._hasInteracted=!1,this._lastUpdateTime=0,this._timers=new Set,this._viewableIndices=[],this._viewableItems=new Map,this._config=t}return babelHelpers.createClass(e,[{key:"dispose",value:function(){this._timers.forEach(clearTimeout)}},{key:"computeViewableItems",value:function(e,t,i,r,n){var s=this._config,o=s.itemVisiblePercentThreshold,h=s.viewAreaCoveragePercentThreshold,c=null!=h,u=c?h:o;l(null!=u&&null!=o!=(null!=h),"Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold");var f=[];if(0===e)return f;var v=-1,m=n||{first:0,last:e-1},d=m.first,b=m.last;l(b0)v=_,a(c,u,y,w,i,p.length)&&f.push(_);else if(v>=0)break}}return f}},{key:"onUpdate",value:function(e,t,i,r,a,n,s){var l=this,o=Date.now();0===this._lastUpdateTime&&e>0&&r(0)&&(this._lastUpdateTime=o);var h=this._lastUpdateTime?o-this._lastUpdateTime:0;if(!this._config.waitForInteraction||this._hasInteracted){var c=[];if(e&&(c=this.computeViewableItems(e,t,i,r,s)),this._viewableIndices.length!==c.length||!this._viewableIndices.every(function(e,t){return e===c[t]}))if(this._viewableIndices=c,this._lastUpdateTime=o,this._config.minimumViewTime&&h=l.length)break;c=l[h++]}else{if(h=l.next(),h.done)break;c=h.value}var u=c,f=babelHelpers.slicedToArray(u,2),v=f[0],m=f[1];a.has(v)||s.push(m)}for(var d=a,b=Array.isArray(d),_=0,d=b?d:d["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var p;if(b){if(_>=d.length)break;p=d[_++]}else{if(_=d.next(),_.done)break;p=_.value}var y=p,w=babelHelpers.slicedToArray(y,2),g=w[0],T=w[1];n.has(g)||s.push(babelHelpers.extends({},T,{isViewable:!1}))}s.length>0&&(this._viewableItems=n,t({viewableItems:Array.from(n.values()),changed:s}))}}]),e}();i.exports=o},233); +__d(function(t,e,r,a){"use strict";function n(t,e,r){for(var a=[],n=0;n=t[l]&&(a[l]=n,l===t.length-1))return f(a.length===t.length,"bad offsets input, should be in increasing order "+JSON.stringify(t)),a;return a}function i(t,e){return e.last-e.first+1-Math.max(0,1+Math.min(e.last,t.last)-Math.max(e.first,t.first))}function s(t,e,r,a){var s=t.data,f=t.getItemCount,l=t.maxToRenderPerBatch,o=t.windowSize,u=f(s);if(0===u)return e;var h=a.offset,m=a.velocity,c=a.visibleLength,d=Math.max(0,h),v=d+c,g=(o-1)*c,b=.5,w=m>1?"after":m<-1?"before":"none",x=Math.max(0,d-(1-b)*g),M=Math.max(0,v+b*g),p=n([x,d,v,M],t.getItemCount(t.data),r),y=babelHelpers.slicedToArray(p,4),C=y[0],O=y[1],L=y[2],R=y[3];C=null==C?0:C,O=null==O?Math.max(0,C):O,R=null==R?u-1:R,L=null==L?Math.min(R,O+l-1):L;for(var S={first:O,last:L},T=i(e,S);;){if(O<=C&&L>=R)break;var k=T>=l,B=O<=e.first||O>e.last,I=O>C&&(!k||!B),J=L>=e.last||L=O&&O>=0&&L=C&&L<=R&&O<=S.first&&L>=S.last))throw new Error("Bad window calculation "+JSON.stringify({first:O,last:L,itemCount:u,overscanFirst:C,overscanLast:R,visible:S}));return{first:O,last:L}}var f=e(13),l={computeWindowedRenderLimits:s,elementsThatOverlapOffsets:n,newRangeCount:i};r.exports=l},234); +__d(function(e,t,r,l){"use strict";var s=t(205),i=t(114),a=t(143),n=t(110),o=t(236),c=function(e){function t(){var e,r,l,s;babelHelpers.classCallCheck(this,t);for(var i=arguments.length,a=Array(i),n=0;n=0){var i=n.Children.toArray(e.props.children),o=i[s].props.value;e.props.onValueChange(o,s)}else e.props.onValueChange(null,s)}e._lastNativePosition=t.nativeEvent.position,e.forceUpdate()}},_=l.create({pickerAndroid:{height:50}}),y={nativeOnly:{items:!0,selected:!0}},x=h("AndroidDropdownPicker",f,y),C=h("AndroidDialogPicker",f,y);s.exports=f},248); +__d(function(e,t,r,n){"use strict";var o=t(35),s=t(36),a=t(111),i=t(114),l=t(39),p=t(130),c=["Horizontal","Normal","Small","Large","Inverse","SmallInverse","LargeInverse"],u=function(e,t,r){for(var n=function(){var r=e[t],n=e.styleAttr;if(!r&&"Horizontal"!==n)return new Error("indeterminate=false is only valid for styleAttr=Horizontal")},o=arguments.length,s=Array(o>3?o-3:0),i=3;i=a.data.length+1)){if(t===-1)return{section:a,key:i+":header",index:null,header:!0,trailingSection:this.props.sections[n+1]};if(t===a.data.length)return{section:a,key:i+":footer",index:null,header:!1,trailingSection:this.props.sections[n+1]};var o=a.keyExtractor||r;return{section:a,key:i+":"+o(a.data[t],t),index:t,leadingItem:a.data[t-1],leadingSection:this.props.sections[n-1],trailingItem:a.data[t+1],trailingSection:this.props.sections[n+1]}}t-=a.data.length+1}}},{key:"_getSeparatorComponent",value:function(e,t){if(t=t||this._subExtractor(e),!t)return null;var r=t.section.ItemSeparatorComponent||this.props.ItemSeparatorComponent,n=this.props.SectionSeparatorComponent,a=e===this.state.childProps.getItemCount()-1,i=t.index===t.section.data.length-1;return n&&i?n:!r||i||a?null:r}},{key:"_computeState",value:function(e){var t=e.ListHeaderComponent?1:0,r=[],n=e.sections.reduce(function(e,n){return r.push(e+t),e+n.data.length+2},0);return{childProps:babelHelpers.extends({},e,{renderItem:this._renderItem,ItemSeparatorComponent:void 0,data:e.sections,getItemCount:function(){return n},getItem:a,keyExtractor:this._keyExtractor,onViewableItemsChanged:e.onViewableItemsChanged?this._onViewableItemsChanged:void 0,stickyHeaderIndices:e.stickySectionHeadersEnabled?r:void 0})}}}]),babelHelpers.createClass(t,[{key:"componentWillReceiveProps",value:function(e){this.setState(this._computeState(e))}},{key:"render",value:function(){return i.createElement(s,babelHelpers.extends({},this.state.childProps,{ref:this._captureRef}))}}]),t}(i.PureComponent);p.defaultProps=babelHelpers.extends({},s.defaultProps,{data:[]});var c=function(e){function t(){var e,r,n,a;babelHelpers.classCallCheck(this,t);for(var i=arguments.length,o=Array(i),s=0;s0},_swipeFullSpeed:function(e){this.state.currentLeft.setValue(this._previousLeft+e.dx)},_swipeSlowSpeed:function(e){this.state.currentLeft.setValue(this._previousLeft+e.dx/R)},_isSwipingExcessivelyRightFromClosedPosition:function(e){var i=_?-e.dx:e.dx;return this._isSwipingRightFromClosed(e)&&i>x},_onPanResponderTerminationRequest:function(e,i){return!1},_animateTo:function(e){var i=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:S,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:c;o.timing(this.state.currentLeft,{duration:n,toValue:e,useNativeDriver:!0}).start(function(){i._previousLeft=e,t()})},_animateToOpenPosition:function(){var e=_?-this.props.maxSwipeDistance:this.props.maxSwipeDistance;this._animateTo(-e)},_animateToOpenPositionWith:function(e,i){e=e>f?e:f;var n=Math.abs((this.props.maxSwipeDistance-Math.abs(i))/e),t=_?-this.props.maxSwipeDistance:this.props.maxSwipeDistance;this._animateTo(-t,n)},_animateToClosedPosition:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:S;this._animateTo(m,e)},_animateToClosedPositionDuringBounce:function(){this._animateToClosedPosition(T)},_animateBounceBack:function(e){var i=_?-g:g;this._animateTo(-i,e,this._animateToClosedPositionDuringBounce)},_isValidSwipe:function(e){return!(this.props.preventSwipeRight&&this._previousLeft===m&&e.dx>0)&&Math.abs(e.dx)>w},_shouldAnimateRemainder:function(e){return Math.abs(e.dx)>this.props.swipeThreshold||e.vx>f},_handlePanResponderEnd:function(e,i){var n=_?-i.dx:i.dx;this._isSwipingRightFromClosed(i)?(this.props.onOpen(),this._animateBounceBack(T)):this._shouldAnimateRemainder(i)?n<0?(this.props.onOpen(),this._animateToOpenPositionWith(i.vx,n)):(this.props.onClose(),this._animateToClosedPosition()):this._previousLeft===m?this._animateToClosedPosition():this._animateToOpenPosition(),this.props.onSwipeEnd()}}),O=u.create({slideOutContainer:{bottom:0,left:0,position:"absolute",right:0,top:0}});n.exports=C},259); +__d(function(e,n,o,t){"use strict";function r(e,n,o,t){e.handle&&(a.clearInteractionHandle(e.handle),e.handle=null),n&&n(o,t)}var a=n(185),u=n(261),s=u.currentCentroidXOfTouchesChangedAfter,d=u.currentCentroidYOfTouchesChangedAfter,i=u.previousCentroidXOfTouchesChangedAfter,c=u.previousCentroidYOfTouchesChangedAfter,p=u.currentCentroidX,v=u.currentCentroidY,h={_initializeGestureState:function(e){e.moveX=0,e.moveY=0,e.x0=0,e.y0=0,e.dx=0,e.dy=0,e.vx=0,e.vy=0,e.numberActiveTouches=0,e._accountsForMovesUpTo=0},_updateGestureStateOnMove:function(e,n){e.numberActiveTouches=n.numberActiveTouches,e.moveX=s(n,e._accountsForMovesUpTo),e.moveY=d(n,e._accountsForMovesUpTo);var o=e._accountsForMovesUpTo,t=i(n,o),r=s(n,o),a=c(n,o),u=d(n,o),p=e.dx+(r-t),v=e.dy+(u-a),h=n.mostRecentTimeStamp-e._accountsForMovesUpTo;e.vx=(p-e.dx)/h,e.vy=(v-e.dy)/h,e.dx=p,e.dy=v,e._accountsForMovesUpTo=n.mostRecentTimeStamp},create:function(e){var n={handle:null},o={stateID:Math.random()};h._initializeGestureState(o);var t={onStartShouldSetResponder:function(n){return void 0!==e.onStartShouldSetPanResponder&&e.onStartShouldSetPanResponder(n,o)},onMoveShouldSetResponder:function(n){return void 0!==e.onMoveShouldSetPanResponder&&e.onMoveShouldSetPanResponder(n,o)},onStartShouldSetResponderCapture:function(n){return 1===n.nativeEvent.touches.length&&h._initializeGestureState(o),o.numberActiveTouches=n.touchHistory.numberActiveTouches,void 0!==e.onStartShouldSetPanResponderCapture&&e.onStartShouldSetPanResponderCapture(n,o)},onMoveShouldSetResponderCapture:function(n){var t=n.touchHistory;return o._accountsForMovesUpTo!==t.mostRecentTimeStamp&&(h._updateGestureStateOnMove(o,t),!!e.onMoveShouldSetPanResponderCapture&&e.onMoveShouldSetPanResponderCapture(n,o))},onResponderGrant:function(t){return n.handle||(n.handle=a.createInteractionHandle()),o.x0=p(t.touchHistory),o.y0=v(t.touchHistory),o.dx=0,o.dy=0,e.onPanResponderGrant&&e.onPanResponderGrant(t,o),void 0===e.onShouldBlockNativeResponder||e.onShouldBlockNativeResponder()},onResponderReject:function(t){r(n,e.onPanResponderReject,t,o)},onResponderRelease:function(t){r(n,e.onPanResponderRelease,t,o),h._initializeGestureState(o)},onResponderStart:function(n){var t=n.touchHistory;o.numberActiveTouches=t.numberActiveTouches,e.onPanResponderStart&&e.onPanResponderStart(n,o)},onResponderMove:function(n){var t=n.touchHistory;o._accountsForMovesUpTo!==t.mostRecentTimeStamp&&(h._updateGestureStateOnMove(o,t),e.onPanResponderMove&&e.onPanResponderMove(n,o))},onResponderEnd:function(t){var a=t.touchHistory;o.numberActiveTouches=a.numberActiveTouches,r(n,e.onPanResponderEnd,t,o)},onResponderTerminate:function(t){r(n,e.onPanResponderTerminate,t,o),h._initializeGestureState(o)},onResponderTerminationRequest:function(n){return void 0===e.onPanResponderTerminationRequest||e.onPanResponderTerminationRequest(n,o)}};return{panHandlers:t,getInteractionHandle:function(){return n.handle}}}};o.exports=h},260); +__d(function(_,t,E,o){"use strict";var r=t(39),s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;E.exports=s.TouchHistoryMath},261); +__d(function(e,t,r,s){"use strict";var l=t(114),n=t(143),o=t(263),p=t(110),a=function(e){function t(){return babelHelpers.classCallCheck(this,t),babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"render",value:function(){return l.createElement(p,{style:[this.props.style,i.tabGroup]},this.props.children)}}]),t}(l.Component);a.Item=o;var i=n.create({tabGroup:{flex:1}});r.exports=a},262); +__d(function(e,t,r,s){"use strict";var l=t(114),o=t(110),n=t(143),p=function(e){function t(){return babelHelpers.classCallCheck(this,t),babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"render",value:function(){return this.props.selected?l.createElement(o,{style:[this.props.style,i.tab]},this.props.children):l.createElement(o,null)}}]),t}(l.Component),i=n.create({tab:{top:0,right:0,bottom:0,left:0,borderColor:"red",borderWidth:1}});r.exports=p},263); +__d(function(e,t,n,o){"use strict";var s=t(36),i=t(265),a=t(31),r=t(38),l=(t(23),t(114)),u=t(139),c=t(111),h=t(39),p=t(143),d=t(164),f=t(57),g=t(174),b=t(173),y=t(58),v=t(130),_=t(28),C=t(13),S=t(141),x=(t(27),S("AndroidTextInput",null)),m=["phoneNumber","link","address","calendarEvent","none","all"],T=u({displayName:"TextInput",statics:{State:f},propTypes:babelHelpers.extends({},v,{autoCapitalize:c.oneOf(["none","sentences","words","characters"]),autoCorrect:c.bool,spellCheck:c.bool,autoFocus:c.bool,autoGrow:c.bool,editable:c.bool,keyboardType:c.oneOf(["default","email-address","numeric","phone-pad","ascii-capable","numbers-and-punctuation","url","number-pad","name-phone-pad","decimal-pad","twitter","web-search"]),keyboardAppearance:c.oneOf(["default","light","dark"]),returnKeyType:c.oneOf(["done","go","next","search","send","none","previous","default","emergency-call","google","join","route","yahoo"]),returnKeyLabel:c.string,maxLength:c.number,maxHeight:c.number,numberOfLines:c.number,disableFullscreenUI:c.bool,enablesReturnKeyAutomatically:c.bool,multiline:c.bool,textBreakStrategy:c.oneOf(["simple","highQuality","balanced"]),onBlur:c.func,onFocus:c.func,onChange:c.func,onChangeText:c.func,onContentSizeChange:c.func,onEndEditing:c.func,onSelectionChange:c.func,onSubmitEditing:c.func,onKeyPress:c.func,onLayout:c.func,onScroll:c.func,placeholder:c.node,placeholderTextColor:s,secureTextEntry:c.bool,selectionColor:s,selectionState:c.instanceOf(i),selection:c.shape({start:c.number.isRequired,end:c.number}),value:c.string,defaultValue:c.string,clearButtonMode:c.oneOf(["never","while-editing","unless-editing","always"]),clearTextOnFocus:c.bool,selectTextOnFocus:c.bool,blurOnSubmit:c.bool,style:d.propTypes.style,underlineColorAndroid:s,inlineImageLeft:c.string,inlineImagePadding:c.number,dataDetectorTypes:c.oneOfType([c.oneOf(m),c.arrayOf(c.oneOf(m))]),caretHidden:c.bool}),mixins:[r,g],getInitialState:function(){return{layoutHeight:this._layoutHeight}},isFocused:function(){return f.currentlyFocusedField()===h.findNodeHandle(this._inputRef)},contextTypes:{onFocusRequested:c.func,focusEmitter:c.instanceOf(a)},_inputRef:void 0,_focusSubscription:void 0,_lastNativeText:void 0,_lastNativeSelection:void 0,_layoutHeight:-1,componentDidMount:function(){var e=this;return this._lastNativeText=this.props.value,this.context.focusEmitter?(this._focusSubscription=this.context.focusEmitter.addListener("focus",function(t){e===t?e.requestAnimationFrame(e.focus):e.isFocused()&&e.blur()}),void(this.props.autoFocus&&this.context.onFocusRequested(this))):void(this.props.autoFocus&&this.requestAnimationFrame(this.focus))},componentWillUnmount:function(){this._focusSubscription&&this._focusSubscription.remove(),this.isFocused()&&this.blur()},getChildContext:function(){return{isInAParentText:!0}},childContextTypes:{isInAParentText:c.bool},clear:function(){this.setNativeProps({text:""})},render:function(){return this._renderAndroid()},_getText:function(){return"string"==typeof this.props.value?this.props.value:"string"==typeof this.props.defaultValue?this.props.defaultValue:""},_setNativeRef:function(e){this._inputRef=e},_renderIOS:function(){var e,t=babelHelpers.extends({},this.props);if(t.style=[this.props.style],t.selection&&null==t.selection.end&&(t.selection={start:t.selection.start,end:t.selection.start}),t.multiline){var n=t.children,o=0;l.Children.forEach(n,function(){return++o}),C(!(t.value&&o),"Cannot specify both value and children."),o>=1&&(n=l.createElement(d,{style:t.style},n)),t.inputView&&(n=[n,t.inputView]),t.style.unshift(I.multilineInput),e=l.createElement(RCTTextView,babelHelpers.extends({ref:this._setNativeRef},t,{children:n,onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onContentSizeChange:this.props.onContentSizeChange,onSelectionChange:this._onSelectionChange,onTextInput:this._onTextInput,onSelectionChangeShouldSetResponder:_.thatReturnsTrue,text:this._getText(),dataDetectorTypes:this.props.dataDetectorTypes,onScroll:this._onScroll}))}else e=l.createElement(RCTTextField,babelHelpers.extends({ref:this._setNativeRef},t,{onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onSelectionChange:this._onSelectionChange,onSelectionChangeShouldSetResponder:_.thatReturnsTrue,text:this._getText()}));return l.createElement(b,{onLayout:t.onLayout,onPress:this._onPress,rejectResponderTermination:!0,accessible:t.accessible,accessibilityLabel:t.accessibilityLabel,accessibilityTraits:t.accessibilityTraits,nativeID:this.props.nativeID,testID:t.testID},e)},_renderAndroid:function(){var e=babelHelpers.extends({},this.props);e.style=this.props.style,this.state.layoutHeight>=0&&(e.style=[e.style,{height:this.state.layoutHeight}]),e.autoCapitalize=y.AndroidTextInput.Constants.AutoCapitalizationType[this.props.autoCapitalize];var t=this.props.children,n=0;l.Children.forEach(t,function(){return++n}),C(!(this.props.value&&n),"Cannot specify both value and children."),n>1&&(t=l.createElement(d,null,t)),e.selection&&null==e.selection.end&&(e.selection={start:e.selection.start,end:e.selection.start});var o=l.createElement(x,babelHelpers.extends({ref:this._setNativeRef},e,{mostRecentEventCount:0,onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onContentSizeChange:this._onContentSizeChange,onSelectionChange:this._onSelectionChange,onTextInput:this._onTextInput,text:this._getText(),children:t,disableFullscreenUI:this.props.disableFullscreenUI,textBreakStrategy:this.props.textBreakStrategy,onScroll:this._onScroll}));return l.createElement(b,{onLayout:this._onLayout,onPress:this._onPress,accessible:this.props.accessible,accessibilityLabel:this.props.accessibilityLabel,accessibilityComponentType:this.props.accessibilityComponentType,nativeID:this.props.nativeID,testID:this.props.testID},o)},_onFocus:function(e){this.props.onFocus&&this.props.onFocus(e),this.props.selectionState&&this.props.selectionState.focus()},_onPress:function(e){(this.props.editable||void 0===this.props.editable)&&this.focus()},_onChange:function(e){this._inputRef&&this._inputRef.setNativeProps({mostRecentEventCount:e.nativeEvent.eventCount});var t=e.nativeEvent.text;this.props.onChange&&this.props.onChange(e),this.props.onChangeText&&this.props.onChangeText(t),this._inputRef&&(this._lastNativeText=t,this.forceUpdate())},_onContentSizeChange:function(e){var t=e.nativeEvent.contentSize.height;this.props.autoGrow&&(this.props.maxHeight&&(t=Math.min(this.props.maxHeight,t)),this.setState({layoutHeight:Math.max(this._layoutHeight,t)})),this.props.onContentSizeChange&&this.props.onContentSizeChange(e)},_onLayout:function(e){var t=e.nativeEvent.layout.height;t&&(this._layoutHeight=e.nativeEvent.layout.height),this.props.onLayout&&this.props.onLayout(e)},_onSelectionChange:function(e){this.props.onSelectionChange&&this.props.onSelectionChange(e),this._inputRef&&(this._lastNativeSelection=e.nativeEvent.selection,(this.props.selection||this.props.selectionState)&&this.forceUpdate())},componentDidUpdate:function(){var e={};this._lastNativeText!==this.props.value&&"string"==typeof this.props.value&&(e.text=this.props.value);var t=this.props.selection;this._lastNativeSelection&&t&&(this._lastNativeSelection.start!==t.start||this._lastNativeSelection.end!==t.end)&&(e.selection=this.props.selection),Object.keys(e).length>0&&this._inputRef&&this._inputRef.setNativeProps(e),this.props.selectionState&&t&&this.props.selectionState.update(t.start,t.end)},_onBlur:function(e){this.blur(),this.props.onBlur&&this.props.onBlur(e),this.props.selectionState&&this.props.selectionState.blur()},_onTextInput:function(e){this.props.onTextInput&&this.props.onTextInput(e)},_onScroll:function(e){this.props.onScroll&&this.props.onScroll(e)}}),I=p.create({multilineInput:{paddingTop:5}});n.exports=T},264); +__d(function(s,t,e,f){"use strict";var u=t(266),h=function(){function s(t,e){babelHelpers.classCallCheck(this,s),this._anchorOffset=t,this._focusOffset=e,this._hasFocus=!1}return babelHelpers.createClass(s,[{key:"update",value:function(s,t){this._anchorOffset===s&&this._focusOffset===t||(this._anchorOffset=s,this._focusOffset=t,this.emit("update"))}},{key:"constrainLength",value:function(s){this.update(Math.min(this._anchorOffset,s),Math.min(this._focusOffset,s))}},{key:"focus",value:function(){this._hasFocus||(this._hasFocus=!0,this.emit("focus"))}},{key:"blur",value:function(){this._hasFocus&&(this._hasFocus=!1,this.emit("blur"))}},{key:"hasFocus",value:function(){return this._hasFocus}},{key:"isCollapsed",value:function(){return this._anchorOffset===this._focusOffset}},{key:"isBackward",value:function(){return this._anchorOffset>this._focusOffset}},{key:"getAnchorOffset",value:function(){return this._hasFocus?this._anchorOffset:null}},{key:"getFocusOffset",value:function(){return this._hasFocus?this._focusOffset:null}},{key:"getStartOffset",value:function(){return this._hasFocus?Math.min(this._anchorOffset,this._focusOffset):null}},{key:"getEndOffset",value:function(){return this._hasFocus?Math.max(this._anchorOffset,this._focusOffset):null}},{key:"overlaps",value:function(s,t){return this.hasFocus()&&this.getStartOffset()<=t&&s<=this.getEndOffset()}}]),s}();u(h,{blur:!0,focus:!0,update:!0}),e.exports=h},265); +__d(function(e,t,n,i){"use strict";function r(e,t){a(t,"Must supply set of valid event types");var n=e.prototype||e;a(!n.__eventEmitter,"An active emitter is already mixed in");var i=e.constructor;i&&a(i===Object||i===Function,"Mix EventEmitter into a class, not an instance"),n.hasOwnProperty(E)?babelHelpers.extends(n.__types,t):n.__types?n.__types=babelHelpers.extends({},n.__types,t):n.__types=t,babelHelpers.extends(n,d)}var s=t(31),_=t(267),o=t(268),a=t(13),v=t(269),E=v({__types:!0}),d={emit:function(e,t,n,i,r,s,_){return this.__getEventEmitter().emit(e,t,n,i,r,s,_)},emitAndHold:function(e,t,n,i,r,s,_){return this.__getEventEmitter().emitAndHold(e,t,n,i,r,s,_)},addListener:function(e,t,n){return this.__getEventEmitter().addListener(e,t,n)},once:function(e,t,n){return this.__getEventEmitter().once(e,t,n)},addRetroactiveListener:function(e,t,n){return this.__getEventEmitter().addRetroactiveListener(e,t,n)},addListenerMap:function(e,t){return this.__getEventEmitter().addListenerMap(e,t)},addRetroactiveListenerMap:function(e,t){return this.__getEventEmitter().addListenerMap(e,t)},removeAllListeners:function(){this.__getEventEmitter().removeAllListeners()},removeCurrentListener:function(){this.__getEventEmitter().removeCurrentListener()},releaseHeldEventType:function(e){this.__getEventEmitter().releaseHeldEventType(e)},__getEventEmitter:function(){if(!this.__eventEmitter){var e=new s,t=new o;this.__eventEmitter=new _(e,t)}return this.__eventEmitter}};n.exports=r},266); +__d(function(e,t,n,r){"use strict";var i=function(){function e(t,n){babelHelpers.classCallCheck(this,e),this._emitter=t,this._eventHolder=n,this._currentEventToken=null,this._emittingHeldEvents=!1}return babelHelpers.createClass(e,[{key:"addListener",value:function(e,t,n){return this._emitter.addListener(e,t,n)}},{key:"once",value:function(e,t,n){return this._emitter.once(e,t,n)}},{key:"addRetroactiveListener",value:function(e,t,n){var r=this._emitter.addListener(e,t,n);return this._emittingHeldEvents=!0,this._eventHolder.emitToListener(e,t,n),this._emittingHeldEvents=!1,r}},{key:"removeAllListeners",value:function(e){this._emitter.removeAllListeners(e)}},{key:"removeCurrentListener",value:function(){this._emitter.removeCurrentListener()}},{key:"listeners",value:function(e){return this._emitter.listeners(e)}},{key:"emit",value:function(e){for(var t,n=arguments.length,r=Array(n>1?n-1:0),i=1;i1?r-1:0),s=1;s1?r-1:0),i=1;i. Was "+e.type.displayName),a.createElement(e.type,n)})},o._onPageScroll=function(e){o.props.onPageScroll&&o.props.onPageScroll(e),"on-drag"===o.props.keyboardDismissMode&&p()},o._onPageScrollStateChanged=function(e){o.props.onPageScrollStateChanged&&o.props.onPageScrollStateChanged(e.nativeEvent.pageScrollState)},o._onPageSelected=function(e){o.props.onPageSelected&&o.props.onPageSelected(e)},o.setPage=function(e){i.dispatchViewManagerCommand(l.findNodeHandle(o),i.AndroidViewPager.Commands.setPage,[e])},o.setPageWithoutAnimation=function(e){i.dispatchViewManagerCommand(l.findNodeHandle(o),i.AndroidViewPager.Commands.setPageWithoutAnimation,[e])},r=t,babelHelpers.possibleConstructorReturn(o,r)}return babelHelpers.inherits(n,e),babelHelpers.createClass(n,[{key:"componentDidMount",value:function(){null!=this.props.initialPage&&this.setPageWithoutAnimation(this.props.initialPage)}},{key:"render",value:function(){return a.createElement(u,babelHelpers.extends({},this.props,{ref:c,style:this.props.style,onPageScroll:this._onPageScroll,onPageScrollStateChanged:this._onPageScrollStateChanged,onPageSelected:this._onPageSelected,children:this._childrenWithOverridenStyle()}))}}]),n}(a.Component);g.propTypes=babelHelpers.extends({},s,{initialPage:r.number,onPageScroll:r.func,onPageScrollStateChanged:r.func,onPageSelected:r.func,pageMargin:r.number,keyboardDismissMode:r.oneOf(["none","on-drag"]),scrollEnabled:r.bool,peekEnabled:r.bool});var u=d("AndroidViewPager",g);t.exports=g},273); +__d(function(e,t,n,a){"use strict";var o=t(131),s=t(35),r=t(114),i=t(111),l=t(39),d=t(143),p=t(58),c=t(110),g=t(130),u=t(122),h=t(118),b=t(141),m=t(152),v="webview",f=h({IDLE:null,LOADING:null,ERROR:null}),w=function(){return r.createElement(c,{style:C.loadingView},r.createElement(s,{style:C.loadingProgressBar}))},E=function(e){function t(){var e,n,a,o;babelHelpers.classCallCheck(this,t);for(var s=arguments.length,r=Array(s),i=0;i=a.length)break;l=a[n++]}else{if(n=a.next(),n.done)break;l=n.value}var u=l,c=babelHelpers.slicedToArray(u,2),s=c[0],f=c[1];t[s]=f()}for(var d={},b=e._fileSources,y=Array.isArray(b),_=0,b=y?b:b["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var v;if(y){if(_>=b.length)break;v=b[_++]}else{if(_=b.next(),_.done)break;v=_.value}var S=v,p=babelHelpers.slicedToArray(S,2),x=p[0],k=p[1];d[x]=k()}i("BugReporting extraData:",t);var m=r(15).BugReporting;return m&&m.setExtraData&&m.setExtraData(t,d),{extras:t,files:d}}}]),e}();u._extraSources=new l,u._fileSources=new l,u._subscription=null,t.exports=u},277); +__d(function(e,t,r,i){"use strict";function n(){try{return u()}catch(e){return"Failed to dump react tree: "+e}}function u(){return"React tree dumps have been temporarily disabled while React is upgraded to Fiber."}r.exports=n},278); +__d(function(e,n,t,c){"use strict";var r=[],u={name:"default"},i={setActiveScene:function(e){u=e,r.forEach(function(e){return e(u)})},getActiveScene:function(){return u},addActiveSceneChangedListener:function(e){return r.push(e),{remove:function(){r=r.filter(function(n){return e!==n})}}}};t.exports=i},279); +__d(function(e,t,o,r){"use strict";function a(e,t,o,r){s(o,"Expect to have a valid rootTag, instead got ",o),p.render(c.createElement(n,{rootTag:o,WrapperComponent:r},c.createElement(e,babelHelpers.extends({},t,{rootTag:o}))),o)}var n=t(243),c=t(114),p=t(39),s=t(13);t(281),o.exports=a},280); +__d(function(e,n,r,t){"use strict";var a=n(15).DeviceEventManager,i=n(30),o="hardwareBackPress",s=new Set;i.addListener(o,function(){for(var e=new Set(s),n=!0,r=[].concat(babelHelpers.toConsumableArray(e)).reverse(),t=0;t=0&&(s="video"),a.saveToCameraRoll(e,s)}},{key:"getPhotos",value:function(e){if(arguments.length>1){console.warn("CameraRoll.getPhotos(tag, success, error) is deprecated. Use the returned Promise instead");var r=arguments[1],s=arguments[2]||function(){};a.getPhotos(e).then(r,s)}return a.getPhotos(e)}}]),e}());d.GroupTypesOptions=l,d.AssetTypeOptions=u,s.exports=d},285); +__d(function(t,n,r,i){"use strict";var e=n(15).Clipboard;r.exports={getString:function(){return e.getString()},setString:function(t){e.setString(t)}}},286); +__d(function(e,t,n,r){"use strict";function i(e,t){var n=e[t];"object"==typeof n&&"function"==typeof n.getMonth&&(e[t]=n.getTime())}var c=t(15).DatePickerAndroid,o=function(){function e(){babelHelpers.classCallCheck(this,e)}return babelHelpers.createClass(e,null,[{key:"open",value:function(e){var t;return regeneratorRuntime.async(function(n){for(;;)switch(n.prev=n.next){case 0:return t=e,t&&(i(e,"date"),i(e,"minDate"),i(e,"maxDate")),n.abrupt("return",c.open(e));case 3:case"end":return n.stop()}},null,this)}},{key:"dateSetAction",get:function(){return"dateSetAction"}},{key:"dismissedAction",get:function(){return"dismissedAction"}}]),e}();n.exports=o},287); +__d(function(e,n,o,a){"use strict";var r=n(15).ImagePickerIOS,t={canRecordVideos:function(e){return r.canRecordVideos(e)},canUseCamera:function(e){return r.canUseCamera(e)},openCameraDialog:function(e,n,o){return e=babelHelpers.extends({videoMode:!1},e),r.openCameraDialog(e,n,o)},openSelectDialog:function(e,n,o){return e=babelHelpers.extends({showImages:!0,showVideos:!1},e),r.openSelectDialog(e,n,o)}};o.exports=t},288); +__d(function(e,t,n,i){"use strict";var a=t(80),r=t(15),s=(t(23),t(13)),l=r.IntentAndroid,o=function(e){function t(){return babelHelpers.classCallCheck(this,t),babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,l))}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"addEventListener",value:function(e,t){this.addListener(e,t)}},{key:"removeEventListener",value:function(e,t){this.removeListener(e,t)}},{key:"openURL",value:function(e){return this._validateURL(e),l.openURL(e)}},{key:"canOpenURL",value:function(e){return this._validateURL(e),l.canOpenURL(e)}},{key:"getInitialURL",value:function(){return l.getInitialURL()}},{key:"_validateURL",value:function(e){s("string"==typeof e,"Invalid URL: should be a string. Was: "+e),s(e,"Invalid URL: cannot be empty")}}]),t}(a);n.exports=new o},289); +__d(function(e,n,t,o){"use strict";function i(e){return"none"!==e.type&&"unknown"!==e.type}var r=n(62),c=n(80),f=n(15),u=(n(23),f.NetInfo),v=new c(u),s="networkStatusDidChange",a=new r,d=void 0;d=function(e){return"NONE"!==e&&"UNKNOWN"!==e};var C=new r,g={addEventListener:function(e,n){var t=void 0;if("connectionChange"===e)t=v.addListener(s,function(e){n({type:e.connectionType,effectiveType:e.effectiveConnectionType})});else{if("change"!==e)return console.warn('Trying to subscribe to unknown event: "'+e+'"'),{remove:function(){}};console.warn('NetInfo\'s "change" event is deprecated. Listen to the "connectionChange" event instead.'),t=v.addListener(s,function(e){n(e.network_info)})}return a.set(n,t),{remove:function(){return g.removeEventListener(e,n)}}},removeEventListener:function(e,n){var t=a.get(n);t&&(t.remove(),a.delete(n))},fetch:function(){return console.warn("NetInfo.fetch() is deprecated. Use NetInfo.getConnectionInfo() instead."),u.getCurrentConnectivity().then(function(e){return e.network_info})},getConnectionInfo:function(){return u.getCurrentConnectivity().then(function(e){return{type:e.connectionType,effectiveType:e.effectiveConnectionType}})},isConnected:{addEventListener:function(e,n){var t=function(t){"change"===e?n(d(t)):"connectionChange"===e&&n(i(t))};return C.set(n,t),g.addEventListener(e,t),{remove:function(){return g.isConnected.removeEventListener(e,n)}}},removeEventListener:function(e,n){var t=C.get(n);g.removeEventListener(e,t),C.delete(n)},fetch:function(){return g.getConnectionInfo().then(i)}},isConnectionExpensive:function(){return u.isConnectionMetered()}};t.exports=g},290); +__d(function(e,t,i,o){"use strict";var n=t(80),a=t(15).PushNotificationManager,c=t(13),r=new n(a),l=new Map,s="remoteNotificationReceived",u="remoteNotificationsRegistered",f="remoteNotificationRegistrationError",d="localNotificationReceived",v=function(){function e(t){var i=this;babelHelpers.classCallCheck(this,e),this._data={},this._remoteNotificationCompleteCallbackCalled=!1,this._isRemote=t.remote,this._isRemote&&(this._notificationId=t.notificationId),t.remote?Object.keys(t).forEach(function(e){var o=t[e];"aps"===e?(i._alert=o.alert,i._sound=o.sound,i._badgeCount=o.badge,i._category=o.category,i._contentAvailable=o["content-available"]):i._data[e]=o}):(this._badgeCount=t.applicationIconBadgeNumber,this._sound=t.soundName,this._alert=t.alertBody,this._data=t.userInfo,this._category=t.category)}return babelHelpers.createClass(e,null,[{key:"presentLocalNotification",value:function(e){a.presentLocalNotification(e)}},{key:"scheduleLocalNotification",value:function(e){a.scheduleLocalNotification(e)}},{key:"cancelAllLocalNotifications",value:function(){a.cancelAllLocalNotifications()}},{key:"removeAllDeliveredNotifications",value:function(){a.removeAllDeliveredNotifications()}},{key:"getDeliveredNotifications",value:function(e){a.getDeliveredNotifications(e)}},{key:"removeDeliveredNotifications",value:function(e){a.removeDeliveredNotifications(e)}},{key:"setApplicationIconBadgeNumber",value:function(e){a.setApplicationIconBadgeNumber(e)}},{key:"getApplicationIconBadgeNumber",value:function(e){a.getApplicationIconBadgeNumber(e)}},{key:"cancelLocalNotifications",value:function(e){a.cancelLocalNotifications(e)}},{key:"getScheduledLocalNotifications",value:function(e){a.getScheduledLocalNotifications(e)}},{key:"addEventListener",value:function(t,i){c("notification"===t||"register"===t||"registrationError"===t||"localNotification"===t,"PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events");var o;"notification"===t?o=r.addListener(s,function(t){i(new e(t))}):"localNotification"===t?o=r.addListener(d,function(t){i(new e(t))}):"register"===t?o=r.addListener(u,function(e){i(e.deviceToken)}):"registrationError"===t&&(o=r.addListener(f,function(e){i(e)})),l.set(t,o)}},{key:"removeEventListener",value:function(e,t){c("notification"===e||"register"===e||"registrationError"===e||"localNotification"===e,"PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events");var i=l.get(e);i&&(i.remove(),l.delete(e))}},{key:"requestPermissions",value:function(e){var t={};return t=e?{alert:!!e.alert,badge:!!e.badge,sound:!!e.sound}:{alert:!0,badge:!0,sound:!0},a.requestPermissions(t)}},{key:"abandonPermissions",value:function(){a.abandonPermissions()}},{key:"checkPermissions",value:function(e){c("function"==typeof e,"Must provide a valid callback"),a.checkPermissions(e)}},{key:"getInitialNotification",value:function(){return a.getInitialNotification().then(function(t){return t&&new e(t)})}}]),babelHelpers.createClass(e,[{key:"finish",value:function(e){this._isRemote&&this._notificationId&&!this._remoteNotificationCompleteCallbackCalled&&(this._remoteNotificationCompleteCallbackCalled=!0,a.onFinishRemoteNotification(this._notificationId,e))}},{key:"getMessage",value:function(){return this._alert}},{key:"getSound",value:function(){return this._sound}},{key:"getCategory",value:function(){return this._category}},{key:"getAlert",value:function(){return this._alert}},{key:"getContentAvailable",value:function(){return this._contentAvailable}},{key:"getBadgeCount",value:function(){return this._badgeCount}},{key:"getData",value:function(){return this._data}}]),e}();v.FetchResult={NewData:"UIBackgroundFetchResultNewData",NoData:"UIBackgroundFetchResultNoData",ResultFailed:"UIBackgroundFetchResultFailed"},i.exports=v},291); +__d(function(n,t,o,e){"use strict";var s={get:function(n){return console.warn("Settings is not yet supported on Android"),null},set:function(n){console.warn("Settings is not yet supported on Android")},watchKeys:function(n,t){return console.warn("Settings is not yet supported on Android"),-1},clearWatch:function(n){console.warn("Settings is not yet supported on Android")}};o.exports=s},292); +__d(function(e,t,n,s){"use strict";var i=(t(23),t(13)),o=(t(125),t(15)),l=(o.ActionSheetManager,o.ShareModule),r=function(){function e(){babelHelpers.classCallCheck(this,e)}return babelHelpers.createClass(e,null,[{key:"share",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return i("object"==typeof e&&null!==e,"Content to share must be a valid object"),i("string"==typeof e.url||"string"==typeof e.message,"At least one of URL and message is required"),i("object"==typeof t&&null!==t,"Options must be a valid object"),i(!e.title||"string"==typeof e.title,"Invalid title: title should be a string."),l.share(e,t.dialogTitle)}},{key:"sharedAction",get:function(){return"sharedAction"}},{key:"dismissedAction",get:function(){return"dismissedAction"}}]),e}();n.exports=r},293); +__d(function(t,a,r,e){"use strict";var n=a(80);r.exports=new n("StatusBarManager")},294); +__d(function(e,t,n,r){"use strict";var i=t(15).TimePickerAndroid,s=function(){function e(){babelHelpers.classCallCheck(this,e)}return babelHelpers.createClass(e,null,[{key:"open",value:function(e){return regeneratorRuntime.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",i.open(e));case 1:case"end":return t.stop()}},null,this)}},{key:"timeSetAction",get:function(){return"timeSetAction"}},{key:"dismissedAction",get:function(){return"dismissedAction"}}]),e}();n.exports=s},295); +__d(function(r,t,e,n){"use strict";var a=t(15).Vibration,i=(t(23),{vibrate:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:400,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("number"==typeof r)a.vibrate(r);else{if(!Array.isArray(r))throw new Error("Vibration pattern should be a number or array");a.vibrateByPattern(r,t?0:-1)}},cancel:function(){a.cancel()}});e.exports=i},296); +__d(function(t,i,o,n){"use strict";var r=i(27),s={vibrate:function(){r("VibrationIOS is not supported on this platform!")}};o.exports=s},297); +__d(function(_,t,E,s){"use strict";var O=t(39),R=O.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;E.exports=R.takeSnapshot},298); +__d(function(e,t,a,r){Object.defineProperty(r,"__esModule",{value:!0});var n=t(47),o=babelHelpers.interopRequireDefault(n),l=t(12),c=t(300),d=babelHelpers.interopRequireDefault(c),i=l.Platform.select({ios:"Press Cmd+R to reload,\nCmd+D or shake for dev menu",android:"Double tap R on your keyboard to reload,\nShake or press menu button for dev menu"}),u=function(e){function t(){return babelHelpers.classCallCheck(this,t),babelHelpers.possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"render",value:function(){var e={ios:{appId:6421,appSalt:"5aebe7204d3136fa6c89cd551761d1629ad9ad50",appKey:"8c4d483a307c8438222753774bbe0c23f67fbb5e",customizedUserAgentEnabled:!0},android:{appId:2684,appSalt:"bcb5a88f92c9f13a92adf58e91498a5f942f3c2b",appKey:"1678bb2f08e02c81ddaa8dbfa4618eb93ed1e330"},debugModeEnabled:!0};d.default.activate(e);var t={name:"wuwei",age:35,married:!0};d.default.setUserInfo(t),d.default.getUserInfo(function(e){e&&console.log("profile of user : "+e.name)});var a={buid:"user-fox-react",optout:!0,trackingCompletionHandler:function(){console.log("tracking completed implementation")},durationSinceClick:43200,deferredDeeplinkHandler:function(e){console.log("deep link : "+(e?e.deeplink:"empty"))}};d.default.trackInstall(a),d.default.trackSession();var r={eventName:"react-purchase",ltvId:5975,buid:"react-buid",value:2,orderId:"react-orderId",sku:"react-sku",itemName:"react-itemname",price:66.6,quantity:3,currency:"USD",eventInfo:{name:"wuwei",age:35,married:!0},extraInfo:{eventId:"pur001",coupon:"10%"}};return d.default.trackEvent(r),o.default.createElement(l.View,{style:s.container},o.default.createElement(l.Text,{style:s.welcome},"Welcome to React Native!"),o.default.createElement(l.Text,{style:s.instructions},"To get started, edit App.js"),o.default.createElement(l.Text,{style:s.instructions},i))}}]),t}(n.Component);r.default=u;var s=l.StyleSheet.create({container:{flex:1,justifyContent:"center",alignItems:"center",backgroundColor:"#F5FCFF"},welcome:{fontSize:20,textAlign:"center",margin:10},instructions:{textAlign:"center",color:"#333333",marginBottom:5}})},299); +__d(function(t,o,e,l){var a=o(12),r=o(301),n=babelHelpers.interopRequireDefault(r),f=o(302),s=babelHelpers.interopRequireDefault(f),c={};c.platformSelect=function(t){var o=babelHelpers.extends(t,t[a.Platform.OS]);return delete o.android,delete o.ios,console.log("[RCT-FOX] platformSelect result : "+JSON.stringify(o)),o},c.activate=function(t){console.log("[RCT-FOX] activate : "+JSON.stringify(t));var o=c.platformSelect(t);"ios"===a.Platform.OS?s.default.activate(o):"android"===a.Platform.OS?n.default.activate(o):console.log("Unsupported platform : "+a.Platform.OS)},c.trackInstall=function(t){console.log("[RCT-FOX] trackInstall : "+JSON.stringify(t));var o=c.platformSelect(t);"ios"===a.Platform.OS?s.default.trackInstall(o):"android"===a.Platform.OS?n.default.trackInstall(o):console.log("Unsupported platform : "+a.Platform.OS)},c.trackSession=function(){console.log("[RCT-FOX] trackSession"),"ios"===a.Platform.OS?s.default.trackSession():"android"===a.Platform.OS?n.default.trackSession():console.log("Unsupported platform : "+a.Platform.OS)},c.trackEvent=function(t){console.log("[RCT-FOX] trackEvent");var o=c.platformSelect(t);"ios"===a.Platform.OS?s.default.trackEvent(o):"android"===a.Platform.OS?n.default.trackEvent(o):console.log("Unsupported platform : "+a.Platform.OS)},c.setUserInfo=function(t){console.log("[RCT-FOX] setUserInfo : "+JSON.stringify(t));var o=c.platformSelect(t);"ios"===a.Platform.OS?s.default.setUserInfo(o):"android"===a.Platform.OS?n.default.setUserInfo(o):console.log("Unsupported platform : "+a.Platform.OS)},c.getUserInfo=function(t){console.log("[RCT-FOX] set getUserInfo callback"),"ios"===a.Platform.OS?s.default.getUserInfo(t):"android"===a.Platform.OS?n.default.getUserInfo(t):console.log("Unsupported platform : "+a.Platform.OS)},e.exports=c},300); +__d(function(e,t,n,i){var d=t(12),o=d.NativeModules.CYZFoxConfig,a=d.NativeModules.CYZFox,r=d.NativeModules.CYZFoxEvent,c={};c.activate=function(e){var t=!1;void 0!=e.debugModeEnabled&&(t=e.debugModeEnabled),o.activate(e.appId,e.appKey,e.appSalt,t)},c.trackInstall=function(e){void 0!=e&&(void 0!=e.redirectURL&&a.addOptionRedirectUrl(e.redirectURL),void 0!=e.buid&&a.addOptionBuid(e.buid),void 0!=e.deferredDeeplinkHandler&&a.registerDeeplinkHandler(e.deferredDeeplinkHandler),void 0!=e.trackingCompletionHandler&&a.setTrackingStateListener(e.trackingCompletionHandler)),a.trackInstall()},c.trackSession=function(){a.trackSession()},c.trackEvent=function(e){r.track(e)},c.setUserInfo=function(e){a.setUserInfo(e)},c.getUserInfo=function(e){a.getUserInfo(e)},n.exports=c},301); +__d(function(e,n,t,a){var r=n(12),o=r.NativeModules.CYZFoxReact,c={};c.activate=function(e){console.log("FoxIos.activate"),o.activate(e)},c.trackInstall=function(e){e?(e.trackingCompletionHandler&&o.setTrackingCompletionHandler(e.trackingCompletionHandler),e.deferredDeeplinkHandler&&o.setDeferredDeeplinkHandler(e.deferredDeeplinkHandler),o.trackInstall(e)):o.trackInstall()},c.trackSession=function(){o.trackSession()},c.trackEvent=function(e){o.trackEvent(e)},c.setUserInfo=function(e){o.setUserInfo(e)},c.getUserInfo=function(e){o.getUserInfo(e)},t.exports=c},302); +;require(59); +;require(0); \ No newline at end of file diff --git a/lang/zh-cn/exapp/android/app/src/main/assets/index.android.bundle.meta b/lang/zh-cn/exapp/android/app/src/main/assets/index.android.bundle.meta new file mode 100644 index 0000000..e3e877b --- /dev/null +++ b/lang/zh-cn/exapp/android/app/src/main/assets/index.android.bundle.meta @@ -0,0 +1 @@ +^A6qe5Y#ݹl[ \ No newline at end of file diff --git a/lang/zh-cn/exapp/android/app/src/main/java/com/exapp/MainActivity.java b/lang/zh-cn/exapp/android/app/src/main/java/com/exapp/MainActivity.java new file mode 100644 index 0000000..f9033d9 --- /dev/null +++ b/lang/zh-cn/exapp/android/app/src/main/java/com/exapp/MainActivity.java @@ -0,0 +1,18 @@ +package com.exapp; + +import com.facebook.react.ReactActivity; + +import co.cyberz.fox.Fox; + +public class MainActivity extends ReactActivity { + + /** + * Returns the name of the main component registered from JavaScript. + * This is used to schedule rendering of the component. + */ + @Override + protected String getMainComponentName() { + return "exapp"; + } + +} diff --git a/lang/zh-cn/exapp/android/app/src/main/java/com/exapp/MainApplication.java b/lang/zh-cn/exapp/android/app/src/main/java/com/exapp/MainApplication.java new file mode 100644 index 0000000..9d5626d --- /dev/null +++ b/lang/zh-cn/exapp/android/app/src/main/java/com/exapp/MainApplication.java @@ -0,0 +1,48 @@ +package com.exapp; + +import android.app.Application; + +import com.facebook.react.ReactApplication; +import com.facebook.react.ReactNativeHost; +import com.facebook.react.ReactPackage; +import com.facebook.react.shell.MainReactPackage; +import com.facebook.soloader.SoLoader; + +import java.util.Arrays; +import java.util.List; + +import co.cyberz.fox.support.reactnative.FoxReactPackage; + +public class MainApplication extends Application implements ReactApplication { + + private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { + @Override + public boolean getUseDeveloperSupport() { + return BuildConfig.DEBUG; + } + + @Override + protected List getPackages() { + return Arrays.asList( + new MainReactPackage(), + new FoxReactPackage() + ); + } + + @Override + protected String getJSMainModuleName() { + return "index"; + } + }; + + @Override + public ReactNativeHost getReactNativeHost() { + return mReactNativeHost; + } + + @Override + public void onCreate() { + super.onCreate(); + SoLoader.init(this, /* native exopackage */ false); + } +} diff --git a/lang/zh-cn/exapp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/lang/zh-cn/exapp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..cde69bc Binary files /dev/null and b/lang/zh-cn/exapp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/lang/zh-cn/exapp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/lang/zh-cn/exapp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..c133a0c Binary files /dev/null and b/lang/zh-cn/exapp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/lang/zh-cn/exapp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/lang/zh-cn/exapp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..bfa42f0 Binary files /dev/null and b/lang/zh-cn/exapp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/lang/zh-cn/exapp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/lang/zh-cn/exapp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..324e72c Binary files /dev/null and b/lang/zh-cn/exapp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/lang/zh-cn/exapp/android/app/src/main/res/values/strings.xml b/lang/zh-cn/exapp/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..0d8d6cb --- /dev/null +++ b/lang/zh-cn/exapp/android/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + exapp + diff --git a/lang/zh-cn/exapp/android/app/src/main/res/values/styles.xml b/lang/zh-cn/exapp/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..319eb0c --- /dev/null +++ b/lang/zh-cn/exapp/android/app/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/lang/zh-cn/exapp/android/build.gradle b/lang/zh-cn/exapp/android/build.gradle new file mode 100644 index 0000000..b56f3d3 --- /dev/null +++ b/lang/zh-cn/exapp/android/build.gradle @@ -0,0 +1,27 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.2.3' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + mavenLocal() + jcenter() + maven { + // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm + url "$rootDir/../node_modules/react-native/android" + } + maven { + url "https://github.com/cyber-z/public-fox-android-sdk/raw/master/mavenRepo" + } + } +} diff --git a/lang/zh-cn/exapp/android/gradle.properties b/lang/zh-cn/exapp/android/gradle.properties new file mode 100644 index 0000000..1fd964e --- /dev/null +++ b/lang/zh-cn/exapp/android/gradle.properties @@ -0,0 +1,20 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +android.useDeprecatedNdk=true diff --git a/lang/zh-cn/exapp/android/gradle/wrapper/gradle-wrapper.jar b/lang/zh-cn/exapp/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..b5166da Binary files /dev/null and b/lang/zh-cn/exapp/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/lang/zh-cn/exapp/android/gradle/wrapper/gradle-wrapper.properties b/lang/zh-cn/exapp/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..dbdc05d --- /dev/null +++ b/lang/zh-cn/exapp/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip diff --git a/lang/zh-cn/exapp/android/gradlew b/lang/zh-cn/exapp/android/gradlew new file mode 100755 index 0000000..91a7e26 --- /dev/null +++ b/lang/zh-cn/exapp/android/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/lang/zh-cn/exapp/android/gradlew.bat b/lang/zh-cn/exapp/android/gradlew.bat new file mode 100644 index 0000000..aec9973 --- /dev/null +++ b/lang/zh-cn/exapp/android/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/lang/zh-cn/exapp/android/keystores/BUCK b/lang/zh-cn/exapp/android/keystores/BUCK new file mode 100644 index 0000000..88e4c31 --- /dev/null +++ b/lang/zh-cn/exapp/android/keystores/BUCK @@ -0,0 +1,8 @@ +keystore( + name = "debug", + properties = "debug.keystore.properties", + store = "debug.keystore", + visibility = [ + "PUBLIC", + ], +) diff --git a/lang/zh-cn/exapp/android/keystores/debug.keystore.properties b/lang/zh-cn/exapp/android/keystores/debug.keystore.properties new file mode 100644 index 0000000..121bfb4 --- /dev/null +++ b/lang/zh-cn/exapp/android/keystores/debug.keystore.properties @@ -0,0 +1,4 @@ +key.store=debug.keystore +key.alias=androiddebugkey +key.store.password=android +key.alias.password=android diff --git a/lang/zh-cn/exapp/android/settings.gradle b/lang/zh-cn/exapp/android/settings.gradle new file mode 100644 index 0000000..bb5620c --- /dev/null +++ b/lang/zh-cn/exapp/android/settings.gradle @@ -0,0 +1,5 @@ +rootProject.name = 'exapp' + +include ':app', ':supportReactNative' + +project(":supportReactNative").projectDir = new File("../../android/supportReactNative") diff --git a/lang/zh-cn/exapp/app.json b/lang/zh-cn/exapp/app.json new file mode 100644 index 0000000..367e61e --- /dev/null +++ b/lang/zh-cn/exapp/app.json @@ -0,0 +1,4 @@ +{ + "name": "exapp", + "displayName": "exapp" +} \ No newline at end of file diff --git a/lang/zh-cn/exapp/fox-android.js b/lang/zh-cn/exapp/fox-android.js new file mode 100644 index 0000000..3ea98e1 --- /dev/null +++ b/lang/zh-cn/exapp/fox-android.js @@ -0,0 +1,44 @@ +import { NativeModules } from 'react-native'; +const foxConfig = NativeModules.CYZFoxConfig; +const fox = NativeModules.CYZFox; +const foxEvent = NativeModules.CYZFoxEvent; + +var FoxAndroid = {} + +FoxAndroid.activate = function(config) { + var isDefaultDebug = false; + if (config.debugModeEnabled != undefined) { + isDefaultDebug = config.debugModeEnabled; + } + foxConfig.activate(config.appId, config.appKey, config.appSalt, isDefaultDebug); +} + +FoxAndroid.trackInstall = function(foxTrackOption) { + if (foxTrackOption != undefined) { + if (foxTrackOption.redirectURL != undefined) fox.addOptionRedirectUrl(foxTrackOption.redirectURL); + if (foxTrackOption.buid != undefined) fox.addOptionBuid(foxTrackOption.buid); + var duration = 0; + if (foxTrackOption.durationSinceClick != undefined) duration = foxTrackOption.durationSinceClick; + if (foxTrackOption.deferredDeeplinkHandler != undefined) fox.registerDeeplinkHandler(duration, foxTrackOption.deferredDeeplinkHandler); + if (foxTrackOption.trackingCompletionHandler != undefined) fox.setTrackingStateListener(foxTrackOption.trackingCompletionHandler); + } + fox.trackInstall(); +} + +FoxAndroid.trackSession = function() { + fox.trackSession(); +} + +FoxAndroid.trackEvent = function(e) { + foxEvent.track(e); +} + +FoxAndroid.setUserInfo = function(userInfo) { + fox.setUserInfo(userInfo); +} + +FoxAndroid.getUserInfo = function(userInfoCallback) { + fox.getUserInfo(userInfoCallback); +} + +module.exports = FoxAndroid; diff --git a/lang/zh-cn/exapp/fox-ios.js b/lang/zh-cn/exapp/fox-ios.js new file mode 100644 index 0000000..2b3b071 --- /dev/null +++ b/lang/zh-cn/exapp/fox-ios.js @@ -0,0 +1,40 @@ +import { NativeModules } from 'react-native'; +const nativeFox = NativeModules.CYZFoxReact; + +var FoxIos = {}; + +FoxIos.activate = function(foxConfig) { + nativeFox.activate(foxConfig); +}; + +FoxIos.trackInstall = function(foxTrackOption) { + if (foxTrackOption) { + if (foxTrackOption.trackingCompletionHandler) { + nativeFox.setTrackingCompletionHandler(foxTrackOption.trackingCompletionHandler); + } + if (foxTrackOption.deferredDeeplinkHandler) { + nativeFox.setDeferredDeeplinkHandler(foxTrackOption.deferredDeeplinkHandler); + } + nativeFox.trackInstall(foxTrackOption); + } else { + nativeFox.trackInstall(); + } +}; + +FoxIos.trackSession = function() { + nativeFox.trackSession(); +}; + +FoxIos.trackEvent = function(foxEvent) { + nativeFox.trackEvent(foxEvent); +}; + +FoxIos.setUserInfo = function(userInfo) { + nativeFox.setUserInfo(userInfo); +}; + +FoxIos.getUserInfo = function(userInfoCallback) { + nativeFox.getUserInfo(userInfoCallback); +}; + +module.exports = FoxIos; diff --git a/lang/zh-cn/exapp/fox.js b/lang/zh-cn/exapp/fox.js new file mode 100644 index 0000000..b902162 --- /dev/null +++ b/lang/zh-cn/exapp/fox.js @@ -0,0 +1,85 @@ +import { Platform } from 'react-native'; +import FoxAndroid from './fox-android.js'; +import FoxIos from './fox-ios.js'; + +var CYZFox = {}; + +CYZFox.platformSelect = function(obj) { + var _Obj = Object.assign(obj, obj[Platform.OS]); + delete _Obj.android; + delete _Obj.ios; + console.log(`[RCT-FOX] platformSelect result : ${JSON.stringify(_Obj)}`); + return _Obj; +}; + +CYZFox.activate = function(foxConfig) { + console.log(`[RCT-FOX] activate : ${JSON.stringify(foxConfig)}`); + const _foxConfig = CYZFox.platformSelect(foxConfig); + if (Platform.OS === 'ios') { + FoxIos.activate(_foxConfig); + } else if (Platform.OS === 'android') { + FoxAndroid.activate(_foxConfig); + } else { + console.log(`[RCT-FOX] Unsupported platform : ${Platform.OS}`); + } +}; + +CYZFox.trackInstall = function(foxTrackOption) { + console.log(`[RCT-FOX] trackInstall : ${JSON.stringify(foxTrackOption)}`); + const _foxTrackOption = CYZFox.platformSelect(foxTrackOption); + if (Platform.OS === 'ios') { + FoxIos.trackInstall(_foxTrackOption); + } else if (Platform.OS === 'android') { + FoxAndroid.trackInstall(_foxTrackOption); + } else { + console.log(`[RCT-FOX] Unsupported platform : ${Platform.OS}`); + } +}; + +CYZFox.trackSession = function() { + console.log(`[RCT-FOX] trackSession`); + if (Platform.OS === 'ios') { + FoxIos.trackSession(); + } else if (Platform.OS === 'android') { + FoxAndroid.trackSession(); + } else { + console.log(`[RCT-FOX] Unsupported platform : ${Platform.OS}`); + } +}; + +CYZFox.trackEvent = function(foxEvent) { + console.log(`[RCT-FOX] trackEvent`); + const _foxEvent = CYZFox.platformSelect(foxEvent); + if (Platform.OS === 'ios') { + FoxIos.trackEvent(_foxEvent); + } else if (Platform.OS === 'android') { + FoxAndroid.trackEvent(_foxEvent); + } else { + console.log(`[RCT-FOX] Unsupported platform : ${Platform.OS}`); + } +}; + +CYZFox.setUserInfo = function(userInfo) { + console.log(`[RCT-FOX] setUserInfo : ${JSON.stringify(userInfo)}`); + const _userInfo = CYZFox.platformSelect(userInfo); + if (Platform.OS === 'ios') { + FoxIos.setUserInfo(_userInfo); + } else if (Platform.OS === 'android') { + FoxAndroid.setUserInfo(_userInfo); + } else { + console.log(`[RCT-FOX] Unsupported platform : ${Platform.OS}`); + } +}; + +CYZFox.getUserInfo = function(userInfoCallback) { + console.log(`[RCT-FOX] set getUserInfo callback`); + if (Platform.OS === 'ios') { + FoxIos.getUserInfo(userInfoCallback); + } else if (Platform.OS === 'android') { + FoxAndroid.getUserInfo(userInfoCallback); + } else { + console.log(`[RCT-FOX] Unsupported platform : ${Platform.OS}`); + } +}; + +module.exports = CYZFox; diff --git a/lang/zh-cn/exapp/index.js b/lang/zh-cn/exapp/index.js new file mode 100644 index 0000000..f2bba2b --- /dev/null +++ b/lang/zh-cn/exapp/index.js @@ -0,0 +1,4 @@ +import { AppRegistry } from 'react-native'; +import App from './App'; + +AppRegistry.registerComponent('exapp', () => App); diff --git a/lang/zh-cn/exapp/ios/Podfile b/lang/zh-cn/exapp/ios/Podfile new file mode 100644 index 0000000..c8212b3 --- /dev/null +++ b/lang/zh-cn/exapp/ios/Podfile @@ -0,0 +1,43 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +source "https://github.com/cyber-z/public-fox-ios-sdk.git" +workspace 'exapp' + +abstract_target 'abs_exapp' do + + # Pods for FoxReact + pod "CYZFox", "4.2.2" + + target 'FoxReact' do + # Uncomment the next line if you're using Swift or would like to use dynamic frameworks + # use_frameworks! + project '../../ios/FoxReact/FoxReact' + + end + + target 'exapp' do + # Uncomment the next line if you're using Swift or would like to use dynamic frameworks + # use_frameworks! + + # Pods for exapp + target 'exappTests' do + inherit! :search_paths + # Pods for testing + end + end + +end + +target 'exapp-tvOS' do + # Uncomment the next line if you're using Swift or would like to use dynamic frameworks + # use_frameworks! + + # Pods for exapp-tvOS + + target 'exapp-tvOSTests' do + inherit! :search_paths + # Pods for testing + end + +end diff --git a/lang/zh-cn/exapp/ios/Podfile.lock b/lang/zh-cn/exapp/ios/Podfile.lock new file mode 100644 index 0000000..ddcbaf3 --- /dev/null +++ b/lang/zh-cn/exapp/ios/Podfile.lock @@ -0,0 +1,12 @@ +PODS: + - CYZFox (4.2.2) + +DEPENDENCIES: + - CYZFox (= 4.2.2) + +SPEC CHECKSUMS: + CYZFox: 9450177b926eb4f0b7045e96a8e50c1cceb62770 + +PODFILE CHECKSUM: 0470aefeab2436e0c2a99974df1e10e3fc62f7d5 + +COCOAPODS: 1.2.0 diff --git a/lang/zh-cn/exapp/ios/exapp-tvOS/Info.plist b/lang/zh-cn/exapp/ios/exapp-tvOS/Info.plist new file mode 100644 index 0000000..2fb6a11 --- /dev/null +++ b/lang/zh-cn/exapp/ios/exapp-tvOS/Info.plist @@ -0,0 +1,54 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + NSLocationWhenInUseUsageDescription + + NSAppTransportSecurity + + + NSExceptionDomains + + localhost + + NSExceptionAllowsInsecureHTTPLoads + + + + + + diff --git a/lang/zh-cn/exapp/ios/exapp-tvOSTests/Info.plist b/lang/zh-cn/exapp/ios/exapp-tvOSTests/Info.plist new file mode 100644 index 0000000..886825c --- /dev/null +++ b/lang/zh-cn/exapp/ios/exapp-tvOSTests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/lang/zh-cn/exapp/ios/exapp.xcodeproj/project.pbxproj b/lang/zh-cn/exapp/ios/exapp.xcodeproj/project.pbxproj new file mode 100644 index 0000000..eab59e8 --- /dev/null +++ b/lang/zh-cn/exapp/ios/exapp.xcodeproj/project.pbxproj @@ -0,0 +1,1714 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; }; + 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; }; + 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; }; + 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; }; + 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; }; + 00E356F31AD99517003FC87E /* exappTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* exappTests.m */; }; + 11D86F561C0592845E27E103 /* libPods-exappTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DF232D0B76C3E09D2636609 /* libPods-exappTests.a */; }; + 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; + 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; + 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; + 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; + 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; + 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; + 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; + 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; + 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; }; + 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; }; + 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; }; + 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; }; + 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; }; + 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; }; + 2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; }; + 2DCD954D1E0B4F2C00145EB5 /* exappTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* exappTests.m */; }; + 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; + 64B17E15A3311D4D7704505F /* libPods-exapp-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 36A1F78EEB2FF245200E9A3B /* libPods-exapp-tvOSTests.a */; }; + 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; + ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; }; + B83A4A111F99F321002EFC65 /* libFoxReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B82222B61F97238600521BC8 /* libFoxReact.a */; }; + F5C892E05FCFEA09ABE7E535 /* libPods-abs_exapp-exapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D1706C353FDB09DD75093C3 /* libPods-abs_exapp-exapp.a */; }; + F9B73FA2A6A3FACD19CEB605 /* libPods-exapp-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E2B88EAE17E7A167C3B59CD /* libPods-exapp-tvOS.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 134814201AA4EA6300B7C361; + remoteInfo = RCTActionSheet; + }; + 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 134814201AA4EA6300B7C361; + remoteInfo = RCTGeolocation; + }; + 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58B5115D1A9E6B3D00147676; + remoteInfo = RCTImage; + }; + 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58B511DB1A9E6C8500147676; + remoteInfo = RCTNetwork; + }; + 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; + remoteInfo = RCTVibration; + }; + 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 13B07F861A680F5B00A75B9A; + remoteInfo = exapp; + }; + 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 134814201AA4EA6300B7C361; + remoteInfo = RCTSettings; + }; + 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3C86DF461ADF2C930047B81A; + remoteInfo = RCTWebSocket; + }; + 146834031AC3E56700842450 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; + remoteInfo = React; + }; + 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; + remoteInfo = "exapp-tvOS"; + }; + 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A283A1D9B042B00D4039D; + remoteInfo = "RCTImage-tvOS"; + }; + 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28471D9B043800D4039D; + remoteInfo = "RCTLinking-tvOS"; + }; + 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28541D9B044C00D4039D; + remoteInfo = "RCTNetwork-tvOS"; + }; + 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28611D9B046600D4039D; + remoteInfo = "RCTSettings-tvOS"; + }; + 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A287B1D9B048500D4039D; + remoteInfo = "RCTText-tvOS"; + }; + 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28881D9B049200D4039D; + remoteInfo = "RCTWebSocket-tvOS"; + }; + 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28131D9B038B00D4039D; + remoteInfo = "React-tvOS"; + }; + 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D3C059A1DE3340900C268FA; + remoteInfo = yoga; + }; + 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D3C06751DE3340C00C268FA; + remoteInfo = "yoga-tvOS"; + }; + 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4; + remoteInfo = cxxreact; + }; + 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4; + remoteInfo = "cxxreact-tvOS"; + }; + 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4; + remoteInfo = jschelpers; + }; + 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4; + remoteInfo = "jschelpers-tvOS"; + }; + 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 134814201AA4EA6300B7C361; + remoteInfo = RCTAnimation; + }; + 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28201D9B03D100D4039D; + remoteInfo = "RCTAnimation-tvOS"; + }; + 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 134814201AA4EA6300B7C361; + remoteInfo = RCTLinking; + }; + 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58B5119B1A9E6C1200147676; + remoteInfo = RCTText; + }; + ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 358F4ED71D1E81A9004DF814; + remoteInfo = RCTBlob; + }; + B813594F1F9DC3DF0098C238 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222B11F97238500521BC8 /* FoxReact.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = B82222A41F97238500521BC8; + remoteInfo = FoxReact; + }; + B82222B51F97238600521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222B11F97238500521BC8 /* FoxReact.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B82222A51F97238500521BC8; + remoteInfo = FoxReact; + }; + B82222BC1F97238600521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = ADD01A681E09402E00F6D226; + remoteInfo = "RCTBlob-tvOS"; + }; + B82222CE1F97238600521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3DBE0D001F3B181A0099AA32; + remoteInfo = fishhook; + }; + B82222D01F97238600521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3DBE0D0D1F3B181C0099AA32; + remoteInfo = "fishhook-tvOS"; + }; + B82223B61F986ECD00521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 139D7ECE1E25DB7D00323FB7; + remoteInfo = "third-party"; + }; + B82223B81F986ECD00521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D383D3C1EBD27B6005632C8; + remoteInfo = "third-party-tvOS"; + }; + B82223BA1F986ECD00521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 139D7E881E25C6D100323FB7; + remoteInfo = "double-conversion"; + }; + B82223BC1F986ECD00521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D383D621EBD27B9005632C8; + remoteInfo = "double-conversion-tvOS"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; + 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; }; + 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; }; + 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; }; + 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; }; + 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; }; + 00E356EE1AD99517003FC87E /* exappTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = exappTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 00E356F21AD99517003FC87E /* exappTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exappTests.m; sourceTree = ""; }; + 024459C074ABD7FDED2E1152 /* Pods-exappTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-exappTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-exappTests/Pods-exappTests.debug.xcconfig"; sourceTree = ""; }; + 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; + 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* exapp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = exapp.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = exapp/AppDelegate.h; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = exapp/AppDelegate.m; sourceTree = ""; }; + 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = exapp/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = exapp/Info.plist; sourceTree = ""; }; + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = exapp/main.m; sourceTree = ""; }; + 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; + 1AC808145EDDAF2355E64407 /* Pods-exapp-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-exapp-tvOSTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-exapp-tvOSTests/Pods-exapp-tvOSTests.debug.xcconfig"; sourceTree = ""; }; + 1D1706C353FDB09DD75093C3 /* libPods-abs_exapp-exapp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-abs_exapp-exapp.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2D02E47B1E0B4A5D006451C7 /* exapp-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "exapp-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2D02E4901E0B4A5D006451C7 /* exapp-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "exapp-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 30E31585DA8944A9D74694D8 /* Pods-abs_exapp-exapp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-abs_exapp-exapp.release.xcconfig"; path = "Pods/Target Support Files/Pods-abs_exapp-exapp/Pods-abs_exapp-exapp.release.xcconfig"; sourceTree = ""; }; + 36A1F78EEB2FF245200E9A3B /* libPods-exapp-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-exapp-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 37F416165FA8D51199374BFA /* Pods-exapp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-exapp.debug.xcconfig"; path = "Pods/Target Support Files/Pods-exapp/Pods-exapp.debug.xcconfig"; sourceTree = ""; }; + 3A0B9A716E0A213D0E9629C4 /* Pods-exapp-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-exapp-tvOSTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-exapp-tvOSTests/Pods-exapp-tvOSTests.release.xcconfig"; sourceTree = ""; }; + 3E2B88EAE17E7A167C3B59CD /* libPods-exapp-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-exapp-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; + 67A3C1084CE9675485DD1213 /* Pods-exapp-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-exapp-tvOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-exapp-tvOS/Pods-exapp-tvOS.debug.xcconfig"; sourceTree = ""; }; + 6DF232D0B76C3E09D2636609 /* libPods-exappTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-exappTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 76720B7A305FDEADDB942F24 /* Pods-abs_exapp-exapp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-abs_exapp-exapp.debug.xcconfig"; path = "Pods/Target Support Files/Pods-abs_exapp-exapp/Pods-abs_exapp-exapp.debug.xcconfig"; sourceTree = ""; }; + 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; + 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; + A9DF21AAF5324998C2420036 /* Pods-exapp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-exapp.release.xcconfig"; path = "Pods/Target Support Files/Pods-exapp/Pods-exapp.release.xcconfig"; sourceTree = ""; }; + AA922A352AE521FFB325543B /* Pods-exappTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-exappTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-exappTests/Pods-exappTests.release.xcconfig"; sourceTree = ""; }; + ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = ""; }; + AE754E9A4BAB0D64C38E9279 /* libPods-exapp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-exapp.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + B82222B11F97238500521BC8 /* FoxReact.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = FoxReact.xcodeproj; path = ../../ios/FoxReact/FoxReact.xcodeproj; sourceTree = ""; }; + FEE073B6F666F0EF6466F8A6 /* Pods-exapp-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-exapp-tvOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-exapp-tvOS/Pods-exapp-tvOS.release.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 00E356EB1AD99517003FC87E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */, + 11D86F561C0592845E27E103 /* libPods-exappTests.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B83A4A111F99F321002EFC65 /* libFoxReact.a in Frameworks */, + ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */, + 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, + 146834051AC3E58100842450 /* libReact.a in Frameworks */, + 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, + 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, + 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, + 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */, + 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */, + 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */, + 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */, + 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, + 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, + 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, + F5C892E05FCFEA09ABE7E535 /* libPods-abs_exapp-exapp.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2D02E4781E0B4A5D006451C7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */, + 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */, + 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */, + 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */, + 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */, + 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */, + 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */, + 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */, + F9B73FA2A6A3FACD19CEB605 /* libPods-exapp-tvOS.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 64B17E15A3311D4D7704505F /* libPods-exapp-tvOSTests.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 00C302A81ABCB8CE00DB3ED1 /* Products */ = { + isa = PBXGroup; + children = ( + 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */, + ); + name = Products; + sourceTree = ""; + }; + 00C302B61ABCB90400DB3ED1 /* Products */ = { + isa = PBXGroup; + children = ( + 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */, + ); + name = Products; + sourceTree = ""; + }; + 00C302BC1ABCB91800DB3ED1 /* Products */ = { + isa = PBXGroup; + children = ( + 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */, + 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */, + ); + name = Products; + sourceTree = ""; + }; + 00C302D41ABCB9D200DB3ED1 /* Products */ = { + isa = PBXGroup; + children = ( + 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */, + 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */, + ); + name = Products; + sourceTree = ""; + }; + 00C302E01ABCB9EE00DB3ED1 /* Products */ = { + isa = PBXGroup; + children = ( + 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */, + ); + name = Products; + sourceTree = ""; + }; + 00E356EF1AD99517003FC87E /* exappTests */ = { + isa = PBXGroup; + children = ( + 00E356F21AD99517003FC87E /* exappTests.m */, + 00E356F01AD99517003FC87E /* Supporting Files */, + ); + path = exappTests; + sourceTree = ""; + }; + 00E356F01AD99517003FC87E /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 00E356F11AD99517003FC87E /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 139105B71AF99BAD00B5F7CC /* Products */ = { + isa = PBXGroup; + children = ( + 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */, + 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */, + ); + name = Products; + sourceTree = ""; + }; + 139FDEE71B06529A00C62182 /* Products */ = { + isa = PBXGroup; + children = ( + 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */, + 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */, + B82222CF1F97238600521BC8 /* libfishhook.a */, + B82222D11F97238600521BC8 /* libfishhook-tvOS.a */, + ); + name = Products; + sourceTree = ""; + }; + 13B07FAE1A68108700A75B9A /* exapp */ = { + isa = PBXGroup; + children = ( + 008F07F21AC5B25A0029DE68 /* main.jsbundle */, + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, + 13B07FB01A68108700A75B9A /* AppDelegate.m */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, + 13B07FB71A68108700A75B9A /* main.m */, + ); + name = exapp; + sourceTree = ""; + }; + 146834001AC3E56700842450 /* Products */ = { + isa = PBXGroup; + children = ( + 146834041AC3E56700842450 /* libReact.a */, + 3DAD3EA31DF850E9000B6D8A /* libReact.a */, + 3DAD3EA51DF850E9000B6D8A /* libyoga.a */, + 3DAD3EA71DF850E9000B6D8A /* libyoga.a */, + 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */, + 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */, + 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */, + 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */, + B82223B71F986ECD00521BC8 /* libthird-party.a */, + B82223B91F986ECD00521BC8 /* libthird-party.a */, + B82223BB1F986ECD00521BC8 /* libdouble-conversion.a */, + B82223BD1F986ECD00521BC8 /* libdouble-conversion.a */, + ); + name = Products; + sourceTree = ""; + }; + 46F3516D2840B078BCA8070E /* Pods */ = { + isa = PBXGroup; + children = ( + 37F416165FA8D51199374BFA /* Pods-exapp.debug.xcconfig */, + A9DF21AAF5324998C2420036 /* Pods-exapp.release.xcconfig */, + 67A3C1084CE9675485DD1213 /* Pods-exapp-tvOS.debug.xcconfig */, + FEE073B6F666F0EF6466F8A6 /* Pods-exapp-tvOS.release.xcconfig */, + 1AC808145EDDAF2355E64407 /* Pods-exapp-tvOSTests.debug.xcconfig */, + 3A0B9A716E0A213D0E9629C4 /* Pods-exapp-tvOSTests.release.xcconfig */, + 024459C074ABD7FDED2E1152 /* Pods-exappTests.debug.xcconfig */, + AA922A352AE521FFB325543B /* Pods-exappTests.release.xcconfig */, + 76720B7A305FDEADDB942F24 /* Pods-abs_exapp-exapp.debug.xcconfig */, + 30E31585DA8944A9D74694D8 /* Pods-abs_exapp-exapp.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; + 5E91572E1DD0AC6500FF2AA8 /* Products */ = { + isa = PBXGroup; + children = ( + 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */, + 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */, + ); + name = Products; + sourceTree = ""; + }; + 78C398B11ACF4ADC00677621 /* Products */ = { + isa = PBXGroup; + children = ( + 78C398B91ACF4ADC00677621 /* libRCTLinking.a */, + 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */, + ); + name = Products; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + B82222B11F97238500521BC8 /* FoxReact.xcodeproj */, + 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */, + 146833FF1AC3E56700842450 /* React.xcodeproj */, + 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, + ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */, + 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, + 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */, + 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */, + 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */, + 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */, + 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, + 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, + 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, + ); + name = Libraries; + sourceTree = ""; + }; + 832341B11AAA6A8300B99B32 /* Products */ = { + isa = PBXGroup; + children = ( + 832341B51AAA6A8300B99B32 /* libRCTText.a */, + 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */, + ); + name = Products; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 13B07FAE1A68108700A75B9A /* exapp */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 00E356EF1AD99517003FC87E /* exappTests */, + 83CBBA001A601CBA00E9B192 /* Products */, + B82223081F972FA600521BC8 /* Frameworks */, + 46F3516D2840B078BCA8070E /* Pods */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* exapp.app */, + 00E356EE1AD99517003FC87E /* exappTests.xctest */, + 2D02E47B1E0B4A5D006451C7 /* exapp-tvOS.app */, + 2D02E4901E0B4A5D006451C7 /* exapp-tvOSTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + ADBDB9201DFEBF0600ED6528 /* Products */ = { + isa = PBXGroup; + children = ( + ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */, + B82222BD1F97238600521BC8 /* libRCTBlob-tvOS.a */, + ); + name = Products; + sourceTree = ""; + }; + B82222B21F97238500521BC8 /* Products */ = { + isa = PBXGroup; + children = ( + B82222B61F97238600521BC8 /* libFoxReact.a */, + ); + name = Products; + sourceTree = ""; + }; + B82223081F972FA600521BC8 /* Frameworks */ = { + isa = PBXGroup; + children = ( + AE754E9A4BAB0D64C38E9279 /* libPods-exapp.a */, + 3E2B88EAE17E7A167C3B59CD /* libPods-exapp-tvOS.a */, + 36A1F78EEB2FF245200E9A3B /* libPods-exapp-tvOSTests.a */, + 6DF232D0B76C3E09D2636609 /* libPods-exappTests.a */, + 1D1706C353FDB09DD75093C3 /* libPods-abs_exapp-exapp.a */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 00E356ED1AD99517003FC87E /* exappTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "exappTests" */; + buildPhases = ( + B73CCDA3F7649D6CF0D26C93 /* [CP] Check Pods Manifest.lock */, + 00E356EA1AD99517003FC87E /* Sources */, + 00E356EB1AD99517003FC87E /* Frameworks */, + 00E356EC1AD99517003FC87E /* Resources */, + 870A832D41AD93C5D48994D2 /* [CP] Embed Pods Frameworks */, + B1F31C74950283ACE4198DDB /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 00E356F51AD99517003FC87E /* PBXTargetDependency */, + ); + name = exappTests; + productName = exappTests; + productReference = 00E356EE1AD99517003FC87E /* exappTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 13B07F861A680F5B00A75B9A /* exapp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "exapp" */; + buildPhases = ( + 006713626B625FCCE3501679 /* [CP] Check Pods Manifest.lock */, + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + F7039522BB11CF8B2F759638 /* [CP] Embed Pods Frameworks */, + 2EE6CB9DDC721549A661D58D /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + B81359501F9DC3DF0098C238 /* PBXTargetDependency */, + ); + name = exapp; + productName = "Hello World"; + productReference = 13B07F961A680F5B00A75B9A /* exapp.app */; + productType = "com.apple.product-type.application"; + }; + 2D02E47A1E0B4A5D006451C7 /* exapp-tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "exapp-tvOS" */; + buildPhases = ( + 090DB63FA7F16A08EA22FE0E /* [CP] Check Pods Manifest.lock */, + 2D02E4771E0B4A5D006451C7 /* Sources */, + 2D02E4781E0B4A5D006451C7 /* Frameworks */, + 2D02E4791E0B4A5D006451C7 /* Resources */, + 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */, + 86D70EC4714422852D51B47F /* [CP] Embed Pods Frameworks */, + 7A49DCE8C99649DFFF9283C2 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "exapp-tvOS"; + productName = "exapp-tvOS"; + productReference = 2D02E47B1E0B4A5D006451C7 /* exapp-tvOS.app */; + productType = "com.apple.product-type.application"; + }; + 2D02E48F1E0B4A5D006451C7 /* exapp-tvOSTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "exapp-tvOSTests" */; + buildPhases = ( + 88E243BF75C4AFAB6879FE4D /* [CP] Check Pods Manifest.lock */, + 2D02E48C1E0B4A5D006451C7 /* Sources */, + 2D02E48D1E0B4A5D006451C7 /* Frameworks */, + 2D02E48E1E0B4A5D006451C7 /* Resources */, + 35BEAE8ED2747E933143DE9C /* [CP] Embed Pods Frameworks */, + 088CF3297DF1125BDAE01747 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */, + ); + name = "exapp-tvOSTests"; + productName = "exapp-tvOSTests"; + productReference = 2D02E4901E0B4A5D006451C7 /* exapp-tvOSTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0610; + ORGANIZATIONNAME = Facebook; + TargetAttributes = { + 00E356ED1AD99517003FC87E = { + CreatedOnToolsVersion = 6.2; + DevelopmentTeam = DUP2JGEFH3; + ProvisioningStyle = Manual; + TestTargetID = 13B07F861A680F5B00A75B9A; + }; + 13B07F861A680F5B00A75B9A = { + DevelopmentTeam = DUP2JGEFH3; + ProvisioningStyle = Manual; + }; + 2D02E47A1E0B4A5D006451C7 = { + CreatedOnToolsVersion = 8.2.1; + ProvisioningStyle = Manual; + }; + 2D02E48F1E0B4A5D006451C7 = { + CreatedOnToolsVersion = 8.2.1; + ProvisioningStyle = Automatic; + TestTargetID = 2D02E47A1E0B4A5D006451C7; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "exapp" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = B82222B21F97238500521BC8 /* Products */; + ProjectRef = B82222B11F97238500521BC8 /* FoxReact.xcodeproj */; + }, + { + ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; + ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; + }, + { + ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */; + ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; + }, + { + ProductGroup = ADBDB9201DFEBF0600ED6528 /* Products */; + ProjectRef = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; + }, + { + ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; + ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; + }, + { + ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */; + ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; + }, + { + ProductGroup = 78C398B11ACF4ADC00677621 /* Products */; + ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; + }, + { + ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */; + ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; + }, + { + ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */; + ProjectRef = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; + }, + { + ProductGroup = 832341B11AAA6A8300B99B32 /* Products */; + ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; + }, + { + ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */; + ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; + }, + { + ProductGroup = 139FDEE71B06529A00C62182 /* Products */; + ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; + }, + { + ProductGroup = 146834001AC3E56700842450 /* Products */; + ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* exapp */, + 00E356ED1AD99517003FC87E /* exappTests */, + 2D02E47A1E0B4A5D006451C7 /* exapp-tvOS */, + 2D02E48F1E0B4A5D006451C7 /* exapp-tvOSTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTActionSheet.a; + remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTGeolocation.a; + remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTImage.a; + remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTNetwork.a; + remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTVibration.a; + remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTSettings.a; + remoteRef = 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTWebSocket.a; + remoteRef = 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 146834041AC3E56700842450 /* libReact.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libReact.a; + remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTImage-tvOS.a"; + remoteRef = 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTLinking-tvOS.a"; + remoteRef = 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTNetwork-tvOS.a"; + remoteRef = 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTSettings-tvOS.a"; + remoteRef = 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTText-tvOS.a"; + remoteRef = 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTWebSocket-tvOS.a"; + remoteRef = 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3EA31DF850E9000B6D8A /* libReact.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libReact.a; + remoteRef = 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3EA51DF850E9000B6D8A /* libyoga.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libyoga.a; + remoteRef = 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3EA71DF850E9000B6D8A /* libyoga.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libyoga.a; + remoteRef = 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libcxxreact.a; + remoteRef = 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libcxxreact.a; + remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libjschelpers.a; + remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libjschelpers.a; + remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTAnimation.a; + remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTAnimation.a; + remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTLinking.a; + remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 832341B51AAA6A8300B99B32 /* libRCTText.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTText.a; + remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTBlob.a; + remoteRef = ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82222B61F97238600521BC8 /* libFoxReact.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libFoxReact.a; + remoteRef = B82222B51F97238600521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82222BD1F97238600521BC8 /* libRCTBlob-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTBlob-tvOS.a"; + remoteRef = B82222BC1F97238600521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82222CF1F97238600521BC8 /* libfishhook.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libfishhook.a; + remoteRef = B82222CE1F97238600521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82222D11F97238600521BC8 /* libfishhook-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libfishhook-tvOS.a"; + remoteRef = B82222D01F97238600521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82223B71F986ECD00521BC8 /* libthird-party.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libthird-party.a"; + remoteRef = B82223B61F986ECD00521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82223B91F986ECD00521BC8 /* libthird-party.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libthird-party.a"; + remoteRef = B82223B81F986ECD00521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82223BB1F986ECD00521BC8 /* libdouble-conversion.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libdouble-conversion.a"; + remoteRef = B82223BA1F986ECD00521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82223BD1F986ECD00521BC8 /* libdouble-conversion.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libdouble-conversion.a"; + remoteRef = B82223BC1F986ECD00521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 00E356EC1AD99517003FC87E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2D02E4791E0B4A5D006451C7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2D02E48E1E0B4A5D006451C7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 006713626B625FCCE3501679 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Bundle React Native code and images"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; + }; + 088CF3297DF1125BDAE01747 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-exapp-tvOSTests/Pods-exapp-tvOSTests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 090DB63FA7F16A08EA22FE0E /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Bundle React Native Code And Images"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; + }; + 2EE6CB9DDC721549A661D58D /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-abs_exapp-exapp/Pods-abs_exapp-exapp-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 35BEAE8ED2747E933143DE9C /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-exapp-tvOSTests/Pods-exapp-tvOSTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 7A49DCE8C99649DFFF9283C2 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-exapp-tvOS/Pods-exapp-tvOS-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 86D70EC4714422852D51B47F /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-exapp-tvOS/Pods-exapp-tvOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 870A832D41AD93C5D48994D2 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-exappTests/Pods-exappTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 88E243BF75C4AFAB6879FE4D /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + B1F31C74950283ACE4198DDB /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-exappTests/Pods-exappTests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + B73CCDA3F7649D6CF0D26C93 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + F7039522BB11CF8B2F759638 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-abs_exapp-exapp/Pods-abs_exapp-exapp-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 00E356EA1AD99517003FC87E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 00E356F31AD99517003FC87E /* exappTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, + 13B07FC11A68108700A75B9A /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2D02E4771E0B4A5D006451C7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, + 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2D02E48C1E0B4A5D006451C7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2DCD954D1E0B4F2C00145EB5 /* exappTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 13B07F861A680F5B00A75B9A /* exapp */; + targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; + }; + 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 2D02E47A1E0B4A5D006451C7 /* exapp-tvOS */; + targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */; + }; + B81359501F9DC3DF0098C238 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FoxReact; + targetProxy = B813594F1F9DC3DF0098C238 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { + isa = PBXVariantGroup; + children = ( + 13B07FB21A68108700A75B9A /* Base */, + ); + name = LaunchScreen.xib; + path = exapp; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 00E356F61AD99517003FC87E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 024459C074ABD7FDED2E1152 /* Pods-exappTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = DUP2JGEFH3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = exappTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/exapp.app/exapp"; + }; + name = Debug; + }; + 00E356F71AD99517003FC87E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AA922A352AE521FFB325543B /* Pods-exappTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Manual; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = exappTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/exapp.app/exapp"; + }; + name = Release; + }; + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 76720B7A305FDEADDB942F24 /* Pods-abs_exapp-exapp.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = DUP2JGEFH3; + INFOPLIST_FILE = exapp/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_NAME = exapp; + PROVISIONING_PROFILE = "bcc0172e-27ff-41e7-84b4-cfcdc25d3009"; + PROVISIONING_PROFILE_SPECIFIER = WildcardProfile; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 30E31585DA8944A9D74694D8 /* Pods-abs_exapp-exapp.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = exapp/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_NAME = exapp; + PROVISIONING_PROFILE_SPECIFIER = ""; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; + 2D02E4971E0B4A5E006451C7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 67A3C1084CE9675485DD1213 /* Pods-exapp-tvOS.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_STYLE = Manual; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ""; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "exapp-tvOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.exapp-tvOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = appletvos; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.2; + }; + name = Debug; + }; + 2D02E4981E0B4A5E006451C7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FEE073B6F666F0EF6466F8A6 /* Pods-exapp-tvOS.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_STYLE = Manual; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "exapp-tvOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.exapp-tvOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = appletvos; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.2; + }; + name = Release; + }; + 2D02E4991E0B4A5E006451C7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1AC808145EDDAF2355E64407 /* Pods-exapp-tvOSTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "exapp-tvOSTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.exapp-tvOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/exapp-tvOS.app/exapp-tvOS"; + TVOS_DEPLOYMENT_TARGET = 10.1; + }; + name = Debug; + }; + 2D02E49A1E0B4A5E006451C7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3A0B9A716E0A213D0E9629C4 /* Pods-exapp-tvOSTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "exapp-tvOSTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.exapp-tvOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/exapp-tvOS.app/exapp-tvOS"; + TVOS_DEPLOYMENT_TARGET = 10.1; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "exappTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00E356F61AD99517003FC87E /* Debug */, + 00E356F71AD99517003FC87E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "exapp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "exapp-tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2D02E4971E0B4A5E006451C7 /* Debug */, + 2D02E4981E0B4A5E006451C7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "exapp-tvOSTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2D02E4991E0B4A5E006451C7 /* Debug */, + 2D02E49A1E0B4A5E006451C7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "exapp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/lang/zh-cn/exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp-tvOS.xcscheme b/lang/zh-cn/exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp-tvOS.xcscheme new file mode 100644 index 0000000..68d6197 --- /dev/null +++ b/lang/zh-cn/exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp-tvOS.xcscheme @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lang/zh-cn/exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp.xcscheme b/lang/zh-cn/exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp.xcscheme new file mode 100644 index 0000000..13d99ca --- /dev/null +++ b/lang/zh-cn/exapp/ios/exapp.xcodeproj/xcshareddata/xcschemes/exapp.xcscheme @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lang/zh-cn/exapp/ios/exapp.xcworkspace/contents.xcworkspacedata b/lang/zh-cn/exapp/ios/exapp.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..69d3c9c --- /dev/null +++ b/lang/zh-cn/exapp/ios/exapp.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/lang/zh-cn/exapp/ios/exapp/AppDelegate.h b/lang/zh-cn/exapp/ios/exapp/AppDelegate.h new file mode 100644 index 0000000..a9654d5 --- /dev/null +++ b/lang/zh-cn/exapp/ios/exapp/AppDelegate.h @@ -0,0 +1,16 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import + +@interface AppDelegate : UIResponder + +@property (nonatomic, strong) UIWindow *window; + +@end diff --git a/lang/zh-cn/exapp/ios/exapp/AppDelegate.m b/lang/zh-cn/exapp/ios/exapp/AppDelegate.m new file mode 100644 index 0000000..119af55 --- /dev/null +++ b/lang/zh-cn/exapp/ios/exapp/AppDelegate.m @@ -0,0 +1,37 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import "AppDelegate.h" + +#import +#import + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + NSURL *jsCodeLocation; + + jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; + + RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation + moduleName:@"exapp" + initialProperties:nil + launchOptions:launchOptions]; + rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; + + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; + UIViewController *rootViewController = [UIViewController new]; + rootViewController.view = rootView; + self.window.rootViewController = rootViewController; + [self.window makeKeyAndVisible]; + return YES; +} + +@end diff --git a/lang/zh-cn/exapp/ios/exapp/Base.lproj/LaunchScreen.xib b/lang/zh-cn/exapp/ios/exapp/Base.lproj/LaunchScreen.xib new file mode 100644 index 0000000..e08f5a1 --- /dev/null +++ b/lang/zh-cn/exapp/ios/exapp/Base.lproj/LaunchScreen.xib @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lang/zh-cn/exapp/ios/exapp/Images.xcassets/AppIcon.appiconset/Contents.json b/lang/zh-cn/exapp/ios/exapp/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..118c98f --- /dev/null +++ b/lang/zh-cn/exapp/ios/exapp/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,38 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/lang/zh-cn/exapp/ios/exapp/Info.plist b/lang/zh-cn/exapp/ios/exapp/Info.plist new file mode 100644 index 0000000..afdb52f --- /dev/null +++ b/lang/zh-cn/exapp/ios/exapp/Info.plist @@ -0,0 +1,66 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + exapp + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLSchemes + + goiapp + + + + CFBundleVersion + 1 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSExceptionDomains + + localhost + + NSExceptionAllowsInsecureHTTPLoads + + + + + NSLocationWhenInUseUsageDescription + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/lang/zh-cn/exapp/ios/exapp/main.m b/lang/zh-cn/exapp/ios/exapp/main.m new file mode 100644 index 0000000..3d767fc --- /dev/null +++ b/lang/zh-cn/exapp/ios/exapp/main.m @@ -0,0 +1,18 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import + +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/lang/zh-cn/exapp/ios/exappTests/Info.plist b/lang/zh-cn/exapp/ios/exappTests/Info.plist new file mode 100644 index 0000000..886825c --- /dev/null +++ b/lang/zh-cn/exapp/ios/exappTests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/lang/zh-cn/exapp/ios/exappTests/exappTests.m b/lang/zh-cn/exapp/ios/exappTests/exappTests.m new file mode 100644 index 0000000..fdb7e51 --- /dev/null +++ b/lang/zh-cn/exapp/ios/exappTests/exappTests.m @@ -0,0 +1,70 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import +#import + +#import +#import + +#define TIMEOUT_SECONDS 600 +#define TEXT_TO_LOOK_FOR @"Welcome to React Native!" + +@interface exappTests : XCTestCase + +@end + +@implementation exappTests + +- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test +{ + if (test(view)) { + return YES; + } + for (UIView *subview in [view subviews]) { + if ([self findSubviewInView:subview matching:test]) { + return YES; + } + } + return NO; +} + +- (void)testRendersWelcomeScreen +{ + UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; + NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; + BOOL foundElement = NO; + + __block NSString *redboxError = nil; + RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { + if (level >= RCTLogLevelError) { + redboxError = message; + } + }); + + while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { + [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + + foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { + if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { + return YES; + } + return NO; + }]; + } + + RCTSetLogFunction(RCTDefaultLogFunction); + + XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); + XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); +} + + +@end diff --git a/lang/zh-cn/exapp/package-lock.json b/lang/zh-cn/exapp/package-lock.json new file mode 100644 index 0000000..24f99a1 --- /dev/null +++ b/lang/zh-cn/exapp/package-lock.json @@ -0,0 +1,7179 @@ +{ + "name": "exapp", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", + "dev": true + }, + "absolute-path": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz", + "integrity": "sha1-p4di+9rftSl76ZsV01p4Wy8JW/c=" + }, + "accepts": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", + "integrity": "sha1-5fHzkoxtlf2WVYw27D2dDeSm7Oo=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.5.3" + } + }, + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + }, + "acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "dev": true, + "requires": { + "acorn": "4.0.13" + } + }, + "ajv": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", + "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "json-schema-traverse": "0.3.1", + "json-stable-stringify": "1.0.1" + } + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", + "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=" + }, + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "art": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/art/-/art-0.10.1.tgz", + "integrity": "sha1-OFQYg+OZIlxeGT/yRujxV897IUY=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "requires": { + "lodash": "4.17.4" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.0", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-jest": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", + "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", + "dev": true, + "requires": { + "babel-plugin-istanbul": "4.1.5", + "babel-preset-jest": "21.2.0" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-external-helpers": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz", + "integrity": "sha1-IoX0iwK9Xe3oUXXK+MYuhq3M76E=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-istanbul": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", + "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "istanbul-lib-instrument": "1.8.0", + "test-exclude": "4.1.1" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + } + } + }, + "babel-plugin-jest-hoist": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", + "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", + "dev": true + }, + "babel-plugin-react-transform": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-react-transform/-/babel-plugin-react-transform-2.0.2.tgz", + "integrity": "sha1-UVu/qZaJOYEULZCx+bFjXeKZUQk=", + "requires": { + "lodash": "4.17.4" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "dev": true + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz", + "integrity": "sha1-Gew2yxSGtZ+fRorfpCzhOQjKKZk=", + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-plugin-syntax-class-properties": "6.13.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + } + }, + "babel-plugin-transform-es3-member-expression-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es3-member-expression-literals/-/babel-plugin-transform-es3-member-expression-literals-6.22.0.tgz", + "integrity": "sha1-cz00RPPsxBvvjtGmpOCWV7iWnrs=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es3-property-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es3-property-literals/-/babel-plugin-transform-es3-property-literals-6.22.0.tgz", + "integrity": "sha1-sgeNWELiKr9A9z6M3pzTcRq9V1g=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "requires": { + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-object-assign": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz", + "integrity": "sha1-+Z0vZvGgsNSY40bFNZaEdAyqILo=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "requires": { + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "requires": { + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "requires": { + "regenerator-transform": "0.10.1" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-preset-es2015-node": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015-node/-/babel-preset-es2015-node-6.1.1.tgz", + "integrity": "sha1-YLIxVwJLDP6/OmNVTLBe4DW05V8=", + "requires": { + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "semver": "5.4.1" + } + }, + "babel-preset-fbjs": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-2.1.4.tgz", + "integrity": "sha512-6XVQwlO26V5/0P9s2Eje8Epqkv/ihaMJ798+W98ktOA8fCn2IFM6wEi7CDW3fTbKFZ/8fDGvGZH01B6GSuNiWA==", + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-class-properties": "6.13.0", + "babel-plugin-syntax-flow": "6.18.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-class-properties": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es3-member-expression-literals": "6.22.0", + "babel-plugin-transform-es3-property-literals": "6.22.0", + "babel-plugin-transform-flow-strip-types": "6.22.0", + "babel-plugin-transform-object-rest-spread": "6.26.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1" + } + }, + "babel-preset-jest": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", + "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "21.2.0", + "babel-plugin-syntax-object-rest-spread": "6.13.0" + } + }, + "babel-preset-react-native": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-4.0.0.tgz", + "integrity": "sha512-Wfbo6x244nUbBxjr7hQaNFdjj7FDYU+TVT7cFVPEdVPI68vhN52iLvamm+ErhNdHq6M4j1cMT6AJBYx7Wzdr0g==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-react-transform": "3.0.0", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-plugin-syntax-class-properties": "6.13.0", + "babel-plugin-syntax-dynamic-import": "6.18.0", + "babel-plugin-syntax-flow": "6.18.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-class-properties": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-flow-strip-types": "6.22.0", + "babel-plugin-transform-object-assign": "6.22.0", + "babel-plugin-transform-object-rest-spread": "6.26.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-plugin-transform-regenerator": "6.26.0", + "babel-template": "6.26.0", + "react-transform-hmr": "1.0.4" + }, + "dependencies": { + "babel-plugin-react-transform": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-transform/-/babel-plugin-react-transform-3.0.0.tgz", + "integrity": "sha512-4vJGddwPiHAOgshzZdGwYy4zRjjIr5SMY7gkOaCyIASjgpcsyLTlZNuB5rHOFoaTvGlhfo8/g4pobXPyHqm/3w==", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + } + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.1", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" + }, + "base64-url": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz", + "integrity": "sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg=" + }, + "basic-auth": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz", + "integrity": "sha1-Awk1sB3nyblKgksp8/zLdQ06UpA=" + }, + "basic-auth-connect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", + "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=" + }, + "batch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", + "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=" + }, + "big-integer": { + "version": "1.6.25", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.25.tgz", + "integrity": "sha1-HeRan1dUKsIBIcaC+NZCIgo06CM=" + }, + "body-parser": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz", + "integrity": "sha1-wIzzMMM1jhUQFqBXRvE/ApyX+pc=", + "requires": { + "bytes": "2.1.0", + "content-type": "1.0.4", + "debug": "2.2.0", + "depd": "1.0.1", + "http-errors": "1.3.1", + "iconv-lite": "0.4.11", + "on-finished": "2.3.0", + "qs": "4.0.0", + "raw-body": "2.1.7", + "type-is": "1.6.15" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "iconv-lite": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz", + "integrity": "sha1-LstC/SlHRJIiCaLnxATayHk9it4=" + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } + } + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.0" + } + }, + "bplist-creator": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", + "integrity": "sha1-N98VNgkoJLh8QvlXsBNEEXNyrkU=", + "requires": { + "stream-buffers": "2.2.0" + } + }, + "bplist-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz", + "integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=", + "requires": { + "big-integer": "1.6.25" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "browser-resolve": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "dev": true, + "requires": { + "resolve": "1.1.7" + } + }, + "bser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", + "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", + "requires": { + "node-int64": "0.4.0" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "bytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz", + "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q=" + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "ci-info": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.1.tgz", + "integrity": "sha512-vHDDF/bP9RYpTWtUhpJRhCFdvvp3iDWvEbuDbWgvjUrNGV1MXJrE0MPcwGtEled04m61iwdBLUIHZtDgzWS4ZQ==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "clone": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=" + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "color-convert": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", + "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + }, + "compressible": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz", + "integrity": "sha1-FnGKdd4oPtjmBAQWJaIGRYZ5fYo=", + "requires": { + "mime-db": "1.30.0" + } + }, + "compression": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.5.2.tgz", + "integrity": "sha1-sDuNhub4rSloPLqN+R3cb/x3s5U=", + "requires": { + "accepts": "1.2.13", + "bytes": "2.1.0", + "compressible": "2.0.11", + "debug": "2.2.0", + "on-headers": "1.0.1", + "vary": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "connect": { + "version": "2.30.2", + "resolved": "https://registry.npmjs.org/connect/-/connect-2.30.2.tgz", + "integrity": "sha1-jam8vooFTT0xjXTf7JA7XDmhtgk=", + "requires": { + "basic-auth-connect": "1.0.0", + "body-parser": "1.13.3", + "bytes": "2.1.0", + "compression": "1.5.2", + "connect-timeout": "1.6.2", + "content-type": "1.0.4", + "cookie": "0.1.3", + "cookie-parser": "1.3.5", + "cookie-signature": "1.0.6", + "csurf": "1.8.3", + "debug": "2.2.0", + "depd": "1.0.1", + "errorhandler": "1.4.3", + "express-session": "1.11.3", + "finalhandler": "0.4.0", + "fresh": "0.3.0", + "http-errors": "1.3.1", + "method-override": "2.3.10", + "morgan": "1.6.1", + "multiparty": "3.3.2", + "on-headers": "1.0.1", + "parseurl": "1.3.2", + "pause": "0.1.0", + "qs": "4.0.0", + "response-time": "2.3.2", + "serve-favicon": "2.3.2", + "serve-index": "1.7.3", + "serve-static": "1.10.3", + "type-is": "1.6.15", + "utils-merge": "1.0.0", + "vhost": "3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } + } + }, + "connect-timeout": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.2.tgz", + "integrity": "sha1-3ppexh4zoStu2qt7XwYumMWZuI4=", + "requires": { + "debug": "2.2.0", + "http-errors": "1.3.1", + "ms": "0.7.1", + "on-headers": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "content-type-parser": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz", + "integrity": "sha1-w+VpiMU8ZRJ/tG1AMqOpACRv3JQ=", + "dev": true + }, + "convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=" + }, + "cookie": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz", + "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU=" + }, + "cookie-parser": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz", + "integrity": "sha1-nXVVcPtdF4kHcSJ6AjFNm+fPg1Y=", + "requires": { + "cookie": "0.1.3", + "cookie-signature": "1.0.6" + } + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "crc": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.3.0.tgz", + "integrity": "sha1-+mIuG8OIvyVzCQgta2UgDOZwkLo=" + }, + "create-react-class": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.2.tgz", + "integrity": "sha1-zx7RXxKq1/FO9fLf4F5sQvke8Co=", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "csrf": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.0.6.tgz", + "integrity": "sha1-thEg3c7q/JHnbtUxO7XAsmZ7cQo=", + "requires": { + "rndm": "1.2.0", + "tsscmp": "1.0.5", + "uid-safe": "2.1.4" + } + }, + "cssom": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", + "dev": true + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "requires": { + "cssom": "0.3.2" + } + }, + "csurf": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.8.3.tgz", + "integrity": "sha1-I/KhO/HY/OHQyZZYg5RELLqGpWo=", + "requires": { + "cookie": "0.1.3", + "cookie-signature": "1.0.6", + "csrf": "3.0.6", + "http-errors": "1.3.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "denodeify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", + "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=" + }, + "depd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz", + "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "2.0.1" + } + }, + "diff": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", + "dev": true + }, + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "requires": { + "readable-stream": "1.1.14" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.19" + } + }, + "envinfo": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-3.4.1.tgz", + "integrity": "sha1-jIDp8u7CzU4q2yxdASfOB6Kqoq4=", + "requires": { + "minimist": "1.2.0", + "os-name": "2.0.1", + "which": "1.3.0" + } + }, + "errno": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "requires": { + "prr": "0.0.0" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "0.2.1" + } + }, + "errorhandler": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.4.3.tgz", + "integrity": "sha1-t7cO2PNZ6duICS8tIMD4MUIK2D8=", + "requires": { + "accepts": "1.3.4", + "escape-html": "1.0.3" + }, + "dependencies": { + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + } + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "etag": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", + "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=" + }, + "event-target-shim": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-1.1.1.tgz", + "integrity": "sha1-qG5e5r2qFgVEddp5fM3fDFVphJE=" + }, + "exec-sh": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz", + "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", + "requires": { + "merge": "1.2.0" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "requires": { + "fill-range": "2.2.3" + } + }, + "expect": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-21.2.1.tgz", + "integrity": "sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "jest-diff": "21.2.1", + "jest-get-type": "21.2.0", + "jest-matcher-utils": "21.2.1", + "jest-message-util": "21.2.1", + "jest-regex-util": "21.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + } + } + }, + "express-session": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.11.3.tgz", + "integrity": "sha1-XMmPP1/4Ttg1+Ry/CqvQxxB0AK8=", + "requires": { + "cookie": "0.1.3", + "cookie-signature": "1.0.6", + "crc": "3.3.0", + "debug": "2.2.0", + "depd": "1.0.1", + "on-headers": "1.0.1", + "parseurl": "1.3.2", + "uid-safe": "2.0.0", + "utils-merge": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + }, + "uid-safe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz", + "integrity": "sha1-p/PGymSh9qXQTsDvPkw9U2cxcTc=", + "requires": { + "base64-url": "1.2.1" + } + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "external-editor": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.5.tgz", + "integrity": "sha512-Msjo64WT5W+NhOpQXh0nOHm+n0RfU1QUwDnKYvJ8dEJ8zlwLrqXNTv5mSUTJpepf41PDJGyhueTw2vNZW+Fr/w==", + "requires": { + "iconv-lite": "0.4.19", + "jschardet": "1.5.1", + "tmp": "0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fancy-log": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", + "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", + "requires": { + "chalk": "1.1.3", + "time-stamp": "1.1.0" + } + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fb-watchman": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", + "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "requires": { + "bser": "2.0.0" + } + }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + } + }, + "fbjs-scripts": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/fbjs-scripts/-/fbjs-scripts-0.8.1.tgz", + "integrity": "sha512-hTjqlua9YJupF8shbVRTq20xKPITnDmqBLBQyR9BttZYT+gxGeKboIzPC19T3Erp29Q0+jdMwjUiyTHR61q1Bw==", + "requires": { + "babel-core": "6.26.0", + "babel-preset-fbjs": "2.1.4", + "core-js": "2.5.1", + "cross-spawn": "5.1.0", + "gulp-util": "3.0.8", + "object-assign": "4.1.1", + "semver": "5.4.1", + "through2": "2.0.3" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" + } + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "7.1.2", + "minimatch": "3.0.4" + } + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "finalhandler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz", + "integrity": "sha1-llpS2ejQXSuFdUhUH7ibU6JJfZs=", + "requires": { + "debug": "2.2.0", + "escape-html": "1.0.2", + "on-finished": "2.3.0", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "escape-html": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz", + "integrity": "sha1-130y+pjjjC9BroXpJ44ODmuhAiw=" + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "1.0.2" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "fresh": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", + "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=" + }, + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", + "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", + "optional": true, + "requires": { + "nan": "2.7.0", + "node-pre-gyp": "0.6.36" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "optional": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "optional": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.36", + "bundled": true, + "optional": true, + "requires": { + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "optional": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, + "gauge": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz", + "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=", + "requires": { + "ansi": "0.3.1", + "has-unicode": "2.0.1", + "lodash.pad": "4.5.1", + "lodash.padend": "4.6.1", + "lodash.padstart": "4.6.1" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "2.0.1" + } + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "requires": { + "min-document": "2.19.0", + "process": "0.5.2" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "glogg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", + "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", + "requires": { + "sparkles": "1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "requires": { + "array-differ": "1.0.0", + "array-uniq": "1.0.3", + "beeper": "1.1.1", + "chalk": "1.1.3", + "dateformat": "2.2.0", + "fancy-log": "1.3.0", + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash._reescape": "3.0.0", + "lodash._reevaluate": "3.0.0", + "lodash._reinterpolate": "3.0.0", + "lodash.template": "3.6.2", + "minimist": "1.2.0", + "multipipe": "0.1.2", + "object-assign": "3.0.0", + "replace-ext": "0.0.1", + "through2": "2.0.3", + "vinyl": "0.5.3" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "requires": { + "glogg": "1.0.0" + } + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.7.5" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "5.2.3", + "har-schema": "2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "requires": { + "sparkles": "1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.0.2" + } + }, + "hoek": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + }, + "html-encoding-sniffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz", + "integrity": "sha1-eb96eF6klf5mFl5zQVPzY/9UN9o=", + "dev": true, + "requires": { + "whatwg-encoding": "1.0.1" + } + }, + "http-errors": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "requires": { + "inherits": "2.0.3", + "statuses": "1.3.1" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "image-size": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.1.tgz", + "integrity": "sha512-lHMlI2MykfeHAQdtydQh4fTcBQVf4zLTA91w1euBe9rbmAfJ/iyzMh8H3KD9u1RldlHaMS3tmMV5TEe9BkmW9g==" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.2.0", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.0.5", + "figures": "2.0.0", + "lodash": "4.17.4", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-ci": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", + "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", + "dev": true, + "requires": { + "ci-info": "1.1.1" + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.3" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-api": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.1.14.tgz", + "integrity": "sha1-JbxXAffGgMD//5E95G42GaOm5oA=", + "dev": true, + "requires": { + "async": "2.5.0", + "fileset": "2.0.3", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-hook": "1.0.7", + "istanbul-lib-instrument": "1.8.0", + "istanbul-lib-report": "1.1.1", + "istanbul-lib-source-maps": "1.2.1", + "istanbul-reports": "1.1.2", + "js-yaml": "3.10.0", + "mkdirp": "0.5.1", + "once": "1.4.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", + "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==", + "dev": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz", + "integrity": "sha1-ZvbJQhzJ7EcE928tsIS6kHiitTI=", + "dev": true, + "requires": { + "babel-generator": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.1.1", + "semver": "5.4.1" + } + }, + "istanbul-lib-report": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", + "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", + "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", + "dev": true, + "requires": { + "debug": "2.6.9", + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + } + }, + "istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha1-D7Lj9qqZIr085F0F2KtNXo4HvU8=", + "dev": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "jest": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-21.2.1.tgz", + "integrity": "sha512-mXN0ppPvWYoIcC+R+ctKxAJ28xkt/Z5Js875padm4GbgUn6baeR5N4Ng6LjatIRpUQDZVJABT7Y4gucFjPryfw==", + "dev": true, + "requires": { + "jest-cli": "21.2.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "jest-cli": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-21.2.1.tgz", + "integrity": "sha512-T1BzrbFxDIW/LLYQqVfo94y/hhaj1NzVQkZgBumAC+sxbjMROI7VkihOdxNR758iYbQykL2ZOWUBurFgkQrzdg==", + "dev": true, + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.2.0", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "is-ci": "1.0.10", + "istanbul-api": "1.1.14", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-instrument": "1.8.0", + "istanbul-lib-source-maps": "1.2.1", + "jest-changed-files": "21.2.0", + "jest-config": "21.2.1", + "jest-environment-jsdom": "21.2.1", + "jest-haste-map": "21.2.0", + "jest-message-util": "21.2.1", + "jest-regex-util": "21.2.0", + "jest-resolve-dependencies": "21.2.0", + "jest-runner": "21.2.1", + "jest-runtime": "21.2.1", + "jest-snapshot": "21.2.1", + "jest-util": "21.2.1", + "micromatch": "2.3.11", + "node-notifier": "5.1.2", + "pify": "3.0.0", + "slash": "1.0.0", + "string-length": "2.0.0", + "strip-ansi": "4.0.0", + "which": "1.3.0", + "worker-farm": "1.5.0", + "yargs": "9.0.1" + } + }, + "jest-docblock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", + "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", + "dev": true + }, + "jest-haste-map": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", + "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", + "dev": true, + "requires": { + "fb-watchman": "2.0.0", + "graceful-fs": "4.1.11", + "jest-docblock": "21.2.0", + "micromatch": "2.3.11", + "sane": "2.2.0", + "worker-farm": "1.5.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "jest-changed-files": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-21.2.0.tgz", + "integrity": "sha512-+lCNP1IZLwN1NOIvBcV5zEL6GENK6TXrDj4UxWIeLvIsIDa+gf6J7hkqsW2qVVt/wvH65rVvcPwqXdps5eclTQ==", + "dev": true, + "requires": { + "throat": "4.1.0" + } + }, + "jest-config": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-21.2.1.tgz", + "integrity": "sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==", + "dev": true, + "requires": { + "chalk": "2.2.0", + "glob": "7.1.2", + "jest-environment-jsdom": "21.2.1", + "jest-environment-node": "21.2.1", + "jest-get-type": "21.2.0", + "jest-jasmine2": "21.2.1", + "jest-regex-util": "21.2.0", + "jest-resolve": "21.2.0", + "jest-util": "21.2.1", + "jest-validate": "21.2.1", + "pretty-format": "21.2.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", + "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-diff": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-21.2.1.tgz", + "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", + "dev": true, + "requires": { + "chalk": "2.2.0", + "diff": "3.4.0", + "jest-get-type": "21.2.0", + "pretty-format": "21.2.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", + "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-docblock": { + "version": "20.1.0-echo.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.1.0-echo.1.tgz", + "integrity": "sha512-zJPqHgxSlu5AYjyFLoXzwSqTZGeRAbtW9lTrWfjfDWyQCQjPlt9j9s7t3UBoDwUocM7qVNdlrcXPPtBkQR1dJw==" + }, + "jest-environment-jsdom": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz", + "integrity": "sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==", + "dev": true, + "requires": { + "jest-mock": "21.2.0", + "jest-util": "21.2.1", + "jsdom": "9.12.0" + } + }, + "jest-environment-node": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-21.2.1.tgz", + "integrity": "sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==", + "dev": true, + "requires": { + "jest-mock": "21.2.0", + "jest-util": "21.2.1" + } + }, + "jest-get-type": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", + "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==", + "dev": true + }, + "jest-haste-map": { + "version": "20.1.0-echo.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.1.0-echo.1.tgz", + "integrity": "sha512-5hhKBYWNHIgVnGcOtzo0wsjHuMqZ+9RUmKou4py8yhjYmtbwVVVFcuvTBClwXt/NdrQ8JrbCvtHq5b4IWS7ieg==", + "requires": { + "fb-watchman": "2.0.0", + "graceful-fs": "4.1.11", + "jest-docblock": "20.1.0-echo.1", + "micromatch": "2.3.11", + "sane": "2.2.0", + "worker-farm": "1.5.0" + } + }, + "jest-jasmine2": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz", + "integrity": "sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==", + "dev": true, + "requires": { + "chalk": "2.2.0", + "expect": "21.2.1", + "graceful-fs": "4.1.11", + "jest-diff": "21.2.1", + "jest-matcher-utils": "21.2.1", + "jest-message-util": "21.2.1", + "jest-snapshot": "21.2.1", + "p-cancelable": "0.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-matcher-utils": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz", + "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", + "dev": true, + "requires": { + "chalk": "2.2.0", + "jest-get-type": "21.2.0", + "pretty-format": "21.2.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", + "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-message-util": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-21.2.1.tgz", + "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", + "dev": true, + "requires": { + "chalk": "2.2.0", + "micromatch": "2.3.11", + "slash": "1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-mock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-21.2.0.tgz", + "integrity": "sha512-aZDfyVf0LEoABWiY6N0d+O963dUQSyUa4qgzurHR3TBDPen0YxKCJ6l2i7lQGh1tVdsuvdrCZ4qPj+A7PievCw==", + "dev": true + }, + "jest-regex-util": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-21.2.0.tgz", + "integrity": "sha512-BKQ1F83EQy0d9Jen/mcVX7D+lUt2tthhK/2gDWRgLDJRNOdRgSp1iVqFxP8EN1ARuypvDflRfPzYT8fQnoBQFQ==", + "dev": true + }, + "jest-resolve": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-21.2.0.tgz", + "integrity": "sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==", + "dev": true, + "requires": { + "browser-resolve": "1.11.2", + "chalk": "2.2.0", + "is-builtin-module": "1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz", + "integrity": "sha512-ok8ybRFU5ScaAcfufIQrCbdNJSRZ85mkxJ1EhUp8Bhav1W1/jv/rl1Q6QoVQHObNxmKnbHVKrfLZbCbOsXQ+bQ==", + "dev": true, + "requires": { + "jest-regex-util": "21.2.0" + } + }, + "jest-runner": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-21.2.1.tgz", + "integrity": "sha512-Anb72BOQlHqF/zETqZ2K20dbYsnqW/nZO7jV8BYENl+3c44JhMrA8zd1lt52+N7ErnsQMd2HHKiVwN9GYSXmrg==", + "dev": true, + "requires": { + "jest-config": "21.2.1", + "jest-docblock": "21.2.0", + "jest-haste-map": "21.2.0", + "jest-jasmine2": "21.2.1", + "jest-message-util": "21.2.1", + "jest-runtime": "21.2.1", + "jest-util": "21.2.1", + "pify": "3.0.0", + "throat": "4.1.0", + "worker-farm": "1.5.0" + }, + "dependencies": { + "jest-docblock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", + "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", + "dev": true + }, + "jest-haste-map": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", + "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", + "dev": true, + "requires": { + "fb-watchman": "2.0.0", + "graceful-fs": "4.1.11", + "jest-docblock": "21.2.0", + "micromatch": "2.3.11", + "sane": "2.2.0", + "worker-farm": "1.5.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "jest-runtime": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-21.2.1.tgz", + "integrity": "sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-jest": "21.2.0", + "babel-plugin-istanbul": "4.1.5", + "chalk": "2.2.0", + "convert-source-map": "1.5.0", + "graceful-fs": "4.1.11", + "jest-config": "21.2.1", + "jest-haste-map": "21.2.0", + "jest-regex-util": "21.2.0", + "jest-resolve": "21.2.0", + "jest-util": "21.2.1", + "json-stable-stringify": "1.0.1", + "micromatch": "2.3.11", + "slash": "1.0.0", + "strip-bom": "3.0.0", + "write-file-atomic": "2.3.0", + "yargs": "9.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "jest-docblock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", + "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", + "dev": true + }, + "jest-haste-map": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", + "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", + "dev": true, + "requires": { + "fb-watchman": "2.0.0", + "graceful-fs": "4.1.11", + "jest-docblock": "21.2.0", + "micromatch": "2.3.11", + "sane": "2.2.0", + "worker-farm": "1.5.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "jest-snapshot": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-21.2.1.tgz", + "integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==", + "dev": true, + "requires": { + "chalk": "2.2.0", + "jest-diff": "21.2.1", + "jest-matcher-utils": "21.2.1", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "pretty-format": "21.2.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", + "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-util": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-21.2.1.tgz", + "integrity": "sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==", + "dev": true, + "requires": { + "callsites": "2.0.0", + "chalk": "2.2.0", + "graceful-fs": "4.1.11", + "jest-message-util": "21.2.1", + "jest-mock": "21.2.0", + "jest-validate": "21.2.1", + "mkdirp": "0.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-validate": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", + "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", + "dev": true, + "requires": { + "chalk": "2.2.0", + "jest-get-type": "21.2.0", + "leven": "2.1.0", + "pretty-format": "21.2.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", + "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "jschardet": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz", + "integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==" + }, + "jsdom": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", + "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", + "dev": true, + "requires": { + "abab": "1.0.4", + "acorn": "4.0.13", + "acorn-globals": "3.1.0", + "array-equal": "1.0.0", + "content-type-parser": "1.0.1", + "cssom": "0.3.2", + "cssstyle": "0.2.37", + "escodegen": "1.9.0", + "html-encoding-sniffer": "1.0.1", + "nwmatcher": "1.4.3", + "parse5": "1.5.1", + "request": "2.83.0", + "sax": "1.2.4", + "symbol-tree": "3.2.2", + "tough-cookie": "2.3.3", + "webidl-conversions": "4.0.2", + "whatwg-encoding": "1.0.1", + "whatwg-url": "4.8.0", + "xml-name-validator": "2.0.1" + }, + "dependencies": { + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "requires": { + "graceful-fs": "4.1.11" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "1.0.0" + } + }, + "left-pad": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.1.3.tgz", + "integrity": "sha1-YS9hwDPzqeCOk58crr7qQbbzGZo=" + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=" + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=" + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=" + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "requires": { + "lodash._root": "3.0.1" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } + }, + "lodash.pad": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", + "integrity": "sha1-QzCUmoM6fI2iLMIPaibE1Z3runA=" + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=" + }, + "lodash.padstart": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", + "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "requires": { + "lodash._basecopy": "3.0.1", + "lodash._basetostring": "3.0.1", + "lodash._basevalues": "3.0.0", + "lodash._isiterateecall": "3.0.9", + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0", + "lodash.keys": "3.1.2", + "lodash.restparam": "3.6.1", + "lodash.templatesettings": "3.1.1" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "requires": { + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0" + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "3.0.2" + } + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "macos-release": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-1.1.0.tgz", + "integrity": "sha512-mmLbumEYMi5nXReB9js3WGsB8UE6cDBWyIO62Z4DNx6GbRhDxHNjA1MlzSpJ2S2KM1wyiPRA0d19uHWYYvMHjA==" + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.4" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "merge": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", + "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=" + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "requires": { + "readable-stream": "2.3.3" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "method-override": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.10.tgz", + "integrity": "sha1-49r41d7hDdLc59SuiNYrvud0drQ=", + "requires": { + "debug": "2.6.9", + "methods": "1.1.2", + "parseurl": "1.3.2", + "vary": "1.1.2" + }, + "dependencies": { + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + } + } + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "metro-bundler": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/metro-bundler/-/metro-bundler-0.13.0.tgz", + "integrity": "sha512-fJAUuQ2HOVfXJVmTlrjj/KFrkK6ww/EJNoNzfNB+7KravsQ5otf8s1IFkSoBYTfi1kM4AuiBlqrWvmn27zcScg==", + "requires": { + "absolute-path": "0.0.0", + "async": "2.5.0", + "babel-core": "6.26.0", + "babel-generator": "6.26.0", + "babel-plugin-external-helpers": "6.22.0", + "babel-preset-es2015-node": "6.1.1", + "babel-preset-fbjs": "2.1.4", + "babel-preset-react-native": "2.1.0", + "babel-register": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "concat-stream": "1.6.0", + "core-js": "2.5.1", + "debug": "2.6.9", + "denodeify": "1.2.1", + "fbjs": "0.8.14", + "graceful-fs": "4.1.11", + "image-size": "0.6.1", + "jest-docblock": "20.1.0-echo.1", + "jest-haste-map": "20.1.0-echo.1", + "json-stable-stringify": "1.0.1", + "json5": "0.4.0", + "left-pad": "1.1.3", + "lodash": "4.17.4", + "merge-stream": "1.0.1", + "mime-types": "2.1.11", + "mkdirp": "0.5.1", + "request": "2.83.0", + "rimraf": "2.6.2", + "source-map": "0.5.7", + "temp": "0.8.3", + "throat": "4.1.0", + "uglify-js": "2.7.5", + "write-file-atomic": "1.3.4", + "xpipe": "1.0.5" + }, + "dependencies": { + "babel-preset-react-native": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-2.1.0.tgz", + "integrity": "sha1-kBPr2C2hyIECv1iIEP9Z4gnKK4o=", + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-react-transform": "2.0.2", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-plugin-syntax-class-properties": "6.13.0", + "babel-plugin-syntax-flow": "6.18.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-class-properties": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-flow-strip-types": "6.22.0", + "babel-plugin-transform-object-assign": "6.22.0", + "babel-plugin-transform-object-rest-spread": "6.26.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-plugin-transform-regenerator": "6.26.0", + "react-transform-hmr": "1.0.4" + } + }, + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" + }, + "fbjs": { + "version": "0.8.14", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz", + "integrity": "sha1-0dviviVMNakeCfMfnNUKQLKg7Rw=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, + "json5": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", + "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=" + }, + "mime-db": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", + "integrity": "sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=" + }, + "mime-types": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", + "integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=", + "requires": { + "mime-db": "1.23.0" + } + } + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "mime-db": "1.30.0" + } + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "0.1.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "morgan": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz", + "integrity": "sha1-X9gYOYxoGcuiinzWZk8pL+HAu/I=", + "requires": { + "basic-auth": "1.0.4", + "debug": "2.2.0", + "depd": "1.0.1", + "on-finished": "2.3.0", + "on-headers": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multiparty": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz", + "integrity": "sha1-Nd5oBNwZZD5SSfPT473GyM4wHT8=", + "requires": { + "readable-stream": "1.1.14", + "stream-counter": "0.2.0" + } + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "requires": { + "duplexer2": "0.0.2" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nan": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz", + "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=", + "optional": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", + "integrity": "sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=" + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-notifier": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", + "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", + "dev": true, + "requires": { + "growly": "1.3.0", + "semver": "5.4.1", + "shellwords": "0.1.1", + "which": "1.3.0" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "npmlog": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz", + "integrity": "sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=", + "requires": { + "ansi": "0.3.1", + "are-we-there-yet": "1.1.4", + "gauge": "1.2.7" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "nwmatcher": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "1.1.0" + } + }, + "opn": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/opn/-/opn-3.0.3.tgz", + "integrity": "sha1-ttmec5n3jWXDuq/+8fsojpuFJDo=", + "requires": { + "object-assign": "4.1.1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "0.0.10", + "wordwrap": "0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "1.0.0" + } + }, + "os-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-2.0.1.tgz", + "integrity": "sha1-uaOGNhwXrjohc27wWZQFyajF3F4=", + "requires": { + "macos-release": "1.1.0", + "win-release": "1.1.1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "dev": true + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.1.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "dev": true + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pause": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.1.0.tgz", + "integrity": "sha1-68ikqGGf8LioGsFRPDQ0/0af23Q=" + }, + "pegjs": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", + "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + }, + "plist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-1.2.0.tgz", + "integrity": "sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=", + "requires": { + "base64-js": "0.0.8", + "util-deprecate": "1.0.2", + "xmlbuilder": "4.0.0", + "xmldom": "0.1.27" + }, + "dependencies": { + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + }, + "pretty-format": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-4.3.1.tgz", + "integrity": "sha1-UwvlxCs8BbNkFKeipDN6qArNDo0=" + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "2.0.6" + } + }, + "prop-types": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", + "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "qs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", + "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=" + }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "range-parser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", + "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=" + }, + "raw-body": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", + "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", + "requires": { + "bytes": "2.4.0", + "iconv-lite": "0.4.13", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=" + }, + "iconv-lite": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=" + } + } + }, + "react": { + "version": "16.0.0-beta.5", + "resolved": "https://registry.npmjs.org/react/-/react-16.0.0-beta.5.tgz", + "integrity": "sha512-FZSIxm5aO24tzl+11WWZSlYY9QCM3qm32f0+VEmAimm5ZFAiXdcHPdsWnCW00zkHIXszh9AWeOXu0OEqq30FSQ==", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "react-clone-referenced-element": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-clone-referenced-element/-/react-clone-referenced-element-1.0.1.tgz", + "integrity": "sha1-K7qMaUBMXkqUQ5hgC8xMlB+GBoI=" + }, + "react-deep-force-update": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.1.1.tgz", + "integrity": "sha1-vNMUeAJ7ZLMznxCJIatSC0MT3Cw=" + }, + "react-devtools-core": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-2.5.2.tgz", + "integrity": "sha1-+XvsWvrl2TGNFneAZeDCFMTVcUw=", + "requires": { + "shell-quote": "1.6.1", + "ws": "2.3.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + }, + "ws": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-2.3.1.tgz", + "integrity": "sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=", + "requires": { + "safe-buffer": "5.0.1", + "ultron": "1.1.0" + } + } + } + }, + "react-native": { + "version": "0.49.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.49.3.tgz", + "integrity": "sha1-DKRZ7kn5xZ6DJrLO2eNMWTM6LyY=", + "requires": { + "absolute-path": "0.0.0", + "art": "0.10.1", + "babel-core": "6.26.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.16.0", + "babel-plugin-transform-class-properties": "6.24.1", + "babel-plugin-transform-flow-strip-types": "6.22.0", + "babel-plugin-transform-object-rest-spread": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "base64-js": "1.2.1", + "chalk": "1.1.3", + "commander": "2.11.0", + "connect": "2.30.2", + "create-react-class": "15.6.2", + "debug": "2.6.9", + "denodeify": "1.2.1", + "envinfo": "3.4.1", + "event-target-shim": "1.1.1", + "fbjs": "0.8.14", + "fbjs-scripts": "0.8.1", + "fs-extra": "1.0.0", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "inquirer": "3.3.0", + "lodash": "4.17.4", + "metro-bundler": "0.13.0", + "mime": "1.4.1", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "node-fetch": "1.7.3", + "npmlog": "2.0.4", + "opn": "3.0.3", + "optimist": "0.6.1", + "plist": "1.2.0", + "pretty-format": "4.3.1", + "promise": "7.3.1", + "prop-types": "15.6.0", + "react-clone-referenced-element": "1.0.1", + "react-devtools-core": "2.5.2", + "react-timer-mixin": "0.13.3", + "regenerator-runtime": "0.9.6", + "rimraf": "2.6.2", + "semver": "5.4.1", + "shell-quote": "1.6.1", + "stacktrace-parser": "0.1.4", + "whatwg-fetch": "1.1.1", + "ws": "1.1.4", + "xcode": "0.9.3", + "xmldoc": "0.4.0", + "yargs": "6.6.0" + }, + "dependencies": { + "fbjs": { + "version": "0.8.14", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz", + "integrity": "sha1-0dviviVMNakeCfMfnNUKQLKg7Rw=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + } + }, + "whatwg-fetch": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz", + "integrity": "sha1-rDydOfMgxtzlM5lp0FTvQ90zMxk=" + } + } + }, + "react-proxy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.8.tgz", + "integrity": "sha1-nb/Z2SdSjDqp9ETkVYw3gwq4wmo=", + "requires": { + "lodash": "4.17.4", + "react-deep-force-update": "1.1.1" + } + }, + "react-test-renderer": { + "version": "16.0.0-beta.5", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.0.0-beta.5.tgz", + "integrity": "sha512-cTgpGjbew12c6MZqTe4qjWE91GxRrl9nRHYJKLayPSu10E4ZeMr/xOVy4fkY78dKwgSJVu/6oYIoN84leh81XA==", + "dev": true, + "requires": { + "fbjs": "0.8.16", + "object-assign": "4.1.1" + } + }, + "react-timer-mixin": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/react-timer-mixin/-/react-timer-mixin-0.13.3.tgz", + "integrity": "sha1-Dai5+AfsB9w+hU0ILHN8ZWBbPSI=" + }, + "react-transform-hmr": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz", + "integrity": "sha1-4aQL0Krvxy6N/Xp82gmvhQZjl7s=", + "requires": { + "global": "4.3.2", + "react-proxy": "1.1.8" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==" + }, + "regenerator-runtime": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz", + "integrity": "sha1-0z65XQ0gAaS+OWWXB8UbDLcc4Ck=" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "requires": { + "jsesc": "0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "1.0.2" + } + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + }, + "dependencies": { + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "response-time": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.2.tgz", + "integrity": "sha1-/6cbq5UtYvfB1Jt0NDVfvGjf/Fo=", + "requires": { + "depd": "1.1.1", + "on-headers": "1.0.1" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + } + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "7.1.2" + } + }, + "rndm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", + "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=" + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "2.1.0" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "requires": { + "rx-lite": "4.0.8" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "sane": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.2.0.tgz", + "integrity": "sha512-OSJxhHO0CgPUw3lUm3GhfREAfza45smvEI9ozuFrxKG10GHVo0ryW9FK5VYlLvxj0SV7HVKHW0voYJIRu27GWg==", + "requires": { + "anymatch": "1.3.2", + "exec-sh": "0.2.1", + "fb-watchman": "2.0.0", + "fsevents": "1.1.2", + "minimatch": "3.0.4", + "minimist": "1.2.0", + "walker": "1.0.7", + "watch": "0.18.0" + } + }, + "sax": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.6.tgz", + "integrity": "sha1-XWFr6KXmB9VOEUr65Vt+ry/MMkA=" + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + }, + "send": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz", + "integrity": "sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=", + "requires": { + "debug": "2.2.0", + "depd": "1.1.1", + "destroy": "1.0.4", + "escape-html": "1.0.3", + "etag": "1.7.0", + "fresh": "0.3.0", + "http-errors": "1.3.1", + "mime": "1.3.4", + "ms": "0.7.1", + "on-finished": "2.3.0", + "range-parser": "1.0.3", + "statuses": "1.2.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "mime": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + }, + "statuses": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", + "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=" + } + } + }, + "serve-favicon": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.2.tgz", + "integrity": "sha1-3UGeJo3gEqtysxnTN/IQUBP5OB8=", + "requires": { + "etag": "1.7.0", + "fresh": "0.3.0", + "ms": "0.7.2", + "parseurl": "1.3.2" + }, + "dependencies": { + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" + } + } + }, + "serve-index": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.3.tgz", + "integrity": "sha1-egV/xu4o3GP2RWbl+lexEahq7NI=", + "requires": { + "accepts": "1.2.13", + "batch": "0.5.3", + "debug": "2.2.0", + "escape-html": "1.0.3", + "http-errors": "1.3.1", + "mime-types": "2.1.17", + "parseurl": "1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } + } + }, + "serve-static": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz", + "integrity": "sha1-zlpuzTEB/tXsCYJ9rCKpwpv7BTU=", + "requires": { + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.13.2" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "requires": { + "array-filter": "0.0.1", + "array-map": "0.0.0", + "array-reduce": "0.0.0", + "jsonify": "0.0.0" + } + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-plist": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-0.2.1.tgz", + "integrity": "sha1-cXZts1IyaSjPOoByQrp2IyJjZyM=", + "requires": { + "bplist-creator": "0.0.7", + "bplist-parser": "0.1.1", + "plist": "2.0.1" + }, + "dependencies": { + "base64-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.1.2.tgz", + "integrity": "sha1-1kAMrBxMZgl22Q0HoENR2JOV9eg=" + }, + "plist": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/plist/-/plist-2.0.1.tgz", + "integrity": "sha1-CjLKlIGxw2TpLhjcVch23p0B2os=", + "requires": { + "base64-js": "1.1.2", + "xmlbuilder": "8.2.2", + "xmldom": "0.1.27" + } + }, + "xmlbuilder": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", + "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=" + } + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + }, + "sntp": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz", + "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=", + "requires": { + "hoek": "4.2.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "0.5.7" + } + }, + "sparkles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=" + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + } + }, + "stacktrace-parser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.4.tgz", + "integrity": "sha1-ATl5IuX2Ls8whFUiyVxP4dJefU4=" + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + }, + "stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=" + }, + "stream-counter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", + "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=", + "requires": { + "readable-stream": "1.1.14" + } + }, + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "dev": true, + "requires": { + "astral-regex": "1.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true + }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "requires": { + "os-tmpdir": "1.0.2", + "rimraf": "2.2.8" + }, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" + } + } + }, + "test-exclude": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "2.3.11", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "requires": { + "punycode": "1.4.1" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "tsscmp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", + "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.17" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" + }, + "uglify-js": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", + "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", + "requires": { + "async": "0.2.10", + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=" + }, + "uid-safe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz", + "integrity": "sha1-Otbzg2jG1MjHXsF2I/t5qh0HHYE=", + "requires": { + "random-bytes": "1.0.0" + } + }, + "ultron": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.0.tgz", + "integrity": "sha1-sHoualQagV/Go0zNRTO67DB8qGQ=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "vary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", + "integrity": "sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, + "vhost": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vhost/-/vhost-3.0.2.tgz", + "integrity": "sha1-L7HezUxGaqiLD5NBrzPcGv8keNU=" + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "requires": { + "clone": "1.0.2", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "requires": { + "makeerror": "1.0.11" + } + }, + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "requires": { + "exec-sh": "0.2.1", + "minimist": "1.2.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz", + "integrity": "sha1-PGxFGhmO567FWx7GHQkgxngBpfQ=", + "dev": true, + "requires": { + "iconv-lite": "0.4.13" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", + "dev": true + } + } + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, + "whatwg-url": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", + "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", + "dev": true, + "requires": { + "tr46": "0.0.3", + "webidl-conversions": "3.0.1" + }, + "dependencies": { + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + } + } + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "win-release": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz", + "integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=", + "requires": { + "semver": "5.4.1" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, + "worker-farm": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.0.tgz", + "integrity": "sha512-DHRiUggxtbruaTwnLDm2/BRDKZIoOYvrgYUj5Bam4fU6Gtvc0FaEyoswFPBjMXAweGW2H4BDNIpy//1yXXuaqQ==", + "requires": { + "errno": "0.1.4", + "xtend": "4.0.1" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + }, + "ws": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.4.tgz", + "integrity": "sha1-V/QNA2gy5fUFVmKjl8Tedu1mv2E=", + "requires": { + "options": "0.0.6", + "ultron": "1.0.2" + }, + "dependencies": { + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" + } + } + }, + "xcode": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-0.9.3.tgz", + "integrity": "sha1-kQqJwWrubMC0LKgFptC0z4chHPM=", + "requires": { + "pegjs": "0.10.0", + "simple-plist": "0.2.1", + "uuid": "3.0.1" + }, + "dependencies": { + "uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" + } + } + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true + }, + "xmlbuilder": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz", + "integrity": "sha1-mLj2UcowqmJANvEn0RzGbce5B6M=", + "requires": { + "lodash": "3.10.1" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + } + } + }, + "xmldoc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-0.4.0.tgz", + "integrity": "sha1-0lciS+g5PqrL+DfvIn/Y7CWzaIg=", + "requires": { + "sax": "1.1.6" + } + }, + "xmldom": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=" + }, + "xpipe": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/xpipe/-/xpipe-1.0.5.tgz", + "integrity": "sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "4.2.1" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "requires": { + "camelcase": "3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + } + } + } + } +} diff --git a/lang/zh-cn/exapp/package.json b/lang/zh-cn/exapp/package.json new file mode 100644 index 0000000..8e649a9 --- /dev/null +++ b/lang/zh-cn/exapp/package.json @@ -0,0 +1,22 @@ +{ + "name": "exapp", + "version": "0.0.1", + "private": true, + "scripts": { + "start": "node node_modules/react-native/local-cli/cli.js start", + "test": "jest" + }, + "dependencies": { + "react": "16.0.0-beta.5", + "react-native": "0.49.3" + }, + "devDependencies": { + "babel-jest": "21.2.0", + "babel-preset-react-native": "4.0.0", + "jest": "21.2.1", + "react-test-renderer": "16.0.0-beta.5" + }, + "jest": { + "preset": "react-native" + } +} diff --git a/lang/zh-cn/exapp/run-android b/lang/zh-cn/exapp/run-android new file mode 100755 index 0000000..8daebd3 --- /dev/null +++ b/lang/zh-cn/exapp/run-android @@ -0,0 +1,19 @@ +########################################################## +# React-Native For android +# ** Run Command ** +# これを実行しておけばUSBにつながってる端末に最新をデプロイまでするぉ +########################################################## + +source ~/.bashrc +if [ ! -e "./android/app/src/main/assets" ]; then + mkdir ./android/app/src/main/assets +fi + +# Uninstall Sample App +adb uninstall com.exapp + +# 修正されたJSをネイティブプロジェクトにセットする +react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res + +# 実行 +react-native run-android diff --git a/lang/zh-cn/ios/.gitignore b/lang/zh-cn/ios/.gitignore new file mode 100644 index 0000000..efbef79 --- /dev/null +++ b/lang/zh-cn/ios/.gitignore @@ -0,0 +1,63 @@ +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## Build generated +build/ +DerivedData/ + +## Various settings +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata/ + +## Other +*.moved-aside +*.xccheckout +*.xcscmblueprint + +## Obj-C/Swift specific +*.hmap +*.ipa +*.dSYM.zip +*.dSYM + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +Pods/ + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts + +Carthage/Build + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output + +# Code Injection +# +# After new code Injection tools there's a generated folder /iOSInjectionProject +# https://github.com/johnno1962/injectionforxcode + +iOSInjectionProject/ diff --git a/lang/zh-cn/ios/FoxReact/FoxReact.xcodeproj/project.pbxproj b/lang/zh-cn/ios/FoxReact/FoxReact.xcodeproj/project.pbxproj new file mode 100644 index 0000000..a193d95 --- /dev/null +++ b/lang/zh-cn/ios/FoxReact/FoxReact.xcodeproj/project.pbxproj @@ -0,0 +1,577 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 48; + objects = { + +/* Begin PBXBuildFile section */ + 876483884055CE331590D04E /* libPods-abs_exapp-FoxReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B05D90D5C86B318381C1E2C /* libPods-abs_exapp-FoxReact.a */; }; + B81359831F9DDF190098C238 /* CYZFoxAppDelegateSwizzling.m in Sources */ = {isa = PBXBuildFile; fileRef = B81359821F9DDF180098C238 /* CYZFoxAppDelegateSwizzling.m */; }; + B82222AA1F97238500521BC8 /* CYZFoxReactModule.m in Sources */ = {isa = PBXBuildFile; fileRef = B82222A91F97238500521BC8 /* CYZFoxReactModule.m */; }; + B82222AB1F97238500521BC8 /* CYZFoxReactModule.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = B82222A81F97238500521BC8 /* CYZFoxReactModule.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + B82222EE1F972D1100521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; + remoteInfo = React; + }; + B82222F01F972D1100521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28131D9B038B00D4039D; + remoteInfo = "React-tvOS"; + }; + B82222F21F972D1100521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D3C059A1DE3340900C268FA; + remoteInfo = yoga; + }; + B82222F41F972D1100521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D3C06751DE3340C00C268FA; + remoteInfo = "yoga-tvOS"; + }; + B82222F61F972D1100521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4; + remoteInfo = cxxreact; + }; + B82222F81F972D1100521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4; + remoteInfo = "cxxreact-tvOS"; + }; + B82222FA1F972D1100521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4; + remoteInfo = jschelpers; + }; + B82222FC1F972D1100521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4; + remoteInfo = "jschelpers-tvOS"; + }; + B82222FE1F972D1100521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 139D7ECE1E25DB7D00323FB7; + remoteInfo = "third-party"; + }; + B82223001F972D1100521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D383D3C1EBD27B6005632C8; + remoteInfo = "third-party-tvOS"; + }; + B82223021F972D1100521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 139D7E881E25C6D100323FB7; + remoteInfo = "double-conversion"; + }; + B82223041F972D1100521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D383D621EBD27B9005632C8; + remoteInfo = "double-conversion-tvOS"; + }; + B82223061F972D3A00521BC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 83CBBA2D1A601D0E00E9B192; + remoteInfo = React; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + B82222A31F97238500521BC8 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + B82222AB1F97238500521BC8 /* CYZFoxReactModule.h in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 2B05D90D5C86B318381C1E2C /* libPods-abs_exapp-FoxReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-abs_exapp-FoxReact.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2B0FA19CAA673F09C80646E2 /* Pods-abs_exapp-FoxReact.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-abs_exapp-FoxReact.release.xcconfig"; path = "../../exapp/ios/Pods/Target Support Files/Pods-abs_exapp-FoxReact/Pods-abs_exapp-FoxReact.release.xcconfig"; sourceTree = ""; }; + 527F39A1E29D277D793EC73C /* Pods-abs_exapp-FoxReact.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-abs_exapp-FoxReact.debug.xcconfig"; path = "../../exapp/ios/Pods/Target Support Files/Pods-abs_exapp-FoxReact/Pods-abs_exapp-FoxReact.debug.xcconfig"; sourceTree = ""; }; + B81359821F9DDF180098C238 /* CYZFoxAppDelegateSwizzling.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CYZFoxAppDelegateSwizzling.m; sourceTree = ""; }; + B82222A51F97238500521BC8 /* libFoxReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libFoxReact.a; sourceTree = BUILT_PRODUCTS_DIR; }; + B82222A81F97238500521BC8 /* CYZFoxReactModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CYZFoxReactModule.h; sourceTree = ""; }; + B82222A91F97238500521BC8 /* CYZFoxReactModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CYZFoxReactModule.m; sourceTree = ""; }; + B82222DF1F972D1000521BC8 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../../exapp/node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; + F29101A975E6569D77AC0A69 /* libPods-FoxReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FoxReact.a"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + B82222A21F97238500521BC8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 876483884055CE331590D04E /* libPods-abs_exapp-FoxReact.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 77168675BB746A6988C3A131 /* Pods */ = { + isa = PBXGroup; + children = ( + 527F39A1E29D277D793EC73C /* Pods-abs_exapp-FoxReact.debug.xcconfig */, + 2B0FA19CAA673F09C80646E2 /* Pods-abs_exapp-FoxReact.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; + 81263EAF16D0CD0A235DD0F7 /* Frameworks */ = { + isa = PBXGroup; + children = ( + F29101A975E6569D77AC0A69 /* libPods-FoxReact.a */, + 2B05D90D5C86B318381C1E2C /* libPods-abs_exapp-FoxReact.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + B822229C1F97238500521BC8 = { + isa = PBXGroup; + children = ( + B82222DF1F972D1000521BC8 /* React.xcodeproj */, + B82222A71F97238500521BC8 /* FoxReact */, + B82222A61F97238500521BC8 /* Products */, + 77168675BB746A6988C3A131 /* Pods */, + 81263EAF16D0CD0A235DD0F7 /* Frameworks */, + ); + sourceTree = ""; + }; + B82222A61F97238500521BC8 /* Products */ = { + isa = PBXGroup; + children = ( + B82222A51F97238500521BC8 /* libFoxReact.a */, + ); + name = Products; + sourceTree = ""; + }; + B82222A71F97238500521BC8 /* FoxReact */ = { + isa = PBXGroup; + children = ( + B81359821F9DDF180098C238 /* CYZFoxAppDelegateSwizzling.m */, + B82222A81F97238500521BC8 /* CYZFoxReactModule.h */, + B82222A91F97238500521BC8 /* CYZFoxReactModule.m */, + ); + path = FoxReact; + sourceTree = ""; + }; + B82222E01F972D1000521BC8 /* Products */ = { + isa = PBXGroup; + children = ( + B82222EF1F972D1100521BC8 /* libReact.a */, + B82222F11F972D1100521BC8 /* libReact.a */, + B82222F31F972D1100521BC8 /* libyoga.a */, + B82222F51F972D1100521BC8 /* libyoga.a */, + B82222F71F972D1100521BC8 /* libcxxreact.a */, + B82222F91F972D1100521BC8 /* libcxxreact.a */, + B82222FB1F972D1100521BC8 /* libjschelpers.a */, + B82222FD1F972D1100521BC8 /* libjschelpers.a */, + B82222FF1F972D1100521BC8 /* libthird-party.a */, + B82223011F972D1100521BC8 /* libthird-party.a */, + B82223031F972D1100521BC8 /* libdouble-conversion.a */, + B82223051F972D1100521BC8 /* libdouble-conversion.a */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + B82222A41F97238500521BC8 /* FoxReact */ = { + isa = PBXNativeTarget; + buildConfigurationList = B82222AE1F97238500521BC8 /* Build configuration list for PBXNativeTarget "FoxReact" */; + buildPhases = ( + 1F912B51DB65791968F97BBE /* [CP] Check Pods Manifest.lock */, + B82222A11F97238500521BC8 /* Sources */, + B82222A21F97238500521BC8 /* Frameworks */, + B82222A31F97238500521BC8 /* CopyFiles */, + CEEE484F2D37761E52E15CC8 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + B82223071F972D3A00521BC8 /* PBXTargetDependency */, + ); + name = FoxReact; + productName = FoxReact; + productReference = B82222A51F97238500521BC8 /* libFoxReact.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + B822229D1F97238500521BC8 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0900; + ORGANIZATIONNAME = cyberz; + TargetAttributes = { + B82222A41F97238500521BC8 = { + CreatedOnToolsVersion = 9.0.1; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = B82222A01F97238500521BC8 /* Build configuration list for PBXProject "FoxReact" */; + compatibilityVersion = "Xcode 8.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = B822229C1F97238500521BC8; + productRefGroup = B82222A61F97238500521BC8 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = B82222E01F972D1000521BC8 /* Products */; + ProjectRef = B82222DF1F972D1000521BC8 /* React.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + B82222A41F97238500521BC8 /* FoxReact */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + B82222EF1F972D1100521BC8 /* libReact.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libReact.a; + remoteRef = B82222EE1F972D1100521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82222F11F972D1100521BC8 /* libReact.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libReact.a; + remoteRef = B82222F01F972D1100521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82222F31F972D1100521BC8 /* libyoga.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libyoga.a; + remoteRef = B82222F21F972D1100521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82222F51F972D1100521BC8 /* libyoga.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libyoga.a; + remoteRef = B82222F41F972D1100521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82222F71F972D1100521BC8 /* libcxxreact.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libcxxreact.a; + remoteRef = B82222F61F972D1100521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82222F91F972D1100521BC8 /* libcxxreact.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libcxxreact.a; + remoteRef = B82222F81F972D1100521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82222FB1F972D1100521BC8 /* libjschelpers.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libjschelpers.a; + remoteRef = B82222FA1F972D1100521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82222FD1F972D1100521BC8 /* libjschelpers.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libjschelpers.a; + remoteRef = B82222FC1F972D1100521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82222FF1F972D1100521BC8 /* libthird-party.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libthird-party.a"; + remoteRef = B82222FE1F972D1100521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82223011F972D1100521BC8 /* libthird-party.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libthird-party.a"; + remoteRef = B82223001F972D1100521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82223031F972D1100521BC8 /* libdouble-conversion.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libdouble-conversion.a"; + remoteRef = B82223021F972D1100521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B82223051F972D1100521BC8 /* libdouble-conversion.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libdouble-conversion.a"; + remoteRef = B82223041F972D1100521BC8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXShellScriptBuildPhase section */ + 1F912B51DB65791968F97BBE /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + CEEE484F2D37761E52E15CC8 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/../../exapp/ios/Pods/Target Support Files/Pods-abs_exapp-FoxReact/Pods-abs_exapp-FoxReact-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + B82222A11F97238500521BC8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B82222AA1F97238500521BC8 /* CYZFoxReactModule.m in Sources */, + B81359831F9DDF190098C238 /* CYZFoxAppDelegateSwizzling.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + B82223071F972D3A00521BC8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = React; + targetProxy = B82223061F972D3A00521BC8 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + B82222AC1F97238500521BC8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "$(SRCROOT)/../../exapp/node_modules/react-native/React/Base"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + B82222AD1F97238500521BC8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "$(SRCROOT)/../../exapp/node_modules/react-native/React/Base"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + B82222AF1F97238500521BC8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 527F39A1E29D277D793EC73C /* Pods-abs_exapp-FoxReact.debug.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = DUP2JGEFH3; + OTHER_LDFLAGS = ( + "-ObjC", + "$(inherited)", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + B82222B01F97238500521BC8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2B0FA19CAA673F09C80646E2 /* Pods-abs_exapp-FoxReact.release.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = DUP2JGEFH3; + OTHER_LDFLAGS = ( + "-ObjC", + "$(inherited)", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + B82222A01F97238500521BC8 /* Build configuration list for PBXProject "FoxReact" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B82222AC1F97238500521BC8 /* Debug */, + B82222AD1F97238500521BC8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B82222AE1F97238500521BC8 /* Build configuration list for PBXNativeTarget "FoxReact" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B82222AF1F97238500521BC8 /* Debug */, + B82222B01F97238500521BC8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = B822229D1F97238500521BC8 /* Project object */; +} diff --git a/lang/zh-cn/ios/FoxReact/FoxReact.xcodeproj/xcshareddata/xcschemes/FoxReact.xcscheme b/lang/zh-cn/ios/FoxReact/FoxReact.xcodeproj/xcshareddata/xcschemes/FoxReact.xcscheme new file mode 100644 index 0000000..857232f --- /dev/null +++ b/lang/zh-cn/ios/FoxReact/FoxReact.xcodeproj/xcshareddata/xcschemes/FoxReact.xcscheme @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lang/zh-cn/ios/FoxReact/FoxReact/CYZFoxAppDelegateSwizzling.m b/lang/zh-cn/ios/FoxReact/FoxReact/CYZFoxAppDelegateSwizzling.m new file mode 100644 index 0000000..49288ec --- /dev/null +++ b/lang/zh-cn/ios/FoxReact/FoxReact/CYZFoxAppDelegateSwizzling.m @@ -0,0 +1,87 @@ +#import +#import +#import +#import + +#define CYZLog(...) RCTLogInfo(__VA_ARGS__) + +@implementation UIApplication (CYZFox) + +void fox_swizzle(Class origClass, SEL originalSelector, Class swizzledClass, SEL swizzledSelector) { + + Method originalMethod = class_getInstanceMethod(origClass, originalSelector); + if (originalMethod) { + Method swizzledMethod = class_getInstanceMethod(swizzledClass, swizzledSelector); + + if (!class_getInstanceMethod(origClass, swizzledSelector)) { + CYZLog(@"add method %@ to class %@", NSStringFromSelector(swizzledSelector), NSStringFromClass(origClass)); + class_addMethod(origClass, swizzledSelector, + method_getImplementation(swizzledMethod), + method_getTypeEncoding(swizzledMethod)); + } + + CYZLog(@"exchange method %@ of class %@", NSStringFromSelector(originalSelector), NSStringFromClass(origClass)); + Method swizzledMethodInOrigClass = class_getInstanceMethod(origClass, swizzledSelector); + method_exchangeImplementations(originalMethod, swizzledMethodInOrigClass); + } +} + ++(void) load { + CYZLog(@"load swizzling"); + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + fox_swizzle([self class], @selector(setDelegate:),[self class], @selector(fox_setDelegate:)); + }); +} + +-(void) fox_setDelegate:(id) delegate { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + Class delegateClass = [delegate class]; + + // swizzle application:openURL:sourceApplication:annotation: + SEL ori_openURLSourceApplication = @selector(application:openURL:sourceApplication:annotation:); + SEL swiz_openURLSourceApplication = @selector(fox_application:openURL:sourceApplication:annotation:); + + // swizzle application:openURL:options: + SEL ori_openURLOptions = @selector(application:openURL:options:); + SEL swiz_openURLOptions = @selector(fox_application:openURL:options:); + + // should add empty application:openURL:sourceApplication:annotation: + if (!class_getInstanceMethod(delegateClass, ori_openURLSourceApplication) + && !class_getInstanceMethod(delegateClass, ori_openURLOptions)) { + CYZLog(@"not found either %@ or %@", NSStringFromSelector(ori_openURLSourceApplication), NSStringFromSelector(ori_openURLOptions)); + + SEL swiz_empty_openURLSourceApplication = @selector(fox_empty_application:openURL:sourceApplication:annotation:); + Method emptyMethod = class_getInstanceMethod([self class], swiz_empty_openURLSourceApplication); + CYZLog(@"add empty method %@", NSStringFromSelector(ori_openURLSourceApplication)); + class_addMethod(delegateClass, ori_openURLSourceApplication, + method_getImplementation(emptyMethod), + method_getTypeEncoding(emptyMethod)); + } + + fox_swizzle(delegateClass, ori_openURLSourceApplication, [self class], swiz_openURLSourceApplication); + fox_swizzle(delegateClass, ori_openURLOptions, [self class], swiz_openURLOptions); + }); + + [self fox_setDelegate:delegate]; +} + +-(BOOL) fox_application:(UIApplication *) application openURL:(nonnull NSURL *) url sourceApplication:(nullable NSString *) sourceApplication annotation:(nonnull id) annotation { + CYZLog(@"fox swizzed method: application:openURL:sourceApplication:annotation:"); + [CYZFox handleOpenURL:url]; + return [self fox_application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; +} + +-(BOOL)fox_application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options { + CYZLog(@"fox swizzed method: application:openURL:options:"); + [CYZFox handleOpenURL:url]; + return [self fox_application:app openURL:url options:options]; +} + +-(BOOL) fox_empty_application:(UIApplication *) application openURL:(nonnull NSURL *) url sourceApplication:(nullable NSString *) sourceApplication annotation:(nonnull id) annotation { + CYZLog(@"fox empty method: application:openURL:sourceApplication:annotation:"); + return YES; +} + +@end diff --git a/lang/zh-cn/ios/FoxReact/FoxReact/CYZFoxReactModule.h b/lang/zh-cn/ios/FoxReact/FoxReact/CYZFoxReactModule.h new file mode 100644 index 0000000..371f6d0 --- /dev/null +++ b/lang/zh-cn/ios/FoxReact/FoxReact/CYZFoxReactModule.h @@ -0,0 +1,25 @@ +// +// CYZFoxReactModule.h +// CYZFoxReactModule +// +// Created by 呉 維 on 2017/10/18. +// Copyright © 2017 cyberz. All rights reserved. +// + +#import +#import +#import + +#import + +@interface CYZFoxReactModule : NSObject + +@end + +@interface RCTConvert (CYZFox) + ++ (CYZFoxConfig *)CYZFoxConfig:(id)json; ++ (CYZFoxTrackOption *)CYZFoxTrackOption:(id)json; ++ (CYZFoxEvent *)CYZFoxEvent:(id)json; + +@end diff --git a/lang/zh-cn/ios/FoxReact/FoxReact/CYZFoxReactModule.m b/lang/zh-cn/ios/FoxReact/FoxReact/CYZFoxReactModule.m new file mode 100644 index 0000000..481d174 --- /dev/null +++ b/lang/zh-cn/ios/FoxReact/FoxReact/CYZFoxReactModule.m @@ -0,0 +1,157 @@ +// +// CYZFoxReactModule.m +// CYZFoxReactModule +// +// Created by 呉 維 on 2017/10/18. +// Copyright © 2017 cyberz. All rights reserved. +// + +#import "CYZFoxReactModule.h" + +NSString* EVENT_trackingCompletionHandler = @"CYZFox_trackingCompletionHandler"; + +@implementation CYZFoxReactModule { + void (^trackingCompletionHandler)(void); + void (^deferredDeeplinkHandler)(NSDictionary * _Nullable deeplinkInfo); +} + +RCT_EXPORT_MODULE(CYZFoxReact); + +RCT_EXPORT_METHOD(activate:(CYZFoxConfig*) config) +{ + RCTLogInfo(@"[FOX-RCT] config activate: %@", config); + [config activate]; +} + +RCT_EXPORT_METHOD(trackInstall) +{ + RCTLogInfo(@"[FOX-RCT] trackInstall"); + [CYZFox trackInstall]; +} + +RCT_EXPORT_METHOD(setDeferredDeeplinkHandler:(RCTResponseSenderBlock) handler) +{ + RCTLogInfo(@"[FOX-RCT] setDeferredDeeplinkHandler"); + self->deferredDeeplinkHandler = ^(NSDictionary * _Nullable deeplinkInfo) { + if (deeplinkInfo) { + handler(@[deeplinkInfo]); + } else { + handler(@[]); + } + }; +} + +RCT_EXPORT_METHOD(setTrackingCompletionHandler:(RCTResponseSenderBlock) handler) +{ + RCTLogInfo(@"[FOX-RCT] setTrackingCompletionHandler"); + self->trackingCompletionHandler = ^(void){ + handler(@[]); + }; +} + +RCT_EXPORT_METHOD(trackInstall:(CYZFoxTrackOption*) option) +{ + RCTLogInfo(@"[FOX-RCT] trackInstall: %@", option); + if (self->trackingCompletionHandler) { + option.trackingCompletionHandler = self->trackingCompletionHandler; + } + if (self->deferredDeeplinkHandler) { + option.deferredDeeplinkHandler = self->deferredDeeplinkHandler; + } + + [CYZFox trackInstallWithOption:option]; +} + +RCT_EXPORT_METHOD(trackSession) +{ + RCTLogInfo(@"[FOX-RCT] trackSession"); + [CYZFox trackSession]; +} + +RCT_EXPORT_METHOD(trackEvent:(CYZFoxEvent*) event) +{ + RCTLogInfo(@"[FOX-RCT] trackEvent: %@", event); + [CYZFox trackEvent:event]; +} + +RCT_EXPORT_METHOD(setUserInfo:(NSDictionary*) userInfo) +{ + RCTLogInfo(@"[FOX-RCT] setUserInfo: %@", userInfo); + [CYZFox setUserInfo:userInfo]; +} + +RCT_EXPORT_METHOD(getUserInfo:(RCTResponseSenderBlock)callback) +{ + NSDictionary* userInfo = [CYZFox getUserInfo]; + RCTLogInfo(@"[FOX-RCT] getUserInfo = %@", userInfo); + callback(@[[NSNull null], userInfo]); +} + +RCT_EXPORT_METHOD(isConversionCompleted:(RCTResponseSenderBlock)callback) +{ + BOOL isConversionCompleted = [CYZFox isConversionCompleted]; + RCTLogInfo(@"[FOX-RCT] isConversionCompleted = %@", isConversionCompleted ? @"YES" : @"NO"); + callback(@[[NSNull null], [NSNumber numberWithBool:isConversionCompleted]]); +} + +RCT_EXPORT_METHOD(trackEventByBrowser:(NSString*) redirectURL) +{ + RCTLogInfo(@"[FOX-RCT] trackEventByBrowser: %@", redirectURL); + [CYZFox trackEventByBrowser:redirectURL]; +} + +@end + + +@implementation RCTConvert (CYZFox) + ++ (CYZFoxConfig *)CYZFoxConfig:(id)json { + RCTLogInfo(@"[FOX-RCT] Convert CYZFoxConfig"); + NSUInteger appId = [[RCTConvert NSNumber:json[@"appId"]] unsignedIntegerValue]; + NSString* salt = [RCTConvert NSString:json[@"appSalt"]]; + NSString* appKey = [RCTConvert NSString:json[@"appKey"]]; + + CYZFoxConfig* config = [CYZFoxConfig configWithAppId:appId salt:salt appKey:appKey]; + if ([RCTConvert BOOL:json[@"debugModeEnabled"]]) { + [config enableDebugMode]; + } + if ([RCTConvert BOOL:json[@"customizedUserAgentEnabled"]]) { + [config enableCustomizedUserAgent]; + } + + return config; +} + ++ (CYZFoxTrackOption *)CYZFoxTrackOption:(id)json { + RCTLogInfo(@"[FOX-RCT] Convert CYZFoxTrackOption"); + CYZFoxTrackOption* option = [CYZFoxTrackOption new]; + + option.buid = [RCTConvert NSString:json[@"buid"]]; + option.redirectURL = [RCTConvert NSString:json[@"redirectURL"]]; + option.optout = [RCTConvert BOOL:json[@"optout"]]; + option.durationSinceClick = [RCTConvert double:json[@"durationSinceClick"]]; + return option; +} + ++ (CYZFoxEvent *)CYZFoxEvent:(id)json { + RCTLogInfo(@"[FOX-RCT] Convert CYZFoxEvent"); + CYZFoxEvent* event = [[CYZFoxEvent alloc] initWithEventName:[RCTConvert NSString:json[@"eventName"]] ltvId:[RCTConvert NSUInteger:json[@"ltvId"]]]; + + event.buid = [RCTConvert NSString:json[@"buid"]]; + event.value = [RCTConvert NSUInteger:json[@"value"]]; + event.orderId = [RCTConvert NSString:json[@"orderId"]]; + event.sku = [RCTConvert NSString:json[@"sku"]]; + event.itemName = [RCTConvert NSString:json[@"itemName"]]; + event.price = [RCTConvert double:json[@"price"]]; + event.quantity = [RCTConvert NSUInteger:json[@"quantity"]]; + event.currency = [RCTConvert NSString:json[@"currency"]]; + event.eventInfo = [RCTConvert NSDictionary:json[@"eventInfo"]]; + + [[RCTConvert NSDictionary:json[@"extraInfo"]] enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) { + [event addExtraValue:obj forKey:key]; + }]; + + return event; +} + +@end