From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Owen W. Taylor To: git-commits@fedoraproject.org Subject: [flatpaks/flatpak-runtime] f45: resolve-files.py: Piggy-back our files map off of fedmod metadata Date: Fri, 11 Sep 2026 14:40:11 GMT Message-ID: <178913761102.1.4321861992246994119.flatpaks-flatpak-runtime-edd83a408d4e@fedoraproject.org> List-ID: X-Git-Repo: flatpaks/flatpak-runtime X-Git-Branch: f45 X-Git-Rev: edd83a408d4ebe959596efe35743fa7c0d185ff1 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IGZsYXRwYWtzL2ZsYXRwYWstcnVudGltZQogICAgICAgICAgICBCcmFuY2ggOiBmNDUK ICAgICAgICAgICAgQ29tbWl0IDogZWRkODNhNDA4ZDRlYmU5NTk1OTZlZmUzNTc0M2ZhN2MwZDE4 NWZmMQogICAgICAgICAgICBBdXRob3IgOiBPd2VuIFcuIFRheWxvciA8b3RheWxvckBmaXNoc291 cC5uZXQ+CiAgICAgICAgICAgIERhdGUgICA6IDIwMTgtMDEtMzFUMTE6MjE6MDErMDE6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzE0OC8tMTA5IGluIDEgZmlsZShzKQogICAgICAgICAgICBVUkwg ICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9mbGF0cGFrcy9mbGF0cGFrLXJ1bnRp bWUvYy9lZGQ4M2E0MDhkNGViZTk1OTU5NmVmZTM1NzQzZmE3YzBkMTg1ZmYxP2JyYW5jaD1mNDUK CiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAgcmVzb2x2ZS1maWxlcy5weTogUGlnZ3ktYmFj ayBvdXIgZmlsZXMgbWFwIG9mZiBvZiBmZWRtb2QgbWV0YWRhdGEKCkluc3RlYWQgb2YgaGF2aW5n IGEgc2VwYXJhdGUgZG93bmxvYWQgcHJvY2VzcywgdXNlIHRoZSBtZXRhZGF0YSB0aGF0CmZlZG1v ZCBpcyBhbHJlYWR5IGRvd25sb2FkaW5nLCBhbmQganVzdCBhZGQgdGhlIGNhY2hlZCBmaWxlID0+ IGRvd25sb2FkCm1hcCBpbiB0aGUgZG93bmxvYWQgZGlyZWN0b3J5LgoKLS0tCmRpZmYgLS1naXQg YS9yZXNvbHZlLWZpbGVzLnB5IGIvcmVzb2x2ZS1maWxlcy5weQppbmRleCBiZmE4N2YzLi5lOGY4 MmYxIDEwMDc1NQotLS0gYS9yZXNvbHZlLWZpbGVzLnB5CisrKyBiL3Jlc29sdmUtZmlsZXMucHkK QEAgLTEsMTcgKzEsMjIgQEAKICMhL3Vzci9iaW4vcHl0aG9uMwogCiBmcm9tIGZ1bmN0b29scyBp bXBvcnQgY21wX3RvX2tleQotaW1wb3J0IGRuZgogaW1wb3J0IGd6aXAKIGltcG9ydCBoYXNobGli CiBpbXBvcnQgb3MKIGltcG9ydCBwaWNrbGUKIGltcG9ydCByZQoraW1wb3J0IHJwbQogaW1wb3J0 IHN5cworaW1wb3J0IHhtbC5ldHJlZS5FbGVtZW50VHJlZSBhcyBFVAoraW1wb3J0IHhtbC5zYXgK IAotUkVQT19GMjcgPSAiaHR0cHM6Ly9taXJyb3JzLmZlZG9yYXByb2plY3Qub3JnL21ldGFsaW5r P3JlcG89ZmVkb3JhLTI3JmFyY2g9eDg2XzY0IgotUkVQT19GMjdfVVBEQVRFUyA9ICJodHRwczov L21pcnJvcnMuZmVkb3JhcHJvamVjdC5vcmcvbWV0YWxpbms/cmVwbz11cGRhdGVzLXJlbGVhc2Vk LWYyNyZhcmNoPXg4Nl82NCIKLVJFUE9fRjI3X1VQREFURVNfVEVTVElORyA9ICJodHRwczovL21p cnJvcnMuZmVkb3JhcHJvamVjdC5vcmcvbWV0YWxpbms/cmVwbz11cGRhdGVzLXRlc3RpbmctZjI3 JmFyY2g9eDg2XzY0IgorWERHX0NBQ0hFX0hPTUUgPSBvcy5lbnZpcm9uLmdldCgiWERHX0NBQ0hF X0hPTUUiKSBvciBvcy5wYXRoLmV4cGFuZHVzZXIoIn4vLmNhY2hlIikKKworIyBUaGlzIG5lZWRz IHRvIGJlIGluIHN5bmMgd2l0aCBmZWRtb2QKK1JFUE9TID0gWworICAgICJmMjgtcGFja2FnZXMi CitdCiAKIGlnbm9yZSA9IHNldCgpCiByZW5hbWUgPSBkaWN0KCkKQEAgLTI3Miw3MSArMjc3LDE0 NiBAQCBwbGF0Zm9ybV9wYWNrYWdlX2lnbm9yZV9wYXR0ZXJucyA9IFsKIHBsYXRmb3JtX3BhY2th Z2VfaWdub3JlX2NvbXBpbGVkID0gW3JlLmNvbXBpbGUocCkgZm9yIHAgaW4gcGxhdGZvcm1fcGFj a2FnZV9pZ25vcmVfcGF0dGVybnNdCiAKIAotZGVmIHBhY2thZ2VfY21wKGEsIGIpOgotICAgIGlm IGEuYXJjaCA9PSAnaTY4NicgYW5kIGIuYXJjaCAhPSAnaTY4Nic6CisjIFdlIG5lZWQgdG8gbG9v ayB1cCBhIGxvdCBvZiBmaWxlIGRlcGVuZGVuY2llcy4gZG5mL2xpYnNvbHYgaXMgbm90IGZhc3Qg YXQgZG9pbmcKKyMgdGhpcyAoYXQgbGVhc3Qgd2hlbiB3ZSBsb29rIHVwIGZpbGVzIG9uZS1ieS1v bmUpIHNvIHdlIGNyZWF0ZSBhIGhhc2ggdGFibGUgdGhhdAorIyBtYXBzIGZyb20gKmFsbCogZmls ZXMgaW4gdGhlIGRpc3RyaWJ1dGlvbiB0byB0aGUgImJlc3QiIHBhY2thZ2UgdGhhdCBwcm92aWRl cworIyB0aGUgZmlsZS4gVG8gZnVydGhlciBzcGVlZCB0aGlzIHVwLCB3ZSBwaWNrbGUgdGhlIHJl c3VsdCBhbmQgc3RvcmUgaXQsIGFuZCBvbmx5CisjIHJlY3JlYXRlIGl0IHdoZW4gdGhlIERORiBt ZXRhZGF0YSBjaGFuZ2VzLiBXZSBnemlwIHRoZSBwaWNrbGUgdG8gc2F2ZSBzcGFjZQorIyAoNzBN IGluc3RlYWQgb2YgNzAwTSksIHRoaXMgc2xvd3MgdGhpbmdzIGRvd24gYnkgYWJvdXQgMiBzZWNv bmRzLgorIworCitkZWYgcGFja2FnZV9jbXAocDEsIHAyKToKKyAgICBuMSwgZTEsIHYxLCByMSwg YTEgPSBwMQorICAgIG4yLCBlMiwgdjIsIHIyLCBhMiA9IHAyCisKKyAgICBpZiBhMSA9PSAnaTY4 NicgYW5kIGEyICE9ICdpNjg2JzoKICAgICAgICAgcmV0dXJuIDEKLSAgICBpZiBhLmFyY2ggIT0g J2k2ODYnIGFuZCBiLmFyY2ggPT0gJ2k2ODYnOgorICAgIGlmIGExICE9ICdpNjg2JyBhbmQgYTIg PT0gJ2k2ODYnOgogICAgICAgICByZXR1cm4gLTEKLSAgICBjID0gLSBhLmV2cl9jbXAoYikKLSAg ICBpZiBjIDwgMDoKKworICAgIGlmIG4xIDwgbjI6CiAgICAgICAgIHJldHVybiAtMQotICAgIGVs aWYgYyA9PSAwOgotICAgICAgICByZXR1cm4gMAotICAgIGVsc2U6CisgICAgZWxpZiBuMSA+IG4y OgogICAgICAgICByZXR1cm4gMQogCi1jbGFzcyBQcm9ncmVzcyhkbmYuY2FsbGJhY2suRG93bmxv YWRQcm9ncmVzcyk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUpOgotICAgICAgICBzZWxm Lm5hbWUgPSBuYW1lCi0gICAgICAgIHNlbGYuaGFzaGVzID0gLTEKLSAgICBkZWYgc3RhcnQoc2Vs ZiwgdG90YWxfZmlsZXMsIHRvdGFsX3NpemUsIHRvdGFsX2RycG1zPTApOgorICAgIGlmIGUxIGlz IE5vbmU6CisgICAgICAgIGUxID0gJzAnCisgICAgaWYgZTIgaXMgTm9uZToKKyAgICAgICAgZTIg PSAnMCcKKworICAgIHJldHVybiAtIHJwbS5sYWJlbENvbXBhcmUoKGUxLCB2MSwgcjEpLCAoZTIs IHYyLCByMikpCisKK2NsYXNzIEZpbGVzTWFwSGFuZGxlcih4bWwuc2F4LmhhbmRsZXIuQ29udGVu dEhhbmRsZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlc19tYXApOgorICAgICAgICBz ZWxmLmZpbGVzX21hcCA9IGZpbGVzX21hcAorICAgICAgICBzZWxmLm5hbWUgPSBOb25lCisgICAg ICAgIHNlbGYuYXJjaCA9IE5vbmUKKyAgICAgICAgc2VsZi5lcG9jaCA9IE5vbmUKKyAgICAgICAg c2VsZi52ZXJzaW9uID0gTm9uZQorICAgICAgICBzZWxmLnJlbGVhc2UgPSBOb25lCisgICAgICAg IHNlbGYuZmlsZSA9IE5vbmUKKworICAgIGRlZiBzdGFydEVsZW1lbnQoc2VsZiwgbmFtZSwgYXR0 cnMpOgorICAgICAgICBpZiBuYW1lID09ICdwYWNrYWdlJzoKKyAgICAgICAgICAgIHNlbGYubmFt ZSA9IGF0dHJzWyduYW1lJ10KKyAgICAgICAgICAgIHNlbGYuYXJjaCA9IGF0dHJzWydhcmNoJ10K KyAgICAgICAgZWxpZiBuYW1lID09ICd2ZXJzaW9uJzoKKyAgICAgICAgICAgIGlmIHNlbGYubmFt ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLmVwb2NoID0gYXR0cnNbJ2Vwb2No J10KKyAgICAgICAgICAgICAgICBzZWxmLnZlcnNpb24gPSBhdHRyc1sndmVyJ10KKyAgICAgICAg ICAgICAgICBzZWxmLnJlbGVhc2UgPSBhdHRyc1sncmVsJ10KKyAgICAgICAgZWxpZiBuYW1lID09 ICdmaWxlJzoKKyAgICAgICAgICAgIHNlbGYuZmlsZSA9ICcnCisKKyAgICBkZWYgZW5kRWxlbWVu dChzZWxmLCBuYW1lKToKKyAgICAgICAgaWYgbmFtZSA9PSAncGFja2FnZSc6CisgICAgICAgICAg ICBzZWxmLm5hbWUgPSBOb25lCisgICAgICAgIGVsaWYgbmFtZSA9PSAnZmlsZSc6CisgICAgICAg ICAgICBwYWNrYWdlID0gKHNlbGYubmFtZSwgc2VsZi5lcG9jaCwgc2VsZi52ZXJzaW9uLCBzZWxm LnJlbGVhc2UsIHNlbGYuYXJjaCkKKyAgICAgICAgICAgIG9sZCA9IHNlbGYuZmlsZXNfbWFwLmdl dChzZWxmLmZpbGUpCisgICAgICAgICAgICBpZiBvbGQgaXMgTm9uZSBvciBwYWNrYWdlX2NtcChw YWNrYWdlLCBvbGQpIDwgMDoKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGVzX21hcFtzZWxmLmZp bGVdID0gcGFja2FnZQorCisgICAgICAgICAgICBzZWxmLmZpbGUgPSBOb25lCisKKyAgICBkZWYg Y2hhcmFjdGVycyhzZWxmLCBjb250ZW50KToKKyAgICAgICAgaWYgc2VsZi5maWxlIGlzIG5vdCBO b25lOgorICAgICAgICAgICAgc2VsZi5maWxlICs9IGNvbnRlbnQKKworZGVmIHNjYW5fZmlsZWxp c3RzKGZpbGVsaXN0c19wYXRoLCBmaWxlc19tYXApOgorICAgIGhhbmRsZXIgPSBGaWxlc01hcEhh bmRsZXIoZmlsZXNfbWFwKQorICAgIHdpdGggZ3ppcC5vcGVuKGZpbGVsaXN0c19wYXRoLCAncmIn KSBhcyBmOgorICAgICAgICB4bWwuc2F4LnBhcnNlKGYsIGhhbmRsZXIpCisKKworZGVmIG1ha2Vf ZmlsZXNfbWFwKHJlcG9faW5mbyk6CisgICAgZmlsZXNfbWFwID0ge30KKworICAgIGZvciByZXBv IGluIFJFUE9TOgorICAgICAgICBzdGFydCgiU2Nhbm5pbmcgZmlsZXMgZm9yIHt9Ii5mb3JtYXQo cmVwbykpCisgICAgICAgIHJlcG9fZGlyLCByZXBvbWRfY29udGVudHMgPSByZXBvX2luZm9bcmVw b10KKyAgICAgICAgcm9vdCA9IEVULmZyb21zdHJpbmcocmVwb21kX2NvbnRlbnRzKQorCisgICAg ICAgIG5zID0geydyZXBvJzogJ2h0dHA6Ly9saW51eC5kdWtlLmVkdS9tZXRhZGF0YS9yZXBvJ30K KyAgICAgICAgZmlsZWxpc3RzX2xvY2F0aW9uID0gcm9vdC5maW5kKCIuL3JlcG86ZGF0YVtAdHlw ZT0nZmlsZWxpc3RzJ10vcmVwbzpsb2NhdGlvbiIsIG5zKS5hdHRyaWJbJ2hyZWYnXQorICAgICAg ICBmaWxlbGlzdHNfcGF0aCA9IG9zLnBhdGguam9pbihyZXBvX2RpciwgZmlsZWxpc3RzX2xvY2F0 aW9uKQorICAgICAgICBpZiBvcy5wYXRoLmNvbW1vbnByZWZpeChbZmlsZWxpc3RzX3BhdGgsIHJl cG9fZGlyXSkgIT0gcmVwb19kaXI6CisgICAgICAgICAgICBkb25lKCkKKyAgICAgICAgICAgIGVy cm9yKCJ7fTogZmlsZWxpc3RzIGRpcmVjdG9yeSBpcyBvdXRzaWRlIG9mIHJlcG9zaXRvcnkiLmZv cm1hdChyZXBvX2RpcikpCisKKyAgICAgICAgc2Nhbl9maWxlbGlzdHMoZmlsZWxpc3RzX3BhdGgs IGZpbGVzX21hcCkKKyAgICAgICAgZG9uZSgpCisKKyAgICBzdGFydCgiRmluYWxpemluZyBmaWxl cyBtYXAiKQorICAgIGZvciBrIGluIGZpbGVzX21hcDoKKyAgICAgICAgZmlsZXNfbWFwW2tdID0g ZmlsZXNfbWFwW2tdWzBdCisgICAgZG9uZSgpCisKKyAgICByZXR1cm4gZmlsZXNfbWFwCisKKwor ZGVmIGdldF9maWxlc19tYXAoKToKKyAgICBoYXNoX3RleHQgPSAnJworICAgIHJlcG9zX2RpciA9 IG9zLnBhdGguam9pbihYREdfQ0FDSEVfSE9NRSwgImZlZG1vZC9yZXBvcyIpCisgICAgcmVwb19p bmZvID0ge30KKyAgICBmb3IgcmVwbyBpbiBSRVBPUzoKKyAgICAgICAgcmVwb19kaXIgPSBvcy5w YXRoLmpvaW4ocmVwb3NfZGlyLCByZXBvLCAneDg2XzY0JykKKyAgICAgICAgcmVwb21kX3BhdGgg PSBvcy5wYXRoLmpvaW4ocmVwb19kaXIsICdyZXBvZGF0YS9yZXBvbWQueG1sJykKKyAgICAgICAg dHJ5OgorICAgICAgICAgICAgd2l0aCBvcGVuKHJlcG9tZF9wYXRoLCAncmInKSBhcyBmOgorICAg ICAgICAgICAgICAgIHJlcG9tZF9jb250ZW50cyA9IGYucmVhZCgpCisgICAgICAgIGV4Y2VwdCAo T1NFcnJvciwgSU9FcnJvcik6CisgICAgICAgICAgICBwcmludCgiQ2Fubm90IHJlYWQge30sIHRy eSAnZmVkbW9kIGZldGNoLW1ldGFkYXRhJyIuZm9ybWF0KHJlcG9tZF9wYXRoKSwgZmlsZT1zeXMu c3RkZXJyKQorICAgICAgICAgICAgc3lzLmV4aXQoMSkKKworICAgICAgICByZXBvX2luZm9bcmVw b10gPSAocmVwb19kaXIsIHJlcG9tZF9jb250ZW50cykKKyAgICAgICAgaGFzaF90ZXh0ICs9ICd7 fXx7fVxuJy5mb3JtYXQocmVwbywgaGFzaGxpYi5zaGEyNTYocmVwb21kX2NvbnRlbnRzKS5oZXhk aWdlc3QoKSkKKworICAgIHJlcG9faGFzaCA9IGhhc2hsaWIuc2hhMjU2KGhhc2hfdGV4dC5lbmNv ZGUoIlVURi04IikpLmhleGRpZ2VzdCgpCisKKyAgICBmaWxlc19tYXBfcGF0aCA9IG9zLnBhdGgu am9pbihYREdfQ0FDSEVfSE9NRSwgImZlZG1vZC9mbGF0cGFrLXJ1bnRpbWUtZmlsZXMtbWFwLmd6 IikKKworICAgIHRyeToKKyAgICAgICAgd2l0aCBnemlwLm9wZW4oZmlsZXNfbWFwX3BhdGgsICdy YicpIGFzIGY6CisgICAgICAgICAgICBvbGRfcmVwb19oYXNoID0gZi5yZWFkKDY0KS5kZWNvZGUo J3V0Zi04JykKKyAgICAgICAgICAgIGlmIG9sZF9yZXBvX2hhc2ggPT0gcmVwb19oYXNoOgorICAg ICAgICAgICAgICAgIHN0YXJ0KCJSZWFkaW5nIGNhY2hlZCBmaWxlIG1hcCIpCisgICAgICAgICAg ICAgICAgZmlsZXNfbWFwID0gcGlja2xlLmxvYWQoZikKKyAgICAgICAgICAgICAgICBkb25lKCkK KworICAgICAgICAgICAgICAgIHJldHVybiBmaWxlc19tYXAKKyAgICBleGNlcHQgRmlsZU5vdEZv dW5kRXJyb3I6CiAgICAgICAgIHBhc3MKLSAgICBkZWYgcHJvZ3Jlc3Moc2VsZiwgcGF5bG9hZCwg ZG9uZSk6Ci0gICAgICAgIGlmIHBheWxvYWQuZG93bmxvYWRfc2l6ZSA9PSAwOgotICAgICAgICAg ICAgcmV0dXJuCi0gICAgICAgIGhhc2hlcyA9IGludCg2MCAqIGRvbmUgLyBwYXlsb2FkLmRvd25s b2FkX3NpemUpCi0gICAgICAgIGlmIGhhc2hlcyAhPSBzZWxmLmhhc2hlczoKLSAgICAgICAgICAg IGhhc2hsaW5lID0gIlsiICsgIiMiICogaGFzaGVzICsgIiAiICogKDYwIC0gaGFzaGVzKSArICJd IgotICAgICAgICAgICAgaWYgc2VsZi5oYXNoZXMgIT0gLTE6Ci0gICAgICAgICAgICAgICAgcHJp bnQoIlxyIiwgZW5kPSIiKQotICAgICAgICAgICAgcHJpbnQoInt9IC0ge31rIC0ge30iLmZvcm1h dChzZWxmLm5hbWUsIGludChwYXlsb2FkLmRvd25sb2FkX3NpemUgLyAxMDI0KSwgaGFzaGxpbmUp LCBlbmQ9IiIpCi0gICAgICAgICAgICBzZWxmLmhhc2hlcyA9IGhhc2hlcwotICAgIGRlZiBlbmQo c2VsZiwgcGF5bG9hZCwgc3RhdHVzLCBtZXNzYWdlKToKLSAgICAgICAgaWYgc3RhdHVzID09IGRu Zi5jYWxsYmFjay5TVEFUVVNfT0s6Ci0gICAgICAgICAgICBwcmludCgiIC0gRE9ORSIpCi0gICAg ICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludAotCi1jbGFzcyBQYWNrYWdlSW5mbyhvYmplY3Qp OgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5iYXNlID0gZG5mLkJhc2Uo KQotCi0gICAgICAgIHNlbGYuX2FkZF9yZXBvKHNlbGYuYmFzZSwgJ2YyNycsIG1ldGFsaW5rPVJF UE9fRjI3KQotICAgICAgICBzZWxmLl9hZGRfcmVwbyhzZWxmLmJhc2UsICdmMjctdXBkYXRlcycs IG1ldGFsaW5rPVJFUE9fRjI3X1VQREFURVMpCi0gICAgICAgIHNlbGYuX2FkZF9yZXBvKHNlbGYu YmFzZSwgJ2YyNy11cGRhdGVzLXRlc3RpbmcnLCBtZXRhbGluaz1SRVBPX0YyN19VUERBVEVTX1RF U1RJTkcpCi0KLSAgICAgICAgc2VsZi5iYXNlLmZpbGxfc2Fjayhsb2FkX2F2YWlsYWJsZV9yZXBv cz1UcnVlLCBsb2FkX3N5c3RlbV9yZXBvPUZhbHNlKQotCi0gICAgZGVmIF9hZGRfcmVwbyhzZWxm LCBiYXNlLCByZXBvbmFtZSwgcmVwb3VybD1Ob25lLCBtZXRhbGluaz1Ob25lKToKLSAgICAgICAg cmVwbyA9IGRuZi5yZXBvLlJlcG8ocmVwb25hbWUsIHNlbGYuYmFzZS5jb25mKQotICAgICAgICBp ZiByZXBvdXJsIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmVwby5iYXNldXJsID0gcmVwb3Vy bAotICAgICAgICBlbGlmIG1ldGFsaW5rIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmVwby5t ZXRhbGluayA9IG1ldGFsaW5rCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBSdW50 aW1lRXJyb3IoIkVpdGhlciBiYXNldXJsIG9yIG1ldGFsaW5rIG11c3QgYmUgc3BlY2lmaWVkIikK LSAgICAgICAgcmVwby5zZXRfcHJvZ3Jlc3NfYmFyKFByb2dyZXNzKHJlcG9uYW1lKSkKLSAgICAg ICAgcmVwby5sb2FkKCkKLSAgICAgICAgcmVwby5lbmFibGUoKQotICAgICAgICBiYXNlLnJlcG9z LmFkZChyZXBvKQotCi0gICAgZGVmIHJlcG9faGFzaChzZWxmKToKLSAgICAgICAgaCA9IGhhc2hs aWIuc2hhMjU2KCkKLSAgICAgICAgZm9yIHIgaW4gc29ydGVkKHNlbGYuYmFzZS5yZXBvcy5hbGwo KSwga2V5PWxhbWJkYSB4OiB4Lm5hbWUpOgotICAgICAgICAgICAgcmVwb21kX2ZpbGUgPSBvcy5w YXRoLmpvaW4oci5fY2FjaGVkaXIsICdyZXBvZGF0YS9yZXBvbWQueG1sJykKLSAgICAgICAgICAg IHdpdGggb3BlbihyZXBvbWRfZmlsZSwgJ3JiJykgYXMgZjoKLSAgICAgICAgICAgICAgICBoLnVw ZGF0ZShmLnJlYWQoKSkKLSAgICAgICAgcmV0dXJuIGguaGV4ZGlnZXN0KCkKKworICAgIGZpbGVz X21hcCA9IG1ha2VfZmlsZXNfbWFwKHJlcG9faW5mbykKKworICAgIHN0YXJ0KCJXcml0aW5nIGZp bGUgbWFwIHRvIGNhY2hlIikKKyAgICB3aXRoIGd6aXAub3BlbihmaWxlc19tYXBfcGF0aCwgJ3di JykgYXMgZjoKKyAgICAgICAgZi53cml0ZShyZXBvX2hhc2guZW5jb2RlKCd1dGYtOCcpKQorICAg ICAgICBwaWNrbGUuZHVtcChmaWxlc19tYXAsIGYpCisgICAgZG9uZSgpCisKKyAgICByZXR1cm4g ZmlsZXNfbWFwCiAKIGlmIGxlbihzeXMuYXJndikgIT0gMjoKICAgICBwcmludCgiVXNhZ2U6IHJl c29sdmUtZmlsZXMucHkgSU5GSUxFIiwgZmlsZT1zeXMuc3RkZXJyKQpAQCAtMzU0LDYgKzQzNCwx MCBAQCBpc19zZGsgPSAiLVNkayIgaW4gYmFzZV9wYXRoCiBkZWYgd2Fybihtc2cpOgogICAgIHBy aW50KCJ7fTogXDAzM1szMW17fVwwMzNbMzltIi5mb3JtYXQoaW5wYXRoLCBtc2cpLCBmaWxlPXN5 cy5zdGRlcnIpCiAKK2RlZiBlcnJvcihtc2cpOgorICAgIHByaW50KCJ7fTogXDAzM1szMW17fVww MzNbMzltIi5mb3JtYXQoaW5wYXRoLCBtc2cpLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgc3lzLmV4 aXQoMSkKKwogZGVmIHN0YXJ0KG1zZyk6CiAgICAgcHJpbnQoInt9OiBcMDMzWzkwbXt9IC4uLiBc MDMzWzM5bSIuZm9ybWF0KGlucGF0aCwgbXNnKSwgZmlsZT1zeXMuc3RkZXJyLCBlbmQ9IiIpCiAg ICAgc3lzLnN0ZGVyci5mbHVzaCgpCkBAIC0zNzUsNTIgKzQ1OSw3IEBAIHRvX3Jlc29sdmUuc29y dCgpCiAKIGRvbmUoKQogCi1wa2dzID0gUGFja2FnZUluZm8oKQotCi1maWxlc19tYXAgPSBOb25l Ci0KLSMgV2UgbmVlZCB0byBsb29rIHVwIGEgbG90IG9mIGZpbGUgZGVwZW5kZW5jaWVzLiBkbmYv bGlic29sdiBpcyBub3QgZmFzdCBhdCBkb2luZwotIyB0aGlzIChhdCBsZWFzdCB3aGVuIHdlIGxv b2sgdXAgZmlsZXMgb25lLWJ5LW9uZSkgc28gd2UgY3JlYXRlIGEgaGFzaCB0YWJsZSB0aGF0Ci0j IG1hcHMgZnJvbSAqYWxsKiBmaWxlcyBpbiB0aGUgZGlzdHJpYnV0aW9uIHRvIHRoZSAiYmVzdCIg cGFja2FnZSB0aGF0IHByb3ZpZGVzCi0jIHRoZSBmaWxlLiBUbyBmdXJ0aGVyIHNwZWVkIHRoaXMg dXAsIHdlIHBpY2tsZSB0aGUgcmVzdWx0IGFuZCBzdG9yZSBpdCwgYW5kIG9ubHkKLSMgcmVjcmVh dGUgaXQgd2hlbiB0aGUgRE5GIG1ldGFkYXRhIGNoYW5nZXMuIFdlIGd6aXAgdGhlIHBpY2tsZSB0 byBzYXZlIHNwYWNlCi0jICg3ME0gaW5zdGVhZCBvZiA3MDBNKSwgdGhpcyBzbG93cyB0aGluZ3Mg ZG93biBieSBhYm91dCAyIHNlY29uZHMuCi0jCi1yZXBvX2hhc2ggPSBwa2dzLnJlcG9faGFzaCgp Ci1mID0gTm9uZQotdHJ5OgotICAgIGYgPSBnemlwLm9wZW4oJ2NhY2hlL2ZpbGVzLm1hcC5neics ICdyYicpCi0gICAgd2l0aCBmOgotICAgICAgICBvbGRfcmVwb19oYXNoID0gZi5yZWFkKDY0KS5k ZWNvZGUoJ3V0Zi04JykKLSAgICAgICAgaWYgb2xkX3JlcG9faGFzaCA9PSByZXBvX2hhc2g6Ci0g ICAgICAgICAgICBzdGFydCgiUmVhZGluZyBjYWNoZWQgZmlsZSBtYXAiKQotICAgICAgICAgICAg ZmlsZXNfbWFwID0gcGlja2xlLmxvYWQoZikKLSAgICAgICAgICAgIGRvbmUoKQotZXhjZXB0IEZp bGVOb3RGb3VuZEVycm9yOgotICAgIHBhc3MKLWV4Y2VwdCAocGlja2xlLlVucGlja2xpbmdFcnJv ciwgRU9GRXJyb3IpIGFzIGU6Ci0gICAgZG9uZSgpCi0gICAgd2FybigiRmFpbGVkIHRvIGxvYWQg Y2FjaGUvZmlsZXMubWFwLmd6OiIsIGUpCi0KLWlmIGZpbGVzX21hcCBpcyBOb25lOgotICAgIHN0 YXJ0KCJDcmVhdGluZyBmaWxlIG1hcCIpCi0gICAgZmlsZXNfbWFwID0ge30KLSAgICBmb3IgcCBp biBwa2dzLmJhc2Uuc2Fjay5xdWVyeSgpLmZpbHRlcigpOgotICAgICAgICBmb3IgZiBpbiBwLmZp bGVzOgotICAgICAgICAgICAgb2xkID0gZmlsZXNfbWFwLmdldChmLCBOb25lKQotICAgICAgICAg ICAgaWYgb2xkIGlzIE5vbmUgb3IgcGFja2FnZV9jbXAocCwgb2xkKSA8IDA6Ci0gICAgICAgICAg ICAgICAgZmlsZXNfbWFwW2ZdID0gcAotCi0gICAgZm9yIGssIHYgaW4gZmlsZXNfbWFwLml0ZW1z KCk6Ci0gICAgICAgIGZpbGVzX21hcFtrXSA9IHYubmFtZQotICAgIGRvbmUoKQotCi0gICAgc3Rh cnQoIldyaXRpbmcgZmlsZSBtYXAgdG8gY2FjaGUiKQotICAgIHdpdGggZ3ppcC5vcGVuKCdjYWNo ZS9maWxlcy5tYXAuZ3onLCAnd2InKSBhcyBmOgotICAgICAgICBmLndyaXRlKHJlcG9faGFzaC5l bmNvZGUoJ3V0Zi04JykpCi0gICAgICAgIHBpY2tsZS5kdW1wKGZpbGVzX21hcCwgZikKLSAgICBk b25lKCkKLQorZmlsZXNfbWFwID0gZ2V0X2ZpbGVzX21hcCgpCiBmb3VuZF9wYWNrYWdlcyA9IHNl dCgpCiAKIHN0YXJ0KCJSZXNvbHZpbmcgZmlsZXMgdG8gcGFja2FnZXMiKQo=