グッチ財布メンズ新作推薦 gucci シマ 長財布 ラウンドファスナー グッチ財布メンズ新作製品はどう|グッチ財布メンズ新作生産メーカー


2015-03-10 12:42
二つ折り財布小銭入れグッチ財布新作2013財布 グッチ レディース アウトレットgucci財布ハート二つ折り財布メンズ小銭入れなしグッチ 財布 レディース ピンクグッチ財布メンズ新作グッチ財布新作2012ラウンドファスナー 長財布グッチ財布新作メンズgucciシマ財布メンズ長財布レディースグッチ財布+メンズグッチ秋冬新作グッチキーケース激安gucci 財布 シマgucci長財布新作メンズ財布二つ折り二つ折り財布の作り方財布メンズ二つ折り小銭入れありgucci長財布 新作グッチ長財布レディースグッチ財布メンズラウンドファスナーラウンドファスナー長財布gucci ラウンドファスナー長財布gucciラウンドファスナー長財布gucci 財布 メンズ 長財布gucci 長財布 メンズプラダ二つ折り財布メンズグッチ カードケースグッチ キーケース 値段グッチ財布メンズ二つ折り新作ヴィトン財布二つ折りgucci 財布 コピーグッチコピーメタルバー グッチシマ 長財布 メタリックブルー112715AHB1G4104ビトン長財布新作gucciグッチシマラウンドファスナー二つ折り財布小銭入れ無しグッチコピーシマ ハートモチーフ 長財布 アイボリー203550AA61G9022グッチ財布2012秋冬財布 がま口 ブランド メンズメンズ二つ折り財布ボックス小銭入れメンズ長財布プラダ三つ折り財布レディースバイマprada二つ折り財布プラダ長財布新作グッチ財布新作2012秋冬グッチ長財布メンズアウトレットグッチコピーシマ ラブリー 長財布 ピンクベージュ245723AA61G9905財布メンズ二つ折り小銭入れなし財布メンズ小銭入れなしポールスミス長財布グッチ 財布 新作 レディースグッチコピーメイフェア グッチシマ 長財布 アイボリー257003AA61G9022gucci財布コピープラダ財布二つ折りグッチ長財布miumiu 財布二つ折りグッチ 財布 修理グッチコピーシマ クレスト 長財布 ダークブラウン203618BEG1T2504人気グッチ財布新作2015年春夏新作 グッチ レディース 長財布 グッチシマ ラウンドファスナー アイボリー 307986 AA61N 9022グッチ二つ折り財布レディースグッチ 財布 メンズプラダ二つ折り財布コーチ二つ折り財布メンズgucci シマ 財布グッチ長財布アウトレットグッチ 財布 レディース 新作グッチ 財布 レディース 長財布プラダ二つ折りメンズgucci シマ長財布グッチ 財布 長財布gucci シマ 手帳gucci 財布 ハート ピンクミュウミュウ 財布gucci 楽天gucci シマ バッグgucciレディース長財布グッチレディース長財布がま口 財布 革グッチ新作バック財布+メンズ+二つ折りgucci キーケースprada二つ折り財布メンズミュウミュウ二つ折り財布グッチ長財布ピンクグッチ 財布 新作 ピンクグッチコピーシマ クレスト 長財布 ダークブラウン190350AA61G2019グッチ 財布 値段グッチ財布メンズ二つ折り小銭入れありヴィトン 財布 メンズ 長財布グッチシマレザー財布グッチ 長財布 ピンクグッチ長財布ランキングgucci二つ折り財布メンズグッチシマ財布二つ折り小銭入れなし長財布人気ヴィトン長財布グッチシマ長財布ピンクグッチ財布新作ポールスミス長財布新作prada 2つ折り財布gucci バッグ コピーグッチ二つ折りメンズグッチシマレザー長財布長財布 メンズ ブランド二つ折り財布メンズブランドグッチ財布二つ折りレディース長財布ブランドグッチ 財布 アウトレットヴィトン 長財布 新作マイクログッチシマ長財布gucci長財布メンズ人気gucci 長財布新作新作グッチ長財布グッチコピーシマ 長財布 アイボリー112724A0V1G9022グッチ 財布 新作 2013 メンズ財布メンズ小銭入れグッチ 長財布 レディース ハート ラブリー グッチシマ メタリックゴールド 251861 AHB1G 8245グッチの財布新作プラダ財布メンズ二つ折りグッチ長財布レディースランキングコーチ二つ折りがま口財布グッチ 長財布 レディースコーチ長財布新作グッチシマラウンドファスナー長財布グッチ 新作 バッグ 2014グッチシマ長財布コピーヴィトン長財布新作グッチ財布新作レディースgucci財布メンズ長財布gucci長財布メンズ新作グッチコピーシマ 長財布 メタリックダークボルドー 244946AHB1G6017ブランド 財布グッチキーケース偽物グッチ 財布 メンズ 長財布グッチコピーシマ 長財布 ブラック233025AA61N1000グッチ二つ折り財布coach 二つ折り財布グッチ長財布シマグッチコピーシマ ミストラル 長財布 ダークブラウン256439A2O1N2033グッチ 財布 新作 メンズグッチシマ長財布gucci ハートラインprada二つ折り財布グッチコピーシマ 長財布 ブラック112724A0V1G1000グッチ 財布 新作財布メンズ二つ折り二つ折り財布ブランド財布メンズグッチ バッグ コピーグッチ長財布2012新作ビィトン長財布新作グッチシマ財布gucci ベルトバッググッ チ長 財布 新作 2012プラダ財布メンズ定価グッチ長財布スーパーコピーメンズ二つ折り財布メンズ二つ折り財布ランキングprada二つ折り長財布グッチ長財布メンズコピーグッチ 財布 新作 2012グッチ財布秋冬グッチ 財布 レディース 白ニナリッチ二つ折り財布gucci 偽物キーケース グッチグッチ 偽物 見分け方グッチ 財布 定価黒グッ チ財 布二 つ折 り w ホックグッチコピーシマ 長財布(札入れ) メタリックグレー224183AHB1R9640gucci 長財布 2012gucci財布二つ折りグッチ 財布 修理 ボタンプラダ財布メンズ長財布グッチ 公式グッチ 長財布 新作グッチ財布新作ラウンドファスナー二つ折り財布作り方グッチコピーシマ ミストラル 長財布 ダークブラウン256434A2O1N2033財布二つ折り長財布gucci長財布メンズグッチキーケースアウトレットグッチ 財布 シマ ラウンドファスナーがま口財布 作り方グッチ偽物prada 長財布新作財布メンズ二つ折り薄いがま口財布 京都グッチ バッグ 楽天コーチ二つ折り財布アウトレットグッチ 財布グッチキーケースコピー革財布二つ折りgucci長財布 アウトレットグッチ バック 新作gucci 財布 メンズ 新作財布二つ折り小銭入れ外側プラダ財布新作レディースグッチ長財布メンズファスナーグッチ 財布 コピーマイクログッチシマ財布ニナリッチ財布二つ折りgucci財布メンズ二つ折り二 つ折り 財布 メンズ 人気プラダ サフィアーノ 財布グッチシマ財布メンズポールスミス財布新作レディースグッチ二つ折り財布メンズグッチ 財布 新作 2014コーチ 財布プラダ 二つ折り財布 レディースファッショングッチ長財布gucci二つ折り財布レディースgucci財布レディース新作グッチ長財布コピーグッチ長財布レディース新作ファッショング ッチ 長財 布新 作グッチ バッグ 新作プラダ財布メンズ新作gucci財布ラウンドファスナーgucci長財布レディース人気財布メンズ二つ折りイタリアgucci長財布レディース新作ゴヤール財布二つ折り財布 メンズ 長財布2015冬新作 グッチブランドコピー 財布 長 メンズ2015冬新作 グッチブランドコピー 長財布 GGキャンバス ベージュ 233112-FAFXR-9643ヴィトン長財布新作2012gucci 2つ折り財布二つ折り財布ランキンググッチ財布メンズ新品グッチ 財布 メンズ 二つ折り 小銭入れありgucci長財布メンズアウトレットキーケースグッチメンズ二つ折り長財布メンズgucci 財布グッチ財布新作2011グッチ 財布 人気グッチ財布シマラウンドファスナーグッチラウンドファスナー長財布メンズグッチ 長財布 楽天ブランド長財布グッチ 偽物 販売gucci シマ 長財布prada 長財布グッチ+長財布gucci 長財布 ラウンドファスナーprada 小銭入れグッチ 長財布 メンズグッチ長財布ラウンドファスナープラダ 小銭入れヴィトン二つ折り財布財布メンズ二つ折りランキングバレンシアガ財布二つ折りメンズgucci 財布新作レディースグッチ財布メンズ長財布グッチ二つ折り財布コピーグッチファスナー長財布プラダ 三つ折り財布gucci 二つ折り財布キーケースグッチレディースコーチ財布二つ折り激安グッチ長財布グッチ長財布メンズgucci財布シマgucci長財布ファスナーがま口 長財布 ブランド二 つ折り 財布 メンズ ブランドシャネル 二つ折り財布長財布メンズ小銭入れあり2つ折り財布メンズgucci財布グッチ 長財布 ハートグッチ長財布赤gucci シマ 長財布 ラウンドファスナービトン長財布gucci 財布 メンズグッチ 新作 バッグ 2013グッチマイクログッチシマグッチ 財布 メンズ二つ折り財布 型押しレザー×レザー 237359 AF41N 2814財布 がま口 長財布二 つ折り 財布 メンズ 小銭入れなしgucci コピーgucci 長財布 メンズ 人気グッチキーケース値段gucciシマラウンドファスナー長財布gucci バッグプラダ2つ折財布コーチ二つ折財布プラダ+財布+メンズグッチ 財布 レディース 二つ折りプラダ2つ折り財布メンズ 二 つ折り 財布 人気 ブランドがま口 長財布クロエ 長財布 レディースgucci二つ折り財布グッチ 小物長財布メンズ小銭入れなし財布 ブランドプラダ三つ折り財布メンズgucci長財布ラウンドファスナーグッチ 財布 激安グッチ財布ラウンドファスナー長財布二つ折り財布小銭入れなしグッチ 財布 二つ折りグッチ財布シマグッチ 長財布gucci長財布コピーグッチの財布メンズグッチコピーシマ ハートモチーフ 長財布 ローズピンク245914AA61G5709プラダ財布新作ヴィトン 財布二つ折り長財布gucciファスナー長財布グッチ長財布新作2013グッチ 財布 アウトレット メンズグッチ長財布ハート財布 メンズ 二 つ折り 薄いグッチ二つ折り財布新作gucci japanグッチ 財布 レディース 激安グッチ二つ折りマネークリップグッチ財布二つ折り財布二 つ折り 財布 メンズ 革シャネル財布新作グッチラウンドファスナー長財布gucciシマラウンドファスナープラダ財布メンズ2012グッチ 財布 メンズ二つ折り財布 295873 A49JN 1085プラダ 長財布 レディースプラダ 二つ折り財布 メンズポールスミス財布二つ折り革財布メンズ二つ折りグッチ財布秋冬新作グッチ バッググッチ 財布 シマ ピンクプラダ二つ折り財布レディースがま口財布 ブランドgucci二つ折り財布コピー長財布小銭入れ2つメンズルイヴィトン長財布グッチ財布ラウンドファスナーグッチ二つ折りグッチ財布二つ折りプラダ 2つ折り財布グッチシマ長財布メンズgucci 財布 激安グッチ がま口 長財布グッチ長財布メンズ新作グッチ長財布新作2012グッチ財布グッチ財布新作赤グッチ 長財布 メンズ 人気グッチコピーシマ ハートモチーフ 長財布 ダークブラウン245914AA61G2019グッチ財布ラウンドファスナー黒グッチコピーメイフェア グッチシマ 長財布 ラベンダー256933AA61G5403ディオール長財布新作グッチの財布グッチ 二つ折り財布 レディースgucci長財布人気ファッションファッション小物財布二つ折り 財布アウトレットgucciシマ長財布gucciシマ二つ折り財布メンズコーチ二つ折り財布激安グッチ 長財布 アウトレットグッチキーケース新作グッチ財布2012春夏グッチメンズ二つ折りグッチ財布メンズランキングボックス小銭入れ付き財布シャネル 長財布グッチ長財布レディース人気クロコダイル財布二つ折りグッ チ財 布メ ンズ 二つ 折り 新作セリーヌ財布二つ折りグッチ長財布人気グッチシマ 長財布gucci長財布メンズラウンドファスナー長財布 レディースメンズ財布二つ折り小銭入れなしシャネル長財布新作二つ折り財布小銭入れ外側グッチ 財布 新作 2013グッチ 財布 2つ折りグッチ2つ折り財布楽天グッチ財布グッチ キーケースgucci 長財布 ハートプラダ 財布gucciコピー商品グッチコピーシマ 長財布(札入れ) ダークブラウン224183A0V1R2019激安グッチ財布グッチ パスケースグッチコピーシマ メタルプレート 長財布 ダークブラウン257012AA61G2019ブランド 財布 がま口 二つ折りグッチ 財布 ランキンググッチ 財布 ピンクグッチ長財布新作グッチマイクロシマ財布小銭入れなしグッチマイクロシマ財布gucciシマ財布コーチ 財布 メンズ 二つ折りダコタ財布二つ折りグッチコピーシマ 長財布 ブラック112715A0V1G1000グッチコピーシマ ハートモチーフ 長財布 アイボリー245914AA61G9022グッチ 財布 新作 花柄2015春夏新グッチ 財布 二つ折り長財布 GGスプリームキャンバス コンチネンタルウォレット 309754 KHN6G 8868グッチ 財布 レディース ランキンググッチ財布2つ折りgucciシマ 長財布セリーヌ財布新作prada二つ折り財布レディースグッチ 二つ折り財布prada 二つ折り財布二つ折り財布型紙gucci 財布 新作gucciシマ二つ折り財布gucci新作長財布グッチ 財布 修理 値段グッチ財布メンズ人気ルイヴィトン長財布新作財布 がま口 二つ折り財布二つ折り小銭入れ仕切りグッチ財布メンズ二つ折りシャネル 長財布 新作グッチ 鞄 新作コーチ財布メンズ二つ折り二つ折り財布人気グッチ財布レディース新作グッチシマ+長財布グッチ 財布 新作 リボンブランド財布二つ折り二つ折り小銭入れなし2015冬新作 プラダ スーパーコピー二つ折り財布 メンズ 2m0738二つ折り財布ボックス型小銭入れグッチ長財布偽物gucci二つ折り財布新作コーチ財布二つ折りレディースグッチシマ 財布 ピンクgucci 長財布二つ折り財布小銭入れありコーチ2つ折り財布gucci 長財布 レディースグッチ長財布白gucci長財布グッチ シマ 長財布グッチ 財布 ハート

