xx } {よ|320i マフラー,ネット上で買ってマフラー巻き方どこが一番いい,マフラー巻き方新型


2015-03-10 09:28
エルメススカーフスーパーコピーイタリア老舗ブランドエルメス マフラー ウール・シルク hm011-ブラック短いマフ ラー 巻き 方男 性マフ ラー 巻き 方男カシミヤ マフラー ブランド メンズカシミヤ マフラー メンズブランドバッグハーレー中古 マフ ラー大判ストール巻き方スカーフの巻き方英国老舗ブランドマフラーの巻き方 メンズウールシルクマフラー中古マフラー バイクエルメススカーフ買取エルメスシルクジャージエルメスカシミアシルクエルメス マフラーコピー ダークブラウン 無地 カシミア100% hr15033エルメス スカーフ 価格エルメスコピー品エルメススカーフ鍵柄おしゃれなマフラーの巻き方男性エルメス財布エルメススーパーコピー シルクギャザー マフラー ピンク HR12592激安中古 マフ ラーエルメス マフラー ウール・シルク hm040901エルメス カシミア コートエルメスコピー商品マフラー巻き方流行シルク姉さん画像自動 車マ フラ ー修理vmax中古マフラー財布人気エルメスシルクブラウスプラダ財布エルメス マフラー 価格エルメススカーフ値段カシミヤ マフラー メンズ 人気エルメススーパーコピー シルクギャザー マフラー ブラック HR12597エルメスウールスカーフエルメス ショールオルチャン マフラー巻き方エルメスコピー代引きエルメス財布シルクイン定価マフ ラー 巻き 方男 性2011エルメス マフラー ウール・シルク hm1064セリーヌ財布ウール シルク 洗濯カシミヤ マフラー ブランド男性マフラー巻き方シルク印刷フランス老舗ブランドスカーフ巻き方女性bmw マフラー e39エルメス スカーフ ツイリーストール巻き方女性シルク ウール 洗剤エルメス財布メンズオレンジダウン老舗ブランドエルメスコピー時計エルメス マフラー ウール・シルク hm831エルメスシルクイン長財布bmw マフラー 交換エルメス シルク スカーフ自動車 マフラー メーカーエルメスマフラー男性エルメススカーフコピー見分け方バイクマフラー中古エルメスコットンジャージスカーフエルメス マフラー ウール・シルクオレンジ hm011カシミヤマフラー販売店エルメスシルクイン定価高校生マフラー巻き方エルメススカーフ制服マフラー巻き方エルメスマフラーマフ ラー 巻き 方女自動 車マ フラ ー中古エルメスカシミアシルクマフラーエルメスネクタイh柄エルメスシルクカシミヤストールエルメスマフラー定価カシミア マフラー 編み方オデッセイ中古マフラー自動車のマフラーエルメススカーフ価格自動 車マ フラ ー通販純正中古 マフ ラーエルメス手帳パープルシャネル財布エルメス マフラー ウール・シルク オレンジhm011シルクジャージースカーフ制服スカーフ巻き方エルメスストールカシミアシルクカシミヤ マフラー ブランド レディースエルメスカシミアストール大判カシミアマフラーベージュ自動車 マフラー 構造ストールクリップワゴン r 中古 マフ ラーシルクウールの着物エルメスカシミヤマフラーhks マフラー brz牛乳パックマフラー編み方エルメスシルクストール自動車マフラー製作エルメスマフラーオレンジbmw マフラー 音中古自動 車マ フラ ーメガネ老舗ブランドエルメス カシミア シルク ストールエルメス ブランドコピー マフラー シルク hr15018エルメス ショール 140ブランドコピーエルメスマフラーコピーbmw マフラー e90カシミヤ マフラー おすすめエルメスシルクインロングエルメスシルクイン財布エルメス公式サイトツイリー エルメスエルメスシルクジャージースカーフ中古 マフ ラー 販売エルメスカシミアシルクスカーフ中古 マフラー バイクエルメスマフラーメンズカシミアエルメスマフラー値段電話帳かんたんコピーシルクカシミヤストール中古マフラー販売店シルクウール着物コーチ財布エルメス マフラーコピー カシミア100% hr15034エルメス マフラーコピー カシミヤ100% Hロゴ hr15042タイシルクエルメス カレ 価格エルメス スカーフ 激安エルメス スカーフ 柄 種類三菱、hks、マフラーエルメスブログカシミアシルクエルメスシルクインコンパクトシルクラボ自動車マフラーシルク ウール レッグウォーマー時計老舗ブランドエルメススカーフ新作マフラー巻き方メンズマフ ラー 巻き 方流行カシミア マフラー 値段自動 車マ フラ ー販売マフラーの巻き方男性かわいいマフラー巻き方エルメスバーキンパープルスカーフ巻き方メンズマフラーの巻き方bmw マフラー車のマフラーエルメス財布アザップシルクインbmw バイク マフラースカーフ巻き方男性エルメススーパーコピー シルク マフラー オレンジ HR12598320i マフラーステップワゴン中 古マ フラ ースカーフ結び方ユニクロ カシミア マフラーエルメスシルクイン評判中古マフラー販売ストール巻き方メンズエルメス マフラー ウール・シルク hm040905エルメスバッグ人気自動 車マ フラ ーメーカマフラー巻き方女hks マフラーエルメス財布カタログエルメススーパーコピー シルクギャザー マフラー グレーオレ HR12594エルメススカーフバブルエルメス ストール メンズスカーフ エルメス 巻き方靴老舗ブランドエルメスコピー見分け方シルク ウール 違いマフ ラー 巻き 方男 性コートエルメスシルクインピンクマフラー 巻き方 女マフラーの巻き方男エルメススーパーコピー シルク二重マフラー オレンジ HR12589エルメス シルクイン 評判マフラー 編み方vmax 中古 マフ ラーカシミヤマフラーメンズ高島屋カシミヤマフラースーパーコピー手作りマフラー編み方大判ストールの巻き方エルメスカシミアマフラーブランド財布自動 車マ フラ ー構造エルメス バンダナ 動画自動 車マ フラ ー製作エルメス財布パープルカシミヤ マフラー クリーニングフジツボ マフラーカシミアマフラーメンズ中古 マフ ラー バイクバイク中古マフラー自動 車マ フラ ー交換エルメスバッグ種類エルメス マフラー ウール・シルク hm1062エルメスシルクインコピーカシミヤマフラー店男性用マフラー編み方エルメス マフラー メンズ カシミアエルメスシルクジャージーおしゃれなマフラーの巻き方マフ ラー 巻き 方男性ウール シルク スーツカシミア マフラー 洗濯マフラー巻き方女性エルメス スカーフ 盆栽エルメス ストール カシミアシルクエルメス スカーフ 買取スカーフ エルメス 中古自動 車マ フラ ー価格エルメススーパーコピー シルク マフラー ブラック HR12603ストールの巻き方エルメススカーフ着物柄エルメス スカーフ 中古制服マフ ラー 巻き 方エルメススーパーコピー シルクギャザー マフラー オレンジ HR12591財布ブランドマフラー 巻き方 レディースシルク ウール レギンスエルメス スカーフ 一覧エルメススカーフ人気柄エルメス シルク バンダナバイクマフラー自動車 マフラー 中古エルメス スカーフ 価格 パリ5次元 マフラーマフラーの巻き方 学生マフラー 巻き方 メンズエルメススーパーコピー シルクギャザー マフラー グレー HR12593エルメス マフラー ウール・シルク hm011-Claretジムニー 中古マフラーbmw マフラー サウンドエルメスコピースカーフクリップマフ ラー 巻き 方女性中古マフラー 販売シャネル財布人気ランキングエルメス マフラー ウール・シルク レッドhm011エルメスシルクインブルー日本自動車マフラー協会マフラー巻き方男エルメスジャージスカーフエルメス スカーフ 偽物 見分け方長いマフラーの巻き方bmw マフラー e46ストール巻き方おしゃれエルメス マフラー カシミア財布ランキングブランドマフ ラー 巻き 方メンズcb400sf 中古マフラーエルメスバンダナエルメスカシミアスカーフ眼鏡老舗ブランドcb1300中 古マ フラ ーエルメスバッグの種類かっこいいマフラーの巻き方シルク画像男性のマフラーの巻き方エルメスジャージースカーフバイク中古 マフ ラーエルメススーパーコピー シルク マフラー バーブル HR12602エルメス マフラー ウール・シルク hm040904エルメス シルク ジャージー スカーフエルメススーパーコピー 口コミエルメスストールエルメスマフラー価格財布ランキングバーバリー マフラー カシミアエルメス スカーフ スーパーコピーシルク ウール ストールスカーフリングマフラー巻き方男短いカシミヤ マフラー レディースエルメス時計カタログかわいいマフラーの巻き方エルメスカシミアシルク140エルメスマフラーメンズ価格男性マフラーの巻き方マフラー 編み方 かぎ針ストール 巻き方エルメスシルクイン使い勝手エルメススカーフカシミヤエルメス マフラー ウール・シルク hm040903エルメス マフラーコピー カシミア100% ベージュ hr15035ストールまき方エルメス シルク バッグエルメス 財布 シルクインスカーフの結び方エルメス マフラー コピーストールの巻き方メンズエルメスカシミアストール人気ブランド財布ランキングエルメスシルクイン2013エルメス 野生の優しさエルメス マフラー レディースエルメススカーフオレンジカシミヤストールエルメスマフラー 編み方 初心者エルメス スカーフ サイズ自動 車マ フラ ー専門店エルメス バンダナ 風の民エルメスシルクスカーフエルメス財布スカーフ柄カシミヤマフラー値段自動 車マ フラ ーメーカーエルメスカシミアショールエルメスコピースカーフ簡単手編みマフラー編み方結婚式ストール巻き方韓国エルメスコピーエルメススカーフコピーメンズスカーフ巻き方エルメススカーフカシミアシルク男性マフ ラー 巻き 方hks マフラー 音エルメススーパーコピーマフラー 巻き方エルメス マフラー ウール・シルク hm1061エルメスストールカシミアエルメスカシミヤエルメス財布シルクインピンクマフラー巻き方学生エルメススーパーコピー シルク マフラー ブルー HR12599ゼファー750中 古マ フラ ーエルメスコピー激安ストール巻き方エルメス スカーフhks マフラー hpエルメスシルクイン新作エルメススカーフ偽物スカーフの巻き方女性シルク姉さんエルメス時計かわいいマフ ラー 巻き 方エルメス ストールスーパーコピー カシミヤ ショール hr15017マフラー カシミア スコットランドウール シルク 混紡マフラー編み方エルメス画像エルメスマフラーメンズリバーシブルエルメススーパーコピーn級品エルメスシルクインマフ ラー 巻き 方男 性人気ストール編み図エルメスカレシルクジャージーエルメススカーフカシミアエルメス ツイリーエルメス カシミア ストール 大判コーチマフラーカシミア中古マフラーエルメス マフラー ウール・シルク hm040902エルメス スカーフ 柄一覧prada 財布フジツボマフラー着物シルクウールスーパーコピーエルメス財布エルメス マフラー メンズストール結び方エルメス スカーフ 結び方エルメスアザップシルクインコピーマフラー巻き方男性人気エルメス バンダナ スカーフエルメスカシミアシルクショール自動車中古 マフ ラーシルクラボ動画エルメスシルクカシミアスカーフエルメス値段エルメスマフラーカシミアヨーロッパ老舗ブランド登山靴エルメス スカーフ 新作カシミヤ マフラー ユニクロハーレー 中古マフラーマフラーの編み方レッドバロン中 古マ フラ ーエルメスコピー平田屋coach マフラーカシミアマフラーの巻き方メンズ時計ブランドカシミヤマフラーストールエルメスシルクカシミヤセーラー服スカーフ結び方ねじねじマフラー巻き方オデッセイ中古 マフ ラーエルメススカーフ柄エルメスブランドコピー H柄カシミアマフラー ネイビー×グリーン hr15041カシミア マフラー ブランドカシミヤ マフラー 白エルメススカーフ馬柄エルメス壁紙エルメスコピー財布エルメススーパーコピー シルク マフラー レッド HR12604エルメスマフラーメンズオレンジエルメスバッグ一覧マフラーの巻き方女性エルメス マフラー ウール・シルク hm832hksマフラー 評価エルメス マフラー ウール・シルク hm040908子供服ブランドバイク マフラー 音bmw マフラー e87カシミア マフラー ブランド レディースエルメス シルク 財布かぎ針編みマフラー編み方エルメスバッグヴィトン財布カタログカシミヤストール巻き方マフラー 編み方 簡単カシミア マフラー 手入れエルメス マフラー h柄100円ショップシルク自動 車マ フラ ー製造男スカーフ巻き方エルメス バーキン スーパーコピー自動車 マフラー 修理エルメススカーフ柄バッグスカーフ巻き方スカーフリング使い方エルメス スカーフ 巻き方自動車 マフラー 触媒エルメス食器エルメスコピー韓国レッドバロン 中古マフラーエルメスマフラーカシミヤw650 中古マフラーエルメスシルクジャージスカーフエルメス ツイリースカーフシルク ウール 靴下エルメスカシミアシルクストールマフラーの巻き方 レディースシルクジャージーストールエルメス スカーフ メンズマフラー巻き方男性カシミアマフラー無地エルメス マフラー ウール・シルク hm040907シルク生地エルメスパープルカシミア マフラー クリーニング男子マフラー巻き方エルメス スカーフ カレdvd コピーエルメス マフラースーパーコピー カシミヤ hr15045川俣シルクエルメス スカーフ 洗濯エルメス スカーフ コピー 見分け方エルメスコットンジャージースカーフシルク ウール 暖かさfzr250中古マフラーバイク マフラー 自作シルクウール反物マフラー巻き方自動車マフラー シェア

ここから本文です

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

www.riollet.jp/

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

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

www.komehyo.jp/

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

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

120件目

選択条件

  • キーワード
    ルイヴィトン コインケース
スカーフ、ストール&マフラー アレンジ140 毎日使える結び方からベルト、バッグまで
__1,51200
スカーフ、ストール&マフラー アレンジ140 毎日使える結び方からベルト、バッグまで 
スカーフ・ストール・マフラーの結び方―えりの形にあわせて着こなし上手
__null00
スカーフ・ストール・マフラーの結び方―えりの形にあわせて着こなし上手 
InRed特別編集 ストールの巻き方 (e-MOOK)
__69900
InRed特別編集 ストールの巻き方 (e-MOOK) 
スカーフ・ストール・マフラー―“自分らしさ”が際立つ巻き方・結び方
__null00
スカーフ・ストール・マフラー―“自分らしさ”が際立つ巻き方・結び方 
InRed Style ストールのおしゃれな巻き方100 (e-MOOK)
__80200
InRed Style ストールのおしゃれな巻き方100 (e-MOOK) 
スカーフ、ストール&マフラー巻き方120―いつもの服が大変身!巻くだけでかんたんにおしゃれになれる!
__null00
スカーフ、ストール&マフラー巻き方120―いつもの服が大変身!巻くだけでかんたんにおしゃれになれる! 
本文はここまでです このページの先頭へ

ck手镯表女士正品新款针织连衣裙女冬 长袖儿童早教有声点读挂图天津防水羊毛被价格表耐克杜兰特6代篮球鞋 运动鞋连衣裙女装夏装 纯棉多肉花盆冰裂陶瓷包邮3元以下福睿斯亚麻座套全包春秋皮靴女真皮高跟鞋 防水台锐界进口2016goodmring毛裤起针单肩包学生女复古韩版毛衣中老年羊绒衫加厚高跟鞋 单鞋圆头 甜美 公主跑男3同款衣服儿童变行金刚玩具汽车收纳柜+抽屉式窄吉利新金刚座套 英伦夏天波士顿印花女包枕头包坚果手机后盖 锤子t1lv贝壳包alma+bb代购女棉毛裤 秋裤 高腰女童套装三件套韩版冬糍粑的做法大全收脚裤男春季珀莱雅水动力的红米2a 钢化膜 防爆 包邮车载手机吸盘磁性奥迪女童蕾丝连衣裙秋冬款超低腰内裤女 超性感 弹力混合动力汽车价格表2015真皮圆头平底单鞋女 甜美小苍外设店 机械键盘 有线鞋收纳架托 可调节正品水光针面膜补水女士短袖衬衫雨伞女 折叠 小清新花 纯色男士休闲鞋春季圆头板鞋整体衣橱卧室衣柜组合大容量代购男童牛仔外套个性网名男生繁体台式电脑的配置大全手机4g智能+安卓电信版5寸韩版男小脚裤潮修身pu杭州婚纱摄影店排名复古小方包斜挎包迷你 学院收腹纱布的绑法图女童春秋牛仔长袖背带裤套装男款靴子 马丁靴马毛官网vivox5pro报价浪莎男士内衣秋衣秋裤童装春款2016潮款+韩版男拓实无线网卡接收器 大功率动感单车怎么骑减肥厨房柜收纳分层置物架韩版女裤子 潮 九分裤 复古春装女大码连衣裙性感裤子男青少年韩版潮流哈龙裤收腰连衣裙中长款春秋客厅柜子 装饰柜 现代 玻璃whoo后天气丹小样套盒青年男士上衣外套春季 立领10寸相框 实木 塑料女童牛仔半身裙韩版 夏季男款风衣中长款薄数据线保护套保护绳 苹果手机津贝儿童内衣套装清仓+彩棉北欧简约椅子 靠背懒人帆布鞋男 低帮 青春潮流凉鞋女夏透明高跟鞋带绒的打底衫女 加厚苹果4s正品手机充电器头+线带梳修眉剪怎么用卫裤女加绒直筒运动裤儿童夏天裙子 公主裙长袖牛仔裤小脚裤女夏新逍客后备箱垫+日产麦芽糖美瞳 陌陌无线吸尘器家用 充电 车载背心女 宽松 纯棉外穿欧洲站男款高领短袖针织衫羽绒服 女 中长款 黑罗技无线键盘k240情侣装卫衣 套头 简约薄女秋装上衣长袖宽松 牛仔运动收口裤男 卫裤 大码微信电脑版怎么登录界面电脑式电子表交通银行招聘考试真题下载大麻花针的织法视频大童女装套装春秋装 儿童春装打底衫女冬 短款男立领纯色棉衣短款秋薄羽绒礼服裙 韩版 聚会大码衬衫短袖宽松女韩版夏2016正品阿迪三叶草板鞋男
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