From 6507ab959632ad764e100838d046a6fc73432842 Mon Sep 17 00:00:00 2001 From: Ponshu Developer Date: Fri, 16 Jan 2026 00:53:44 +0900 Subject: [PATCH] feat: enhance AI spec extraction --- .claude/settings.local.json | 3 +- CommonSpecification_bk.md | 510 ------------------ CommonSpecification_gemini.md | 113 ---- all_models.json | Bin 0 -> 46436 bytes android/app/src/main/AndroidManifest.xml | 8 + lib/models/maps/japan_map_data.dart | 50 +- lib/models/maps/prefecture_tile_layout.dart | 87 ++- lib/models/sake_item.dart | 15 + lib/providers/menu_providers.dart | 2 +- lib/providers/ui_experiment_provider.dart | 8 + lib/screens/camera_screen.dart | 48 +- lib/screens/dev_menu_screen.dart | 9 + lib/screens/home_screen.dart | 6 +- lib/screens/menu_creation_screen.dart | 2 +- lib/screens/menu_settings_screen.dart | 4 +- .../placeholders/brewery_map_screen.dart | 5 +- lib/screens/sake_detail_screen.dart | 23 +- lib/screens/shop_settings_screen.dart | 4 +- lib/screens/soul_screen.dart | 2 +- lib/secrets - コピー.dart | 3 + lib/secrets_bk.dart | 3 + lib/services/device_service.dart | 55 ++ lib/services/gemini_service.dart | 470 ++++++---------- lib/widgets/home/home_empty_state.dart | 17 +- lib/widgets/map/pixel_japan_map.dart | 87 --- lib/widgets/map/prefecture_tile_map.dart | 65 ++- lib/widgets/sake_radar_chart.dart | 2 +- .../settings/backup_settings_section.dart | 2 +- models.txt | Bin 0 -> 46436 bytes pubspec.lock | 26 +- pubspec.yaml | 4 +- screenshot.png | Bin 0 -> 210531 bytes tools/check_models.dart | 25 + tools/list_models_v2.dart | 41 ++ tools/synology/ai-proxy/server.py | 10 +- tools/test_generation.dart | 36 ++ 36 files changed, 623 insertions(+), 1122 deletions(-) delete mode 100644 CommonSpecification_bk.md delete mode 100644 CommonSpecification_gemini.md create mode 100644 all_models.json create mode 100644 lib/secrets - コピー.dart create mode 100644 lib/secrets_bk.dart create mode 100644 lib/services/device_service.dart delete mode 100644 lib/widgets/map/pixel_japan_map.dart create mode 100644 models.txt create mode 100644 screenshot.png create mode 100644 tools/check_models.dart create mode 100644 tools/list_models_v2.dart create mode 100644 tools/test_generation.dart diff --git a/.claude/settings.local.json b/.claude/settings.local.json index fe8f899..f5e9c4c 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -18,7 +18,8 @@ "Bash(flutter build:*)", "Bash(unzip:*)", "Bash(ls:*)", - "Bash(awk:*)" + "Bash(awk:*)", + "Bash(flutter pub:*)" ], "deny": [], "ask": [] diff --git a/CommonSpecification_bk.md b/CommonSpecification_bk.md deleted file mode 100644 index 53436dd..0000000 --- a/CommonSpecification_bk.md +++ /dev/null @@ -1,510 +0,0 @@ -# ぽんるーむ (Pon-Room) - 共通仕様書 v1.0 - -**作成日**: 2026-01-03 -**対象**: AI開発エージェント(Cursor/Antigravity/Claude/Gemini) -**目的**: すべての開発者・AIエージェントが参照する唯一のバイブル - ---- - -## 📋 1. プロジェクト概要 - -### 1.1 アプリケーション情報 -- **アプリ名**: ぽんるーむ (Pon-Room) -- **コンセプト**: 日本酒の「記録・解析・循環」を支えるAIプラットフォーム -- **バージョン**: 1.0.9+47 -- **最終更新**: 2026-01-03 - -### 1.2 ターゲットユーザー -- **B2C (Consumer Mode)**: 一般ユーザー - - 日本酒体験の記録・診断・共有 - - ゲーミフィケーション(ポイント・バッジ・レベル) - - 「酒向(しゅこう)カード」による自己表現 - -- **B2B (Business Mode)**: 飲食店 - - 自店の日本酒メニュー作成(PDF出力) - - QRコード自動埋め込み - - インスタ投稿支援 - -### 1.3 アプリの循環ロジック -``` -[飲食店] PDF + QRメニュー作成 - ↓ -[客] スキャンして詳細表示・ポイント獲得 - ↓ -[客] 自分の記録が貯まる → 酒向カード生成 - ↓ -[飲食店] 客の好みを理解してレコメンド -``` - ---- - -## 🛠️ 2. 技術スタック - -### 2.1 フロントエンド -- **Framework**: Flutter 3.10.1 -- **SDK**: Dart 3.10.1 -- **対応プラットフォーム**: iOS, Android, Web - -### 2.2 バックエンド・データベース -- **Database**: Cloud Firestore (Firebase) -- **Authentication**: Firebase Auth -- **Storage**: Firebase Storage (画像保存) - -### 2.3 AI・機械学習 -- **Local OCR**: Google ML Kit - - 用途: ラベルからのテキスト抽出 - - メリット: 無料、高速、オフライン動作 - -- **LLM Analysis**: Gemini API - - モデル: `gemini-2.5-flash` / `gemini-3.0-flash` - - 用途: テキストの構造化、キャッチコピー生成 - - 重要: 画像を直接送らず、OCRテキストのみ送信(トークン節約) - -### 2.4 主要パッケージ -```yaml -dependencies: - # 画像・カメラ - image_picker: ^1.2.1 - gal: ^2.3.0 # カメラロール保存 - - # PDF生成 - pdf: ^3.10.0 - printing: ^5.11.0 - - # QRコード - qr_flutter: ^4.1.0 - mobile_scanner: ^3.5.0 # QRスキャン - - # データベース - hive: ^2.2.3 - hive_flutter: ^1.1.0 - - # AI - google_generative_ai: ^0.4.7 - google_ml_kit: ^0.16.0 # OCR用 -``` - ---- - -## 📊 3. 共通データ構造(JSON Schema) - -### 3.1 基本方針 -- **display_data**: カードUIで表示する最小限の情報(シンプル維持) -- **hidden_specs**: 詳細画面・PDF・分析で使用する情報 -- **badges**: ゲーミフィケーション要素 -- **gamification**: ポイント・レベル・診断結果 -- **user_data**: ユーザーの主観的情報 -- **metadata**: システム管理用 - -### 3.2 SakeItem完全JSON構造 - -```json -{ - "display_data": { - "name": "獺祭 純米大吟醸 磨き二割三分", - "catch_phrase": "華やかな香りと洗練された味わい", - "image_path": "path/to/image.jpg", - "rating": 4.5 - }, - - "hidden_specs": { - "brewery": "旭酒造株式会社", - "prefecture": "山口県", - "type": "純米大吟醸", - "alcohol_content": 16.0, - "polishing_ratio": 23, - "sake_meter_value": 4.0, - "rice_variety": "山田錦", - "yeast": "自社酵母", - "manufacturing_year_month": "2024.10", - "qr_code_url": "https://pon-room.app/sake/abc123" - }, - - "badges": { - "is_recommended": false, - "is_seasonal": false, - "season_tag": "春限定" - }, - - "gamification": { - "pon_points": 10, - "sake_mbti_type": "フルーティー・モダン型", - "rarity_level": "レア" - }, - - "user_data": { - "is_favorite": false, - "is_wishlist": false, - "tags": ["甘口", "フルーティー", "冷酒向き"], - "memo": "お祝い事にぴったり。冷やして飲むのがおすすめ。", - "drink_location": "○○レストラン", - "companion": "△△さん", - "purchase_location": "××酒販店", - "price": 5000 - }, - - "metadata": { - "created_at": "2026-01-03T12:34:56Z", - "updated_at": "2026-01-03T12:34:56Z", - "app_type": "sake", - "app_mode": "consumer", - "version": "1.0", - "scanned_count": 0 - } -} -``` - ---- - -## 🎨 4. UI構成ルール - -### 4.1 タブ構成(5タブ制) - -| タブ | Consumer Mode (B2C) | Business Mode (B2B) | -|------|---------------------|---------------------| -| **タブ1** | 日本酒カードリスト(自分の記録) | 日本酒カードリスト(店舗在庫) | -| **タブ2** | QRスキャン・AR情報表示 | PDFメニュー作成・QR埋め込み | -| **タブ3** | AIソムリエ・酒向カード診断 | インスタ投稿支援(AI文章生成) | -| **タブ4** | 酒蔵マップ(聖地巡礼) | 店舗設定・在庫管理 | -| **タブ5** | マイページ(レベル・バッジ・設定) | アナリティクス(スキャン統計) | - -### 4.2 カード表示ルール(重要) - -**表示項目(display_dataのみ):** -- 銘柄名 (`display_data.name`) -- 画像 (`display_data.image_path`) -- 評価 (`display_data.rating`) - 星表示 -- バッジ (`badges`) - 店長推奨・季節限定アイコン - -**非表示項目(詳細画面でのみ使用):** -- `hidden_specs` の全項目 -- `user_data` の詳細情報 - -**理由:** シンプルなUIを維持し、挫折を防ぐ - -### 4.3 詳細画面の表示項目 - -**全て表示:** -- `display_data` 全項目 -- `hidden_specs` 全項目(スペック表として) -- `badges` (アイコン付き) -- `user_data` 全項目 - -### 4.4 PDF出力の表示項目 - -**主要項目:** -- `display_data.name`, `image_path` -- `hidden_specs` の以下: - - type, alcohol_content, polishing_ratio - - sake_meter_value, brewery, prefecture -- `badges` (アイコン付き) -- QRコード(`hidden_specs.qr_code_url` から生成) - ---- - -## 🤖 5. AI解析フロー(Hybrid Analysis) - -### 5.1 撮影から保存まで - -``` -1. 撮影 - ├─ ImagePicker or Camera パッケージ - └─ カメラロール自動保存(gal パッケージ使用)★重要 - -2. OCR(テキスト抽出) - ├─ Google ML Kit(ローカル・無料) - ├─ 画像 → 全テキスト抽出 - └─ 抽出テキストのみを次へ - -3. AI解析(構造化) - ├─ 抽出テキストを Gemini API へ送信 - ├─ プロンプト: 「JSONフォーマットで返して」 - └─ 上記のJSON構造で回答を取得 - -4. 保存 - ├─ Hive(ローカル)に即座保存 - └─ Firebase(クラウド)に同期(将来実装) -``` - -### 5.2 AI解析プロンプト例 - -``` -あなたは日本酒のラベル解析の専門家です。 -以下のOCRテキストから、日本酒の情報を抽出してJSON形式で回答してください。 - -【OCRテキスト】 -{ocrText} - -【出力ルール】 -1. display_data: 銘柄名と魅力的なキャッチコピー(あなたが生成) -2. hidden_specs: 詳細スペック(読み取れた範囲で) -3. 読み取れない項目はnullにする -4. JSONのみを返す(```jsonなどのマークダウン記法は不要) -5. キャッチコピーは20文字以内で簡潔に - -【出力フォーマット】 -{JSON構造をここに記載} -``` - -### 5.3 コスト最適化のポイント - -**❌ NG: 画像を直接Geminiに送信** -- 高トークン消費 -- エラー発生率が高い - -**✅ OK: OCRテキストのみ送信** -- トークン消費70-90%削減 -- 安定した動作 -- 後から再解析が不要 - ---- - -## 🎮 6. ゲーミフィケーション機能 - -### 6.1 ポンポイント(仮称) - -**獲得条件:** -- 日本酒を記録: +5pt -- QRスキャン: +10pt -- 酒蔵訪問: +30pt(位置情報連動) -- 評価・レビュー投稿: +3pt - -**レベルシステム:** -``` -0-49pt: 利き酒初心者 -50-149pt: 日本酒愛好家 -150-299pt: 酒豪 -300-499pt: 利き酒師 -500pt+: 酒マスター -``` - -### 6.2 酒向(しゅこう)カード - -**概要:** MBTIライクな自己診断カード - -**診断軸(レーダーチャート):** -1. 甘口 ←→ 辛口 -2. 濃醇 ←→ 淡麗 -3. フルーティー ←→ 米の旨味 -4. 冷酒 ←→ 熱燗 - -**表示項目:** -- 診断タイプ(例: フルーティー・モダン型) -- レーダーチャート -- 好きな銘柄TOP3 -- AIの一言コメント - -**用途:** -- 店員に見せて好みを伝える -- SNSシェア(画像として保存) - ---- - -## 📱 7. QR循環ロジック - -### 7.1 BtoB: PDFメニュー作成時 - -``` -1. 飲食店が店舗在庫を登録 -2. PDFメニュー生成時、各銘柄にQRコード埋め込み -3. QRコード内容: https://pon-room.app/sake/{sakeId} -4. 印刷して店内に設置 -``` - -### 7.2 BtoC: QRスキャン時 - -``` -1. 客がアプリでQRスキャン -2. 銘柄詳細をAR風に表示(オーバーレイ) -3. 「記録する」ボタンで自分のリストに追加 -4. ポンポイント+10pt獲得 -5. 酒蔵リンクへの誘導 -``` - -### 7.3 循環の価値 - -- **客**: スキャンする度にポイントが貯まる -- **店**: 客の興味データが蓄積(アナリティクス) -- **蔵元**: ECサイトへの誘導で売上向上 - ---- - -## 🎓 8. オンボーディング(使い方ガイド) - -### 8.1 初回起動時 - -**4ステップガイド:** -1. ようこそ!日本酒の記録を始めよう -2. カメラで撮影するだけでAIが自動解析 -3. お気に入りを記録して自分だけのコレクションを -4. 飲食店の方はBusinessモードへ切り替え可能 - -### 8.2 再表示機能 - -- 各画面右上の「?」アイコン -- タップでガイドを再表示 - -### 8.3 Businessモード専用ガイド - -**3ステップ(モード切り替え時のみ表示):** -1. 店舗情報を設定しましょう -2. メニューを作成してPDF出力 -3. QRコードで客とつながる - ---- - -## 🚀 9. 開発優先順位(Phase別) - -### Phase 0: 基盤整備 ✅ -- [x] CommonSpecification.md 作成 -- [ ] SakeItemモデルの拡張 - -### Phase 1: 安心の確保(1-2時間) -- [ ] カメラロール保存実装(gal) -- [ ] iOS/Android権限設定 -- [ ] 撮影後の自動保存フロー - -### Phase 2: BtoB機能完成(4-6時間) -- [ ] PDF + printing 実装 -- [ ] モックアップ厳密再現 -- [ ] QRコード埋め込み -- [ ] レイアウト定数化 - -### Phase 3: AI最適化(3-4時間) -- [ ] Google ML Kit 導入 -- [ ] OCRテキスト抽出 -- [ ] Gemini APIへのテキスト送信切り替え - -### Phase 4: ゲーミフィケーション(後回しOK) -- [ ] ポンポイントシステム -- [ ] 酒向カード生成 -- [ ] QRスキャン機能 - ---- - -## 📐 10. レイアウト定数(PDF用) - -```dart -class PDFLayoutConstants { - // 余白 - static const double pageMargin = 24.0; - static const double sectionSpacing = 20.0; - static const double itemSpacing = 12.0; - - // フォントサイズ - static const double titleFontSize = 24.0; - static const double headingFontSize = 14.0; - static const double bodyFontSize = 11.0; - static const double labelFontSize = 9.0; - - // 線の太さ - static const double borderWidthThin = 0.5; - static const double borderWidthMedium = 1.0; - static const double borderWidthThick = 2.0; - - // 色(posimaiカラー) - static final PdfColor borderColor = PdfColor.fromHex('#E2E8F0'); - static final PdfColor labelColor = PdfColor.fromHex('#64748B'); - static final PdfColor accentColor = PdfColor.fromHex('#376495'); -} -``` - ---- - -## 🔐 11. セキュリティ・プライバシー - -### 11.1 データ保存場所 - -**✅ ローカル保存:** -- Hive DB: アプリ専用ディレクトリ -- 写真: カメラロール(ユーザー端末) - -**✅ 外部送信(一時的、保存されない):** -- Gemini API: OCRテキストのみ(画像は送らない) - -**❌ 外部送信なし:** -- 個人情報の無断クラウド保存 -- サードパーティへのデータ販売 - -### 11.2 将来のFirebase連携 - -- ユーザーが明示的に「同期」を選択した場合のみ -- 画像はFirebase Storageへ -- テキストデータはFirestoreへ - ---- - -## 🎯 12. 量産対応(ワイン・ビールアプリへの展開) - -### 12.1 拡張方法 - -`metadata.app_type` を変更するだけで転用可能: -- `sake` → 日本酒 -- `wine` → ワイン -- `beer` → クラフトビール -- `whisky` → ウイスキー - -### 12.2 共通化できる機能 - -- 撮影・OCR・AI解析フロー -- ポイントシステム -- PDF出力・QR循環 -- マイページ・設定 - -### 12.3 差分化が必要な箇所 - -- JSONの `hidden_specs` フィールド - - ワイン: ぶどう品種、産地、ヴィンテージ - - ビール: ホップ、モルト、IBU値 -- キャッチコピーのトーン - ---- - -## 📝 13. AIエージェントへの指示 - -### 13.1 開発時の鉄則 - -1. **この仕様書を最優先のルール(バイブル)として参照せよ** -2. **display_data と hidden_specs を明確に分離せよ** -3. **カードUIはシンプルに保ち、display_dataのみ使用せよ** -4. **挫折防止のため、段階的に実装せよ(Phase順守)** -5. **モックアップがある場合は1px単位で厳密再現せよ** - -### 13.2 コード生成時の注意 - -- null安全性を徹底 -- エラーハンドリングを統一 -- デバッグログを適切に配置 -- コメントは日本語で簡潔に - -### 13.3 質問・提案時のルール - -- 仕様書と矛盾する提案をする場合は理由を明記 -- 新機能追加時はPhaseを提案 -- データ構造変更時はJSON例を提示 - ---- - -## 📞 14. サポート・連絡先 - -**プロジェクトオーナー**: posimai -**開発支援AI**: Claude (Anthropic), Gemini (Google AI), ChatGPT (OpenAI) -**バージョン管理**: Git (GitHub) -**CI/CD**: Vercel (Web), Firebase Hosting - ---- - -## 🎉 15. 最後に - -この仕様書は「挫折しない日本酒アプリ開発」のために、複数のAIの知恵を結集して作成されました。 - -**重要な心構え:** -- シンプルから始める -- データは豊富に持つが、表示は最小限に -- ユーザーが「楽しい」と感じる体験を最優先に - -**Let's build the best sake app together! 🍶✨** - ---- - -**End of CommonSpecification.md v1.0** diff --git a/CommonSpecification_gemini.md b/CommonSpecification_gemini.md deleted file mode 100644 index aa7b416..0000000 --- a/CommonSpecification_gemini.md +++ /dev/null @@ -1,113 +0,0 @@ -CommonSpecification.md (v1.0) -1. vWFNgTv -Av: ۂ[ށiPon-Roomj - -RZvg: {́uL^ÉEzvxAIAvB - -^[Qbg: - B2C: ʃ[U[i̓{̌L^EffELj - -B2B: HXiX̓{j[PDF/QRtō쐬Ej - -2. ZpX^bN -Frontend: Flutter (iOS/Android/Web) - -Backend/DB: Cloud Firestore, Firebase Auth - -AI/ML: - Local OCR: Google ML Kit (eLXgo) - -LLM Analysis: Gemini API (2.5 Flash / 3 Flash) - -Library: - gal: J[ۑp - -pdf, printing: PDFEp - -qr_flutter: QRR[hp - -3. ʃf[^\ (JSON Schema) -ׂĂAI͂уf[^ۑ͂̌`ɏ]ƁB - -JSON - -{ - "display_data": { - "name": "", - "catch_phrase": "AĨLb`Rs[", - "image_path": "local/path/to/image.jpg", - "rating": 4.5 - }, - "hidden_specs": { - "brewery": "", - "prefecture": "s{", - "type": "薼(đ)", - "alcohol_content": 16.0, - "polishing_ratio": 23, - "rice_variety": "gp", - "sake_meter_value": 0.0, - "qr_code_url": "https://pon-room.app/sake/12345" - }, - "badges": { - "is_recommended": false, - "is_seasonal": false, - "season_tag": "t" - }, - "gamification": { - "pon_points": 10, - "sake_mbti_type": "t[eB[E_^" - }, - "user_data": { - "is_favorite": false, - "memo": "eCXeBO", - "created_at": "ISO8601`" - }, - "metadata": { - "app_type": "sake", - "version": "1.0" - } -} -4. @\ʃKChC -4.1 BeE̓t[ (Hybrid Analysis) -Be: ʐ^BeAɁuJ[i[̃M[jv֕ۑigalpbP[WgpjB - -OCR: Google ML Kitʼn摜琶eLXg𒊏oB - -AI: oeLXĝ݂Gemini֑MALJSON`ō\f[^擾B - -: 摜𒼐AIɑ̂ł͂ȂAeLXg邱ƂŃg[NߖƃG[sB - -4.2 UI\ (5^uE؂ւ) -^u1 (Xg): J[h`Bdisplay_datâ݂\Aɗ̓VvɕۂB - -^u2 (XL/쐬): - Consumer[h: QRXLiXj[̓ǂݎE|CgljB - -Business[h: PDFj[쐬iQRR[hߍ݁jB - -^u3 (AI/ff): AI\GA𑠃}bvigjB - -^u4 (}bv): 𑠏}bvijB - -^u5 (}Cy[W): - (ケ)J[h: MBTI̎ȐffʁAobWAl|Cg\B - -ݒ: ÉuԃACRvɃ[h؂ւAgKChAVXeݒWB - -4.3 I{[fBO (Onboarding) -N4̃XebvKCh\B - -eʉÉuHvACRŃKChĕ\B - -Business[h؂ւ͐p3XebvKChlj\B - -4.4 B2B/B2C zƒWbN -B2B: PDFo͎Ɋe qr_code_url QRR[hƂĖߍށB - -B2C: QRXLƁAڍ׏񂪕\u||Cgv܂dg݂zB - -5. JD揇 (Roadmap) -Phase 1: CommonSpecification.md ɊÂf[^f̍Ē`B - -Phase 2: J[ۑ@\̎if[^XNjB - -Phase 3: PDF + printing iAntigravity]pB2B@\jB - -Phase 4: OCR + Gemini APIAg̍œKB - -Phase 5: }Cy[WiJ[hjуQ[~tBP[VB \ No newline at end of file diff --git a/all_models.json b/all_models.json new file mode 100644 index 0000000000000000000000000000000000000000..f690edc313423140e2f9cd5c66867e0c988be477 GIT binary patch literal 46436 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 H + + + + + + + + diff --git a/lib/models/maps/japan_map_data.dart b/lib/models/maps/japan_map_data.dart index 2bdaf50..a54f3ad 100644 --- a/lib/models/maps/japan_map_data.dart +++ b/lib/models/maps/japan_map_data.dart @@ -6,42 +6,42 @@ class JapanMapData { // Designed to show Hokkaido size, Honshu curve, and close Kyushu/Shikoku static final List> gridLayout = [ // Hokkaido (Top) - Huge & Diamond shape approx - // Hokkaido (Top) - Refined Diamond Shape - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], // Tip - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0], // Widen - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0], // Widest top - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], // Mid - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], // Narrowing - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], // Oshinima Peninsula + // Shifted Left by 3 + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Tip + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], // Widen + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], // Widest top + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], // Mid + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], // Narrowing + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Oshinima Peninsula [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Tsugaru Strait // Tohoku (The vertical stick) - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0], // Aomori - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 3, 3, 0, 0, 0, 0, 0, 0, 0], // Akita, Iwate - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 4, 4, 0, 0, 0, 0, 0, 0, 0], // Yamagata, Miyagi - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0], // Niigata, Fukushima + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Aomori + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Akita, Iwate + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Yamagata, Miyagi + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Niigata, Fukushima // Kanto & Chubu (The bulging turn) - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 10, 9, 9, 8, 8, 0, 0, 0, 0, 0, 0], // Niigata, Gunma, Tochigi, Ibaraki - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 16, 20, 20, 11, 11, 12, 12, 0, 0, 0, 0, 0, 0], // Ishikawa, Toyama, Nagano, Saitama, Chiba - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 21, 20, 19, 13, 13, 12, 0, 0, 0, 0, 0, 0, 0], // Fukui, Gifu, Nagano, Yamanashi, Tokyo, Chiba - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 25, 21, 23, 22, 14, 14, 0, 0, 0, 0, 0, 0, 0], // Fukui, Shiga, Gifu, Aichi, Shizuoka, Kanagawa + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 10, 9, 9, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Niigata, Gunma, Tochigi, Ibaraki + [0, 0, 0, 0, 0, 0, 0, 0, 17, 16, 20, 20, 11, 11, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Ishikawa, Toyama, Nagano, Saitama, Chiba + [0, 0, 0, 0, 0, 0, 0, 0, 18, 21, 20, 19, 13, 13, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Fukui, Gifu, Nagano, Yamanashi, Tokyo, Chiba + [0, 0, 0, 0, 0, 0, 0, 0, 18, 25, 21, 23, 22, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Fukui, Shiga, Gifu, Aichi, Shizuoka, Kanagawa // Kansai & Chugoku (Stretching West) - [0, 0, 0, 0, 0, 0, 0, 32, 31, 28, 26, 25, 24, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Shimane, Tottori, Hyogo, Kyoto, Shiga, Mie, Aichi, Shizuoka - [0, 0, 0, 0, 0, 35, 34, 33, 28, 27, 29, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Yamaguchi, Hiroshima, Okayama, Hyogo, Osaka, Nara, Mie + [0, 0, 0, 0, 32, 31, 28, 26, 25, 24, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Shimane, Tottori, Hyogo, Kyoto, Shiga, Mie, Aichi, Shizuoka + [0, 0, 35, 34, 33, 28, 27, 29, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Yamaguchi, Hiroshima, Okayama, Hyogo, Osaka, Nara, Mie // Shikoku (Nestled under) & Wakayama - [0, 0, 0, 0, 0, 0, 0, 37, 36, 0, 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Kagawa, Tokushima, Wakayama - [0, 0, 0, 0, 0, 0, 38, 38, 39, 39, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Ehime, Kochi + [0, 0, 0, 0, 37, 36, 0, 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Kagawa, Tokushima, Wakayama + [0, 0, 0, 38, 38, 39, 39, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Ehime, Kochi // Kyushu (Connecting West) - [0, 0, 0, 41, 40, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Saga, Fukuoka, Oita - [0, 42, 42, 43, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Nagasaki, Kumamoto, Oita - [0, 42, 43, 43, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Nagasaki, Kumamoto, Miyazaki - [0, 0, 46, 46, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Kagoshima, Miyazaki - [0, 0, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Kagoshima + [0, 41, 40, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Saga, Fukuoka, Oita + [42, 42, 43, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Nagasaki, Kumamoto, Oita + [42, 43, 43, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Nagasaki, Kumamoto, Miyazaki + [0, 46, 46, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Kagoshima, Miyazaki + [0, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Kagoshima // Gap [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], diff --git a/lib/models/maps/prefecture_tile_layout.dart b/lib/models/maps/prefecture_tile_layout.dart index 8953beb..03d05eb 100644 --- a/lib/models/maps/prefecture_tile_layout.dart +++ b/lib/models/maps/prefecture_tile_layout.dart @@ -20,69 +20,68 @@ class PrefectureTileLayout { static Map get getLayout => finalLayout; static const Map finalLayout = { - // Hokkaido + // Hokkaido & Tohoku '北海道': TilePosition(col: 11, row: 0, width: 2, height: 2), - - // Tohoku '青森': TilePosition(col: 11, row: 2), - '秋田': TilePosition(col: 10, row: 3), // Was 11 - no wait, Akita was 11. + '秋田': TilePosition(col: 10, row: 3), '岩手': TilePosition(col: 11, row: 3), - '山形': TilePosition(col: 10, row: 4), // Was 11 + '山形': TilePosition(col: 10, row: 4), '宮城': TilePosition(col: 11, row: 4), '福島': TilePosition(col: 11, row: 5), // Kanto & Koshinetsu '茨城': TilePosition(col: 12, row: 6), '栃木': TilePosition(col: 11, row: 6), - '群馬': TilePosition(col: 10, row: 6), // Was 11? No wait. - '埼玉': TilePosition(col: 10, row: 7), // Was 11 - '東京': TilePosition(col: 10, row: 8), // Was 11 - '千葉': TilePosition(col: 11, row: 8), - '神奈川': TilePosition(col: 10, row: 9), // Was 11 - '山梨': TilePosition(col: 10, row: 7), - '長野': TilePosition(col: 10, row: 6), - '新潟': TilePosition(col: 11, row: 5), + '群馬': TilePosition(col: 10, row: 6), + '埼玉': TilePosition(col: 10, row: 7), + '千葉': TilePosition(col: 11, row: 7), // Right of Saitama + '東京': TilePosition(col: 10, row: 8), + '神奈川': TilePosition(col: 10, row: 9), + + '新潟': TilePosition(col: 10, row: 5), // Left of Fukushima (11,5) -> 10,5? Gunma is 10,6. OK. + '長野': TilePosition(col: 9, row: 6), // Left of Gunma + '山梨': TilePosition(col: 9, row: 7), // Left of Saitama + '静岡': TilePosition(col: 9, row: 8), // Left of Tokyo // Hokuriku & Tokai - '富山': TilePosition(col: 10, row: 5), - '石川': TilePosition(col: 9, row: 5), - '福井': TilePosition(col: 9, row: 6), - '岐阜': TilePosition(col: 9, row: 7), - '愛知': TilePosition(col: 9, row: 8), - '静岡': TilePosition(col: 10, row: 8), - '三重': TilePosition(col: 8, row: 8), + '富山': TilePosition(col: 9, row: 5), // Left of Niigata + '石川': TilePosition(col: 8, row: 5), // Left of Toyama + '福井': TilePosition(col: 8, row: 6), + '岐阜': TilePosition(col: 8, row: 7), + '愛知': TilePosition(col: 8, row: 8), + '三重': TilePosition(col: 7, row: 8), // Kinki - '滋賀': TilePosition(col: 8, row: 7), - '京都': TilePosition(col: 7, row: 7), - '大阪': TilePosition(col: 7, row: 8), - '兵庫': TilePosition(col: 6, row: 7), - '奈良': TilePosition(col: 8, row: 9), - '和歌山': TilePosition(col: 7, row: 9), + '滋賀': TilePosition(col: 7, row: 7), + '京都': TilePosition(col: 6, row: 7), + '大阪': TilePosition(col: 6, row: 8), + '兵庫': TilePosition(col: 5, row: 7), // Left of Kyoto + '奈良': TilePosition(col: 7, row: 9), // Below Shiga/Mie area? (7,9) + '和歌山': TilePosition(col: 6, row: 9), // Below Osaka // Chugoku - '鳥取': TilePosition(col: 5, row: 7), - '岡山': TilePosition(col: 5, row: 8), - '島根': TilePosition(col: 4, row: 7), - '広島': TilePosition(col: 4, row: 8), - '山口': TilePosition(col: 3, row: 8), + '鳥取': TilePosition(col: 4, row: 7), + '岡山': TilePosition(col: 4, row: 8), + '島根': TilePosition(col: 3, row: 7), + '広島': TilePosition(col: 3, row: 8), + '山口': TilePosition(col: 2, row: 8), // Shikoku - '香川': TilePosition(col: 6, row: 9), - '徳島': TilePosition(col: 6, row: 10), - '愛媛': TilePosition(col: 5, row: 9), - '高知': TilePosition(col: 5, row: 10), + '香川': TilePosition(col: 5, row: 9), // Below Hyogo/Are (5,7) -> Gap at 8. Correct. + '徳島': TilePosition(col: 5, row: 10), + '愛媛': TilePosition(col: 4, row: 9), + '高知': TilePosition(col: 4, row: 10), - // Kyushu - '福岡': TilePosition(col: 2, row: 8), - '大分': TilePosition(col: 2, row: 9), - '佐賀': TilePosition(col: 1, row: 8), - '長崎': TilePosition(col: 0, row: 8), - '熊本': TilePosition(col: 1, row: 9), - '宮崎': TilePosition(col: 2, row: 10), - '鹿児島': TilePosition(col: 1, row: 10), + // Kyushu (2 columns) + '福岡': TilePosition(col: 1, row: 8), + '大分': TilePosition(col: 1, row: 9), + '宮崎': TilePosition(col: 1, row: 10), + '佐賀': TilePosition(col: 0, row: 8), + '長崎': TilePosition(col: 0, row: 9), + '熊本': TilePosition(col: 0, row: 10), + '鹿児島': TilePosition(col: 0, row: 11), // Okinawa - '沖縄': TilePosition(col: 0, row: 11), + '沖縄': TilePosition(col: 0, row: 12), }; } diff --git a/lib/models/sake_item.dart b/lib/models/sake_item.dart index 4dad9b8..2dd2e85 100644 --- a/lib/models/sake_item.dart +++ b/lib/models/sake_item.dart @@ -235,6 +235,14 @@ class SakeItem extends HiveObject { double? markup, Map? priceVariants, ItemType? itemType, + // New Specs + String? specificDesignation, // Maps to hiddenSpecs.type + double? alcoholContent, + int? polishingRatio, + double? sakeMeterValue, + String? riceVariety, + String? yeast, + String? manufacturingYearMonth, }) { // Ensure we have current data structures final currentDisplay = displayData; @@ -258,6 +266,13 @@ class SakeItem extends HiveObject { flavorTags: flavorTags, sweetnessScore: sweetnessScore, bodyScore: bodyScore, + type: specificDesignation, + alcoholContent: alcoholContent, + polishingRatio: polishingRatio, + sakeMeterValue: sakeMeterValue, + riceVariety: riceVariety, + yeast: yeast, + manufacturingYearMonth: manufacturingYearMonth, ), userData: currentUser.copyWith( isFavorite: isFavorite, diff --git a/lib/providers/menu_providers.dart b/lib/providers/menu_providers.dart index c19055c..e248292 100644 --- a/lib/providers/menu_providers.dart +++ b/lib/providers/menu_providers.dart @@ -93,7 +93,7 @@ class PdfIncludePriceNotifier extends Notifier { final pdfDensityProvider = NotifierProvider(PdfDensityNotifier.new); class PdfDensityNotifier extends Notifier { @override - double build() => 1.2; // Default 1.2 "High Density" + double build() => 1.8; // Default 1.8 "High Density" void set(double value) => state = value; } diff --git a/lib/providers/ui_experiment_provider.dart b/lib/providers/ui_experiment_provider.dart index d3ede56..d71fe69 100644 --- a/lib/providers/ui_experiment_provider.dart +++ b/lib/providers/ui_experiment_provider.dart @@ -4,19 +4,23 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; class UiExperimentSettings { final int gridColumns; // 2 or 3 final String fabAnimation; // 'rotate' or 'bounce' + final bool isMapColorful; // true: Region Colors, false: Posimai/Grey const UiExperimentSettings({ this.gridColumns = 2, this.fabAnimation = 'rotate', + this.isMapColorful = false, }); UiExperimentSettings copyWith({ int? gridColumns, String? fabAnimation, + bool? isMapColorful, }) { return UiExperimentSettings( gridColumns: gridColumns ?? this.gridColumns, fabAnimation: fabAnimation ?? this.fabAnimation, + isMapColorful: isMapColorful ?? this.isMapColorful, ); } } @@ -37,4 +41,8 @@ class UiExperimentNotifier extends Notifier { void setFabAnimation(String animation) { state = state.copyWith(fabAnimation: animation); } + + void setMapColorful(bool isColorful) { + state = state.copyWith(isMapColorful: isColorful); + } } diff --git a/lib/screens/camera_screen.dart b/lib/screens/camera_screen.dart index 34e0640..8d3aaaa 100644 --- a/lib/screens/camera_screen.dart +++ b/lib/screens/camera_screen.dart @@ -14,7 +14,7 @@ import '../widgets/analyzing_dialog.dart'; import '../models/sake_item.dart'; import '../theme/app_theme.dart'; import 'package:lucide_icons/lucide_icons.dart'; -import 'package:image_picker/image_picker.dart'; // Gallery Import +import 'package:image_picker/image_picker.dart'; // Gallery & Camera import '../models/user_profile.dart'; import '../providers/theme_provider.dart'; // userProfileProvider @@ -235,10 +235,36 @@ class _CameraScreenState extends ConsumerState with SingleTickerPr Future _pickFromGallery() async { final picker = ImagePicker(); - final XFile? image = await picker.pickImage(source: ImageSource.gallery); + // Use standard image_picker (Updated to 1.1.2 for Android 13+) + final List images = await picker.pickMultiImage(); - if (image != null && mounted) { - await _handleCapturedImage(image.path, fromGallery: true); + if (images.isNotEmpty && mounted) { + // IF RETURN PATH Mode (Only supports one) + if (widget.mode == CameraMode.returnPath) { + Navigator.of(context).pop(images.first.path); + return; + } + + setState(() { + for (var img in images) { + _capturedImages.add(img.path); + } + }); + + // Batch handle - Notification only + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('${images.length}枚の画像を読み込みました。\n右下のボタンから解析を開始してください。'), + duration: const Duration(seconds: 3), + action: SnackBarAction( + label: '解析する', + onPressed: _analyzeImages, + textColor: Colors.yellow, + ), + ), + ); + } } } @@ -657,8 +683,18 @@ class _CameraScreenState extends ConsumerState with SingleTickerPr ), ), - // Right Spacer (Balance) - const SizedBox(width: 48), + // Right Spacer -> Analyze Button if images exist + if (_capturedImages.isNotEmpty) + IconButton( + icon: Badge( + label: Text('${_capturedImages.length}'), + child: const Icon(LucideIcons.playCircle, color: Colors.greenAccent, size: 40), + ), + onPressed: _analyzeImages, + tooltip: '解析を開始', + ) + else + const SizedBox(width: 48), ], ), ), diff --git a/lib/screens/dev_menu_screen.dart b/lib/screens/dev_menu_screen.dart index e6b809f..e79f2f6 100644 --- a/lib/screens/dev_menu_screen.dart +++ b/lib/screens/dev_menu_screen.dart @@ -42,6 +42,15 @@ class DevMenuScreen extends ConsumerWidget { onChanged: (val) => ref.read(uiExperimentProvider.notifier) .setFabAnimation(val ? 'bounce' : 'rotate'), ), + const Divider(), + SwitchListTile( + secondary: const Text('🎨', style: TextStyle(fontSize: 24)), + title: const Text('地図お試しカラー'), + subtitle: Text('地方ごとに色分け (現在: ${experiment.isMapColorful ? 'ON' : 'OFF'})'), + value: experiment.isMapColorful, + onChanged: (val) => ref.read(uiExperimentProvider.notifier) + .setMapColorful(val), + ), ], ), ), diff --git a/lib/screens/home_screen.dart b/lib/screens/home_screen.dart index f0d0b28..8495caf 100644 --- a/lib/screens/home_screen.dart +++ b/lib/screens/home_screen.dart @@ -65,6 +65,8 @@ class HomeScreen extends ConsumerWidget { final userProfile = ref.watch(userProfileProvider); final isBusinessMode = userProfile.isBusinessMode; + final hasItems = ref.watch(rawSakeListItemsProvider).asData?.value.isNotEmpty ?? false; + return Scaffold( appBar: AppBar( title: isMenuMode @@ -137,7 +139,7 @@ class HomeScreen extends ConsumerWidget { body: SafeArea( child: Column( children: [ - if (!isMenuMode) + if (!isMenuMode && hasItems) SakeFilterChips( mode: isBusinessMode ? FilterChipMode.business : FilterChipMode.personal ), @@ -182,7 +184,7 @@ class HomeScreen extends ConsumerWidget { ), ); } else if (isListActuallyEmpty) { - return const HomeEmptyState(); + return HomeEmptyState(isMenuMode: isMenuMode); } else { return const SakeNoMatchState(); } diff --git a/lib/screens/menu_creation_screen.dart b/lib/screens/menu_creation_screen.dart index 956caab..1080efe 100644 --- a/lib/screens/menu_creation_screen.dart +++ b/lib/screens/menu_creation_screen.dart @@ -147,7 +147,7 @@ class MenuCreationScreen extends ConsumerWidget { ), ); } else if (isListActuallyEmpty) { - return const HomeEmptyState(); + return const HomeEmptyState(isMenuMode: true); } else { return const SakeNoMatchState(); } diff --git a/lib/screens/menu_settings_screen.dart b/lib/screens/menu_settings_screen.dart index 9d51b60..69e09c4 100644 --- a/lib/screens/menu_settings_screen.dart +++ b/lib/screens/menu_settings_screen.dart @@ -260,8 +260,8 @@ class _MenuSettingsScreenState extends ConsumerState { const Divider(height: 1), // QR Toggle SwitchListTile( - title: const Text('QRコード (お持ち帰り用)'), - subtitle: const Text('アプリで読み取れる情報を埋め込みます', style: TextStyle(fontSize: 10, color: Colors.grey)), + title: const Text('QRコード(銘柄情報表示)'), + subtitle: const Text('ぽんるーむアプリでスキャンすると銘柄情報を表示', style: TextStyle(fontSize: 10, color: Colors.grey)), value: includeQr, onChanged: (val) => setState(() { includeQr = val; diff --git a/lib/screens/placeholders/brewery_map_screen.dart b/lib/screens/placeholders/brewery_map_screen.dart index 64cd965..b0a88c4 100644 --- a/lib/screens/placeholders/brewery_map_screen.dart +++ b/lib/screens/placeholders/brewery_map_screen.dart @@ -66,7 +66,10 @@ class _BreweryMapScreenState extends ConsumerState { child: Row( mainAxisAlignment: MainAxisAlignment.start, // Left align children: [ - _buildLegendDot(Colors.grey[300]!, '未開拓'), + _buildLegendDot( + Theme.of(context).brightness == Brightness.dark ? Colors.grey[800]! : Colors.grey[300]!, + '未開拓' + ), const SizedBox(width: 12), _buildLegendDot(AppTheme.posimaiBlue, '制覇済'), ], diff --git a/lib/screens/sake_detail_screen.dart b/lib/screens/sake_detail_screen.dart index 93234c8..a8473d5 100644 --- a/lib/screens/sake_detail_screen.dart +++ b/lib/screens/sake_detail_screen.dart @@ -80,6 +80,7 @@ class _SakeDetailScreenState extends ConsumerState { expandedHeight: 400.0, floating: false, pinned: true, + backgroundColor: Theme.of(context).primaryColor, iconTheme: const IconThemeData(color: Colors.white), actions: [ MunyunLikeButton( @@ -416,13 +417,18 @@ class _SakeDetailScreenState extends ConsumerState { padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), child: Column( children: [ + _buildSpecRow('特定名称', _sake.hiddenSpecs.type ?? '-'), _buildSpecRow('甘辛度', _sake.hiddenSpecs.sweetnessScore?.toStringAsFixed(1) ?? '-'), _buildSpecRow('濃淡度', _sake.hiddenSpecs.bodyScore?.toStringAsFixed(1) ?? '-'), const SizedBox(height: 8), - Text( - '※ 今後のアップデートで精米歩合、アルコール度数などの詳細スペックを追加予定', - style: TextStyle(color: Colors.grey[600], fontSize: 12), - ), + const Divider(height: 16), + const SizedBox(height: 8), + _buildSpecRow('精米歩合', _sake.hiddenSpecs.polishingRatio != null ? '${_sake.hiddenSpecs.polishingRatio}%' : '-'), + _buildSpecRow('アルコール分', _sake.hiddenSpecs.alcoholContent != null ? '${_sake.hiddenSpecs.alcoholContent}度' : '-'), + _buildSpecRow('日本酒度', _sake.hiddenSpecs.sakeMeterValue != null ? '${_sake.hiddenSpecs.sakeMeterValue! > 0 ? '+' : ''}${_sake.hiddenSpecs.sakeMeterValue}' : '-'), + _buildSpecRow('酒米', _sake.hiddenSpecs.riceVariety ?? '-'), + _buildSpecRow('酵母', _sake.hiddenSpecs.yeast ?? '-'), + _buildSpecRow('製造年月', _sake.hiddenSpecs.manufacturingYearMonth ?? '-'), ], ), ), @@ -648,6 +654,15 @@ class _SakeDetailScreenState extends ConsumerState { confidenceScore: result.confidenceScore, flavorTags: result.flavorTags.isNotEmpty ? result.flavorTags : _sake.hiddenSpecs.flavorTags, tasteStats: result.tasteStats.isNotEmpty ? result.tasteStats : _sake.hiddenSpecs.tasteStats, + // New Fields + specificDesignation: result.type ?? _sake.hiddenSpecs.type, + alcoholContent: result.alcoholContent ?? _sake.hiddenSpecs.alcoholContent, + polishingRatio: result.polishingRatio ?? _sake.hiddenSpecs.polishingRatio, + sakeMeterValue: result.sakeMeterValue ?? _sake.hiddenSpecs.sakeMeterValue, + riceVariety: result.riceVariety ?? _sake.hiddenSpecs.riceVariety, + yeast: result.yeast ?? _sake.hiddenSpecs.yeast, + manufacturingYearMonth: result.manufacturingYearMonth ?? _sake.hiddenSpecs.manufacturingYearMonth, + itemType: ItemType.sake, ); final box = Hive.box('sake_items'); diff --git a/lib/screens/shop_settings_screen.dart b/lib/screens/shop_settings_screen.dart index 71e7396..090dced 100644 --- a/lib/screens/shop_settings_screen.dart +++ b/lib/screens/shop_settings_screen.dart @@ -26,14 +26,14 @@ class _ShopSettingsScreenState extends ConsumerState { return Scaffold( appBar: AppBar( - title: const Text('店舗設定'), + title: const Text('店舗ページ'), centerTitle: true, ), body: ListView( padding: const EdgeInsets.all(16), children: [ // Business Config Section - _buildSectionHeader(context, 'ビジネス設定', LucideIcons.briefcase), + _buildSectionHeader(context, '価格設定', LucideIcons.briefcase), Card( color: isDark ? const Color(0xFF1E1E1E) : null, child: ListTile( diff --git a/lib/screens/soul_screen.dart b/lib/screens/soul_screen.dart index acc6461..32c6e8f 100644 --- a/lib/screens/soul_screen.dart +++ b/lib/screens/soul_screen.dart @@ -96,7 +96,7 @@ class _SoulScreenState extends ConsumerState { // other Settings const OtherSettingsSection( - title: 'データ・その他', + title: 'その他', ), const SizedBox(height: 24), diff --git a/lib/secrets - コピー.dart b/lib/secrets - コピー.dart new file mode 100644 index 0000000..74a315f --- /dev/null +++ b/lib/secrets - コピー.dart @@ -0,0 +1,3 @@ +class Secrets { + static const String geminiApiKey = 'AIzaSyD9FubZhzrDKFbFtGqBQdfOuP1QTZ5vJf4'; +} diff --git a/lib/secrets_bk.dart b/lib/secrets_bk.dart new file mode 100644 index 0000000..74a315f --- /dev/null +++ b/lib/secrets_bk.dart @@ -0,0 +1,3 @@ +class Secrets { + static const String geminiApiKey = 'AIzaSyD9FubZhzrDKFbFtGqBQdfOuP1QTZ5vJf4'; +} diff --git a/lib/services/device_service.dart b/lib/services/device_service.dart new file mode 100644 index 0000000..856e3b9 --- /dev/null +++ b/lib/services/device_service.dart @@ -0,0 +1,55 @@ +import 'dart:convert'; +import 'package:crypto/crypto.dart'; +import 'package:device_info_plus/device_info_plus.dart'; +import 'package:flutter/foundation.dart'; + +/// デバイスID取得サービス +/// レート制限のためのデバイス識別に使用 +class DeviceService { + static final DeviceInfoPlugin _deviceInfo = DeviceInfoPlugin(); + static String? _cachedDeviceId; + + /// デバイス固有のIDを取得(SHA256ハッシュ化) + static Future getDeviceId() async { + // キャッシュがあれば返す + if (_cachedDeviceId != null) { + return _cachedDeviceId!; + } + + try { + String deviceIdentifier; + + if (defaultTargetPlatform == TargetPlatform.android) { + final androidInfo = await _deviceInfo.androidInfo; + // Android IDを使用(アプリ再インストールでも同じIDを維持) + deviceIdentifier = androidInfo.id; + } else if (defaultTargetPlatform == TargetPlatform.iOS) { + final iosInfo = await _deviceInfo.iosInfo; + // identifierForVendor(アプリ再インストールで変わる可能性あり) + deviceIdentifier = iosInfo.identifierForVendor ?? 'unknown-ios'; + } else { + // その他のプラットフォーム + deviceIdentifier = 'unknown-platform'; + } + + // SHA256ハッシュ化(64文字の固定長文字列) + final bytes = utf8.encode(deviceIdentifier); + final digest = sha256.convert(bytes); + _cachedDeviceId = digest.toString(); + + debugPrint('Device ID (hashed): ${_cachedDeviceId!.substring(0, 8)}...'); + + return _cachedDeviceId!; + } catch (e) { + debugPrint('Error getting device ID: $e'); + // エラー時はランダムなIDを生成(セッション中は同じIDを使用) + _cachedDeviceId = sha256.convert(utf8.encode('fallback-${DateTime.now().millisecondsSinceEpoch}')).toString(); + return _cachedDeviceId!; + } + } + + /// デバイス情報をリセット(テスト用) + static void reset() { + _cachedDeviceId = null; + } +} diff --git a/lib/services/gemini_service.dart b/lib/services/gemini_service.dart index c0cbbac..eecc356 100644 --- a/lib/services/gemini_service.dart +++ b/lib/services/gemini_service.dart @@ -1,334 +1,180 @@ import 'dart:io'; import 'dart:convert'; -import 'package:google_generative_ai/google_generative_ai.dart'; +import 'package:http/http.dart' as http; import 'package:flutter/foundation.dart'; -import '../secrets.dart'; +import 'device_service.dart'; +// import '../secrets.dart'; // No longer needed + class GeminiService { - late final GenerativeModel _model; - - // レート制限対策: 最後のAPI呼び出し時刻を記録 + // AI Proxy Server Configuration + static const String _proxyUrl = 'http://192.168.31.89:8080/analyze'; + + // レート制限対策? Proxy側で管理されているが、念のためクライアント側でも連打防止 static DateTime? _lastApiCallTime; - static const Duration _minApiInterval = Duration(seconds: 5); // 最低5秒間隔 + static const Duration _minApiInterval = Duration(seconds: 2); - // モデル選択: gemini-2.5-flash (無料版) または gemini-2.5-pro (有料版) - // Google One Pro会員でも、API料金は別途発生します - // 有料版に変更する場合: Google AI Studio → Billing → Pay-as-you-go設定後、 - // 下記モデル名を 'gemini-2.5-pro' に変更してください - // Lite is 503 Overloaded. Trying Standard Flash. - static const _modelName = 'gemini-2.5-flash'; // Pro版: 'gemini-2.5-pro' + GeminiService(); - GeminiService() { - _model = GenerativeModel( - model: _modelName, - apiKey: Secrets.geminiApiKey, - // 安全設定: 日本酒情報なので制限を緩和 - safetySettings: [ - SafetySetting(HarmCategory.harassment, HarmBlockThreshold.none), - SafetySetting(HarmCategory.hateSpeech, HarmBlockThreshold.none), - ], + /// 画像リストから日本酒ラベルを解析 + Future analyzeSakeLabel(List imagePaths) async { + // サーバー側のデフォルトプロンプトを使用するため、customPromptはnullを送信 + return _callProxyApi( + imagePaths: imagePaths, + customPrompt: null, ); } - Future analyzeSakeLabel(List imagePaths) async { - try { - // レート制限対策 - if (_lastApiCallTime != null) { - final elapsed = DateTime.now().difference(_lastApiCallTime!); - if (elapsed < _minApiInterval) { - await Future.delayed(_minApiInterval - elapsed); - } - } - - if (imagePaths.isEmpty) throw Exception("画像が選択されていません"); - - debugPrint('Analyzing ${imagePaths.length} images...'); - - const prompt = ''' -この日本酒のラベル画像(複数枚ある場合は表・裏など)を分析してください。 -全ての画像から情報を統合し、以下の情報をJSON形式で返してください: - -{ - "name": "銘柄名(例:獺祭 純米大吟醸)", - "brand": "蔵元名(例:旭酒造)", - "prefecture": "都道府県名(例:山口県)", - "type": "種類(例:純米大吟醸)", - "description": "この日本酒の特徴を100文字程度で説明(裏ラベルの情報があれば活用してください)", - "catchCopy": "この日本酒を一言で表現する詩的なキャッチコピー(20文字以内)", - "confidenceScore": 0から100の整数, - "flavorTags": ["フルーティ", "辛口"], - "tasteStats": { - "aroma": 3, - "sweetness": 3, - "acidity": 3, - "bitterness": 3, - "body": 3 - } -} - -**tasteStatsの説明 (1-5の整数)**: -- aroma: 香りの強さ -- sweetness: 甘み -- acidity: 酸味 -- bitterness: ビター感/キレ -- body: コク・ボディ - -読み取れない情報は null を返してください。 -JSONのみを返し、他の文章は含めないでください。 -'''; - - final parts = [TextPart(prompt)]; - - for (final path in imagePaths) { - final bytes = await File(path).readAsBytes(); - // Simple mime type assumption, Gemini is lenient - parts.add(DataPart('image/jpeg', bytes)); - debugPrint('Loaded image: ${(bytes.length / 1024).toStringAsFixed(1)}KB'); - } - - final content = [Content.multi(parts)]; - - // API呼び出し - _lastApiCallTime = DateTime.now(); // 呼び出し時刻を記録 - final response = await _model.generateContent(content); - final text = response.text ?? ''; - - // トークン使用量をログ出力(デバッグ用) - if (response.usageMetadata != null) { - debugPrint('Token usage - Prompt: ${response.usageMetadata!.promptTokenCount}, ' - 'Response: ${response.usageMetadata!.candidatesTokenCount}, ' - 'Total: ${response.usageMetadata!.totalTokenCount}'); - } - - // Parse JSON (remove markdown code blocks if present) - final jsonText = text.trim() - .replaceAll('```json', '') - .replaceAll('```', '') - .trim(); - - final Map json = jsonDecode(jsonText); - - return SakeAnalysisResult.fromJson(json); - - } catch (e) { - debugPrint('Gemini API error: $e'); - - // レート制限エラーの詳細な処理 - final errorString = e.toString().toLowerCase(); - if (errorString.contains('429') || errorString.contains('quota') || errorString.contains('resource_exhausted')) { - // 具体的なエラーメッセージを返す - if (errorString.contains('quota')) { - throw Exception('AI使用制限に達しました。\n' - '無料版は1分間に15回までの制限があります。\n' - '1〜2分後に再度お試しください。'); - } else { - throw Exception('APIレート制限エラー(429)。\n' - '画像解析の頻度が高すぎます。\n' - '数分後に再度お試しください。'); - } - } - - // その他のエラー - rethrow; - } - } - + /// OCRテキストと画像のハイブリッド解析 Future analyzeSakeHybrid(String extractedText, List imagePaths) async { + final prompt = ''' +以下のOCR抽出テキストと添付の日本酒ラベル画像を組み合わせて分析してください。 +OCRの性質上、テキストには誤字や脱落が含まれますが、添付の画像で実際の表記を確認し、正しい情報を推測・補完してください。 + +テキストで断片的な情報があれば、画像で全体のバランスを見て正式な商品名を特定してください。 + +抽出テキスト: +""" +$extractedText +""" + +以下の情報をJSON形式で返してください: +{ + "name": "銘柄名", + "brand": "蔵元名", + "prefecture": "都道府県名", + "type": "特定名称", + "description": "特徴(100文字)", + "catchCopy": "キャッチコピー(20文字)", + "confidenceScore": 0-100, + "flavorTags": ["タグ"], + "tasteStats": {"aroma":3,"sweetness":3,"acidity":3,"bitterness":3,"body":3}, + "alcoholContent": 15.5, + "polishingRatio": 50, + "sakeMeterValue": 3.0, + "riceVariety": "山田錦", + "yeast": "きょうかい9号", + "manufacturingYearMonth": "2023.10" +} +'''; + + return _callProxyApi(imagePaths: imagePaths, customPrompt: prompt); + } + + /// テキストのみの解析 (画像なし) + Future analyzeSakeText(String extractedText) async { + final prompt = ''' +以下のOCRで抽出された日本酒ラベルのテキスト情報を分析してください。 +誤字やノイズが含まれることが多いですが、文脈から積極的に正しい情報を推測・補完してください。 + +抽出テキスト: +""" +$extractedText +""" + +以下の情報をJSON形式で返してください: +{ + "name": "銘柄名", + "brand": "蔵元名", + "prefecture": "都道府県名", + "type": "特定名称", + "description": "特徴(100文字)", + "catchCopy": "キャッチコピー(20文字)", + "confidenceScore": 0-100, + "flavorTags": ["タグ"], + "tasteStats": {"aroma":3,"sweetness":3,"acidity":3,"bitterness":3,"body":3}, + "alcoholContent": 15.5, + "polishingRatio": 50, + "sakeMeterValue": 3.0, + "riceVariety": "山田錦", + "yeast": "きょうかい9号", + "manufacturingYearMonth": "2023.10" +} +'''; + + return _callProxyApi(imagePaths: [], customPrompt: prompt); + } + + /// 共通実装: ProxyへのAPIコール + Future _callProxyApi({ + required List imagePaths, + String? customPrompt, + }) async { try { - // レート制限対策 + // 1. レート制限 (クライアント側連打防止) if (_lastApiCallTime != null) { final elapsed = DateTime.now().difference(_lastApiCallTime!); if (elapsed < _minApiInterval) { await Future.delayed(_minApiInterval - elapsed); } } - - if (extractedText.isEmpty || imagePaths.isEmpty) throw Exception("テキストまたは画像がありません"); - - debugPrint('Analyzing hybrid (Text: ${extractedText.length} chars, Images: ${imagePaths.length})...'); - - final prompt = ''' -以下のOCR抽出テキストと添付の日本酒ラベル画像を組み合わせて分析してください。 -OCRの性質上、テキストには「Data 29」が「Daia 2Y」になるような誤字や脱落が含まれますが、 -**添付の画像で実際の表記を確認し、正しい情報を推測・補完**してください。 - -特に以下の点に注目して分析してください: -1. **銘柄名・特定名称**: テキストで断片的な情報(例:"KIMOTO")があれば、画像で全体のバランスを見て正式な商品名(例:"KIMOTO 35")を特定してください。 -2. **信頼度**: テキストと画像の両方があるため、**高い信頼度(90以上)**を目指してください。矛盾がある場合は画像の情報を優先してください。 - -抽出テキスト: -""" -$extractedText -""" - -以下の情報をJSON形式で返してください: - -{ - "name": "銘柄名(例:獺祭 純米大吟醸)", - "brand": "蔵元名(例:旭酒造)", - "prefecture": "都道府県名(例:山口県)", - "type": "種類(例:純米大吟醸)", - "description": "この日本酒の特徴を100文字程度で説明(裏ラベルの情報があれば活用してください)", - "catchCopy": "この日本酒を一言で表現する詩的なキャッチコピー(20文字以内)", - "confidenceScore": 0から100の整数, - "flavorTags": ["フルーティ", "辛口"], - "tasteStats": { - "aroma": 3, - "sweetness": 3, - "acidity": 3, - "bitterness": 3, - "body": 3 - } -} - -**tasteStatsの説明 (1-5の整数)**: -- aroma: 香りの強さ -- sweetness: 甘み -- acidity: 酸味 -- bitterness: ビター感/キレ -- body: コク・ボディ - -JSONのみを返し、他の文章は含めないでください。 -'''; - - final parts = [TextPart(prompt)]; - - // 画像は「確認用」なので1枚目(通常表ラベル)だけでも効果的だが、 - // 念のためすべて送る(トークン節約のためリサイズしてから送るのが理想だが今回はそのまま送る) - for (final path in imagePaths) { - final bytes = await File(path).readAsBytes(); - parts.add(DataPart('image/jpeg', bytes)); - } - - final content = [Content.multi(parts)]; - - // API呼び出し _lastApiCallTime = DateTime.now(); - final response = await _model.generateContent(content); - final text = response.text ?? ''; - // トークン使用量をログ出力 - if (response.usageMetadata != null) { - debugPrint('Token usage (Hybrid) - Prompt: ${response.usageMetadata!.promptTokenCount}, ' - 'Response: ${response.usageMetadata!.candidatesTokenCount}, ' - 'Total: ${response.usageMetadata!.totalTokenCount}'); + // 2. 画像をBase64変換 + List base64Images = []; + for (final path in imagePaths) { + final bytes = await File(path).readAsBytes(); + final base64String = base64Encode(bytes); + base64Images.add(base64String); + debugPrint('Encoded image: ${(bytes.length / 1024).toStringAsFixed(1)}KB'); } - final jsonText = text.trim() - .replaceAll('```json', '') - .replaceAll('```', '') - .trim(); - - final Map json = jsonDecode(jsonText); + // 3. デバイスID取得 + final deviceId = await DeviceService.getDeviceId(); + debugPrint('Device ID: $deviceId'); - return SakeAnalysisResult.fromJson(json); + // 4. リクエスト作成 + final requestBody = jsonEncode({ + "device_id": deviceId, + "images": base64Images, + "prompt": customPrompt, + }); + + debugPrint('Calling Proxy: $_proxyUrl'); + + // 5. 送信 + final response = await http.post( + Uri.parse(_proxyUrl), + headers: {"Content-Type": "application/json"}, + body: requestBody, + ).timeout(const Duration(seconds: 45)); // 画像アップロード含むため長めに + + // 6. レスポンス処理 + if (response.statusCode == 200) { + // 成功時のレスポンス形式: { "success": true, "data": {...}, "usage": {...} } + final jsonResponse = jsonDecode(utf8.decode(response.bodyBytes)); + + if (jsonResponse['success'] == true) { + final data = jsonResponse['data']; + if (data == null) throw Exception("サーバーからのデータが空です"); + + // 使用状況ログ + if (jsonResponse['usage'] != null) { + final usage = jsonResponse['usage']; + debugPrint('API Usage: ${usage['today']}/${usage['limit']}'); + } + + return SakeAnalysisResult.fromJson(data); + } else { + // Proxy側での論理エラー (レート制限超過など) + throw Exception(jsonResponse['error'] ?? '不明なエラーが発生しました'); + } + } else { + // HTTPエラー + debugPrint('Proxy Error: ${response.statusCode} ${response.body}'); + throw Exception('サーバーエラー (${response.statusCode}): ${response.body}'); + } } catch (e) { - _handleError(e); + debugPrint('Proxy Call Failed: $e'); + // エラーメッセージを整形 + final errorMsg = e.toString().toLowerCase(); + if (errorMsg.contains('limit') || errorMsg.contains('上限')) { + throw Exception('本日のAI解析リクエスト上限に達しました。\n明日またお試しください。'); + } rethrow; } } - - Future analyzeSakeText(String extractedText) async { - try { - // レート制限対策 - if (_lastApiCallTime != null) { - final elapsed = DateTime.now().difference(_lastApiCallTime!); - if (elapsed < _minApiInterval) { - await Future.delayed(_minApiInterval - elapsed); - } - } - - if (extractedText.isEmpty) throw Exception("テキストが抽出できませんでした"); - - debugPrint('Analyzing text (${extractedText.length} chars)...'); - - final prompt = ''' -以下のOCRで抽出された日本酒ラベルのテキスト情報を分析してください。 -OCRの性質上、誤字やノイズが含まれることが多いですが、**文脈から積極的に正しい情報を推測・補完**してください。 - -特に以下の点に注目して分析してください: -1. **銘柄名・蔵元名**: 既知の銘柄(例: 「土田」「Kimoto」→「土田 生酛」)が見つかれば、他のノイズは無視して**高い信頼度(80以上)**をつけてください。 -2. **英語/ローマ字表記**: 日本語と併記されている場合、英語表記も重要なヒントとして活用してください。 -3. **スペック**: 特定名称(純米、吟醸など)や精米歩合などの数字を優先的に拾ってください。 - -抽出テキスト: -""" -$extractedText -""" - -以下の情報をJSON形式で返してください: - -{ - "name": "銘柄名(例:獺祭 純米大吟醸)", - "brand": "蔵元名(例:旭酒造)", - "prefecture": "都道府県名(例:山口県)", - "type": "種類(例:純米大吟醸)", - "description": "この日本酒の特徴を100文字程度で説明(裏ラベルの情報があれば活用してください)", - "catchCopy": "この日本酒を一言で表現する詩的なキャッチコピー(20文字以内)", - "confidenceScore": 0から100の整数, - "flavorTags": ["フルーティ", "辛口"], - "tasteStats": { - "aroma": 3, - "sweetness": 3, - "acidity": 3, - "bitterness": 3, - "body": 3 - } -} - -**tasteStatsの説明 (1-5の整数)**: -- aroma: 香りの強さ -- sweetness: 甘み -- acidity: 酸味 -- bitterness: ビター感/キレ -- body: コク・ボディ - -JSONのみを返し、他の文章は含めないでください。 -'''; - - final content = [Content.text(prompt)]; - - _lastApiCallTime = DateTime.now(); - final response = await _model.generateContent(content); - final text = response.text ?? ''; - - if (response.usageMetadata != null) { - debugPrint('Token usage (Text) - Prompt: ${response.usageMetadata!.promptTokenCount}, ' - 'Response: ${response.usageMetadata!.candidatesTokenCount}, ' - 'Total: ${response.usageMetadata!.totalTokenCount}'); - } - - final jsonText = text.trim() - .replaceAll('```json', '') - .replaceAll('```', '') - .trim(); - - final Map json = jsonDecode(jsonText); - - return SakeAnalysisResult.fromJson(json); - - } catch (e) { - _handleError(e); - rethrow; - } - } - - void _handleError(Object e) { - debugPrint('Gemini API Error: $e'); - final errorString = e.toString().toLowerCase(); - if (errorString.contains('429') || errorString.contains('quota') || errorString.contains('resource_exhausted')) { - if (errorString.contains('quota')) { - throw Exception('AI使用制限に達しました。\n' - '無料版は1分間に15回までの制限があります。\n' - '1〜2分後に再度お試しください。'); - } else { - throw Exception('APIレート制限エラー(429)。\n' - '画像解析の頻度が高すぎます。\n' - '数分後に再度お試しください。'); - } - } - } } // Analysis Result Model @@ -342,6 +188,14 @@ class SakeAnalysisResult { final int? confidenceScore; final List flavorTags; final Map tasteStats; + + // New Fields + final double? alcoholContent; + final int? polishingRatio; + final double? sakeMeterValue; + final String? riceVariety; + final String? yeast; + final String? manufacturingYearMonth; SakeAnalysisResult({ this.name, @@ -353,6 +207,12 @@ class SakeAnalysisResult { this.confidenceScore, this.flavorTags = const [], this.tasteStats = const {}, + this.alcoholContent, + this.polishingRatio, + this.sakeMeterValue, + this.riceVariety, + this.yeast, + this.manufacturingYearMonth, }); factory SakeAnalysisResult.fromJson(Map json) { @@ -373,6 +233,12 @@ class SakeAnalysisResult { confidenceScore: json['confidenceScore'] as int?, flavorTags: (json['flavorTags'] as List?)?.map((e) => e.toString()).toList() ?? [], tasteStats: stats, + alcoholContent: (json['alcoholContent'] as num?)?.toDouble(), + polishingRatio: (json['polishingRatio'] as num?)?.toInt(), + sakeMeterValue: (json['sakeMeterValue'] as num?)?.toDouble(), + riceVariety: json['riceVariety'] as String?, + yeast: json['yeast'] as String?, + manufacturingYearMonth: json['manufacturingYearMonth'] as String?, ); } } diff --git a/lib/widgets/home/home_empty_state.dart b/lib/widgets/home/home_empty_state.dart index b2cdf88..241139a 100644 --- a/lib/widgets/home/home_empty_state.dart +++ b/lib/widgets/home/home_empty_state.dart @@ -2,7 +2,12 @@ import 'package:flutter/material.dart'; import 'package:lucide_icons/lucide_icons.dart'; class HomeEmptyState extends StatelessWidget { - const HomeEmptyState({super.key}); + final bool isMenuMode; + + const HomeEmptyState({ + super.key, + this.isMenuMode = false, + }); @override Widget build(BuildContext context) { @@ -12,10 +17,12 @@ class HomeEmptyState extends StatelessWidget { child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Icon(LucideIcons.wine, size: 100, color: isDark ? Colors.grey[600] : Theme.of(context).primaryColor.withValues(alpha: 0.5)), + isMenuMode + ? Icon(LucideIcons.scrollText, size: 80, color: isDark ? Colors.grey[600] : Theme.of(context).primaryColor.withValues(alpha: 0.5)) + : const Text('🍶', style: TextStyle(fontSize: 80)), const SizedBox(height: 16), Text( - 'まだ日本酒を登録していません', + isMenuMode ? 'お品書きに載せる日本酒がありません' : '日本酒のラベルを撮ってみましょう', style: Theme.of(context).textTheme.titleLarge?.copyWith( color: isDark ? Colors.grey[400] : Colors.grey[700], fontWeight: FontWeight.bold @@ -23,7 +30,9 @@ class HomeEmptyState extends StatelessWidget { ), const SizedBox(height: 8), Text( - 'カメラボタンから「瞬撮」してみましょう!\n長押しでギャラリーからも追加できます', + isMenuMode + ? 'まずはホーム画面に戻って、\n日本酒を登録してください' + : '右下のカメラボタンから「瞬撮」できます!\n長押しでギャラリーから追加もできます', textAlign: TextAlign.center, style: Theme.of(context).textTheme.bodyMedium?.copyWith( color: isDark ? Colors.grey[500] : Colors.grey[600], diff --git a/lib/widgets/map/pixel_japan_map.dart b/lib/widgets/map/pixel_japan_map.dart deleted file mode 100644 index 4dfd469..0000000 --- a/lib/widgets/map/pixel_japan_map.dart +++ /dev/null @@ -1,87 +0,0 @@ -import 'package:flutter/material.dart'; -import '../../models/maps/japan_map_data.dart'; -import '../../theme/app_theme.dart'; - -class PixelJapanMap extends StatelessWidget { - final Set visitedPrefectures; - final Function(String prefecture)? onPrefectureTap; - - const PixelJapanMap({ - super.key, - required this.visitedPrefectures, - this.onPrefectureTap, - }); - - @override - Widget build(BuildContext context) { - // Determine grid dimensions - final rows = JapanMapData.gridLayout.length; - final cols = JapanMapData.gridLayout[0].length; - - // Fixed base cell size for drawing - FittedBox will scale it to screen - // Increased to 32.0 for better touch targets (Hit Box), visual size will be smaller - const double touchSize = 32.0; - const double visualSize = 22.0; // Slightly larger for visibility - const double gap = 0.0; // Gap is now handled by padding inside cell - - final totalWidth = cols * (touchSize + gap); - final totalHeight = rows * (touchSize + gap); - - return SizedBox( - width: totalWidth, - height: totalHeight, - child: Column( - children: JapanMapData.gridLayout.map((row) { - return Row( - mainAxisAlignment: MainAxisAlignment.center, - children: row.map((prefId) { - return _buildCell(context, prefId, touchSize, visualSize); - }).toList(), - ); - }).toList(), - ), - ); - } - - Widget _buildCell(BuildContext context, int prefId, double touchSize, double visualSize) { - if (prefId == 0) { - return SizedBox(width: touchSize, height: touchSize); - } - - final prefName = JapanMapData.prefectureNames[prefId] ?? ''; - final isVisited = visitedPrefectures.any((p) => p.startsWith(prefName.replaceAll(RegExp(r'[都道府県]'), ''))); - - Color color; - if (isVisited) { - color = AppTheme.posimaiBlue; - } else { - final regionId = JapanMapData.getRegionId(prefId); - color = (regionId % 2 == 0) ? Colors.grey[200]! : Colors.grey[300]!; - } - - return GestureDetector( - behavior: HitTestBehavior.opaque, // Ensure touches on transparent padding are caught - onTap: () { - if (prefName.isNotEmpty && onPrefectureTap != null) { - onPrefectureTap!(prefName); - } - }, - child: Container( - width: touchSize, - height: touchSize, - alignment: Alignment.center, - child: Tooltip( - message: prefName, - child: Container( - width: visualSize, - height: visualSize, - decoration: BoxDecoration( - color: color, - borderRadius: BorderRadius.circular(visualSize * 0.15), - ), - ), - ), - ), - ); - } -} diff --git a/lib/widgets/map/prefecture_tile_map.dart b/lib/widgets/map/prefecture_tile_map.dart index e0eed6d..449b0a7 100644 --- a/lib/widgets/map/prefecture_tile_map.dart +++ b/lib/widgets/map/prefecture_tile_map.dart @@ -1,8 +1,11 @@ import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../models/maps/prefecture_tile_layout.dart'; +import '../../models/maps/japan_map_data.dart'; import '../../theme/app_theme.dart'; +import '../../providers/ui_experiment_provider.dart'; -class PrefectureTileMap extends StatelessWidget { +class PrefectureTileMap extends ConsumerWidget { final Set visitedPrefectures; final Function(String) onPrefectureTap; final double tileSize; @@ -17,7 +20,9 @@ class PrefectureTileMap extends StatelessWidget { }); @override - Widget build(BuildContext context) { + Widget build(BuildContext context, WidgetRef ref) { + final isMapColorful = ref.watch(uiExperimentProvider).isMapColorful; + // 1. Determine Grid Bounds int maxCol = 0; int maxRow = 0; @@ -44,20 +49,60 @@ class PrefectureTileMap extends StatelessWidget { top: pos.row * (tileSize + gap), width: pos.width * tileSize + (pos.width - 1) * gap, height: pos.height * tileSize + (pos.height - 1) * gap, - child: _buildTile(context, prefName, isVisited), + child: _buildTile(context, prefName, isVisited, isMapColorful), ); }).toList(), ), ); } - Widget _buildTile(BuildContext context, String prefName, bool isVisited) { + static const Map regionColors = { + 1: Color(0xFF6A7FF0), // Hokkaido: Blue + 2: Color(0xFF58C2F1), // Tohoku: Cyan + 3: Color(0xFF39D353), // Kanto: Green + 4: Color(0xFF36D3AD), // Chubu: Emerald + 5: Color(0xFFAEDA38), // Kinki: YellowGreen + 6: Color(0xFFE6D33C), // Chugoku: Yellow + 7: Color(0xFFF9A057), // Shikoku: Orange + 8: Color(0xFFFF7B7B), // Kyushu: Pink + }; + + Widget _buildTile(BuildContext context, String prefName, bool isVisited, bool isColorful) { final isDark = Theme.of(context).brightness == Brightness.dark; - // Color Logic - final baseColor = isVisited ? AppTheme.posimaiBlue : (isDark ? Colors.grey[800]! : Colors.grey[300]!); - final textColor = isVisited ? Colors.white : (isDark ? Colors.grey[400] : Colors.grey[700]); - final borderColor = isDark ? Colors.grey[700]! : Colors.white; + // Find Region ID for coloring + int prefId = 0; + JapanMapData.prefectureNames.forEach((k, v) { + if (v.contains(prefName)) prefId = k; + }); + final regionId = JapanMapData.getRegionId(prefId); + final regionColor = regionColors[regionId] ?? Colors.grey; + + Color baseColor; + Color textColor; + Color borderColor; + BoxBorder? border; // Use BoxBorder specifically + + if (isColorful) { + // --- Colorful Mode --- + if (isVisited) { + baseColor = regionColor; + textColor = Colors.white; + borderColor = Colors.transparent; // No border needed for filled + border = null; + } else { + baseColor = isDark ? Colors.grey[900]! : Colors.grey[100]!; + textColor = isDark ? Colors.grey[600]! : Colors.grey[400]!; + borderColor = regionColor.withOpacity(0.6); + border = Border.all(color: borderColor, width: 2); + } + } else { + // --- Classic Mode --- + baseColor = isVisited ? AppTheme.posimaiBlue : (isDark ? Colors.grey[800]! : Colors.grey[300]!); + textColor = isVisited ? Colors.white : (isDark ? Colors.grey[400]! : Colors.grey[700]!); + borderColor = isDark ? Colors.grey[700]! : Colors.white; + border = Border.all(color: borderColor, width: 1); // Subtle inner border + } return Material( color: baseColor, @@ -69,11 +114,11 @@ class PrefectureTileMap extends StatelessWidget { alignment: Alignment.center, decoration: BoxDecoration( borderRadius: BorderRadius.circular(6), - border: Border.all(color: borderColor, width: 1), // Subtle inner border + border: border, ), child: Text( prefName, - style: TextStyle( + style: Theme.of(context).textTheme.labelSmall?.copyWith( color: textColor, fontSize: 12, // Small but legible fontWeight: FontWeight.bold, diff --git a/lib/widgets/sake_radar_chart.dart b/lib/widgets/sake_radar_chart.dart index b498d50..bddf805 100644 --- a/lib/widgets/sake_radar_chart.dart +++ b/lib/widgets/sake_radar_chart.dart @@ -47,7 +47,7 @@ class SakeRadarChart extends StatelessWidget { borderData: FlBorderData(show: false), radarBorderData: const BorderSide(color: Colors.transparent), titlePositionPercentageOffset: 0.2, - titleTextStyle: TextStyle( + titleTextStyle: Theme.of(context).textTheme.labelSmall?.copyWith( color: Theme.of(context).brightness == Brightness.dark ? Colors.orange[100] // Light orange for labels : primaryColor, diff --git a/lib/widgets/settings/backup_settings_section.dart b/lib/widgets/settings/backup_settings_section.dart index b6374da..97fc585 100644 --- a/lib/widgets/settings/backup_settings_section.dart +++ b/lib/widgets/settings/backup_settings_section.dart @@ -223,7 +223,7 @@ enum _BackupState { idle, signingIn, signingOut, backingUp, restoring } color: currentUser != null ? Colors.green : (isDark ? Colors.orange[300] : Theme.of(context).primaryColor), ), title: Text(currentUser == null ? 'Googleアカウント連携' : currentUser.email), - subtitle: Text(currentUser == null ? 'Google Driveと連携してバックアップ' : 'Google Driveにバックアップを保存できます'), + subtitle: currentUser == null ? const Text('Google Driveにバックアップ') : null, trailing: (_state == _BackupState.signingIn || _state == _BackupState.signingOut) ? const SizedBox(width: 24, height: 24, child: CircularProgressIndicator(strokeWidth: 2)) : ElevatedButton( diff --git a/models.txt b/models.txt new file mode 100644 index 0000000000000000000000000000000000000000..f690edc313423140e2f9cd5c66867e0c988be477 GIT binary patch literal 46436 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 H5TRtWm-e38+E!9&FKx6t8Z>pZ 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ð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