ここから本文です

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

www.riollet.jp/

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

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

www.komehyo.jp/

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

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

120件目

選択条件

  • キーワード
    ルイヴィトン コインケース
(グッチ) GUCCI グッチ 財布 GUCCI 308795 A7MMN 2061 CELLARIUS ACE 長財布 ダークブラウン[並行輸入品]
__49,80000
(グッチ) GUCCI グッチ 財布 GUCCI 308795 A7MMN 2061 CELLARIUS ACE 長財布 ダークブラウン[並行輸入品] 
(グッチ) GUCCI グッチ 財布 GUCCI 212109 FU49N 1000 GG IMPRIME GGインプリメ 長財布 ブラック[並行輸入品]
__52,80000
(グッチ) GUCCI グッチ 財布 GUCCI 212109 FU49N 1000 GG IMPRIME GGインプリメ 長財布 ブラック[並行輸入品] 
(グッチ)GUCCI メンズ メタルバー GGキャンバス 2つ折り長財布 ベージュ×ダークブラウン 244946-F40IR-9643 [並行輸入品]
__43,30000
(グッチ)GUCCI メンズ メタルバー GGキャンバス 2つ折り長財布 ベージュ×ダークブラウン 244946-F40IR-9643 [並行輸入品] 
(グッチ) GUCCI グッチ 財布 GUCCI 307987 BMJ1R 4009 MICRO GUCCISSIMA マイクログッチシマ ラウンドファスナー 長財布 ブルー[並行輸入品]
__59,80000
(グッチ) GUCCI グッチ 財布 GUCCI 307987 BMJ1R 4009 MICRO GUCCISSIMA マイクログッチシマ ラウンドファスナー 長財布 ブルー[並行輸入品] 
(グッチ) GUCCI グッチ 財布 GUCCI 307987 AR91R 3371 MICRO GUCCISSIMA マイクログッチシマ ラウンドファスナー 長財布 オリーブグリーン/グリーン[並行輸入品]
__59,80000
(グッチ) GUCCI グッチ 財布 GUCCI 307987 AR91R 3371 MICRO GUCCISSIMA マイクログッチシマ ラウンドファスナー 長財布 オリーブグリーン/グリーン[並行輸入品] 
(グッチ) GUCCI グッチ 時計 メンズ GUCCI YA055311 Gクラス 腕時計 ウォッチ シルバー/ホワイト[並行輸入品]
__67,80000
(グッチ) GUCCI グッチ 時計 メンズ GUCCI YA055311 Gクラス 腕時計 ウォッチ シルバー/ホワイト[並行輸入品] 
本文はここまでです このページの先頭へ

