257 lines
18 KiB
Python
257 lines
18 KiB
Python
'''
|
|
Utility module to help with setting up the initial contents of the
|
|
JOY_HOME directory.
|
|
|
|
These contents are kept in this Python module as a base64-encoded zip
|
|
file, so you can just do, e.g.:
|
|
|
|
import init_joy_home
|
|
init_joy_home.initialize(JOY_HOME)
|
|
|
|
'''
|
|
import base64, os, StringIO, zipfile
|
|
|
|
|
|
def initialize(joy_home):
|
|
Z.extractall(joy_home)
|
|
|
|
|
|
def create_data(from_dir='./default_joy_home'):
|
|
f = StringIO.StringIO()
|
|
z = zipfile.ZipFile(f, mode='w')
|
|
for fn in os.listdir(from_dir):
|
|
from_fn = os.path.join(from_dir, fn)
|
|
z.write(from_fn, fn)
|
|
z.close()
|
|
return base64.encodestring(f.getvalue())
|
|
|
|
|
|
Z = zipfile.ZipFile(StringIO.StringIO(base64.decodestring('''\
|
|
UEsDBBQAAAAAAORmeE794BlRfgMAAH4DAAAPAAAAZGVmaW5pdGlvbnMudHh0c2VlX3N0YWNrID09
|
|
IGdvb2Rfdmlld2VyX2xvY2F0aW9uIG9wZW5fc3RhY2sNCnNlZV9yZXNvdXJjZXMgPT0gbGlzdF9y
|
|
ZXNvdXJjZXMgZ29vZF92aWV3ZXJfbG9jYXRpb24gb3Blbl92aWV3ZXINCm9wZW5fcmVzb3VyY2Vf
|
|
YXRfZ29vZF9sb2NhdGlvbiA9PSBnb29kX3ZpZXdlcl9sb2NhdGlvbiBvcGVuX3Jlc291cmNlDQpz
|
|
ZWVfbG9nID09ICJsb2cudHh0IiBvcGVuX3Jlc291cmNlX2F0X2dvb2RfbG9jYXRpb24NCnNlZV9k
|
|
ZWZpbml0aW9ucyA9PSAiZGVmaW5pdGlvbnMudHh0IiBvcGVuX3Jlc291cmNlX2F0X2dvb2RfbG9j
|
|
YXRpb24NCnJvdW5kX3RvX2NlbnRzID09IDEwMCAqICsrIGZsb29yIDEwMCAvDQpyZXNldF9sb2cg
|
|
PT0gImRlbCBsb2cubGluZXNbMTpdIDsgbG9nLmF0X2xpbmUgPSAwIiBldmFsdWF0ZQ0Kc2VlX21l
|
|
bnUgPT0gIm1lbnUudHh0IiBnb29kX3ZpZXdlcl9sb2NhdGlvbiBvcGVuX3Jlc291cmNlDQoNCiMg
|
|
T3JkZXJlZCBCaW5hcnkgVHJlZSBkYXRhc3RydWN0dXJlIGZ1bmN0aW9ucy4NCkJUcmVlLW5ldyA9
|
|
PSBzd2FwIFtbXSBbXV0gY29ucyBjb25zDQogX0JUcmVlLVAgPT0gb3ZlciBbcG9wb3AgcG9wb3Ag
|
|
Zmlyc3RdIG51bGxhcnkNCiBfQlRyZWUtVD4gPT0gW2NvbnMgY29ucyBkaXBkZF0gY29ucyBjb25z
|
|
IGNvbnMgaW5mcmENCiBfQlRyZWUtVDwgPT0gW2NvbnMgY29ucyBkaXBkXSBjb25zIGNvbnMgY29u
|
|
cyBpbmZyYQ0KIF9CVHJlZS1FID09IHBvcCBzd2FwIHJvbGw8IHJlc3QgcmVzdCBjb25zIGNvbnMN
|
|
CiBfQlRyZWUtcmVjdXIgPT0gX0JUcmVlLVAgW19CVHJlZS1UPl0gW19CVHJlZS1FXSBbX0JUcmVl
|
|
LVQ8XSBjbXANCkJUcmVlLWFkZCA9PSBbcG9wb3Agbm90XSBbW3BvcF0gZGlwZCBCVHJlZS1uZXdd
|
|
IFtdIFtfQlRyZWUtcmVjdXJdIGdlbnJlYw0KUEsDBBQAAAAAAAVjpk4zTskZFBYAABQWAAAKAAAA
|
|
bGlicmFyeS5weScnJw0KVGhpcyBmaWxlIGlzIGV4ZWNmaWxlKCknZCB3aXRoIGEgbmFtZXNwYWNl
|
|
IGNvbnRhaW5pbmc6DQoNCiAgRCAtIHRoZSBKb3kgZGljdGlvbmFyeQ0KICBkIC0gdGhlIERpc3Bs
|
|
YXkgb2JqZWN0DQogIHB0IC0gdGhlIFBlcnNpc3RUYXNrIG9iamVjdA0KICBsb2cgLSB0aGUgbG9n
|
|
LnR4dCB2aWV3ZXINCiAgbG9vcCAtIHRoZSBUaGVMb29wIG1haW4gbG9vcCBvYmplY3QNCiAgc3Rh
|
|
Y2tfaG9sZGVyIC0gdGhlIFB5dGhvbiBsaXN0IG9iamVjdCB0aGF0IGhvbGRzIHRoZSBKb3kgc3Rh
|
|
Y2sgdHVwbGUNCiAgd29ybGQgLSB0aGUgSm95IGVudmlyb25tZW50DQoNCicnJw0KZnJvbSBqb3ku
|
|
bGlicmFyeSBpbXBvcnQgKA0KICAgIERlZmluaXRpb25XcmFwcGVyLA0KICAgIEZ1bmN0aW9uV3Jh
|
|
cHBlciwNCiAgICBTaW1wbGVGdW5jdGlvbldyYXBwZXIsDQogICAgKQ0KZnJvbSBqb3kudXRpbHMu
|
|
c3RhY2sgaW1wb3J0IGxpc3RfdG9fc3RhY2ssIGNvbmNhdA0KZnJvbSB2dWkgaW1wb3J0IGNvcmUs
|
|
IHRleHRfdmlld2VyLCBzdGFja192aWV3ZXINCg0KDQpkZWYgaW5zdGFsbChjb21tYW5kKTogRFtj
|
|
b21tYW5kLm5hbWVdID0gY29tbWFuZA0KDQoNCkBpbnN0YWxsDQpAU2ltcGxlRnVuY3Rpb25XcmFw
|
|
cGVyDQpkZWYgbGlzdF9yZXNvdXJjZXMoc3RhY2spOg0KICAgICcnJw0KICAgIFB1dCBhIHN0cmlu
|
|
ZyBvbiB0aGUgc3RhY2sgd2l0aCB0aGUgbmFtZXMgb2YgYWxsIHRoZSBrbm93biByZXNvdXJjZXMN
|
|
CiAgICBvbmUtcGVyLWxpbmUuDQogICAgJycnDQogICAgcmV0dXJuICdcbicuam9pbihwdC5zY2Fu
|
|
KCkpLCBzdGFjaw0KDQoNCkBpbnN0YWxsDQpAU2ltcGxlRnVuY3Rpb25XcmFwcGVyDQpkZWYgb3Bl
|
|
bl9zdGFjayhzdGFjayk6DQogICAgJycnDQogICAgR2l2ZW4gYSBjb29yZGluYXRlIHBhaXIgW3gg
|
|
eV0gKGluIHBpeGVscykgb3BlbiBhIFN0YWNrVmlld2VyIHRoZXJlLg0KICAgICcnJw0KICAgICh4
|
|
LCAoeSwgXykpLCBzdGFjayA9IHN0YWNrDQogICAgViA9IGQub3Blbl92aWV3ZXIoeCwgeSwgc3Rh
|
|
Y2tfdmlld2VyLlN0YWNrVmlld2VyKQ0KICAgIFYuZHJhdygpDQogICAgcmV0dXJuIHN0YWNrDQoN
|
|
Cg0KQGluc3RhbGwNCkBTaW1wbGVGdW5jdGlvbldyYXBwZXINCmRlZiBvcGVuX3Jlc291cmNlKHN0
|
|
YWNrKToNCiAgICAnJycNCiAgICBHaXZlbiBhIGNvb3JkaW5hdGUgcGFpciBbeCB5XSAoaW4gcGl4
|
|
ZWxzKSBhbmQgdGhlIG5hbWUgb2YgYSByZXNvdXJjZQ0KICAgIChmcm9tIGxpc3RfcmVzb3VyY2Vz
|
|
IGNvbW1hbmQpIG9wZW4gYSB2aWV3ZXIgb24gdGhhdCByZXNvdXJjZSBhdCB0aGF0DQogICAgbG9j
|
|
YXRpb24uDQogICAgJycnDQogICAgKCh4LCAoeSwgXykpLCAobmFtZSwgc3RhY2spKSA9IHN0YWNr
|
|
DQogICAgb20gPSBjb3JlLk9wZW5NZXNzYWdlKHdvcmxkLCBuYW1lKQ0KICAgIGQuYnJvYWRjYXN0
|
|
KG9tKQ0KICAgIGlmIG9tLnN0YXR1cyA9PSBjb3JlLlNVQ0NFU1M6DQogICAgICAgIFYgPSBkLm9w
|
|
ZW5fdmlld2VyKHgsIHksIHRleHRfdmlld2VyLlRleHRWaWV3ZXIpDQogICAgICAgIFYuY29udGVu
|
|
dF9pZCwgVi5saW5lcyA9IG9tLmNvbnRlbnRfaWQsIG9tLnRoaW5nDQogICAgICAgIFYuZHJhdygp
|
|
DQogICAgcmV0dXJuIHN0YWNrDQoNCg0KQGluc3RhbGwNCkBTaW1wbGVGdW5jdGlvbldyYXBwZXIN
|
|
CmRlZiBuYW1lX3ZpZXdlcihzdGFjayk6DQogICAgJycnDQogICAgR2l2ZW4gYSBzdHJpbmcgbmFt
|
|
ZSBvbiB0aGUgc3RhY2ssIGlmIHRoZSBjdXJyZW50bHkgZm9jdXNlZCB2aWV3ZXIgaXMNCiAgICBh
|
|
bm9ueW1vdXMsIG5hbWUgdGhlIHZpZXdlciBhbmQgcGVyc2lzdCBpdCBpbiB0aGUgcmVzb3VyY2Ug
|
|
c3RvcmUgdW5kZXINCiAgICB0aGF0IG5hbWUuDQogICAgJycnDQogICAgbmFtZSwgc3RhY2sgPSBz
|
|
dGFjaw0KICAgIGFzc2VydCBpc2luc3RhbmNlKG5hbWUsIHN0ciksIHJlcHIobmFtZSkNCiAgICBp
|
|
ZiBkLmZvY3VzZWRfdmlld2VyIGFuZCBub3QgZC5mb2N1c2VkX3ZpZXdlci5jb250ZW50X2lkOg0K
|
|
ICAgICAgICBkLmZvY3VzZWRfdmlld2VyLmNvbnRlbnRfaWQgPSBuYW1lDQogICAgICAgIHBtID0g
|
|
Y29yZS5QZXJzaXN0TWVzc2FnZSh3b3JsZCwgbmFtZSwgdGhpbmc9ZC5mb2N1c2VkX3ZpZXdlci5s
|
|
aW5lcykNCiAgICAgICAgZC5icm9hZGNhc3QocG0pDQogICAgICAgIGQuZm9jdXNlZF92aWV3ZXIu
|
|
ZHJhd19tZW51KCkNCiAgICByZXR1cm4gc3RhY2sNCg0KDQojI0BpbnN0YWxsDQojI0BTaW1wbGVG
|
|
dW5jdGlvbldyYXBwZXINCiMjZGVmIHBlcnNpc3Rfdmlld2VyKHN0YWNrKToNCiMjICAgIGlmIHNl
|
|
bGYuZm9jdXNlZF92aWV3ZXI6DQojIyAgICAgICAgDQojIyAgICAgICAgc2VsZi5mb2N1c2VkX3Zp
|
|
ZXdlci5jb250ZW50X2lkID0gbmFtZQ0KIyMgICAgICAgIHNlbGYuZm9jdXNlZF92aWV3ZXIuZHJh
|
|
d19tZW51KCkNCiMjICAgIHJldHVybiBzdGFjaw0KDQoNCkBpbnN0YWxsDQpAU2ltcGxlRnVuY3Rp
|
|
b25XcmFwcGVyDQpkZWYgaW5zY3JpYmUoc3RhY2spOg0KICAgICcnJw0KICAgIENyZWF0ZSBhIG5l
|
|
dyBKb3kgZnVuY3Rpb24gZGVmaW5pdGlvbiBpbiB0aGUgSm95IGRpY3Rpb25hcnkuICBBDQogICAg
|
|
ZGVmaW5pdGlvbiBpcyBnaXZlbiBhcyBhIHN0cmluZyB3aXRoIGEgbmFtZSBmb2xsb3dlZCBieSBh
|
|
IGRvdWJsZQ0KICAgIGVxdWFsIHNpZ24gdGhlbiBvbmUgb3IgbW9yZSBKb3kgZnVuY3Rpb25zLCB0
|
|
aGUgYm9keS4gZm9yIGV4YW1wbGU6DQoNCiAgICAgICAgc3FyID09IGR1cCBtdWwNCg0KICAgIElm
|
|
IHlvdSB3YW50IHRoZSBkZWZpbml0aW9uIHRvIHBlcnNpc3Qgb3ZlciByZXN0YXJ0cywgZW50ZXIg
|
|
aXQgaW50bw0KICAgIHRoZSBkZWZpbml0aW9ucy50eHQgcmVzb3VyY2UuDQogICAgJycnDQogICAg
|
|
ZGVmaW5pdGlvbiwgc3RhY2sgPSBzdGFjaw0KICAgIERlZmluaXRpb25XcmFwcGVyLmFkZF9kZWYo
|
|
ZGVmaW5pdGlvbiwgRCkNCiAgICByZXR1cm4gc3RhY2sNCg0KDQpAaW5zdGFsbA0KQFNpbXBsZUZ1
|
|
bmN0aW9uV3JhcHBlcg0KZGVmIG9wZW5fdmlld2VyKHN0YWNrKToNCiAgICAnJycNCiAgICBHaXZl
|
|
biBhIGNvb3JkaW5hdGUgcGFpciBbeCB5XSAoaW4gcGl4ZWxzKSBhbmQgYSBzdHJpbmcsIG9wZW4g
|
|
YSBuZXcNCiAgICB1bm5hbWVkIHZpZXdlciBvbiB0aGF0IHN0cmluZyBhdCB0aGF0IGxvY2F0aW9u
|
|
Lg0KICAgICcnJw0KICAgICgoeCwgKHksIF8pKSwgKGNvbnRlbnQsIHN0YWNrKSkgPSBzdGFjaw0K
|
|
ICAgIFYgPSBkLm9wZW5fdmlld2VyKHgsIHksIHRleHRfdmlld2VyLlRleHRWaWV3ZXIpDQogICAg
|
|
Vi5saW5lcyA9IGNvbnRlbnQuc3BsaXRsaW5lcygpDQogICAgVi5kcmF3KCkNCiAgICByZXR1cm4g
|
|
c3RhY2sNCg0KDQpAaW5zdGFsbA0KQFNpbXBsZUZ1bmN0aW9uV3JhcHBlcg0KZGVmIGdvb2Rfdmll
|
|
d2VyX2xvY2F0aW9uKHN0YWNrKToNCiAgICAnJycNCiAgICBMZWF2ZSBhIGNvb3JkaW5hdGUgcGFp
|
|
ciBbeCB5XSAoaW4gcGl4ZWxzKSBvbiB0aGUgc3RhY2sgdGhhdCB3b3VsZA0KICAgIGJlIGEgZ29v
|
|
ZCBsb2NhdGlvbiBhdCB3aGljaCB0byBvcGVuIGEgbmV3IHZpZXdlci4gIChUaGUgaGV1cmlzdGlj
|
|
DQogICAgZW1wbG95ZWQgaXMgdG8gdGFrZSB1cCB0aGUgYm90dG9tIGhhbGYgb2YgdGhlIGN1cnJl
|
|
bnRseSBvcGVuIHZpZXdlcg0KICAgIHdpdGggdGhlIGdyZWF0ZXN0IGFyZWEuKQ0KICAgICcnJw0K
|
|
ICAgIHZpZXdlcnMgPSBsaXN0KGQuaXRlcl92aWV3ZXJzKCkpDQogICAgaWYgdmlld2VyczoNCiAg
|
|
ICAgICAgdmlld2Vycy5zb3J0KGtleT1sYW1iZGEgKFYsIHgsIHkpOiBWLncgKiBWLmgpDQogICAg
|
|
ICAgIFYsIHgsIHkgPSB2aWV3ZXJzWy0xXQ0KICAgICAgICBjb29yZHMgPSAoeCArIDEsICh5ICsg
|
|
Vi5oIC8gMiwgKCkpKQ0KICAgIGVsc2U6DQogICAgICAgIGNvb3JkcyA9ICgwLCAoMCwgKCkpKQ0K
|
|
ICAgIHJldHVybiBjb29yZHMsIHN0YWNrDQoNCg0KQGluc3RhbGwNCkBGdW5jdGlvbldyYXBwZXIN
|
|
CmRlZiBjbXBfKHN0YWNrLCBleHByZXNzaW9uLCBkaWN0aW9uYXJ5KToNCiAgICAnJycNCiAgICBU
|
|
aGUgY21wIGNvbWJpbmF0b3IgdGFrZXMgdHdvIHZhbHVlcyBhbmQgdGhyZWUgcXVvdGVkIHByb2dy
|
|
YW1zIG9uIHRoZQ0KICAgIHN0YWNrIGFuZCBydW5zIG9uZSBvZiB0aGUgdGhyZWUgZGVwZW5kaW5n
|
|
IG9uIHRoZSByZXN1bHRzIG9mIGNvbXBhcmluZw0KICAgIHRoZSB0d28gdmFsdWVzOg0KDQogICAg
|
|
ICAgICAgIGEgYiBbR10gW0VdIFtMXSBjbXANCiAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
|
|
LS0tLSBhID4gYg0KICAgICAgICAgICAgICAgIEcNCg0KICAgICAgICAgICBhIGIgW0ddIFtFXSBb
|
|
TF0gY21wDQogICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gYSA9IGINCiAgICAgICAg
|
|
ICAgICAgICAgICAgRQ0KDQogICAgICAgICAgIGEgYiBbR10gW0VdIFtMXSBjbXANCiAgICAgICAg
|
|
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBhIDwgYg0KICAgICAgICAgICAgICAgICAgICAgICAg
|
|
TA0KDQogICAgJycnDQogICAgTCwgKEUsIChHLCAoYiwgKGEsIHN0YWNrKSkpKSA9IHN0YWNrDQog
|
|
ICAgZXhwcmVzc2lvbiA9IGNvbmNhdChHIGlmIGEgPiBiIGVsc2UgTCBpZiBhIDwgYiBlbHNlIEUs
|
|
IGV4cHJlc3Npb24pDQogICAgcmV0dXJuIHN0YWNrLCBleHByZXNzaW9uLCBkaWN0aW9uYXJ5DQoN
|
|
Cg0KQGluc3RhbGwNCkBTaW1wbGVGdW5jdGlvbldyYXBwZXINCmRlZiBsaXN0X3ZpZXdlcnMoc3Rh
|
|
Y2spOg0KICAgICcnJw0KICAgIFB1dCBhIHN0cmluZyBvbiB0aGUgc3RhY2sgd2l0aCBzb21lIGlu
|
|
Zm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50bHkNCiAgICBvcGVuIHZpZXdlcnMsIG9uZS1wZXIt
|
|
bGluZS4gIFRoaXMgaXMga2luZCBvZiBhIGRlbW8gZnVuY3Rpb24sIHJhdGhlcg0KICAgIHRoYW4g
|
|
c29tZXRoaW5nIHJlYWxseSB1c2VmdWwuDQogICAgJycnDQogICAgbGluZXMgPSBbXQ0KICAgIGZv
|
|
ciB4LCBUIGluIGQudHJhY2tzOg0KICAgICAgICAjbGluZXMuYXBwZW5kKCd4OiAlaSwgdzogJWks
|
|
ICVyJyAlICh4LCBULncsIFQpKQ0KICAgICAgICBmb3IgeSwgViBpbiBULnZpZXdlcnM6DQogICAg
|
|
ICAgICAgICBsaW5lcy5hcHBlbmQoJ3g6ICVpIHk6ICVpIGg6ICVpICVyICVyJyAlICh4LCB5LCBW
|
|
LmgsIFYuY29udGVudF9pZCwgVikpDQogICAgcmV0dXJuICdcbicuam9pbihsaW5lcyksIHN0YWNr
|
|
DQoNCg0KQGluc3RhbGwNCkBTaW1wbGVGdW5jdGlvbldyYXBwZXINCmRlZiBzcGxpdGxpbmVzKHN0
|
|
YWNrKToNCiAgICAnJycNCiAgICBHaXZlbiBhIHN0cmluZyBvbiB0aGUgc3RhY2sgcmVwbGFjZSBp
|
|
dCB3aXRoIGEgbGlzdCBvZiB0aGUgbGluZXMgaW4NCiAgICB0aGUgc3RyaW5nLg0KICAgICcnJw0K
|
|
ICAgIHRleHQsIHN0YWNrID0gc3RhY2sNCiAgICBhc3NlcnQgaXNpbnN0YW5jZSh0ZXh0LCBzdHIp
|
|
LCByZXByKHRleHQpDQogICAgcmV0dXJuIGxpc3RfdG9fc3RhY2sodGV4dC5zcGxpdGxpbmVzKCkp
|
|
LCBzdGFjaw0KDQoNCkBpbnN0YWxsDQpAU2ltcGxlRnVuY3Rpb25XcmFwcGVyDQpkZWYgaGl5YShz
|
|
dGFjayk6DQogICAgJycnDQogICAgRGVtbyBmdW5jdGlvbiB0byBpbnNlcnQgIkhpIFdvcmxkISIg
|
|
aW50byB0aGUgY3VycmVudCB2aWV3ZXIsIGlmIGFueS4NCiAgICAnJycNCiAgICBpZiBkLmZvY3Vz
|
|
ZWRfdmlld2VyOg0KICAgICAgICBkLmZvY3VzZWRfdmlld2VyLmluc2VydCgnSGkgV29ybGQhJykN
|
|
CiAgICByZXR1cm4gc3RhY2sNClBLAwQUAAAAAADkZnhORezk1gsAAAALAAAABwAAAGxvZy50eHRK
|
|
b3lweSBsb2cNClBLAwQUAAAAAADkZnhOZ/a7zQIFAAACBQAACAAAAG1lbnUudHh0ICBuYW1lX3Zp
|
|
ZXdlcg0KICBsaXN0X3Jlc291cmNlcw0KICBvcGVuX3Jlc291cmNlX2F0X2dvb2RfbG9jYXRpb24N
|
|
CiAgZ29vZF92aWV3ZXJfbG9jYXRpb24NCiAgb3Blbl92aWV3ZXINCiAgc2VlX3N0YWNrDQogIHNl
|
|
ZV9yZXNvdXJjZXMNCiAgc2VlX2RlZmluaXRpb25zDQogIHNlZV9sb2cNCiAgcmVzZXRfbG9nDQoN
|
|
CiAgaW5zY3JpYmUNCiAgZXZhbHVhdGUNCg0KICBwb3AgY2xlYXIgICAgZHVwIHN3YXANCg0KICBh
|
|
ZGQgc3ViIG11bCBkaXYgdHJ1ZWRpdiBtb2R1bHVzIGRpdm1vZA0KICBwbSArKyAtLSBzdW0gcHJv
|
|
ZHVjdCBwb3cgc3FyIHNxcnQNCiAgPCA8PSA9ID49ID4gPD4NCiAgJiA8PCA+Pg0KDQogIGkgZHVw
|
|
ZGlwDQoNCiE9ICUgJiAqICpmcmFjdGlvbiAqZnJhY3Rpb24wICsgKysgLSAtLSAvIDwgPDwgPD0g
|
|
PD4gPSA+ID49ID4+ID8gXg0KYWJzIGFkZCBhbmFtb3JwaGlzbSBhbmQgYXBwMSBhcHAyIGFwcDMg
|
|
YXQgYXZlcmFnZQ0KYiBiaW5hcnkgYnJhbmNoDQpjaG9pY2UgY2xlYXIgY2xlYXZlIGNvbmNhdCBj
|
|
b25zDQpkaW5mcmlyc3QgZGlwIGRpcGQgZGlwZGQgZGlzZW5zdGFja2VuIGRpdiBkaXZtb2QgZG93
|
|
bl90b196ZXJvIGRyb3ANCmR1ZGlwZCBkdXAgZHVwZCBkdXBkaXANCmVuc3RhY2tlbiBlcQ0KZmly
|
|
c3QgZmxhdHRlbiBmbG9vciBmbG9vcmRpdg0KZ2NkIGdlIGdlbnJlYyBnZXRpdGVtIGdyYW5kX3Jl
|
|
c2V0IGd0DQpoZWxwDQppIGlkIGlmdGUgaW5mcmEgaW5zY3JpYmUNCmtleV9iaW5kaW5ncw0KbGUg
|
|
bGVhc3RfZnJhY3Rpb24gbG9vcCBsc2hpZnQgbHQNCm1hcCBtYXggbWluIG1vZCBtb2R1bHVzIG1v
|
|
dXNlX2JpbmRpbmdzIG11bA0KbmUgbmVnIG5vdCBudWxsYXJ5DQpvZiBvciBvdmVyDQpwYW0gcGFy
|
|
c2UgcGljayBwbSBwb3AgcG9wZCBwb3BkZCBwb3BvcCBwb3cgcHJlZCBwcmltcmVjIHByb2R1Y3QN
|
|
CnF1b3RlZA0KcmFuZ2UgcmFuZ2VfdG9femVybyByZW0gcmVtYWluZGVyIHJlbW92ZSByZXNldF9s
|
|
b2cgcmVzdCByZXZlcnNlDQpyb2xsPCByb2xsPiByb2xsZG93biByb2xsdXAgcnNoaWZ0IHJ1bg0K
|
|
c2Vjb25kIHNlbGVjdCBzaGFyaW5nIHNob3dfbG9nIHNodW50IHNpemUgc29ydCBzcXIgc3FydCBz
|
|
dGFjayBzdGVwDQpzdGVwX3plcm8gc3ViIHN1Y2Mgc3VtIHN3YWFjayBzd2FwIHN3b25jYXQgc3dv
|
|
bnMNCnRha2UgdGVybmFyeSB0aGlyZCB0aW1lcyB0cnVlZGl2IHRydXRoeSB0dWNrDQp1bmFyeSB1
|
|
bmNvbnMgdW5pcXVlIHVuaXQgdW5xdW90ZWQgdW5zdGFjaw0Kdm9pZA0Kd2FycmFudHkgd2hpbGUg
|
|
d29yZHMNCnggeG9yDQp6aXANClBLAwQUAAAAAADkZnhOAKs9xo4QAACOEAAACwAAAHNjcmF0Y2gu
|
|
dHh0V2hhdCBpcyBpdD8NCg0KQSBzaW1wbGUgR3JhcGhpY2FsIFVzZXIgSW50ZXJmYWNlIGZvciB0
|
|
aGUgSm95IHByb2dyYW1taW5nIGxhbmd1YWdlLA0Kd3JpdHRlbiB1c2luZyBQeWdhbWUgdG8gYnlw
|
|
YXNzIFgxMSBldC4gYWwuLCBtb2RlbGVkIG9uIHRoZSBPYmVyb24gT1MsIGFuZA0KaW50ZW5kZWQg
|
|
dG8gYmUganVzdCBmdW5jdGlvbmFsIGVub3VnaCB0byBzdXBwb3J0IGJvb3RzdHJhcHBpbmcgZnVy
|
|
dGhlciBKb3kNCmRldmVsb3BtZW50Lg0KDQpJdCdzIGJhc2ljIGZ1bmN0aW9uYWxpdHkgaXMgbW9y
|
|
ZS1vci1sZXNzIGFzIGEgY3J1ZGUgdGV4dCBlZGl0b3IgYWxvbmcgd2l0aA0KYSBzaW1wbGUgSm95
|
|
IHJ1bnRpbWUgKGludGVycHJldGVyLCBzdGFjaywgYW5kIGRpY3Rpb25hcnkuKSAgSXQgYXV0by0g
|
|
c2F2ZXMNCmFueSBuYW1lZCBmaWxlcyAoaW4gYSB2ZXJzaW9uZWQgaG9tZSBkaXJlY3RvcnkpIGFu
|
|
ZCB5b3UgY2FuIHdyaXRlIG5ldyBKb3kNCnByaW1pdGl2ZXMgaW4gUHl0aG9uIGFuZCBKb3kgZGVm
|
|
aW5pdGlvbnMgYW5kIGltbWVkaWF0ZWx5IGluc3RhbGwgYW5kIHVzZQ0KdGhlbSwgYXMgd2VsbCBh
|
|
cyByZWNvcmRpbmcgdGhlbSBmb3IgcmV1c2UgKGFmdGVyIHJlc3RhcnRzLikNCg0KQ3VycmVudGx5
|
|
LCB0aGVyZSBhcmUgb25seSB0d28ga2luZHMgb2YgKGludGVyZXN0aW5nKSB2aWV3ZXJzOiBUZXh0
|
|
Vmlld2Vycw0KYW5kIFN0YWNrVmlld2VyLiBUaGUgVGV4dFZpZXdlcnMgYXJlIGNydWRlIHRleHQg
|
|
ZWRpdG9ycy4gIFRoZXkgcHJvdmlkZQ0KanVzdCBlbm91Z2ggZnVuY3Rpb25hbGl0eSB0byBsZXQg
|
|
dGhlIHVzZXIgd3JpdGUgdGV4dCBhbmQgY29kZSAoUHl0aG9uIGFuZA0KSm95KSBhbmQgZXhlY3V0
|
|
ZSBKb3kgZnVuY3Rpb25zLiAgT25lIGltcG9ydGFudCB0aGluZyB0aGV5IGRvIGlzDQphdXRvbWF0
|
|
aWNhbGx5IHNhdmUgdGhlaXIgY29udGVudCBhZnRlciBjaGFuZ2VzLiAgTm8gbW9yZSBsb3N0IHdv
|
|
cmsuDQoNClRoZSBTdGFja1ZpZXdlciBpcyBhIHNwZWNpYWxpemVkIFRleHRWaWV3ZXIgdGhhdCBz
|
|
aG93cyB0aGUgY29udGVudHMgb2YgdGhlDQpKb3kgc3RhY2sgb25lIGxpbmUgcGVyIHN0YWNrIGl0
|
|
ZW0uICBJdCdzIGEgdmVyeSBoYW5keSB2aXN1YWwgYWlkIHRvIGtlZXANCnRyYWNrIG9mIHdoYXQn
|
|
cyBnb2luZyBvbi4gIFRoZXJlJ3MgYWxzbyBhIGxvZy50eHQgZmlsZSB0aGF0IGdldHMgd3JpdHRl
|
|
bg0KdG8gd2hlbiBjb21tYW5kcyBhcmUgZXhlY3V0ZWQsIGFuZCBzbyByZWNvcmRzIHRoZSBsb2cg
|
|
b2YgdXNlciBhY3Rpb25zIGFuZA0Kc3lzdGVtIGV2ZW50cy4gIEl0IHRlbmRzIHRvIGZpbGwgdXAg
|
|
cXVpY2tseSBzbyB0aGVyZSdzIGEgcmVzZXRfbG9nIGNvbW1hbmQNCnRoYXQgY2xlYXJzIGl0IG91
|
|
dC4NCg0KVmlld2VycyBoYXZlICJncm93IiBhbmQgImNsb3NlIiBpbiB0aGVpciBtZW51IGJhcnMu
|
|
ICBUaGVzZSBhcmUgYnV0dG9ucy4NCldoZW4geW91IHJpZ2h0LWNsaWNrIG9uIGdyb3cgYSB2aWV3
|
|
ZXIgYSBjb3B5IGlzIGNyZWF0ZWQgdGhhdCBjb3ZlcnMgdGhhdA0Kdmlld2VyJ3MgZW50aXJlIHRy
|
|
YWNrLiAgSWYgeW91IGdyb3cgYSB2aWV3ZXIgdGhhdCBhbHJlYWR5IHRha2VzIHVwIGl0cw0Kd2hv
|
|
bGUgdHJhY2sgdGhlbiBhIGNvcHkgaXMgY3JlYXRlZCB0aGF0IHRha2VzIHVwIGFuIGFkZGl0aW9u
|
|
YWwgdHJhY2ssIHVwDQp0byB0aGUgd2hvbGUgc2NyZWVuLiAgQ2xvc2luZyBhIHZpZXdlciBqdXN0
|
|
IGRlbGV0ZXMgdGhhdCB2aWV3ZXIsIGFuZCB3aGVuDQphIHRyYWNrIGhhcyBubyBtb3JlIHZpZXdl
|
|
cnMsIGl0IGlzIGRlbGV0ZWQgYW5kIHRoYXQgZXhwb3NlcyBhbnkgcHJldmlvdXMNCnRyYWNrcyBh
|
|
bmQgdmlld2VycyB0aGF0IHdlcmUgaGlkZGVuLg0KDQooTm90ZTogaWYgeW91IGV2ZXIgY2xvc2Ug
|
|
YWxsIHRoZSB2aWV3ZXJzIGFuZCBhcmUgc2l0dGluZyBhdCBhIGJsYW5rIHNjcmVlbg0Kd2l0aCAg
|
|
bm93aGVyZSB0byB0eXBlIGFuZCBleGVjdXRlIGNvbW1hbmRzLCBwcmVzcyB0aGUgUGF1c2UvQnJl
|
|
YWsga2V5Lg0KVGhpcyB3aWxsIG9wZW4gYSBuZXcgInRyYXAiIHZpZXdlciB3aGljaCB5b3UgY2Fu
|
|
IHRoZW4gdXNlIHRvIHJlY292ZXIuKQ0KDQpDb3BpZXMgb2YgYSB2aWV3ZXIgYWxsIHNoYXJlIHRo
|
|
ZSBzYW1lIG1vZGVsIGFuZCB1cGRhdGUgdGhlaXIgZGlzcGxheSBhcyBpdA0KY2hhbmdlcy4gKElm
|
|
IHlvdSBoYXZlIHR3byB2aWV3ZXJzIG9wZW4gb24gdGhlIHNhbWUgbmFtZWQgcmVzb3VyY2UgYW5k
|
|
IGVkaXQNCm9uZSB5b3UnbGwgc2VlIHRoZSBvdGhlciB1cGRhdGUgYXMgeW91IHR5cGUuKQ0KDQpV
|
|
SSBHdWlkZQ0KDQpsZWZ0IG1vdXNlIHNldHMgY3Vyc29yIGluIHRleHQsIGluIG1lbnUgYmFyIHJl
|
|
c2l6ZXMgdmlld2VyIGludGVyYWN0aXZlbHkNCih0aGlzIGlzIGEgbGl0dGxlIGJ1Z2d5IGluIHRo
|
|
YXQgeW91IGNhbiBtb3ZlIHRoZSBtb3VzZSBxdWlja2x5IGFuZCBnZXQNCm91dHNpZGUgdGhlIG1l
|
|
bnUsIGxlYXZpbmcgdGhlIHZpZXdlciBpbiB0aGUgInJlc2l6aW5nIiBzdGF0ZS4gVW50aWwgSSBm
|
|
aXgNCnRoaXMsIHRoZSB3b3JrYXJvdW5kIGlzIHRvIGp1c3QgZ3JhYiB0aGUgbWVudSBiYXIgYWdh
|
|
aW4gYW5kIHdpZ2dsZSBpdCBhDQpmZXcgcGl4ZWxzIGFuZCBsZXQgZ28uICBUaGlzIHdpbGwgcmVz
|
|
ZXQgdGhlIG1hY2hpbmVyeS4pDQoNClJpZ2h0IG1vdXNlIGV4ZWN1dGVzIEpveSBjb21tYW5kIChm
|
|
dW5jdGlvbnMpLCBhbmQgeW91IGNhbiBkcmFnIHdpdGggdGhlDQpyaWdodCBidXR0b24gdG8gaGln
|
|
aGxpZ2h0ICh3ZWxsLCB1bmRlcmxpbmUpIGNvbW1hbmRzLiAgV29yZHMgdGhhdCBhcmVuJ3QNCm5h
|
|
bWVzIG9mIEpveSBjb21tYW5kcyB3b24ndCBiZSB1bmRlcmxpbmVkLiAgUmVsZWFzZSB0aGUgYnV0
|
|
dG9uIHRvIGV4ZWN1dGUNCnRoZSBjb21tYW5kLg0KDQpUaGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiAo
|
|
dXN1YWxseSBhIHdoZWVsIHRoZXNlIGRheXMpIHNjcm9sbHMgdGhlIHRleHQgYnV0DQp5b3UgY2Fu
|
|
IGFsc28gY2xpY2sgYW5kIGRyYWcgYW55IHZpZXdlciB3aXRoIGl0IHRvIG1vdmUgdGhhdCB2aWV3
|
|
ZXIgdG8NCmFub3RoZXIgdHJhY2sgb3IgdG8gYSBkaWZmZXJlbnQgbG9jYXRpb24gaW4gdGhlIHNh
|
|
bWUgdHJhY2suICBUaGVyZSdzIG5vDQpkaXJlY3QgdmlzdWFsIGZlZWRiYWNrIGZvciB0aGlzICh5
|
|
ZXQpIGJ1dCB0aGF0IGRvc2VuJ3Qgc2VlbSB0byBpbXBhaXIgaXRzDQp1c2VmdWxuZXNzLg0KDQpG
|
|
MSwgRjIgLSBzZXQgc2VsZWN0aW9uIGJlZ2luIGFuZCBlbmQgbWFya2VycyAoY3J1ZGUgYnV0IHVz
|
|
YWJsZS4pDQoNCkYzIC0gY29weSBzZWxlY3RlZCB0ZXh0IHRvIHRoZSB0b3Agb2YgdGhlIHN0YWNr
|
|
Lg0KDQpTaGlmdC1GMyAtIGFzIGNvcHkgdGhlbiBydW4gInBhcnNlIiBjb21tYW5kIG9uIHRoZSBz
|
|
dHJpbmcuDQoNCkY0IC0gY3V0IHNlbGVjdGVkIHRleHQgdG8gdGhlIHRvcCBvZiB0aGUgc3RhY2su
|
|
DQoNClNoaWZ0LUY0IC0gYXMgY3V0IHRoZW4gcnVuICJwb3AiIChkZWxldGUgc2VsZWN0aW9uLikN
|
|
Cg0KSm95DQoNClByZXR0eSBtdWNoIGFsbCBvZiB0aGUgcmVzdCBvZiB0aGUgZnVuY3Rpb25hbGl0
|
|
eSBvZiB0aGUgc3lzdGVtIGlzIHByb3ZpZGVkDQpieSBleGVjdXRpbmcgSm95IGNvbW1hbmRzIChh
|
|
a2EgZnVuY3Rpb25zLCBha2EgIndvcmRzIiBpbiBGb3J0aCkgYnkgcmlnaHQtDQpjbGlja2luZyBv
|
|
biB0aGVpciBuYW1lcyBpbiBhbnkgdGV4dC4NCg0KVG8gZ2V0IGhlbHAgb24gYSBKb3kgZnVuY3Rp
|
|
b24gc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiBpbiBhDQpUZXh0Vmlld2VyIHVzaW5n
|
|
IEYxIGFuZCBGMiwgdGhlbiBwcmVzcyBzaGlmdC1GMyB0byBwYXJzZSB0aGUgc2VsZWN0aW9uLg0K
|
|
VGhlIGZ1bmN0aW9uIChyZWFsbHkgaXRzIFN5bWJvbCkgd2lsbCBhcHBlYXIgb24gdGhlIHN0YWNr
|
|
IGluIGJyYWNrZXRzIChhDQoicXVvdGVkIHByb2dyYW0iIHN1Y2ggYXMgIltwb3BdIi4pICBUaGVu
|
|
IHJpZ2h0LWNsaWNrIG9uIHRoZSB3b3JkIGhlbHAgaW4NCmFueSBUZXh0Vmlld2VyIChpZiBpdCdz
|
|
IG5vdCBhbHJlYWR5IHRoZXJlLCBqdXN0IHR5cGUgaXQgaW4gc29tZXdoZXJlLikNClRoaXMgd2ls
|
|
bCBwcmludCB0aGUgZG9jc3RyaW5nIG9yIGRlZmluaXRpb24gb2YgdGhlIHdvcmQgKGZ1bmN0aW9u
|
|
KSB0bw0Kc3Rkb3V0LiAgQXQgc29tZSBwb2ludCBJJ2xsIHdyaXRlIGEgdGhpbmcgdG8gc2VuZCB0
|
|
aGF0IHRvIHRoZSBsb2cudHh0IGZpbGUNCmluc3RlYWQsIGJ1dCBmb3Igbm93IGxvb2sgZm9yIG91
|
|
dHB1dCBpbiB0aGUgdGVybWluYWwuDQpQSwMEFAAAAAAA5GZ4Tnd/ml4DAAAAAwAAAAwAAABzdGFj
|
|
ay5waWNrbGUodC5QSwECFAAUAAAAAADkZnhO/eAZUX4DAAB+AwAADwAAAAAAAAAAAAAAtoEAAAAA
|
|
ZGVmaW5pdGlvbnMudHh0UEsBAhQAFAAAAAAABWOmTjNOyRkUFgAAFBYAAAoAAAAAAAAAAAAAALaB
|
|
qwMAAGxpYnJhcnkucHlQSwECFAAUAAAAAADkZnhORezk1gsAAAALAAAABwAAAAAAAAAAAAAAtoHn
|
|
GQAAbG9nLnR4dFBLAQIUABQAAAAAAORmeE5n9rvNAgUAAAIFAAAIAAAAAAAAAAAAAAC2gRcaAABt
|
|
ZW51LnR4dFBLAQIUABQAAAAAAORmeE4Aqz3GjhAAAI4QAAALAAAAAAAAAAAAAAC2gT8fAABzY3Jh
|
|
dGNoLnR4dFBLAQIUABQAAAAAAORmeE53f5peAwAAAAMAAAAMAAAAAAAAAAAAAAC2gfYvAABzdGFj
|
|
ay5waWNrbGVQSwUGAAAAAAYABgBTAQAAIzAAAAAA''')))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
print create_data()
|