^lDBNm$f1 zPUB4pYyWHWckD812&Kt{U7zudOX#8&Yl~{>l84iJ63XE93^K-Sfp06?2B|xue{u*!YnJv&spC;}t9kkVY{a-Jur>bU0yLCR9m7NwJ zbqo`mDHG;yd{e2+qLms}&R9o7Ao7H&rd6sQ1 zM)jBrkzPA1#L3Z9Exm0v_EHkML!bJk{fw|Zot!(n)tmm=g=aP=n$#XJe6`THt5OnL z5$~}#duh+T9xAi{hRK@OthF=n7=N*OxA5ai?qgGvxj|F5JpplDB5hhq?WCh(DQwG@ zc+ZQI{TuR=PwtR%Zst(1Ma?1k@y1ihzi5|o zx^$`$S6xHDwrV#kdray2NPlmRG6)F&J}$s4eoc{8@j|+!q8@KpvU*XlNKRVFpykc^ zNAuS%AB3ILk*~H+9<;p63nD8Fp$K z$)?TJRMFgfe=HSWd25qY_`@YaqMegHj)~8=(7HaJDQE4Sd6$}>R+ z(6i=2;aRmm7KKhv05Nr0IZnbKXQo!XH+JsV~Sa6l0I?Pu(F zOfKKvvUGB9pEKH6nmPMwL`&g$rG+IhA1{l56O zNe1kDbu|vRCfvI$m!Lbk>E1oRs`_LBy+ZTa+kVCN-Q!t5=bP5+y_pEn8c%jpGb{Xe z{cTdK`YRI6KDs3jK1!MM+l{B}dQ;@gqVqv1A0_)LNL{ZB$R^?*N_uC`(0?Iy{av&2 zD1H56s(Q`2jF>GhnF{Xw#i^O}DGDmTm5MuiMtVs}QHtaBY82UO=c(O)jz};1{K|K> zk8Qd5ee7j;)$>?`Y%|iH0P_9G7@5N2p1C;w?OHjyC!Er0*7*I`!(`~NJ?S5vq}l&+ zclB8Ci=QLqtRAjn&&kWH1L=RW#ZT;- z@!f+hZLx6!)~aedk6i8{8OJ;P39u7!7LYnnsbBZ9IMbeUq3!pS@NJj)_T zHN1?@@;Y<1C7=I?0`>Z(v#wo=g3zs&)ojbxQNE*nIpoAdSxd~6=2YYQ`wt!n43rUV z3{+Gb044f6EQC66ap*0&tvh#Kng1zFm8Ht|iFz^UG*JYE0^X^ zWX(%1-;O%^j>FKEdC#SD`RXC+(p&ws>yX#I)#Cl|cPhjX2_<%zAdm$8#yjC-T#MofNQdW}5kU%AkSxtZ~@vhpGJx3?_D zwc9Ti`O)=apY#RSIdgTX%Sij?(PJP8zt9i=g(st$EYqL^)$$e@Rmjr z@v)_y!>*Q}i|)%QrT(~q-pS~xV43F9zj&?5+jx%ntw9N|)@998i#zSLW`gk^-Mt+& z-;JJ@s>@g}n^>7oQQpd2+0GkEzCF-;e16&WrEgadI(1N!7rmGoXh*dvE-olyTau<;6jl}BxQ$%hDX?K%@Ez@_AC_jyl!7-3VvE| zoULs`fN?Pp=}B}L?>8sE#bEB;&2Q3Pld28zO03fNJA=Sg>(3&t12_w(C9&#rTmKQ2w+>}RUV4V_ zCmG&r{aQY|8%G=;xm%NuJ+6^#+@n243beMkkzw`JdRd5t3{D-jE)P9!7K0K{l1vZ> z*N4GVSQV<<$c`D(zGrVM;r_tewj=^nA$vlS?TQ*IH-FA7{(fHnX(vrS`!4Aloqu@V z4LjV!v%4+{?1{j^Jt6THZ-uQLB5oe`l=j@>UfJ@(PbvmOnZ=0p+Ow;TCYNKK zr?!GRT+?s=NHCO3pZNPZlY_=nk8dh8%GS+c6gPE%MzxHm?6%DnQJizC10c zqABXWVHcx85v^OLZNQSFa{Xfn<^9b1vXoCG!~1MpHp`Eup>-mwFAZ$*TC?mte&#c|5uhP; z>_d9hk^-R`-tnI9W`F*&2vB`iTG~>oSKF6vMy359q$=0#rRSx3vLyRdRC3G7WUrUY zg8xo+=^3aDIsf-^ODU=U-Mjx4l*NGl|A13*m)ddFuSN{td>J9`DiU0XDM&;g*F=_8 zUMIaqx_(RaRn+eYLZGxk@VQu^e5ME>bvTAk6R=zK%^fF=bN2yvVBg~KppjzWIlJT4 zG-mH60dczdGC_KS$tA1C{BFhpetJkFDOjozMOq4Q-L4Mq0W9J)q;#DeSyVkYYcnlm z)93clm9Nsvw^zZe9pFMJDRn&WXy?S(pz`FuWEgVcN5<`K8(%-|>UL^Qfd^6#$^kU-V#?P}GWAqDM5`kOT ze3=*&OS++rI(r@R*uI&76pOCDh^jp*wa-1~XPt_h8Vg;Wh>~fW=X_z?_=4YYcrR9H z`7;|>Gv?i2L2L5IiA_^mx6q}&U8pM|o<-cH+hBewWLAii^9#B9I4CfII@B^`vr$-vY7 zRj83Uehq}wMn^tfmp_lr9yj{1dOrsTQDJTXQnF`6eBe#TW>>oDx#>ZR(e7%%M~>AM z4CIs5vrVgYa~qj~&HDE3o0$88v$1;X4TfQVJ2v_)L!Ocz!1Fo@kzN@|rLW33cKK@p zia~kSzvgp6Jmb|;&Xn71d!IcKyOyMt9uaF%t1i`o0eWfhVb&JxibKNya59)}^wedn zFA<#B%7Jw;XEqk1(XyA69@#$VE4t&5dKFj|tRy`Et*lE>*@r5)lIP5juT%@D`iU0R z8h|v>fky#j z%=&W|2#Jm2HTKqisFA4p@s;MIk(Ir-Z;#lgh3z8-?xdnSxchs3MDWq0sGw&|l*bX|KjOLB3^W9hG?8Zi{t9`D(!*&vV@7(p~{Z@x@`M$o1E zFnJn{;EI5KkL1rO2)0~0$XC#s5|NyrHZg3sjh>zZ@rJ`}Gsxq^O}>XEqCG++n3hRE z9vBD$S5oGRB9$4Xx8A(zb!xkAj(I&^?cTznPfX8`8cP?sFM#$Ano^fOv<_R9vG>e9 zq21QaZ>m}DAgWGA^Q9~XE0fOyyPAHeoSWSUkPoCj|8aRveIv9zP)~}r0&xR?=)KR(T7SDfC>6v36}yV zRiAC9CRIp?EOd_DL5m-+qBk>({LvEC!;su)VmAmt2LJ~&-GzF2E|jFTGz?LYqTaD4 zYbPN=bb>X);#+Quz=H0X7ZL|{$65{p2>qN@K z4Yagcg)S6(qKN<#8luJreq_90JZ}1H#DO^8CD(ulE>ZL&x=u?b(bwNZl40aE^iry1 zJa*|0_#!$o^l`8#6@qOO_Jbz~K!QR!O2fqkg=xSGSyi%%I)01yUok_VlzD3^!_h<` zy8G{6K+SA#40QU!NnM)D(22bFI2=8Af-#)Qq zoE?qUMCXWcfOs6HAv(XUga=I^)64)=%qOQ6&~zEN^z28Au@3ORK6W7Z8Fh6khd=LX zvyfj|1BCOQt$>FSJp$nI3t(~WJBn@(1t_HT*V!7PPOg%=-g!i6{ENh(1)C-v2(igv zAfR#Nv+caSQ@;uf2ebJCcnZM%hmz8ALuoMbS64}#65J%>&&ZFH6R7?|dJ};IA-XrT zDyh9Oc9J-+n1SnXFu>1GJyG@LTd+O#V7ija@4E+%11mu3YpiY8#rrCn_`PvDZj&%U z$h3_^{$FxG1Z`xha^cxeX|(I6d_5%_d@vf@tOWKG5^&=b5LhJ{6ni9TrUECEUOczK zc4NEj3u*sTjv=2ue7k!37mQ8hU_UXZj}QmRRtT%06&Yf#o z86hswayZwAmNgBgpc}jdy^UG%z?-*|+ySwV1BVPYkbrYxNi~?nu(DZ)&~FFDs7p5_ zVEwKdm9^9v5Gyjs3bI*A$y$}l@lcCn%Y1gxEQW#5EyW^iN#Ia$0; zu9YQq5VVAuHi#ngY|njYQ(VRZ5ID$)+*;NE@v)~pmEnysQ{P3e$`)}a%~MDQqVk@j z0PJPagsv2u>V7fFa%UDu#NL*IT;iE2$7OncW`D#@cYPH^TLW-+$6jtBo>z>GZlf1! z+zB8Rup;jkvUxX00nSmJ=N=1;Fw|2b@K{rz$(XSUjo)$+C!JJ0KWm-qfR?PQ^HT&_ z%fmfVGd~Ll^132w!Bfy*hHlZg6=6G``uByRrK9I_(#<&8$A{uX4gb=V#9ExR7^`ay zgAZVQ5LVv@#&T0T@8k{>53^9IKX}#)SYKt(j?T1%JLj!J38s8yTQj8UV7&F|Ce? z%HCf^;Qt(2Vq@9Ud!cYD+x|W!kapk(IgXj=uIE9rz;gZ9ii$|dw*DMQpo4H~Z8#wa z;+Z4B!qfw7C0{8%J6dZ_N()DCKs@9s0S9D7o6rJEYJ=#?47S56G2YRApmFe38pi<1 zI>?Vkocykmb2-X7Qhk+@^T&gQ*Ik6Kb-PFY zwX^8F88`d7+twOb$;~&O+FJ%cjR%>&d0j%ZQHf7u0Oojk5bO#-2ULSW=GKp63!A1* zU3xPLED`xQ2EY(n02esz9!WI8ptB5cmpWhu`Aw_Xq}VVR8Do#_5z9}8R((iC#dbH;ST8nG9U|Nle z2>SbGC(zaw#6CTac@YZGi(i7w9=}(ADZ676vq;?_dEF+)KN*UUzY#IIP%vErx)Kpz z`B@Hh9H=VCT7<6jj=@BB0$4=Y2ld!a zLe-TF0aH;QEw#=!lQ5Y8+7TR@J>OkSz;8%2L)C6MWpYw05&R zQo?B*KIQwYF#wM-~)H4G5JJI z6EnAzSxe5%7-)@rV2u0AV7jKDDmS67-+PJSO_dzag}cFcssND)8DoV;bH3Q@fg6W2GuE+o6Js|#>({Jct8cX5GXv2VtqY2E zYI7&CP=V+v$!&6&xY>+V6TrBH33JgH#~Fkp<^zw=()B#@fM7D$(;q3_ru3%p3g%Sh zI1TDcO@giMBIDL6fscOw;l|qcFbe>3G3T6#+PsWy6FJ1;O)m( zUz|j0wb~et!IY5vzR@QmKTnxhICkDfaOFD&qEcM|)Q{KkG3|Mh)hb0R{>KJXu`TJG zo)AKx%(vQd6<+~(9K|I0H)3rFX&eSyTasPTby+p%fP1SasdG~Ln@EGNXQ$id$3y`7 zg}nC=)RHD9aYT0?&a=hDzjlv)c1{_%^Sskwm0uxPR1tdi8EL?rtQ1gvVc%1;xeVP`G@sp95rmwZ(a#r3C`hSk ze0G4u7Z(3OHhR49&Gn%elI70~W8Xb=qPBnTl%3!@0=W2lqoeLw)rKbb`$Ow76*>*w zckIrstM{hke3rHUXsd?nRp{bSJB&VrL-@z27dtEkLOB$}5`ZT(NAtlUz5HyV^EJb` zY;7Mw8bGDYu;tF0lluP6w))$;q4d86b^ZASrXc1AXewlvA;^`aoB``=6J>{tG%E`L z%$V-fS`LFDIX|gX9AQb=1Jz=W**=2p&h|$%v1cT&6{~1S%#t3u2#B2yxud+BUOC!~=T#7l_y@XoZ@?x$>bAT%d24N4r(ma)IvN3&82^+gD$_eY(VF z)291hd@r&QqwRbdFz@qOhH+upJLS}x; zpLJ~}ojQm)z+Sw{u^3)@i@l|g%!*yin(>OvfUmc{5=~4ewh5zz^2OR-%I%yb8_a*r zQeX)y;qCcpLXTXEM>%bn+V{WcLGBm+n0!`6_%S->M*_16mhWZn<;&;zNdBf`9pFmn$@yKzZug>mof*C@VBY^?S>tPx`{LbBL7v6m0(OZfI%76PKVoT-ugBV*j$EJSFQw9 z_5I9ACXx@hvf1Z{dw2xn64Vm|qx;}=t*}_=z4R8rUiBd%;^=IJQ~?ylS&7%5L=l+7 zUIrVT{dN^Dty$WDwPPF6!u)tZbHY!X&F0P=th4%=d zyyMN122N!Vy*da&K!Cy*=8AFP==hL)rjG;C<~-{rL%0yfT}Dkc(sUa~XOP;{NY&ww z95|2nQyVVRRS_DG{6!LC?aiI&XHf%(M$dDDq9iPUVA1x?B<|N@R?{~EUe&IA?gg1t zrh`m^YSu>RJKBZuC+I;LMHf$5x*nrm9x{^k$SmDP9Eu%?Q)AWpGAUP#Mq20whc@@| zUA@>S1&n}y#17cTB>&44m{y--P6g7>x$6cFiIpFL@D`Pf=752bk^X@vR>C~z2Cr#* z@QH7Y@VfgwTLoL}gWBD`M>1uN)Z~Pp3QsjC)<@1HjuOIk{x{{r6hV24p5X3b!j4mb zTSp;NMxy`DBsz(a=fg0(L;{EoNO-Q4GkEymNgOCSuI4E=H__pfiGRx9ZMKV^-elq` zOwh<1m0P07C8=WY*NK%2-65Z8VV_g}FZTX3sH!aL8b%L_s3bvA$;kwQ3P{chB1S+| zP{{}gNKQ&dBq`BM7DbYhRC1CaAWDrWaFlz!m$3SA{AgnbDwo9(0(EnUMiK4HZp*UaLCZG1 z9YTpXGR!qEghorCJN|Wj1U^vUxw-#tnEateL&f`lJVT(Tui`vyX?XZwrbj(yb*Hz0t5fjib@*P*X?`}S?i2uL*Y zh*);FtI8TyQm-MzoFBwq1-5&Uz;yQTYrX^w?kr;P4mC;ap+1ujqwW$;T_{~+XjxwQ z653HherKda$#Fof++N&iJT<2?aZDRJlt=#z6n?q4A1VPtoWG?Iwqv63TR^$uPj)a0 z$OE!jFsrJKf=n5a!!>=gB*Y+aZ4N+ph-xidhMhPERE81YVyv5vyPp~X&fwtuP<2Em znyQ&uHY5T#QTPc$)#bU>+XDjw1QOBw-iS~vyi~F_&+?C;;u)&MxknF59arI*sfQZO zS97VzZEN{e1tKXJf%_2mi!)9DRXvlM;i-@&)sZQ|-Xri6=n@b};V1!!AU_tqSxwhu zZo9sT0}A^Y!lx8u{(&)q*bWZI^kd766Chm!EZDhp}I4^g(5D4BwE@O9kmRRE(` z;A4??%44@4U%e;ox@avkQ+J%`0le_%M!Jp+Vu7=dY}hhjR$W@Mp-iE`2$^)b{OH4G zd;Eu3xvnx2g6?R-r*%ADXe|0hG!!N6->)eMDT3eKc}?jnNH)&zI~^=6BZd$6JN27@ zXt)%7Zvk=g&Hqz46HN5)L4h(h#sffVUwBxF^NFzNq7*WgzI7k ztbZKjFjVSWa5mAE1kv+F1)?($kU=Ue_!tiE{GC*L3z=jbV}wRcGFiSIjZ`_2W~ zUVLMp2qWSvq{5{DG>_V7iy+ zMr)8r7n-JMqgzZVkTDK9azT%EDS=R!*F51(@ERl9UIET1EWu-CK}JYsvESR*4y$<; z6&6?K5Rn$XKmjaX?DRdWm7ZwMxAG=T#u)yy? z9MW-0&4KWC7C7NpE*a6Vihmt<{Q2`J_2YO1SSdJ5o%s%L-FiOU?tPc#2uSaRJFSyB z@0m;3Pc%lw6b5OV;#MyKTWQK_DtuZr93@9+C{K68e@|v4tz(@CLmsja7!u+nPH6mh z(OV)<%xNn)Z@dCAShti|b?km&Xx%iiU1)^zA)@8*^`h*K+sbwJq-Tt5>tg z{Zg<^h^wg*eZr%55@`JKCy_z&kJExEqJ@ke=o{VxTx5y?BkZvw0W;TK|EDH@lFdu= zD4|Nk$5(6LlZG(P4DoSiuFY%c@TL(cscIE}k~4x{5$xF#_vCkg(}+C2#V+2QOWQFN z8X$xyxfxJhg= zk!jZM(X~Uc!CW(K7L;}ynAkVWEp@;ggYe)>wsRvEm3I|m#4HPbi{fO~TCk1y45Q{` zmEU_cn@}o3h$8atc=p{H; z52x1t{jfv39$cu{1P9xd4f?TC( z)cBD-MxQoK!;k!Ws-g1@Ih#FZ$>y90F38G#zXq#9pkTm?=CB0{qJlf{QN*B;e7LsX zMwn8bgnXR3NkC?cfp&qT2pgLyl!OqBUHJ!VB3j}*eE95@l*`{RW?r9pCoATS{GPFW z5Ev*-bJzB0UF=?{Km8J-eq7kMea6aTB@$_qAMp!ip!rO4H)+(Trd&d6RD5t|IlFMllB2CMjAQ}N8UtO zJKB>(d9!I6XidcWtI=Z`<_B<2p*mEW?s6MV)dXOKF#DrbpDfXniYQAR&v_1oi(Kk* zrC?TKKk)6_SI$NE_~y29Vls$h#RUL#a|3=H%r%&#kwiQPVxS0=j*6CD9|3GVSUz$a z;h5Wc$Z)Cq4hR!m*aC9L9|R`?38I#uS_-OUSbOnG;D=w)Xlm0F=pT zErh`ow5-48sy`9E^w{JgG`0r_$#P<}&gkqHBFsh&+IKq2Je!#35hT`|@h4&QHsVER z0MXsqZ7mHSd(Vr>AS0-fBmyWpbas$sKs~J_T^p4dLJg^VbtZ8cLiNfwKg7MnE{I zSir`P)Sv#ag3OkNs}un?0VKvwK0aRYg%6F|0yGs6WA3NBP836qo~F(JVcL_8Eu8$X zEM0aF5ZFpF5jK%*hViijMfTej^vuV?WKQHzKeXc8$b zL5IG%z{x7MHKqW~z1YpKp%ATxT`LyF0nvcktP0eb4R~&#iiW{N=|oNUzX<_@w)?w~ zOV47vI#d5a?*A5rB|cHn)`u!Te}U{NtNRZ%UkZ@tuO@2xML>}wP;b!JACp%;cdiK& z+8IJ!ph8k^`P>+=%Pj8890ruOfgfg{97J!2l5$JtiK>xUAjV5InS&8= zKJl0FAA6Uk3u6Bg)YB%|OII*s<1+N{s^+m0Say|-)e*U(C2>cjL*KCp-17hN2BulO zG`FEx>~sC&tvG2RCYmoy_7M6B2%aNHnilFBIK$p}dZeTwp5iNvG?IIh&SMNlU?q5rKfse`Zs zSkXJTm3dxZrvUnGB@RQ&YZR^hQ-|qltE*K}`76}%yN%1y@iS?dpX_;y?{1E_bUEBndTy>bq3Lndsh*mOstFy)NyO{}@J*JHW@X`s zyJ1`rd!q9*@L>!q1JwY!&jH_p2a>u8E<30_ zx}|)OBZy927C8_pz;xnov>Unzfr)Aya!v>MYvkWO={+_C4}`OX-k(ba7zD4hw6uys zK5(yOToq9{X)CbhwnrSYKgc$&@j;;i*v7HgG+y`>*i8ha1FG!E(4gpN z4%-kRZo^$5OB7~2cY%S)b00h7q}fLv!j|8EG%l?{23-Gt)G+#)|LaX4{aCJF)Jo2VIl9&DrX}t0U%p ziurpUd=uM#f!u(rqAS=K$E-4h za+Fxv4`b|j1`reUvR8y(%$++ug-(Ge3c;kXFVKDa_-V@ zP|#SHv)UwdFB3H9JvS#MBRitcOGc1Lxg$qeYh#qYaOd>eEWA3pa)6C^uk<)_l`g$N zRsLL5rz@_QJPtmHPpEZ2Zr-{SKR6oxcCQ0*7gMos^#Y$emY(9=L!KrX2`d)=dOJzp z^M!-#=$(kcQ*0#C-Nq{dmFEijw}m`-z|1XZJzb~MiRk(=aMBhC zetNg?*P=Xi2s3saP3(}6oVdN4L~89%8RWet#&Ddf{Jn0o;9+WH&_?s$kBW*uQ|0HN z_aE9kA`sYs^;kOQGBS)9udDVQ^Mi07ecb*};+B`{mfo<%X|Cg=4UO^9lxT6CCZOJq&=0338pc5dp;B+gk)35I>dAB5>249RWEl>VM$rR&$TpO~<>jV4>v_swy#3kmP>}P<@Us+bBB<7QwXVOqT|sRCO}s8qXdUmK(SF zD%>GbJ0F~-NW7QFmi9B{3RQs~LApdW&Q^R9xj^W3*wyYYz5NLpB>^HVc@3M;BXB=~ zNa!rPHG#`N*^jtLjgY$xy>VqxYwrXFgQ#)W^UaXH7D1xr7j_AI%|UbX$Cu`vA9?q+ zk&$@xqBc?;+3$FFgAPa%yt0$zd2bXR-^Xz*zT@&4#NVCogdWJeVC32(FHxR>uOhCR z(jR~Dds%(=@|6=q(w#v#tfVb|9XyWYC=PlG{QHz6yu8U@9VD6ZXi=gcUbS-4{}p?m za#JSBX43k-IX3Q=5WB<=oaqNDYZ2&E7MCrS9lcEFzlFpGf(oTyS@Wp9`!y6$!KqBrL@f?RqNdedmZB-@$h`{1Uc!YH7|Aa#Sx#`?cgi( zv{RN-6{sq3?vbD1$Fm$z4V8*+kUF;s_n9tGm_a2%Zjkq6#xFD{9p{zSC%Ng%zsuP= zve&Vi4d9fXAjEL#%%T#BUnwiSOGg{0If;we_8JeIM~iaoM*F?ytI)cPEEBpX!+>J% z$p+d(gk$qLcfysb_Ll=3-yh;e$p@NO(a$Ep;fVBPJ8ixx3fxlePjRS|84IeIu%wcSTwOp zCHI7nl;&9wC!Hq>PmA&Y*tzf`_61tPJw+Ivm~NlF08WALz3*b%9sZB+{r{f$PhV<@ z#bf~da|u;gU=9ou3F7`CA#JEtXMu_o;(%c^f@^>-5XnDZN6O`T3um!98Tj?QM@Ums z(?4-!q{Ku`EhCcRU%v(?fgRW*#3xF$$nkt7KP8Azz>2^BiPew>k^Uk|@~{&Trb5g7O(5w$@qVQG%%MHL!eya8spQvq0NM zzN8L1&@#}>*-x8y{2U7>uo|#q(H8a=@w6G{h+M~%0b+dM^S0)<8Y(DaJc*mu?Fdneu@({39@J6&KX3++@OQux1Yq5ikJx!$;QS+kceFOh zu~F?-PDb+VgBH$5j2=uMd&Z;2t=9;WQa&+}4af)~1db|j3u5F6)kKet_3I_>MFav2 zRd6>jgi=77{?th#m7=SN^XBDr9c@Io_BRqiRU>1nCqC4#KMANWfwjzb+ck!_V#Zir z+yunfY^74_uKoS-xhF;!IWOpNEl3^-L?j7;Df^!SERP$2jrl>O7#JtmpxP**yo!$j zm5N2lkBmg8NYu-Tp@Eq?xY;axSI^y%=)2#85mk@jvyL`CM_vG1c^QSQ7-L^*V)C%G74oUEuAFp*4p1J5DzidQ6}wB_`W)2i;_z9WoB6E}#Vf_S zP6yOHKlbN+0}!8CctC>ZF>hjtd9(x^TD5}GRl`6oiX;EnmIO{>DcAen=pg|nV|?w| zNBFP=+}zzYj5w2D&qGoxV%E$!&>y9AE8IB@ca{J4#dNhKh z6T9dK7E4}&@Z+MD(Hkk2R7@~NBgCxI4#nIl({V&vfazr|?ySJBP$TIGk;4$gSV?ct zs0rD_1KKQaP<}H3F7=|d2iy&U&5q2wy%rshakwQj)UA%j+8}8_fv3fOGcFd z&X~}}XxzrJro<3})S*oUpok@5vZvr*CWEPc!*eE^NuM4NtW{7SO43q6q%XHYS%uoD z!M3>hQCiTYV;X5u1cOY2Wj`-Jf89X)yO5_JE&{o-KNbI%;P2)j805JgyMXOgJmz~Mq^NQHR$iScD1Qf2jl1Q5MkUCC= zCl}^iAnsPTZSGIszlpP$XuB)a5z!`k$1)00kQ>FYs>{F!p8{OQGvPx51{f7=#4DJ> z#5R@#`c_*btE7EWS8^z!@d^6L1XUZ6sseq`cyspYEQq$wg&z2bmSQ)TCcB0vKD%Wo zdJ>Y8qtI0R4tBqcEc_xLF|Uq5-`cWJmbGn{HX(|YL50iUwGyS65*$FZzS1cI(WCvf zhU4}IXJ(ARCQ&VP%@>9KZn0#@ri^; zHP%%B7*T|%8sEevA#n{-nT<0epl7I}y4x_MY^4HoK0@d3w)(dUfT7dNh+&b)`aPkN z9qf01(q~z8UG=7*v1QDnCBeB-%g3n}yWS;AzDP0KV2fsfdZRXSjn=_3cYp%-R3mUe zC=rD}f-PCHI{lCktjzeej`O%SmH_}t7X+p0rF*iSdB-01q?%%YhdgF>|{$L zY;k$zW`YYskb4$Ff`W)zGrA9>S`d>l=;FLwP}g#1?J>w1No=AG<{b z8-)>o0z(MfPc-omyhD&&cmBLe=1H_}QWk=7U=FBce$?mDEFOFko)J+@zPK(oKPi25 z%xr^W(VUUO*!RLbTi9os-SlBCN7QZ39C@DBGbvJ#`Yh-3o+AZ!t#&l6WZhV^%z4** z{`k4n=H@5D8suB(=@+)Bs*+tZGGQEE*eW4dM_u>n)2F)er8~3!OZ+1<3EX~dQ8Tii zKZl-uqgmoEgNNe<;7kutl(Mq&Cj{%4D--;s9za)Yst&5RiL7Afpq=T%Z-m`OaSMIXW(UBk;=ol@} z`3Y4r`dz!czdSxPi0{?tuum-5MoW9uw5or6{2@xkz@%kAp~^%Xe%`oZ%-{c`A*Yg} zOvKZtyVrpl8dmtzn~k6#-QVBu2?Mh;fx0a&B0 zDk>_{s6ilnD?7=LCK#hag7?nt;5KlU7~XGz3n0C{IyQkwO5$bs#i4N5(<3*%-6$f%VA5 zLb<}DC#9uXTHU1>nw$&{Sw8e)q-W{|fR9ya8g@96vtk*7 z=wJZVyh{@EfV2idV!<@&)SAB#(Bs$2rGp0&1V3)uOH-3Xh=bMvu9av2KKr!bVnSkK zd0E*eXgsr}IUpENa!9k&!Ie$M-PjgBIZ9@4)YvGhI!> zqH=~QU#F=c=DLeZNMuP|t=;i;7Mj8LftGJNapHtoV;^|tew7Eg$0(^Q{HyyxH0v_n z)}&^T$w(kxwn}Yo7Dd~kx(SwHp%)Q1x!BNf$g-lm{X)!&ouu~(d3OXOlObSIXP8mY-B%YRVK4zkSG8)MGCw-sJgrYe3#I0eOk0@7hLAAiuqX3u7%* zn4QW6N_nF6v#>BPIAto-Y|LlYF@_LC7luC9nV{)*l&;7)I5>vJu|N6)4#kjOc0M+T z+dh1b(c9bmirFG8{F8KrlP53tQiCFl-u~T^?$158QBj$HIC1RjN2y`pA@|bmu4!uivX4$X{_}>86ONo{xd5rX*i8z0pk0LxU0p2rvgYJx!+?21pt5?& z=y5EV!+MzU0+oYi7in&8Lw%eh3XLmQ-t45#QtFfE7Z9LBkJ;7vl1-j4p$1r2vvd1z z*kR@^YEv|bJ(O&1g;0{%OcHln7DhER7^y7-0|O@jy`f?#tv_w+?d`2ezhNn8iS0R^ zKV%u2{{kc4WY=cZ(bdLG==$pP?E{V*9vcCAaBO!=}7CT^bO-(yal1-y1U#yvkZ-I+%f8|u0*78&hJQLdvU$^{%Q|}*7{daMB zxvZ^CBheheY}c0-##U5}GBA)j<_w<0zaBB#T`sbORLe*CnEhD zJ39bQ47Gt}6Iqk@OiH|`$VFo)3)bJ}LjEqmf z=`RPPCP_j=>9@rq;Psn{vB`JR-he%VA1Wo92l)Fd%b^0@j##$R4xYUXl#(>pH6m88 zm)}Zqad9a`EE|2*(4{U`PWN}Y0{5$!2QYSXJcKhZ1&;6nWshm|y?gg&4bh-&O4Xf> zkuk}(7oy!mokY)#aJ^M=)XrODEo3B1OUp&X2Y+!;4dIbUo*2ktfWvpV?V%#~Q~3#e zcWeIYrdyqL@@>5qva+%`#Qy%&Nq5!PFm5~51MN7{*ACE~gY0H*ZM>h~=^V-mbOkW_ z(ubWP4u+DUsp;y*mY!HP3K9lD-a)JBN1gFMe|C6yc%+UX(n)XoK(wgc?ki@)%#OjO zX9ef7x&_a+X{U5D-+0dUmN20oe@)B2+V@Aq-#=e!a6|O0;?4aa&0L<}Cgr*)04Avq z4$#oj%a@$eV64`(0jFU?o{((2u~w{$fw-EW=hrNvy^s$1Bbl&U$}-9ehZ`~GW)OAC z>p1Z+=c%oI)2o2x=-AnN$7B}pkvt`i_V&%A?64Bw8=51>cF~73Qy3`T%)Wk9L)>Fs zx*=9BU0M{Ad!CL1H;Ml~`1)@78hR_<9tncYQFnJk&rkI8pi3$j)E;(Q_QRkYDjt)%0q8bjRBjdNqZb8Ou%S|2C^bIH*R3i1A)vCh^<)QK=e8jHAp^ z4hpU{7H-G}O_A@w)A_ypv~iLWftb>Qx;%AtsA)UgW-(Uo$>j%SATF#@W-|eOU(w@SSGnCImKjFn0@c*mXZHx&7+8EXU2g z$u_UB-iA!H;AIB<{B2Vd*DHcUHVHqeGerNz8?j{wMnA;m3yzJ!(ZvpWB0N$K>^LNz^ zsX-ayc>j0r-d)^Yu{{5q>Lu@evotIkD%%H1dN7YQ6tlFnv}T4M-?{XE@;Y1~)8kR; z2BPO-ctO$cZn&4Hx+Sn+zq)dc5f#ej*4D9AH$)Lx&hFrZK(@%YVGzzuZ6sXQO>!N9 zUkd9=mE5`)_M86f z;kSHUW+8OojX1&663Cj_OhK)BcdhPtOrjQr3Cgj`qDawYo=O*@u1-gjJ% z_4iM5xr3{1F%Be%I+*Mwj>fxqM>jZs_y#|C71FH;{SAm zMGTuz@@HB0jInTeGr@GVJfK4Ch4DNq0#*(iyE z1eW4H;^4RGVg^#pN*fqgj_U{vR0zCBI=O@i8RWZ4Kq2m$FS zOyWqsJ<-&SdxZdDl4}umVO@mC+jDTghoww~5Xejh@bSFs1hHd!9992*?78M#zQ>Tpt}(}SsG&A5FR#NR_SX`=Y5_y35xNghW87Z% z)-4`F?)s?!?X8GwME{!HnapzecAci)8bCLRNMFN3NC8SD9kko$L z2%u^=F&E0!!o*~2rY3cO;-&z_dr0>fcJCftzkskmJbA_KMC8U&bVLL)*sH&KHdB)z za(EAB*#I0WSnFpsc}PGE(TI)keG4*JKM*elfezOU&tb6IV&BHPAF-Yw<1hohlAJ9P z@!;4)N9RebrSqD?4w?8>0#T?!jARmPY=aR9WOtzdDbQU8K^eCX4sKE$NO zp-xBxe7v3r?{GC;CkRQb>hEqe9tHzc*+g2O&nX!|-=SIqEsKa51Bp{ok{J#Dx8F8? zZ3Frs_3;Bb^uvz!dSLC6q|V5v_{MuRI6|Iqm8y zExW#G=n5FIW)R@VC)^?R_nmP=x94Gq$6T%O2H1f6MCCG<7B~J0H!kVJg)IYhy9#9P z^h``0X)9T7LY=NkjHK!z+o3k#FBa~buIuWCfQR(9e%Q5?23Z1aYAdywUcqGcy@rEiMR>YZ>yA)6u4c~ zNZh3fR(={m4|8B9uwl&%Ju=S(u@;!VazJ-2X@L4Fp|I~yoL+S2En@!lD~%qD4j}xM zV%^9#ntu}38(bzb;Uhs>1&&9+W%OTOUcPu&=k8qzB0K~Ma}fPqS0-K8fF|kTTPR#E zVr*S!CMp?vpo9?F6*9aXR1dRnsA^oj`U7-RBn$h+Cb?c&1|ha~V1aZ(GjtVGC}FI} zr>4D!QK<+-&`u)Kjj$(An$v7Bzs?#2ttZc(84yYMAYm&A_hmMrn{dX)Mv%z=35etl z7U3Q3Z%5Ow4QiaG0l$-VkLhUKS#XC3bn!ArKP37q1+-Z=sPdL z(l|Vheul^D3m-oS-|-n;Fj>V`W+9+znMU_`j5M&}*;eWiami6efBG=BBRYkQKw4m` zC%+$@M2id?hFA;$6G906GCMn4VGtuPe!%0Lx_WgFaL)%dHD`;e+OsWK7$~=ZuRfQb z{_-UW=nOS9OXiL|diB3t0RQ|?ctBFk1v8l9qgi-I5W_-kKp(^Xk2!c;yT&AH)!RKe z(x;)S>PZAv@7__P2Vrc=g$psDFM-ZH6=ca7XOYfI`1p|l#vBMpQgU)BuwTQM4`7Rv zr1IU@B-3n(_|!NRwmEzM-kt( znxFh6Bc;^ZGQFTz3pqewYK#Tj{u!dNyOWLcwzU4nQ%1vQ(+-KP$?$!teo99_N?1bT zH5$mpm^HM{FXU^e*c?sdUwFL|4TyGSx~Ep~L`%h3TuHHq_P?+HUc<{tanb8r*t73dS{c*-94BM{qOv5ZAGh(< zhyOFMb%6_05?b76diE&bZz;8e&iq@#gYCxxog)fArY0TvBI3xTc=H~ke>ks`lM_<- zPv5@LWBy%6PLALCgXQoNYC1Z>7^v6W+{{>To>&1Px_PSCF%RP4gAs2S--H&~3jzI2 z1dG3E4lf=)J_S=#USLk4QBi>i_%C0%;$Zvc-#05$mnS6}@+c|#R?62^z+OBVdN>-&HzpZ%BP0@pAD4XTmmXUMnZ$5H(cF5 zvF9F~#G`U>qAst#EWogjTfup#6kwDpraAAYuWboBl3;W$4( z{}jrkh5)L455uVgJPXuk3}^O*(c?L}b*rBdEEjd-=g(Up7~qLG00p+N*w`K6=Ud|h zS(urj`{9L2TJ2q31X`l3qH-GJ`MgpN5^JNNN-OESbVs!UbQl81gCI2KpBAaTK zz)$r|O#JYhK$aQpCptT?cNe+rB?+J&?;U)BSRUU2RyqspX~``cT?e@pGO*{HC8DCD zIG@*YJw2;$Y8v3{OW_^t;ZcavD2u(;s~BJxlwK#?=;`Rl51H)UM!soC!sjH}DZ_m~ zgMvc8jM*$$a$S5AC4c3L(eqYDhVC6G8r{?6_ImT?06+O2Is`Axlq7`XxpxLw)3l4a z2g2Vd%7jNoZmkTC^u%}UJ9LP}Wnne&0hDo-r)H;>&e!qey4?9O)^bkVb&7QJy|Z`V z1#;3wGQm*sW#)oF_WIhM?d25nUO^SiOQ(jEC0urkWc3V=G?!=X^_~4qvsH>Wt+%== z{9#As(d2VySltF>Txl(%JIy98Rg+`$ad8T4)9IDPgYwekS2BFf3Rjcsz_<5qo>*A4 z8{3?NL*>z@)PY_v0#ZC<`ayW+6Y{+;?0 zn|BFVEbp_nwQXH0PF6S38(OJV)zWGXXj#+$nUs0Qz4V-OkKOoHcE{U&zCYs)Z{5B< z5ntnI_6q(zvQL1qx?x7F+cs+y3+fbH$4;cJ6qT9NpZ@`(hnb-q`k~<6)$02n0NfV zIm}zYKsj`}eY2XkHK)Wbxr0#xXD?K8+syi?%Tu3y|0qzKa!wxEVtLtVy>9Paf_n1G zk!>26FLRDAsOOwus+cdmau9 z4^sfx-R5%=2lyodJ}IY3VZ9+m8NcXg8J*P?^B2OVhxhMH)>*)yW`)+To--ptlF9jU zIBSJ@i`tquZj3v`78RlB>hBwp&LPxjY&}mI{?sp_vEpl7`Q=~<@!69$X9VA;>HhxO zt|GU>?drC6IT*3&z9UC=8yUS}V~+IK*IZe0&et2huUr?slZs=<+>X48tK9d=mpF}Y z>GFU+_4Gt5=buNN%ZvGj4e^Y1F^pTRoDOBpkQGlVOU3%sjCCGOPAmu&UwR+QIC_eQ zf%~u|?XjX&3idmC(puU*_W6ySoy;drxCvTzE8e-g!YQ^uahUJ0WZw0$+fi5?U}hwe zZ5}JuB;(^pMI8HY?d?cMoU3mN;U83Xc}g%6JtHH-6X)XoNiLWieIuhSD6U`?a7MDD zFdgyI{LXzsV%d(4cZ|Ln%>I$f=rO!=_byWg_wU;lzx7Q_+9p>{V~vW6Hm`peTRW;d zeC8&9r@O3-wB)?q_~bx9Muv3|s-dq!AJ?lyCmS;Qjy5*dZrP!<<3vTjd~{mQho{5> zRfMoUxL-lNKT&t`BWFrTy41l6+S0G<>lQlZR(z+{d){A6el0b#J=WWNWy5enC~2#; z^)H`8F|HJ0VS;STha@Fw%Y9Gv7u2)Z=xykv#s4aWVNXKqg{icqzCIc7g-p%vxWD6L zV=yUUF)_VyHvZ1sUh7Cir(008~ZFJjfthm+ag3QJ`<_d#?SX&L6|WUK+YL zHp$7A&wfHCRJm&=R!LruPV}9wcSJ;RmOAI4K;MRWgcm?9$IkZMB`P~)piY-4e+>Tf`P0k3*uj`MnF79WPU z%4>s0Gd`}W+xKyQUU4xk_HXVDO;5XUCW@}qi+dBBF8ytNbc&IketST?>B2QH`IoD; zmw4`1*HFsJ7EjH!tQ+gsG>?i$Kl^Uvu*+e~jT<)>=O#Csk0;ENHhGZ%2s5WUI5>Qs z^5-EOZ`=uAm!TmTTa85aXxQLwX8WcnSwvZ%AJe|ows2zjLgzz$`5Tgw``#V76d+QN6v48y7t*Cxo5d-PA zvF!00iP7B#wlM(@-~ZH9%i?6&H}*~_Aivqu%X?~?&uXmO#Hu<}fSPG%f-S$?2JL!Z z)rKF7L`Q0`RPJZDh>FVKvK=?X>^k<3`UK717#SbE_g64_@BJ)$58k2s?Og3n?~#|fYMbXOWj?{9w`8W!U_JF8BS9GOqy6fSH7at4?w@uih~$BrQeQ!p|* zus*{fn!bPLxOKmt;;AY#=^V#;6LGtPsSo*t_Qk^5q9OO)qo(BU?i! z3;h}e9k=&93h_H`e9^xwHlf0-J6tWYX6(9VfN&#AQc7}@bJ_vEumcq9#e7EIh4f3O zjBbUB{XW~#)wTP>;A_D{vdlV`!4%2Ao0s?*7{Ybc*M=vGPO3h7dK=a%(t2U4;@q(k zia6DzzpkfFZMo_(zmZ{4n^V#_f3;7oC@pP|nB~pE_HPRCvz7f^3R$x0Rwe7o(vI8a z=DNd+68otIcjcgml&EV73bI+fzm6%Mot+76_5hVy2L8gB)m~*bi>d5sK6Zz)Hxdkqcw>|_6udX_mmp4)6Obh#cj?wAeMmw37;HwbK>4%V84m%`K!ZYIB&fomD#MDy~x=wPDYl)Dtst zvNK)U92xfP>G#>I+bW*+_AQISU?r!1-z06z1#Q2QmKRg>905a>N^$SA;M>_$#vs z3$<9KoHG;*`4}iy-;bE2j;zeHe2x2?JZ|m#f@ujXf;r0!UGQKgSRBV&k8~F%Z+yJO zZTHpoG_(54BmL&7rs8TU>env?w#2#z9+TT3zmy#G{&X)DmG0+HUf#`VD(9si{3%{z zCVl<-)iWjKEc`_Fa$x9*IOn$AyN>Vd^5`y$75kU>?mXS&tQo$UB{{y{obucx7nk5> z(~-2-X}wb)@~wJ{AEvuY`|F07=xH_UDbmoiF7-B~)puJzdvO=_-0Mz0a`x78H{SP-qmPtVL<~y?OA3i1H~tmgC>m$3Y>JeCXNjc z4F&bClU0A2Y`?vW+m4IDOn1?C#FEMVLY;i44}bMdnrNMKI_`p^6XJookAe{xp% zEFeG?KXHDyOF;NBF|i$~BWcVTY{WqnrZDjGDy5_JIhf;I!2r*79PC5Mtp?yu4DHno zQ*ORyL_f#axvuv%IeGHOS;^S!KUt|A0*VRpaRTQ#CnhHDsUE52P>E6A^iqOubHuX? zs8m_BpVxhwJ#=sPQ;|Cx4`Z?Xb0sf&dHFx*6a;gPIMTCw@T4`F@5)FmrfhgAtb4VU z*)e)i`;1LkY0P7fk?dBxodJqQw%Z+4kQ^A#hO@O!UnnUk(9cddH1_3VJu`$Pe*e3Y zP?gr2i_VG(KimsEpUw7&nDul1rdeq;j^8&k!IU~;XrT1|5S?j-@pArSJ_e=j zd_WRvyAu?vYqhw%G(IQIEo4~N*piV~eAg`XX@H_x?#r{clHE$RwWEi3v?jUeV}lTM zwYIruN8CRhIdVkM;Qst?^MJY&ll3g(&Wa8u5&8L&`#I#y;vYyhmiD<{k#bzNKWzE) zCQ}^qt2Bq7U&(%s^r=aJkgz*S+D253MC};?pM@0dM2Lb zXr!>p(2&vf#=Cd!Fil8IPIkIHy`rIkKQ`ZOSExJR-qE3tHhAZreRSKvGgMVqe=R*< zMs*COh0kAyzzWh$U14qekQQgvx1N-g^yyo930D=l!mEdS8wO%)drw}rXN4G2*kd;~ zlnC_H-Gr!+mn^ou&!J=5O?CRvA%;B+{XYW+o#&`n8HF^*^FGu+J8Ntfjwv&lHm@^W z+EiBa_8mA%w(t86r$}MBA)_}y0=RZwOOB>u5@uvF`A$6@6?!6KBdYPs7h{Dr_IqA0 z!Ue@si{|r>7Og_Uz~~E2n4&m_3MG1bBus?+GD4v<`1nJOk9%e89KMu zdg=QX!{;Y%G9b}YZqF&`SupR?o`z%y&k^3M#YcI0m9Af>EGus@(O+4b8@7BLf3g!C z&@kEfBDjJ`WMJqh*RR+%*YOeQ%c6dllk)<(#h1oL4h277bLqs?-J2Zbw1iA4V4Lrw zV0&0MM~kw98NtJz_zO_Y(aQqz6Arb1R(hu7yuV8UH|GvK;yv^@D|k13oP_4Snf*4? zh-MUJC_Rkp9%o-LN3tkj*!bcAl3z}mpI>y5g3u9*sh>TTFQ6og>LYG+H!ZgBlF zGBdv|xhG#v+4BnRGu?V~#5dtkJt(PLiLA7PFCGy(-W+T$>8QIJpFA}`@Q%~0EJj&T z(c+w(+u8B=pRauwDXXeV?=gf6WJ6lQ-1zhf!{85}I>(R;+7AI>xS%FEFy1v=`K70a z?R%e7%U7ohAHbTd8Sn4c1M7$-K^chAuKr)Y?%NCw{%u@XPn`>z{yTWu=8sNZ=U*^t z;@_A~e&Y>Oo=RU>-x0DtdTbjtrLWJHzGC_?NwS>qW`C~tcMtROR(fsT&fIur|IWh9 z#b`&jc46Du&5JXGDz{`dYL6AD-l%0e=t4P1ik0N=)DwT>SF z`u6m!n)cf1;{%xXy&Dz6!U0O4U1R$3qN0q#JPcuKg4Y!?hJ#txFO26sKJ-XW|ga&!E*lT?~zZ@;sOalg>+y_Nlrs-d0R z-n|<9ZX+_T8$Du(`Eu*G@4I^S>I-QHis8Du=f_2Ge3Ye~lgb_bJ+CrUKdF*0Q-XQ` zD2^`#MZ#?J91OIV0)6Fh-yQs6-{HfQAoB@m)&pGYiN1XJ)CQTi0KfF6%*@w%AaXXj zVS+=h{olgYnJ;Im1k7eNshJr%$HaAXdS4tL5v&WJVFcOHCw}mBSeOm7M8~!6mYRyp zI1t7rC%cP%{*-jxFIk;C6Ewoc>O9afvd3Wdg-v^olURdMj9NHp6KQ^)mQh%o;c?=5 z1$lYZw~bx7`q7ow`kUS0CDgFoh`TAiGH8i70itva;-%a6KLDYedo_gms)(}C`Iw-f zBNV>WN{dtUASZp3ATRhc*>lqMgTD4#4&^UHw(pjvj~5n9xS^V3UX&(r?3h(ugv{O# z#*L>=oR9@2=oq_SU)|#qZuN2c~oEQcuZEbHqZiitVE`%sH9}7WgGYK-aS{>*?|%e zwwi~toT#X#2Db7|{pj0UT3)W6K7wGqf56XV0RIxs;LMqTYVpUuZ#9l89DHk~@w>Um zItMi0HGns+^CcmFhaY)->XUofV(xR23z{tP3&$_1tLP23rF#52)w64};4TLbN6lK} z#oy6vtx<^3YQ({r-|rL+w((;zNfm21IygF(D(tBLgn#7$0PWlr@}q84J=b<PZb)M1ec(qdEUpKb;psM$8H4!+jq; zGGLW*Bu~8bILu*(N*{%V|78%*@Qqj&;Ab zWoo{ot{~|R7cSk|Nc~K~5?lQw&_8hWsy^e_<{eX`CVTpk?4w>Xxj~~S6QF$4Co%SJ zT#vrynKObQ#rV!PCFeTM+4?!#XTJd*%QW#K_wVL2IMZy)b30CGYKp%y{L!hs0cgN_ zz5ALd+2o1+!QDoWl4KS?DAY&SD_8l#@~I*dE~1da5IHJ3L3u%IeG|zysz}Z${P!zv$E> z$f5|`3kXhB6#viO!ctlNgZ^-fn9sPGv@P}W^Gm22G0jTA5Y5qXjyi6yNlD?ny$8N6 zWz4L6eU<6b1&g4}bDTmEoe^jq!JHsk?5!y2u={l%MkRl#cbNqu z4*e-PU(LcIXgp@m+FR75*T^Nb`;ZE2)lc50E6)U-wjwW8wa@w5ZbZj)!PInnFuTls zwbzwnZdSK$F`iT?CkfXx7H|YZzmGBh`~fd{(lILzYIbP`wQrfAT6*|ZLhiDELI8eV z=mvGgdH?6>9L(ewj%Q6A@Tj9JxT+QWAVo4aAeD1ZwujtsjjvMoTdPk!`4rW=DYH_4 ztdpiOg>pwC2q96XE?(^%b zH4rgHJ-v(*mFF*BteEG>`C+N=b)xchnwokSTKWzrGQdrz&aNmQ9+g>kG?DTbP-5Cu#6-J{CLK znj~-J&H9vP?0DU~Q`}G6uFe-pF0kw$E4A#cD>d0zAr@PW3aq^Lh1y2t_5vzYfld&Y z7sN_qWfkifw3nXV$KRg^R4rCHcZQOQB_=Ven>ptE9vdWSX**gtq)rEqb0ZB#oD!qr zLP$5_O zGH+h$ZTEMN)6b0x>oskJgB&|c+-FA{k&VdxStWBXS`)mZ%xGZnqyG=b%Ng;($_w%* z*4ZX{vx-{Ap{4UdTVM0+S)q$>68cy30xw!js8n82e^kY8Kx~jlCKEfWw;{Lrc8HU% zx3_p|YU=*WjtY8(l+@G{I+jPLZLRu;>sh@mZ=H@tjLb_fy5+LSoCm+(L=BSxNx=FJ zIZYS64e@B<6p`vY&Qd=IyR&>hA8Ss@ees z>Fo2Djy~UDzZYGxWM@Lt`YAR)XY9R}I9De&6TQO?7#YMTO1Hat6srR7XJt8bi7|cs zFKn#}W>vJYQF|^MIa?+FF4D%%PT}%p2B;1ZY*~b#AZ!9zM_rmE4{!)@!c#kij^q3-d1tH^+$snHoltJRb36geSWkrQ{L}PKYIP0WAEqByUDytb8VMi z)%-;n$l9Srx^{VW=|g*=X;DMLEMWw?D0Z$P@cLqNJrKqLedlx`%Y6{G}2 z8l)RUL`1q9RJt1xq(eHSyBnUh&pE#_{-5D-_)b9feP7p#x#pbfbv|d08RKnc(VXXx&fAfDCMZbx$C0rihC zeT=e3YU8K(-tDO)6jDE?I;U}Pa{7P>^1~#ZJ@Y!ob8ap>mIeetdHIgryAQsF;g6G8 zY*n1oC0<6^2Um*(OXEPrSE;2Ev6lB|qBc#$?w!4VpJY&tGww+)MRdf!x55$Z3~k*n z))e*@=ASNPGuCVIB_K;Vy~$VM3&=7gd-)D-sWd7hqxjJ9Ff;!#o0pA(yuIcf_hwo*WO?@k18>%bP?T*L**J z`T_U>A%lpD3J+Sx2UcJ9SCWyu2KY@tP?D+GB+(tT^?6Dvyp|YRDo;<(&fmZ9$_kjn z{1W7_2#MEqYwTT%v9TP*1%8R)_^5TFMz`j}_?SKLArtrVzQ+dn4FDvi&f7K@2Q9}r z#l?c}USpV9^R~w*i3UcqfV&Y$mwd{s#9GSolZf2kai9Z{1OxCd3X-awOC;M50X~kahSj& z#*(rM85<4yt&#f@IYtE`d0cwk^+q|iPo6ajvY5^T4!L_AXQ;Nt%ue#cX#A&)z*f_H z7A^Dlq-=^R0Y-?~ugm=&m>va z<`0wxnyXJ9*v&FMs+irj-ZFS5itEM7wufI0k1oP)g&H<(=}*`% z9~CMl^76+0w&&)jobVd|AZVZ)G6XcBpr%p%8~mJ!NaEytD*{p<{8i0Wr%o9b zct!W`NtphvzsA$yi@Sk95l>C&=f3e7&l1hx$M8lCaD-%=_J#roR)j3BfuvFWj>^x#&qdPPZ1 z?VB>|spr&>FFmNWAl{9e74R^S+~tBl1c8^j~Mre-~C=q5pl4@4^CgkP{kSYgkTsH4WnBYa^6p z3WcqF8XBXV2UGZk8}h^BRS!C>`|NC4oST>j&2w)_lz+cdXZWD7>;koLGZ}?A_c!DZ z0D5Soic5CpPU?X$rlb|%^NjgqjiK_o&M$~|Dyp`=U9ASP*2*WX`y zV&3wwPV9uaWx@9TQ*{F!97NQwMWWEK{o=GT!FlW4+zVv=voYxmMYfom!kolvS&CXBl(Zr=6ck^*k|0F#83>L3T~r~|gt|wfpo$>iu_m(| z9xk@@MW=G5h{&rto0Aj-9wV9eLN@=x>@SB(edU2tOxlw2r~XFHh1;u@dIR?k8Hv&k zC!xxwF^zdBl?!BkemBqd!CoF^5xAeJwhbt<;)TnBhNjBMhb`2Q8`n`c?kY4P`*4xE z%&BnOb#!|1BSKj}pCM@Rs@{Ymy6SdYlip4_*HU$%=cU}$z3SjSs9G9%S zC@Jwj67nRet*ry7_%U21=4i{ht9T1T7|-GV+rv=T)MV!8r|ck&Okui?@SMSOqP_Lv znH^5pgLl+ZPu<*tUg!o3xZ4rU%LFuM#%*m98V4RqZIpNl#oLo(Dw;BHE85p2*>;Yv ztRv8B~5EhB%5 zhuz*_(Wy;Ac=%5(mz?MxMF)S=r8ng5pB~@({K@&`Z&unr*YBlrDT*Xi zR0X>yr~C0!mhZ+q+S;B#{_&5DJiE@nPoG}Y2HD9nKi_VDjl6Q=Z%Sk+3mvPmFQ)Nv z-cM&{Qf%IvL*H5Rc=y_$mX+Sp)H$Ojibvt*jxLoG5K`L+eQJsapu6nzhXEj>Tz6Np zs*!uz*1Ad_@OlAqPf+Kp4W*OJ7L#auyNYL*&)Pz?Jnhwf7aQU49T#Qq}S#y4QiN=3dA z*{zG7V1F=Dcp(8WzI@GP=ik=Y?f9g(I5l_+ zA#S#lA!(@Jj~P&nVrCfCJ$0huiI|R;tEbn?ZZ3c0#}QthTz09Cd~2b@sb+58bo`H5 zWjMh|^{*ZN7S3!jZvs)=#}K!xn^9!@t7y~e=bGdG{ zDJaI|KW5JyXH+r!_+@9#Y{cz&RqNK74Yt4J0Y?hTiSF&&dJ3O&GC<~OxBREaxbE0L z&@I)l!DWFf>5+^2(pOlNWWUXjO|J3IRwnp$HDNeW%*uM2ZHM_SoNo-SCq`}M3uE>N zcTlC$qdzD4SRFswS;$Hka=qgFxcItlTI=%byH}&NNduM+$9S!I^z5YzD`o*k=t28V z3y#0IHl(;y&~lY-QVPK=Fh-wE7WQDJVf zP8E)nP8FuR+@zepo^^55KtwQX33fLK z9m$(vVPSpW7qiiAfUu_k1_{i_g~z#X{Q~`)r!H>~sH(|bUMjaWsTiN^5S5a=UzrOH zbxva8D44|*-}~vP_s)%=B76GP)EKqCxHaM#w#>WOkF<9*n9OAjeFw1OsElI3r zv9)XtoT_d{=6ru9C)eV?Z_)47IE&gaUGSIv)yPJSg3VpE{9!cu(!wmXt~C)n^+eV#_#w3-Gr0!<@js5S|K5Z zakgG0OXEz1DY{x_GzDdtkfGogp)z%6PRkgzfP}fU4<*+hv$GcFt(_}HcO}=`|EvsD z|5IZK{XNJ}wrnHjA19tINahJNj_c7QNPgTF^sTq~r8NFmSa=85#p{qDID(+O$54IV zgIL2njxXs+U__!^T~~rOPkYqOmS`fzNI+S+s;Vy__|+#oLIWFQ-a${;|6{*8|KgU$ zlMEMlZ}#U$;gT}JqFzVp_c4nbmHs>vp1;_Vm}ylsq1}ixckGlR6xXZWFBp3~=5_1$ zpxxDo+T^Jq)%w|LN8g~vpS<-X&r~6=-}FhIap*qT93Ti{qF{KtqpS%wsv&1jExD+j81O- z6OW6NHl7cpynMg!b89Bo68UKvtLNNDW3*5z-%rqAJ;!Oj;^w?XzHBSnw%L*N>eN=i zoN0u6q?}>;ai!fdwE?DIenxp7(9Q14=$r*o{>-Vm}{rlXzNBobH@>B9I($biTiDm=WhUw*M3*$z)H>Q4|d3uU*<%G%Z z!-nPA$-in;4=yeZk^y{rfA;eYw+tH_+wAFnww?X!lj(Kv6q#R9#7~30S-#CC#0gP& zYUvlD(~n%|0_ALaV;?XVaQxc4r&qg~L>qR$z_+MSJRtRPQytorD4PB5pSvd*r7t{R zXS8G9#T#UzUR{OX67`|u#@_Tg7#w5a9cZa(JaL=b#rymB@2O^bgL9mC%^KUMU#4}Y&?87Qk8R!WrhMBHdB2sdS(%ah4xs8Z3; zNahscqwf(i_M~kubch9o%%ZpbIfTM z7nkl#6mrTx%&id;uU=t!PE}&`t3;bkALB+^2;95pmsp1ey_t<(!v}F^TN&4zO2fHp zzvSJ}auqzB;#7*h|8SUHWyD~2Pu4s5gym%MP$)}CNu<0A2?2f^=>x@_7<6092n4<7gwO?zd@aF8i; zygg4aH8%%x3z$GqTjusdGOMn3?Hd^hkVuIYOx&{uCyDr|>@Mzu5{Izx#jF(gsL;4Dq#&F7!;nPS z#s*z08*6UOx95>+x9%s%o8JI5(a-PX`QSGLR+7hTcLN^Xhxaa@p0U^VUrl8W&K>(V znbDW6Icp|VPo=w*4@d$4tCW^jUu`{|np<;IUlhP&VK)1p@KF89ZL;({KO-t)P8b^l z0LPrh6_!e+fsWS_B>VS&axM*fytbS>$RC%7RExtOSu_E%^sXTIw%q?yx#Bk|hjEbx z7)fV5A7A71Mt)ULSMP*(Q)_PKSMHluirn3%phJfRvS-X(S{pb2BdN@o8<_vF-;5Ptte!N+9Tqg?&w_Lf3JO{g{r2=( zUi)gabcW6UL}NJ;ci(OKJ7o|C0j8z84AE&_82)XPM*oocliCzq;$s?EeA`@EU@0z9UWY{`ZIG ziQE)A(SIHr^2z<*vw(liQ2Bp!rBDAKT`A4~qbq$)_P-DI|C?|4IjoQP@8ihr&9)vl z+L=ww(a3*r;qGDouk-O_rM<$G88LA#+5g@iGyZVCvtby6D2CUYQ~E2ED?7WKfZ&+= zKy|J*i1fqy48$77i8Tk_5XXuP>b<=Y;!bffk&R7Fk5jjpgM#vKa@7M|5A~4&@D;W{ z76DG{AUh#3BV+c~K#;62Y_E~v`3!zrC^+c+he0_nLCqu+nb_J*t+uOI zeuBWOmy8g2?`z6_HQ$LMj-sY+`n`XPLEP2*(IBBz#%uN4j4-Dg#Wfr^D0T(*a zw+P#5*1Vd6M|3x{fV7I&A`{^QdL~v9v|9I5It!&5W>!|&sZ3%OVXJ|k=sIOKXfhpN z`$k7G5#Z)+vbe`Mx3EySv=)?;2ON1S5t~OkUgH$Z(FCYym-c(DGnMP_LYt_F7fr0K zeZkJH*7b0{ZWKgNP~{q#S)+*?GTzsa`MPqjy09`~E5N4s^+RVTR)Jv+I0vGv@r8yw zQ&J*yTCbWt{lN}hgruS(fg;^C?ke>v%v$NbC9WGShAg@^rqyT&(B2NDuADIwwE4-pYpOaw9i#|0n&#r}t}F{)VlI9bwoUG4db8Rs;u zZBM(?N)%Pqe^`Ws8ox@1TnGjSM*|(E&T{m#`5YacaOv&ylsSkP83~g|r$HShU1oW| zFYO8U%4+ED#ow5>1z&@>fY|QWZy46rpB@NuqNL+$Y33#^!|)EDOE;t`VLQ&VLC6jB z{(&N2D_&vK(u&-(oFqHmuDMzEAzXcEU?6XR@aw_BAvlKk|NECgVx3)B7;ZD=YSfsL z8WbM>>$jA%qB5S0Bi&hyTQGWK9MUM^m64g1SHqKMI{wo-GDFZd>a%8TGCct7pb`0L zIYlvOapfJ6Sbg)s1B}$0O4Yimo-oA7TLsJWj zn_^-SK0+vnuyBQ_#KiM|B|rahav}>GCZZJmnuu4!)%cE%j=RkZ@g&?mnSUIrFQ>X(4!z!RHDh3=3|1mBEV`( zNJzayhOuh)SBwmtrVm9$eC?6f6mTqr9L6=KZhge~URKtU($s?TPjUTl|M0P$UCP&d zRN$z?xeqPw@Cq%iPx5;jp1{n)k}f%v^+r?k!Iy^~1mn&tc$Z$f0`4o-3;M`T?CgNJ zpx}*w`Gz3ez=cIzLimtP6YJy!1=c_Sv|nGkKkP-?)+izWE8`BenDst2xYU$xMk;7L zyw8_=aBvUaPQcePOIQp1;MG_OHoOhh0z;m(it+MIZ>5Q!E$M;B`{>*l7#Jl#9K7L} zz54qd-}PuM@U}_A<6Z-g{t_dTAZg~6_4S1qB^{P0e7zp3sgloZr&AOrj-q7o><+uy zNW_hDxzdUml;RdS zjqtv7bH2&NCAnBe5h%;brAG8TBNz`4uRl{x@V#5y)p%QDBM~tCR>pGgQt%q!1X>Ow z-=~eUO}f?S*2&&)+rAPN6ZgZz_on7%Mm=lfpcGb{cYdsX&)V8r{>wdTP0bO6H;W9x zY}evG`Fwq~bFvToEZnPy?g%gXzhK8_c(5*x1<@@jiGNr>Nwv-;CP-JXxT$pr52n>m zDs1XrTAPISMZILbRmbV53*4_b{^XXfag5DzC+}|A0QN{mB!UphFdaCNIMMklmx{3S zuax{RkTato=H`s(&{e#_Tw@d) z7q<+Te!Zo;n+~>@1qKJdo<0YY(%rp92iQzT^4JF@2#c`A`?1vSFZMzd1P}?^GjT1{ zAHw@no{c{zbzGaoUs|FF3c_;RUdIRscr|`NI#j4dSXx?I>9JnjB~z3u_3qt+KZ#C& zn+n!n+R%WSFm&4EY~e&)#(r@R9m9lXZDSQ_D|uoxZ9G})LhiLSt+Li$#Y|66Me}_B zO4rb^py19-`j&&Xsk9JWBjrLJd}$dI16e?Is6Ydg z{^7f)F>F0^%geqK6*jYLvAD8w3;2S$5y8ROU?Cr2(L2fQ#7*jh_;S}-?7PETyQA)0 zcSA~mc}(BjU|}(#qNQzV9lMd0WiB9C;T>McOGlpw!}HVW2k-z|*^_@ZZ@}u@?Z6i~ zFY+IBcXt!flH$TDNQ_Y$Mb?4G>Fo;Of{QOcGrIV05^`JGW8Zd!w-n~_{J&t6#djOc zUlMdvlxD8J2s%FmKOO`E`ZDc?cj%va4RHl4bb|_7lW(IxQ;1z?te<+nx#^F*o@N@IQt zk6yus6U(K`)7|ty%K|^HbT~Q9J)0Cd;Mm@@mGPSoya|GN zwQNqiE}Q<0aosJ)YUa&8>q5)cue;{LI3lidu2vqxRuNt!r_Y_54w9`e>c10MR-FbLpSY3Dp!y0 z&*s^iEeM2#VzQqVXM>e@#N&@V&9;m>$*l-%5WFK1}2f#POjLaO~@BE=P- zeW-XFyv$H-ZI$%u+)*Ilpl=p+MgI!xt96k>R0;CdVr6|)Rht>#omUBTb!%#iv$L`Q8D)SP zfrW!(wr=rH>@%L|#;z_5R1_i_l7f+bs@+|C?TUB8S@MbDXHchB*m!h*xlbs5S(&2l zB~u$y(cETdmGS@lIV^egt5>`1EoW_=LF_AWaJoW^a%*`% z->MR;ke`FKTvBmK8v4WZw8o3D>pg;qh6Z&s=KAG8g&L5^h5Q0Aq~zqlOq&?4{Y^3) zc)`-rLXdumNJ+y_Dz#hN+nBlTq_tj;s2^h8(1DmH*`0JBA3XA0ih<28#eCaaoy%XH ztB3Z~^o=nNtaJobe-n(tL9^R8^2bXq=F1mo-LU-p{8B)#QsuMN48uLv6L1Fa+SgV8 zI`hD~vHGwf4XB8x^%Qh;c>MfIH_*|UAMudQ5zhsMgu$+Dc^{wmuo+|j>RU_176e|gNWgSRPy2QWWV`Dde9sVs~vBeBj=QNkl&uuyd?Dy{7NO(}h8;Bzp z=%Y={CjTuAd_Zps=k834+mgN$al=GN{QjH_CZL4o=1V2u0FiE@Aj^tzTAr^zK@G;x zZ4e$}?ha?JL@A>BDQX@$-bkoHnGY$VTSl^6SQaE^Oe-nJ0@nZk;6N0*{Vu0js zJFZ~y7~HFnJcvyh_;u+q9mMFRgD)i|C7*no5>!EtO-*;t^q*zkaa{Q_k??2uFqye` z)J%o=j}fewPNr_F+M%d*2n2i7?+=|vfcS~pBIAx?vFwU?+u{M&&oAIcy4tc0;w`^7 zsGvXW>?pIcv&a4p(#!jnB<6u9Dk}Qs)C3bYnP5XbtfuzEeenG1ckd|W)s?56Lrr*2 zr>yi7nVWnMDC~DjW#wh1EiJbWAA{}a?%;QFmkEUgF;YtYB&m-$;@s+O&||4(yN5C^ z@qUPjA=T4Yg2XBZt~m1q-u|NvClE2=h!OfUZ7d=caE1L3~m;kKTH(GrW%k+-;C;HHOdXLtK)f19vL)hhNJ zE3@L}yRx{K+mK9%EIHn6Zp>KO8=IN=J`Mjm-{&L#JJY}khY+`|i(EX-@Ve>!#meL0 z3fs%qA}6P(OpoO6bAO1#Kr3ZlSz9%l&&WMl-|@__$bd7_sW58xRN%pFpWI+h9-hLN zwublt0Rh|A;EenVx=*0~(J?Ue!ihq5x29(1l5!k=MG<_`4Yt1uVnAaD@cb#FPrVENPAi}~kDN-bN7Ub8FFm)bu~g@NwVpS5XWNti)ON?Kxc z`Mg_qhXo!x)7?9K{YOyKe7R%&Ac9_0Jg(&nr&>50mgCAVP5ahz=k8nI!uf+Em*W807jtgV`~FE1#;y<%ycydS_2~cu zf{4rEg~x`#NWnQw=ii+eZ;YOtWS>7?hRA`P!R(T0|D*}u)77(fHjrTp6c&UBe$`^)iIR2jwC zSYIip?r)-uaDJhy@S&gZ)H+35s8}1lrW&;P^Tg5d-bm3Y^|+*U*x9^X82vfEG&B7- zVW&sib&#Zl>|PR@_r3^9_o9~uAQ`-TZ@=0RpcAVto-E#teFiP%ltm&D)r!`?f`pwC ztM{{x6vvug`pDyN^WZS&zOCbiw;G>?XY>wgvSp0JQ zn3V+7@qZBB03S?NJE0XDhy^AmD^1JBc8B4)i@hOx^Ja7S-FM)Gx5xgb6gUgz-_O#^ z)ipJ};dy3{BKG#RHzwg0g_{TfMR5D1Wo3x~4Nq&v$$d0c<$<;-;u!G5K@Vh_|TiNR-B?+2T4xXsMQff#kCOnhZX zSa4Daq~M&Rq-I5dL+l(J2stl3@96Y)sQqY`dlQ>mFpsFl&1#qIuy-zU zLIK5vEZii#lU0vwZH$7S%_z40q4(lAG?1sJ3L>A|O~*WO=p_idnwLX(*PN41HY^8# z>$$Yd6Xu&Yuj(3q4|LIhpR!N(vRpXTp$3Ub&rmFJI;te=p0*^)Nm_$G|`!Ht6%nt%~aM-am52M8Gu!<+Zy& z0d!A&DMls-8^e^xTUB%Or-NLy|N5_dj@?W zDAjx!{59@)?5Ew|fwY+{zOGV|~ z5_oKKx~FkscBw-r^4aT#tMq%JkwX1oASk7pbSQRqcQ<}dzS7Ej_^EAVgy8agSxi>Q zaRo6y|GXjxUxO~1cuu?K%p!BMSZ*|F1!^J$*lmm3j~_C|;_c)ZUYp1#ik;V$OPaKM z`hu1w?-AJ#fNl<`9YFY1`nGN0I7_0vRoZBC&FqV)GjRYuBRW6@FprX*o@v^*P#SU- zEyjVKPRLGbvV9K#n9}7}hu-jN^Lba{tzGDR_n9URgEIB}i0!gmexdiMP zDPS%)`POXXyJ(gpybN!goO|x98>LpU|E0N4hdUK1%PQIP)k!(qMikOm^Gq)#zoD4c z`0}$?uLM5$q8UNrgObcet^Nk;MEdoJLXmtl^ZV-&tkwr1q$}Yf)U1Cz^>lZKur~>0YuulTeLzew=f#oXVWo5<*H= zp9vp`$vNb$%hgpq{gc^+g`U2zU5UyZt^YXh_GQXxwYIk#U)BD7zngXtIs!kky?nD~ zcmF%1{qmo4+)B`S(_Nn7w+_9&OGHiWqg!F~Z^D2p_OT4R^OM)4CWES@sXQKM2WU~} z%DsmfYenHXZ!M2s$hhBL;zl%<7d9*aX22z^xUMu|)ZF?D8~~uf6nyk(vedoJ)qSL% z)MlpIhmt?U;91pANUZ`MOOKG(1Wp7l-fQUT_h>o^8SdaoTHlPgbW-MAR*mn*N_^xu*9aDnhY}f#0s{3zV`z796fVqt~DZ zsJuRYhaO7drruu6iSnzg5rzl1uOILfYW1S)=;*izhQfcjwDj37?*;DRT1|?}{^wIy z;;WyIsRLi*xX5rGxgLNzb{G&cwbu5h>57T2uO>67;Uxpy90?i2xZ{Xd;BH0Z&RjYQ z0`RQHV6Q7l_u8{0W?I^Wmt8;q=0J5%>-nPa=gmp=-O3tqzC9#8mE~!;zifstEb5;7 zvw0zy+NB=-$EbQc?2Ic!oeSOjEn`1hUzha~BPFeFQAcJTkXdlgjO|OaXhNhPetBf} z5d2UhVambtMV#IC)4SIoBp@j&VlR0+tW%&@iU%9ay3chi^XS+kuET8`62j~aJpnti zU8=!+HC>DDJ&7)@S^UBvOQ$Q(^^gXXzZJ!+0EBZp^|Ej=ph>kD^FJ7@m$Gob?5O}O zu%noE^i$qzR~3*xp5ar4TwP+$0cYq9^t(#QkGgQfQJDA)oR$elN!8>NcF_RDnO%B^ zYoX-zzRM0kF3sXIYzHsxFch=^2^kqoh+(|@zDZytjYoG61ZL5dFFuSg!mEIn?slDI zV2I~YN(FlW1@2v355GTbGj45don2iBgl%>FDi2`x9R9;Xk(on)$@a!f>oc|4#nbQ7 zgp57iJOWN+ zpkV(W0`b#dGRV;}H9H?yUsMzzU67Lk$q7i=c#{&pO(WI05zrNX9wz(B|`N>3Mr@lcseIX78+lshg>+YnPX?4`$f7ga7KVy^>4k# z_!Y+!d>QtGbwMnIz`IF7gm)ajsNLq;t@p0=5-+{Qp-@21orJ}CP@`xS-^`rVz+Ms& z5lnY+GmMSRe4~kx8T;)m>#|`j|U= z?#!eCh(;${=ed3T{XS4ZN6-mplRV_D&Ww88R;|wT%dWC=ay2=HQc=IvqLPw)V3GmpY{`QV z7GlFPR7pxvPp`?>8K?qoY%i9@fi&tvc%4`KkPijLyJXE0cv zy~)y7W))dGI{tIrJ3o$}?C&>SjY9x%(p~XokmnS!_koSc`C)(jAUiSDN+f(HsJ=c| zalSvKi8v|nkohL!hI4jiJSL(pHC276lC3!9zMXi_=#7s;scxAKE@fQ6&VhUIjHiB} z>8*PRKHj)U+PRwT>=yVzHO|&*fBQW09?|6uH&U9sJ$Gdg`^lJ^dXr1k;E70Je8O@O zo>rf4#r5}+pQwn|)=%3UQ58KG+&T*Y1wdnP+iFSuLcsPWI6sFK>IyClwC!)-KlzMQ zj#-F3bX*A{Wxs05G8E)+LW!@e6uP)PRtcjyL}ydHAOLF2?;1}6Lc*5qhD#hYG+%ck z{fYAAroVrw!7u-0IXV4#e)hd;$IS=|UNICzfni0SJT8UuVpM#5a9O@r`*KS|W7lxQ zZ0oLxkX!pjG{Ys78(uz;t94KYN>ZdU1=`1+ZF?QiGa z*TTZEMJk_6W!3bfC1vXqXSf6E%9nZs9PrHuG`OLKD9lg=ZmqEM@ zw$jg^uNFrVGEPF&SW7YK;JY;r`?QfQD)bKldVDfZpFSKI9EgsO^@lMqRuru#2v1WX zD5zJ}%BP!p7`PcV)lx&A0;7c8qlFc9T;R<4%bWY%&-V(bz|myWV8bxZ?ECpb4qy)Q zuN=6zSgim+`{s0Fb$|UqWIa*VQIx2=d(wYNLNCH1O5aeR>mNL$_!tPJa1tW|3AdYi zM=_y21Z3c8$Rl(hgJxuB-UMe&DAX+1=ZqkPMJCk|Ljk=$%13!N{hPA4skIdk)+_`> zcc0Xeiw1=-6JhlgUlSc{3KGFLY5#Dg{s?O8mD`2@f{58UiALZqD{`Ba-PNs`9A>_r z_^rfB($qdeFq|ixW?ncBgS^`SV(wcvnD&D@2_yfX`R=eBA+qsUN|))(Kl`h)6zpyG>ao1=i_fDUP&oYl8O6*EK;fPDkiab<|y&{G%%QDQq|Q+8~_ zdt-sP^k{;dI|Z zz;cMv&hhOBc(-Zk*W&kt-V0oZ;UFQlZwK_q&5<)hpH!PR*88u)}N@KA#YBwgt4%7N5(SSg}F{p6C?7idKg6 z8Ig6M`S5pC-&i=GUDdW87b{{0b$gw(nWrO+x}HyzU;g^qiiv)9J@LxxCaf)vp#HHm zH;QldT+|mP1bEz97eTp$OO4~>7=V01|H9BL33iJ_k^la&Lhrs*ldaWJXYc5!UMlld z&~g%Q##0c#y1II-(n!JoP1>~~Uh8vN9txAj#+%^n%S$B>6C@_YGwH|bZ&J5OEh!&8 zxy{r_xIS_f#<+9|3fUg+;XCDEhJqY10cZtPm{uz7Muqh#3iM=G7Y-JsNz#`d2TXKy zbOLWqIIw=+5OUG0QyR>9+cz-KoN}|Jzj%fTelO$AugUvoHidduEN2JwK|a0#X>hHC z9PRj_zt+r(v4*4F|MP{zHz7|v#7h$^xOkQe>5()NhKAzX9{dK6z}vuLcJ-8Gb@jD& zl_i=%{ekjo%*WQ&8wGk-;z;CV?62_4YnXYR%x<~O6bE)VzKUaZScHlB zSW5=;{CJbg{zuKg)m|(m8XDTc)*vI0O)K4&%}dLF{rLlZ-vkse^zK)uvaN0H^CLa^ zTt%O_?gE))j-@@tsv-$EnQi>*T20GkTGOL2UxP;VG3+rhzVO=?@N7PQb@^I%V|-Vp z{?<_F`k&49m7ywb^FLpYr`I8!&$ox?@4Vk4NFFuVMt=@n0W|xEYaTa1)m)|Lq(%tz|unjuLkNcsc}j-oz(3=5|n z(X7fW%ym2?qzf4-oL~lCQ^RGo!Q$X9*SxTNs&Zq`=7Z{Yn?8QbNzVn}43SA}p}VWA zXAD?!L{#`_Ti#|EgAll~wx&5|UZY-WYGyVUXE?$n6YYzFhGBH!_YC1(?@=B18>;}V z4KD`v3r9Zo4Fut#$>vw`Z3TR8CAi*@hZ*ST>4_N_A~NMD@8*oW94$6L@{3?eYFPc{ zTdmgy0$!g7+zh`a=)UZWGJ^2UsrXGOz)Fjc%w_6)3#Y5geGKd<0$Ku(<|kiht*oxb zx-jmJI!}nLUjz;dTt~&l(#Ts+~Yd(!U#o^WU41pah z5N>G3B8883vDXwCMco0>k` zDBe-COjOhfU^0(gW;qI8CmfO=eAPATbsSg6Nfi>x8b?5xqWNJ*5deO@q>y%nuX76+ z;XD6!rOLw9Q$rM(Z#ViqQ-gqy34>^po;5Q@I#g&wgW~v;7T^n!WB;G8Cl~-ohLV(L z*IrF+5h4WxT(&%oVla6b9jjU(gf&d`k&M$aFy0&(oN1_1;~>k?@1PzTDF+xO`uW*i zGA$h)F4w~?LO?BXmmL!PbYZCd=MT#H)ufN(twKIs66kJu#a@T6-d$>*o<<=C+~u&A5YC7*u9xq%vXZiy-{FAt78 zpnZ@3`SW|bH;NRHgXX#szkwt$elypndm4+)k0UN zi=S_90RT{9+;#`7v@T-LLZny+n!X9|_otcw8p`_e&o^o;9In&*gc`h$eXgJ(lWg&F zQ?W2NZ(eZurFoMl4EpQ%AImM5tE3xaS0V=QA8~6k!GOK*hn6^C5et4e=2)58*_@k3 zwr}L`88jS8?l18|z2*JDT3jkbkHAZuG2H4{t>LQU%WW$LAj2(2r0A9vOitYUL@pCV z?h7^iPP9pXs+0wyF;g;2u3q0#Pghs{pXarhD^}0fG8m0YHC*}H!Fh^3z4h_A*~*j! zfL$r*BSdbttSlra9S<5=Ycv|*Bkb%DaGFPt?*oAXIiZDG8;cNE<1d*R>}p+U1B#yC&E!al^P{Td zQe^kDm8eVYN9sM9b!5`v=?jCCf){lKeN3`1xb}qQ`Qj)~Px}j8pT^5_@$)8NP-6J1*&FcE?*!40(e73o6tBkLZV6={&%S`76OweERDb1WBt5!SXY}e-P(uWrA3y{^4#dOH zjOsEKxO2w`fUNHB9@wS;me}XD4Ko!N)2q&^*^2r6%KSt0A;$6D4f^SH&$nSfiB9L@o(C~EBMih8x$ILTed=vr$ z-CFlmAHS3LNMz$a>K|F9UfR>l!b1H2f-fy&tz-Z>AR#m0oaGoy5&v;opBquYFjlV| zQWw@NIKkGf*!%!zcZpvcJ~T~wc_1g8Fdm&+GT0;Nm%siD6f#eE39D~mV0;mF;Ctw_ z7Phk^(48!ZS#0PQ=SHt?&j}8+hodM$!v*Ltct(aM12;FW!Vc@#o?A{%jb$mE;i<=toEO&K zCgPSnCrI4qbDWyAnM*ba#PPVEIPH}*YEn47USA652FfY{4{u>~l(Mjl6p}CrQx*HI z4NlPQG*#JnIIazmBl^4=UjnPD5dt=Iv|_zAoYdLPO>7`;Fae`!&L|be_fnt*1U~BS zdX_a%4gq^5temQPVfM67Wp!m8j_NGY!P+n(5b}1Hw>C2$&i#APrWfF{e~lc29&Ak! z!cPHfuQZ&zD=*vglY6iFr~oPj!kxNnZF4RCpNnWYG`+gC@$HF;-=zCX*FjL(A$gHZ zB*C+L_AJOc2?$qc2uUfa5|4@P*t}&#E-*19X0Cj1n|9hk7ilu}brB0&MM2jm&yfHY zb|arOK!bMI^|Ua$JTDLkB-rwgC{mopQe<+*sqWaffJ7*1YAQ6pFb`FIoNeCwXI6rD z?gRi$Nm}}S{5o3?5eZ2cP)1rO8JAjMkpdvzEz@;1zv~D*JZ{6Bp7E=oErHf(3=Bmq z%N~uDelKsIZxjE|GN>OGTPLqqKdK(fW#;ih|61d0)AoJQ3MenP?RJ*6>)!;Auk}-g zqSVgF72JW9k?r3zLjg~uLyl!9Cs7yJJtNWg%{8k7Ywpt}rT~`TtHqCVQC*lQih)NL z@|jm0JxXNX?7Vy?cG|b7R--6c=zgX1@q<AV%@9 zQvn8~ z(2h*^qaeI5acFC;QtLZfKqpc}l`U#B&RGY_8S@`+mUSrD1$svKAH-9g5 zgP)ehEMeo|G;)q2neI%$d1;1NvTI*znY*~T_N$FvT{RjQ2}XYh{7?4QgI`TnQs-&p zqew};&P;g7NoHv>eo%E{Hub#Lbus$58pt!%j;lV9E|%(Gm!Z+OcbD1Ed4j;52n)J{ zZ3T~$;@@$-z@9bGF0tc;<;ueYVLDU5svi5{Mq7XG={jvSJ)QJ^ZkMj9$pV8kSy zn`QmTV-HKe<_LkHqNcq|G$;X+P%G8wA^NR>>g-vM>7I|;gkD^yIsieThaCF>@^yA|%e|O~Kb=AkUO8x>;<4Cc- zPbBTV0BPo2M_2=Wa()WDLK0lcYgk&U$OO6iaLvolyhrSpTQ96vDDj%vdM?hjp^w+v z#R1p2h&{5YqXQQJ>EG+VqyTKkY){q$F6szGd5qCw{dSl|#_l~nT3d90o~#L`js5)_ z>}juI9Aq-`4IMb}%vnn3nzy*`COxtz`}NBf;Ulrg&JT-;VCHnsa_9!6pM|~5eLy9R zkUZkGSWF}U;>zezFd%`4FsOYWfWB{GyfbSAcqlt`8zwDh8XyNyS+&na;ti7dBbz`| zAKf`VZn|JJXX4;UnT#-u?==G18Py|GSiHI6n;=*`*E=;4TmF$k#cX$_AMHZGnS%M+ zT0xm%yka|u`tC9lsNrVZ?^5`npa9>t0{ZO0*Mk=6ut)&BsR#)eA2y=D&XIb2c3v>T90Y1w9Qi)&*y8u=epj1;GF9{XI*|+S6A!%eTIAZ-1qa`_a}ZOkH;ScGqHA+=`1?Q zt+!^Q1qH5)ZIMpTk9Z;k*mhR_n1&qdd6r0AxGO2S7ann5TlkFodj<#r|^7ysMora}KG;7ig{rDkT)o{;!@o0UK*0O>fy~ZY^qQF6&0p`W~f?Fzn>!R5ZoY& z410>?G;SO7e%NJlbpY4u(Gm*WUmpb(9(`55XwS3fF)xcROzSf1uSujme7Em=6dSXn3hmxb+6}1W z_$wS%%iXd#@d^_`b$}Tw#SB*L>&)`zC>eKpZi?BI%Ubr;Ir`78f;?5XZd6nICRmMO^1> z6|wH2?JNs9-&WH9vZg#BR`K?@fb`Qkv@^fYGmt6R{CRqMTDe7#H zSf3Q9+Mbag?8{_MkDH}4Yeg~{duUIRHa!fiopc*t zyyJI1MB7Px%G9=g-1tH=;@M>K&$s`~$N6%dqRRd=KvL}krvLvF{?FcyX9~Y!Gp5As z3%hHos{?BX)eZ%!a51ZjvA5RMDNy7gXc>HjSbEETn|9GKFi6X>ZsXm#HSx`xi@5tQ z#CYL!q@u6!l@~9n-{6lzp@13fjgerYj}J}v`@0t^Dk^?kJC0YRls~^|RZciPdCbabSmil{b!;f+{BwcD# zWIcCGV*)w{kA#~?qY-e=>(Wnkb^f?&MY-U|loS_t;nBtOlSHhkN)>mkiq-`{*= zi;ARL+S;tEp6y3x)R5Z27hL+qZknab-IHHknRLwXNB~H;iTt5#T!zOZDQ9GuA01<5 z#LXH@BcrpR+4%DD;~yXTG7bek#NX?t#J`;iyKM77hdHsju)NAEAfSyJLs}nidV2cr zsgvkWDFM22Pyk*#k3E{&3LA9b_b8==)>PdD@T;R|iyYRBXNXe zG_|y>*4I`$;P;BXmueNL&8XtE?RprEhd)ewZ7adVgKD9MJpVm^Mrgg1dh;>${sUTsDM}#oL>}-z_Po*(N2P# z6|JkMS5((R(>i!ZOha2cVJODS09{P&#LU(c_XJe6w6;=EMU#}AEMIP<^627Ufrg@i zSB5bS9M*)E{P>FjR7DoxYj>NeKFYFnlUXtM&aJ~C+6JmhO3##{rLb`epVN1IYZ4OHWz*9^^`aNpi!p%E7s$Hu|Yiq5biCr_5!S&?)|gov5>8e4#-sUzP$p*7u5 zAiXVeVdX&`3++@(yUl4$4UOUWFatH5hek~nKYPZMlbicCD{J=n7UQgKeic^M)>PbR zX>MwYMX%;tpbcqtmpymRr)2u+?azXYC}6N@vZfKtJA2^O_wQzy96wm_l_+EHuzD!7G z@zQ9rm8GTXft@eyxtsL1e)Ntv&1%mE-x&Dmty>p|zJ7h#<2H7JEa|M&WFbt)vgZ8h z>*vo8QC*#eJXzwaR|k&lsjaOI>KxZ{cFuzZ6;eAo^?r7FwIlC#%xRmig4Ql2YGUk6 zIDr|(!CV29mr_gP&GLxYt%uYR4SV}61Fuy_=)TO1SKu}b085xE+T(JgRUj``<;v~i z`A{h7sgj`n)!JjI6*AvmNzcF#a)rxbb;%RT_TLip* z%CG*Yl2K}JX_#EJ#`)jq__%2_YsN!(i^18SLi(RBWVYLQaL{;*!(EjfLYr?@klY|$ zk_-x7r+`gbKHyA1%=CsmpsHWOeIZ49eZ{`gBs06wnAI1KP(w`(T*lnvUHPX>d2SR~ z)A@MA+D3aWT+=Ubkh>hf(Nb3C{i&*IXnX=jlG?kz=Ipsx*b7_l_AL{y0Lz3GPWPu> zJbJE^>KX^_cw}T`sHReTU`SuTeytEjLpsh3!S(nB&VZQtjT>aJ{!NUH&efG z;dhK_ek37gv|@*hhL_iRQS4Xva9HmI*glz^AM*A1Z?(UZ#Z^B{qwH|Yrf=tz64Y(; zB#9A5)_*eJO?pX((Mi2VduB-USi5;l3*0j#(A!T1gk(6&3?^9v9;BwG7TjBP>loW! z@w{<}`fR`CT$g?0iR)V~X=#NzO?2_V!|ss&aTZxK`Odx&1#ZXTKM%s~Q0jIkr=@9W zYKEY=W|*0d&ql-sz9YOWf`jC81%m;1^PgxD{ie;p{iz_Mj;YP*NaUOXh1`#aD~y80 z-s;vZva_v@t!>%@1Pry7d`os*SX>z6QQh99P>9iUr=Rhb5p3-2&1k=`@s1)80?x2O>!)<4pZXV62(--3_VG~s=9wVeL@JH|cn zFMtEw7yfR_YLre!Nx_k%CfmH^*RRjxVq-*9ltO3b=~JiT78aaDL`9Q}idKB8z%4hh zxGaL){VU^Dyin^L00{%S4Wwd}Z}ao7p$)!WVK)O?#CD^>_H0Y_8U=D8S!<{th-_SwxVaBx0(WKLh$x#(Z1Z&YiP~zwUcGJ_e$mPRlo*k5 zlbQ5IknsXAjoV;|_S|T4`e^mhnBc1ZgN$@qJPFh!C|Gd$*GwISFag6>*uyUdF+o9b zzZ!bnZ4W(I0O{z+mcwHeMl1?@=jO5rP^WS%c;+jZzJo(Ta)M21;pZiY)Wgi3Uk(PGQ1|>KNfH6Zy7{O`VRIE%pFJ zVE6Ce7jFbER6VvQ!m%9$fh>zc0JzJfFh;ynG_bM2(in9lLgs(!g}PHs6cX)0|@8{X{{8!rnBOHy{WhNx|qiWEo8eAFGW zl z!j4imn`E5`pZn;i0IF%_<>d-tLIP$F zX`USB2xw%Z7iWLwD%!%z$!WN2vJzKNvwxqybviOiX(+{qb+!V(Un92hNM-+B{UR4t zujS5O0L9GLl1H^ZbRGJ3cV|G=5PNh?SXkIX2Y$`cbnvvec=*D-LA(6#dTeqq7NjYe zzlFAyy+aTHCx{>{9Vl|VyU@8uppvAOen-sX_P3SQb6Li$aOrRm zc#k5pI-(4$x#>pP4GRwssrZT-=woy9o8ksxMHte9af_&8-~f+P{F$n;`L{SkA9N99 z9f-zk?{ET-zYnmCkhr(<{@xNbW)x^+F;ttzMT&9zc1tU(QJ)*|myqFErdAoRwIZOR zuy;k`N0_(a-{SQbEV9})G&F>*^K_k^7aza$!80?|2n4`~J_mD=y(^czepGNacXmc* z3Y3%fw!w)5eXBhy?6xJmW3dw|t3ldlu<*P~SP?!PNdMHhom_fbGT=hH&5nCTrxexU zHji{+A>Z$SaMT^-2pEG$pr(7RT6=;N4#Hx#c}GSKK&*v}if1T^ z3M{~5fzUEu(+CP2uv)011X&3oMMELg26(D)vP5!{FTIlaNhRnZC<_Yuh51*S5K*{E=2x{)daU~> zvF^0+RpsU9Jg3UHNVrVBQi_o#e=(&s8f18I9zN)5cvVPbWHKTr*W#Y+w#K@;;kW?l zF9;Gs`Sw5%M@L4Q0uNtyKy;QpB!PGp@n>%C>A}p23ETO_#ogba-yYitpz;RcdTp4% zSn*;H)o^X*SL~e`9MO&u7?&1gdg-bFAb5Fso12@tDg?h6a5DKh4t(B4h(8h|Pp<1C z*#au)wdnw_#NuMlo+BNuuC5(f<^dpnp{v66ndXiTi7{@tJ(AXCC}w~K&>bSLrkM2= z^WxbCNkV5R^0XOep?5eXLly?_EH+3d;$O$H*7)KcVMWON$j3*!mxg54lL$4HYKwaa z^a)vK;*d%_uATOVypMZT^kZj^br`^h8pqhggceE*YLEEHX0w?;{Bn?cJg{waO(=K|39@7u* zmw$V^Lc1g7BCrEWk9qm{>Ku3&LKV10BqSn6gh)oR@8p+C6@H~5C3hnm1g&dsZ%=~h zK<*{KdqUQA0=iGYDb;9(vULSTMR4H7*YzMqgaL!qVCXn|IPi)EkY#sw_vrBOpNP+p z`|yzNE$V}nXl~CkpYL&>9QiTb&&JBCBFv_*vN||8xKzI5-Yde&RpG{{!^}XnY3KIc z8MJwwsSy!uaEzt}!M{AgQaewu_v5Mk7zYgmxr;Q{|5b+E2hSP^qc!Ue01$nN6{Ig-wy>YHlC#l=>)Z-*gL zMvjL_97?d>sOHMZhJCvUqy${g{FuOb6v`#U_wY>h7N2jj`T_yY7f*UB6EDc&hP)vy zhS;T47^Wna*QW}24p15k6x|BU`PX`r2=F66gyU7*LT_~7A!V2#y;mkAsHlz^A@37J z9SMdj>>M}v(<_X4zbN2;Nr^NOIV2_?8Q_Z922JHYdX$C9FU(ZB4gJ1g`w3L8 zp{pxt&AJx~3_C;?w>PV{rcJSh|8bt^3asi!@+YL**6?Jv3051qFv8Zr!bb*@I7wOz zMB3^ShC4n!ju8F@QV$4(^!T+qtdaE?M14DEj#WVTc0X99Zp2~K+Hg5yn$HacNfs`Ve(wLQhx>ubp?1;y?y2@!dN$h#{8s z$_Ra-HB2uYR%><8(J8d(dZR$J^F&m@>fyIw*p zWZ76+*d@fuhy!k2n7luyrZSML`OtT#<|mN2bc`~R|DfWd?pBtHMMpPCU(MKjgRY^j zZY22Z-ohznDKHbsX~G@T_uUaA6a*nW_!Y#-N}dbt<^>)8Ap#^{wIaW(2>f|&NSAXq`vf{KR`rKu5x$>}0a5~-|a6zeL>tj-n9R&vNnacCnfkY1U(pr3Ci3rkF~{K7(@!YdoU;!uU&C8F*6 z2oWSqUl_B#Yqw#ze%&&H0w-P^gEoT1kwJoT40a$dv`+v#n!&w+(`26mz0AzmVLg)| zqOcr`wC@A}5n*kyu?TNlalGJ&VuA2n`&u4}xGbl~@VZZ*J;UUA z=|T|rc|%k-KB4bcmVL1f#OF6+K{r1Cr%xO=rjBX+XP$@t&yTKVovuW?G8dO(!-&n4 NlU2HycHZdze*t 200 ? 200 : msg.length)}...'); + } + } + } +}