耐克运动鞋 学生女童松糕鞋女春秋厚底尖头吉利人家肉松蛋糕包邮免运费女春秋长袖家居服套装英伦风女装套装 秋冬supreme短袖女t恤代购欧诗漫化妆品价格表图片大全休闲鞋高帮运动鞋透气男鞋女士胖款女春秋装外套 休闲核桃树的种植方法及管理办法戴隐形眼镜眼睛干涩怎么办马自达坐垫四季通用阿特兹冬季蕾丝打底裙修身韩版弹力迷你拉链硬币零钱包男鞋运动鞋特步品牌特价睡衣女套装 宽松 春季雪纺蕾丝打底衫中长款+修身潮西装休闲裤男修身女款靴子哪个牌子好内裤女 性感 透明 开档露毛女装夏装套装+短裤 韩版钱包男短款 竖款 拉链 复古现代舞蹈服装演出服女装+亮片法国lv官网价格摩托车 水冷 本田 二手长版卫衣裙韩版 宽松 显瘦多功能尼龙女款胸包华硕笔记本电脑发光键盘套中华v3试驾视频评测视频型男秋装男2015搭配连体泳衣韩国钢托c杯卡宾2015秋冬外套男装女款打底衣长款图片男款休闲长款毛衣外套眼笔眼部按摩笔充电中老年女装春秋打底衫 短款品牌男装外套 中长款 羊毛大衣金鱼饲料观赏鱼鱼食 散装批发莫代尔宽肩紧身背心男男士长款毛衣外套韩版+秋冬塑料柜子衣柜+组合+现代简约女靴短靴+粗跟 黑色夏季女装 休闲 百搭 中腰长款衬衫连衣裙 印花 真丝情侣名字配对网名伤感床边电脑桌移动 升降 多功能sd娃娃鞋子制作过程扫地机器人+一体机+拖地机jeep车载手机支架牛仔衣男 外套 破洞小码笔记本电脑支架颈椎托架万向架学生春裤子女百搭卫生间浴室镜带不锈钢置物柜欧珀莱臻源新肌系列怎么样儿童多功能组合床实木 宜家耐克男鞋高帮冬季保暖平安境外旅游意外险和尚服演出服 幼儿圆枕头颈椎枕 成人 学生真皮斜挎手提包女包小 简约小钱包 零钱包 拉链 学生韩版挎包女 单肩斜挎 学院铠甲勇士刑天的玩具皮草女 短款 圆领韩国针织开衫女外套厚加绒女牛仔上衣春秋款外套胜利羽毛球服 男女 春夏魔幻车神玩具正版+灵动+卡牌夏季运动裤男长裤薄款透气六岁男童针织衫开衫春秋中国女士钱包品牌排行秋装打底女上衣中长款山西红枣包邮 特级女士春季秋衣外穿 百搭新秀丽拉杆箱 28寸 行李箱女士平角大码运动内裤纯棉中腰熊顿好友艾米去世了嘛儿童羽毛球拍玩具包邮儿童男睡衣 春秋 薄款删除icloud+id书橱 书架 书柜 实木 欧美本命年男士内裤猴年四角纯色休闲裤男 青少年 运动 潮牌春季女雪纺衬衫 宽松田园风格实木储物架手工编织宝宝鞋袜消毒纱布+医用灭菌羊老大棉袄女棉衣毛绒绒鞋子冬女 懒人 一脚蹬儿童冲锋衣男 两件套 迷彩8g内存和4g内存差别大不浙江的特产是什么意思男士休闲鞋 懒人 套脚汽车全包围脚垫双层科鲁兹休闲套装男冬 春秋季
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