# Name: rah_privileges v0.1.3 # Configure admin-side user-group privileges # Author: Jukka Svahn # URL: http://rahforum.biz # Recommended load order: 1 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the "Install plugin" box: # ..................................................................... YToxNDp7czo0OiJuYW1lIjtzOjE0OiJyYWhfcHJpdmlsZWdlcyI7czo3OiJ2ZXJzaW9uIjtz OjU6IjAuMS4zIjtzOjY6ImF1dGhvciI7czoxMToiSnVra2EgU3ZhaG4iO3M6MTA6ImF1dGhv cl91cmkiO3M6MTk6Imh0dHA6Ly9yYWhmb3J1bS5iaXoiO3M6MTE6ImRlc2NyaXB0aW9uIjtz OjQyOiJDb25maWd1cmUgYWRtaW4tc2lkZSB1c2VyLWdyb3VwIHByaXZpbGVnZXMiO3M6NDoi aGVscCI7czowOiIiO3M6NDoiY29kZSI7czo2NTk5OiIKCi8qCiAqIHJhaF9wcml2aWxlZ2Vz IC0gQ29uZmlndXJlIGFkbWluLXNpZGUgcHJpdmlsZWdlcwogKiBodHRwczovL2dpdGh1Yi5j b20vZ29jb20vcmFoX3ByaXZpbGVnZXMKICoKICogQ29weXJpZ2h0IChDKSAyMDE1IEp1a2th IFN2YWhuCiAqCiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHJhaF9wcml2aWxlZ2VzLgogKgog KiByYWhfcHJpdmlsZWdlcyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIHZlcnNpb24gMi4KICoKICogcmFoX3ByaXZpbGVnZXMgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiBTZWUgdGhlCiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIGFsb25nIHdpdGggaHB3X2FkbWluY3NzLiBJ ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAqLwoKLyoqCiAq IFRoZSBwbHVnaW4gY2xhc3MuCiAqCiAqIEBpbnRlcm5hbAogKi8KCmNsYXNzIFJhaF9Qcml2 aWxlZ2VzCnsKICAgIC8qKgogICAgICogQ29uc3RydWN0b3IuCiAgICAgKi8KCiAgICBwdWJs aWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogICAgewogICAgICAgIGFkZF9wcml2cygncHJl ZnMucmFoX3ByaXZzJywgJzEnKTsKICAgICAgICByZWdpc3Rlcl9jYWxsYmFjayhhcnJheSgk dGhpcywgJ2luc3RhbGwnKSwgJ3BsdWdpbl9saWZlY3ljbGUucmFoX3ByaXZpbGVnZXMnLCAn aW5zdGFsbGVkJyk7CiAgICAgICAgcmVnaXN0ZXJfY2FsbGJhY2soYXJyYXkoJHRoaXMsICd1 bmluc3RhbGwnKSwgJ3BsdWdpbl9saWZlY3ljbGUucmFoX3ByaXZpbGVnZXMnLCAnZGVsZXRl ZCcpOwogICAgICAgIHJlZ2lzdGVyX2NhbGxiYWNrKGFycmF5KCR0aGlzLCAnc2F2ZVByZWZz JyksICdwcmVmcycsICcnLCAxKTsKICAgICAgICByZWdpc3Rlcl9jYWxsYmFjayhhcnJheSgk dGhpcywgJ2luamVjdF9jc3MnKSwgJ2FkbWluX3NpZGUnLCAnaGVhZF9lbmQnKTsKICAgICAg ICAkdGhpcy0+bWVyZ2VQcml2aWxlZ2VzKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBJbnN0 YWxsZXIuCiAgICAgKi8KCiAgICBwdWJsaWMgZnVuY3Rpb24gaW5zdGFsbCgpCiAgICB7CiAg ICAgICAgaWYgKGdldF9wcmVmKCdyYWhfcHJpdmlsZWdlc19wcml2cycsIGZhbHNlKSA9PT0g ZmFsc2UpIHsKICAgICAgICAgICAgaWYgKGRlZmluZWQoJ1BSRUZfUExVR0lOJykpIHsKICAg ICAgICAgICAgICAgIHNldF9wcmVmKCdyYWhfcHJpdmlsZWdlc19wcml2cycsIDAsICdyYWhf cHJpdnMnLCBQUkVGX1BMVUdJTiwgJ3JhaF9wcml2aWxlZ2VzX2lucHV0JywgODApOwogICAg ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc2V0X3ByZWYoJ3JhaF9wcml2aWxl Z2VzX3ByaXZzJywgMCwgJ3JhaF9wcml2cycsIFBSRUZfQURWQU5DRUQsICdyYWhfcHJpdmls ZWdlc19pbnB1dCcsIDgwKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAv KioKICAgICAqIFVuaW5zdGFsbGVyLgogICAgICovCgogICAgcHVibGljIGZ1bmN0aW9uIHVu aW5zdGFsbCgpCiAgICB7CiAgICAgICAgc2FmZV9kZWxldGUoJ3R4cF9wcmVmcycsICJuYW1l IGxpa2UgJ3JhaFxfcHJpdmlsZWdlc1xfJSciKTsKICAgIH0KCiAgICAvKioKICAgICAqIE1l cmdlcyBwcml2aWxlZ2VzIHRhYmxlIHdpdGggb3VyIG92ZXJ3cml0ZXMuCiAgICAgKi8KCiAg ICBwdWJsaWMgZnVuY3Rpb24gbWVyZ2VQcml2aWxlZ2VzKCkKICAgIHsKICAgICAgICBnbG9i YWwgJHR4cF9wZXJtaXNzaW9ucywgJGV2ZW50OwoKICAgICAgICBpZiAoIWdldF9wcmVmKCdy YWhfcHJpdmlsZWdlc19wcml2cycpKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9 CgogICAgICAgICRwcml2cyA9IGpzb25fZGVjb2RlKGdldF9wcmVmKCdyYWhfcHJpdmlsZWdl c19wcml2cycpLCB0cnVlKTsKCiAgICAgICAgaWYgKCFpc19hcnJheSgkcHJpdnMpKSB7CiAg ICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmICgkZXZlbnQgPT09ICdw cmVmcycpIHsKICAgICAgICAgICAgdW5zZXQoCiAgICAgICAgICAgICAgICAkcHJpdnNbJ3By ZWZzJ10sCiAgICAgICAgICAgICAgICAkcHJpdnNbJ3ByZWZzLnJhaF9wcml2cyddCiAgICAg ICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoICgkcHJpdnMgYXMgJHJlc291 cmNlID0+ICRncm91cHMpIHsKICAgICAgICAgICAgaWYgKCEkZ3JvdXBzKSB7CiAgICAgICAg ICAgICAgICAkdHhwX3Blcm1pc3Npb25zWyRyZXNvdXJjZV0gPSBudWxsOwogICAgICAgICAg ICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHR4cF9wZXJtaXNzaW9uc1skcmVzb3VyY2Vd ID0gaW1wbG9kZSgnLCcsIChhcnJheSkgJGdyb3Vwcyk7CiAgICAgICAgICAgIH0KICAgICAg ICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBTYXZlcyBwcml2aWxlZ2VzIGNvbmZpZ3VyYXRp b24uCiAgICAgKi8KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2F2ZVByZWZzKCkKICAgIHsKICAg ICAgICBnbG9iYWwgJHByZWZzOwoKICAgICAgICBpZiAoIWlzc2V0KCRfUE9TVFsncmFoX3By aXZpbGVnZXNfcmVzb3VyY2VfMCddKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAg fQoKICAgICAgICAkZGF0YSA9IGFycmF5KCk7CgogICAgICAgIGZvcmVhY2ggKCRfUE9TVCBh cyAkbmFtZSA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgaWYgKHN0cnBvcygkbmFtZSwgJ3Jh aF9wcml2aWxlZ2VzX3Jlc291cmNlXycpID09PSAwKSB7CiAgICAgICAgICAgICAgICAkaW5k ZXggPSBzdWJzdHIoJG5hbWUsIHN0cmxlbigncmFoX3ByaXZpbGVnZXNfcmVzb3VyY2VfJykp OwogICAgICAgICAgICAgICAgJGdyb3VwcyA9IHBzKCdyYWhfcHJpdmlsZWdlc19ncm91cHNf Jy4kaW5kZXgpOwogICAgICAgICAgICAgICAgJHJlc291cmNlID0gKHN0cmluZykgcHMoJG5h bWUpOwogICAgICAgICAgICAgICAgJGRhdGFbJHJlc291cmNlXSA9ICRncm91cHM7CiAgICAg ICAgICAgICAgICB1bnNldCgkX1BPU1RbJ3JhaF9wcml2aWxlZ2VzX2dyb3Vwc18nLiRpbmRl eF0sICRfUE9TVFskbmFtZV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAk cHJlZnNbJ3JhaF9wcml2aWxlZ2VzX3ByaXZzJ10gPSAkX1BPU1RbJ3JhaF9wcml2aWxlZ2Vz X3ByaXZzJ10gPSBqc29uX2VuY29kZSgkZGF0YSk7CiAgICAgICAgJHRoaXMtPm1lcmdlUHJp dmlsZWdlcygpOwogICAgfQogIAogICAgLyoqCiAgICAgKiBJbmplY3Qgc3R5bGUgcnVsZXMg aW50byB0aGUgaGVhZCBvZiB0aGUgcGFnZS4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmlu ZyAgICAgIFN0eWxlIHJ1bGVzLCBvciBub3RoaW5nIGlmIG5vdCB0aGUgY29ycmVjdCAkZXZl bnQKICAgICAqLwoKICAgIHB1YmxpYyBmdW5jdGlvbiBpbmplY3RfY3NzKCkKICAgIHsKICAg ICAgICBnbG9iYWwgJGV2ZW50OwoKICAgICAgICBpZiAoJGV2ZW50ID09PSAncHJlZnMnKSB7 CiAgICAgICAgICAgICRyYWhfcGx1Z2luX3N0eWxlcyA9ICR0aGlzLT5nZXRfc3R5bGVfcnVs ZXMoKTsKCiAgICAgICAgICAgIGVjaG8gJzxzdHlsZT4nIC4gJHJhaF9wbHVnaW5fc3R5bGVz WydyYWhfcHJpdmlsZWdlcyddIC4gJzwvc3R5bGU+JzsKICAgICAgICB9CgogICAgICAgIHJl dHVybjsKICAgIH0KCiAgICAvKioKICAgICAqIENTUyBkZWZpbml0aW9uczogaG9wZWZ1bGx5 IGtpbmQgdG8gdGhlbWVycy4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgICAgIFN0 eWxlIHJ1bGVzCiAgICAgKi8KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X3N0eWxlX3J1 bGVzKCkKICAgIHsKICAgICAgICAkcmFoX3BsdWdpbl9zdHlsZXMgPSBhcnJheSgKICAgICAg ICAgICAgJ3JhaF9wcml2aWxlZ2VzJyA9PiAnCiNwcmVmcy1yYWhfcHJpdmlsZWdlc19wcml2 cyB7IAogIGRpc3BsYXk6IGJsb2NrOwp9Ci5yYWhfcHJpdmlsZWdlcy1jaGVja2JveC1pdGVt IHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQou cmFoX3ByaXZpbGVnZXMtY2hlY2tib3gtaXRlbSAuY2hlY2tib3ggKyBsYWJlbCB7CiAgICBw YWRkaW5nOiAwIDJlbSAwIDAuNWVtOwp9CiAgICAgICAgICAgICcsCiAgICAgICAgKTsKCiAg ICAgICAgcmV0dXJuICRyYWhfcGx1Z2luX3N0eWxlczsKICAgIH0KfQoKLyoqCiAqIFJlbmRl cnMgaW5wdXQgZm9yIHNldHRpbmcgcHJpdmlsZWdlIHNldHRpbmdzLgogKgogKiBAcmV0dXJu IHN0cmluZyBIVE1MIHdpZGdldAogKi8KCmZ1bmN0aW9uIHJhaF9wcml2aWxlZ2VzX2lucHV0 KCkKewogICAgZ2xvYmFsICR0eHBfcGVybWlzc2lvbnMsICRwbHVnaW5fYXJlYXM7CgogICAg JHBlcm1pc3Npb25zID0gJHR4cF9wZXJtaXNzaW9uczsKICAgICRtZXJnZWRwZXJtaXNzaW9u cyA9ICRvdXQgPSAkcGFuZWxzID0gYXJyYXkoKTsKICAgICRpbmRleCA9IDA7CiAgICAkbGV2 ZWxzID0gZ2V0X2dyb3VwcygpOwoKICAgIHVuc2V0KCRsZXZlbHNbMF0pOwoKICAgICRsYWJl bHMgPSBhcnJheV9rZXlzKCRwZXJtaXNzaW9ucyk7CiAgICAkcGFuZWxzID0gYXJyYXlfY29t YmluZShhcnJheV92YWx1ZXMoJGxhYmVscyksIGFycmF5X2ZpbGwoMCwgY291bnQoJGxhYmVs cyksIDEpKTsKICAgICRsYWJlbHMgPSBhcnJheV9jb21iaW5lKCRsYWJlbHMsICRsYWJlbHMp OwoKICAgIGlmIChnZXRfcHJlZigncmFoX3ByaXZpbGVnZXNfcHJpdnMnKSkgewogICAgICAg ICRtZXJnZWRwZXJtaXNzaW9ucyA9IGpzb25fZGVjb2RlKGdldF9wcmVmKCdyYWhfcHJpdmls ZWdlc19wcml2cycpLCB0cnVlKTsKICAgIH0KCiAgICBmb3JlYWNoIChhcmVhcygpIGFzICRh cmVhID0+ICRldmVudHMpIHsKICAgICAgICBmb3JlYWNoICgkZXZlbnRzIGFzICR0aXRsZSA9 PiAkZXZlbnQpIHsKICAgICAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJGV2ZW50LCAk bGFiZWxzKSkgewogICAgICAgICAgICAgICAgJGxhYmVsc1skZXZlbnRdID0gJHRpdGxlOwog ICAgICAgICAgICAgICAgJHBhbmVsc1skZXZlbnRdID0gMDsKICAgICAgICAgICAgfQogICAg ICAgIH0KICAgIH0KCiAgICBhcnJheV9tdWx0aXNvcnQoJHBhbmVscywgU09SVF9BU0MsIFNP UlRfTlVNRVJJQywgJGxhYmVscywgU09SVF9BU0MsIFNPUlRfU1RSSU5HLCAkcGVybWlzc2lv bnMpOwoKICAgIGZvcmVhY2ggKCRwZXJtaXNzaW9ucyBhcyAkcmVzb3VyY2UgPT4gJGdyb3Vw cykgewogICAgICAgICRvdXRbXSA9IGhJbnB1dCgncmFoX3ByaXZpbGVnZXNfcmVzb3VyY2Vf Jy4kaW5kZXgsICRyZXNvdXJjZSk7CgogICAgICAgIGlmICgkaW5kZXggIT09IDApIHsKICAg ICAgICAgICAgJG91dFtdID0gYnIuYnI7CiAgICAgICAgfQoKICAgICAgICAkb3V0W10gPSB0 YWcoJGxhYmVsc1skcmVzb3VyY2VdLCAnc3Ryb25nJykuYnI7CgogICAgICAgIGlmIChpc3Nl dCgkbWVyZ2VkcGVybWlzc2lvbnNbJHJlc291cmNlXSkpIHsKICAgICAgICAgICAgJGdyb3Vw cyA9ICRtZXJnZWRwZXJtaXNzaW9uc1skcmVzb3VyY2VdOwogICAgICAgIH0gZWxzZWlmICgk Z3JvdXBzICE9PSBudWxsKSB7CiAgICAgICAgICAgICRncm91cHMgPSBleHBsb2RlKCcsJywg KHN0cmluZykgJGdyb3Vwcyk7CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoICgkbGV2ZWxz IGFzICRncm91cCA9PiAkbGFiZWwpIHsKICAgICAgICAgICAgJGNoZWNrZWQgPSBpc19hcnJh eSgkZ3JvdXBzKSAmJiBpbl9hcnJheSgkZ3JvdXAsICRncm91cHMpOwogICAgICAgICAgICAk bmFtZSA9ICdyYWhfcHJpdmlsZWdlc19ncm91cHNfJy4kaW5kZXguJ1tdJzsKICAgICAgICAg ICAgJGlkID0gJ3JhaF9wcml2aWxlZ2VzX2dyb3Vwc18nLiRpbmRleC4nXycuaW50dmFsKCRn cm91cCk7CgogICAgICAgICAgICAkb3V0W10gPSAnPGRpdiBjbGFzcz0icmFoX3ByaXZpbGVn ZXMtY2hlY2tib3gtaXRlbSI+JzsKICAgICAgICAgICAgJG91dFtdID0gY2hlY2tib3goCiAg ICAgICAgICAgICAgICAkbmFtZSwKICAgICAgICAgICAgICAgICRncm91cCwKICAgICAgICAg ICAgICAgICRjaGVja2VkLAogICAgICAgICAgICAgICAgJycsCiAgICAgICAgICAgICAgICAk aWQKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRvdXRbXSA9ICc8bGFiZWwgZm9yPSIn LiRpZC4nIj4nLiRsYWJlbC4nPC9sYWJlbD4nOwogICAgICAgICAgICAkb3V0W10gPSAnPC9k aXY+JzsKICAgICAgICB9CgogICAgICAgICRpbmRleCsrOwogICAgfQoKICAgIHJldHVybiBp bXBsb2RlKCcnLCAkb3V0KTsKfQoKbmV3IFJhaF9Qcml2aWxlZ2VzKCk7CiI7czo0OiJ0eXBl IjtzOjE6IjUiO3M6NToib3JkZXIiO3M6MToiMSI7czo1OiJmbGFncyI7czoxOiIyIjtzOjg6 InRleHRwYWNrIjtzOjQxNToiI0BhZG1pbgpyYWhfcHJpdnMgPT4gVXNlciBQcml2aWxlZ2Vz CnJhaF9wcml2aWxlZ2VzX3ByaXZzID0+IFNldCBhY2NvdW50LWxldmVsIHJpZ2h0cyBmb3Ig YWNjZXNzIHRvIHRleHRwYXR0ZXJu4oCZcyBhY3Rpb25zIG9yIHBhbmVscwoKI0BhZG1pbgoj QGxhbmd1YWdlIGZpLWZpCnJhaF9wcml2cyA9PiBLw6R5dHTDtm9pa2V1ZGV0CnJhaF9wcml2 aWxlZ2VzX3ByaXZzID0+IFJhc3RpdGEga8OkeXR0w6Rqw6R0YXNvdCBqb2lsbGEgdHVsaXNp IG9sbGEgb2lrZXVkZXQgdG9pbWludG9vbgoKI0BhZG1pbgojQGxhbmd1YWdlIGRlLURFCnJh aF9wcml2cyA9PiBCZW51dHplcnJlY2h0ZQpyYWhfcHJpdmlsZWdlc19wcml2cyA9PiBCZW51 dHplcnJlY2h0ZSB2ZXJ3YWx0ZW4gZsO8ciBBZG1pbi1CZXJlaWNoZSBiencuIEFrdGlvbmVu CiI7czoxNToiYWxsb3dfaHRtbF9oZWxwIjtpOjA7czo4OiJoZWxwX3JhdyI7czoxMDA0OiJo MS4gcmFoX3ByaXZpbGVnZXMKCiJEb3dubG9hZCI6aHR0cHM6Ly9naXRodWIuY29tL2dvY29t L3JhaF9wcml2aWxlZ2VzL3JlbGVhc2VzIHwgIlBhY2thZ2lzdCI6aHR0cHM6Ly9wYWNrYWdp c3Qub3JnL3BhY2thZ2VzL3JhaC9yYWhfcHJpdmlsZWdlcyB8ICJEb25hdGUiOmh0dHA6Ly9y YWhmb3J1bS5iaXovZG9uYXRlL3JhaF9wcml2aWxlZ2VzCgpDb25maWd1cmUgYWRtaW4tc2lk ZSB1c2VyLWdyb3VwIHBlcm1pc3Npb25zIGZyb20gVGV4dHBhdHRlcm4ncyBBZHZhbmNlZCBQ cmVmZXJlbmNlcyBwYW5lbC4KCmgyLiBJbnN0YWxsCgpVc2luZyAiQ29tcG9zZXIiOmh0dHA6 Ly9nZXRjb21wb3Nlci5vcmc6CgpiYy4gJCBjb21wb3NlciByZXF1aXJlIHJhaC9yYWhfcHJp dmlsZWdlczoqCgpPciAiZG93bmxvYWQiOmh0dHBzOi8vZ2l0aHViLmNvbS9nb2NvbS9yYWhf cHJpdmlsZWdlcy9yZWxlYXNlcyBhIHBsdWdpbiBwYWNrYWdlLgoKaDIuIFJlcXVpcmVtZW50 cwoKKiBUZXh0cGF0dGVybiA0LjQuMSBvciBuZXdlci4KKiBQSFAgNS4yLjAgb3IgbmV3ZXIu CgpoMi4gVG9vbHNoZWQgbm90aWNlCgpUaGlzIGlzIGEgdG9vbHNoZWQgcHJvamVjdC4gRXhw ZXJpbWVudGFsIGFuZCBub3QgcGFydCBvZiB0aGUgbWFpbiBzdXBwb3J0ZWQgcHJvZHVjdCBs aW5lIG9mIFJhaC4KCmgyLiBDaGFuZ2Vsb2cKCmgzLiBWZXJzaW9uIDAuMS4zIC0gMjAxNy8w Mi8wMyDigJMgamFrb2IKCiogU3dpdGNoZWQgdG8gdHlwZSA1IHBsdWdpbiAodGhhbmtzIGV0 YykuCgpoMy4gVmVyc2lvbiAwLjEuMiAtIDIwMTYvMTEvMjMg4oCTIGpha29iCgoqIFVwZGF0 ZXMgZm9yIHYuNC42IHByZWZzIHBhbmUgYW5kIGxheW91dCBjb3JyZWN0aW9ucy4KCmgzLiBW ZXJzaW9uIDAuMS4xIC0gMjAxNS8wMy8wNAoKKiBEb2Vzbid0IHVubmVjZXNzYXJpbHkgbG9h ZCB0aGUgcGx1Z2luIG9uIG5vbi1hZG1pbiBwYWdlcy4KCmgzLiBWZXJzaW9uIDAuMS4wIC0g MjAxNS8wMy8wNAoKKiBJbml0aWFsIHJlbGVhc2UuCiI7czozOiJtZDUiO3M6MzI6ImNhMTJj ZjY0OGMwYTNjYjE3NzE1YzRkMmViMWM5NzIzIjt9