From 0a12884c34e0f7d2143d28cd603e87b879bb8faa Mon Sep 17 00:00:00 2001 From: Soner Sevinc Date: Tue, 15 Apr 2008 15:04:18 +0000 Subject: [PATCH] --- gui/JavaApplication1/build.xml | 69 + .../javaapplication1/DisplayHandle$1$1.class | Bin 0 -> 1039 bytes .../javaapplication1/DisplayHandle$1.class | Bin 0 -> 1971 bytes .../javaapplication1/DisplayHandle.class | Bin 0 -> 15568 bytes .../classes/javaapplication1/GeniGUI$1.class | Bin 0 -> 748 bytes .../classes/javaapplication1/GeniGUI$2.class | Bin 0 -> 772 bytes .../classes/javaapplication1/GeniGUI$3.class | Bin 0 -> 748 bytes .../classes/javaapplication1/GeniGUI$4.class | Bin 0 -> 748 bytes .../classes/javaapplication1/GeniGUI$5.class | Bin 0 -> 748 bytes .../classes/javaapplication1/GeniGUI$6.class | Bin 0 -> 748 bytes .../classes/javaapplication1/GeniGUI$7.class | Bin 0 -> 552 bytes .../classes/javaapplication1/GeniGUI.class | Bin 0 -> 10671 bytes .../javaapplication1/GuiComponent.class | Bin 0 -> 1573 bytes .../javaapplication1/PanelFiller.class | Bin 0 -> 7338 bytes .../classes/javaapplication1/RecordInfo.class | Bin 0 -> 878 bytes .../javaapplication1/SpringUtilities.class | Bin 0 -> 4280 bytes .../build/classes/javaapplication1/User.class | Bin 0 -> 1092 bytes gui/JavaApplication1/certutil.py | 25 + gui/JavaApplication1/client_keiko/acc_file | 52 + .../client_keiko/clientstub.py | 104 ++ gui/JavaApplication1/client_keiko/cred_file | 59 + gui/JavaApplication1/client_keiko/keiko.cert | 11 + gui/JavaApplication1/client_keiko/keiko.pkey | 15 + .../client_keiko/trusted_certs/geni_mng.cert | 11 + .../client_keiko/trusted_certs/geni_slc.cert | 11 + .../trusted_certs/planetlab_mng.cert | 11 + .../trusted_certs/planetlab_slc.cert | 11 + gui/JavaApplication1/client_osaka/acc_file | 39 + .../client_osaka/clientstub.py | 154 ++ gui/JavaApplication1/client_osaka/cred_file | 44 + gui/JavaApplication1/client_osaka/osaka.cert | 11 + gui/JavaApplication1/client_osaka/osaka.pkey | 15 + .../client_osaka/trusted_certs/geni_mng.cert | 11 + .../client_osaka/trusted_certs/geni_slc.cert | 11 + .../trusted_certs/planetlab_mng.cert | 11 + .../trusted_certs/planetlab_slc.cert | 11 + .../dist/JavaApplication1.jar | Bin 0 -> 52319 bytes gui/JavaApplication1/dist/README.TXT | 31 + .../dist/lib/swing-layout-1.0.jar | Bin 0 -> 140545 bytes gui/JavaApplication1/manifest.mf | 3 + gui/JavaApplication1/nbproject/build-impl.xml | 541 ++++++ .../nbproject/genfiles.properties | 8 + .../nbproject/private/private.properties | 4 + .../nbproject/private/private.xml | 4 + .../nbproject/project.properties | 57 + gui/JavaApplication1/nbproject/project.xml | 16 + .../src/javaapplication1/DisplayHandle.java | 570 ++++++ .../src/javaapplication1/GeniGUI.form | 453 +++++ .../src/javaapplication1/GeniGUI.java | 452 +++++ .../src/javaapplication1/GuiComponent.java | 119 ++ .../src/javaapplication1/PanelFiller.java | 248 +++ .../src/javaapplication1/RecordInfo.java | 71 + .../src/javaapplication1/SpringUtilities.java | 224 +++ .../src/javaapplication1/User.java | 92 + gui/JavaApplication1/test/NewJFrame.form | 1037 +++++++++++ gui/JavaApplication1/test/NewJFrame.java | 1221 +++++++++++++ server/component/planetlab/acc_file | 13 + server/component/planetlab/buaa/buaa.cert | 11 + server/component/planetlab/buaa/buaa.pkey | 15 + .../component/planetlab/canarie/canarie.cert | 11 + .../component/planetlab/canarie/canarie.pkey | 15 + .../canariecalgary/canariecalgary.cert | 11 + .../canariecalgary/canariecalgary.pkey | 15 + .../canariehalifax/canariehalifax.cert | 11 + .../canariehalifax/canariehalifax.pkey | 15 + .../canariemontreal/canariemontreal.cert | 11 + .../canariemontreal/canariemontreal.pkey | 15 + .../canarieottawa/canarieottawa.cert | 11 + .../canarieottawa/canarieottawa.pkey | 15 + .../canarietoronto/canarietoronto.cert | 11 + .../canarietoronto/canarietoronto.pkey | 15 + .../canariewinnipeg/canariewinnipeg.cert | 11 + .../canariewinnipeg/canariewinnipeg.pkey | 15 + .../planetlab/canterbury/canterbury.cert | 11 + .../planetlab/canterbury/canterbury.pkey | 15 + .../planetlab/cernetbuaa/cernetbuaa.cert | 11 + .../planetlab/cernetbuaa/cernetbuaa.pkey | 15 + .../planetlab/cernetpku/cernetpku.cert | 11 + .../planetlab/cernetpku/cernetpku.pkey | 15 + .../planetlab/cernetsdu/cernetsdu.cert | 11 + .../planetlab/cernetsdu/cernetsdu.pkey | 15 + .../planetlab/cernetxjtu/cernetxjtu.cert | 11 + .../planetlab/cernetxjtu/cernetxjtu.pkey | 15 + .../planetlab/cernetxmu/cernetxmu.cert | 11 + .../planetlab/cernetxmu/cernetxmu.pkey | 15 + .../planetlab/cernetzju/cernetzju.cert | 11 + .../planetlab/cernetzju/cernetzju.pkey | 15 + server/component/planetlab/cred_file | 14 + .../planetlab/equinixsi/equinixsi.cert | 11 + .../planetlab/equinixsi/equinixsi.pkey | 15 + .../component/planetlab/eu/aston/aston.cert | 11 + .../component/planetlab/eu/aston/aston.pkey | 15 + .../planetlab/eu/bamberg/bamberg.cert | 11 + .../planetlab/eu/bamberg/bamberg.pkey | 15 + .../component/planetlab/eu/basel/basel.cert | 11 + .../component/planetlab/eu/basel/basel.pkey | 15 + .../planetlab/eu/budapest/budapest.cert | 11 + .../planetlab/eu/budapest/budapest.pkey | 15 + .../component/planetlab/eu/cesnet/cesnet.cert | 11 + .../component/planetlab/eu/cesnet/cesnet.pkey | 15 + server/component/planetlab/eu/enst/enst.cert | 11 + server/component/planetlab/eu/enst/enst.pkey | 15 + .../component/planetlab/eu/ethzcs/ethzcs.cert | 11 + .../component/planetlab/eu/ethzcs/ethzcs.pkey | 15 + server/component/planetlab/eu/eu.cert | 11 + server/component/planetlab/eu/eu.pkey | 15 + .../planetlab/eu/eurecom/eurecom.cert | 11 + .../planetlab/eu/eurecom/eurecom.pkey | 15 + .../component/planetlab/eu/fokus/fokus.cert | 11 + .../component/planetlab/eu/fokus/fokus.pkey | 15 + server/component/planetlab/eu/hawh/hawh.cert | 11 + server/component/planetlab/eu/hawh/hawh.pkey | 15 + .../component/planetlab/eu/inria/inria.cert | 11 + .../component/planetlab/eu/inria/inria.pkey | 15 + .../component/planetlab/eu/irisa/irisa.cert | 11 + .../component/planetlab/eu/irisa/irisa.pkey | 15 + .../planetlab/eu/konstanz/konstanz.cert | 11 + .../planetlab/eu/konstanz/konstanz.pkey | 15 + .../component/planetlab/eu/lisbon/lisbon.cert | 11 + .../component/planetlab/eu/lisbon/lisbon.pkey | 15 + .../planetlab/eu/moscowstate/moscowstate.cert | 11 + .../planetlab/eu/moscowstate/moscowstate.pkey | 15 + .../planetlab/eu/msuchem/msuchem.cert | 11 + .../planetlab/eu/msuchem/msuchem.pkey | 15 + server/component/planetlab/eu/tcd/tcd.cert | 11 + server/component/planetlab/eu/tcd/tcd.pkey | 15 + .../component/planetlab/eu/univie/univie.cert | 11 + .../component/planetlab/eu/univie/univie.pkey | 15 + .../component/planetlab/eu/unizh/unizh.cert | 11 + .../component/planetlab/eu/unizh/unizh.pkey | 15 + server/component/planetlab/eu/upb/upb.cert | 11 + server/component/planetlab/eu/upb/upb.pkey | 15 + server/component/planetlab/fing/fing.cert | 11 + server/component/planetlab/fing/fing.pkey | 15 + server/component/planetlab/haifa/haifa.cert | 11 + server/component/planetlab/haifa/haifa.pkey | 15 + .../component/planetlab/icavite/icavite.cert | 11 + .../component/planetlab/icavite/icavite.pkey | 15 + server/component/planetlab/ihaifa/ihaifa.cert | 11 + server/component/planetlab/ihaifa/ihaifa.pkey | 15 + server/component/planetlab/iitr/iitr.cert | 11 + server/component/planetlab/iitr/iitr.pkey | 15 + .../planetlab/ileixlip/ileixlip.cert | 11 + .../planetlab/ileixlip/ileixlip.pkey | 15 + .../component/planetlab/jp/jaist/jaist.cert | 11 + .../component/planetlab/jp/jaist/jaist.pkey | 15 + server/component/planetlab/jp/jp.cert | 11 + server/component/planetlab/jp/jp.pkey | 15 + server/component/planetlab/jp/keio/keio.cert | 11 + server/component/planetlab/jp/keio/keio.pkey | 15 + .../component/planetlab/jp/naist/naist.cert | 11 + .../component/planetlab/jp/naist/naist.pkey | 15 + server/component/planetlab/jp/nict/nict.cert | 11 + server/component/planetlab/jp/nict/nict.pkey | 15 + .../component/planetlab/jp/osaka/osaka.cert | 11 + .../component/planetlab/jp/osaka/osaka.pkey | 15 + .../jp/plcolojgnfukuoka/plcolojgnfukuoka.cert | 11 + .../jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey | 15 + .../plcolojgnhiroshima.cert | 11 + .../plcolojgnhiroshima.pkey | 15 + .../jp/plcolojgnkochi/plcolojgnkochi.cert | 11 + .../jp/plcolojgnkochi/plcolojgnkochi.pkey | 15 + .../jp/plcolojgnnagoya/plcolojgnnagoya.cert | 11 + .../jp/plcolojgnnagoya/plcolojgnnagoya.pkey | 15 + .../jp/plcolojgnokayama/plcolojgnokayama.cert | 11 + .../jp/plcolojgnokayama/plcolojgnokayama.pkey | 15 + .../jp/plcolojgnosaka/plcolojgnosaka.cert | 11 + .../jp/plcolojgnosaka/plcolojgnosaka.pkey | 15 + .../jp/plcolojgnsendai/plcolojgnsendai.cert | 11 + .../jp/plcolojgnsendai/plcolojgnsendai.pkey | 15 + .../jp/plcolotpgdansk/plcolotpgdansk.cert | 11 + .../jp/plcolotpgdansk/plcolotpgdansk.pkey | 15 + .../jp/plcolotppiotrkow/plcolotppiotrkow.cert | 11 + .../jp/plcolotppiotrkow/plcolotppiotrkow.pkey | 15 + .../jp/plcolotppoznan/plcolotppoznan.cert | 11 + .../jp/plcolotppoznan/plcolotppoznan.pkey | 15 + .../component/planetlab/jp/utokyo/utokyo.cert | 11 + .../component/planetlab/jp/utokyo/utokyo.pkey | 15 + .../component/planetlab/jp/waseda/waseda.cert | 11 + .../component/planetlab/jp/waseda/waseda.pkey | 15 + server/component/planetlab/jp/wide/wide.cert | 11 + server/component/planetlab/jp/wide/wide.pkey | 15 + server/component/planetlab/ntu/ntu.cert | 11 + server/component/planetlab/ntu/ntu.pkey | 15 + server/component/planetlab/planetlab.cert | 11 + server/component/planetlab/planetlab.pkey | 15 + server/component/planetlab/qub/qub.cert | 11 + server/component/planetlab/qub/qub.pkey | 15 + .../planetlab/snummlab/snummlab.cert | 11 + .../planetlab/snummlab/snummlab.pkey | 15 + server/component/planetlab/sydney/sydney.cert | 11 + server/component/planetlab/sydney/sydney.pkey | 15 + server/component/planetlab/tau/tau.cert | 11 + server/component/planetlab/tau/tau.pkey | 15 + server/component/planetlab/ula/ula.cert | 11 + server/component/planetlab/ula/ula.pkey | 15 + .../component/planetlab/unioslo/unioslo.cert | 11 + .../component/planetlab/unioslo/unioslo.pkey | 15 + server/component/planetlab/us/att/att.cert | 11 + server/component/planetlab/us/att/att.pkey | 15 + server/component/planetlab/us/aub/aub.cert | 11 + server/component/planetlab/us/aub/aub.pkey | 15 + .../component/planetlab/us/brown/brown.cert | 11 + .../component/planetlab/us/brown/brown.pkey | 15 + server/component/planetlab/us/bu/bu.cert | 11 + server/component/planetlab/us/bu/bu.pkey | 15 + server/component/planetlab/us/ccny/ccny.cert | 11 + server/component/planetlab/us/ccny/ccny.pkey | 15 + .../planetlab/us/cernetneu/cernetneu.cert | 11 + .../planetlab/us/cernetneu/cernetneu.pkey | 15 + .../planetlab/us/colorado/colorado.cert | 11 + .../planetlab/us/colorado/colorado.pkey | 15 + .../planetlab/us/columbia/columbia.cert | 11 + .../planetlab/us/columbia/columbia.pkey | 15 + server/component/planetlab/us/irp/irp.cert | 11 + server/component/planetlab/us/irp/irp.pkey | 15 + .../component/planetlab/us/jhuis/jhuis.cert | 11 + .../component/planetlab/us/jhuis/jhuis.pkey | 15 + .../planetlab/us/michigan/michigan.cert | 11 + .../planetlab/us/michigan/michigan.pkey | 15 + .../us/northwestern/northwestern.cert | 11 + .../us/northwestern/northwestern.pkey | 15 + .../component/planetlab/us/orbit/orbit.cert | 11 + .../component/planetlab/us/orbit/orbit.pkey | 15 + server/component/planetlab/us/rice/rice.cert | 11 + server/component/planetlab/us/rice/rice.pkey | 15 + server/component/planetlab/us/rpi/rpi.cert | 11 + server/component/planetlab/us/rpi/rpi.pkey | 15 + .../planetlab/us/stevens/stevens.cert | 11 + .../planetlab/us/stevens/stevens.pkey | 15 + server/component/planetlab/us/tky/tky.cert | 11 + server/component/planetlab/us/tky/tky.pkey | 15 + server/component/planetlab/us/ucd/ucd.cert | 11 + server/component/planetlab/us/ucd/ucd.pkey | 15 + server/component/planetlab/us/uci/uci.cert | 11 + server/component/planetlab/us/uci/uci.pkey | 15 + server/component/planetlab/us/ucla/ucla.cert | 11 + server/component/planetlab/us/ucla/ucla.pkey | 15 + .../component/planetlab/us/uclaee/uclaee.cert | 11 + .../component/planetlab/us/uclaee/uclaee.pkey | 15 + server/component/planetlab/us/us.cert | 11 + server/component/planetlab/us/us.pkey | 15 + server/component/planetlab/us/utah/utah.cert | 11 + server/component/planetlab/us/utah/utah.pkey | 15 + .../component/planetlab/us/utxsa/utxsa.cert | 11 + .../component/planetlab/us/utxsa/utxsa.pkey | 15 + server/component/planetlab/us/uvic/uvic.cert | 11 + server/component/planetlab/us/uvic/uvic.pkey | 15 + .../us/uwaccretivedsl/uwaccretivedsl.cert | 11 + .../us/uwaccretivedsl/uwaccretivedsl.pkey | 15 + .../planetlab/us/vanderbilt/vanderbilt.cert | 11 + .../planetlab/us/vanderbilt/vanderbilt.pkey | 15 + server/interface_tree_cr | 97 ++ server/interface_tree_cr_dict | 1 + server/interface_tree_sr | 97 ++ server/interface_tree_sr_dict | 1 + server/jpywork/PathVFS$_PyInner.class | Bin 0 -> 7997 bytes server/jpywork/PathVFS.class | Bin 0 -> 2487 bytes server/jpywork/PathVFS.java | 287 +++ server/jpywork/SocketServer$_PyInner.class | Bin 0 -> 27870 bytes server/jpywork/SocketServer.class | Bin 0 -> 2497 bytes server/jpywork/SocketServer.java | 1048 +++++++++++ server/jpywork/StringIO$_PyInner.class | Bin 0 -> 13344 bytes server/jpywork/StringIO.class | Bin 0 -> 2489 bytes server/jpywork/StringIO.java | 507 ++++++ server/jpywork/UserDict$_PyInner.class | Bin 0 -> 7456 bytes server/jpywork/UserDict.class | Bin 0 -> 2489 bytes server/jpywork/UserDict.java | 258 +++ server/jpywork/atexit$_PyInner.class | Bin 0 -> 5853 bytes server/jpywork/atexit.class | Bin 0 -> 2485 bytes server/jpywork/atexit.java | 185 ++ server/jpywork/calendar$_PyInner.class | Bin 0 -> 18283 bytes server/jpywork/calendar.class | Bin 0 -> 2489 bytes server/jpywork/calendar.java | 651 +++++++ server/jpywork/copy$_PyInner.class | Bin 0 -> 17997 bytes server/jpywork/copy.class | Bin 0 -> 2481 bytes server/jpywork/copy.java | 722 ++++++++ server/jpywork/copy_reg$_PyInner.class | Bin 0 -> 4626 bytes server/jpywork/copy_reg.class | Bin 0 -> 2489 bytes server/jpywork/copy_reg.java | 123 ++ server/jpywork/javaos$_PyInner.class | Bin 0 -> 31551 bytes server/jpywork/javaos.class | Bin 0 -> 2485 bytes server/jpywork/javaos.java | 1098 ++++++++++++ server/jpywork/javapath$_PyInner.class | Bin 0 -> 18115 bytes server/jpywork/javapath.class | Bin 0 -> 2489 bytes server/jpywork/javapath.java | 719 ++++++++ server/jpywork/linecache$_PyInner.class | Bin 0 -> 7185 bytes server/jpywork/linecache.class | Bin 0 -> 2491 bytes server/jpywork/linecache.java | 255 +++ server/jpywork/random$_PyInner.class | Bin 0 -> 30716 bytes server/jpywork/random.class | Bin 0 -> 2485 bytes server/jpywork/random.java | 1087 ++++++++++++ server/jpywork/re$_PyInner.class | Bin 0 -> 3685 bytes server/jpywork/re.class | Bin 0 -> 2477 bytes server/jpywork/re.java | 115 ++ server/jpywork/repr$_PyInner.class | Bin 0 -> 9893 bytes server/jpywork/repr.class | Bin 0 -> 2481 bytes server/jpywork/repr.java | 354 ++++ server/jpywork/server$_PyInner.class | Bin 0 -> 34592 bytes server/jpywork/server.class | Bin 0 -> 2485 bytes server/jpywork/server.java | 1188 +++++++++++++ server/jpywork/socket$_PyInner.class | Bin 0 -> 20861 bytes server/jpywork/socket.class | Bin 0 -> 2485 bytes server/jpywork/socket.java | 840 +++++++++ server/jpywork/sre$_PyInner.class | Bin 0 -> 17011 bytes server/jpywork/sre.class | Bin 0 -> 2479 bytes server/jpywork/sre.java | 602 +++++++ server/jpywork/sre_compile$_PyInner.class | Bin 0 -> 17124 bytes server/jpywork/sre_compile.class | Bin 0 -> 2495 bytes server/jpywork/sre_compile.java | 710 ++++++++ server/jpywork/sre_constants$_PyInner.class | Bin 0 -> 14414 bytes server/jpywork/sre_constants.class | Bin 0 -> 2499 bytes server/jpywork/sre_constants.java | 407 +++++ server/jpywork/sre_parse$_PyInner.class | Bin 0 -> 34820 bytes server/jpywork/sre_parse.class | Bin 0 -> 2491 bytes server/jpywork/sre_parse.java | 1544 +++++++++++++++++ server/jpywork/stat$_PyInner.class | Bin 0 -> 6005 bytes server/jpywork/stat.class | Bin 0 -> 2481 bytes server/jpywork/stat.java | 233 +++ server/jpywork/string$_PyInner.class | Bin 0 -> 20070 bytes server/jpywork/string.class | Bin 0 -> 2485 bytes server/jpywork/string.java | 758 ++++++++ server/jpywork/threading$_PyInner.class | Bin 0 -> 34479 bytes server/jpywork/threading.class | Bin 0 -> 2491 bytes server/jpywork/threading.java | 1462 ++++++++++++++++ server/jpywork/traceback$_PyInner.class | Bin 0 -> 18932 bytes server/jpywork/traceback.class | Bin 0 -> 2491 bytes server/jpywork/traceback.java | 712 ++++++++ server/jpywork/util$_PyInner.class | Bin 0 -> 6142 bytes server/jpywork/util.class | Bin 0 -> 2481 bytes server/jpywork/util.java | 192 ++ server/jpywork/yapm$YaPM.class | Bin 0 -> 6800 bytes server/jpywork/yapm$_PyInner.class | Bin 0 -> 6645 bytes server/jpywork/yapm.class | Bin 0 -> 2583 bytes server/jpywork/yapm.java | 367 ++++ server/keycreator/prog.py | 48 + server/server.py | 725 ++++++++ server/server.pyc | Bin 0 -> 16839 bytes server/serverprj.e3p | 39 + server/serverprj.e3t | 6 + server/slice/planetlab/acc_file | 13 + server/slice/planetlab/buaa/buaa.cert | 11 + server/slice/planetlab/buaa/buaa.pkey | 15 + server/slice/planetlab/canarie/canarie.cert | 11 + server/slice/planetlab/canarie/canarie.pkey | 15 + .../canariecalgary/canariecalgary.cert | 11 + .../canariecalgary/canariecalgary.pkey | 15 + .../canariehalifax/canariehalifax.cert | 11 + .../canariehalifax/canariehalifax.pkey | 15 + .../canariemontreal/canariemontreal.cert | 11 + .../canariemontreal/canariemontreal.pkey | 15 + .../canarieottawa/canarieottawa.cert | 11 + .../canarieottawa/canarieottawa.pkey | 15 + .../canarietoronto/canarietoronto.cert | 11 + .../canarietoronto/canarietoronto.pkey | 15 + .../canariewinnipeg/canariewinnipeg.cert | 11 + .../canariewinnipeg/canariewinnipeg.pkey | 15 + .../planetlab/canterbury/canterbury.cert | 11 + .../planetlab/canterbury/canterbury.pkey | 15 + .../planetlab/cernetbuaa/cernetbuaa.cert | 11 + .../planetlab/cernetbuaa/cernetbuaa.pkey | 15 + .../slice/planetlab/cernetpku/cernetpku.cert | 11 + .../slice/planetlab/cernetpku/cernetpku.pkey | 15 + .../slice/planetlab/cernetsdu/cernetsdu.cert | 11 + .../slice/planetlab/cernetsdu/cernetsdu.pkey | 15 + .../planetlab/cernetxjtu/cernetxjtu.cert | 11 + .../planetlab/cernetxjtu/cernetxjtu.pkey | 15 + .../slice/planetlab/cernetxmu/cernetxmu.cert | 11 + .../slice/planetlab/cernetxmu/cernetxmu.pkey | 15 + .../slice/planetlab/cernetzju/cernetzju.cert | 11 + .../slice/planetlab/cernetzju/cernetzju.pkey | 15 + server/slice/planetlab/cred_file | 14 + .../slice/planetlab/equinixsi/equinixsi.cert | 11 + .../slice/planetlab/equinixsi/equinixsi.pkey | 15 + server/slice/planetlab/eu/aston/aston.cert | 11 + server/slice/planetlab/eu/aston/aston.pkey | 15 + .../slice/planetlab/eu/bamberg/bamberg.cert | 11 + .../slice/planetlab/eu/bamberg/bamberg.pkey | 15 + server/slice/planetlab/eu/basel/basel.cert | 11 + server/slice/planetlab/eu/basel/basel.pkey | 15 + .../slice/planetlab/eu/budapest/budapest.cert | 11 + .../slice/planetlab/eu/budapest/budapest.pkey | 15 + server/slice/planetlab/eu/cesnet/cesnet.cert | 11 + server/slice/planetlab/eu/cesnet/cesnet.pkey | 15 + server/slice/planetlab/eu/enst/enst.cert | 11 + server/slice/planetlab/eu/enst/enst.pkey | 15 + server/slice/planetlab/eu/ethzcs/ethzcs.cert | 11 + server/slice/planetlab/eu/ethzcs/ethzcs.pkey | 15 + server/slice/planetlab/eu/eu.cert | 11 + server/slice/planetlab/eu/eu.pkey | 15 + .../slice/planetlab/eu/eurecom/eurecom.cert | 11 + .../slice/planetlab/eu/eurecom/eurecom.pkey | 15 + server/slice/planetlab/eu/fokus/fokus.cert | 11 + server/slice/planetlab/eu/fokus/fokus.pkey | 15 + server/slice/planetlab/eu/hawh/hawh.cert | 11 + server/slice/planetlab/eu/hawh/hawh.pkey | 15 + server/slice/planetlab/eu/inria/inria.cert | 11 + server/slice/planetlab/eu/inria/inria.pkey | 15 + server/slice/planetlab/eu/irisa/irisa.cert | 11 + server/slice/planetlab/eu/irisa/irisa.pkey | 15 + .../slice/planetlab/eu/konstanz/konstanz.cert | 11 + .../slice/planetlab/eu/konstanz/konstanz.pkey | 15 + server/slice/planetlab/eu/lisbon/lisbon.cert | 11 + server/slice/planetlab/eu/lisbon/lisbon.pkey | 15 + .../planetlab/eu/moscowstate/moscowstate.cert | 11 + .../planetlab/eu/moscowstate/moscowstate.pkey | 15 + .../slice/planetlab/eu/msuchem/msuchem.cert | 11 + .../slice/planetlab/eu/msuchem/msuchem.pkey | 15 + server/slice/planetlab/eu/tcd/tcd.cert | 11 + server/slice/planetlab/eu/tcd/tcd.pkey | 15 + server/slice/planetlab/eu/univie/univie.cert | 11 + server/slice/planetlab/eu/univie/univie.pkey | 15 + server/slice/planetlab/eu/unizh/unizh.cert | 11 + server/slice/planetlab/eu/unizh/unizh.pkey | 15 + server/slice/planetlab/eu/upb/upb.cert | 11 + server/slice/planetlab/eu/upb/upb.pkey | 15 + server/slice/planetlab/fing/fing.cert | 11 + server/slice/planetlab/fing/fing.pkey | 15 + server/slice/planetlab/haifa/haifa.cert | 11 + server/slice/planetlab/haifa/haifa.pkey | 15 + server/slice/planetlab/icavite/icavite.cert | 11 + server/slice/planetlab/icavite/icavite.pkey | 15 + server/slice/planetlab/ihaifa/ihaifa.cert | 11 + server/slice/planetlab/ihaifa/ihaifa.pkey | 15 + server/slice/planetlab/iitr/iitr.cert | 11 + server/slice/planetlab/iitr/iitr.pkey | 15 + server/slice/planetlab/ileixlip/ileixlip.cert | 11 + server/slice/planetlab/ileixlip/ileixlip.pkey | 15 + server/slice/planetlab/jp/acc_file | 26 + server/slice/planetlab/jp/cred_file | 29 + server/slice/planetlab/jp/jaist/jaist.cert | 11 + server/slice/planetlab/jp/jaist/jaist.pkey | 15 + server/slice/planetlab/jp/jp.cert | 11 + server/slice/planetlab/jp/jp.pkey | 15 + server/slice/planetlab/jp/keio/acc_file | 39 + server/slice/planetlab/jp/keio/cred_file | 44 + server/slice/planetlab/jp/keio/keio.cert | 11 + server/slice/planetlab/jp/keio/keio.pkey | 15 + server/slice/planetlab/jp/naist/naist.cert | 11 + server/slice/planetlab/jp/naist/naist.pkey | 15 + server/slice/planetlab/jp/nict/nict.cert | 11 + server/slice/planetlab/jp/nict/nict.pkey | 15 + server/slice/planetlab/jp/osaka/acc_file | 39 + server/slice/planetlab/jp/osaka/osaka.cert | 11 + server/slice/planetlab/jp/osaka/osaka.pkey | 15 + .../jp/osaka/tokyobranch/tokyobranch.cert | 11 + .../jp/osaka/tokyobranch/tokyobranch.pkey | 15 + .../jp/osaka/tokyobranch2/tokyobranch2.cert | 11 + .../jp/osaka/tokyobranch2/tokyobranch2.pkey | 15 + .../jp/osaka/tokyobranchty/tokyobranchty.cert | 11 + .../jp/osaka/tokyobranchty/tokyobranchty.pkey | 15 + .../jp/plcolojgnfukuoka/plcolojgnfukuoka.cert | 11 + .../jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey | 15 + .../plcolojgnhiroshima.cert | 11 + .../plcolojgnhiroshima.pkey | 15 + .../jp/plcolojgnkochi/plcolojgnkochi.cert | 11 + .../jp/plcolojgnkochi/plcolojgnkochi.pkey | 15 + .../jp/plcolojgnnagoya/plcolojgnnagoya.cert | 11 + .../jp/plcolojgnnagoya/plcolojgnnagoya.pkey | 15 + .../jp/plcolojgnokayama/plcolojgnokayama.cert | 11 + .../jp/plcolojgnokayama/plcolojgnokayama.pkey | 15 + .../jp/plcolojgnosaka/plcolojgnosaka.cert | 11 + .../jp/plcolojgnosaka/plcolojgnosaka.pkey | 15 + .../jp/plcolojgnsendai/plcolojgnsendai.cert | 11 + .../jp/plcolojgnsendai/plcolojgnsendai.pkey | 15 + .../jp/plcolotpgdansk/plcolotpgdansk.cert | 11 + .../jp/plcolotpgdansk/plcolotpgdansk.pkey | 15 + .../jp/plcolotppiotrkow/plcolotppiotrkow.cert | 11 + .../jp/plcolotppiotrkow/plcolotppiotrkow.pkey | 15 + .../jp/plcolotppoznan/plcolotppoznan.cert | 11 + .../jp/plcolotppoznan/plcolotppoznan.pkey | 15 + server/slice/planetlab/jp/utokyo/utokyo.cert | 11 + server/slice/planetlab/jp/utokyo/utokyo.pkey | 15 + server/slice/planetlab/jp/waseda/waseda.cert | 11 + server/slice/planetlab/jp/waseda/waseda.pkey | 15 + server/slice/planetlab/jp/wide/wide.cert | 11 + server/slice/planetlab/jp/wide/wide.pkey | 15 + server/slice/planetlab/ntu/ntu.cert | 11 + server/slice/planetlab/ntu/ntu.pkey | 15 + server/slice/planetlab/planetlab.cert | 11 + server/slice/planetlab/planetlab.pkey | 15 + server/slice/planetlab/qub/qub.cert | 11 + server/slice/planetlab/qub/qub.pkey | 15 + server/slice/planetlab/snummlab/snummlab.cert | 11 + server/slice/planetlab/snummlab/snummlab.pkey | 15 + server/slice/planetlab/sydney/sydney.cert | 11 + server/slice/planetlab/sydney/sydney.pkey | 15 + server/slice/planetlab/tau/tau.cert | 11 + server/slice/planetlab/tau/tau.pkey | 15 + server/slice/planetlab/ula/ula.cert | 11 + server/slice/planetlab/ula/ula.pkey | 15 + server/slice/planetlab/unioslo/unioslo.cert | 11 + server/slice/planetlab/unioslo/unioslo.pkey | 15 + server/slice/planetlab/us/att/att.cert | 11 + server/slice/planetlab/us/att/att.pkey | 15 + server/slice/planetlab/us/aub/aub.cert | 11 + server/slice/planetlab/us/aub/aub.pkey | 15 + server/slice/planetlab/us/brown/brown.cert | 11 + server/slice/planetlab/us/brown/brown.pkey | 15 + server/slice/planetlab/us/bu/bu.cert | 11 + server/slice/planetlab/us/bu/bu.pkey | 15 + server/slice/planetlab/us/ccny/ccny.cert | 11 + server/slice/planetlab/us/ccny/ccny.pkey | 15 + .../planetlab/us/cernetneu/cernetneu.cert | 11 + .../planetlab/us/cernetneu/cernetneu.pkey | 15 + .../slice/planetlab/us/colorado/colorado.cert | 11 + .../slice/planetlab/us/colorado/colorado.pkey | 15 + .../slice/planetlab/us/columbia/columbia.cert | 11 + .../slice/planetlab/us/columbia/columbia.pkey | 15 + server/slice/planetlab/us/irp/irp.cert | 11 + server/slice/planetlab/us/irp/irp.pkey | 15 + server/slice/planetlab/us/jhuis/jhuis.cert | 11 + server/slice/planetlab/us/jhuis/jhuis.pkey | 15 + .../slice/planetlab/us/michigan/michigan.cert | 11 + .../slice/planetlab/us/michigan/michigan.pkey | 15 + .../us/northwestern/northwestern.cert | 11 + .../us/northwestern/northwestern.pkey | 15 + server/slice/planetlab/us/orbit/orbit.cert | 11 + server/slice/planetlab/us/orbit/orbit.pkey | 15 + server/slice/planetlab/us/rice/rice.cert | 11 + server/slice/planetlab/us/rice/rice.pkey | 15 + server/slice/planetlab/us/rpi/rpi.cert | 11 + server/slice/planetlab/us/rpi/rpi.pkey | 15 + .../slice/planetlab/us/stevens/stevens.cert | 11 + .../slice/planetlab/us/stevens/stevens.pkey | 15 + server/slice/planetlab/us/tky/tky.cert | 11 + server/slice/planetlab/us/tky/tky.pkey | 15 + server/slice/planetlab/us/ucd/ucd.cert | 11 + server/slice/planetlab/us/ucd/ucd.pkey | 15 + server/slice/planetlab/us/uci/uci.cert | 11 + server/slice/planetlab/us/uci/uci.pkey | 15 + server/slice/planetlab/us/ucla/ucla.cert | 11 + server/slice/planetlab/us/ucla/ucla.pkey | 15 + server/slice/planetlab/us/uclaee/uclaee.cert | 11 + server/slice/planetlab/us/uclaee/uclaee.pkey | 15 + server/slice/planetlab/us/us.cert | 11 + server/slice/planetlab/us/us.pkey | 15 + server/slice/planetlab/us/utah/utah.cert | 11 + server/slice/planetlab/us/utah/utah.pkey | 15 + server/slice/planetlab/us/utxsa/utxsa.cert | 11 + server/slice/planetlab/us/utxsa/utxsa.pkey | 15 + server/slice/planetlab/us/uvic/uvic.cert | 11 + server/slice/planetlab/us/uvic/uvic.pkey | 15 + .../us/uwaccretivedsl/uwaccretivedsl.cert | 11 + .../us/uwaccretivedsl/uwaccretivedsl.pkey | 15 + .../planetlab/us/vanderbilt/vanderbilt.cert | 11 + .../planetlab/us/vanderbilt/vanderbilt.pkey | 15 + server/trusted_certs/geni_mng.cert | 11 + server/trusted_certs/geni_slc.cert | 11 + server/trusted_certs/planetlab_mng.cert | 11 + server/trusted_certs/planetlab_slc.cert | 11 + util/db.py | 81 + util/db.pyc | Bin 0 -> 2659 bytes util/excep.py | 42 + util/excep.pyc | Bin 0 -> 3020 bytes util/pl_to_geni.py | 174 ++ util/pl_to_geni.pyc | Bin 0 -> 5987 bytes util/sec/certgen.py | 111 ++ util/sec/certgen.pyc | Bin 0 -> 4119 bytes util/sec/certgen2.py | 368 ++++ util/sec/certgen_m2crypto.py | 20 + util/sec/certs/den.py | 43 + util/sec/certs/gen.py | 57 + util/sec/certs/jp.cert | 11 + util/sec/certs/jp.pkey | 15 + util/sec/certs/planetlab.cert | 11 + util/sec/certs/planetlab.pkey | 15 + util/sec/certs/usersoner.cert | 11 + util/sec/sec.py | 658 +++++++ util/sec/sec.pyc | Bin 0 -> 18124 bytes util/tree.py | 447 +++++ util/tree.pyc | Bin 0 -> 13636 bytes util/util.py | 69 + util/util.pyc | Bin 0 -> 2136 bytes 574 files changed, 30805 insertions(+) create mode 100644 gui/JavaApplication1/build.xml create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1$1.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$1.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$2.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$3.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$4.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$5.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$6.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$7.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GeniGUI.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/GuiComponent.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/PanelFiller.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/RecordInfo.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/SpringUtilities.class create mode 100644 gui/JavaApplication1/build/classes/javaapplication1/User.class create mode 100755 gui/JavaApplication1/certutil.py create mode 100644 gui/JavaApplication1/client_keiko/acc_file create mode 100755 gui/JavaApplication1/client_keiko/clientstub.py create mode 100644 gui/JavaApplication1/client_keiko/cred_file create mode 100644 gui/JavaApplication1/client_keiko/keiko.cert create mode 100644 gui/JavaApplication1/client_keiko/keiko.pkey create mode 100644 gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert create mode 100644 gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert create mode 100644 gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert create mode 100644 gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert create mode 100644 gui/JavaApplication1/client_osaka/acc_file create mode 100755 gui/JavaApplication1/client_osaka/clientstub.py create mode 100644 gui/JavaApplication1/client_osaka/cred_file create mode 100644 gui/JavaApplication1/client_osaka/osaka.cert create mode 100644 gui/JavaApplication1/client_osaka/osaka.pkey create mode 100644 gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert create mode 100644 gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert create mode 100644 gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert create mode 100644 gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert create mode 100644 gui/JavaApplication1/dist/JavaApplication1.jar create mode 100644 gui/JavaApplication1/dist/README.TXT create mode 100644 gui/JavaApplication1/dist/lib/swing-layout-1.0.jar create mode 100644 gui/JavaApplication1/manifest.mf create mode 100644 gui/JavaApplication1/nbproject/build-impl.xml create mode 100644 gui/JavaApplication1/nbproject/genfiles.properties create mode 100644 gui/JavaApplication1/nbproject/private/private.properties create mode 100644 gui/JavaApplication1/nbproject/private/private.xml create mode 100644 gui/JavaApplication1/nbproject/project.properties create mode 100644 gui/JavaApplication1/nbproject/project.xml create mode 100644 gui/JavaApplication1/src/javaapplication1/DisplayHandle.java create mode 100644 gui/JavaApplication1/src/javaapplication1/GeniGUI.form create mode 100644 gui/JavaApplication1/src/javaapplication1/GeniGUI.java create mode 100644 gui/JavaApplication1/src/javaapplication1/GuiComponent.java create mode 100644 gui/JavaApplication1/src/javaapplication1/PanelFiller.java create mode 100644 gui/JavaApplication1/src/javaapplication1/RecordInfo.java create mode 100644 gui/JavaApplication1/src/javaapplication1/SpringUtilities.java create mode 100644 gui/JavaApplication1/src/javaapplication1/User.java create mode 100644 gui/JavaApplication1/test/NewJFrame.form create mode 100644 gui/JavaApplication1/test/NewJFrame.java create mode 100644 server/component/planetlab/acc_file create mode 100644 server/component/planetlab/buaa/buaa.cert create mode 100644 server/component/planetlab/buaa/buaa.pkey create mode 100644 server/component/planetlab/canarie/canarie.cert create mode 100644 server/component/planetlab/canarie/canarie.pkey create mode 100644 server/component/planetlab/canariecalgary/canariecalgary.cert create mode 100644 server/component/planetlab/canariecalgary/canariecalgary.pkey create mode 100644 server/component/planetlab/canariehalifax/canariehalifax.cert create mode 100644 server/component/planetlab/canariehalifax/canariehalifax.pkey create mode 100644 server/component/planetlab/canariemontreal/canariemontreal.cert create mode 100644 server/component/planetlab/canariemontreal/canariemontreal.pkey create mode 100644 server/component/planetlab/canarieottawa/canarieottawa.cert create mode 100644 server/component/planetlab/canarieottawa/canarieottawa.pkey create mode 100644 server/component/planetlab/canarietoronto/canarietoronto.cert create mode 100644 server/component/planetlab/canarietoronto/canarietoronto.pkey create mode 100644 server/component/planetlab/canariewinnipeg/canariewinnipeg.cert create mode 100644 server/component/planetlab/canariewinnipeg/canariewinnipeg.pkey create mode 100644 server/component/planetlab/canterbury/canterbury.cert create mode 100644 server/component/planetlab/canterbury/canterbury.pkey create mode 100644 server/component/planetlab/cernetbuaa/cernetbuaa.cert create mode 100644 server/component/planetlab/cernetbuaa/cernetbuaa.pkey create mode 100644 server/component/planetlab/cernetpku/cernetpku.cert create mode 100644 server/component/planetlab/cernetpku/cernetpku.pkey create mode 100644 server/component/planetlab/cernetsdu/cernetsdu.cert create mode 100644 server/component/planetlab/cernetsdu/cernetsdu.pkey create mode 100644 server/component/planetlab/cernetxjtu/cernetxjtu.cert create mode 100644 server/component/planetlab/cernetxjtu/cernetxjtu.pkey create mode 100644 server/component/planetlab/cernetxmu/cernetxmu.cert create mode 100644 server/component/planetlab/cernetxmu/cernetxmu.pkey create mode 100644 server/component/planetlab/cernetzju/cernetzju.cert create mode 100644 server/component/planetlab/cernetzju/cernetzju.pkey create mode 100644 server/component/planetlab/cred_file create mode 100644 server/component/planetlab/equinixsi/equinixsi.cert create mode 100644 server/component/planetlab/equinixsi/equinixsi.pkey create mode 100644 server/component/planetlab/eu/aston/aston.cert create mode 100644 server/component/planetlab/eu/aston/aston.pkey create mode 100644 server/component/planetlab/eu/bamberg/bamberg.cert create mode 100644 server/component/planetlab/eu/bamberg/bamberg.pkey create mode 100644 server/component/planetlab/eu/basel/basel.cert create mode 100644 server/component/planetlab/eu/basel/basel.pkey create mode 100644 server/component/planetlab/eu/budapest/budapest.cert create mode 100644 server/component/planetlab/eu/budapest/budapest.pkey create mode 100644 server/component/planetlab/eu/cesnet/cesnet.cert create mode 100644 server/component/planetlab/eu/cesnet/cesnet.pkey create mode 100644 server/component/planetlab/eu/enst/enst.cert create mode 100644 server/component/planetlab/eu/enst/enst.pkey create mode 100644 server/component/planetlab/eu/ethzcs/ethzcs.cert create mode 100644 server/component/planetlab/eu/ethzcs/ethzcs.pkey create mode 100644 server/component/planetlab/eu/eu.cert create mode 100644 server/component/planetlab/eu/eu.pkey create mode 100644 server/component/planetlab/eu/eurecom/eurecom.cert create mode 100644 server/component/planetlab/eu/eurecom/eurecom.pkey create mode 100644 server/component/planetlab/eu/fokus/fokus.cert create mode 100644 server/component/planetlab/eu/fokus/fokus.pkey create mode 100644 server/component/planetlab/eu/hawh/hawh.cert create mode 100644 server/component/planetlab/eu/hawh/hawh.pkey create mode 100644 server/component/planetlab/eu/inria/inria.cert create mode 100644 server/component/planetlab/eu/inria/inria.pkey create mode 100644 server/component/planetlab/eu/irisa/irisa.cert create mode 100644 server/component/planetlab/eu/irisa/irisa.pkey create mode 100644 server/component/planetlab/eu/konstanz/konstanz.cert create mode 100644 server/component/planetlab/eu/konstanz/konstanz.pkey create mode 100644 server/component/planetlab/eu/lisbon/lisbon.cert create mode 100644 server/component/planetlab/eu/lisbon/lisbon.pkey create mode 100644 server/component/planetlab/eu/moscowstate/moscowstate.cert create mode 100644 server/component/planetlab/eu/moscowstate/moscowstate.pkey create mode 100644 server/component/planetlab/eu/msuchem/msuchem.cert create mode 100644 server/component/planetlab/eu/msuchem/msuchem.pkey create mode 100644 server/component/planetlab/eu/tcd/tcd.cert create mode 100644 server/component/planetlab/eu/tcd/tcd.pkey create mode 100644 server/component/planetlab/eu/univie/univie.cert create mode 100644 server/component/planetlab/eu/univie/univie.pkey create mode 100644 server/component/planetlab/eu/unizh/unizh.cert create mode 100644 server/component/planetlab/eu/unizh/unizh.pkey create mode 100644 server/component/planetlab/eu/upb/upb.cert create mode 100644 server/component/planetlab/eu/upb/upb.pkey create mode 100644 server/component/planetlab/fing/fing.cert create mode 100644 server/component/planetlab/fing/fing.pkey create mode 100644 server/component/planetlab/haifa/haifa.cert create mode 100644 server/component/planetlab/haifa/haifa.pkey create mode 100644 server/component/planetlab/icavite/icavite.cert create mode 100644 server/component/planetlab/icavite/icavite.pkey create mode 100644 server/component/planetlab/ihaifa/ihaifa.cert create mode 100644 server/component/planetlab/ihaifa/ihaifa.pkey create mode 100644 server/component/planetlab/iitr/iitr.cert create mode 100644 server/component/planetlab/iitr/iitr.pkey create mode 100644 server/component/planetlab/ileixlip/ileixlip.cert create mode 100644 server/component/planetlab/ileixlip/ileixlip.pkey create mode 100644 server/component/planetlab/jp/jaist/jaist.cert create mode 100644 server/component/planetlab/jp/jaist/jaist.pkey create mode 100644 server/component/planetlab/jp/jp.cert create mode 100644 server/component/planetlab/jp/jp.pkey create mode 100644 server/component/planetlab/jp/keio/keio.cert create mode 100644 server/component/planetlab/jp/keio/keio.pkey create mode 100644 server/component/planetlab/jp/naist/naist.cert create mode 100644 server/component/planetlab/jp/naist/naist.pkey create mode 100644 server/component/planetlab/jp/nict/nict.cert create mode 100644 server/component/planetlab/jp/nict/nict.pkey create mode 100644 server/component/planetlab/jp/osaka/osaka.cert create mode 100644 server/component/planetlab/jp/osaka/osaka.pkey create mode 100644 server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert create mode 100644 server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey create mode 100644 server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert create mode 100644 server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey create mode 100644 server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert create mode 100644 server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey create mode 100644 server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert create mode 100644 server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey create mode 100644 server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert create mode 100644 server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey create mode 100644 server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert create mode 100644 server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey create mode 100644 server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert create mode 100644 server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey create mode 100644 server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert create mode 100644 server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey create mode 100644 server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert create mode 100644 server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey create mode 100644 server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.cert create mode 100644 server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey create mode 100644 server/component/planetlab/jp/utokyo/utokyo.cert create mode 100644 server/component/planetlab/jp/utokyo/utokyo.pkey create mode 100644 server/component/planetlab/jp/waseda/waseda.cert create mode 100644 server/component/planetlab/jp/waseda/waseda.pkey create mode 100644 server/component/planetlab/jp/wide/wide.cert create mode 100644 server/component/planetlab/jp/wide/wide.pkey create mode 100644 server/component/planetlab/ntu/ntu.cert create mode 100644 server/component/planetlab/ntu/ntu.pkey create mode 100644 server/component/planetlab/planetlab.cert create mode 100644 server/component/planetlab/planetlab.pkey create mode 100644 server/component/planetlab/qub/qub.cert create mode 100644 server/component/planetlab/qub/qub.pkey create mode 100644 server/component/planetlab/snummlab/snummlab.cert create mode 100644 server/component/planetlab/snummlab/snummlab.pkey create mode 100644 server/component/planetlab/sydney/sydney.cert create mode 100644 server/component/planetlab/sydney/sydney.pkey create mode 100644 server/component/planetlab/tau/tau.cert create mode 100644 server/component/planetlab/tau/tau.pkey create mode 100644 server/component/planetlab/ula/ula.cert create mode 100644 server/component/planetlab/ula/ula.pkey create mode 100644 server/component/planetlab/unioslo/unioslo.cert create mode 100644 server/component/planetlab/unioslo/unioslo.pkey create mode 100644 server/component/planetlab/us/att/att.cert create mode 100644 server/component/planetlab/us/att/att.pkey create mode 100644 server/component/planetlab/us/aub/aub.cert create mode 100644 server/component/planetlab/us/aub/aub.pkey create mode 100644 server/component/planetlab/us/brown/brown.cert create mode 100644 server/component/planetlab/us/brown/brown.pkey create mode 100644 server/component/planetlab/us/bu/bu.cert create mode 100644 server/component/planetlab/us/bu/bu.pkey create mode 100644 server/component/planetlab/us/ccny/ccny.cert create mode 100644 server/component/planetlab/us/ccny/ccny.pkey create mode 100644 server/component/planetlab/us/cernetneu/cernetneu.cert create mode 100644 server/component/planetlab/us/cernetneu/cernetneu.pkey create mode 100644 server/component/planetlab/us/colorado/colorado.cert create mode 100644 server/component/planetlab/us/colorado/colorado.pkey create mode 100644 server/component/planetlab/us/columbia/columbia.cert create mode 100644 server/component/planetlab/us/columbia/columbia.pkey create mode 100644 server/component/planetlab/us/irp/irp.cert create mode 100644 server/component/planetlab/us/irp/irp.pkey create mode 100644 server/component/planetlab/us/jhuis/jhuis.cert create mode 100644 server/component/planetlab/us/jhuis/jhuis.pkey create mode 100644 server/component/planetlab/us/michigan/michigan.cert create mode 100644 server/component/planetlab/us/michigan/michigan.pkey create mode 100644 server/component/planetlab/us/northwestern/northwestern.cert create mode 100644 server/component/planetlab/us/northwestern/northwestern.pkey create mode 100644 server/component/planetlab/us/orbit/orbit.cert create mode 100644 server/component/planetlab/us/orbit/orbit.pkey create mode 100644 server/component/planetlab/us/rice/rice.cert create mode 100644 server/component/planetlab/us/rice/rice.pkey create mode 100644 server/component/planetlab/us/rpi/rpi.cert create mode 100644 server/component/planetlab/us/rpi/rpi.pkey create mode 100644 server/component/planetlab/us/stevens/stevens.cert create mode 100644 server/component/planetlab/us/stevens/stevens.pkey create mode 100644 server/component/planetlab/us/tky/tky.cert create mode 100644 server/component/planetlab/us/tky/tky.pkey create mode 100644 server/component/planetlab/us/ucd/ucd.cert create mode 100644 server/component/planetlab/us/ucd/ucd.pkey create mode 100644 server/component/planetlab/us/uci/uci.cert create mode 100644 server/component/planetlab/us/uci/uci.pkey create mode 100644 server/component/planetlab/us/ucla/ucla.cert create mode 100644 server/component/planetlab/us/ucla/ucla.pkey create mode 100644 server/component/planetlab/us/uclaee/uclaee.cert create mode 100644 server/component/planetlab/us/uclaee/uclaee.pkey create mode 100644 server/component/planetlab/us/us.cert create mode 100644 server/component/planetlab/us/us.pkey create mode 100644 server/component/planetlab/us/utah/utah.cert create mode 100644 server/component/planetlab/us/utah/utah.pkey create mode 100644 server/component/planetlab/us/utxsa/utxsa.cert create mode 100644 server/component/planetlab/us/utxsa/utxsa.pkey create mode 100644 server/component/planetlab/us/uvic/uvic.cert create mode 100644 server/component/planetlab/us/uvic/uvic.pkey create mode 100644 server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert create mode 100644 server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey create mode 100644 server/component/planetlab/us/vanderbilt/vanderbilt.cert create mode 100644 server/component/planetlab/us/vanderbilt/vanderbilt.pkey create mode 100644 server/interface_tree_cr create mode 100644 server/interface_tree_cr_dict create mode 100644 server/interface_tree_sr create mode 100644 server/interface_tree_sr_dict create mode 100644 server/jpywork/PathVFS$_PyInner.class create mode 100644 server/jpywork/PathVFS.class create mode 100644 server/jpywork/PathVFS.java create mode 100644 server/jpywork/SocketServer$_PyInner.class create mode 100644 server/jpywork/SocketServer.class create mode 100644 server/jpywork/SocketServer.java create mode 100644 server/jpywork/StringIO$_PyInner.class create mode 100644 server/jpywork/StringIO.class create mode 100644 server/jpywork/StringIO.java create mode 100644 server/jpywork/UserDict$_PyInner.class create mode 100644 server/jpywork/UserDict.class create mode 100644 server/jpywork/UserDict.java create mode 100644 server/jpywork/atexit$_PyInner.class create mode 100644 server/jpywork/atexit.class create mode 100644 server/jpywork/atexit.java create mode 100644 server/jpywork/calendar$_PyInner.class create mode 100644 server/jpywork/calendar.class create mode 100644 server/jpywork/calendar.java create mode 100644 server/jpywork/copy$_PyInner.class create mode 100644 server/jpywork/copy.class create mode 100644 server/jpywork/copy.java create mode 100644 server/jpywork/copy_reg$_PyInner.class create mode 100644 server/jpywork/copy_reg.class create mode 100644 server/jpywork/copy_reg.java create mode 100644 server/jpywork/javaos$_PyInner.class create mode 100644 server/jpywork/javaos.class create mode 100644 server/jpywork/javaos.java create mode 100644 server/jpywork/javapath$_PyInner.class create mode 100644 server/jpywork/javapath.class create mode 100644 server/jpywork/javapath.java create mode 100644 server/jpywork/linecache$_PyInner.class create mode 100644 server/jpywork/linecache.class create mode 100644 server/jpywork/linecache.java create mode 100644 server/jpywork/random$_PyInner.class create mode 100644 server/jpywork/random.class create mode 100644 server/jpywork/random.java create mode 100644 server/jpywork/re$_PyInner.class create mode 100644 server/jpywork/re.class create mode 100644 server/jpywork/re.java create mode 100644 server/jpywork/repr$_PyInner.class create mode 100644 server/jpywork/repr.class create mode 100644 server/jpywork/repr.java create mode 100644 server/jpywork/server$_PyInner.class create mode 100644 server/jpywork/server.class create mode 100644 server/jpywork/server.java create mode 100644 server/jpywork/socket$_PyInner.class create mode 100644 server/jpywork/socket.class create mode 100644 server/jpywork/socket.java create mode 100644 server/jpywork/sre$_PyInner.class create mode 100644 server/jpywork/sre.class create mode 100644 server/jpywork/sre.java create mode 100644 server/jpywork/sre_compile$_PyInner.class create mode 100644 server/jpywork/sre_compile.class create mode 100644 server/jpywork/sre_compile.java create mode 100644 server/jpywork/sre_constants$_PyInner.class create mode 100644 server/jpywork/sre_constants.class create mode 100644 server/jpywork/sre_constants.java create mode 100644 server/jpywork/sre_parse$_PyInner.class create mode 100644 server/jpywork/sre_parse.class create mode 100644 server/jpywork/sre_parse.java create mode 100644 server/jpywork/stat$_PyInner.class create mode 100644 server/jpywork/stat.class create mode 100644 server/jpywork/stat.java create mode 100644 server/jpywork/string$_PyInner.class create mode 100644 server/jpywork/string.class create mode 100644 server/jpywork/string.java create mode 100644 server/jpywork/threading$_PyInner.class create mode 100644 server/jpywork/threading.class create mode 100644 server/jpywork/threading.java create mode 100644 server/jpywork/traceback$_PyInner.class create mode 100644 server/jpywork/traceback.class create mode 100644 server/jpywork/traceback.java create mode 100644 server/jpywork/util$_PyInner.class create mode 100644 server/jpywork/util.class create mode 100644 server/jpywork/util.java create mode 100644 server/jpywork/yapm$YaPM.class create mode 100644 server/jpywork/yapm$_PyInner.class create mode 100644 server/jpywork/yapm.class create mode 100644 server/jpywork/yapm.java create mode 100644 server/keycreator/prog.py create mode 100755 server/server.py create mode 100644 server/server.pyc create mode 100644 server/serverprj.e3p create mode 100644 server/serverprj.e3t create mode 100644 server/slice/planetlab/acc_file create mode 100644 server/slice/planetlab/buaa/buaa.cert create mode 100644 server/slice/planetlab/buaa/buaa.pkey create mode 100644 server/slice/planetlab/canarie/canarie.cert create mode 100644 server/slice/planetlab/canarie/canarie.pkey create mode 100644 server/slice/planetlab/canariecalgary/canariecalgary.cert create mode 100644 server/slice/planetlab/canariecalgary/canariecalgary.pkey create mode 100644 server/slice/planetlab/canariehalifax/canariehalifax.cert create mode 100644 server/slice/planetlab/canariehalifax/canariehalifax.pkey create mode 100644 server/slice/planetlab/canariemontreal/canariemontreal.cert create mode 100644 server/slice/planetlab/canariemontreal/canariemontreal.pkey create mode 100644 server/slice/planetlab/canarieottawa/canarieottawa.cert create mode 100644 server/slice/planetlab/canarieottawa/canarieottawa.pkey create mode 100644 server/slice/planetlab/canarietoronto/canarietoronto.cert create mode 100644 server/slice/planetlab/canarietoronto/canarietoronto.pkey create mode 100644 server/slice/planetlab/canariewinnipeg/canariewinnipeg.cert create mode 100644 server/slice/planetlab/canariewinnipeg/canariewinnipeg.pkey create mode 100644 server/slice/planetlab/canterbury/canterbury.cert create mode 100644 server/slice/planetlab/canterbury/canterbury.pkey create mode 100644 server/slice/planetlab/cernetbuaa/cernetbuaa.cert create mode 100644 server/slice/planetlab/cernetbuaa/cernetbuaa.pkey create mode 100644 server/slice/planetlab/cernetpku/cernetpku.cert create mode 100644 server/slice/planetlab/cernetpku/cernetpku.pkey create mode 100644 server/slice/planetlab/cernetsdu/cernetsdu.cert create mode 100644 server/slice/planetlab/cernetsdu/cernetsdu.pkey create mode 100644 server/slice/planetlab/cernetxjtu/cernetxjtu.cert create mode 100644 server/slice/planetlab/cernetxjtu/cernetxjtu.pkey create mode 100644 server/slice/planetlab/cernetxmu/cernetxmu.cert create mode 100644 server/slice/planetlab/cernetxmu/cernetxmu.pkey create mode 100644 server/slice/planetlab/cernetzju/cernetzju.cert create mode 100644 server/slice/planetlab/cernetzju/cernetzju.pkey create mode 100644 server/slice/planetlab/cred_file create mode 100644 server/slice/planetlab/equinixsi/equinixsi.cert create mode 100644 server/slice/planetlab/equinixsi/equinixsi.pkey create mode 100644 server/slice/planetlab/eu/aston/aston.cert create mode 100644 server/slice/planetlab/eu/aston/aston.pkey create mode 100644 server/slice/planetlab/eu/bamberg/bamberg.cert create mode 100644 server/slice/planetlab/eu/bamberg/bamberg.pkey create mode 100644 server/slice/planetlab/eu/basel/basel.cert create mode 100644 server/slice/planetlab/eu/basel/basel.pkey create mode 100644 server/slice/planetlab/eu/budapest/budapest.cert create mode 100644 server/slice/planetlab/eu/budapest/budapest.pkey create mode 100644 server/slice/planetlab/eu/cesnet/cesnet.cert create mode 100644 server/slice/planetlab/eu/cesnet/cesnet.pkey create mode 100644 server/slice/planetlab/eu/enst/enst.cert create mode 100644 server/slice/planetlab/eu/enst/enst.pkey create mode 100644 server/slice/planetlab/eu/ethzcs/ethzcs.cert create mode 100644 server/slice/planetlab/eu/ethzcs/ethzcs.pkey create mode 100644 server/slice/planetlab/eu/eu.cert create mode 100644 server/slice/planetlab/eu/eu.pkey create mode 100644 server/slice/planetlab/eu/eurecom/eurecom.cert create mode 100644 server/slice/planetlab/eu/eurecom/eurecom.pkey create mode 100644 server/slice/planetlab/eu/fokus/fokus.cert create mode 100644 server/slice/planetlab/eu/fokus/fokus.pkey create mode 100644 server/slice/planetlab/eu/hawh/hawh.cert create mode 100644 server/slice/planetlab/eu/hawh/hawh.pkey create mode 100644 server/slice/planetlab/eu/inria/inria.cert create mode 100644 server/slice/planetlab/eu/inria/inria.pkey create mode 100644 server/slice/planetlab/eu/irisa/irisa.cert create mode 100644 server/slice/planetlab/eu/irisa/irisa.pkey create mode 100644 server/slice/planetlab/eu/konstanz/konstanz.cert create mode 100644 server/slice/planetlab/eu/konstanz/konstanz.pkey create mode 100644 server/slice/planetlab/eu/lisbon/lisbon.cert create mode 100644 server/slice/planetlab/eu/lisbon/lisbon.pkey create mode 100644 server/slice/planetlab/eu/moscowstate/moscowstate.cert create mode 100644 server/slice/planetlab/eu/moscowstate/moscowstate.pkey create mode 100644 server/slice/planetlab/eu/msuchem/msuchem.cert create mode 100644 server/slice/planetlab/eu/msuchem/msuchem.pkey create mode 100644 server/slice/planetlab/eu/tcd/tcd.cert create mode 100644 server/slice/planetlab/eu/tcd/tcd.pkey create mode 100644 server/slice/planetlab/eu/univie/univie.cert create mode 100644 server/slice/planetlab/eu/univie/univie.pkey create mode 100644 server/slice/planetlab/eu/unizh/unizh.cert create mode 100644 server/slice/planetlab/eu/unizh/unizh.pkey create mode 100644 server/slice/planetlab/eu/upb/upb.cert create mode 100644 server/slice/planetlab/eu/upb/upb.pkey create mode 100644 server/slice/planetlab/fing/fing.cert create mode 100644 server/slice/planetlab/fing/fing.pkey create mode 100644 server/slice/planetlab/haifa/haifa.cert create mode 100644 server/slice/planetlab/haifa/haifa.pkey create mode 100644 server/slice/planetlab/icavite/icavite.cert create mode 100644 server/slice/planetlab/icavite/icavite.pkey create mode 100644 server/slice/planetlab/ihaifa/ihaifa.cert create mode 100644 server/slice/planetlab/ihaifa/ihaifa.pkey create mode 100644 server/slice/planetlab/iitr/iitr.cert create mode 100644 server/slice/planetlab/iitr/iitr.pkey create mode 100644 server/slice/planetlab/ileixlip/ileixlip.cert create mode 100644 server/slice/planetlab/ileixlip/ileixlip.pkey create mode 100644 server/slice/planetlab/jp/acc_file create mode 100644 server/slice/planetlab/jp/cred_file create mode 100644 server/slice/planetlab/jp/jaist/jaist.cert create mode 100644 server/slice/planetlab/jp/jaist/jaist.pkey create mode 100644 server/slice/planetlab/jp/jp.cert create mode 100644 server/slice/planetlab/jp/jp.pkey create mode 100644 server/slice/planetlab/jp/keio/acc_file create mode 100644 server/slice/planetlab/jp/keio/cred_file create mode 100644 server/slice/planetlab/jp/keio/keio.cert create mode 100644 server/slice/planetlab/jp/keio/keio.pkey create mode 100644 server/slice/planetlab/jp/naist/naist.cert create mode 100644 server/slice/planetlab/jp/naist/naist.pkey create mode 100644 server/slice/planetlab/jp/nict/nict.cert create mode 100644 server/slice/planetlab/jp/nict/nict.pkey create mode 100644 server/slice/planetlab/jp/osaka/acc_file create mode 100644 server/slice/planetlab/jp/osaka/osaka.cert create mode 100644 server/slice/planetlab/jp/osaka/osaka.pkey create mode 100644 server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.cert create mode 100644 server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.pkey create mode 100644 server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.cert create mode 100644 server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.pkey create mode 100644 server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.cert create mode 100644 server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.pkey create mode 100644 server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert create mode 100644 server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey create mode 100644 server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert create mode 100644 server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey create mode 100644 server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert create mode 100644 server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey create mode 100644 server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert create mode 100644 server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey create mode 100644 server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert create mode 100644 server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey create mode 100644 server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert create mode 100644 server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey create mode 100644 server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert create mode 100644 server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey create mode 100644 server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert create mode 100644 server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey create mode 100644 server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert create mode 100644 server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey create mode 100644 server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.cert create mode 100644 server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey create mode 100644 server/slice/planetlab/jp/utokyo/utokyo.cert create mode 100644 server/slice/planetlab/jp/utokyo/utokyo.pkey create mode 100644 server/slice/planetlab/jp/waseda/waseda.cert create mode 100644 server/slice/planetlab/jp/waseda/waseda.pkey create mode 100644 server/slice/planetlab/jp/wide/wide.cert create mode 100644 server/slice/planetlab/jp/wide/wide.pkey create mode 100644 server/slice/planetlab/ntu/ntu.cert create mode 100644 server/slice/planetlab/ntu/ntu.pkey create mode 100644 server/slice/planetlab/planetlab.cert create mode 100644 server/slice/planetlab/planetlab.pkey create mode 100644 server/slice/planetlab/qub/qub.cert create mode 100644 server/slice/planetlab/qub/qub.pkey create mode 100644 server/slice/planetlab/snummlab/snummlab.cert create mode 100644 server/slice/planetlab/snummlab/snummlab.pkey create mode 100644 server/slice/planetlab/sydney/sydney.cert create mode 100644 server/slice/planetlab/sydney/sydney.pkey create mode 100644 server/slice/planetlab/tau/tau.cert create mode 100644 server/slice/planetlab/tau/tau.pkey create mode 100644 server/slice/planetlab/ula/ula.cert create mode 100644 server/slice/planetlab/ula/ula.pkey create mode 100644 server/slice/planetlab/unioslo/unioslo.cert create mode 100644 server/slice/planetlab/unioslo/unioslo.pkey create mode 100644 server/slice/planetlab/us/att/att.cert create mode 100644 server/slice/planetlab/us/att/att.pkey create mode 100644 server/slice/planetlab/us/aub/aub.cert create mode 100644 server/slice/planetlab/us/aub/aub.pkey create mode 100644 server/slice/planetlab/us/brown/brown.cert create mode 100644 server/slice/planetlab/us/brown/brown.pkey create mode 100644 server/slice/planetlab/us/bu/bu.cert create mode 100644 server/slice/planetlab/us/bu/bu.pkey create mode 100644 server/slice/planetlab/us/ccny/ccny.cert create mode 100644 server/slice/planetlab/us/ccny/ccny.pkey create mode 100644 server/slice/planetlab/us/cernetneu/cernetneu.cert create mode 100644 server/slice/planetlab/us/cernetneu/cernetneu.pkey create mode 100644 server/slice/planetlab/us/colorado/colorado.cert create mode 100644 server/slice/planetlab/us/colorado/colorado.pkey create mode 100644 server/slice/planetlab/us/columbia/columbia.cert create mode 100644 server/slice/planetlab/us/columbia/columbia.pkey create mode 100644 server/slice/planetlab/us/irp/irp.cert create mode 100644 server/slice/planetlab/us/irp/irp.pkey create mode 100644 server/slice/planetlab/us/jhuis/jhuis.cert create mode 100644 server/slice/planetlab/us/jhuis/jhuis.pkey create mode 100644 server/slice/planetlab/us/michigan/michigan.cert create mode 100644 server/slice/planetlab/us/michigan/michigan.pkey create mode 100644 server/slice/planetlab/us/northwestern/northwestern.cert create mode 100644 server/slice/planetlab/us/northwestern/northwestern.pkey create mode 100644 server/slice/planetlab/us/orbit/orbit.cert create mode 100644 server/slice/planetlab/us/orbit/orbit.pkey create mode 100644 server/slice/planetlab/us/rice/rice.cert create mode 100644 server/slice/planetlab/us/rice/rice.pkey create mode 100644 server/slice/planetlab/us/rpi/rpi.cert create mode 100644 server/slice/planetlab/us/rpi/rpi.pkey create mode 100644 server/slice/planetlab/us/stevens/stevens.cert create mode 100644 server/slice/planetlab/us/stevens/stevens.pkey create mode 100644 server/slice/planetlab/us/tky/tky.cert create mode 100644 server/slice/planetlab/us/tky/tky.pkey create mode 100644 server/slice/planetlab/us/ucd/ucd.cert create mode 100644 server/slice/planetlab/us/ucd/ucd.pkey create mode 100644 server/slice/planetlab/us/uci/uci.cert create mode 100644 server/slice/planetlab/us/uci/uci.pkey create mode 100644 server/slice/planetlab/us/ucla/ucla.cert create mode 100644 server/slice/planetlab/us/ucla/ucla.pkey create mode 100644 server/slice/planetlab/us/uclaee/uclaee.cert create mode 100644 server/slice/planetlab/us/uclaee/uclaee.pkey create mode 100644 server/slice/planetlab/us/us.cert create mode 100644 server/slice/planetlab/us/us.pkey create mode 100644 server/slice/planetlab/us/utah/utah.cert create mode 100644 server/slice/planetlab/us/utah/utah.pkey create mode 100644 server/slice/planetlab/us/utxsa/utxsa.cert create mode 100644 server/slice/planetlab/us/utxsa/utxsa.pkey create mode 100644 server/slice/planetlab/us/uvic/uvic.cert create mode 100644 server/slice/planetlab/us/uvic/uvic.pkey create mode 100644 server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert create mode 100644 server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey create mode 100644 server/slice/planetlab/us/vanderbilt/vanderbilt.cert create mode 100644 server/slice/planetlab/us/vanderbilt/vanderbilt.pkey create mode 100644 server/trusted_certs/geni_mng.cert create mode 100644 server/trusted_certs/geni_slc.cert create mode 100644 server/trusted_certs/planetlab_mng.cert create mode 100644 server/trusted_certs/planetlab_slc.cert create mode 100644 util/db.py create mode 100644 util/db.pyc create mode 100644 util/excep.py create mode 100644 util/excep.pyc create mode 100644 util/pl_to_geni.py create mode 100644 util/pl_to_geni.pyc create mode 100755 util/sec/certgen.py create mode 100644 util/sec/certgen.pyc create mode 100755 util/sec/certgen2.py create mode 100755 util/sec/certgen_m2crypto.py create mode 100644 util/sec/certs/den.py create mode 100644 util/sec/certs/gen.py create mode 100644 util/sec/certs/jp.cert create mode 100644 util/sec/certs/jp.pkey create mode 100644 util/sec/certs/planetlab.cert create mode 100644 util/sec/certs/planetlab.pkey create mode 100644 util/sec/certs/usersoner.cert create mode 100644 util/sec/sec.py create mode 100644 util/sec/sec.pyc create mode 100644 util/tree.py create mode 100644 util/tree.pyc create mode 100644 util/util.py create mode 100644 util/util.pyc diff --git a/gui/JavaApplication1/build.xml b/gui/JavaApplication1/build.xml new file mode 100644 index 00000000..716370b6 --- /dev/null +++ b/gui/JavaApplication1/build.xml @@ -0,0 +1,69 @@ + + + + + + Builds, tests, and runs the project JavaApplication1. + + + diff --git a/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1$1.class b/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1$1.class new file mode 100644 index 0000000000000000000000000000000000000000..523cbd17bdb301d7f736af36f0a0ef69b9f18f4d GIT binary patch literal 1039 zcmaiz-A)rh7>1v(EnV5Hv=&8Fekv{sMcHoRS&fN7h(85MBzQb*M_97#lHH}?)u@+X zg3);31$a@$%$CHzK<8k7zIo^U-g&>7A3wi+2Ymcds!ZEh%#30)Yr3Y*ZRRZQShyDR zLN(tDGuOAcDH?+DdL zVI1aA!F?ma0Wt7cy4DeHbNOce>vfeH5OwZ zUkAA`U4;IE3F0GsWKTKLMr5ik#w$L0>j*c+W zSCN|wlLhp|%Z|f%*L$(0Px7@;N4<_PbFogrRzaY%%=O!C;mxr3)j2QIMWtQbrb!hG z;Sy4>n}Pu)V2m0<9e7Boh}f;A&q(VFrB4Os3Q)y-o%b{V$IP)A=PKquU1Q>m;U(pQ zVZ3#UoKhYPm8GwY{HC%EL_W}vj|JVt;K&&rjB}kygfcgZ^f$Q$RIr)C0UDIB8MNwP F`~~332Ri@& literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1.class b/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle$1.class new file mode 100644 index 0000000000000000000000000000000000000000..6cb79d02c91c8e28063368d13488627d7688f321 GIT binary patch literal 1971 zcmai!-*XdH6vsa&O&bUcO=H29YOOWZHWbnzAP_)me@IJzVQWhfe_XPcbalI%$!-hv z)pue1HKUF`Iio&0BPnBNd~_WDD95>*P?}D$c{n+H?)Ut<=X>ry|NikOkZ0u}9h@`b zjU=6%PjZF}Nm{s=pm2aoM!jr|SB&L!>T4;ZY9r3+TIi9YVyK>crzZMF| z8?Iu$Tyeb8RCHDlVt0$X5tHMNt4CIRKZxQa=l!)xQ5&O>ZkWg^GgP5<%qzNn;CQ8J z9j^Fxf*Ffh<}6;|MT_HfS#)#5;vMEK7Puj#8|W}zQL9==Ue_Bv^V-$L&^WwnvB;9e zO_nWg8Sx&sg^r!BJG)8nzQqT8xC^qg9ii8FKbvEjd?s&le`KM!V^PGm(5Cjgl!TuB zyoD|U**&;nTa`my5xW0BfY5H&C_mz_mVHlq;gl1E!sR+`T;-K=^Pw5xE`}Q}xO>_R z?+Ohx5T`b!f{-vJ`hgaX?om}^p3}nQzIpaa^Q_!~4(FXu zwb0x@F=28Y3Up|;);t)(k&+J05^OKWvHn`5Xd*k;BVu5qRXAvZ)z_x0-kjOgnr&Kn zs-!DXi+%fbmB~lAHf7txMN^y^r1lI6dUr&wy#bAg+QgJ?3)vmeZA#QHr(S%WCj}v1 zR>e<*WT3-ECvc({E#7}?V38g==mcV^lvzherOa*`3((C=2tB|BVl)A**%ObD?BF9} z*-e^$i-0c!EtrS!A-#ZQbXs|ZS23^SYxLK`$Wh`n0}rylBaeyy#o@YErP*j(v@E9+ zn;dw|!KM09TkK|=Jgky@^3C5VyUL+$PiuOM!^@i-nHfA;rFDzc@+NH;(#zRR zo~zP6*cq>K^hwMr$Lj9!D$hS{<03~uz91=I(k@@oCtq_`zF}0pWmdjpNxtW{{D77p zsmM=k$j^Kxzwo*I8nu3=)?U4Jc)$Qzgjud~fM02?_uJ literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle.class b/gui/JavaApplication1/build/classes/javaapplication1/DisplayHandle.class new file mode 100644 index 0000000000000000000000000000000000000000..3e0bee3e282d468f71cb74ee6344dbfb035da9a7 GIT binary patch literal 15568 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 EKmCgFbpQYW literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$1.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$1.class new file mode 100644 index 0000000000000000000000000000000000000000..75abe61f67ca5ec1c639fb394f2c42ec05d8ec9e GIT binary patch literal 748 zcmaKpU279T6o#LZY?JJ|HL+@qNn5M#MVo?2zzd-wlu%0{^{blu>1MDio7u3tiN8xw z6fgV%{wR@I7X&e#t8>nrdERs0`T6Vn4`4{(;?VI}qwCRTtIl?v9if(AMp-ZrI^z#& zsnmQPN1@82#0>i<+C(SsP7j6J)5t{mGhusgb=&?#a7M{g3(aw4^ozypLZ@%lMXZI5 zaT2O{qSDCbWzn(X0)l^Pj7~?f$}*h^TPsz9;i0fTOBR`aqhqZyJr#ETOx0H(^S)kc zllRYT!?6vEv8sBR3*CbH|1QBhPZnvYpGS6Fzuf(iHAQG1n=nqY$h<$(`DHS#bI)g& z`#v@5J`Ec^;Gxi2WnwTCy7uy4`J<_t=Q7HcyN;c_vi%tl6FlL!D*8 zU@#D#T=6qk?7cr>7l$=KS}nT{Pyrga2p;g5N>TB82VaohS1O;1o@+o20bb$*ei3`D z)3P*fuu&3@N`l+_j2wKU`WN68=vOp&T|hRA+$|yCa+6yKRc;reo7@2$+T5iHcnA)~ F`3+Gms~P|R literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$2.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$2.class new file mode 100644 index 0000000000000000000000000000000000000000..db7e2feaee441d5a96ea51a340d20a54d6b27526 GIT binary patch literal 772 zcmaKpQEL-H6otRrY?EeP+gP=>X{%ME)D+yL2tHH<3AF^GK2-ZY*$l~)WHw}{@plP| z;)6fH-=h8mky%qkG0xMSJ9o}G_ngn)KYjw5+$|HZ8M4S$$OhXbu9vt`Vn-;tfyrtO zq1riBQ>Dh^p-Gf8scptb+M1(R?E|6s$XMeZ3){Q%$L^g7K`ZTPVWnfNettIU>d8yh z9cp2Y*qX~y+dmL0#_7?qQ%<)A%Jy~dm#|p9 zcCnsn>*BW4qeEZi!U}ro&X@e>kPsfHXOl!fHC}HtTmHUxMOZns$uP}~?LX6QkoHR4 zjJU<^h!RT?Wna~}BUIW;~rwt6D0&qEWIeIl)N zG)}FyE)xp7K7ddqiO#ZGv(XS9{wJ;6;lGH_?P7<3MT8fgc5Qd*g+$1(G2?a_>+ET!WHkC+9IUp4wRZ*!br5yOkee0~Kk+Y6$C;ToX z5Qqamfd2#B5L#mi36bt;W_I>@XWsqx>&sVQpTNbTO0%{p5`Ex(AeU?6lx zZ`DGn*({Dil}Cx$@1JNBoxDCh6lzZ*6Xj2Z&7I|KyJNu_CKD|*N0HIb=hJhYzEbD0 z7S={dsN%6oBb%2+$BGLG{;4rK9mXolbS7*pRS6Cbh1F>?&-4o&YnADVu=QuEzIvDU z^+KDxe`XtwZCH#|)r(x{7S#WD3Es!R>uO_C8bn3-Ai`4;uU|AnQf$mJo2c&JBbrHw)2qZUGK$Zqo!j I1c&1M1_%nR5&!@I literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$4.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$4.class new file mode 100644 index 0000000000000000000000000000000000000000..9421b52d68c93eadc1a7c5dd0fe07bc8f2d82ca9 GIT binary patch literal 748 zcmaKp(P|Sx6o$W(Y?JJ|HL+@qNn5Mki#7$5VlIS=P(m$*)C;w_pKb=bWiuPHoA_LU zqIls0_)J=4)&)UK=jxm@XTJZOe|}tl`wkosxHz;tR%m-P*{HHvWlN}Jmr)w@gx2s% zEtHy0<0w>Fl$e9=i8j&6`RSohc@dc?dns)0E^pf#3Cp?($Fas6WVr`8mqer&=xNh9i{L7hKt|+F9vj{81vaE(l^eS7*+gdERs0^YhpDAHV^jhfBw&O4p~&W}U4%+d?hBjaxAD;11J?7Mi2j=+}$sm7c#-SBVzZ zM`@&zv6{#BUM5{DE+7Qw#_0JlQCX%lVRNNQcyuhRP18lD-{?fEOizUEKV9|J$GoqX z+T{HUTX1T_qAf=+bD>*M|6e8eZ_~v*(ywCMZcxtt%$g!JPfe7hS!~{4==?gJ)Oi%J z!{dM&^?-(rp72!YtTHh?61w*BU-^@Xn&o;fv{!u<<>2#JFZSqWTcCFdIiXxq5 z;o)E)JilQxH_W{^W(SulAgz`i2dDrIJOm#&q*7%3-u@S)_m#@0qUIJ*!>-RE00JB1 zvqsC(xWjr$I4KEU?=!Oh4d*Yww`g%`NVR}$6jELZ0gt=fLvXlXh;HxzaB1_9W+5lI G6z4Y-xT-|} literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$6.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$6.class new file mode 100644 index 0000000000000000000000000000000000000000..ce0035b7b094c4652d34d9c56b9eedf05ff3b9b6 GIT binary patch literal 748 zcmaKpU279T6o#LZY?JJEYhu+JleSj77i|hA1ua5FD4~`@>V+Sw+Mrb9Ls-ndd#{JwJba{{b8lxHxn?R_J=P*{riwXIrS{S5X!WgwE(% zEtHzg;wV&kl$gW*nKsec`}1R=_98M-{!-Z5TVA$57Mx)+(L!?+8U1=bz0~PDbs1}6 zeUyYM9;-C6_cG~NaRI?UH%6z!SY?^cgw3TY!O^j>HcjT4exqZpGCdKt|8&(?AM?Im zXp{FZY{97wi?*tIkqg~|`u{4ydz;MDP``?7yM8(Q6KjglJT+mQWRdxBq4TR`Qs<%1 z4v&0l)O{K@dd#lSS!QBzBy{cLzw##&HOqA>w3mGqZdvz-$#j+&ZSqX0?pd=v6^1&? zf@gz)@cf3&+%Wh4m>nEe0BN=CI6wtx;39ayQz}Kq>m7VSdS9u0Dr#1N8g_jiKH%FJ zk2PAB#%eX{y9ib86`~v52OQcwpjpTX H4#oKmAdjkD literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$7.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI$7.class new file mode 100644 index 0000000000000000000000000000000000000000..5e4ce4b070e0367cb3745be50a63316640d19e49 GIT binary patch literal 552 zcmZ{h%}yIJ6otP#nPli-6bLj0%HM)TU_rzR394>Ti;x19N{K|fat13H4IVTz=>xTW zfo_UaBp#p-RaKrug$-U<@;&!__C5ad_xA&^%SKFtcEqcgfVSTjBbFkTBVG%QH`dwm ztx)T1^@Z>-yEHh)4tBFKTnEbd1VU$K^;41^21aYg(-xU z-nIU!_3dqH6J6TO?RJlhvq$I0n|lXBEgv}{KFdaVV%}TNR}+258-?aOm!w%?-SEVe zSJ|avg;m8AFNDSC*ormQh2`h;%{^h(i``VaVfVw}+9ajWdMte$IX9j+ywTPP?ar5K zl(FNi%&i+9_@Ls#lzm&+Dx9$Md8^L`bs7i}5P*LyLJV{f1gLM{AwMg58meaG8wyb4 z24Ym`@j#~JO@R8yF6Zy`x{CL7q6Hbj*b=y1(KuEw#nm~+D$FHe> DH(YJD literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI.class b/gui/JavaApplication1/build/classes/javaapplication1/GeniGUI.class new file mode 100644 index 0000000000000000000000000000000000000000..669c519dd66da9a3cdd86940030bac3c5eedf502 GIT binary patch literal 10671 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 DwyJW% literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/GuiComponent.class b/gui/JavaApplication1/build/classes/javaapplication1/GuiComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..a93c11db10c8d0073a23ba9e527cdeceda6a71db GIT binary patch literal 1573 zcma))TW=Ck5P-h}yFg)krO;CC%`0p#Sbejm4>r-nG}YLK2Te>Cdc>{Ug}~CJ|HB`m ziNwSQe}F&Am~(b*8+u6OVPm_n)7?fE{-7&QcfT zy1hm0HDw^M&%IzE1y<;tNkQhB zANtXr;6wH1D?^c+LI2~aH3Zgv=R^vo5ByLb4$hjgckDF-joWE?LBs3$>N{~-(I>wz zSk>9RZa45-UgUSeo%+jxzu!6Qc0w6OyMp|Q{OApWsNn^IY+FW$y07_a?IxHY+y56( zGW4r33vC&_xtw#US~CnmQ0QNeDpw6bDw*Or);m#!V=LE|(Lub6T>r{!OVxtfjPfRC z{-`tPwd4z5&1v>}=i6%i4l_J*n8tCKAn#C6)}#_sID%yrG))33BSVL^L zVh_oD(;17v3R$3t#XJ*~n4(OP1u87E$`bRyUYwH>Wz=s?*B07Rlqqc~&a}1^simz2 z9Bc%OR1(5ELcg@#@1(w7Vq~<_)#aQxASowU;#Tr_kCZN!(XCxI5hFat=84Wwj-xJt zGYPQZHp>Q(^eD(vBghJ?CXn*F(B$%6v#azNM;n|vk~OJ8RXib$2SsTGZ+J+j#Ys? I&{z5JFQhT-tN;K2 literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/PanelFiller.class b/gui/JavaApplication1/build/classes/javaapplication1/PanelFiller.class new file mode 100644 index 0000000000000000000000000000000000000000..3e8e5a2d793924165d91f4f75cf3aee2d5e9d729 GIT binary patch literal 7338 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 literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/RecordInfo.class b/gui/JavaApplication1/build/classes/javaapplication1/RecordInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..aa54ab1f3b450a12828a4f9574f046cbe8653c60 GIT binary patch literal 878 zcmZ{h&2G~`6h_bWZ|j&Ql%({BQdl(&h)}U?)lC6`RDqyX_l`THu7Vvo4iaw#5)~2) z9)O2JXvQW%#NEt{?_3|9@6NB^KYjxH>;$-MF5|GJmwP_jKKBLtGEaroldI@c)E`CZ zuzyyrC*y z=@jkm-eQN~O{)7&4N?RAp(@TyR)6yM6r5($JXS9g9j!T+eWC{yvP=--;fE~Y3tPH+ zLp-51AMV@1m5K`<;@|=nmZq4~lG!~(!x0+5GXw$L-go4yX$ye>3uxoe;T8~s0U?xg@T6h(+&+|Xd$d}r^5GVe&4XZ z%=~l+*sXPI)2V(wGV#GPZgZ_NT_2aHhOlPRdNU=jQWDl`MeP4Y4r@j3){FczpHk#G RE-!8n(Ql?-Xx&8L_yhc%hnN5W literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/build/classes/javaapplication1/SpringUtilities.class b/gui/JavaApplication1/build/classes/javaapplication1/SpringUtilities.class new file mode 100644 index 0000000000000000000000000000000000000000..4b026d92ddd9a6ecfaac23ef127cab40f4d0df23 GIT binary patch literal 4280 zcma);ZE##w8OMJoyUFgod$YUQWD{gN&(TOsvvzdcZcBkBZNj|0 z$F0n6tLVu0iqP*)IVHiW;eFNt%PJHy&bZ||`P_xQBZZ=qo809(8OL?(Qolf#5_iP8 z(=G`*x|K<EvCYkg-ao0juO*H9Kw>WRm>?|9C!E3h*sKXds^}xkby#xg~)yl*`#g zWg@d(tNhINmS&vXWTmuW>tKG`UA@SxUmzTT7!ouUtfHNB�uDrodm!&y-a7Oi2)w zH{e*AJ*T&$0{`p|YeL{ZsFtRTiYHih)?8$drH$A6YV7)~rH*u1)d^QapD7rv3Vc~> zRuIlwvo|^u?o?GA$y&36wlg{9RwcoVRdQuJ1R=S-AwT22H5R-zK547-N|(3hivxBh zBe=YKXlU_;SKBnS?yRMr(RN=kKO^vs=QBbkw%?YJvc_ExE21a}$&0RCZ{v(CMbI>* zDiDZSfjB78NAlCfaeJ#H5#Q!jR>SZ{337w;=nind!2>)f=#VlGU?Z+X{1wwqX2LGY zjyX9eJDrt)PhOTZc!-AseB0m=9+fZOG59Wr0({TlF&-C03q^acT`bxYHH#;B)a!hm zpC@@Vz*7d_=LdpwWc>Oo_JAo!oKEf2*f)4urhm!KDLc8>DVE%%Rh*p8+BrAr=95*P zC9~5dH#uFhlU^%4*Bb*oWAHhi+0l3g?Kmuz>Bpt){p z3%ZxO>!orM_)61Rq5O;rnoEnPzhK=GewK2xZZ|7g!&>C85h3R^>NCthkFQL;OnaG*RCE1n*xwh4N8-j2 zHkyH+c*IjoMa^b2TBc)xb5hM_Snf@^56?x!{HZ_ssz$5pjiP3AnPq0w43}B1RR1PY z5s`}e`dZ>GGRl}VXsJYr#aj}Er)V)Fsi+w<^)iWh+RT_4iFKA)VFnlIDwBw}Br;FY zY{tw`nWU!?jjfa#n$k#`u~cNPMa-Xi+6?rRX-~D7EwPoVBW6TtD!o-^ORQ71s}jMJ z9#!|QVbD@R%rl$^T!Y4T46Y^2FzsxkgB`5kde(3Q>ltAaJK4-0wsI4@xP{xel?=Bt zi^Uwba6fxF#3YB=$MfvxW%lwK1s1r2;}m&^5+|7ELk{o}GknZJ{=;3I;wwVqZn2De z#0rXHHTQ}Q+$XN!L9vHN6kz^~Nf?cbxr87Y&Y_PKQTDKje$qrZOt>O@i0+E)1j9-e z<1O|oS&M`gm$60iNsMwiY1t1k%I8Vbpmtv%jZf{aAT0qbMj0SYquO0bnkF={gR9s| zfEA*js~IH78gVg045G1KY~&gS(b*)<<5~s@v01EQm^21kMJwAFq?uj9&vph0v%q1l zBSnPcJi`uIn~EQqvBViC- zpQh`%lCFxNL0_L1*AhqA=Tm(3^@ZZ0L_2t#DAzz;nHxe>zD6Yqi zN?678(466g^)y!1&Qr~1v#FIyn$41r%az_qQ!_(~ZW$Lj` zne-B*dzf>9qiDQ_!7;+TN;|)xg9SQygSEWL299$Hzhsc(Z0Bum;8Sz^Re3t47AI8X3E4WbCSuv8zVLt{NHJD`e~x4cx5Ac!&qMMUqh% Yv??0uG;pgT#uxbm2^7*lUw&Vzqxm@e^q*__WH?T` z@@1q)P|_{z=&|}-!}lpr^eJgmrYNZE(9#qH!F&^MIv295*uupFY%DDTSX#%NWpfr0 zx(0&lz%v8_a9iIHU(B-=po|5q;!vXk<~g_o+yDesRx^Pf77h@!9#61ZPbS!{rxTpH zR@KBCxU5rVg9@8Qvo+1jG$Am+8YVEvnjkRHHi8=UtYUkH{1xl-4B0cOk8*L>Xk^I; zSVq`0xO2#9!#lXNjl$aW)eO$d-~{WrAoe22elEyHK8U>ta)ir^D?s!*_0l$TL7YX9 ex49rU^FjVv+jJuDartlsi2k26$St#j+rI&q;GH%A literal 0 HcmV?d00001 diff --git a/gui/JavaApplication1/certutil.py b/gui/JavaApplication1/certutil.py new file mode 100755 index 00000000..73a534f6 --- /dev/null +++ b/gui/JavaApplication1/certutil.py @@ -0,0 +1,25 @@ +#!/usr/bin/python +from M2Crypto import X509 +import sys + +id_file = "" +try: + if len(sys.argv)>1: + id_file = sys.argv[len(sys.argv)-1] + else: + print 'File '+id_file+' does not exist.\n' + sys.exit(0) + pubkey = X509.load_cert(id_file).get_pubkey().as_pem(cipher=None) + print pubkey + + print "Character map:\n" + prev = '' + cur = '' + for ch in pubkey: + prev = cur + cur = ch + if cur == '\n': + 1==1 + print ch, +except: + print "Error in input file.\n" diff --git a/gui/JavaApplication1/client_keiko/acc_file b/gui/JavaApplication1/client_keiko/acc_file new file mode 100644 index 00000000..88158341 --- /dev/null +++ b/gui/JavaApplication1/client_keiko/acc_file @@ -0,0 +1,52 @@ +-----BEGIN CERTIFICATE----- +MIIB+zCCAWQCAQAwDQYJKoZIhvcNAQEEBQAwDzENMAsGA1UEAxMEa2VpbzAeFw0w +ODAzMjgwNDI2NDRaFw0wODA3MjEyMjEzMjRaMBoxGDAWBgNVBAMTD0dFTkkgQWNj +b3VudGluZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAlxyzi9dVIDmyUuaW +/H7YM+5LLZbQg/lGtQ0hyn/DNWp0b3FZ0tazmdK/yD3bq1sUa8txCq2gSsBzv6gA +3E1YI71wYmv8xTOOo5hZlBT3apdh2UKlu4vuUBVaSIm3whiVEd7sGkJJIJoWC3tx +R+/d9u6GYgORP/sb8q2Xk2y9CB8CAwEAAaNhMF8wXQYDVR0RAQH/BFMwUYZPaHR0 +cDovLyNocm46cGxhbmV0bGFiLmpwLmtlaW8ua2Vpa28jdXVpZDo1MzU4NDk4NDQ3 +NTM3MDMzNTI5ODU5MjQ1MTI2MjQwODAwMDc5MjANBgkqhkiG9w0BAQQFAAOBgQCW +zG0R4AkzONNWSEYccFcI0yDJIcojse8CGVhI0N8ykmph1MEcUHAdT8x1Ssl593+o +K6vmwJpak8qLjD9Fbry/byVj3d8CzrokO8LkjVz4daye0SQIFp7TbfeoK9mg/GE1 +shI6rxnUg15cfR9L9lkso6p8O/KQpWX9zUtgRIuTbw== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw +MzI4MDQyNjQ0WhcNMDgwNzIxMjIxMzI0WjAaMRgwFgYDVQQDEw9HRU5JIEFjY291 +bnRpbmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOVoqTRxh/259AB1p3+G +HcUxSKpdVkKgJJGXvsCtav2Rxu9jlEq1AHt6Ff08YlqjVLPbSLTxVDDYUva+fmWl +SzWRRZdVkPrT5PipoQ38HM/RlgsMaSsB1otJd+sbVP2Opwbqcc3DZ4+NbRAV051Z +mzR4C10QIOkYBaa+D48ocjC9AgMBAAGjWzBZMFcGA1UdEQEB/wRNMEuGSWh0dHA6 +Ly8jaHJuOnBsYW5ldGxhYi5qcC5rZWlvI3V1aWQ6NjU5MTQzMzc2OTc1MDYxNDM3 +ODc5MDUwMjkzMDIyOTMxMDY2MzAwDQYJKoZIhvcNAQEEBQADgYEA0NDOfUAk1Puw +ghgHzdXzTBZLJkhj9B80D678aSGX/dSOIIJGUo/AXRNfwtVRVUfQ+PQs/LgygGJ6 +u1NUTuhVDJrJROd+bguDp5DSqR/om9uupSvGxGjcGGLpcrGES7hWuTU1VIRgdC8Z +1BK3qYToeIsiaDzIjrkZplq5brgBHoE= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO +SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf +iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK +2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ +Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG +hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3 +NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+ +GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX +n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4 +gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO +SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz +8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG +O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL +m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE +hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3 +MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69 +KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n +fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3 +si0AZRHgngrWmhf85bKAqS210OWHWOM= +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/clientstub.py b/gui/JavaApplication1/client_keiko/clientstub.py new file mode 100755 index 00000000..147ecaaf --- /dev/null +++ b/gui/JavaApplication1/client_keiko/clientstub.py @@ -0,0 +1,104 @@ +#!/usr/bin/python + +import os, sys +from M2Crypto import SSL +sys.path.append('/home/soners/work/geni/rpc/util') +sys.path.append('/home/soners/work/geni/rpc/util/sec') +from sec import * + +SERVER_HOST = '127.0.0.1' +SERVER_PORT = 8002 +AUTH_HOST = '127.0.0.1' +AUTH_PORT = 8002 + +renew_res1 = 0 +renew_res2 = 0 + +def verify_callback(preverify_ok, ctx): + return 1 + +class GENIClient(): + def __init__(self, hrn, type, id_file, id_key_file, acc_file, cred_file): + self.hrn = hrn + self.type = type + #check if the certificate and the private key exists, terminate if not + if not os.path.exists(id_file) or not os.path.exists(id_key_file) : + print 'The certificate or the private key does not exist.\n' + os.exit(1) + #check the acc and cred files + if not os.path.exists(acc_file) or not is_valid_chain(acc_file): + open(acc_file, 'w').write('ANONYM') + if not os.path.exists(cred_file) or not is_valid_chain(cred_file): + open(cred_file, 'w').write('NO_CRED') + #initialize the security system + self.sec = Sec('client', id_file, id_key_file, acc_file, cred_file) + #ssl parameters + self.ctx = SSL.Context() + self.ctx.load_cert(self.sec.id_file,self.sec.id_key_file) + self.ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=9, callback=verify_callback) + + def connect(self, host, port): + #if the acc and cred needs renewal then do call to authority + if self.type == 'user' or self.type == 'slice' or self.type == 'SA': + reg_type = 'slice' + else: + reg_type ='component' + renew_res1 = renew_cert('accounting', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec) + renew_res2 = renew_cert('credential', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec) + if renew_res1 == None: + print "There is no certificate in the directory "+"./\n" + os.exit(0) + #connect to server + server = SSL.Connection(self.ctx) + server.connect((host,port)) + peer = self.sec.auth_protocol(server) + if peer: + return server + else: + return None + +def main(): + try: + #read the input file + fp = open('tmp_input.txt', 'r') + user_data = fp.readline() + call_data = fp.readline() + print 'Read file.\n' + + #client related info + HRN = user_data.split(' ')[0] + TYPE = user_data.split(' ')[1].split('\n')[0] + name = get_leaf(HRN) + ID_FILE = name+'.cert' + ID_KEY_FILE = name+'.pkey' + ACC_FILE = 'acc_file' + CRED_FILE = 'cred_file' + my_client = GENIClient(HRN, TYPE, ID_FILE, ID_KEY_FILE, ACC_FILE, CRED_FILE) + print 'Constructed client.\n' + + #operation call + message = eval(call_data) + server = my_client.connect(SERVER_HOST, SERVER_PORT) + if server: + server.write(str(message)) + result = server.read() + server.close() + print 'Performed the call.\n' + else: + result = "Error in client data structures.\n" + + if renew_res2 == 1: + result = "Cred renewed. "+result + if renew_res1 == 1: + result = "Acc renewed. "+result + #write result to output file + open('tmp_output.txt','w').write(result) + print 'Written to file.\n' + except: + #write result to output file + open('tmp_output.txt','w').write("An error occurred in client stub.\n") + print 'Exception occurred.\n' + +if __name__=="__main__": + print 'Client started.\n' + main() diff --git a/gui/JavaApplication1/client_keiko/cred_file b/gui/JavaApplication1/client_keiko/cred_file new file mode 100644 index 00000000..98c0d2d7 --- /dev/null +++ b/gui/JavaApplication1/client_keiko/cred_file @@ -0,0 +1,59 @@ +-----BEGIN CERTIFICATE----- +MIICazCCAdQCAQAwDQYJKoZIhvcNAQEEBQAwDzENMAsGA1UEAxMEa2VpbzAeFw0w +ODAzMjgxNDI1MTZaFw0wODA1MDkwNjI1MTZaMB8xHTAbBgNVBAMTFFJlZ2lzdHJ5 +IGNyZWRlbnRpYWxzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXHLOL11Ug +ObJS5pb8ftgz7kstltCD+Ua1DSHKf8M1anRvcVnS1rOZ0r/IPdurWxRry3EKraBK +wHO/qADcTVgjvXBia/zFM46jmFmUFPdql2HZQqW7i+5QFVpIibfCGJUR3uwaQkkg +mhYLe3FH79327oZiA5E/+xvyrZeTbL0IHwIDAQABo4HLMIHIMIHFBgNVHREBAf8E +gbowgbeGgbRodHRwOi8vI2NyZWRlbnRpYWxfc2V0OigwLTApKDEtMCkoMi0wKSgz +LTApKDQtMCkoNS0wKSg2LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEp +KDMtMSkoNC0xKSg1LTEpKDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBs +YW5ldGxhYi5qcC5rZWlvIzE6cmVnOmNvbXA6cGxhbmV0bGFiLmpwLmtlaW8wDQYJ +KoZIhvcNAQEEBQADgYEAy72/MrNh6ZcAFgTl908nPl0KZGViSIQZG/Ks+QxR2MaD +SV0fPHrzv+RprLJw0frTjwIpPFDhDSvjbZB3+HWNhgKd88mIzwUSMOZjGmLGijRC +VNE5Pf1H2O76yXCc98Tm8ymkeMxps1gH1hfem6N4aToA4tTNma3poQnn3SaHpig= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICTzCCAbgCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw +MzI4MDQyNjQ2WhcNMDgwNTA4MjAyNjQ2WjAfMR0wGwYDVQQDExRSZWdpc3RyeSBj +cmVkZW50aWFsczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5WipNHGH/bn0 +AHWnf4YdxTFIql1WQqAkkZe+wK1q/ZHG72OUSrUAe3oV/TxiWqNUs9tItPFUMNhS +9r5+ZaVLNZFFl1WQ+tPk+KmhDfwcz9GWCwxpKwHWi0l36xtU/Y6nBupxzcNnj41t +EBXTnVmbNHgLXRAg6RgFpr4PjyhyML0CAwEAAaOBsTCBrjCBqwYDVR0RAQH/BIGg +MIGdhoGaaHR0cDovLyNjcmVkZW50aWFsX3NldDooMi0wKSg0LTApKDYtMCkoNy0w +KSg4LTApKDktMCkoMC0xKSgxLTEpKDItMSkoMy0xKSg0LTEpKDUtMSkoNi0xKSg3 +LTEpKDgtMSkoOS0xKSMwOnJlZzpzbGM6cGxhbmV0bGFiLmpwIzE6cmVnOnNsYzpw +bGFuZXRsYWIuanAua2VpbzANBgkqhkiG9w0BAQQFAAOBgQCQ9r5c/zYcsPuBV4iY +s1KD1E6B1xTu+TtvQw8GMK4JwTLaiBCdX6tiUkOHw40mej3huXD0KSDiBTt34Bg9 +9/E5XwqE0L604WATE4zVzz3s/lP1MroMzjoSphFzXdyHHQRYAOMLWr8e6JLH8qvA +CKI2ZD423aSCNB3FVxqlMyChwg== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICTjCCAbcCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODA0MjY0NVoXDTA4MDUwODIwMjY0NVowHzEdMBsGA1UEAxMUUmVn +aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOAP +5nv145+K6sfR0G7BMWBN9Zp9tVBdyxjohCzej6VX2fu40AjLb6m5ffRNk9WNroCx +hstcmwrbExRha6pzISsD0MIPUuf48sQmeyTHkpCdWbkbD/FtU7ENI5ZA5dQozFFt +EK2UW1kCv+IzjSVKmBRMfMcEY6UfuU15jdRm8sRlAgMBAAGjgakwgaYwgaMGA1Ud +EQEB/wSBmDCBlYaBkmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDItMCkoNC0wKSg2 +LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEpKDMtMSkoNC0xKSg1LTEp +KDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBsYW5ldGxhYiMxOnJlZzpz +bGM6cGxhbmV0bGFiLmpwMA0GCSqGSIb3DQEBBAUAA4GBAGR3d1rIelq++rJjlerk ++Xlbg+siLcDfNrOE4BgPWqZz9G6QDg+oxpmyP7SkqtO/u/D0PLyndcdKqpXsEisw +28KZtudxBTS5cRpTBCZnoUAGBKLJ3pwRqozwKxxCG8rmsUeGl0xdAjLVw9tzLppO +7LyVz7tZQkIyNF23gv+z9IQU +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn +aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2 +JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6 +R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX +h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB +/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt +MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l +dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U +PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp +26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG +teVEYDdXpA== +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/keiko.cert b/gui/JavaApplication1/client_keiko/keiko.cert new file mode 100644 index 00000000..82fbfc7a --- /dev/null +++ b/gui/JavaApplication1/client_keiko/keiko.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVrZWlrbzAeFw0w +ODAzMjgwNDE5MzdaFw0xMzAzMjcwNDE5MzdaMBAxDjAMBgNVBAMTBWtlaWtvMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXHLOL11UgObJS5pb8ftgz7kstltCD ++Ua1DSHKf8M1anRvcVnS1rOZ0r/IPdurWxRry3EKraBKwHO/qADcTVgjvXBia/zF +M46jmFmUFPdql2HZQqW7i+5QFVpIibfCGJUR3uwaQkkgmhYLe3FH79327oZiA5E/ ++xvyrZeTbL0IHwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAIGDtblGdZBm9C1irOwj +vcKM39SDb1MCb5zdBeuidVMPRazIHwMV3QYrrkQVnN9xffjGGyS77pKARYvDdFWm +Lm5LYP7fbRNndR7Y5VZT1uWJtIJn7LEA6fLoqMPftXwDpKYiLP6c/p11FgRYVlAC +WvE0MGOUIOsYSgBmvdcfEPzg +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/keiko.pkey b/gui/JavaApplication1/client_keiko/keiko.pkey new file mode 100644 index 00000000..03984b8b --- /dev/null +++ b/gui/JavaApplication1/client_keiko/keiko.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQCXHLOL11UgObJS5pb8ftgz7kstltCD+Ua1DSHKf8M1anRvcVnS +1rOZ0r/IPdurWxRry3EKraBKwHO/qADcTVgjvXBia/zFM46jmFmUFPdql2HZQqW7 +i+5QFVpIibfCGJUR3uwaQkkgmhYLe3FH79327oZiA5E/+xvyrZeTbL0IHwIDAQAB +AoGAPVG2Qg7VSkhfZmiP6FIIpboS46MJZiRnXty/U47Yxfo22Wojyvy40LjGfhkr +5LMG7F8Xtf+SxgKmdaVVBBCWrPp4OqkU/mal7mFEkc69rtJUigmsUsFv1SldgBq2 +qUYE337+dgP8+crziOEIA846Yrz69EnHSMKcEPAclxXCAPECQQDE35Em7pFKKRXx +d35pjh6UX0nWUEvxzGnNFazRMaal8R9wz4NKsbo/K46MbG+udbF0Qd6rcG4mCe+5 +1sFCsLx7AkEAxH7TJNSHAj+YyZr+g/fJ4l0tlIKZHNnZ30cnm20PVNr+lGe92lFw +QGlr0BJVKcNxFy2cE5zgmZdvegFTDl8rrQJBAIcQHcPIzZJEJ5K1+Nqvrpj52m0W +P1POehNBuIL3/i1AA+Lf6mG3FmA6IJyD1AarJaftfLa+9kJQdM9Y3tNC7rsCQQCk +FmSsNO4paoJkmRJBkgL9DWKqygSimynd0sW4fXJ4IgjGVXutfKSIpYBq2WRU4+jk +uinEFxVYLaXh9IkvTzphAkEAqyutr5X7XLe6E8km3MVgXgPjH3bn9Au4t/JWH7gV +Tc352qD5VFoByxpv57ZIhWF4dlqikFZYCIbuSgbKfUEsTg== +-----END RSA PRIVATE KEY----- diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert b/gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert new file mode 100644 index 00000000..9f9b5c30 --- /dev/null +++ b/gui/JavaApplication1/client_keiko/trusted_certs/geni_mng.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 +MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 +cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c +LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS +4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc +6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x +k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q +rBwyf1+Su4n1IPiqGi9yyA== +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert b/gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert new file mode 100644 index 00000000..9f9b5c30 --- /dev/null +++ b/gui/JavaApplication1/client_keiko/trusted_certs/geni_slc.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 +MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 +cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c +LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS +4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc +6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x +k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q +rBwyf1+Su4n1IPiqGi9yyA== +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert b/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert new file mode 100644 index 00000000..c1b42112 --- /dev/null +++ b/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_mng.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJcGxh +bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52QbJtucIQUE +YZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba +6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5amLZcMPm +u/G64ieWI8QMUxYgCE1ut3bI1QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJH5KqIU +2lrA9calI3oklbWpduiZspbwCUkhr8PNVDnkXSI1K+egDqFTaANVp1DxXU8qaDS6 +X5+s9Qf9FQ5+9mfSaocma6YW4Qfb3Zm/mYmpt+nknTlnVuEaTENyBIPfr0pDqzld +GGcYPul25KknFmdPOrqAUzma9n568u2KYlfz +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert b/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert new file mode 100644 index 00000000..9f5b851d --- /dev/null +++ b/gui/JavaApplication1/client_keiko/trusted_certs/planetlab_slc.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTEzMDMyNzAzNDQ0OFowFDESMBAGA1UEAxMJcGxh +bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz8uZVHahZ +QqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vGO7aT7bJC +apb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9 +OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABRIUVzW +JbwQKnqM3rVHJoSgtYWpgDvJosLCrLZhsXrukOsC8Gs8V6vPTPO7kofdUbHQKRnL +xp1nI5hlWIlq/XOnh+NEPZaB2SAKwfl3FZwUqjaEVd/VYOfsRryZtiUz4sL3CtXN +C8i/I4HwCnrl/pmzbprqpGq+RJTa5yLmBw6r +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/acc_file b/gui/JavaApplication1/client_osaka/acc_file new file mode 100644 index 00000000..a7c9fedb --- /dev/null +++ b/gui/JavaApplication1/client_osaka/acc_file @@ -0,0 +1,39 @@ +-----BEGIN CERTIFICATE----- +MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw +MzI4MjExMDUxWhcNMDgwNzIyMTQ1NzMxWjAaMRgwFgYDVQQDEw9HRU5JIEFjY291 +bnRpbmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANAGdic1KHHvvlTE7id6 +fmQU4HZ5iZwp9RqFiflTlvc/fJelxS8cV51rE878eZymgbVYwLIcO/Tyvfkg+axM +nBzzWgzSX4wk/zuuNPV0ZwzG0Vf9EN/hzqzu1KWRMxT0/vz6Kri33eTgbyURWp4D +OGYRqR7E573fDd8SWGfWW7AXAgMBAAGjXTBbMFkGA1UdEQEB/wRPME2GS2h0dHA6 +Ly8jaHJuOnBsYW5ldGxhYi5qcC5vc2FrYSN1dWlkOjE1MTI4NTYzNzgzNjk1MTc5 +NTEyOTg5MzAyMTMzNDQ0OTQyMjMyOTANBgkqhkiG9w0BAQQFAAOBgQAfdUPl4pLy +ILFiIvr7a4cH+hfgTvJOwr2U07RZfjiu5qxugOwPJJT0S/RLRRBdaL1VOM/f3ZLl +tRM7JBtaHw5iNQlVAJIWV9rhEKuDywc7Yw6sfsnmNCLie7M2QX9WpQ3G/l21y33G +q6wKxV8TVAj04juCHdJ16FQnx/612VtDOA== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO +SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf +iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK +2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ +Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG +hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3 +NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+ +GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX +n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4 +gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO +SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz +8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG +O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL +m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE +hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3 +MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69 +KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n +fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3 +si0AZRHgngrWmhf85bKAqS210OWHWOM= +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/clientstub.py b/gui/JavaApplication1/client_osaka/clientstub.py new file mode 100755 index 00000000..1a263317 --- /dev/null +++ b/gui/JavaApplication1/client_osaka/clientstub.py @@ -0,0 +1,154 @@ +#!/usr/bin/python + +import os, sys +from M2Crypto import SSL +sys.path.append('/home/soners/work/geni/rpc/util') +sys.path.append('/home/soners/work/geni/rpc/util/sec') +from sec import * + +SERVER_HOST = '127.0.0.1' +SERVER_PORT = 8002 +AUTH_HOST = '127.0.0.1' +AUTH_PORT = 8002 +MAX_RESULT = 3000 + +renew_res1 = 0 +renew_res2 = 0 + +def verify_callback(preverify_ok, ctx): + return 1 + +class GENIClient(): + def __init__(self, hrn, type, id_file, id_key_file, acc_file, cred_file): + self.hrn = hrn + self.type = type + #check if the certificate and the private key exists, terminate if not + if not os.path.exists(id_file) or not os.path.exists(id_key_file) : + print 'The certificate or the private key does not exist.\n' + os.exit(1) + #check the acc and cred files + if not os.path.exists(acc_file) or not is_valid_chain(acc_file): + open(acc_file, 'w').write('ANONYM') + if not os.path.exists(cred_file) or not is_valid_chain(cred_file): + open(cred_file, 'w').write('NO_CRED') + #initialize the security system + self.sec = Sec('client', id_file, id_key_file, acc_file, cred_file) + #ssl parameters + self.ctx = SSL.Context() + self.ctx.load_cert(self.sec.id_file,self.sec.id_key_file) + self.ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=9, callback=verify_callback) + + def connect(self, host, port): + #if the acc and cred needs renewal then do call to authority + if self.type == 'user' or self.type == 'slice' or self.type == 'SA': + reg_type = 'slice' + else: + reg_type ='component' + renew_res1 = renew_cert('accounting', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec) + renew_res2 = renew_cert('credential', '.', reg_type, self.hrn, None, None, (AUTH_HOST, AUTH_PORT), self.sec) + if renew_res1 == None: + print "There is no certificate in the directory "+"./\n" + os.exit(0) + #connect to server + server = SSL.Connection(self.ctx) + server.connect((host,port)) + peer = self.sec.auth_protocol(server) + if peer: + return server + else: + return None + +def toFileFormat(res_str): + out_str = "" + try: + res_dict = eval(res_str) + if res_dict['geni'].has_key('pubkey'): # in public key, replace '\n' with ' ' + pubkey = res_dict['geni']['pubkey'] + pubkey = pubkey.split('-----BEGIN RSA PRIVATE KEY-----')[1].split('-----END RSA PRIVATE KEY-----')[0].replace('\n',' ') + pubkey = '-----BEGIN RSA PRIVATE KEY-----'+pubkey+'-----END RSA PRIVATE KEY-----' + res_dict['geni']['pubkey'] = pubkey + + if res_dict.has_key('message'): + out_str = res_dict['message']+'\n' + else: + out_str = "{'geni':{\n" + for key in res_dict['geni']: + val = '' + if res_dict['geni'][key] == None: + val = '' + elif isinstance(res_dict['geni'][key], str): + val = res_dict['geni'][key] + else: + val = str(res_dict['geni'][key]) + out_str = out_str+"'"+key+"':"+val+"\n" + out_str = out_str + "}\n" + out_str = out_str + "'pl':{\n" + for key in res_dict['pl']: + val = '' + if res_dict['pl'][key] == None: + val = '' + if isinstance(res_dict['pl'][key], str): + val = res_dict['pl'][key] + else: + val = str(res_dict['pl'][key]) + out_str = out_str+"'"+key+"':"+val+"\n" + out_str = out_str + "}}" + except: + out_str = res_str + return out_str + +def evaluate(call_data): + call_data = eval(call_data) + #adjust the key format to obey server's storage format + if call_data['g_params'].has_key('pubkey'): #replace the ' ' with '\n' + pubkey = call_data['g_params']['pubkey'] + pubkey = pubkey.split('-----BEGIN RSA PRIVATE KEY-----')[1].split('-----END RSA PRIVATE KEY-----')[0].replace(' ','\n') + pubkey = '-----BEGIN RSA PRIVATE KEY-----'+pubkey+'-----END RSA PRIVATE KEY-----' + call_data['g_params']['pubkey'] = pubkey + return call_data + +def main(): + try: + #read the input file + fp = open('tmp_input.txt', 'r') + user_data = fp.readline() + call_data = fp.read() + print 'Read file.\n' + + #client related info + HRN = user_data.split(' ')[0] + TYPE = user_data.split(' ')[1].split('\n')[0] + name = get_leaf(HRN) + ID_FILE = name+'.cert' + ID_KEY_FILE = name+'.pkey' + ACC_FILE = 'acc_file' + CRED_FILE = 'cred_file' + my_client = GENIClient(HRN, TYPE, ID_FILE, ID_KEY_FILE, ACC_FILE, CRED_FILE) + print 'Constructed client.\n' + + #operation call + message = evaluate(call_data) + server = my_client.connect(SERVER_HOST, SERVER_PORT) + if server: + server.write(str(message)) + result = toFileFormat(server.read(MAX_RESULT)) + server.close() + print 'Performed the call.\n' + else: + result = "Error in client data structures.\n" + + if renew_res2 == 1: + result = "Cred renewed.\n"+result + if renew_res1 == 1: + result = "Acc renewed.\n"+result + #write result to output file + open('tmp_output.txt','w').write(result) + print 'Written to file.\n' + except: + #write result to output file + open('tmp_output.txt','w').write("An error occurred in client stub.\n") + print 'Exception occurred.\n' + +if __name__=="__main__": + print 'Client started.\n' + main() diff --git a/gui/JavaApplication1/client_osaka/cred_file b/gui/JavaApplication1/client_osaka/cred_file new file mode 100644 index 00000000..2dc4a361 --- /dev/null +++ b/gui/JavaApplication1/client_osaka/cred_file @@ -0,0 +1,44 @@ +-----BEGIN CERTIFICATE----- +MIICUDCCAbkCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw +MzI4MjExMDUxWhcNMDgwNTA5MTMxMDUxWjAfMR0wGwYDVQQDExRSZWdpc3RyeSBj +cmVkZW50aWFsczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0AZ2JzUoce++ +VMTuJ3p+ZBTgdnmJnCn1GoWJ+VOW9z98l6XFLxxXnWsTzvx5nKaBtVjAshw79PK9 ++SD5rEycHPNaDNJfjCT/O6409XRnDMbRV/0Q3+HOrO7UpZEzFPT+/PoquLfd5OBv +JRFangM4ZhGpHsTnvd8N3xJYZ9ZbsBcCAwEAAaOBsjCBrzCBrAYDVR0RAQH/BIGh +MIGehoGbaHR0cDovLyNjcmVkZW50aWFsX3NldDooMi0wKSg0LTApKDYtMCkoNy0w +KSg4LTApKDktMCkoMC0xKSgxLTEpKDItMSkoMy0xKSg0LTEpKDUtMSkoNi0xKSg3 +LTEpKDgtMSkoOS0xKSMwOnJlZzpzbGM6cGxhbmV0bGFiLmpwIzE6cmVnOnNsYzpw +bGFuZXRsYWIuanAub3Nha2EwDQYJKoZIhvcNAQEEBQADgYEAOjGYfQry2jLhVTCx +7aygF13tq8+h7l8AzEOjTldzFF9h+OQscT74FP6e7hneDgI3EqBwWrW6E8yplJkS +flpKKuShlfSDoY3iLalSqZLhQHGX6fZ3oNlKGHJmJtL/QPhzs4tMwm5Jf0IXNadV +KVTpeZ1/xmfEJ8+E9HxYEvrKeEI= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICTjCCAbcCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODA0MjY0NVoXDTA4MDUwODIwMjY0NVowHzEdMBsGA1UEAxMUUmVn +aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOAP +5nv145+K6sfR0G7BMWBN9Zp9tVBdyxjohCzej6VX2fu40AjLb6m5ffRNk9WNroCx +hstcmwrbExRha6pzISsD0MIPUuf48sQmeyTHkpCdWbkbD/FtU7ENI5ZA5dQozFFt +EK2UW1kCv+IzjSVKmBRMfMcEY6UfuU15jdRm8sRlAgMBAAGjgakwgaYwgaMGA1Ud +EQEB/wSBmDCBlYaBkmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDItMCkoNC0wKSg2 +LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEpKDMtMSkoNC0xKSg1LTEp +KDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBsYW5ldGxhYiMxOnJlZzpz +bGM6cGxhbmV0bGFiLmpwMA0GCSqGSIb3DQEBBAUAA4GBAGR3d1rIelq++rJjlerk ++Xlbg+siLcDfNrOE4BgPWqZz9G6QDg+oxpmyP7SkqtO/u/D0PLyndcdKqpXsEisw +28KZtudxBTS5cRpTBCZnoUAGBKLJ3pwRqozwKxxCG8rmsUeGl0xdAjLVw9tzLppO +7LyVz7tZQkIyNF23gv+z9IQU +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn +aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2 +JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6 +R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX +h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB +/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt +MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l +dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U +PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp +26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG +teVEYDdXpA== +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/osaka.cert b/gui/JavaApplication1/client_osaka/osaka.cert new file mode 100644 index 00000000..ce4da44a --- /dev/null +++ b/gui/JavaApplication1/client_osaka/osaka.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVvc2FrYTAeFw0w +ODAzMjgwMzQ0NTBaFw0xMzAzMjcwMzQ0NTBaMBAxDjAMBgNVBAMTBW9zYWthMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQBnYnNShx775UxO4nen5kFOB2eYmc +KfUahYn5U5b3P3yXpcUvHFedaxPO/HmcpoG1WMCyHDv08r35IPmsTJwc81oM0l+M +JP87rjT1dGcMxtFX/RDf4c6s7tSlkTMU9P78+iq4t93k4G8lEVqeAzhmEakexOe9 +3w3fElhn1luwFwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABOBGbnYsv2xjOXidUtp +e1woERQGJRe7HJrbo9NyI5ozjSLt9yphY11ZmNex2IhKIrmbRSPfDnKNYaMHFOpz +qbJMCmC4uUIUd9HY8bg4mQ4wjwdWkLA9uWlmpAFRoIY3eNEvv5tpUnD3sV1dEDsQ +uQQcjxVTSgQQgjpE1KJ/KQ6q +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/osaka.pkey b/gui/JavaApplication1/client_osaka/osaka.pkey new file mode 100644 index 00000000..25155f25 --- /dev/null +++ b/gui/JavaApplication1/client_osaka/osaka.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDQBnYnNShx775UxO4nen5kFOB2eYmcKfUahYn5U5b3P3yXpcUv +HFedaxPO/HmcpoG1WMCyHDv08r35IPmsTJwc81oM0l+MJP87rjT1dGcMxtFX/RDf +4c6s7tSlkTMU9P78+iq4t93k4G8lEVqeAzhmEakexOe93w3fElhn1luwFwIDAQAB +AoGAflTuPDFUNp1aATD3UJJbX3wuNMTqhSQV7d1bRUc2T0EG8TGC5nFX5Am7JeC+ +GhwkeXVE0OXEo6UnKbyU48ZCp1lL70bjiPvhS/wceTbjuxJq2wS2hjIwf9NKyZ1j +ppO0gpvxOVNbIgyS3Yj2T98sYkJCVBnBN2huUsfzmHSeKIECQQD3SOiKRGfla+Du +dfBY7tKNxxXYTZwV2eYKhMZFW6rMcGboqoAXFMVUTEdHB2Ozk2wHsKcDb3WFpqQI +0QFqdNefAkEA11tW5cDIjiLeppSi57knZr9aYfysJcHslez9wgFGgK72s8XB8CfS +QqzPTmQm4F3NVM+5Y5PbMp55ntEiwPg0iQJAMnGsBjCoJRPZoatraSjmyMc4/JPw +aEC3/aNSMundMLEpPQMy+AJjsquQyruGKibDndn6Z+f/yFDTG31PVaEaLwJAV8AQ +GG4FSmVK8/V8q472TxeJbIPYYUozbKO0gmiioaypOXdLHuAa/LANiJOmg6W1FOnP +UJPerTGFvQDaeGaqgQJBAItAXexGSQEA1AKVzP31zorlb6zBh6dTxxrMhfeROwZx +drr47bhcwuiJ011xXzea9iy1dWJOtC8JrQ/YVw14Sjc= +-----END RSA PRIVATE KEY----- diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert b/gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert new file mode 100644 index 00000000..9f9b5c30 --- /dev/null +++ b/gui/JavaApplication1/client_osaka/trusted_certs/geni_mng.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 +MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 +cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c +LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS +4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc +6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x +k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q +rBwyf1+Su4n1IPiqGi9yyA== +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert b/gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert new file mode 100644 index 00000000..9f9b5c30 --- /dev/null +++ b/gui/JavaApplication1/client_osaka/trusted_certs/geni_slc.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 +MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 +cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c +LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS +4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc +6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x +k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q +rBwyf1+Su4n1IPiqGi9yyA== +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert b/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert new file mode 100644 index 00000000..c1b42112 --- /dev/null +++ b/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_mng.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJcGxh +bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52QbJtucIQUE +YZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba +6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5amLZcMPm +u/G64ieWI8QMUxYgCE1ut3bI1QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJH5KqIU +2lrA9calI3oklbWpduiZspbwCUkhr8PNVDnkXSI1K+egDqFTaANVp1DxXU8qaDS6 +X5+s9Qf9FQ5+9mfSaocma6YW4Qfb3Zm/mYmpt+nknTlnVuEaTENyBIPfr0pDqzld +GGcYPul25KknFmdPOrqAUzma9n568u2KYlfz +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert b/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert new file mode 100644 index 00000000..9f5b851d --- /dev/null +++ b/gui/JavaApplication1/client_osaka/trusted_certs/planetlab_slc.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTEzMDMyNzAzNDQ0OFowFDESMBAGA1UEAxMJcGxh +bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz8uZVHahZ +QqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vGO7aT7bJC +apb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9 +OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABRIUVzW +JbwQKnqM3rVHJoSgtYWpgDvJosLCrLZhsXrukOsC8Gs8V6vPTPO7kofdUbHQKRnL +xp1nI5hlWIlq/XOnh+NEPZaB2SAKwfl3FZwUqjaEVd/VYOfsRryZtiUz4sL3CtXN +C8i/I4HwCnrl/pmzbprqpGq+RJTa5yLmBw6r +-----END CERTIFICATE----- diff --git a/gui/JavaApplication1/dist/JavaApplication1.jar b/gui/JavaApplication1/dist/JavaApplication1.jar new file mode 100644 index 0000000000000000000000000000000000000000..f346822defdf4f8c72bf6737e2683e6b654662a6 GIT binary patch literal 52319 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�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 h@5JHrX;RXqYak87%Gu4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + + + + + + java -cp "${run.classpath.with.dist.jar}" ${main.class} + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + java -jar "${dist.jar.resolved}" + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + + + + + + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + diff --git a/gui/JavaApplication1/nbproject/genfiles.properties b/gui/JavaApplication1/nbproject/genfiles.properties new file mode 100644 index 00000000..d7c8159a --- /dev/null +++ b/gui/JavaApplication1/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=6777d69e +build.xml.script.CRC32=09de7c06 +build.xml.stylesheet.CRC32=240b97a2 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=6777d69e +nbproject/build-impl.xml.script.CRC32=b93da968 +nbproject/build-impl.xml.stylesheet.CRC32=65d7ca21 diff --git a/gui/JavaApplication1/nbproject/private/private.properties b/gui/JavaApplication1/nbproject/private/private.properties new file mode 100644 index 00000000..c36df805 --- /dev/null +++ b/gui/JavaApplication1/nbproject/private/private.properties @@ -0,0 +1,4 @@ +application.args= +javac.debug=true +javadoc.preview=true +user.properties.file=/home/soners/.netbeans/5.5.1/build.properties diff --git a/gui/JavaApplication1/nbproject/private/private.xml b/gui/JavaApplication1/nbproject/private/private.xml new file mode 100644 index 00000000..c1f155a7 --- /dev/null +++ b/gui/JavaApplication1/nbproject/private/private.xml @@ -0,0 +1,4 @@ + + + + diff --git a/gui/JavaApplication1/nbproject/project.properties b/gui/JavaApplication1/nbproject/project.properties new file mode 100644 index 00000000..58e400c2 --- /dev/null +++ b/gui/JavaApplication1/nbproject/project.properties @@ -0,0 +1,57 @@ +application.args= +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +debug.classpath=\ + ${run.classpath} +debug.test.classpath=\ + ${run.test.classpath} +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/JavaApplication1.jar +dist.javadoc.dir=${dist.dir}/javadoc +jar.compress=false +javac.classpath=\ + ${libs.swing-layout.classpath} +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.source=1.5 +javac.target=1.5 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir}:\ + ${libs.junit.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding= +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +main.class=javaapplication1.GeniGUI +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +platform.active=default_platform +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project +# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value +# or test-sys-prop.name=value to set system properties for unit tests): +run.jvmargs= +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +src.dir=src +test.src.dir=test diff --git a/gui/JavaApplication1/nbproject/project.xml b/gui/JavaApplication1/nbproject/project.xml new file mode 100644 index 00000000..f3875b64 --- /dev/null +++ b/gui/JavaApplication1/nbproject/project.xml @@ -0,0 +1,16 @@ + + + org.netbeans.modules.java.j2seproject + + + JavaApplication1 + 1.6.5 + + + + + + + + + diff --git a/gui/JavaApplication1/src/javaapplication1/DisplayHandle.java b/gui/JavaApplication1/src/javaapplication1/DisplayHandle.java new file mode 100644 index 00000000..e755de91 --- /dev/null +++ b/gui/JavaApplication1/src/javaapplication1/DisplayHandle.java @@ -0,0 +1,570 @@ +/* + * DisplayHandle.java + * + * Created on March 29, 2008, 2:42 AM + * + * To change this template, choose Tools | Template Manager + * and open the template in the editor. + */ + +package javaapplication1; + +import java.io.*; +import javax.swing.JPanel; +import java.awt.*; +import javax.swing.*; + +/** + * + * @author soners + */ +public class DisplayHandle { + + /** Creates a new instance of DisplayHandle */ + public DisplayHandle(BufferedWriter outCommand) { + this.outCommand = outCommand; + createCompListUser(); + createCompListSlice(); + createCompListNode(); + createCompListSite(); + } + + private void createCompListNode(){ + compList_node = new GuiComponent[33]; + GuiComponent[] compList = compList_node; + String[] tmplist1 = {"readable","pl"}; + String[] tmplist2 = {"writable","pl"}; + String[] tmplist3 = {"readable","geni"}; + String[] tmplist4 = {"writable","geni"}; + compList[0] = new GuiComponent("node_id", tmplist1, "text", "Node Id", ""); + compList[1] = new GuiComponent("last_updated", tmplist1, "text", "Last Updated", ""); + compList[2] = new GuiComponent("boot_state", tmplist2, "combo", "Boot state", "boot, dbg, inst, new, rcnf, rins"); + compList[3] = new GuiComponent("site_id", tmplist1, "num", "Site Id", ""); + compList[4] = new GuiComponent("pcu_ids", tmplist2, "num", "PCU Ids", ""); + compList[5] = new GuiComponent("session", tmplist1, "text", "Session", ""); + compList[6] = new GuiComponent("key", tmplist2, "key", "Key", ""); + compList[7] = new GuiComponent("conf_file_ids", tmplist2, "text", "Conf file Ids", ""); + compList[8] = new GuiComponent("ssh_rsa_key", tmplist1, "text", "SSH RSA Key", ""); + compList[9] = new GuiComponent("ssh_rsa_key_write", tmplist2, "key", "SSH RSA Key", ""); + compList[10] = new GuiComponent("uuid", tmplist1, "text", "UUID", ""); + compList[11] = new GuiComponent("nodegroup_ids", tmplist2, "num", "Node Group Ids", ""); + compList[12] = new GuiComponent("slice_ids_whitelist", tmplist2, "text", "Slice Ids Whitelist", ""); + compList[13] = new GuiComponent("last_contact", tmplist2, "text", "Last Contact", ""); + compList[14] = new GuiComponent("nodenetwork_ids", tmplist2, "text", "Node Network Ids", ""); + compList[15] = new GuiComponent("peer_node_id", tmplist2, "num", "Peer Node Id", ""); + compList[16] = new GuiComponent("hostname", tmplist2, "text", "Hostname", "randomsite.edu"); + compList[17] = new GuiComponent("slice_ids", tmplist1, "num", "Slice Ids", ""); + compList[18] = new GuiComponent("boot_nonce", tmplist2, "text", "Boot Nonce", ""); + compList[19] = new GuiComponent("version", tmplist2, "text", "Version", "PlanetLab BootCD 3.1"); + compList[20] = new GuiComponent("date_created", tmplist1, "text", "Date Created", ""); + compList[21] = new GuiComponent("model", tmplist2, "text", "Model", "Dell OptiPlex GX280"); + compList[22] = new GuiComponent("peer_id", tmplist1, "num", "Peer Id", ""); + compList[23] = new GuiComponent("ports", tmplist2, "text", "Ports", ""); + compList[24] = new GuiComponent("description", tmplist4, "text", "Description", "New node for testing purposes"); + compList[25] = new GuiComponent("rights", tmplist4, "text", "Rights", ""); + compList[26] = new GuiComponent("pubkey", tmplist3, "text", "GENI Public key", ""); + compList[27] = new GuiComponent("pubkey_write", tmplist4, "key", "GENI Public key", ""); + compList[28] = new GuiComponent("wrapperurl", tmplist4, "text", "Wrapper URL", "local"); + compList[29] = new GuiComponent("disabled", tmplist3, "bool", "Disabled", "Yes, No"); + compList[30] = new GuiComponent("userlist", tmplist4, "text", "User List", ""); + compList[31] = new GuiComponent("pointer", tmplist3, "num", "PL Pointer", ""); + compList[32] = new GuiComponent("g_uuid", tmplist3, "text", "GENI UUID", ""); + + } + + private void createCompListUser(){ + compList_user = new GuiComponent[28]; + GuiComponent[] compList = compList_user; + String[] tmplist1 = {"readable","pl"}; + String[] tmplist2 = {"writable","pl"}; + String[] tmplist3 = {"readable","geni"}; + String[] tmplist4 = {"writable","geni"}; + compList[0] = new GuiComponent("person_id", tmplist1, "num", "Person Id", ""); + compList[1] = new GuiComponent("bio", tmplist2, "text", "Bio", ""); + compList[2] = new GuiComponent("first_name", tmplist2, "text", "First Name", ""); + compList[3] = new GuiComponent("last_name", tmplist2, "text", "Last Name", ""); + compList[4] = new GuiComponent("last_updated", tmplist1, "text", "Last Updated", ""); + compList[5] = new GuiComponent("key_ids", tmplist2, "num", "Key Ids", ""); + compList[6] = new GuiComponent("phone", tmplist2, "text", "Phone", ""); + compList[7] = new GuiComponent("peer_person_id", tmplist2, "num", "Peer Person Id", ""); + compList[8] = new GuiComponent("role_ids", tmplist2, "num", "Role Ids", ""); + compList[9] = new GuiComponent("site_ids", tmplist1, "num", "Site Ids", ""); + compList[10] = new GuiComponent("uuid", tmplist1, "text", "UUID", ""); + compList[11] = new GuiComponent("roles", tmplist2, "num", "Roles", ""); + compList[12] = new GuiComponent("title", tmplist2, "text", "Title", ""); + compList[13] = new GuiComponent("url", tmplist2, "text", "Url", "someuser.dom.edu"); + compList[14] = new GuiComponent("enabled", tmplist2, "bool", "Enabled", "Yes, No"); + compList[15] = new GuiComponent("slice_ids", tmplist2, "num", "Slice Ids", ""); + compList[16] = new GuiComponent("date_created", tmplist1, "text", "Date Created", ""); + compList[17] = new GuiComponent("peer_id", tmplist2, "num", "Peer Id", ""); + compList[18] = new GuiComponent("email", tmplist2, "text", "Email", "someuser@domain.edu"); + compList[19] = new GuiComponent("description", tmplist4, "text", "Description", "test user"); + compList[20] = new GuiComponent("rights", tmplist2, "text", "Rights", ""); + compList[21] = new GuiComponent("pubkey", tmplist3, "text", "GENI Public key", ""); + compList[22] = new GuiComponent("pubkey_write", tmplist4, "key", "GENI Public key", ""); + compList[23] = new GuiComponent("wrapperurl", tmplist4, "text", "Wrapper URL", "local"); + compList[24] = new GuiComponent("disabled", tmplist3, "bool", "Disabled", "Yes, No"); + compList[25] = new GuiComponent("userlist", tmplist4, "text", "User List", ""); + compList[26] = new GuiComponent("pointer", tmplist3, "text", "PL Pointer", ""); + compList[27] = new GuiComponent("g_uuid", tmplist3, "text", "GENI UUID", ""); + + } + + private void createCompListSlice(){ + compList_slice = new GuiComponent[24]; + GuiComponent[] compList = compList_slice; + String[] tmplist1 = {"readable","pl"}; + String[] tmplist2 = {"writable","pl"}; + String[] tmplist3 = {"readable","geni"}; + String[] tmplist4 = {"writable","geni"}; + compList[0] = new GuiComponent("slice_id", tmplist1, "num", "Slice Id", ""); + compList[1] = new GuiComponent("description", tmplist2, "text", "Description", ""); + compList[2] = new GuiComponent("node_ids", tmplist1, "num", "Node Ids", ""); + compList[3] = new GuiComponent("expires", tmplist2, "text", "Expires", ""); + compList[4] = new GuiComponent("site_id", tmplist1, "num", "Site Id", ""); + compList[5] = new GuiComponent("uuid", tmplist1, "text", "UUID", ""); + compList[6] = new GuiComponent("creator_person_id", tmplist2, "text", "Creator Person Id", ""); + compList[7] = new GuiComponent("instantiation", tmplist2, "combo", "Instantiation", "delegated, not-instantiated, plc-instantiated"); + compList[8] = new GuiComponent("name", tmplist2, "text", "Name", ""); + compList[9] = new GuiComponent("created", tmplist1, "text", "Created", ""); + compList[10] = new GuiComponent("url", tmplist2, "text", "Url", ""); + compList[11] = new GuiComponent("max_nodes", tmplist2, "num", "Max Nodes", "10"); + compList[12] = new GuiComponent("person_ids", tmplist2, "num", "Person Ids", ""); + compList[13] = new GuiComponent("slice_attribute_ids", tmplist2, "text", "Slice Attribute Ids", ""); + compList[14] = new GuiComponent("peer_id", tmplist1, "num", "Peer Id", ""); + compList[15] = new GuiComponent("description", tmplist4, "text", "Description", "test slice"); + compList[16] = new GuiComponent("rights", tmplist2, "text", "Rights", ""); + compList[17] = new GuiComponent("pubkey", tmplist3, "text", "GENI Public key", ""); + compList[18] = new GuiComponent("pubkey_write", tmplist4, "key", "GENI Public key", ""); + compList[19] = new GuiComponent("wrapperurl", tmplist4, "text", "Wrapper URL", "local"); + compList[20] = new GuiComponent("disabled", tmplist3, "bool", "Disabled", "Yes, No"); + compList[21] = new GuiComponent("userlist", tmplist4, "text", "User List", ""); + compList[22] = new GuiComponent("pointer", tmplist3, "num", "PL Pointer", ""); + compList[23] = new GuiComponent("g_uuid", tmplist3, "text", "GENI UUID", ""); + + } + + private void createCompListSite(){ + compList_site = new GuiComponent[31]; + GuiComponent[] compList = compList_site; + String[] tmplist1 = {"readable","pl"}; + String[] tmplist2 = {"writable","pl"}; + String[] tmplist3 = {"readable","geni"}; + String[] tmplist4 = {"writable","geni"}; + + compList[0] = new GuiComponent("last_updated", tmplist1, "text", "Last Updated", ""); + compList[1] = new GuiComponent("node_ids", tmplist2, "num", "Node Ids", ""); + compList[2] = new GuiComponent("site_id", tmplist1, "num", "Site Id", ""); + compList[3] = new GuiComponent("pcu_ids", tmplist2, "num", "PCU Ids", ""); + compList[4] = new GuiComponent("max_slices", tmplist2, "num", "Max Slices", ""); + compList[5] = new GuiComponent("ext_consortium_id", tmplist2, "text", "Ext Consortium Id", ""); + compList[6] = new GuiComponent("max_slivers", tmplist2, "num", "Max Slivers", "5"); + compList[7] = new GuiComponent("is_public", tmplist2, "bool", "Public", "Yes, No"); + compList[8] = new GuiComponent("peer_site_id", tmplist1, "num", "Peer Site Id", ""); + compList[9] = new GuiComponent("abbreviated_name", tmplist2, "text", "Abbreviated Name", ""); + compList[10] = new GuiComponent("name", tmplist2, "text", "Name", ""); + compList[11] = new GuiComponent("address_ids", tmplist2, "num", "Address Ids", ""); + compList[12] = new GuiComponent("uuid", tmplist1, "text", "UUID", ""); + compList[13] = new GuiComponent("url", tmplist2, "text", "Url", ""); + compList[14] = new GuiComponent("person_ids", tmplist2, "num", "Person Ids", ""); + compList[15] = new GuiComponent("enabled", tmplist2, "bool", "Enabled", "Yes, No"); + compList[16] = new GuiComponent("longitude", tmplist2, "num", "Longitude", "34.3"); + compList[17] = new GuiComponent("latitude", tmplist2, "num", "Latitude", "45.4"); + compList[18] = new GuiComponent("slice_ids", tmplist2, "num", "Slice Ids", ""); + compList[19] = new GuiComponent("login_base", tmplist2, "text", "Login Base", ""); + compList[20] = new GuiComponent("date_created", tmplist1, "text", "Date Created", ""); + compList[21] = new GuiComponent("peer_id", tmplist1, "num", "Peer Id", ""); + compList[22] = new GuiComponent("description", tmplist4, "text", "Description", "test slice"); + compList[23] = new GuiComponent("rights", tmplist2, "text", "Rights", ""); + compList[24] = new GuiComponent("pubkey", tmplist3, "text", "GENI Public key", ""); + compList[25] = new GuiComponent("pubkey_write", tmplist4, "key", "GENI Public key", ""); + compList[26] = new GuiComponent("wrapperurl", tmplist4, "text", "Wrapper URL", "local"); + compList[27] = new GuiComponent("disabled", tmplist3, "bool", "Disabled", "Yes, No"); + compList[28] = new GuiComponent("userlist", tmplist4, "text", "User List", ""); + compList[29] = new GuiComponent("pointer", tmplist3, "num", "PL Pointer", ""); + compList[30] = new GuiComponent("g_uuid", tmplist3, "text", "GENI UUID", ""); + } + + //input is in format: {"'field1_name':value1", "'field2_name':value2", ...} + public void FillComponentList(String recordType, String[] dict){ + GuiComponent[] complist = null; + if (recordType.equals("user")){ + complist = compList_user; + } + else if (recordType.equals("slice")){ + complist = compList_slice; + } + else if (recordType.equals("node")){ + complist = compList_node; + } + else if (recordType.equals("SA/MA")){ + complist = compList_site; + } + + for (int i=0; i 1) + comp_value = line[1]; + if (comp_value.equals("None")) + comp_value = ""; + int j; + for(j = 0; j tmp_key_file.txt\n"); + outCommand.flush(); + + //get key from temp file + String result = ""; + File file = new File("tmp_key_file.txt"); + int i = 0; + while(!file.exists() && i<5){ + i++; + try { + Thread.currentThread().sleep(200); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + } + try { + Thread.currentThread().sleep(100); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + if (file.exists()){ + BufferedReader in = new BufferedReader(new FileReader("tmp_key_file.txt")); + String tmp = in.readLine(); + while(tmp!=null && tmp.length() > 0){ + result += tmp+"\n"; + tmp = in.readLine(); + } + in.close(); + + outCommand.write("rm tmp_key_file.txt\n"); + outCommand.flush(); + } + //write the result in the textfield + t.setText(result); + }catch (Exception ex) { + ex.printStackTrace(); + } + } + + } + + public void displayComponentList(String recordType, JPanel panel1, JPanel panel2){ + + GuiComponent[] complist = null; + if (recordType.equals("user")){ + complist = compList_user; + } + else if (recordType.equals("slice")){ + complist = compList_slice; + } + else if (recordType.equals("node")){ + complist = compList_node; + } + else if (recordType.equals("SA/MA")){ + complist = compList_site; + } + + panel1.removeAll(); + panel1.setLayout(new SpringLayout()); + + int count1 = 0; + for (int i=0;i + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/gui/JavaApplication1/src/javaapplication1/GeniGUI.java b/gui/JavaApplication1/src/javaapplication1/GeniGUI.java new file mode 100644 index 00000000..ad93a59c --- /dev/null +++ b/gui/JavaApplication1/src/javaapplication1/GeniGUI.java @@ -0,0 +1,452 @@ +/* + * GeniGUI.java + * + * Created on March 29, 2008, 3:46 PM + */ + +package javaapplication1; + +import javax.swing.SpringLayout; +import org.jdesktop.layout.GroupLayout; + +/** + * + * @author soners + */ +public class GeniGUI extends javax.swing.JFrame { + + /** + * Creates new form GeniGUI + */ + public GeniGUI() { + initComponents(); + + jPanel4.setVisible(false); + jPanel5.setVisible(false); + jPanel6.setVisible(false); + jPanel7.setVisible(false); + + javax.swing.JPanel[] panelList = {jPanel3, jPanel4, jPanel5, jPanel6, jPanel7}; + panelfiller = new PanelFiller(panelList, statusLabel); + panelfiller.initializePanels(); + + } + + private void passCallToHandler(String opname){ + User user = new User(); + user.setCurrentUser(hrnTextField.getText(), (String)typeCombo.getSelectedItem(), dirTextField.getText()); + RecordInfo record = new RecordInfo(); + record.setCurrentRecord(rechrnTextField.getText(), (String)rectypeCombo.getSelectedItem()); + + panelfiller.setUser(user); + panelfiller.setRecord(record); + panelfiller.handleOperation(opname); + } + + /** This method is called from within the constructor to + * initialize the form. + * WARNING: Do NOT modify this code. The content of this method is + * always regenerated by the Form Editor. + */ + // //GEN-BEGIN:initComponents + private void initComponents() { + jPanel1 = new javax.swing.JPanel(); + hrnLabel = new javax.swing.JLabel(); + hrnTextField = new javax.swing.JTextField(); + typeCombo = new javax.swing.JComboBox(); + dirTextField = new javax.swing.JTextField(); + typeLabel = new javax.swing.JLabel(); + dirLabel = new javax.swing.JLabel(); + jInternalFrame1 = new javax.swing.JInternalFrame(); + jPanel3 = new javax.swing.JPanel(); + jPanel4 = new javax.swing.JPanel(); + jPanel5 = new javax.swing.JPanel(); + jPanel6 = new javax.swing.JPanel(); + jPanel7 = new javax.swing.JPanel(); + jPanel2 = new javax.swing.JPanel(); + rechrnLabel = new javax.swing.JLabel(); + rechrnTextField = new javax.swing.JTextField(); + rectypeCombo = new javax.swing.JComboBox(); + rectypeLabel = new javax.swing.JLabel(); + jButton1 = new javax.swing.JButton(); + jButton2 = new javax.swing.JButton(); + jButton3 = new javax.swing.JButton(); + jButton4 = new javax.swing.JButton(); + statusLabel = new javax.swing.JLabel(); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseReleased(java.awt.event.MouseEvent evt) { + formMouseReleased(evt); + } + }); + + jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("User Info")); + hrnLabel.setText("Enter your HRN:"); + + hrnTextField.setText("planetlab.jp.osaka"); + + typeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "user", "SA", "MA" })); + + dirTextField.setText("./client_osaka"); + + typeLabel.setText("Type:"); + + dirLabel.setText("User GENI directory:"); + + org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1); + jPanel1.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup( + jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(jPanel1Layout.createSequentialGroup() + .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(typeLabel) + .add(hrnLabel)) + .add(26, 26, 26)) + .add(jPanel1Layout.createSequentialGroup() + .add(dirLabel) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED))) + .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(dirTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 245, Short.MAX_VALUE) + .add(hrnTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 245, Short.MAX_VALUE) + .add(typeCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addContainerGap()) + ); + jPanel1Layout.setVerticalGroup( + jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel1Layout.createSequentialGroup() + .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(hrnLabel) + .add(hrnTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(13, 13, 13) + .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(typeCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(typeLabel)) + .add(14, 14, 14) + .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(dirTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(dirLabel)) + .addContainerGap(46, Short.MAX_VALUE)) + ); + + jInternalFrame1.setTitle("Record Data"); + jInternalFrame1.setVisible(true); + jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Non-editable Information")); + org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3); + jPanel3.setLayout(jPanel3Layout); + jPanel3Layout.setHorizontalGroup( + jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(0, 825, Short.MAX_VALUE) + ); + jPanel3Layout.setVerticalGroup( + jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(0, 199, Short.MAX_VALUE) + ); + + jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Set User Fields")); + org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4); + jPanel4.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup( + jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(0, 825, Short.MAX_VALUE) + ); + jPanel4Layout.setVerticalGroup( + jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(0, 180, Short.MAX_VALUE) + ); + + jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Set Slice fields")); + org.jdesktop.layout.GroupLayout jPanel5Layout = new org.jdesktop.layout.GroupLayout(jPanel5); + jPanel5.setLayout(jPanel5Layout); + jPanel5Layout.setHorizontalGroup( + jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(0, 825, Short.MAX_VALUE) + ); + jPanel5Layout.setVerticalGroup( + jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(0, 192, Short.MAX_VALUE) + ); + + jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("Set Node fields")); + org.jdesktop.layout.GroupLayout jPanel6Layout = new org.jdesktop.layout.GroupLayout(jPanel6); + jPanel6.setLayout(jPanel6Layout); + jPanel6Layout.setHorizontalGroup( + jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(0, 825, Short.MAX_VALUE) + ); + jPanel6Layout.setVerticalGroup( + jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(0, 182, Short.MAX_VALUE) + ); + + jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("Set SA/MA fields")); + org.jdesktop.layout.GroupLayout jPanel7Layout = new org.jdesktop.layout.GroupLayout(jPanel7); + jPanel7.setLayout(jPanel7Layout); + jPanel7Layout.setHorizontalGroup( + jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(0, 837, Short.MAX_VALUE) + ); + jPanel7Layout.setVerticalGroup( + jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(0, 221, Short.MAX_VALUE) + ); + + org.jdesktop.layout.GroupLayout jInternalFrame1Layout = new org.jdesktop.layout.GroupLayout(jInternalFrame1.getContentPane()); + jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout); + jInternalFrame1Layout.setHorizontalGroup( + jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jInternalFrame1Layout.createSequentialGroup() + .addContainerGap() + .add(jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(jInternalFrame1Layout.createSequentialGroup() + .add(jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(jPanel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(jPanel6, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap()))) + ); + jInternalFrame1Layout.setVerticalGroup( + jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(org.jdesktop.layout.GroupLayout.TRAILING, jInternalFrame1Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) + ); + + jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Record Select")); + rechrnLabel.setText("HRN:"); + + rechrnTextField.setText("planetlab.jp.osaka.tokyobranch"); + + rectypeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "-", "user", "slice", "node", "SA", "MA" })); + rectypeCombo.addItemListener(new java.awt.event.ItemListener() { + public void itemStateChanged(java.awt.event.ItemEvent evt) { + rectypeComboItemStateChanged(evt); + } + }); + + rectypeLabel.setText("Type:"); + + jButton1.setText("register"); + jButton1.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseReleased(java.awt.event.MouseEvent evt) { + jButton1MouseReleased(evt); + } + }); + + jButton2.setText("remove"); + jButton2.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseReleased(java.awt.event.MouseEvent evt) { + jButton2MouseReleased(evt); + } + }); + + jButton3.setText("update"); + jButton3.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseReleased(java.awt.event.MouseEvent evt) { + jButton3MouseReleased(evt); + } + }); + + jButton4.setText("lookup"); + jButton4.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseReleased(java.awt.event.MouseEvent evt) { + jButton4MouseReleased(evt); + } + }); + + org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2); + jPanel2.setLayout(jPanel2Layout); + jPanel2Layout.setHorizontalGroup( + jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel2Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel2Layout.createSequentialGroup() + .add(rechrnLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(rechrnTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 271, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(jPanel2Layout.createSequentialGroup() + .add(rectypeLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel2Layout.createSequentialGroup() + .add(jButton1) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jButton2) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jButton3) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jButton4)) + .add(rectypeCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))) + .addContainerGap(30, Short.MAX_VALUE)) + ); + jPanel2Layout.setVerticalGroup( + jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel2Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(rechrnLabel) + .add(rechrnTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(rectypeCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(rectypeLabel)) + .add(27, 27, 27) + .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jButton1) + .add(jButton2) + .add(jButton3) + .add(jButton4)) + .addContainerGap(22, Short.MAX_VALUE)) + ); + + statusLabel.setVerticalAlignment(javax.swing.SwingConstants.TOP); + statusLabel.setAutoscrolls(true); + + org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(layout.createSequentialGroup() + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup() + .addContainerGap() + .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .add(org.jdesktop.layout.GroupLayout.LEADING, jInternalFrame1) + .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup() + .addContainerGap() + .add(statusLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 857, Short.MAX_VALUE))) + .add(28, 28, 28)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(layout.createSequentialGroup() + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) + .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(statusLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jInternalFrame1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(153, 153, 153)) + ); + pack(); + }// //GEN-END:initComponents + + private void jButton4MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton4MouseReleased +// TODO add your handling code here: + passCallToHandler("lookup"); + }//GEN-LAST:event_jButton4MouseReleased + + private void jButton3MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton3MouseReleased +// TODO add your handling code here: + passCallToHandler("update"); + }//GEN-LAST:event_jButton3MouseReleased + + private void jButton2MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton2MouseReleased +// TODO add your handling code here: + passCallToHandler("remove"); + + }//GEN-LAST:event_jButton2MouseReleased + + private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseReleased +// TODO add your handling code here: + passCallToHandler("register"); + + }//GEN-LAST:event_jButton1MouseReleased + + private void formMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseReleased +// TODO add your handling code here: + + }//GEN-LAST:event_formMouseReleased + + private void rectypeComboItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_rectypeComboItemStateChanged +// TODO add your handling code here: + + jInternalFrame1.setSize(500,800); + jInternalFrame1.revalidate(); + jInternalFrame1.repaint(); + + int selected = rectypeCombo.getSelectedIndex(); + if (selected == 1){ + jPanel4.setVisible(true); + jPanel5.setVisible(false); + jPanel6.setVisible(false); + jPanel7.setVisible(false); + } + else if (selected == 2){ + jPanel5.setVisible(true); + jPanel4.setVisible(false); + jPanel6.setVisible(false); + jPanel7.setVisible(false); + } + else if (selected == 3){ + jPanel6.setVisible(true); + jPanel4.setVisible(false); + jPanel5.setVisible(false); + jPanel7.setVisible(false); + } + else if (selected == 4 || selected == 5){ + jPanel7.setVisible(true); + jPanel4.setVisible(false); + jPanel5.setVisible(false); + jPanel6.setVisible(false); + } + }//GEN-LAST:event_rectypeComboItemStateChanged + + /** + * @param args the command line arguments + */ + public static void main(String args[]) { + java.awt.EventQueue.invokeLater(new Runnable() { + public void run() { + new GeniGUI().setVisible(true); + } + }); + } + + private PanelFiller panelfiller; + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel dirLabel; + private javax.swing.JTextField dirTextField; + private javax.swing.JLabel hrnLabel; + private javax.swing.JTextField hrnTextField; + private javax.swing.JButton jButton1; + private javax.swing.JButton jButton2; + private javax.swing.JButton jButton3; + private javax.swing.JButton jButton4; + private javax.swing.JInternalFrame jInternalFrame1; + private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanel2; + private javax.swing.JPanel jPanel3; + private javax.swing.JPanel jPanel4; + private javax.swing.JPanel jPanel5; + private javax.swing.JPanel jPanel6; + private javax.swing.JPanel jPanel7; + private javax.swing.JLabel rechrnLabel; + private javax.swing.JTextField rechrnTextField; + private javax.swing.JComboBox rectypeCombo; + private javax.swing.JLabel rectypeLabel; + private javax.swing.JLabel statusLabel; + private javax.swing.JComboBox typeCombo; + private javax.swing.JLabel typeLabel; + // End of variables declaration//GEN-END:variables + +} diff --git a/gui/JavaApplication1/src/javaapplication1/GuiComponent.java b/gui/JavaApplication1/src/javaapplication1/GuiComponent.java new file mode 100644 index 00000000..40e9b7cc --- /dev/null +++ b/gui/JavaApplication1/src/javaapplication1/GuiComponent.java @@ -0,0 +1,119 @@ +/* + * GuiComponent.java + * + * Created on March 29, 2008, 2:45 AM + * + * To change this template, choose Tools | Template Manager + * and open the template in the editor. + */ + +package javaapplication1; + +/** + * + * @author soners + */ +public class GuiComponent { + + /** Creates a new instance of GuiComponent */ + public GuiComponent(String name, String[] property, String type, String label, String defaultVal) { + this.name = name; + this.property = property; + this.type = type; + this.label = label; + this.value = defaultVal; + + } + private String[] property; + private String type; + private String label; + private String value; + + /** + * Holds value of property name. + */ + private String name; + + /** + * Getter for property name. + * @return Value of property name. + */ + public String getName() { + return this.name; + } + + /** + * Setter for property name. + * @param name New value of property name. + */ + public void setName(String name) { + this.name = name; + } + + /** + * Getter for property property. + * @return Value of property property. + */ + public String[] getProperty() { + return this.property; + } + + /** + * Setter for property property. + * @param property New value of property property. + */ + public void setProperty(String[] property) { + this.property = property; + } + + /** + * Getter for property type. + * @return Value of property type. + */ + public String getType() { + return this.type; + } + + /** + * Setter for property type. + * @param type New value of property type. + */ + public void setType(String type) { + this.type = type; + } + + /** + * Getter for property label. + * @return Value of property label. + */ + public String getLabel() { + return this.label; + } + + /** + * Setter for property label. + * @param label New value of property label. + */ + public void setLabel(String label) { + this.label = label; + } + + /** + * Getter for property value. + * + * @return Value of property value. + */ + public String getValue() { + return this.value; + } + + /** + * Setter for property value. + * + * @param value New value of property value. + */ + public void setValue(String defaultVal) { + this.value = defaultVal; + } + +} diff --git a/gui/JavaApplication1/src/javaapplication1/PanelFiller.java b/gui/JavaApplication1/src/javaapplication1/PanelFiller.java new file mode 100644 index 00000000..17d5d11d --- /dev/null +++ b/gui/JavaApplication1/src/javaapplication1/PanelFiller.java @@ -0,0 +1,248 @@ +/* + * PanelFiller.java + * + * Created on March 29, 2008, 10:45 PM + * + * To change this template, choose Tools | Template Manager + * and open the template in the editor. + */ + +package javaapplication1; + +import java.io.*; +import javax.swing.*; +import javax.swing.JOptionPane; + +/** + * + * @author soners + */ +public class PanelFiller { + + /** Creates a new instance of PanelFiller */ + public PanelFiller(JPanel[] panelList, JLabel statusLabel) { + panel1 = panelList[0]; + panel2 = panelList[1]; + panel3 = panelList[2]; + panel4 = panelList[3]; + panel5 = panelList[4]; + this.statusLabel = statusLabel; + + try{ + rtime = Runtime.getRuntime(); + child = rtime.exec("/bin/bash"); + outCommand = new BufferedWriter(new OutputStreamWriter(child.getOutputStream())); + }catch (Exception e){ + JOptionPane.showMessageDialog(null, "The program cannot start bash.\n"); + return; + } + + displayHandle = new DisplayHandle(outCommand); + } + + public void handleOperation(String opname){ + + JPanel curpanel = null; + String type = record.getType(); + if (type.equals("user")) + curpanel = panel2; + else if (type.equals("slice")) + curpanel = panel3; + else if (type.equals("node")) + curpanel = panel4; + else if (type.equals("SA")){ + curpanel = panel5; + type = "SA/MA"; + } + else if (type.equals("MA")){ + curpanel = panel5; + type = "SA/MA"; + } + + if (opname.equals("register")){ + String params = displayHandle.PanelToString(type, curpanel); + String rest = params.substring(12); + if (rest.charAt(0)=='}') + params = "'g_params':{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"'"+rest; + else + params = "'g_params':{'hrn':'"+record.getHrn()+"', 'type':'"+record.getType()+"', "+rest; + String message = "{'opname':'"+opname+"', "+params+"}"; + String result = SendToClientStub(message); + String[] res_arr = result.split("\n"); + String send_str = ""; + for (int i=0; i 0){ + + String status_str = ""; + for (int i=0; i 0){ + result += tmp+"\n"; + tmp = in.readLine(); + } + in.close(); + + outCommand.write("rm tmp_input.txt tmp_output.txt\n"); + outCommand.write("cd "+curdir+"\n"); + outCommand.flush(); + }catch (Exception e){//Catch exception if any + System.err.println("Error: " + e.getMessage()); + result = "Problem occured in client stub.\n"; + return result; + } + return result; + } + + public void initializePanels(){ + displayHandle.displayComponentList("user",panel1, panel2); + displayHandle.displayComponentList("slice",panel1, panel3); + displayHandle.displayComponentList("node",panel1, panel4); + displayHandle.displayComponentList("SA/MA",panel1, panel5); + } + + public void setUser(User user){ + this.user = user; + } + public void setRecord(RecordInfo record){ + this.record = record; + } + + private User user; + private RecordInfo record; + private javax.swing.JPanel panel1; + private javax.swing.JPanel panel2; + private javax.swing.JPanel panel3; + private javax.swing.JPanel panel4; + private javax.swing.JPanel panel5; + private javax.swing.JLabel statusLabel; + + private BufferedWriter outCommand; + private Runtime rtime; + private Process child; + + private DisplayHandle displayHandle; + +} + + diff --git a/gui/JavaApplication1/src/javaapplication1/RecordInfo.java b/gui/JavaApplication1/src/javaapplication1/RecordInfo.java new file mode 100644 index 00000000..6af39f30 --- /dev/null +++ b/gui/JavaApplication1/src/javaapplication1/RecordInfo.java @@ -0,0 +1,71 @@ +/* + * RecordInfo.java + * + * Created on March 30, 2008, 12:07 AM + * + * To change this template, choose Tools | Template Manager + * and open the template in the editor. + */ + +package javaapplication1; +import javax.swing.*; + +/** + * + * @author soners + */ +public class RecordInfo { + + /** Creates a new instance of RecordInfo */ + public RecordInfo() { + } + + public void setCurrentRecord(String hrn, String type){ + this.hrn = hrn; + this.type = type; + } + + + /** + * Holds value of property hrn. + */ + private String hrn; + + /** + * Getter for property hrn. + * @return Value of property hrn. + */ + public String getHrn() { + return this.hrn; + } + + /** + * Setter for property hrn. + * @param hrn New value of property hrn. + */ + public void setHrn(String hrn) { + this.hrn = hrn; + } + + /** + * Holds value of property type. + */ + private String type; + + /** + * Getter for property type. + * @return Value of property type. + */ + public String getType() { + return this.type; + } + + /** + * Setter for property type. + * @param type New value of property type. + */ + public void setType(String type) { + this.type = type; + } + +} diff --git a/gui/JavaApplication1/src/javaapplication1/SpringUtilities.java b/gui/JavaApplication1/src/javaapplication1/SpringUtilities.java new file mode 100644 index 00000000..f2eb8ccb --- /dev/null +++ b/gui/JavaApplication1/src/javaapplication1/SpringUtilities.java @@ -0,0 +1,224 @@ +package javaapplication1; +/* + * Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of Sun Microsystems nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import javax.swing.*; +import javax.swing.SpringLayout; +import java.awt.*; + +/** + * A 1.4 file that provides utility methods for + * creating form- or grid-style layouts with SpringLayout. + * These utilities are used by several programs, such as + * SpringBox and SpringCompactGrid. + */ +public class SpringUtilities { + /** + * A debugging utility that prints to stdout the component's + * minimum, preferred, and maximum sizes. + */ + public static void printSizes(Component c) { + System.out.println("minimumSize = " + c.getMinimumSize()); + System.out.println("preferredSize = " + c.getPreferredSize()); + System.out.println("maximumSize = " + c.getMaximumSize()); + } + + /** + * Aligns the first rows * cols + * components of parent in + * a grid. Each component is as big as the maximum + * preferred width and height of the components. + * The parent is made just big enough to fit them all. + * + * @param rows number of rows + * @param cols number of columns + * @param initialX x location to start the grid at + * @param initialY y location to start the grid at + * @param xPad x padding between cells + * @param yPad y padding between cells + */ + public static void makeGrid(Container parent, + int rows, int cols, + int initialX, int initialY, + int xPad, int yPad) { + SpringLayout layout; + try { + layout = (SpringLayout)parent.getLayout(); + } catch (ClassCastException exc) { + System.err.println("The first argument to makeGrid must use SpringLayout."); + return; + } + + Spring xPadSpring = Spring.constant(xPad); + Spring yPadSpring = Spring.constant(yPad); + Spring initialXSpring = Spring.constant(initialX); + Spring initialYSpring = Spring.constant(initialY); + int max = rows * cols; + + //Calculate Springs that are the max of the width/height so that all + //cells have the same size. + Spring maxWidthSpring = layout.getConstraints(parent.getComponent(0)). + getWidth(); + Spring maxHeightSpring = layout.getConstraints(parent.getComponent(0)). + getWidth(); + for (int i = 1; i < max; i++) { + SpringLayout.Constraints cons = layout.getConstraints( + parent.getComponent(i)); + + maxWidthSpring = Spring.max(maxWidthSpring, cons.getWidth()); + maxHeightSpring = Spring.max(maxHeightSpring, cons.getHeight()); + } + + //Apply the new width/height Spring. This forces all the + //components to have the same size. + for (int i = 0; i < max; i++) { + SpringLayout.Constraints cons = layout.getConstraints( + parent.getComponent(i)); + + cons.setWidth(maxWidthSpring); + cons.setHeight(maxHeightSpring); + } + + //Then adjust the x/y constraints of all the cells so that they + //are aligned in a grid. + SpringLayout.Constraints lastCons = null; + SpringLayout.Constraints lastRowCons = null; + for (int i = 0; i < max; i++) { + SpringLayout.Constraints cons = layout.getConstraints( + parent.getComponent(i)); + if (i % cols == 0) { //start of new row + lastRowCons = lastCons; + cons.setX(initialXSpring); + } else { //x position depends on previous component + cons.setX(Spring.sum(lastCons.getConstraint(SpringLayout.EAST), + xPadSpring)); + } + + if (i / cols == 0) { //first row + cons.setY(initialYSpring); + } else { //y position depends on previous row + cons.setY(Spring.sum(lastRowCons.getConstraint(SpringLayout.SOUTH), + yPadSpring)); + } + lastCons = cons; + } + + //Set the parent's size. + SpringLayout.Constraints pCons = layout.getConstraints(parent); + pCons.setConstraint(SpringLayout.SOUTH, + Spring.sum( + Spring.constant(yPad), + lastCons.getConstraint(SpringLayout.SOUTH))); + pCons.setConstraint(SpringLayout.EAST, + Spring.sum( + Spring.constant(xPad), + lastCons.getConstraint(SpringLayout.EAST))); + } + + /* Used by makeCompactGrid. */ + private static SpringLayout.Constraints getConstraintsForCell( + int row, int col, + Container parent, + int cols) { + SpringLayout layout = (SpringLayout) parent.getLayout(); + Component c = parent.getComponent(row * cols + col); + return layout.getConstraints(c); + } + + /** + * Aligns the first rows * cols + * components of parent in + * a grid. Each component in a column is as wide as the maximum + * preferred width of the components in that column; + * height is similarly determined for each row. + * The parent is made just big enough to fit them all. + * + * @param rows number of rows + * @param cols number of columns + * @param initialX x location to start the grid at + * @param initialY y location to start the grid at + * @param xPad x padding between cells + * @param yPad y padding between cells + */ + public static void makeCompactGrid(Container parent, + int rows, int cols, + int initialX, int initialY, + int xPad, int yPad) { + SpringLayout layout; + try { + layout = (SpringLayout)parent.getLayout(); + } catch (ClassCastException exc) { + System.err.println("The first argument to makeCompactGrid must use SpringLayout."); + return; + } + + //Align all cells in each column and make them the same width. + Spring x = Spring.constant(initialX); + for (int c = 0; c < cols; c++) { + Spring width = Spring.constant(0); + for (int r = 0; r < rows; r++) { + width = Spring.max(width, + getConstraintsForCell(r, c, parent, cols). + getWidth()); + } + for (int r = 0; r < rows; r++) { + SpringLayout.Constraints constraints = + getConstraintsForCell(r, c, parent, cols); + constraints.setX(x); + constraints.setWidth(width); + } + x = Spring.sum(x, Spring.sum(width, Spring.constant(xPad))); + } + + //Align all cells in each row and make them the same height. + Spring y = Spring.constant(initialY); + for (int r = 0; r < rows; r++) { + Spring height = Spring.constant(0); + for (int c = 0; c < cols; c++) { + height = Spring.max(height, + getConstraintsForCell(r, c, parent, cols). + getHeight()); + } + for (int c = 0; c < cols; c++) { + SpringLayout.Constraints constraints = + getConstraintsForCell(r, c, parent, cols); + constraints.setY(y); + constraints.setHeight(height); + } + y = Spring.sum(y, Spring.sum(height, Spring.constant(yPad))); + } + + //Set the parent's size. + SpringLayout.Constraints pCons = layout.getConstraints(parent); + pCons.setConstraint(SpringLayout.SOUTH, y); + pCons.setConstraint(SpringLayout.EAST, x); + } +} diff --git a/gui/JavaApplication1/src/javaapplication1/User.java b/gui/JavaApplication1/src/javaapplication1/User.java new file mode 100644 index 00000000..336749f2 --- /dev/null +++ b/gui/JavaApplication1/src/javaapplication1/User.java @@ -0,0 +1,92 @@ +/* + * User.java + * + * Created on March 29, 2008, 11:36 PM + * + * To change this template, choose Tools | Template Manager + * and open the template in the editor. + */ + +package javaapplication1; +import javax.swing.*; +/** + * + * @author soners + */ +public class User { + + /** Creates a new instance of User */ + public User() { + } + + public void setCurrentUser(String hrn, String type, String directory){ + this.hrn = hrn; + this.type = type; + this.directory = directory; + } + + /** + * Holds value of property hrn. + */ + private String hrn; + + /** + * Getter for property hrn. + * @return Value of property hrn. + */ + public String getHrn() { + return this.hrn; + } + + /** + * Setter for property hrn. + * @param hrn New value of property hrn. + */ + public void setHrn(String hrn) { + this.hrn = hrn; + } + + + /** + * Holds value of property type. + */ + private String type; + + /** + * Getter for property type. + * @return Value of property type. + */ + public String getType() { + return this.type; + } + + /** + * Setter for property type. + * @param type New value of property type. + */ + public void setType(String type) { + this.type = type; + } + + /** + * Holds value of property directory. + */ + private String directory; + + /** + * Getter for property directory. + * @return Value of property directory. + */ + public String getDirectory() { + return this.directory; + } + + /** + * Setter for property directory. + * @param directory New value of property directory. + */ + public void setDirectory(String directory) { + this.directory = directory; + } + +} diff --git a/gui/JavaApplication1/test/NewJFrame.form b/gui/JavaApplication1/test/NewJFrame.form new file mode 100644 index 00000000..bc1510ba --- /dev/null +++ b/gui/JavaApplication1/test/NewJFrame.form @@ -0,0 +1,1037 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/gui/JavaApplication1/test/NewJFrame.java b/gui/JavaApplication1/test/NewJFrame.java new file mode 100644 index 00000000..ba492038 --- /dev/null +++ b/gui/JavaApplication1/test/NewJFrame.java @@ -0,0 +1,1221 @@ +/* + * NewJFrame.java + * + * Created on March 24, 2008, 8:22 PM + */ + +import java.io.*; +import javax.swing.JOptionPane; + +/** + * + * @author soners + */ +public class NewJFrame extends javax.swing.JFrame { + + /** Creates new form NewJFrame */ + public NewJFrame() { + initComponents(); + + jPanel6.setVisible(false); + jPanel7.setVisible(false); + jPanel2.setVisible(false); + + //public key prompt will be visible for only register and update + jLabel31.setVisible(false); + jTextField20.setVisible(false); + + try{ + rtime = Runtime.getRuntime(); + child = rtime.exec("/bin/bash"); + outCommand = new BufferedWriter(new OutputStreamWriter(child.getOutputStream())); + }catch (Exception e){ + JOptionPane.showMessageDialog(null, "The program cannot start bash.\n"); + return; + } + + } + + /** This method is called from within the constructor to + * initialize the form. + * WARNING: Do NOT modify this code. The content of this method is + * always regenerated by the Form Editor. + */ + // //GEN-BEGIN:initComponents + private void initComponents() { + jPanel1 = new javax.swing.JPanel(); + jLabel1 = new javax.swing.JLabel(); + jTextField1 = new javax.swing.JTextField(); + jComboBox1 = new javax.swing.JComboBox(); + jTextField24 = new javax.swing.JTextField(); + jLabel29 = new javax.swing.JLabel(); + jLabel30 = new javax.swing.JLabel(); + jPanel4 = new javax.swing.JPanel(); + jLabel2 = new javax.swing.JLabel(); + jTextField2 = new javax.swing.JTextField(); + jComboBox2 = new javax.swing.JComboBox(); + jPanel3 = new javax.swing.JPanel(); + jToggleButton6 = new javax.swing.JToggleButton(); + jToggleButton7 = new javax.swing.JToggleButton(); + jToggleButton8 = new javax.swing.JToggleButton(); + jToggleButton9 = new javax.swing.JToggleButton(); + jLabel28 = new javax.swing.JLabel(); + jLabel31 = new javax.swing.JLabel(); + jTextField20 = new javax.swing.JTextField(); + jButton1 = new javax.swing.JButton(); + jInternalFrame1 = new javax.swing.JInternalFrame(); + jPanel6 = new javax.swing.JPanel(); + jLabel7 = new javax.swing.JLabel(); + jLabel8 = new javax.swing.JLabel(); + jLabel9 = new javax.swing.JLabel(); + jLabel10 = new javax.swing.JLabel(); + jLabel11 = new javax.swing.JLabel(); + jLabel12 = new javax.swing.JLabel(); + jLabel13 = new javax.swing.JLabel(); + jLabel14 = new javax.swing.JLabel(); + jLabel15 = new javax.swing.JLabel(); + jLabel16 = new javax.swing.JLabel(); + jTextField6 = new javax.swing.JTextField(); + jTextField7 = new javax.swing.JTextField(); + jTextField8 = new javax.swing.JTextField(); + jTextField9 = new javax.swing.JTextField(); + jTextField10 = new javax.swing.JTextField(); + jTextField11 = new javax.swing.JTextField(); + jTextField12 = new javax.swing.JTextField(); + jComboBox4 = new javax.swing.JComboBox(); + jTextField21 = new javax.swing.JTextField(); + jComboBox5 = new javax.swing.JComboBox(); + jPanel7 = new javax.swing.JPanel(); + jLabel6 = new javax.swing.JLabel(); + jLabel25 = new javax.swing.JLabel(); + jLabel26 = new javax.swing.JLabel(); + jLabel27 = new javax.swing.JLabel(); + jComboBox3 = new javax.swing.JComboBox(); + jTextField22 = new javax.swing.JTextField(); + jScrollPane1 = new javax.swing.JScrollPane(); + jTextArea1 = new javax.swing.JTextArea(); + jTextField23 = new javax.swing.JTextField(); + jPanel2 = new javax.swing.JPanel(); + jTextField3 = new javax.swing.JTextField(); + jLabel3 = new javax.swing.JLabel(); + jLabel4 = new javax.swing.JLabel(); + jLabel5 = new javax.swing.JLabel(); + jTextField4 = new javax.swing.JTextField(); + jTextField5 = new javax.swing.JTextField(); + jLabel32 = new javax.swing.JLabel(); + jTextField25 = new javax.swing.JTextField(); + jPanel5 = new javax.swing.JPanel(); + jLabel17 = new javax.swing.JLabel(); + jLabel18 = new javax.swing.JLabel(); + jLabel19 = new javax.swing.JLabel(); + jLabel20 = new javax.swing.JLabel(); + jLabel21 = new javax.swing.JLabel(); + jLabel22 = new javax.swing.JLabel(); + jLabel23 = new javax.swing.JLabel(); + jLabel24 = new javax.swing.JLabel(); + jTextField13 = new javax.swing.JTextField(); + jTextField14 = new javax.swing.JTextField(); + jTextField15 = new javax.swing.JTextField(); + jTextField16 = new javax.swing.JTextField(); + jTextField17 = new javax.swing.JTextField(); + jTextField18 = new javax.swing.JTextField(); + jTextField19 = new javax.swing.JTextField(); + jScrollPane2 = new javax.swing.JScrollPane(); + jTextArea2 = new javax.swing.JTextArea(); + jLabel33 = new javax.swing.JLabel(); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("User Info")); + jPanel1.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseReleased(java.awt.event.MouseEvent evt) { + jPanel1MouseReleased(evt); + } + }); + + jLabel1.setText("Enter your HRN:"); + + jTextField1.setText("planetlab.jp.osaka"); + + jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "user", "SA", "MA" })); + + jTextField24.setText("./client_osaka"); + + jLabel29.setText("Type:"); + + jLabel30.setText("User GENI directory:"); + + org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1); + jPanel1.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup( + jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(jLabel29) + .add(jLabel1)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jComboBox1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 212, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(61, 61, 61) + .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jLabel30) + .add(jTextField24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 173, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(39, 39, 39)) + ); + jPanel1Layout.setVerticalGroup( + jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel1Layout.createSequentialGroup() + .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel1) + .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jLabel30)) + .add(8, 8, 8) + .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jComboBox1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jTextField24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jLabel29)) + .addContainerGap()) + ); + + jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("GENI Parameters")); + jLabel2.setText("HRN:"); + + jTextField2.setText("planetlab.jp.osaka.tokyobranch"); + + jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "-", "user", "slice", "node", "SA", "MA" })); + jComboBox2.addItemListener(new java.awt.event.ItemListener() { + public void itemStateChanged(java.awt.event.ItemEvent evt) { + jComboBox2ItemStateChanged(evt); + } + }); + + jToggleButton6.setText("register"); + jToggleButton6.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseReleased(java.awt.event.MouseEvent evt) { + jToggleButton6MouseReleased(evt); + } + }); + + jToggleButton7.setText("remove"); + jToggleButton7.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseReleased(java.awt.event.MouseEvent evt) { + jToggleButton7MouseReleased(evt); + } + }); + + jToggleButton8.setText("update"); + jToggleButton8.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseReleased(java.awt.event.MouseEvent evt) { + jToggleButton8MouseReleased(evt); + } + }); + + jToggleButton9.setText("lookup"); + jToggleButton9.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseReleased(java.awt.event.MouseEvent evt) { + jToggleButton9MouseReleased(evt); + } + }); + + org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3); + jPanel3.setLayout(jPanel3Layout); + jPanel3Layout.setHorizontalGroup( + jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel3Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel3Layout.createSequentialGroup() + .add(jToggleButton6) + .addContainerGap()) + .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel3Layout.createSequentialGroup() + .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(org.jdesktop.layout.GroupLayout.LEADING, jToggleButton9, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 82, Short.MAX_VALUE) + .add(org.jdesktop.layout.GroupLayout.LEADING, jToggleButton7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 82, Short.MAX_VALUE)) + .add(106, 106, 106)) + .add(jPanel3Layout.createSequentialGroup() + .add(jToggleButton8, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 82, Short.MAX_VALUE) + .add(106, 106, 106)))) + ); + jPanel3Layout.setVerticalGroup( + jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel3Layout.createSequentialGroup() + .add(jToggleButton6) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jToggleButton7) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jToggleButton8) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jToggleButton9) + .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + + jLabel28.setText("Type:"); + + jLabel31.setText("Public Key:"); + + org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4); + jPanel4.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup( + jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel4Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) + .add(jPanel4Layout.createSequentialGroup() + .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jLabel28, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jTextField2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 271, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jComboBox2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) + .add(jPanel4Layout.createSequentialGroup() + .add(jLabel31) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jTextField20))) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(106, 106, 106)) + ); + jPanel4Layout.setVerticalGroup( + jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel4Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel2) + .add(jTextField2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jComboBox2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jLabel28)) + .add(17, 17, 17) + .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel31) + .add(jTextField20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) + .add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + ); + + jButton1.setText("Send"); + jButton1.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseReleased(java.awt.event.MouseEvent evt) { + jButton1MouseReleased(evt); + } + }); + + jInternalFrame1.setVisible(true); + jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("PL parameters for SA/MA")); + jLabel7.setText("Name:"); + + jLabel8.setText("Abbreviated Name:"); + + jLabel9.setText("URL:"); + + jLabel10.setText("Login Base:"); + + jLabel11.setText("Longitude:"); + + jLabel12.setText("Latitude:"); + + jLabel13.setText("Public:"); + + jLabel14.setText("Max Slices:"); + + jLabel15.setText("Max Slivers:"); + + jLabel16.setText("Enabled:"); + + jTextField6.setText("newname"); + + jTextField7.setText("abbname2"); + + jTextField8.setText("rand.com"); + + jTextField9.setText("my_loginbase4"); + + jTextField10.setText("44.4"); + + jTextField11.setText("66.6"); + + jTextField12.setText("10"); + + jComboBox4.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Yes", "No" })); + + jTextField21.setText("300"); + + jComboBox5.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Yes", "No" })); + + org.jdesktop.layout.GroupLayout jPanel6Layout = new org.jdesktop.layout.GroupLayout(jPanel6); + jPanel6.setLayout(jPanel6Layout); + jPanel6Layout.setHorizontalGroup( + jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel6Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup() + .add(jLabel11) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 63, Short.MAX_VALUE) + .add(jTextField10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup() + .add(jLabel10) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 58, Short.MAX_VALUE) + .add(jTextField9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup() + .add(jLabel9) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 102, Short.MAX_VALUE) + .add(jTextField8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup() + .add(jLabel8) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(jTextField7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel6Layout.createSequentialGroup() + .add(jLabel7) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 91, Short.MAX_VALUE) + .add(jTextField6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(jPanel6Layout.createSequentialGroup() + .add(jLabel12) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 75, Short.MAX_VALUE) + .add(jTextField11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(jPanel6Layout.createSequentialGroup() + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jLabel15) + .add(jLabel16)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 56, Short.MAX_VALUE) + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jComboBox5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jTextField21, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) + .add(jPanel6Layout.createSequentialGroup() + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jLabel14) + .add(jLabel13)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 62, Short.MAX_VALUE) + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jComboBox4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jTextField12, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))) + .addContainerGap(36, Short.MAX_VALUE)) + ); + jPanel6Layout.setVerticalGroup( + jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel6Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel6Layout.createSequentialGroup() + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel7) + .add(jTextField6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel8) + .add(jTextField7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel9) + .add(jTextField8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel10) + .add(jTextField9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel11) + .add(jTextField10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel12) + .add(jTextField11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addContainerGap()) + .add(jPanel6Layout.createSequentialGroup() + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel13) + .add(jComboBox4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel14) + .add(jTextField12, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel15) + .add(jTextField21, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel16) + .add(jComboBox5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(150, 150, 150)))) + ); + + jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("PL Parameters for slice")); + jLabel6.setText("Instantiation:"); + + jLabel25.setText("URL:"); + + jLabel26.setText("Description:"); + + jLabel27.setText("Max Nodes:"); + + jComboBox3.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "plc-instantiated", "delegated" })); + + jTextArea1.setColumns(20); + jTextArea1.setRows(5); + jScrollPane1.setViewportView(jTextArea1); + + jTextField23.setText("10"); + + org.jdesktop.layout.GroupLayout jPanel7Layout = new org.jdesktop.layout.GroupLayout(jPanel7); + jPanel7.setLayout(jPanel7Layout); + jPanel7Layout.setHorizontalGroup( + jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel7Layout.createSequentialGroup() + .add(25, 25, 25) + .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jLabel25) + .add(jLabel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jLabel26) + .add(jLabel27)) + .add(43, 43, 43) + .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jComboBox3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false) + .add(org.jdesktop.layout.GroupLayout.LEADING, jTextField22) + .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 235, Short.MAX_VALUE)) + .add(jTextField23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 56, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(191, Short.MAX_VALUE)) + ); + jPanel7Layout.setVerticalGroup( + jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel7Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel6) + .add(jComboBox3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel25) + .add(jTextField22, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel7Layout.createSequentialGroup() + .add(7, 7, 7) + .add(jLabel26)) + .add(jPanel7Layout.createSequentialGroup() + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 58, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) + .add(16, 16, 16) + .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel27) + .add(jTextField23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(18, Short.MAX_VALUE)) + ); + + jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("PL Parameters for node")); + jTextField3.setText("boot"); + + jLabel3.setText("Bootstate:"); + + jLabel4.setText("Version:"); + + jLabel5.setText("Model:"); + + jTextField4.setText("PlanetLab BootCD 3.1"); + + jTextField5.setText("Dell OptiPlex GX280"); + + jLabel32.setText("Hostname:"); + + org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2); + jPanel2.setLayout(jPanel2Layout); + jPanel2Layout.setHorizontalGroup( + jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel2Layout.createSequentialGroup() + .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) + .add(jPanel2Layout.createSequentialGroup() + .add(jLabel3) + .add(23, 23, 23) + .add(jTextField3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(jPanel2Layout.createSequentialGroup() + .add(jLabel32) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(jTextField25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jLabel5) + .add(jLabel4)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jTextField4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jTextField5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(102, Short.MAX_VALUE)) + ); + jPanel2Layout.setVerticalGroup( + jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel2Layout.createSequentialGroup() + .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel2Layout.createSequentialGroup() + .add(30, 30, 30) + .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel4) + .add(jTextField4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jLabel32) + .add(jTextField25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jLabel3)) + .add(jPanel2Layout.createSequentialGroup() + .add(55, 55, 55) + .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel5) + .add(jTextField5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jTextField3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))) + .addContainerGap(24, Short.MAX_VALUE)) + ); + + jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("PL Parameters for user")); + jLabel17.setText("First name:"); + + jLabel18.setText("Last name:"); + + jLabel19.setText("Title:"); + + jLabel20.setText("Email:"); + + jLabel21.setText("Password:"); + + jLabel22.setText("Phone:"); + + jLabel23.setText("URL:"); + + jLabel24.setText("Bio:"); + + jTextArea2.setColumns(20); + jTextArea2.setRows(5); + jScrollPane2.setViewportView(jTextArea2); + + org.jdesktop.layout.GroupLayout jPanel5Layout = new org.jdesktop.layout.GroupLayout(jPanel5); + jPanel5.setLayout(jPanel5Layout); + jPanel5Layout.setHorizontalGroup( + jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel5Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jLabel17) + .add(jLabel18) + .add(jLabel19) + .add(jLabel20)) + .add(28, 28, 28) + .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jTextField16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jTextField15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jTextField14, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jTextField13, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(22, 22, 22) + .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jLabel24) + .add(jLabel23) + .add(jLabel22) + .add(jLabel21)) + .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(jPanel5Layout.createSequentialGroup() + .add(21, 21, 21) + .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jTextField18, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jTextField17, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jTextField19, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 155, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(59, Short.MAX_VALUE)) + .add(jPanel5Layout.createSequentialGroup() + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 202, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addContainerGap()))) + ); + jPanel5Layout.setVerticalGroup( + jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel5Layout.createSequentialGroup() + .add(19, 19, 19) + .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel17) + .add(jTextField13, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jLabel21) + .add(jTextField17, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel18) + .add(jTextField14, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jLabel22) + .add(jTextField18, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel19) + .add(jTextField15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jLabel23) + .add(jTextField19, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jLabel20) + .add(jTextField16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(jLabel24)) + .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE)) + .addContainerGap()) + ); + + org.jdesktop.layout.GroupLayout jInternalFrame1Layout = new org.jdesktop.layout.GroupLayout(jInternalFrame1.getContentPane()); + jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout); + jInternalFrame1Layout.setHorizontalGroup( + jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jInternalFrame1Layout.createSequentialGroup() + .add(jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(jPanel6, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(jPanel7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap()) + ); + jInternalFrame1Layout.setVerticalGroup( + jInternalFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jInternalFrame1Layout.createSequentialGroup() + .addContainerGap() + .add(jPanel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 207, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(19, 19, 19) + .add(jPanel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(22, 22, 22) + .add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addContainerGap(55, Short.MAX_VALUE)) + ); + + jLabel33.setFocusTraversalPolicyProvider(true); + jLabel33.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + + org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(layout.createSequentialGroup() + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(layout.createSequentialGroup() + .addContainerGap() + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 604, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) + .add(layout.createSequentialGroup() + .add(153, 153, 153) + .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 277, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(198, 198, 198)) + .add(layout.createSequentialGroup() + .addContainerGap() + .add(jInternalFrame1)) + .add(layout.createSequentialGroup() + .add(53, 53, 53) + .add(jLabel33, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 501, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(layout.createSequentialGroup() + .add(22, 22, 22) + .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 92, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jButton1) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jLabel33, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 33, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jInternalFrame1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(794, 794, 794)) + ); + pack(); + }// //GEN-END:initComponents + + private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseReleased +// TODO add your handling code here: + String operation = ""; + if (jToggleButton6.isSelected()) + operation = "register"; + else if (jToggleButton7.isSelected()) + operation = "remove"; + else if (jToggleButton8.isSelected()) + operation = "update"; + else + operation = "lookup"; + + //user data + String user_hrn = jTextField1.getText(); + String user_type = (String) jComboBox1.getSelectedItem(); + + //call data + String hrn = jTextField2.getText(); + String type = (String) jComboBox2.getSelectedItem(); + String pubkey = jTextField20.getText(); + + String gparams = ""; + String pparams = ""; + + if (type == "SA" || type == "MA"){ + String name = jTextField6.getText(); + String abbreviated_name = jTextField7.getText(); + String url = jTextField8.getText(); + String login_base = jTextField9.getText(); + String longitude = jTextField10.getText(); + String latitude = jTextField11.getText(); + String max_slices = jTextField12.getText(); + String max_slivers = jTextField21.getText(); + String is_public = ""; + String enabled = ""; + + + if ((String) jComboBox4.getSelectedItem() == "Yes") + is_public = "True"; + else + is_public = "False"; + if ((String) jComboBox5.getSelectedItem() == "Yes") + enabled = "True"; + else + enabled = "False"; + + if (pubkey == "") + gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"'}"; + else + gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"', 'pubkey':'"+pubkey+"'}"; + pparams = "{'name':'"+name+"', 'url':'"+url+"', 'login_base':'"+login_base+ + "', 'longitude':"+longitude+", 'latitude':"+latitude+", 'is_public':"+ + is_public+", 'abbreviated_name':'"+abbreviated_name+"', 'max_slices':"+max_slices+", 'max_slivers':"+ + max_slivers+", 'enabled':"+enabled+"}"; + } + else if (type == "slice"){ + String instantiation = (String) jComboBox3.getSelectedItem(); + String url = jTextField22.getText(); + String description = jTextArea1.getText(); + String max_nodes = jTextField23.getText(); + + if (pubkey == "") + gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"'}"; + else + gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"', 'pubkey':'"+pubkey+"'}"; + pparams = "{'instantiation':'"+instantiation+"', 'url':'"+url+"', 'description':'"+description+ + "', 'max_nodes':"+max_nodes+"}"; + + } + else if (type == "user"){ + String first_name = jTextField13.getText(); + String last_name = jTextField14.getText(); + String title = jTextField15.getText(); + String email = jTextField16.getText(); + String password = jTextField17.getText(); + String phone = jTextField18.getText(); + String url = jTextField19.getText(); + String bio = jTextArea2.getText(); + + if (pubkey.length() == 0) + gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"'}"; + else + gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"', 'pubkey':'"+pubkey+"'}"; + + pparams = "{'first_name':'"+first_name+"', 'last_name':'"+last_name+"', 'title':'"+title+ + "', 'email':'"+email+"', 'password':'"+password+"', 'phone':'"+phone+"', 'url':'"+url+ + "', 'bio':'"+bio+"'}"; + + } + else if (type == "node"){ + String hostname = jTextField25.getText(); + String boot_state = jTextField3.getText(); + String version = jTextField4.getText(); + String model = jTextField5.getText(); + + if (pubkey == "") + gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"'}"; + else + gparams = "{'hrn':'"+hrn+"', 'type':'"+type+"', 'pubkey':'"+pubkey+"'}"; + + pparams = "{'hostname':'"+hostname+"', 'boot_state':'"+boot_state+"', 'version':'"+version+ + "', 'model':'"+model+"'}"; + } + + String message = "{'opname':'"+operation+"', 'g_params':"+gparams+", 'p_params':"+pparams+"}"; + + //do the call to the python client + String curdir = System.getProperty("user.dir"); + String client_folder = jTextField24.getText(); + String result = ""; + + try{ + //cd to the client folder + outCommand.write("cd "+client_folder+"\n"); + outCommand.flush(); + + FileWriter fstream = new FileWriter(client_folder+"/tmp_input.txt"); + BufferedWriter out = new BufferedWriter(fstream); + out.write(user_hrn+" "+user_type+"\n"); + out.write(message); + //Close the output stream + out.close(); + outCommand.write("./clientstub.py\n"); + outCommand.flush(); + + //get the result of the call from the python client + File file = new File(client_folder+"/tmp_output.txt"); + int i = 0; + while(!file.exists() && i<5){ + i++; + try { + Thread.currentThread().sleep(200); + } catch (InterruptedException ex) { + ex.printStackTrace(); + result = "Problem occured in client stub.\n"; + jLabel33.setText(result); + return; + } + } + + try { + Thread.currentThread().sleep(200); + } catch (InterruptedException ex) { + ex.printStackTrace(); + result = "Problem occured in client stub.\n"; + jLabel33.setText(result); + return; + } + + BufferedReader in = new BufferedReader(new FileReader(client_folder+"/tmp_output.txt")); + result = in.readLine(); + in.close(); + + outCommand.write("rm tmp_input.txt tmp_output.txt\n"); + outCommand.write("cd "+curdir+"\n"); + outCommand.flush(); + }catch (Exception e){//Catch exception if any + System.err.println("Error: " + e.getMessage()); + result = "Problem occured in client stub.\n"; + jLabel33.setText(result); + return; + } + + if (operation == "lookup"){ + + + + //node fields +// {'pl': {'node_id': 10756, +// 'last_updated': 1206716001L, +// 'boot_state': u'boot', +// 'site_id': 10145, +// 'pcu_ids': [], +// 'session': None, +// 'key': None, +// 'conf_file_ids': [], +// 'ssh_rsa_key': None, +// 'uuid': u'154709652654203573378094948211939942919', +// 'nodegroup_ids': [], +// 'slice_ids_whitelist': [], +// 'last_contact': None, +// 'nodenetwork_ids': [], +// 'peer_node_id': None, +// 'hostname': u'tttyeni.com', +// 'slice_ids': [], +// 'boot_nonce': None, +// 'version': u'PlanetLab BootCD 3.1', +// 'date_created': 1206716001L, +// 'model': u'Dell OptiPlex GX280', +// 'peer_id': None, +// 'ports': []}, +// +// 'geni': {'description': None, +// 'rights': None, +// 'pubkey': None, +// 'wrapperurl': None, +// 'disabled': None, +// 'userlist': None, +// 'hrn': 'mynewnode', +// 'type': 'node', +// 'pointer': 10756, +// 'uuid': None}} + +//user fields +// {'pl': {'bio': None, +// 'last_name': u'Okawa', +// 'last_updated': 1170811781L, +// 'key_ids': [], +// 'phone': u'+81-466-49-3529', +// 'peer_person_id': None, +// 'role_ids': [20], +// 'site_ids': [10145], +// 'first_name': u'Keiko', +// 'uuid': u'53584984475370335298592451262408000792', +// 'roles': [u'pi'], +// 'title': u'Professor', +// 'url': None, +// 'enabled': True, +// 'slice_ids': [], +// 'person_id': 12397, +// 'date_created': 1170811781L, +// 'peer_id': None, +// 'email': u'keiko@sfc.wide.ad.jp'}, +// +// 'geni': {'description': None, +// 'rights': None, +// 'pubkey': '-----BEGIN RSA PRIVATE KEY-----\nMIGMAgEAAoGBAJccs4vXVSA5slLmlvx+2DPuSy2W0IP5RrUNIcp/wzVqdG9xWdLW\ns5nSv8g926tbFGvLcQqtoErAc7+oANxNWCO9cGJr/MUzjqOYWZQU92qXYdlCpbuL\n7lAVWkiJt8IYlRHe7BpCSSCaFgt7cUfv3fbuhmIDkT/7G/Ktl5NsvQgfAgMBAAE=\n-----END RSA PRIVATE KEY-----\n', +// 'wrapperurl': 'local', +// 'disabled': None, +// 'userlist': None, +// 'hrn': 'keiko', +// 'type': 'user', +// 'pointer': 12397, +// 'uuid': None}} +// + + +//slice fields +// {'pl': {'description': u'', +// 'node_ids': [], +// 'expires': 1207943671L, +// 'site_id': 10145, +// 'uuid': u'166270525633143177647274842267687147563', +// 'creator_person_id': 12974, +// 'instantiation': u'plc-instantiated', +// 'name': u'keio_keikoslc', +// 'slice_id': 15390, +// 'created': 1206734071L, +// 'url': u'', +// 'max_nodes': 10, +// 'person_ids': [], +// 'slice_attribute_ids': [], +// 'peer_slice_id': None, +// 'peer_id': None}, +// 'geni': {'description': None, +// 'rights': None, +// 'pubkey': None, +// 'wrapperurl': None, +// 'disabled': None, +// 'userlist': None, +// 'hrn': 'keikoslc', +// 'type': 'slice', +// 'pointer': 15390, +// 'uuid': None}} + +//site fields +// {'pl': {'last_updated': 1206743152L, +// 'node_ids': [], +// 'site_id': 10240, +// 'pcu_ids': [], +// 'max_slices': 10, +// 'ext_consortium_id': None, +// 'max_slivers': 300, +// 'is_public': True, +// 'peer_site_id': None, +// 'abbreviated_name': u'abbname2my', +// 'name': u'newnamere', +// 'address_ids': [], +// 'uuid': u'215768548793207591574508192043308034894', +// 'url': u'rand.com', +// 'person_ids': [], +// 'enabled': True, +// 'longitude': 44.399999999999999, +// 'slice_ids': [], +// 'login_base': u'tokyologinb', +// 'latitude': 66.599999999999994, +// 'date_created': 1206743152L, +// 'peer_id': None}, +// 'geni': {'description': None, +// 'rights': '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)#0:reg:slc:planetlab.jp.osaka#1:reg:slc:planetlab.jp.osaka.tokyobranch2', +// 'pubkey': '-----BEGIN RSA PRIVATE KEY-----\nMIGMAgEAAoGBANsAFcsPHdx1cEyChNljSHDp16vp9GjJBhOhD5/1jiaD8qfQgbcx\nIlMDGOROKJqeNCIk5yuuv46O4obai6MXCfGPnLCvBL7IeI95tImJt0NFg19wHe+I\nwDOabHRJCfSXYViuBDBJUuuMITLmK2cBIlY/lkPKYROXq9FMtht9dekzAgMBAAE=\n-----END RSA PRIVATE KEY-----\n', +// 'wrapperurl': 'local', +// 'disabled': None, +// 'userlist': None, +// 'hrn': 'tokyobranchty', +// 'type': 'SA', +// 'pointer': 10242, +// 'uuid': None}} +// + + + + } + + jLabel33.setText(result); + + }//GEN-LAST:event_jButton1MouseReleased + + private void jComboBox2ItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jComboBox2ItemStateChanged +// TODO add your handling code here: + + int selected = jComboBox2.getSelectedIndex(); + if (selected == 1){ + jPanel5.setVisible(true); + jPanel6.setVisible(false); + jPanel7.setVisible(false); + jPanel2.setVisible(false); + } + else if (selected == 2){ + jPanel7.setVisible(true); + jPanel5.setVisible(false); + jPanel6.setVisible(false); + jPanel2.setVisible(false); + } + else if (selected == 3){ + jPanel2.setVisible(true); + jPanel5.setVisible(false); + jPanel6.setVisible(false); + jPanel7.setVisible(false); + } + else if (selected == 4 || selected == 5){ + jPanel6.setVisible(true); + jPanel5.setVisible(false); + jPanel7.setVisible(false); + jPanel2.setVisible(false); + } + }//GEN-LAST:event_jComboBox2ItemStateChanged + + private void jToggleButton9MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jToggleButton9MouseReleased +// TODO add your handling code here: + jToggleButton6.setSelected(false); + jToggleButton7.setSelected(false); + jToggleButton8.setSelected(false); + if (!jToggleButton9.isSelected()) + jToggleButton9.setSelected(true); + + jLabel31.setVisible(false); + jTextField20.setVisible(false); + }//GEN-LAST:event_jToggleButton9MouseReleased + + private void jToggleButton8MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jToggleButton8MouseReleased +// TODO add your handling code here: + jToggleButton6.setSelected(false); + jToggleButton7.setSelected(false); + jToggleButton9.setSelected(false); + if (!jToggleButton8.isSelected()) + jToggleButton8.setSelected(true); + + jLabel31.setVisible(true); + jTextField20.setVisible(true); + + }//GEN-LAST:event_jToggleButton8MouseReleased + + private void jToggleButton7MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jToggleButton7MouseReleased +// TODO add your handling code here: + jToggleButton6.setSelected(false); + jToggleButton8.setSelected(false); + jToggleButton9.setSelected(false); + if (!jToggleButton7.isSelected()) + jToggleButton7.setSelected(true); + + jLabel31.setVisible(false); + jTextField20.setVisible(false); + }//GEN-LAST:event_jToggleButton7MouseReleased + + private void jToggleButton6MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jToggleButton6MouseReleased +// TODO add your handling code here: + jToggleButton7.setSelected(false); + jToggleButton8.setSelected(false); + jToggleButton9.setSelected(false); + if (!jToggleButton6.isSelected()) + jToggleButton6.setSelected(true); + + jLabel31.setVisible(true); + jTextField20.setVisible(true); + + }//GEN-LAST:event_jToggleButton6MouseReleased + + private void jPanel1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel1MouseReleased +// TODO add your handling code here: + + }//GEN-LAST:event_jPanel1MouseReleased + + /** + * @param args the command line arguments + */ + public static void main(String args[]) { + java.awt.EventQueue.invokeLater(new Runnable() { + public void run() { + new NewJFrame().setVisible(true); + } + }); + } + + //global for communicating the shell + private BufferedWriter outCommand = null; + private Runtime rtime = null; + private Process child = null; + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton jButton1; + private javax.swing.JComboBox jComboBox1; + private javax.swing.JComboBox jComboBox2; + private javax.swing.JComboBox jComboBox3; + private javax.swing.JComboBox jComboBox4; + private javax.swing.JComboBox jComboBox5; + private javax.swing.JInternalFrame jInternalFrame1; + private javax.swing.JLabel jLabel1; + private javax.swing.JLabel jLabel10; + private javax.swing.JLabel jLabel11; + private javax.swing.JLabel jLabel12; + private javax.swing.JLabel jLabel13; + private javax.swing.JLabel jLabel14; + private javax.swing.JLabel jLabel15; + private javax.swing.JLabel jLabel16; + private javax.swing.JLabel jLabel17; + private javax.swing.JLabel jLabel18; + private javax.swing.JLabel jLabel19; + private javax.swing.JLabel jLabel2; + private javax.swing.JLabel jLabel20; + private javax.swing.JLabel jLabel21; + private javax.swing.JLabel jLabel22; + private javax.swing.JLabel jLabel23; + private javax.swing.JLabel jLabel24; + private javax.swing.JLabel jLabel25; + private javax.swing.JLabel jLabel26; + private javax.swing.JLabel jLabel27; + private javax.swing.JLabel jLabel28; + private javax.swing.JLabel jLabel29; + private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel30; + private javax.swing.JLabel jLabel31; + private javax.swing.JLabel jLabel32; + private javax.swing.JLabel jLabel33; + private javax.swing.JLabel jLabel4; + private javax.swing.JLabel jLabel5; + private javax.swing.JLabel jLabel6; + private javax.swing.JLabel jLabel7; + private javax.swing.JLabel jLabel8; + private javax.swing.JLabel jLabel9; + private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanel2; + private javax.swing.JPanel jPanel3; + private javax.swing.JPanel jPanel4; + private javax.swing.JPanel jPanel5; + private javax.swing.JPanel jPanel6; + private javax.swing.JPanel jPanel7; + private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JScrollPane jScrollPane2; + private javax.swing.JTextArea jTextArea1; + private javax.swing.JTextArea jTextArea2; + private javax.swing.JTextField jTextField1; + private javax.swing.JTextField jTextField10; + private javax.swing.JTextField jTextField11; + private javax.swing.JTextField jTextField12; + private javax.swing.JTextField jTextField13; + private javax.swing.JTextField jTextField14; + private javax.swing.JTextField jTextField15; + private javax.swing.JTextField jTextField16; + private javax.swing.JTextField jTextField17; + private javax.swing.JTextField jTextField18; + private javax.swing.JTextField jTextField19; + private javax.swing.JTextField jTextField2; + private javax.swing.JTextField jTextField20; + private javax.swing.JTextField jTextField21; + private javax.swing.JTextField jTextField22; + private javax.swing.JTextField jTextField23; + private javax.swing.JTextField jTextField24; + private javax.swing.JTextField jTextField25; + private javax.swing.JTextField jTextField3; + private javax.swing.JTextField jTextField4; + private javax.swing.JTextField jTextField5; + private javax.swing.JTextField jTextField6; + private javax.swing.JTextField jTextField7; + private javax.swing.JTextField jTextField8; + private javax.swing.JTextField jTextField9; + private javax.swing.JToggleButton jToggleButton6; + private javax.swing.JToggleButton jToggleButton7; + private javax.swing.JToggleButton jToggleButton8; + private javax.swing.JToggleButton jToggleButton9; + // End of variables declaration//GEN-END:variables + +} diff --git a/server/component/planetlab/acc_file b/server/component/planetlab/acc_file new file mode 100644 index 00000000..46d4ddfd --- /dev/null +++ b/server/component/planetlab/acc_file @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDUwNVoXDTA4MDcyMTIxMzE0NVowGjEYMBYGA1UEAxMPR0VO +SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52Qb +JtucIQUEYZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5 +vxvHG/ba6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5 +amLZcMPmu/G64ieWI8QMUxYgCE1ut3bI1QIDAQABo1QwUjBQBgNVHREBAf8ERjBE +hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjI0MzUxNTc1NTgwMDAzMjMz +OTE1MDMwNzc4Njg0Nzc1MzE3NDMwDQYJKoZIhvcNAQEEBQADgYEAOUYu4V5PBKiW +PlUyLlNTrRRMvF7drxEG1T4BFHhQ9Nn2zWkT9Kbo1PmJBFTGoqHw+E+zJ5bUSirm +iLByRm5WV/bJSwY6WGuupq0vrDrqKQJLwQO/C3Y9frAYiHEgOeRN3TV3nKmDrTQ6 +lNrOd7q0H1mNFEOOh60oKBgOFOb3SC0= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/buaa/buaa.cert b/server/component/planetlab/buaa/buaa.cert new file mode 100644 index 00000000..334ffa95 --- /dev/null +++ b/server/component/planetlab/buaa/buaa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRidWFhMB4XDTA4 +MDMyODAzNDUxNloXDTEzMDMyNzAzNDUxNlowDzENMAsGA1UEAxMEYnVhYTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyZeOXa7mEE4qpqe2G+fdsVsVzMFMR3hG +Jhq5Q7NUD68DMVrSy42Z/ZbfVr4x4FeU3AYkYYB59J7kWRSgJS1baPmsWjexta73 +DbjRbOb8R+zsNMXq3GJ7t8QpjkVvQOgO41qO18Hv4o4buOqBPNLDTIf2g08wv++r +EPITtsEaWOkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAwx9cw840gTPhxs6wQj7TQ +SZ61sDE4hn1fPzy+7CuwclgIHaapaZVoMyki4l4GiU0GC4gXQL8I4+dyj6ymEjiw +jvWNA6kC+MuZAYgemDEdse8hbl7bPUY/RR/I4MjNC9tsqRMRJOVFLYP57jTFF+aG +yM/0kkQ9I0/IlVncRV7g8Q== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/buaa/buaa.pkey b/server/component/planetlab/buaa/buaa.pkey new file mode 100644 index 00000000..25350e22 --- /dev/null +++ b/server/component/planetlab/buaa/buaa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDJl45druYQTiqmp7Yb592xWxXMwUxHeEYmGrlDs1QPrwMxWtLL +jZn9lt9WvjHgV5TcBiRhgHn0nuRZFKAlLVto+axaN7G1rvcNuNFs5vxH7Ow0xerc +Ynu3xCmORW9A6A7jWo7Xwe/ijhu46oE80sNMh/aDTzC/76sQ8hO2wRpY6QIDAQAB +AoGAb+udlbOBdTIAie/4sfuD4HCCZOA4WkGTKJqTmtuX4vE2Y5NaDrq58Mlvi3gi +trvJIHKkhiFPFBmXC0HhO2K4KUza2faGlxr1Haz1gfBnibVmQFHm5EzfY7TPAmmB +vuktBSGUXYexrOallF3G1VDsZpVC0rkeEx0IAsV3q0RfclUCQQD/nrITIEdRbhWT +ljYOSzwWCtOkcTxWHJqCKX//nuaPU82YkRypfjoembeSWe9LLF1QAyT5ep7vz3m9 +CBLTaXJXAkEAyeRLUrLIobYFxfxJQor3o8zfMPk/UiX+OKFkxmoR0H0f/26OpkWC +v8w5/NOagPTuGF7u1LBr0zxFmhPRYUAGvwJAEfYXsypYeItQrs8mOzjkHvRhzLM8 +NxzJao359X832ihcUPUZW3uIH/BTKtBw9QpIAEBIT9Ni6Zzdg//WOs60/wJAFJTS +XO7e5yVgN0u9yCvUjP1Ar4RpQR2gafOCC3wars9iqK6Dmk2xw421R6HmuUi+0Ps0 +i7gkdddKHSfyC2D0jwJAZbQwq9JS/yEzqB1jyUXnr13h3k3YSNWriZS4zHGJRvkM +zRzRqORiUALCrvsCAArbmhj+oUBf85Uilehmoq47eA== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/canarie/canarie.cert b/server/component/planetlab/canarie/canarie.cert new file mode 100644 index 00000000..7c2656dc --- /dev/null +++ b/server/component/planetlab/canarie/canarie.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdjYW5hcmllMB4X +DTA4MDMyODAzNDUxNFoXDTEzMDMyNzAzNDUxNFowEjEQMA4GA1UEAxMHY2FuYXJp +ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3jYKDL4WmomA+pE0h93I7HYP +pF1FVVnBMOHMh96QEF+42x3jJONsp0ygkfH5fKG4t22m2y5yrsPWzovH0xYF2veT +AlUkUTLEIAPrubKA3a0unvOj0a7hzboLKvC56SxGQzjfnKTM2n30hbrDdkdEQSXp +jCdIpx+qpp8Gd69xagcCAwEAATANBgkqhkiG9w0BAQQFAAOBgQDI/aczA6wxKreP +lP4uFL33dAK0OnxYGywJ16RaWrtOz5G8Na8OA3pWJGpHcRIILWPre0IaP/Z6VHh9 +O8bkQXVPwh44XslwP6XQA6kSnNE23QYSTnTxJd6fdVzEY8GwFTYvaJUFyLPaEcOV +LhW3TKJ/5QMwOSdM++U+hEznrYSUtw== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/canarie/canarie.pkey b/server/component/planetlab/canarie/canarie.pkey new file mode 100644 index 00000000..ea158974 --- /dev/null +++ b/server/component/planetlab/canarie/canarie.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDeNgoMvhaaiYD6kTSH3cjsdg+kXUVVWcEw4cyH3pAQX7jbHeMk +42ynTKCR8fl8obi3babbLnKuw9bOi8fTFgXa95MCVSRRMsQgA+u5soDdrS6e86PR +ruHNugsq8LnpLEZDON+cpMzaffSFusN2R0RBJemMJ0inH6qmnwZ3r3FqBwIDAQAB +AoGAWQ39PxgbhPmgmEsDa4QmFyZFpJDAzbD37PhBeR5oTDegpSg4NTtz+ySJoZQB +ccJ6fgDTAzp9Oa9A8mwwvFcyJs0ljXhBogN+UPS286dI1QvCn7spQJXCR1gORHns +xTtFI1McpSbxPTLEn3MzsN/RcWJxqqC8R6pyibrdFGDnsvkCQQDzPzNVO2gP6Qqw +s1zvF/ZP7xRi/To7LGAqoHg8OBa9+I0Nl6mL/zPdGIWoLmntXBsuLMr03TctNc9S +O93ycGXTAkEA6dyAabhecpJeIipVRoTnM9jTF9lThEAYSDhZwPsKo+1KU/HucSKG +VkxKijkTm4xrScQX5BNhdMxslAXg12hGfQJBAK51ub97qBshLYWmXxUsvoB+HMUS +kd026pIoHZQzNjxyM9h32iaKlwwQNmx1PYv775Kilb4hmx1V5qg4P+tOKfkCQDHW +CY99+LKVunWxa8bBX7vOwv1cFM4kEoihaY8UcGoKkUJeVh/J6bLOQzw9eY42WE65 ++RVjg+st/R12OznsQMkCQQDHHITsut3W932XWKqkWjPL0Uj8biv+pthkmF9vGWR+ +eNxhrq6U5F827ntcdRuswl4BhqSyPf7DxrwGvnAJsQ2O +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/canariecalgary/canariecalgary.cert b/server/component/planetlab/canariecalgary/canariecalgary.cert new file mode 100644 index 00000000..4114752a --- /dev/null +++ b/server/component/planetlab/canariecalgary/canariecalgary.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOY2FuYXJpZWNh +bGdhcnkwHhcNMDgwMzI4MDM0NTE1WhcNMTMwMzI3MDM0NTE1WjAZMRcwFQYDVQQD +Ew5jYW5hcmllY2FsZ2FyeTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtc25 +kbCfHxwMP1+meY6oEycqt0BtqprPFNIO7gd1V/cybAuDNpcE/kBSDtqbsaSsu0AB +LkuWznYpM4VSytbeNLpJfIocRKG7zBFt302VJAVXJGZqiZA0Pz2h8JkVIaPCN2wx +L66bPjql5gqfEe3DsNXKJzU8LpvQbyOdg1nkJTMCAwEAATANBgkqhkiG9w0BAQQF +AAOBgQB39RMq1VSypgxAwtPGw49fnJpe0IdxWFTN9lL5qb2mOh0/sjGYtmXtcQgx +XmpbIAgrPWvz5PuLL/9LEBrRv9ZcmRFQJ55Cgfcrlogz2SK9aAXHH7rb6xHDC9Zh +wArfmkCUjGXvj6iUnW995x6NIETWRszWgILZmwkA7pg0N/07uQ== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/canariecalgary/canariecalgary.pkey b/server/component/planetlab/canariecalgary/canariecalgary.pkey new file mode 100644 index 00000000..a8b9ae07 --- /dev/null +++ b/server/component/planetlab/canariecalgary/canariecalgary.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQC1zbmRsJ8fHAw/X6Z5jqgTJyq3QG2qms8U0g7uB3VX9zJsC4M2 +lwT+QFIO2puxpKy7QAEuS5bOdikzhVLK1t40ukl8ihxEobvMEW3fTZUkBVckZmqJ +kDQ/PaHwmRUho8I3bDEvrps+OqXmCp8R7cOw1conNTwum9BvI52DWeQlMwIDAQAB +AoGALg99IGg7KEqW38eACfQWqSOXMu5j2oF2TbQajDvfgvXiFHWmPMJuRWxOXe0M +3Sj3iklhAzWrc4uETMVOgI2Hpi7ZN8GGSk+v2Khko0/3eJLW8tJpJSYVsV6SaSQ2 +cETEaiZBSX6XPiQ1VX7OClLwXm1CuXXxl+8gaMuSqof0rIECQQDfpT/dZAjcsW1Y +ZzirX20+muBjsCiktpwUt22PX5cDGfxYshIaIQTwiw3fOohNsrV13bH7+MU68Y4B +yTdkKRnxAkEA0Bragy7Uv0WR2FXXl39nTqrpBg8PliedDNvWn+L8fHH56NQKpgrl +DdwJQhha/HiR1DgWXK11VOamuqkYDavtYwJAb8zyQkCR1ZG08e6X+8O2nwdZiTw0 +9TJ8kDaqRHQqz9gbuFM8jWdYSs+Y3bErFnxyDjwHj8jq/+5laSsnz6BkYQJAWCbX +4vPGeNNOaVZLgcgdCazKEp/0mUVkeFrzOj0beNeK5f5UGGvLBSjs3wuUFxg3pa6w +gkeTyQf/HliccMYgQwJAWcaQ4Cwo2R2zbbDykHrB3I4Zws34V8xdNvNwdQfxMUid +DA4sn24t2AT/jdW2lIfL+zMlVBWv7TVJ/cipbBnBuw== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/canariehalifax/canariehalifax.cert b/server/component/planetlab/canariehalifax/canariehalifax.cert new file mode 100644 index 00000000..8829e229 --- /dev/null +++ b/server/component/planetlab/canariehalifax/canariehalifax.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOY2FuYXJpZWhh +bGlmYXgwHhcNMDgwMzI4MDM0NTE1WhcNMTMwMzI3MDM0NTE1WjAZMRcwFQYDVQQD +Ew5jYW5hcmllaGFsaWZheDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvtI1 +dPD0GphqXPqDL2+qnzcgQdr3ofOxGSiCG1/32qnJg66DkoaZL39b+ZVbUh3TXCZA +azv60Odc6OznsnBn5Q+Y0GTFuX8857w2ITNivVZzWxsb88pPKZyuFb8HC0zz7ZNt +ElsWPIdT1ydzYEhkrap9nPilr0VjiLTqNnZehqcCAwEAATANBgkqhkiG9w0BAQQF +AAOBgQBddA64IXn/bTO+jpcqUKcs4trnqZ+a16yDwZovT2YDUow3av8vW8YfbHSK +HD6KSO1EO/eylukNYgFlOZcIR+daKzWcvygOurObFyEvvhN4XVBsrQc7S5MKIv3X +NLTc+zG8LAEc/SMCo2DoWNDpmgp2v1qwxvOTReuGyKEFw8Wgaw== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/canariehalifax/canariehalifax.pkey b/server/component/planetlab/canariehalifax/canariehalifax.pkey new file mode 100644 index 00000000..138772a5 --- /dev/null +++ b/server/component/planetlab/canariehalifax/canariehalifax.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQC+0jV08PQamGpc+oMvb6qfNyBB2veh87EZKIIbX/faqcmDroOS +hpkvf1v5lVtSHdNcJkBrO/rQ51zo7OeycGflD5jQZMW5fzznvDYhM2K9VnNbGxvz +yk8pnK4VvwcLTPPtk20SWxY8h1PXJ3NgSGStqn2c+KWvRWOItOo2dl6GpwIDAQAB +AoGBAJFgQrux6rbsUXQ+on0cPMgJznh9otVufAjntJ+4cHLVkaHR7YlPJBtskxzF +bgpUkLcOqVtJGd/XtA/8lNR8EJnAVBZf1DD79DOZXtqm7BYMAli7eC8u9NAU0XI+ +bs7WfSYLm4/xJixtydqVW3L02mIGwJm2yyfTOlO/flFTDG2xAkEA5WHemxVr1/1o +CrZBMSICXYT4cZlVBeUuDtfbc2p0I+leuDHh1jjpT36PcB3hPR4eJn9Y5vlanIim +7S4dP6eQKQJBANT20wELh2QQd/K/OPPwVwKrxzl1hZIxOoOJ3ecCUHgOzkmGsjhd +bA4KCbdK8/W6o0KTf4Xg5xUfM/3wph/5+k8CQQDDFPZWXOSIIFsw6QoOuEbctG77 +ZhV6WwxN0WUxBnNZ62sEKmBQabx7QD7Lco4SBaBMy3eXkLBweoPFKbf0YBTpAkEA +rX7T0eMhjsy324Qbkuf3Cs8FA/ORONNwNx9HL168TcLKHi5k3PSHBjz5Q2EFtOgy +/xcI6fmaaKO+CKBXxm8xkwJAfOQlvP3vDgcMHE7tpNcPwV6cv9Mm4jWgpE+M+vOZ +uC8on90OpKiCoIec8tKAe9UsD4+H3257IbPYvWGPG6dMQQ== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/canariemontreal/canariemontreal.cert b/server/component/planetlab/canariemontreal/canariemontreal.cert new file mode 100644 index 00000000..fde06278 --- /dev/null +++ b/server/component/planetlab/canariemontreal/canariemontreal.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPY2FuYXJpZW1v +bnRyZWFsMB4XDTA4MDMyODAzNDUxNVoXDTEzMDMyNzAzNDUxNVowGjEYMBYGA1UE +AxMPY2FuYXJpZW1vbnRyZWFsMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7 +EXFo+JX2HP6fkaGACCszvP4W3kJJEM7k4XF9OQuyF49MKNZESlCIBXdxO3hqUXsa +XuxYwgqN/5kigJaKIsrgRITF6wRG7G+VW1YTOI78cHgyxGoq8rL+Fk5eAJR/z5+k +VbYCBtG/ZE3M9gkpYiQ+eC0thT1j9vhyJ0Wf+At9/wIDAQABMA0GCSqGSIb3DQEB +BAUAA4GBAAlD/WVNRjoAE2WjV0C8ZbdC7ruWP7KqCikPp/LGaZTHCmkg/5vGFnHB +qnXGzyDsP7ojT37mDPSrLTjWs9dmQXPIiVy1hMqXTxEf0UXQs9S7NaT0tmUDVCZD +3XVwrffaIHNQbLCxtvYiHkyrDIUqenLENv6eUPZmWqkHuMb+n5Kn +-----END CERTIFICATE----- diff --git a/server/component/planetlab/canariemontreal/canariemontreal.pkey b/server/component/planetlab/canariemontreal/canariemontreal.pkey new file mode 100644 index 00000000..03dcba82 --- /dev/null +++ b/server/component/planetlab/canariemontreal/canariemontreal.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC7EXFo+JX2HP6fkaGACCszvP4W3kJJEM7k4XF9OQuyF49MKNZE +SlCIBXdxO3hqUXsaXuxYwgqN/5kigJaKIsrgRITF6wRG7G+VW1YTOI78cHgyxGoq +8rL+Fk5eAJR/z5+kVbYCBtG/ZE3M9gkpYiQ+eC0thT1j9vhyJ0Wf+At9/wIDAQAB +AoGALgnX8G6lcYGnRJwxs/HOuBf+LKCcjaDeWkQFizz73OOhd6vhN8NWWHOH9s0d +EIVnF5Fe92Uh9dp+1Jfy9KIlbWmskeoVGYCZgsC59ywEKm94+d6Q6ZHMsQBkbAOb +w2bmOWuY/4mMd7MZ9jT7xCsriegtQcq9LJNDThPij5F3QKkCQQD5Y/gbMJsYoPp1 +faaly7kCtda0v/2eXjZaaWPFiiYiApqcW2tjvZ5n4SUaFbg1jmCaiXIuNk8QpU3m +YyeyQscDAkEAwAajM3CCY+i1ft9EPiTCE9JeeyNDPMXfIMU2CTSuTB4SkU1VSH8y +mE8c6pHLgL5a4N/3dpkBDX+0cqYyTunOVQJAWBEkYT2l12mpaGoJukyZtcpO2p9d +yVoNqZnD4NMrKiFvRb3Gy37/fEF2X6LB3S+9D3Vv+7+z5fXp72yebQXFzwJAFAtd +U8xFwBoVf/XcUMRTgfAurpniteBNx0TuvA1EuGtXMtWotlWYuW9grFelr32vTNP0 +J+wWwQr4khMpIzWitQJBAJkjqgMiFdbHKp7KrySzjskDLwm9ef8qX0vri82xFE2E +uBDxaUNk/5ryKgGc60nRS8ejBwNtA+vsELnL5V5rS5c= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/canarieottawa/canarieottawa.cert b/server/component/planetlab/canarieottawa/canarieottawa.cert new file mode 100644 index 00000000..467ae3d1 --- /dev/null +++ b/server/component/planetlab/canarieottawa/canarieottawa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBnzCCAQgCAQAwDQYJKoZIhvcNAQEEBQAwGDEWMBQGA1UEAxMNY2FuYXJpZW90 +dGF3YTAeFw0wODAzMjgwMzQ1MTVaFw0xMzAzMjcwMzQ1MTVaMBgxFjAUBgNVBAMT +DWNhbmFyaWVvdHRhd2EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANsehfto +7rT28DebePJM2S/1D/svAPKm12Y+zwVkVTOrIgSl79k6fvOd03KKbGqqiIIq2Q9V +RCs89k0XWOcYpbAhr9E83uz6iPtkKy3yI0fxE/R7j54MN1phBb4hDb/1FAUy7TYO +yRgAbc3wwyHpvNE2uFHDVZD88kqGW6RH3Tf9AgMBAAEwDQYJKoZIhvcNAQEEBQAD +gYEAij6o9JYVxr/eh6dDJ/q+CVExdFJwURCtUGd/Cb2MPMh4KwW/Uj9P8/ALh7iO +LW34o0Uy9Hu3j6eSDyVSG/YIYdeWodrFxOxdl6bRpKACcn79KUF9bQxK/48KxBaH +rT9UgwP0aXBsyFVyVm3HHh3r8OTb4dnhPeETBVmC20UEx14= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/canarieottawa/canarieottawa.pkey b/server/component/planetlab/canarieottawa/canarieottawa.pkey new file mode 100644 index 00000000..f707b170 --- /dev/null +++ b/server/component/planetlab/canarieottawa/canarieottawa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDbHoX7aO609vA3m3jyTNkv9Q/7LwDyptdmPs8FZFUzqyIEpe/Z +On7zndNyimxqqoiCKtkPVUQrPPZNF1jnGKWwIa/RPN7s+oj7ZCst8iNH8RP0e4+e +DDdaYQW+IQ2/9RQFMu02DskYAG3N8MMh6bzRNrhRw1WQ/PJKhlukR903/QIDAQAB +AoGBAJbKDpHQyFSoiu75guXblKq4DmNhGVnjDuBB4N1pCmkgH6zrNH9dDfhAaD6u +m6Vb7c0GB5HRr7PBpA2xP3DpOTsR06XvYBOsD1003IIm9DFzg9ex1qPyBSh8i8Z8 ++DyT0fGCu8IdFG69J7+6GJ+jsGO9LZPAE6vunbn913PtPKHRAkEA+NZisssoFpUe +earqAnNmbWuSF3AN48rhGf3npKoGfYKibqlCbQpc8KX9fdagQcZF9Pjb0DgSiE5p +vXuwpLm0ywJBAOFtJwvqkJO9rm/5flY7j3Wv0DqVGOgvSr66/I7g9P/gAYoiF/SJ +PQ/hQvxVR9jeo4UJ0I5r3zY24+AAy8NgdVcCQQCbYmQnea0CzQNGvm96ME2Zrj5/ +3D0QLbP64w4vSOzcmyKLL66HIJ2AuGZemhNgf0tX+b5pe1o3O5/T7tUTR9OZAkA3 +A6Z12Ab0p2P828yjSuHV/NQ6l8x+TZxWM9gTHn9sOsTlazChcyS9zWHFpyJjoOIT +Q7PsLhNJbdfrAQa5Zb79AkBDtiSWBvMzlycXbN1W2jD0w8U69Nw1JFA6QvC+5TJr +1cPM8vtIAO/Nfsxef4tnJH4ZC0D3jNynjUSSQQ43qgkN +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/canarietoronto/canarietoronto.cert b/server/component/planetlab/canarietoronto/canarietoronto.cert new file mode 100644 index 00000000..1fb40fff --- /dev/null +++ b/server/component/planetlab/canarietoronto/canarietoronto.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOY2FuYXJpZXRv +cm9udG8wHhcNMDgwMzI4MDM0NTE1WhcNMTMwMzI3MDM0NTE1WjAZMRcwFQYDVQQD +Ew5jYW5hcmlldG9yb250bzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArHDM +jD4o/ieSTKVNeQ21os1nuJge3BI04kpltuTdgZeQJUOSG6cQ45kERtFAwSKjFIsH +wGMgbjyfp7kCD+oBEft+8HhJ/tLdiXJwb77fyczlqFm4em/cJui3g3ktaSTTrWGI +tkqYYbdrPVAUO9XFzql6cawa/CawOZ91c36er9ECAwEAATANBgkqhkiG9w0BAQQF +AAOBgQAYq5ArENN1S6fHpTHS9YeF8/PN9T6naiNg1qIGZjuT+FXhL6ZQp1ZCxc/T +YsPi9HE3VN/hm0+8srKZ7/Gs8hN1YHTw1pOEFhjMDQ2+vAVD25smBKFwVqtfbFPA +HuDhZkfsp8wJKwz9hoTu8cNMt5upVoseLX7ZcbedHIhGbE7sUQ== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/canarietoronto/canarietoronto.pkey b/server/component/planetlab/canarietoronto/canarietoronto.pkey new file mode 100644 index 00000000..cd6a7092 --- /dev/null +++ b/server/component/planetlab/canarietoronto/canarietoronto.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXwIBAAKBgQCscMyMPij+J5JMpU15DbWizWe4mB7cEjTiSmW25N2Bl5AlQ5Ib +pxDjmQRG0UDBIqMUiwfAYyBuPJ+nuQIP6gER+37weEn+0t2JcnBvvt/JzOWoWbh6 +b9wm6LeDeS1pJNOtYYi2Sphht2s9UBQ71cXOqXpxrBr8JrA5n3Vzfp6v0QIDAQAB +AoGBAIGD6y3+Vf2mLQziLxEXye+wRRHxN2RlTFEWPdUjincWJg7G9ItObLH1MLAb +5H3rDP+V+Ml36ljBscxgeXsIb6odEHn4zsACsJrhG2t6nRLOR3OwyS+licCxKlO1 +5ZuXabEy0kpoRs0cAIAeziirlEnVjYMD3RpTa7JVmJdeJZR9AkEA2uWe6A2UCmj6 +wIFMJ4StMp8E+Y4npp2YbyRxc94nffUnr/0tAHaOkr3Vv7SKiU5cJsmoZrdZe2hZ +s52ziK5azwJBAMmrWC6+LGBHl+WU+Xw3FAj5W/4+sqzR3lwkmF9UNdXgwregooQM +IVFdZlHCeXggsLU8TOw0dTIQq1Q76aLgc18CQQCzKsNYWNTVeHvV2X8F0ZkaGAKw +aOSXgeLlBcU++5UDiggECowtFt03yt4L3bCPFm5i6ShHesdpNU5GsEvlEiENAkEA +lXr0zQjXGbJXa6ul1SV6K0CxqF1O0PxqZkAV1Ss1EEgd7EAb1ear14R0cAvHP3xz +npKIrdggOjDS3YffIIRf3wJBALvKZsztWzHL4963GDlW3syaN/m7BzPw9TBX7gQF +Ey7DFXYA5lZgr56cuYnuQ8cWYsEYuodi2gYSXJulPEJNRcU= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/canariewinnipeg/canariewinnipeg.cert b/server/component/planetlab/canariewinnipeg/canariewinnipeg.cert new file mode 100644 index 00000000..e1045253 --- /dev/null +++ b/server/component/planetlab/canariewinnipeg/canariewinnipeg.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPY2FuYXJpZXdp +bm5pcGVnMB4XDTA4MDMyODAzNDUxNVoXDTEzMDMyNzAzNDUxNVowGjEYMBYGA1UE +AxMPY2FuYXJpZXdpbm5pcGVnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD1 +NKpF8AeUWS8fsMZTNASvQ1lPF73LZJiNi407cEcrElgr39zNU0ztTyOlka/e/c5f +LtRLbq8FlTF8Wt3QtQvmdISs5EBbWhzDaDvERcmJb8S99ZeCCnJpqIoHSam91w5z +1mUrG1+jYi6Ypa7s6uF7y1fJVDgGoiqqSkKB7ZJIWwIDAQABMA0GCSqGSIb3DQEB +BAUAA4GBAL4mPpKmOCX9R4SNFz5B5qu7auc/pU0kPqFqOVb0LMNCrtPZUElo/LxY +WAce0FtWU3LXOqcl34KgHsqM9QwN0OprLOnxhtw9vhmucIXgBaIpQ32neROMdl1W +fs3LlLRuOrQNlhiLVklC6UHNF9VSOHXOhb/1toaKaNFVL9/g0I3H +-----END CERTIFICATE----- diff --git a/server/component/planetlab/canariewinnipeg/canariewinnipeg.pkey b/server/component/planetlab/canariewinnipeg/canariewinnipeg.pkey new file mode 100644 index 00000000..3159e467 --- /dev/null +++ b/server/component/planetlab/canariewinnipeg/canariewinnipeg.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQD1NKpF8AeUWS8fsMZTNASvQ1lPF73LZJiNi407cEcrElgr39zN +U0ztTyOlka/e/c5fLtRLbq8FlTF8Wt3QtQvmdISs5EBbWhzDaDvERcmJb8S99ZeC +CnJpqIoHSam91w5z1mUrG1+jYi6Ypa7s6uF7y1fJVDgGoiqqSkKB7ZJIWwIDAQAB +AoGAQsY3xFnsRnrO+WtTZt8Yk33cuUw21Eetv4YMTO5zgwg42KHa6FNR9KIDjBgT +c79cTtFa4Lvgj72kP0Ajfa1/8pa5gbaEtxZl5fzqZZ0y0MK1lSUSBO/9kyouAEdc +MxBBug5vGursmGOMpR3QBZQbixq241H/LLYaajNJMz//9NkCQQD+KKaUlg6V0IAR +zBfXCWLOQASuq7RZmeG/RWq0ooRatAYhBwe0XgMkll4k7mOYH9X/YHS9CLnTlBgo +FsAZXSEXAkEA9vtpGVZ6c4a1vCF2MFjuVkOeJJQwducH1fkGmDSs0gxVov2VMa6K +RxNdDSo7mtWC4R+1bfeIv0f5ksuhG2i1XQJBAN0VH1JA9Y78P2s7zcEQORKQPYJz +ef43DVgEWj2m4NrFnk88fkc3QCSjaGFXvOqnRs9OaD3HSV3yhNDaeV+W0yECQGWm +ccog4oL7tX55kygw4d8VM1hAuXWmfn4dYQ5x15MXyoMrtSTefkDkgk6xzBhcueIn +58cbsudvGxPExUj/nm0CQQCF/bvqvafdvujepCKhqWsOyMkVT0BR2hLXJc1BZwwL +Fc/cZln/IjNiGFF8bJUBDRMPI3fThEolwmkxiLVNnXoH +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/canterbury/canterbury.cert b/server/component/planetlab/canterbury/canterbury.cert new file mode 100644 index 00000000..5249fbb2 --- /dev/null +++ b/server/component/planetlab/canterbury/canterbury.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKY2FudGVyYnVy +eTAeFw0wODAzMjgwMzQ1MTRaFw0xMzAzMjcwMzQ1MTRaMBUxEzARBgNVBAMTCmNh +bnRlcmJ1cnkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK62ChC4YDwm4WzH +DGvWVljmH9tmlhPVYPVcSw0pnCE270jzCQNI1IVP6soFrmACIqCAhHlK4vosNLrE +AzrRXM4h8ulHSp1Ncm1DF88yLnDe4iqMTV72NTr1tEdmMAFgh7572ILurFrBiE9o +1IVhsoPR/7kEiP9zW+fGmX72DERpAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAiZpn +VkZfktFqUEXRuUrPmX9TnwZCEeWCuQDNsvEmUeMsJjCNIKWk+0o3ov7MOmfX1tJf +sfmzgaBeI5nfOkojs5yNv4AbFJls/gIvaHPc8l5n3jqXWpCuDsj50VSPNrC7xQwv +ykAiu+/Ue6bwhBnpRdUfnQcVBsIjVr4MCTJxz3A= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/canterbury/canterbury.pkey b/server/component/planetlab/canterbury/canterbury.pkey new file mode 100644 index 00000000..772c2a94 --- /dev/null +++ b/server/component/planetlab/canterbury/canterbury.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQCutgoQuGA8JuFsxwxr1lZY5h/bZpYT1WD1XEsNKZwhNu9I8wkD +SNSFT+rKBa5gAiKggIR5SuL6LDS6xAM60VzOIfLpR0qdTXJtQxfPMi5w3uIqjE1e +9jU69bRHZjABYIe+e9iC7qxawYhPaNSFYbKD0f+5BIj/c1vnxpl+9gxEaQIDAQAB +AoGALkwxOKMTZX1MKX5J7V28PgyljoeN562Y5wxRGyjWpfqfyG4XClbHcpht+KEu +x2Rpdqz37giJQ5BpXMDKtlB6zfkZ6b2vX7uIUvSKx8q+rgHxVd4ghKSJ+3cr+9vH +qTq3wia5k6Eh387oHIsPKZAYIxZYRd4xS+JdJJcjERUgPA0CQQDWiJq88+E4qUK0 +Rz2/YnnZzyzAsAOBYph8DtDO8ORTWoTCOJIjXdY4fpM7q/0DiApCYHoOFOtdrCcj +JQz9EBtXAkEA0Hr3S/Rz9PH9kk/oQ0fkji+qJn/hI1PZx5aH03gOaJGNTBOenp7a +2EFUeUh7K9TI+e0LL9YO3x3OdgeGD6qGPwJAalvBM0pJb1ji3BOxti9xL525lzHs +GvoxlNeXh/D/kZ9/z/ZR5TzBVrLR9bR3tId+ZpgECvUuFvuhT5gvz0pr8wJALmcg +QfSwFpYCJZ3Jiagn1AoB6j3OY6mXMJhttQDk3BuBgqxfQtkCxt2Lqs8aM0BSV2aO +deBEQR8GRDkaesQuywJAROUBn2Het4js7Yjc1KcQNSgjqsANOyJk4oqmv3GM/7zH +4U9yA4JwibcIqvQzkxQMP5LFNL3TiHcmvbTCAzEW0A== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/cernetbuaa/cernetbuaa.cert b/server/component/planetlab/cernetbuaa/cernetbuaa.cert new file mode 100644 index 00000000..3ab81dd1 --- /dev/null +++ b/server/component/planetlab/cernetbuaa/cernetbuaa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKY2VybmV0YnVh +YTAeFw0wODAzMjgwMzQ1MTdaFw0xMzAzMjcwMzQ1MTdaMBUxEzARBgNVBAMTCmNl +cm5ldGJ1YWEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOU56plFuussQyN5 +HGwE93iVAQJlDysPxGFJfbGD3/kllKtEPFNza34GBLClz+ILSB0RC1lIoVqI/3/v +1c1djzaI24bu4fO/+VAkyNxSk0xdKNMOGX3zWJPrXSwSm/V0kUiaRJrAe4TJ8ybA +bjSoqhwCjh86MdSoqkh4WmwihqtpAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAGymq +KV+ZmpYG7UaELknvgqOThcqJTRKFx57Y9KDzVcCukSjzCo294JI3AU0I+jqX1g4L +fu+UX//IDi4RE5wV9eFUjWZePwYqfZ3PU/cNzip7uxC0MvhAIAlNcpN/IClkfcef +A91/LE1qrfqj4QwtrqKp3sm1bZ6FVklSll33d1g= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/cernetbuaa/cernetbuaa.pkey b/server/component/planetlab/cernetbuaa/cernetbuaa.pkey new file mode 100644 index 00000000..dba785be --- /dev/null +++ b/server/component/planetlab/cernetbuaa/cernetbuaa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDlOeqZRbrrLEMjeRxsBPd4lQECZQ8rD8RhSX2xg9/5JZSrRDxT +c2t+BgSwpc/iC0gdEQtZSKFaiP9/79XNXY82iNuG7uHzv/lQJMjcUpNMXSjTDhl9 +81iT610sEpv1dJFImkSawHuEyfMmwG40qKocAo4fOjHUqKpIeFpsIoaraQIDAQAB +AoGAfrv4sulUoPWF4TTyu947HJX1Sueo7Tv4bXl+Xwj0agGXIuHFILZtte2J5kim +mOl342orBiAb5bxc1tU5NiQGKypuLLuX7NPASxlULGBdF9PkZdMPRbq5Kt/Hz+18 +Fwpz/Z1P2LeNbarH46qQUtIlZdG4Wgfgugg26QLYjyI8cgECQQD+MWgTZCdO5Tbl +bmdM1XeEpXyJLcAIKpz69A9oSMwF6kormQwtB8+ksfkwJA3p3I9yggBd6up0rA7y +EnkUzeWhAkEA5tsS9hSCnN/v+a5+FyAp0aFEok3mZvgsUSRtIO9iMKtROiMgwksL +v8X8eLTE9bZGzqhnfSyaz99pbaBn3SFgyQJAT8SFWoB1bWa0wW7R7+SVKwUbfZjj +yCxHMuFf7GPb0odhWykeDwuCd7Z58kd+LkNOqKpvHwnXJWHRFtoBMSwjwQJAH9nF +6fG2e5Jh957dgq9LVcLcR1BcI4TGCIPwEoU0lOZuFIlYMbZM7q6QQM8gBY6aglS1 +wo1u5pM6ZoelDNtYEQJAW5u7DUHSzofCkc2pijD08yeZiLbYaBNGjjNQOmHOnqex +s7E7C7hRRCBsG34gQyicM39QM34KY+T8hoBsxTJPEg== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/cernetpku/cernetpku.cert b/server/component/planetlab/cernetpku/cernetpku.cert new file mode 100644 index 00000000..729688a1 --- /dev/null +++ b/server/component/planetlab/cernetpku/cernetpku.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0cGt1 +MB4XDTA4MDMyODAzNDUxN1oXDTEzMDMyNzAzNDUxN1owFDESMBAGA1UEAxMJY2Vy +bmV0cGt1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFXdkcYlGIK/c3d3vk +37Ym2n7VgrFjCDDTs9noz5l+d+LEIwcralcDpHQN7gfN1QI5DiNx7FI7AyuK30+A +72Bqt0Y3CmNdoqJLgdxRgvZqmILgMU0cVmZhuyQghKRVg1S6B7xVt1D0iCMZcR8r +mk5uWvsdcgxNxWVrgd+1hQbkwwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAKdifuAf +RW4tExQ+TD82wrbYNugjg7llF9rmS1beIPuJ/XM8On7qVECBaDqERuT9xzf83J6E +FvFaM4YknmmY4UMS/9kZ1TlmwXnhb/HdgiY+oHrP/sCPmIReLLXinLHZrx8/BDhO +vaNWZ8FQUUS7xME1kHxWYjpXorX8e9g6t95c +-----END CERTIFICATE----- diff --git a/server/component/planetlab/cernetpku/cernetpku.pkey b/server/component/planetlab/cernetpku/cernetpku.pkey new file mode 100644 index 00000000..8febd3f4 --- /dev/null +++ b/server/component/planetlab/cernetpku/cernetpku.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDFXdkcYlGIK/c3d3vk37Ym2n7VgrFjCDDTs9noz5l+d+LEIwcr +alcDpHQN7gfN1QI5DiNx7FI7AyuK30+A72Bqt0Y3CmNdoqJLgdxRgvZqmILgMU0c +VmZhuyQghKRVg1S6B7xVt1D0iCMZcR8rmk5uWvsdcgxNxWVrgd+1hQbkwwIDAQAB +AoGANpV+7x+t5tgp9fgglqrcSKCTBV+wyW/BeTs7X+zSSazEVXROjk5JpGM+CYA0 +PlPT2o2zddVi5Jk62Jxr83/AjSaYscsb6I0b+Ga3V2zmYgEaqRAv6V9gHg3X/XDz +QGLCWmZAW7bxJWWlH8kPJJW1x4BFilGPjVN7sC3JYg2xHwkCQQDpfCls9smZuomL +Olqsv+y4AwobCClBdpsQ6iNpOaeFPKzdJs1sJQ+434CnMlgeKxeVgWLTg62of7ci +k+cwrbVPAkEA2GYQGoL/gU5j/F7mms83pRV3DD3WUiwGBsDMsL3PQTctxTuThKFj +QHnMl/DXp1MTV4+VtiMPc/VRB82jJqPkTQJBAJ6b4ehLnZf4yAb0lTRVDJHUPsEu +QhheYeiTpYqNx+cS2LtC6LlWU9/atKLf6ExWKac+Rcw533ZfjCDJKHxBBLECQQCt +EGsemNe41TW3tzocY07wUwtjmezWyOiE7BqH2zVuxa9wRqZC80NKZF6QwYfnBNS6 +OVYVVVLdfTsxz28EzxwdAkAWUlma89vUe9LaNWl+fT+yR63TvQA7ZOebjz68xnU/ +gCH/MModP/E6wT03TpMPVUKfB9fs/rw3LqfkLx7IRmTF +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/cernetsdu/cernetsdu.cert b/server/component/planetlab/cernetsdu/cernetsdu.cert new file mode 100644 index 00000000..1f8d5ffa --- /dev/null +++ b/server/component/planetlab/cernetsdu/cernetsdu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0c2R1 +MB4XDTA4MDMyODAzNDUxN1oXDTEzMDMyNzAzNDUxN1owFDESMBAGA1UEAxMJY2Vy +bmV0c2R1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDD5YZVljyUyrf3joEi +VRJV/figk8NfpSVlyTZmCa6MUwdVW2DOW+trGnbyOh/NVGG35k6jEV9ulUfS5sTU +cDCnhUoZTkHo71oZb32nK1EpxT8051/IyRGXy3P39LH4j1phFJsA8B/j9Ur4uDiA +FZ9mZZ12l72pAGNjJpLg7kSU0QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAFwUP4GP +9X/SlnfHnftioaLp16i0hZBYha+fOC0GI4pOv/oUK8NJkJTDIaawZ1EmFioH89oB +BJQakAqXmfgSdxYta9zLgrzuM2sFfuWGOudeig0m4TzALo55cAsZN3Ag5tndmsms +L8ass8DIzdkcP6OVau5YittLo6W8IIjcY+Zy +-----END CERTIFICATE----- diff --git a/server/component/planetlab/cernetsdu/cernetsdu.pkey b/server/component/planetlab/cernetsdu/cernetsdu.pkey new file mode 100644 index 00000000..e7321720 --- /dev/null +++ b/server/component/planetlab/cernetsdu/cernetsdu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDD5YZVljyUyrf3joEiVRJV/figk8NfpSVlyTZmCa6MUwdVW2DO +W+trGnbyOh/NVGG35k6jEV9ulUfS5sTUcDCnhUoZTkHo71oZb32nK1EpxT8051/I +yRGXy3P39LH4j1phFJsA8B/j9Ur4uDiAFZ9mZZ12l72pAGNjJpLg7kSU0QIDAQAB +AoGAVrLloklspHmXtAOo2VYHWHGfsQnUpScFByhnX/+W9dnlW/ymOo5qAavjys64 +tnpLCUXvtbIBp4KAGDI0GMVScntS9cyjXMRR+5tQbBhwkbR2Xqjfhq77kCXckDl0 +0PwRxWkB9ORBi0K2GPpuXWhVv43PuPqN2pCKCDS2SjMU8yUCQQDq6CT994MwT57u +d8UHwcMrmVng93FcUmRqgDF7R0uyfbNYH40RCaWCrh1yGRCASg94R3CALaFOaJ66 +aHRejrVrAkEA1XykrfpVJ/MiXUJvdElLSIJbJp7/FIl5rLD2ErUZ/39mjBOtOKil +aQrHcicrPup+AQQFzqJjIToR725wQZbxswJAannzWpK4ikts1NbBHnT7jGWkUc6X +Oau3DHcy9pgofa1wf389p/1hYkyd2Dv4OM5ZGMH5AoCsXygY2pHCPaIeJQJBAMkk +6zRQzLMbTaF42vJBrIDg8WjuHYAIF3AyO2dc4uXr737De04K9+6EjW5soT5iSd5D +IAWU0rmXsRZag8IIqikCQQDlQhvshRrm8sfEaOn3d5isqMI9S1BuBaervevQPziQ +/6iBwFRoiVpuHHE4Cy2Ci2KDwhrZ1HKNERQLeicyLz5O +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/cernetxjtu/cernetxjtu.cert b/server/component/planetlab/cernetxjtu/cernetxjtu.cert new file mode 100644 index 00000000..0158e759 --- /dev/null +++ b/server/component/planetlab/cernetxjtu/cernetxjtu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKY2VybmV0eGp0 +dTAeFw0wODAzMjgwMzQ1MTdaFw0xMzAzMjcwMzQ1MTdaMBUxEzARBgNVBAMTCmNl +cm5ldHhqdHUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALR5VcYbJxbv9T/5 +jqNfs/2L7L3YsElp2AOgMyxsJe3nbqjqa0P0hpJlVN86voY2izJfm5jkMG12BvN3 +cDNLx0JO2+0auZk9VkhXpQkvS5RNHiyzwH6Op/vAR4bKQbqd7mWGDTpyBWPTDOrn +ZQ+/lreYZvrGWPv3YRDcsWZBnRepAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAEWN6 +LkHFbGON43U4TX1pcnFrMmGS4LdpWo9bXEnMUlTqKSBhrgWUtT47CHxPuvtJ3D2y +fx52FrrbQ6cvS/bL78G4SJDPcH2zx+GpKcYTrT5RdZNvUd125e8+vBFJzExqLHry +YASbjzPhXPIu17iS6hEMLtQ7MH0HMZFC5JuLw3s= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/cernetxjtu/cernetxjtu.pkey b/server/component/planetlab/cernetxjtu/cernetxjtu.pkey new file mode 100644 index 00000000..11648468 --- /dev/null +++ b/server/component/planetlab/cernetxjtu/cernetxjtu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC0eVXGGycW7/U/+Y6jX7P9i+y92LBJadgDoDMsbCXt526o6mtD +9IaSZVTfOr6GNosyX5uY5DBtdgbzd3AzS8dCTtvtGrmZPVZIV6UJL0uUTR4ss8B+ +jqf7wEeGykG6ne5lhg06cgVj0wzq52UPv5a3mGb6xlj792EQ3LFmQZ0XqQIDAQAB +AoGAezhk0e/0DnsjjdyMAQv0zmZc63opUtaLgF4+0lO8yeQ77+St/CXWQ9ofypJH +R0eyXmBc0lTqo7H0KQMhfkR89KjNa/MJ8MPUn114Gb68mtKO2lwt19fh9aR8bfNH +7BDE+KX5d0DfRYgajOW7I9TVFKxkvGsIxHXGevue2/hZOAECQQDlsg625dpBQjbl +8nnRIMjGkSVbS/uxMr5jW17h3mMlXsas2wLWHFASgl0EkHYdUaLKwvCDYEIxbiy3 +CFdTmUwpAkEAySRB9XF66lW0xZt/KSE7UoBeQX03/OE8Rf3X4awPx9Ppb49Cbns0 +jKwqirZt2wTNB0GnbH04PhmEKwE/OJbfgQJAW6z2fH8+3h78ZEij4BjyqXYS795i +xXWYUXWNaB7neWnbZ/A9sJE6UDjhwUmbKtaDX+PwNK89nBb6F89nc0FTCQJAReMe +M9zJG3DKDbr4lN7iEMlfdpu+f1P3ME6B2vyAwyrDOirppx+R46rSYT3/r5DceD/8 +nzpm91TAUnztbYkmgQJBANbOtpCtC+XBO+ry6VVq+CCZX7IEYAcTd8L6AQGKw2V6 +iKRF5P+sraQ5hzy8zutPE+OnDfcf2OZgWCoYoUBTLSQ= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/cernetxmu/cernetxmu.cert b/server/component/planetlab/cernetxmu/cernetxmu.cert new file mode 100644 index 00000000..0549510f --- /dev/null +++ b/server/component/planetlab/cernetxmu/cernetxmu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0eG11 +MB4XDTA4MDMyODAzNDUxN1oXDTEzMDMyNzAzNDUxN1owFDESMBAGA1UEAxMJY2Vy +bmV0eG11MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjHAvqs0SoOQvZa/on +VVJoSwj76HhGQVkPnDdN8kFOelHTOYIBU1t1tR6AeDam5Q9Cz9R+7phd04P1cZYX +sbK3dpTaAx9/QtdlOYtJhb8Czl02VGiAIKGtucWGwdUqBhDjyL9OtAQLCeYYRDOR +41FITTS8g1QoUuaddMkULWlCIQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAOEAEp5/ +fQsgpnUDp91rQkyp8kXVynwIGcq/yexKVP1sXR0B+RiSQNYae/Z80AFdyjaGxXv5 +54eaxTB4+nslYgSH5112freERD/VQVI5g265DBQbNslWM8cAjZKCznxE6+DYB+rq +3MXDSynVGJ/FiO9dQ9ZMLzYAJy677iI0Dxve +-----END CERTIFICATE----- diff --git a/server/component/planetlab/cernetxmu/cernetxmu.pkey b/server/component/planetlab/cernetxmu/cernetxmu.pkey new file mode 100644 index 00000000..90cf5e82 --- /dev/null +++ b/server/component/planetlab/cernetxmu/cernetxmu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDjHAvqs0SoOQvZa/onVVJoSwj76HhGQVkPnDdN8kFOelHTOYIB +U1t1tR6AeDam5Q9Cz9R+7phd04P1cZYXsbK3dpTaAx9/QtdlOYtJhb8Czl02VGiA +IKGtucWGwdUqBhDjyL9OtAQLCeYYRDOR41FITTS8g1QoUuaddMkULWlCIQIDAQAB +AoGASnlhAwbkZdHHK/Y3ovxcuKyadpkGD+vP+8l7bUka11RPTtfV5P9jx5asOO6y +5UnKFlu20CUHvATnie5EjOKNuvOm9/XypubZy5kY2phGx4xeWNylqmdvPb6QF1tQ +AnLCMZqZoDG7IQqqJpHeWCBDXQj2c/qIoN1Gu+8ILCqG6H0CQQD4Yd9dcjxwgdxy +ASRcEf6KB9uZwLHoHOrDJasz04bRdvD+kc1nnOjLFeX9SmpYOSKOn9Nhbmq7UVHq +YREOG4O7AkEA6hMnqdnBBdtiOMHoovWAx+oJawqjdKR7IvZ1ZJWKD+SYqpKUnYsW +N3wwwIVhQvAPZMuffikGytJCDLK1srad0wJBAJ0xM69sEJwTU3RDDMPID5NDjdMs +hGslgd2nBUZzZCtEXxh9JcWhJCMC5N78LXlQD3K764cJ3jpWKMVwUN7gwukCQQDO +ZBljAGfb/Da9CO1RUts8arXnNjguDyGsEFguWlSj8tJSBHEaAJuUTOLHvlOmK/nG +zGxTV2VvzLkEbUcczzyVAkEAitZ/SQKEFIKyqTp8UJhaWOEl8cXXKq4BF2yUNBqL +cJF/gEpK+1pa9cL5l30ZjQsI3UglZvKpe0PI0zLNN2aAzw== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/cernetzju/cernetzju.cert b/server/component/planetlab/cernetzju/cernetzju.cert new file mode 100644 index 00000000..7bce17ce --- /dev/null +++ b/server/component/planetlab/cernetzju/cernetzju.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0emp1 +MB4XDTA4MDMyODAzNDUxN1oXDTEzMDMyNzAzNDUxN1owFDESMBAGA1UEAxMJY2Vy +bmV0emp1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC41psBzJCUM4N89bkl +ZscR7AS6/06JI5dA2X0XHEkJ1YJhHAVOWL/4N0ocHe4XjI58zp8ZH7Zs1p/Ypb0a +i0Blgowxmlmiljo6QxcySp/7Gf2c2v5WvR2jooL4ifrqE4tvaGP8Jbe6taLJ8dh0 +o8vkZZAQBKHqBfIIqThtUOsdFwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAFPo1/q8 +a9GbA8l6BZBMNdnRv3ltdV0qETyXOas2Z+NRjutGUXBw5Tgz2+6OUIyw8+nzfd9U +IE6jOm2es9gz1e8uhpHpbc9f/BHZu7WNF7uiszMmlw4R5eMou3AGEQGP92PL/VG6 +fdPU1NYJCF0vUHePSuoE9r2eQdoFeYEG7b5J +-----END CERTIFICATE----- diff --git a/server/component/planetlab/cernetzju/cernetzju.pkey b/server/component/planetlab/cernetzju/cernetzju.pkey new file mode 100644 index 00000000..1ccc56f4 --- /dev/null +++ b/server/component/planetlab/cernetzju/cernetzju.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQC41psBzJCUM4N89bklZscR7AS6/06JI5dA2X0XHEkJ1YJhHAVO +WL/4N0ocHe4XjI58zp8ZH7Zs1p/Ypb0ai0Blgowxmlmiljo6QxcySp/7Gf2c2v5W +vR2jooL4ifrqE4tvaGP8Jbe6taLJ8dh0o8vkZZAQBKHqBfIIqThtUOsdFwIDAQAB +AoGAILdbmGXs8U5s56FWtBgNBE8SR0cJT5zNGN1mFsEa7HKuMSIUjlmHIRgoNfHW +QrTOQ6kO4BOM5pbWlDJB1oDvVLsTH1PXMl6sLuy4/PMVjwqKLhXOOxEIqfGY+axM +VfHXX5+N9BDYUCKVKJI/njqOvZrNvLPfLjM7YZI6t+vafIECQQDsFSPVsCejDqJj +rH2kJOesdsHZXjWDVvUIzXBnCHdkQRPjdPh9j7/kxpY5xAf5y7YhA+J6hhLK4g92 +K2dj7fvrAkEAyG6z7R/8aMkhYvMkq7jSdGKmCojOQzpB+KEn+dq9lThRIFpHIEqP +8CtndjjImXjDERjmh7pWpdde8ilmh/K0hQJAPQa17a4MgPTue0+CZuT3UjicoYDd +2manDrB0Zt3kZvD/oCODfImlNBE1khcfbK4BFYW4jK2NvA41qvlLT6ScIwJACjJH +iPqllpcU0bnY1buTSURzefm3tIfUL1fTdsx/9IVm6yRsleH1LJyoqMT+v3/7PHVt +1N3P5qPsOpmMk8HvGQJAdaW/Ipy6ZoNxNTH/s2kURF9ppkBMO0FAkENe/ELglcM7 +BHudxfWofoJ7mSwDKSdkaaZMXoQ65GFZj26SXqw9yw== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/cred_file b/server/component/planetlab/cred_file new file mode 100644 index 00000000..baee0f48 --- /dev/null +++ b/server/component/planetlab/cred_file @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFDCCAX0CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDUwNVoXDTA4MDUwODE5NDUwNVowHzEdMBsGA1UEAxMUUmVn +aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALWW +L+HnZBsm25whBQRhkxmQDy1ZxL1/RWQA81Ln855GFpD+IsRFAjYRX+uY8K4BFCGV +kuGbljm/G8cb9trpFv29goQwO6NnB1zdCOEBthLvZXbytt0h4fKwnsl4bP0nU4Mt +LNtwK3lqYtlww+a78briJ5YjxAxTFiAITW63dsjVAgMBAAGjcDBuMGwGA1UdEQEB +/wRiMGCGXmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt +MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6Y29tcDpwbGFu +ZXRsYWIwDQYJKoZIhvcNAQEEBQADgYEAAXHGFK7T0PrNSNk0kDYeHm33WuMars2w +LNAbFiqDmvJONGq1x7RmBSnskrqyI+pkMA3qHwnq5ixqcr+B45jOZfuZuhwQqSLc +7iR06F3AC3Xad+uN++JR9zXUueNcy4hKrQPkIrPOSZJKow9IWEk/3f3TFQKu+pfm +7gaaRN11vAg= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/equinixsi/equinixsi.cert b/server/component/planetlab/equinixsi/equinixsi.cert new file mode 100644 index 00000000..22cccd53 --- /dev/null +++ b/server/component/planetlab/equinixsi/equinixsi.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJZXF1aW5peHNp +MB4XDTA4MDMyODAzNDUxNFoXDTEzMDMyNzAzNDUxNFowFDESMBAGA1UEAxMJZXF1 +aW5peHNpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUiF/QE/IzkQQ47Vs +Y+gOMig7vjYkZydOv9GV4IO75rcvWi46jzdziQusIa8IHBLIKq/EXbIDttS1vmr3 +JDzvBey3/ZLJVNyjlU309L3IfGLQn2KxhvO7Rtck6olpuvy3ehmRAI6YiTu3JLD1 +Vf/hmkkf8qWUUv3QxeNXn9i+AQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAC6Ez075 +hyhPyqwj3e30GoT5VSxZ7EPNFJ5s9QjF1XKEdBvkjydaZpZU9kS4tqfWWkubr9kr +z/z8VEBJJibOmXn5m1k9qDKWvdJuajstq9hy0T3qkEF0bkbCIbRpv6ELWBdEyhXs ++xiOGvZri4tN3X8d9No8+iIP6JVGHpfedIp2 +-----END CERTIFICATE----- diff --git a/server/component/planetlab/equinixsi/equinixsi.pkey b/server/component/planetlab/equinixsi/equinixsi.pkey new file mode 100644 index 00000000..ed8b3664 --- /dev/null +++ b/server/component/planetlab/equinixsi/equinixsi.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQCwUiF/QE/IzkQQ47VsY+gOMig7vjYkZydOv9GV4IO75rcvWi46 +jzdziQusIa8IHBLIKq/EXbIDttS1vmr3JDzvBey3/ZLJVNyjlU309L3IfGLQn2Kx +hvO7Rtck6olpuvy3ehmRAI6YiTu3JLD1Vf/hmkkf8qWUUv3QxeNXn9i+AQIDAQAB +AoGAVLiCA+Tg8Tm7FupzCAvROtD66AnzdfZiusIMcJmacrTfHE+Wmuip2kflZeYh +diIXHDr2jcH/gS1ec511RB8Tb3FVX4Hz7UQpE80d8gHwANKCRVzkvOpjWT7P2w9E +Nr2uzoPm9tTl0pD9eKPywCX4fwHozdNsHg/KHXDiTzz30IkCQQDnx4UWjPR3cur1 +LLv+LtMlKzUdNPROykd5xDIyPijg3oIeFVtnbwJFfeNM/NpTcKAEdTpfGurSEQqj +0lx9NWFHAkEAwr8A3MBpT17T8HOyKN01Fq0EA0JTIrrxKFwuJ3aqRu2Cv0QzB8Lu +OEt2uzTLtVb5s0pxumrtsfYD8TGDt8ZKdwJAGy61Fw305cVedN6INak8LhHBKum4 +9TyX4Vn3IRlVJfoyfGC41YqZU5kN/UtyN3Lv8VXmQJ0hiP1iqA/VtQF7pQJAX4/Y +fXqRcpgmyeQL9Y9uwJzPzkWag/1V3yc0orrRHZLoyLBPlixqNweY0I48s9RlHTyX +iBF2aBA/qPhSGTjdSwJAascMKL0kxlK38BsUa/EEVgY9ljSLRZ503BfJRoAfDtJt +sDugaoW6uThetvCpmBraYE8vH9xT0Gd1z7HZAK3YzA== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/aston/aston.cert b/server/component/planetlab/eu/aston/aston.cert new file mode 100644 index 00000000..df8fa5fc --- /dev/null +++ b/server/component/planetlab/eu/aston/aston.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVhc3RvbjAeFw0w +ODAzMjgwMzQ1MTNaFw0xMzAzMjcwMzQ1MTNaMBAxDjAMBgNVBAMTBWFzdG9uMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhItY3WxNdSEOgvMlmQJDU4SpDqUmZ +/cLkXhdkkgend1lysqTBGd0zUaq153a7vdyVFlDjjCWDy9IcWvzXxm+zW0AiocWO +vkA3jSNlZlAFelTPQymkyemdoRVwDXwq5jLjd06Ce4Jw+O1Gmx16FoHAhsiEusn7 +9cHDLmlv2HtrhwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAMkOlb+SEM8cKIzNe2vN +UAm5/OQvCjsXWBMzPJJJqLjpLLXCmyU67qnF6vFcPTYbjD3qWVUmYuhDsmYi9X1K +RFVaCzVbawv8S327/IjUAmJgqrfZWbx2n0jXRh9L4sCJKN+byHebx4Rdn/l7tNK3 +rurToaW1yGisqsoxalMAgzHu +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/aston/aston.pkey b/server/component/planetlab/eu/aston/aston.pkey new file mode 100644 index 00000000..57f18eb3 --- /dev/null +++ b/server/component/planetlab/eu/aston/aston.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXwIBAAKBgQDhItY3WxNdSEOgvMlmQJDU4SpDqUmZ/cLkXhdkkgend1lysqTB +Gd0zUaq153a7vdyVFlDjjCWDy9IcWvzXxm+zW0AiocWOvkA3jSNlZlAFelTPQymk +yemdoRVwDXwq5jLjd06Ce4Jw+O1Gmx16FoHAhsiEusn79cHDLmlv2HtrhwIDAQAB +AoGBAMjb8c61XNNus5dmlzC5Df4/XRu8n0PaGNTx9WDuwBFy88TXCRKW5rjwdaOQ +/GeHfpMss8IvuRCa+bv+mXJRQjlQIUe0ZvPtaPu7btoWjNXpb7GXYAg5n1w3KV8l +73UN7ctJqfDTx0zqOi/rG3Ifd1dHEiOXnb2OgCHzAcx5L+jhAkEA8MoOR5nc4Hrf +Xzux9GbjF8rOHJhbBgzTok/4cpbQAkIbpe/Y5BvPaC87wI58dg74IWVBFN4mEyAW +P6h4mnnBHwJBAO9bpNsBCjFbjzRChJ38zLe3beu5glNeLXxX2/EIPvEiEPbeeNgw +zRRDFwdOxeMHAMK6KYB9VJnz8SsEmrBpAJkCQQDnkxv6prJzvhhXqbyy9cSQHD7v +52MbRXjAULL72alBkryucSah81EcvNh1j1OJ40mmLJBT9nadzC05mdgrkM83AkEA +ihaT8CkUaU9KObsaaU78CA1R5AmdD12o3jCN2euI7HJb2SCWFRtqZQMjmPqwHX7f +yHfAE7m6gisC+m9oktexGQJBAIf0MBJe9emMEpm1O7x4GnCc4UuxbLwoM3NLj9vU +FnOWfwtdsh4kZGsvFDrVutkQ69Myu7wO0P9j2V04ZPHqFxI= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/bamberg/bamberg.cert b/server/component/planetlab/eu/bamberg/bamberg.cert new file mode 100644 index 00000000..af917cc8 --- /dev/null +++ b/server/component/planetlab/eu/bamberg/bamberg.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdiYW1iZXJnMB4X +DTA4MDMyODAzNDUxMloXDTEzMDMyNzAzNDUxMlowEjEQMA4GA1UEAxMHYmFtYmVy +ZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsTjYSNopBhkruvqj0irmcG9Q +6yZkJ5855UBI6Mg3PPU+FZdaNjqaLUQ7KYLGaWOVEUiYU2ibLxSyqkcdoPgSitoK +kB1jQvDH7zRnxiIvcN5a3I9lZe2V1/pMOEH3v4dffTCn+NjuqjBDxq/nOpy9NS+f +6QUX11fmlyvX+85NYa8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA8Nn0ZAryb+VXB +44LNQfZUgOzpTE+E4QwN1kw12TZ7zup0syf9lw47bbRraUTo+4Be0zQ3sSAV4WWG +0IffaXHMF46mecGiotu5JzU7kqAhbMfWZ9cdY7emtErN5Q2R7qNt4gt3qTPFLQE2 +xkw4xqs4KVWaHDIR5cJcQacotiEarA== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/bamberg/bamberg.pkey b/server/component/planetlab/eu/bamberg/bamberg.pkey new file mode 100644 index 00000000..865bc2ec --- /dev/null +++ b/server/component/planetlab/eu/bamberg/bamberg.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQCxONhI2ikGGSu6+qPSKuZwb1DrJmQnnznlQEjoyDc89T4Vl1o2 +OpotRDspgsZpY5URSJhTaJsvFLKqRx2g+BKK2gqQHWNC8MfvNGfGIi9w3lrcj2Vl +7ZXX+kw4Qfe/h199MKf42O6qMEPGr+c6nL01L5/pBRfXV+aXK9f7zk1hrwIDAQAB +AoGAQF0+4Caro5Vcton1GY2PJ+Kl5uGImoNPyZ0xXanpte/z3m+byfo6qJoRSqA+ +Y2RRbXeKKzDgu5au1P0DG8U9Jim59yDkHfyCgPiPrnbKZGsYskTrjYlNtiFdS5gi +5iiKTk4rvM0RvpdfJq9eO1lAFmFfkaRdCcdwG4Pn1Q3zkwECQQDkE0e2htlohoCM +Cli5M7Ht+xWQk0MJJk213iyQSw4NKg81/0AKCVC5TCUQNbkqNcH3YbFgsTBvxL7i +r69SVx/vAkEAxuui43Wqz48Bepq+XyTMBeT6oBxX+MWA2wL546OMSo6rNxqccsJg +ZpQvsnDhJ4xsTIy+Ctl/INB7FE/50hAaQQJAG2fhryInD7NR0QIRRTfcAo+wOK4p +WPkcT2VCD5ilOJm8OC3SwSH7bDilH3yFInhRNWusx8Si4FtQ4KZht9A2SwJAYSPJ +E9LuaxWm3zyaItRRXb+INJAi1bV9S3aUmXnQlMg/DFXOeKw7b1yGPlmpWirU6D0C +wUGdN2UX9b9ofBCpAQJAbTWBCa0slC0jevP9lpFqD95IuqIdUqvLeA161/wFF66K +MXfLyE879gEq0ymOEhXvIH1HqX/1ntZy8MBjsrS7ZA== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/basel/basel.cert b/server/component/planetlab/eu/basel/basel.cert new file mode 100644 index 00000000..e9c3291c --- /dev/null +++ b/server/component/planetlab/eu/basel/basel.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwViYXNlbDAeFw0w +ODAzMjgwMzQ1MTFaFw0xMzAzMjcwMzQ1MTFaMBAxDjAMBgNVBAMTBWJhc2VsMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCm6vgvoOYyxRFARTDsAr4roIVljF8A +C2oTcRO9rwMlOjv351KNn1J44I6Wbo7k96kl7ss/hDJ6rh3mabUI1X5QSKRW+qgv +o9nNXB8uaxjZYImzxAh/lXigP7gSFFKduDg1wvQPQ9JrUEmHGDh79R3AnXQy46Qd +RCzi1tWTdCOAXQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAApNt6gFVAGcaMqKfyXm +NaWSDywxQlfLeakh4cSl2RQRvzeagb7WknzUCTcyAcVTS+FTWF2ar4CN4T7kFkIJ +8cSARUnEAdiovLluIFjsHT6cplSlVo4XyOmBJc2nV/kx03O/ZVE2KzXNmhUL2ILH +mZSaBedAKzRa0DYNfHZNGkZW +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/basel/basel.pkey b/server/component/planetlab/eu/basel/basel.pkey new file mode 100644 index 00000000..90983dc9 --- /dev/null +++ b/server/component/planetlab/eu/basel/basel.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCm6vgvoOYyxRFARTDsAr4roIVljF8AC2oTcRO9rwMlOjv351KN +n1J44I6Wbo7k96kl7ss/hDJ6rh3mabUI1X5QSKRW+qgvo9nNXB8uaxjZYImzxAh/ +lXigP7gSFFKduDg1wvQPQ9JrUEmHGDh79R3AnXQy46QdRCzi1tWTdCOAXQIDAQAB +AoGAehWWHU/zzuJwca+pzpVa/pHTv6hhu6idl0a3h59AD7R+NB3PNaJ4Mc0cvU5z +2WiDISl9IyHPwgcj+2kJbkKotWU14B/0d1JtZMQkZNzeTjRutFnetLlq+8GHbB3O +7aGbm+18/THVjRa/iUFXMN+jFNErtEB1mcYc3I+pgdM3DAECQQDWWeOli4JCtDVh +BR2Gu6fbttMDGhXhjLsXa5bCqoDQldy6GGNkTtHMoCQeEX1Ei+EpkvKpOHJ8EBt+ ++9hrZ6DdAkEAx1mviJJWE3Uhn45x1EsEysVk1hBl1ePFY2nr4hhVjkykoaDrl/og +LubbmNUGaG2eMDB6QlYUL9Mw9STNSOGlgQJANKAZDdm0f1/zAwDYgO2thnnaUJak +7J06icN2XhCyU4OXj3DRZh0b0Rs4AtHUaXHWM/jJ7tXW9bKWrZRzS9tDWQJBAMUi +yrRKyjY5qcNokOZ4PUfsRlhuJNaMhQFXmL2ghNLQtiljwjcrUbIv988+MjUI2dsb +xXteNl5JAewatasyAYECQQCr048hst5rvKBQtWwgebSM6C08rXPjMsMEyhXuNkl9 +HnDilxnQJ9H1EXZMAoO3SYTQu6OFcvShMGjEtVfkId7p +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/budapest/budapest.cert b/server/component/planetlab/eu/budapest/budapest.cert new file mode 100644 index 00000000..84b84fe9 --- /dev/null +++ b/server/component/planetlab/eu/budapest/budapest.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhidWRhcGVzdDAe +Fw0wODAzMjgwMzQ1MTJaFw0xMzAzMjcwMzQ1MTJaMBMxETAPBgNVBAMTCGJ1ZGFw +ZXN0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC4Ia89aJVladDMP3vI6Ir +vnNrpG9nUKC1/+G57iTwdcMrD6VCMVOh2LiXIvhJ+DqMRXObj/mtYBEOdlbVPiaQ +d9N/p6d5Ohd0WgG4gIvWFVjVpXb48fNxOdJnbgeJLl04Y/wREx/ibJ86+z2oi1NS +Mwh3AuQTNWvC7PIAaOvzuQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJiOVAY5zlLp +qiBT/03vSMPy/7n/RPzUcMUV05bmKk4NX0309/MxWcmyyfeG4sZ32baoT2hBjivj +0DaoGTrvp2BjXBuAyOwpqBKD5xx7XVrqZo8SGavAzfmw/E3aWGsakrX+jEzSb+k+ +lEPs5Nf+HWcBXN09CHRvjrKOeLyHOK0J +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/budapest/budapest.pkey b/server/component/planetlab/eu/budapest/budapest.pkey new file mode 100644 index 00000000..258340aa --- /dev/null +++ b/server/component/planetlab/eu/budapest/budapest.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDC4Ia89aJVladDMP3vI6IrvnNrpG9nUKC1/+G57iTwdcMrD6VC +MVOh2LiXIvhJ+DqMRXObj/mtYBEOdlbVPiaQd9N/p6d5Ohd0WgG4gIvWFVjVpXb4 +8fNxOdJnbgeJLl04Y/wREx/ibJ86+z2oi1NSMwh3AuQTNWvC7PIAaOvzuQIDAQAB +AoGAB1a1PEBz0I1GMz2REoRhAwy1BAS5PUbIBpKQSZQyR+vnYaPBMXDyGVI0AV0L +xJ1YdxfWdrFBUcogWk8Sjg09Hnq+uDzvNJeCCnpIQXrK7B07o6qxNc616Jo3XzeL +zY8fwzallYU0vUqdKv/MlNQUoBGZEFDPLSUrb6+I7GJTnxECQQD1lQeDX87UwNea +9jJC2RLLoLnnbuo9zg5djuBOgbpNgP8Qv7WCtcinhD23O+a/4+mW/nf+6fzUfnK3 +gQyShIBDAkEAyyTZroDD1sA1ZmKuK9C/89uyhywaVFTB3K5tGJIkC9+3NUeK/U02 +d0MRfve76tFP5jDMnfYmhjVrSOD8oOFKUwJBAM9IHrNQZq9EpbbyHrI1rpuY6dDh +2WyZQ57MPZ+F9837F073wSi2bsqV39GNCdLleAAugPH0ZaalpAYnMolotSkCQQCh ++7ZgQWjnushZ5eIAKiqFpu/KfU5ZZGRZNfTkHNQFa9RI9c1Mgd8mZiJzXdNIQLM3 +WD4wzvCVH892g4CuQDblAkBvNtWJC8d8dfGCfl/7j8v2A6soJ7e/VdaGY5Y0Gd6t +IikUrHPy96AQ6IvyLyC2+Hu2hwp+F93YysY0EfUpOiWV +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/cesnet/cesnet.cert b/server/component/planetlab/eu/cesnet/cesnet.cert new file mode 100644 index 00000000..bcbf30c9 --- /dev/null +++ b/server/component/planetlab/eu/cesnet/cesnet.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZjZXNuZXQwHhcN +MDgwMzI4MDM0NTEyWhcNMTMwMzI3MDM0NTEyWjARMQ8wDQYDVQQDEwZjZXNuZXQw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMmLxk8ynQsQmyHLGBT/LJbnDiLA +Lb+NWL83XfYATmyUepxf3q/QL5c2pn5zWEn2tSj7Vk/i77n77uklRsz0Fyklp9Fm +GnyRvL32TC/Q5G1YkVQD/TLwaqgFzgEalWxyxvWx6S1XphVH3N4KdQ6l4YqANAL4 +wM5JMDl6zSNb6owlAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAPSF/xBjhuhA+G+Wo +mLLPzOmZMFvtzJDkBldiVHVW/BnH9m6tvpzot/ICJseCOMjL4FLr5XsNPQGY5Q06 +dMBOrAQ5F+P3797Vryqnt+aZ2Q7/3qmkz1U90xDWkY0YnPay99w1op8t+bU/urOB +QCPBP5eXEAiW3YHoJglYY02mTtM= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/cesnet/cesnet.pkey b/server/component/planetlab/eu/cesnet/cesnet.pkey new file mode 100644 index 00000000..9212c24b --- /dev/null +++ b/server/component/planetlab/eu/cesnet/cesnet.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDJi8ZPMp0LEJshyxgU/yyW5w4iwC2/jVi/N132AE5slHqcX96v +0C+XNqZ+c1hJ9rUo+1ZP4u+5++7pJUbM9BcpJafRZhp8kby99kwv0ORtWJFUA/0y +8GqoBc4BGpVscsb1sektV6YVR9zeCnUOpeGKgDQC+MDOSTA5es0jW+qMJQIDAQAB +AoGAQM8Te9AYs8ApQlqeadIMMpIl94K4s0nuab6SFlLO5RdxvesOHpbhVsyaCTtp +/o64fm8juBiPYczjbFEyTSGIeH5dKZt2HCR3/veYt3Y9TWRUKiJIyHX6T9lUvk3c +a94ouLAbnznug/rZzgBgbEsTljxEA5l4xY0W+bGF64UnYgECQQDyv0nSirrOJZsN +oCtqeuRhW3Sb1+3stBNNSE8Nx+DhVyiH3/7w5InpWko2T+FH8bS0itDIqVrew6zM +ENds6yRBAkEA1IylHKnhEt1IqzVk/JjFBzn5FN/TD2PPDujGvgdSoxefk3lP9Wvh +TzsdUFZ9FgYrwRbkIhfNh2CvFCYjhHOe5QJALwaPrpHhjn4Kg6E7x+z2wUWOWYKD +PQ/FjXsslWbbUcwotenW4aPkc6hiKBNheSaB81fRCo6EZBNULlQ054zGAQJARHeV +zFjwtrnvaa9Ge5PejAhhsxayj1eQYHYdZyNGvGCkt8WxOxZoOrSJKdLiclDEkWuF +S3Itc7lyTGRItqbj/QJAVp3kuDwvZFPOPvKKxIGud8kDq6DUx6Qh1VBEzieECcBZ +IHxAnhhS7yrhx5TGBb60ElsYlN8Cz5cHT2rrt7h2fw== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/enst/enst.cert b/server/component/planetlab/eu/enst/enst.cert new file mode 100644 index 00000000..aef7771d --- /dev/null +++ b/server/component/planetlab/eu/enst/enst.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRlbnN0MB4XDTA4 +MDMyODAzNDUxMVoXDTEzMDMyNzAzNDUxMVowDzENMAsGA1UEAxMEZW5zdDCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzythg9Lyz4WQExbBco51Yp5eopHFTG62 +dqqmCKxwfUMcfdNejdZMpVHpK22ZguCLY+jzErF081hrvsnAh8mnYm2YgJQB+UH8 +VMv8+T1tZ93qw+0Fb/Ge2tfy66syLGYxt1Tv43wVhBpnQHBZLhp3bhB3m4iaCBBh +FPOuovHAHPsCAwEAATANBgkqhkiG9w0BAQQFAAOBgQArY4c80aunEoaNfFeJ6a7a +aYz8ly5bLuhLPbPI5oM3JvtAVlFAvi1SdfYJei+CoJw8V79/hdcws7NyltCsAoyM +KE+sJo0XmOuaiPIbrAY1zMvDMUxNQV35L4emBS8xvkb4lMS564nybiaWkdTLcj57 +R+uQYSN+eUhYM0ISl1UyNQ== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/enst/enst.pkey b/server/component/planetlab/eu/enst/enst.pkey new file mode 100644 index 00000000..616175db --- /dev/null +++ b/server/component/planetlab/eu/enst/enst.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDPK2GD0vLPhZATFsFyjnVinl6ikcVMbrZ2qqYIrHB9Qxx9016N +1kylUekrbZmC4Itj6PMSsXTzWGu+ycCHyadibZiAlAH5QfxUy/z5PW1n3erD7QVv +8Z7a1/LrqzIsZjG3VO/jfBWEGmdAcFkuGnduEHebiJoIEGEU866i8cAc+wIDAQAB +AoGBAMrxbC1+0G2KIYERoZ9e/o8FJR+MPQKK0iOdN9j3U5rhy19XWCEJ9Ttd6lSo +oOEcpm/RG40MWcyoqaPUb86VNGnr9OVMz1aKgtd7UT5/wSH6qNQqTyxmc5UvT9a5 +HYuZGrLhYKqpdHgCTAs8fFadBlqvie7Egjk4xUDgqL86U4uBAkEA75w/6Rjc02Tg +3CMRO0ND/HhGk5QmPKr9O1VvoKauHVJ7BcggiSzVJNDfs9wXCBE59N5RW5QuBesC ++9A94Uv+uQJBAN1XEVpHrp+uQO+HgCMWUroihS8xdeXzmJFl7AoUzisdpgrf378T +CozPhWtmVTVPbYlpw9mRVDUFtfG0mxdVP1MCQQCz40iQBZx0EH5IhwM+zMdT2jCS +R11VmsG3M/M0Vy7M0MmPk6npkoEKvM3VyFx6MASk8+t8p4jN5Jw+1R4/8L/xAkAY +z1OgnPxT5cJdlwCj7jKjro7jNVYTynRFh/knQCHD73TXLzTzQ/0gv3ojCbtvWFHc +30AWuRWJQ/Sa/TWNLf8FAkByoMy2N0qxZHW56INWxeQxLUjQNjreokzc+uxnuid7 +99G90MYtDF2xB4MuoGEmuhncN2ootOzNJBtoJBhgXPrh +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/ethzcs/ethzcs.cert b/server/component/planetlab/eu/ethzcs/ethzcs.cert new file mode 100644 index 00000000..09989f46 --- /dev/null +++ b/server/component/planetlab/eu/ethzcs/ethzcs.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZldGh6Y3MwHhcN +MDgwMzI4MDM0NTExWhcNMTMwMzI3MDM0NTExWjARMQ8wDQYDVQQDEwZldGh6Y3Mw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMOZHp315vFgwqJt8NGyGjgjgGNy +pIjQraOeOI7NiQtQGPatyHdLfQcx3NP/vr9IWvBiWuzc8nsefBGcCo7/zHgdPgFC +4NwuLC+7wwx74vaUfQzZ/w4iwyCdK/z7D72N0aeArDXJtO6WyQDJ4Obq4VEynic/ ++w1WqRiMocL1vcTDAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAmqgTWVs1am54+9uG +o51Frye/U7bBuMIdQxW8sje31fpeovY5ax6L2VdwlpLzHHGTjwrt9P7QP1O+9Ate +t5PInr8dRtnHwaTnfvjCPCBqiVUV2eZdQ5ykMuMGp8GjGp3YItYYrW3zjoyxhjLg +n34+mlVKXVGJvsRNMtSd0QPqv+4= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/ethzcs/ethzcs.pkey b/server/component/planetlab/eu/ethzcs/ethzcs.pkey new file mode 100644 index 00000000..5d7f0517 --- /dev/null +++ b/server/component/planetlab/eu/ethzcs/ethzcs.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDDmR6d9ebxYMKibfDRsho4I4BjcqSI0K2jnjiOzYkLUBj2rch3 +S30HMdzT/76/SFrwYlrs3PJ7HnwRnAqO/8x4HT4BQuDcLiwvu8MMe+L2lH0M2f8O +IsMgnSv8+w+9jdGngKw1ybTulskAyeDm6uFRMp4nP/sNVqkYjKHC9b3EwwIDAQAB +AoGAQf3EHakcLK3nnOOYzzbWr8ASjfrc1igJnV1BWbSwmveAJKHHM7BtU2MYTRJI +6cJgpB+a67UzviQv2cUartpQwlIQCF0lbeODfV02NJuRvm7l2zabPnsD3Vpkd/fT +Ddypd58/fhtMkXC5in9OpkFBIhPZIBzoozGcRPBGBBCUKaECQQD0SFqoxNNpOIol +Uef52Ns5GRZqJAk3KL2bYQ4u60Wus06NZ9h0IaRHGXFCPmxjsFRBxOecZKIvtuKW +9fCTSSixAkEAzPry1EGgoFl293tSW/eVBa/ppkc20Xqum6d0LAff1U7m7xYJgDKS +NPnF0hFOzJ6sdnSu2EUm2dfdVfQ0Bq+hswJAHIeOvwMtxa4qxC0KsK1Y/RQnAAJx +aRXC/zCYnXYwzzR1yiIEr5t2Oi+IgLoVopbnYD8E5ckDABuV3xeeHzV+IQJAXu3N +La2jBP/Jz71GHB9h3XtlesM6SPNHEAESFR4kdDYRTyJmjf9dpLkT+0BWvP6zIjzR +iIkl//cvoxHwUjRebwJAGG5LWzSUdoKEdJIaVY+Di2BNcnCrY9aPHE1MfmPrMWe6 +6uoRR1h2M+Zjwg8utfZZHiSVXRD5aiXbpxONw6Jsww== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/eu.cert b/server/component/planetlab/eu/eu.cert new file mode 100644 index 00000000..71503229 --- /dev/null +++ b/server/component/planetlab/eu/eu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJldTAeFw0wODAz +MjgwMzQ1MTBaFw0xMzAzMjcwMzQ1MTBaMA0xCzAJBgNVBAMTAmV1MIGfMA0GCSqG +SIb3DQEBAQUAA4GNADCBiQKBgQDqHC9YfOeLuKZo00SXcAb0nbblh6CXXC12EWRP +ONatusAytLXOmwFFx4/wwAAkXoRFeigwbwIoOdasZxbXdTDEGIK2Ca3/ZgRaDJ/Q +Gox5xFSlQnDymMqQwKMy4orplR5F4sCvK7bX5eZ2TaJK/B/old4ztyUVD7fNWtaD +ywD09QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJlRUNLmYhdpShPAcZLTDtP8ThQg +ck9r1qS+nm/yH+vifbYxkcovj4mNk0QwT9Ji9wIqyBBLIWkiQHHKIZsLrqd44NWQ +Z72zY2tghAPZ5StfWXymMzSPXOlEYXeiKhh18jKwJCqNMQys/g/rc7cANT5zvHlL ++KgWEIeKa3eZ9g0a +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/eu.pkey b/server/component/planetlab/eu/eu.pkey new file mode 100644 index 00000000..d08593e4 --- /dev/null +++ b/server/component/planetlab/eu/eu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDqHC9YfOeLuKZo00SXcAb0nbblh6CXXC12EWRPONatusAytLXO +mwFFx4/wwAAkXoRFeigwbwIoOdasZxbXdTDEGIK2Ca3/ZgRaDJ/QGox5xFSlQnDy +mMqQwKMy4orplR5F4sCvK7bX5eZ2TaJK/B/old4ztyUVD7fNWtaDywD09QIDAQAB +AoGAUT/Q6rwGvEYscusHvisiLtlhtY15na5fFL/6eUg3sXnD5JU1F+xR577X5O0t +33FyJI69zflo3T8dkx4AHmzMrEfw+UKV4lxL7sIY3Z7+Myk0Xi3cQeMJZ2pmScOU +2aLXvoF8knBpvwN4aGriXyJLLCigwRnFk4Wv9yQypzQlWG0CQQD9jTeLbgwwUQNz +MnaNheqZFhCgjHaSs7q8klGZp7tPdf+pp0m2S8yZTx8BDCdAdbVeMFnxsq1ObP0X +ROBy/O3DAkEA7F7ogtQ8+XWUjDe+jowOQiGyBGeQzDBnG/EMZMg+m1yOd7vPW/Tt +UvfYM7E7DsI5kVPyb9IgrORtPRl2KAdO5wJAT9pJw//ElvLswzsBW1DxsYThd67F +KS6xgPIUAPBybXQcMLIe5Oq6ZQ4mFY5eTk7D8AYKTbSYIDry+oEWryA5QQJBALAv +pjwumyyOuiUyP/Xc65vbpeemksXApnqrWEOfBxujCAazlULD9EpNt3gAeTbtCyAK +ZMF47SYyNkK+wdXgbK0CQQD4FR/Zbo9fGuR6C+zV9BO/GfF2HP7986y4/UhPRqnB +AkCVOZTNTKGRMgtfWJ4uOX4lZofsVyt3JkZk4JZ1lD1q +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/eurecom/eurecom.cert b/server/component/planetlab/eu/eurecom/eurecom.cert new file mode 100644 index 00000000..20b67748 --- /dev/null +++ b/server/component/planetlab/eu/eurecom/eurecom.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdldXJlY29tMB4X +DTA4MDMyODAzNDUxMVoXDTEzMDMyNzAzNDUxMVowEjEQMA4GA1UEAxMHZXVyZWNv +bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwHptkJhfxO8csVHW3Nh6+Xdf +wSxDSLG/C1OB3MIaZ5hZx67Z2nY8yTq16btMr3KW6HkiUWcggFhm6ODIt6xZl/Hi +s2KnRuxPxHghmmflCcV9NOV+gSCS2fK6XVkEQWGjH9SbbSwaxuNsxgrremH1KEpt +lbMexhZEoCLPsK6AaDUCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCbalTuhd9eFTu0 +aSRh8h2MzQLrSFXvSeNxNEeMN+h7TAnDHa5foNB/AIrn6xKjwKGmRcIn6SCXXgsc +0l0Eo/Tp5VTyocYApeBz4Z5MQgS2Jhj+eAVjqzvpKet0vfzQvHCmCHD3hILtcZg7 +LQVHX3w7j+W8xgMuNzIVL+vvhr1+WQ== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/eurecom/eurecom.pkey b/server/component/planetlab/eu/eurecom/eurecom.pkey new file mode 100644 index 00000000..09e646e5 --- /dev/null +++ b/server/component/planetlab/eu/eurecom/eurecom.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDAem2QmF/E7xyxUdbc2Hr5d1/BLENIsb8LU4HcwhpnmFnHrtna +djzJOrXpu0yvcpboeSJRZyCAWGbo4Mi3rFmX8eKzYqdG7E/EeCGaZ+UJxX005X6B +IJLZ8rpdWQRBYaMf1JttLBrG42zGCut6YfUoSm2Vsx7GFkSgIs+wroBoNQIDAQAB +AoGBAKSo14xIXj16FQC4s2gQpfs+HSODezf4HyhQUxsIzk/rbHq/4Uzbs5quaCtA ++RRqoiDUaABdiddiSP9WNT+z6Jvw7/RHtVBA8/t+3IVol0J5JyZXIjtxHAIr5sJi +4zT6tibREPpA75JQS4tZb1jzh7o40FXLwjpT5h7DhHaYBECtAkEA5M/UzThkVqrh +MFJANc1JFbGxw14C5aad/KJ/w54Wp9ntAFaufzH/4LZJVv2z//nlh/3nIexZIXdI +BRjpgu9eewJBANdZX8LTrrwlBT1RIljK0CjQE3xQggOQyFMS2JgsLqco/ACvKDCe +vIlYhbrs7a3tQxz65CjOWEVn7ELeFllm7Q8CQGRJAwf/U1r5AkHfiu0J0KKFg1gR +eEuXP19fCYh/XYar6UhgtZJiI7glrPdHswDaUlPMYOVpZZdZZGN3i8ErkMkCQGOI +oJU5J/M4HTLZFEn7+7hRbCAySdWCDsUu2cOD8FA8xjU+wBGw3K2Sp8TdC4IvPqzf +XaNqtCvoO7AwXB4YT4sCQB2C92++rozjILLzaZCVcZB3/KTz3dhDm098gCjwT3FD +Qp9TJbGu2gHDMOi/+FkjebbcCPdIbi673jeWLRrq420= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/fokus/fokus.cert b/server/component/planetlab/eu/fokus/fokus.cert new file mode 100644 index 00000000..09bb7542 --- /dev/null +++ b/server/component/planetlab/eu/fokus/fokus.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVmb2t1czAeFw0w +ODAzMjgwMzQ1MTNaFw0xMzAzMjcwMzQ1MTNaMBAxDjAMBgNVBAMTBWZva3VzMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCvsj70OcS5KZc6ZSzgfhwO0rUQjRy +SwlywNLsOl1LiYEW3DMYsjM7itxsVHmgyc7MXQECx+drmrr1WMdaTJbtFUEQ+Cw/ +VPRvYL5lGeKb25GYN7AG5FbE/0In9wM16qBkIcCEACis+xfcKhBCWfC12N+WiCD/ +7PfJhesjAElv9wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAIxtLycCN44lgR7m6tPD +5QJriSSIcKh32mjtEmms3hz9wgIC77NLMxf3dUHZnbd5wHWzic5HowE2aICM3Ojw +5FX+AJNj6rbT3ay7YTnI9aqYj93Ae5ILvYUF3D0jx1bf/OelBGxxcDGDH0mfnLHb +nqgJIZy+ykHsGnCrfYpdTMi5 +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/fokus/fokus.pkey b/server/component/planetlab/eu/fokus/fokus.pkey new file mode 100644 index 00000000..717abc65 --- /dev/null +++ b/server/component/planetlab/eu/fokus/fokus.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDCvsj70OcS5KZc6ZSzgfhwO0rUQjRySwlywNLsOl1LiYEW3DMY +sjM7itxsVHmgyc7MXQECx+drmrr1WMdaTJbtFUEQ+Cw/VPRvYL5lGeKb25GYN7AG +5FbE/0In9wM16qBkIcCEACis+xfcKhBCWfC12N+WiCD/7PfJhesjAElv9wIDAQAB +AoGBAJ18N4AcUaFfsoFUi2IW6tenuz2nRE5hDAT2lhten2+khPX9oHyKLxApnVMl +hS5XxJpTY6viCO1ltWcPIjeN1EX+yjUrN+H1v3YMNf8+1bjXn3pbbtFS8kM0rCDO +08fGEzBoU344vGnQs+Ng7Lw+2S4Mp4Z3YGk2PuB0KJmvSyzhAkEA9PLGQdf4gliI +EjefsuGVl2Cu8/bNxcn+7vPl3vvnoMGDnI60DFNEGgAi8UthiX+nz7ErydQmj75Y +K9pdlti9WQJBAMuIJnVOrWlx6MbZzFM5SkpzHckdBkuZlUW+EvlLfQmfPUj6yq+v +Bl951m6RtZCqB5BgM/jl5EcSZnz29VlXXc8CQQCx3OehQBWvcGG9+K350lwxQ39G +n1vj1z1KfcfZFsmmrV3H/Mc4e+3jg13cIIR+tzc/VMMbFvW5Qtn7XeC/fDphAkEA +n/9ctDTwT4cTRVarr/TGePY7wQCHFWEbnmLISZ9VIP5EUB2OvkLp0J5Xuj3jLGDt +Z0qpMI2QQWqulKgSwXPTswJANzY+qdqxsP4AMAOsCnFEIWhHzQYxZsABupiztoUR +88vcCcUXfociKq2Rq2H32ZP/fUkqAH5fxFrHoYfv86RdVw== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/hawh/hawh.cert b/server/component/planetlab/eu/hawh/hawh.cert new file mode 100644 index 00000000..d3a9eee3 --- /dev/null +++ b/server/component/planetlab/eu/hawh/hawh.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRoYXdoMB4XDTA4 +MDMyODAzNDUxMloXDTEzMDMyNzAzNDUxMlowDzENMAsGA1UEAxMEaGF3aDCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAraNVWkOIx6q3QgWENg+ctj2zKPwqHzSn +esPQGV2/oeFflpLhcI3wkIunmmOkjTEKU21l91h7PZHhO8Unu9pijstrMSEV9dSF +9KS++UlFxNr1WUN1E24h0lGYpxg7at5jJyABYsZxicEDGTJC1KDz5hYlsJuzZOdP +m4fqtknWlUUCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBO5Ij8xJ4a/C8QyEwrhqqq +lPFmR6LOj9E7QKUDkvTN4aUcyAhwKFO3jPYUj0kTKEZrMYHfBuAZCOKuqZ3CsiM4 +Q3MbsrsK2QaaN7Y96Hi4+y6I2AxURhPny94+cvpuy+R772CImZcQkchbYkWN9PxS +6j9KZpingwedMCfTDhmaXg== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/hawh/hawh.pkey b/server/component/planetlab/eu/hawh/hawh.pkey new file mode 100644 index 00000000..18d860a0 --- /dev/null +++ b/server/component/planetlab/eu/hawh/hawh.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCto1VaQ4jHqrdCBYQ2D5y2PbMo/CofNKd6w9AZXb+h4V+WkuFw +jfCQi6eaY6SNMQpTbWX3WHs9keE7xSe72mKOy2sxIRX11IX0pL75SUXE2vVZQ3UT +biHSUZinGDtq3mMnIAFixnGJwQMZMkLUoPPmFiWwm7Nk50+bh+q2SdaVRQIDAQAB +AoGBAI1A7DRr8B+OD1rUJgPcm33dn5vd115fdUd3eBjKnRRRxXM2tdLchTDxiz0b +hked92p6+pJHFqq1u+blsjctpzJv1OkVwQAtAjMCEXJkV4oHp7WBQzkB38vrsSkj +61UY8+zx+s6f0T+ufOzP9X9hHBgnYG97iKH5thRBs2AHMyQBAkEA1buEGBmn7INw +fO3ZTLOlMbM+00sZ8XcUAKDL9wbTRUDTT50KMsBEv2FoyDozj2qzdQ1+VPQ+wjCJ +1gwNGZPcgQJBAM/5+7aWWDEK4XsbD1hD4eBQ9ExNEvDHX1SpC7pNRyEV7gb1zCRo +bfdrkTfEgVhkl8QdluRlmVFiMCEZW9Hy5sUCQQDMN1Y4nNL5RoGFrNFy2zddLJI7 +20dXk1qWWw1n46qcQhtlt3wWD+XgIte2cP3w65e6oQDzdUg9zZj13x/pL4GBAkAl +jERdmpchg41h5GjIzrig/vycKe4ZemVDq6FqaTlGR+dJamcIy7HO0aTOJLQVeVPN +HGp5ob4ka021LBbfuLLhAkAu23E7+Fu2juZHVnd/tbb59TRvewUHLMX1dNhRgQ6O +Dhio1INSE3+JfdMHWBuDKmh8mAlBE46GdAq0ejfvScVH +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/inria/inria.cert b/server/component/planetlab/eu/inria/inria.cert new file mode 100644 index 00000000..2af2bd6c --- /dev/null +++ b/server/component/planetlab/eu/inria/inria.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVpbnJpYTAeFw0w +ODAzMjgwMzQ1MTFaFw0xMzAzMjcwMzQ1MTFaMBAxDjAMBgNVBAMTBWlucmlhMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUB3CRlBac5jA61ydzRIu5ZlJIs1qg +UYkNbkFCqs5kb+g+NGU8/jZ6ib2NBYLZeiKULFly/TygM/RuCmCbXDm3HB1ua+Er +wfHH8PgCPC6xhukurBfIcW9z1m4xtIL59uSWHcSOTaaIUyUxpf+olRZSjVWCZXjA +w1FKO4Mcja7ZVwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAC0hE3yEmrKDcwHLDKvn +Aw+lESJrcRgMn5aR0i7gG+cyFImle2i/qVg1C8S2N0Fsama6gV08aRKoelkETlsl +rpbN1EEGmCyGXo0ZrKQcGyRGePtD4EBUNvVADwp3xsHgDLLN02NcxAbIe8V1tr79 +bN2MVTUfqGHYyqPSMAgWNpB0 +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/inria/inria.pkey b/server/component/planetlab/eu/inria/inria.pkey new file mode 100644 index 00000000..4fea2f51 --- /dev/null +++ b/server/component/planetlab/eu/inria/inria.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDUB3CRlBac5jA61ydzRIu5ZlJIs1qgUYkNbkFCqs5kb+g+NGU8 +/jZ6ib2NBYLZeiKULFly/TygM/RuCmCbXDm3HB1ua+ErwfHH8PgCPC6xhukurBfI +cW9z1m4xtIL59uSWHcSOTaaIUyUxpf+olRZSjVWCZXjAw1FKO4Mcja7ZVwIDAQAB +AoGAO8V5I2D22vY9RGkg0urQ5MwGiD4fXzB9DU82kH+sPT4a32ZP39jeLL8ls1qJ +X5uBofm6oaLn81WSI29DeqiOEB/zcu0QALv6qf1PzaZjJHMSA8nBpTShGPHngzKL +0i5aPmMulfwx8AvopxqGWuwXBoo5hYB186se0kDkh4aGL1ECQQD5FKhQgd1Q1EU7 +VZVwEIfyDkkXEGXHxZxCGKErTRvZY713FVgWKPbql2LoJLz/md9HzMJC5py6wraF +i4Q2eerfAkEA2etJ7mGKRlWk2jf6ujtcR5kpyY2WNJJAEl4Ad+5YBdut/qVwyp7c +qmB0cyXn4MiOPzNs9E+16hDS0UuaBDzYiQJBAI+cI3dXiN0Dpm8RZznXrioXpniP +0b8e5nsNbE9lA/uREDpKqiEMuWCErFggZoAQnbXuDss334GmpknVKQOnw40CQQDW +3dtAs2YuoYVxMN8EP0Fmy0tbk0J2RXntYkhd+GFMLWXq/l8vOeJkD8TiQI7YoYc4 +I9GbNvkseDgV69BJu2DZAkEAmq3b7bKzWV7LIzzT9C+n6sJk4ceHbOmNU1UUXEyR +piMtZ5Diiu/XIbMK3BX7DOgwyjZg3PYn6T1ETkiGLuEoiQ== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/irisa/irisa.cert b/server/component/planetlab/eu/irisa/irisa.cert new file mode 100644 index 00000000..35e46627 --- /dev/null +++ b/server/component/planetlab/eu/irisa/irisa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVpcmlzYTAeFw0w +ODAzMjgwMzQ1MTJaFw0xMzAzMjcwMzQ1MTJaMBAxDjAMBgNVBAMTBWlyaXNhMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4aHi15dxe2j22K6SaUVfn/M/qi93D +MNqm66kYfDnoHW1S578KuvYKm8LjHMxE1iEmQYaPBlUhuFI4GA2sXCvkwOa4DXmk +4Y9drbsXbes1xUKPgW4pk6aWUWoEF++Yom8oUs88Cj2fYj6hYWJMH+vwxe2hEug3 +GQJgt+PzwrwFUQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBADYmO3j6KxWng87gcqKy +WPYlXzsmHsY12l7SHxCvuVA/LWEi/+Lq/mIKs8NP0Vz3usTLC0Tlnux8zA3eY/BV +RogbG2zMCqMOWmGI6Cuk5www6kg8xcB0pEdEOSrCkdl6tOvD+P70qENdCyzTVRAq +UYu6jXXfgOqEFKsA8RsLyjz2 +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/irisa/irisa.pkey b/server/component/planetlab/eu/irisa/irisa.pkey new file mode 100644 index 00000000..9d45280a --- /dev/null +++ b/server/component/planetlab/eu/irisa/irisa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC4aHi15dxe2j22K6SaUVfn/M/qi93DMNqm66kYfDnoHW1S578K +uvYKm8LjHMxE1iEmQYaPBlUhuFI4GA2sXCvkwOa4DXmk4Y9drbsXbes1xUKPgW4p +k6aWUWoEF++Yom8oUs88Cj2fYj6hYWJMH+vwxe2hEug3GQJgt+PzwrwFUQIDAQAB +AoGBAJXYnq4AWG/jG15aXGjhTHNAZZsLiGpB2ork2AUDfPJ2Zw2FLyIDBkdchqKS +FhKhhVJW0IaL+MVrx7O5J/M0+pyIP7S4tC34+hmMEMEnLX5kz+5Ew0mz0X9DA3q6 +Y9tCpXMK1ZcMJ0+aKHKtQ3l+EO0UpW3ktbSyXP8n3pFtahU5AkEA3w0Otqu+PtyR +QneXmTyYUKGfBob5gkrnCt5JzXKH+ZeLNma88gRlLRD0zVaTa7IHuo9WGfWRYrda +jNbIMkMEAwJBANOmFfC0qP4hTYJp2E1KVweDr/5fBKdnHGLFFAgPfhjCR/SrU3dW +CuhtXWfqWLx7nlpbYwHt9VjVe2GuZVFKMxsCQDLVbv0CtyDsc86KIuqxfKUjsHJ0 +YHjpSS6Y6okACS1A9GE5mOYvSj+zFZeWm5J3yHskH6Na6/9reh+O86FA1LECQC2I +NoIhK5X4bidXQ/xkuNJaBzuvD15ANYAeK9AMHTGQYlCFpyAuN4yHMqgPZ2WtJoUD +0gnxOm4RB0kdbpiNYO8CQDTRO9fv8+Kj/Ae2cEgNtpzdIBZbkD+pfMQbIhbOlbV7 +4zUniBi6a3oyPMJhLB4+cDyPXgU4MkhJ1+g0f/DG/yo= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/konstanz/konstanz.cert b/server/component/planetlab/eu/konstanz/konstanz.cert new file mode 100644 index 00000000..a2b81f27 --- /dev/null +++ b/server/component/planetlab/eu/konstanz/konstanz.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhrb25zdGFuejAe +Fw0wODAzMjgwMzQ1MTNaFw0xMzAzMjcwMzQ1MTNaMBMxETAPBgNVBAMTCGtvbnN0 +YW56MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQWT2bjARg/AQ8DEkNPpyl +5YAolBOgKC1y06iY7xzEttATHJCzYKzKQXMe5PUNjyzC2uBo7r3vfvwyI/wybIWO +m+irk6MZFR6113aszUbfU6qjdwOr75NGA30+WIWYAtCLGAPp0bSgfVZ1/3ubPaGo +fBO11Y4Gx2K0S4raiOxLXwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAL+CG7ZLbQVb +QOedZ0wjFNHJnB0Ljq64egmLLxGm282ILaIjfCRHgO7t+YTLav83VWgauDvDEhqg +HOE8AbMfwsqnB9/9qdvY4CcYQZLP8GTrlXw0VJ30EAhE1l8zJACSNJ5EdWanynlD +y4KNFMTvmuml7vCGIk5nCct4KHN4Fsdr +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/konstanz/konstanz.pkey b/server/component/planetlab/eu/konstanz/konstanz.pkey new file mode 100644 index 00000000..91c5ab4c --- /dev/null +++ b/server/component/planetlab/eu/konstanz/konstanz.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDQWT2bjARg/AQ8DEkNPpyl5YAolBOgKC1y06iY7xzEttATHJCz +YKzKQXMe5PUNjyzC2uBo7r3vfvwyI/wybIWOm+irk6MZFR6113aszUbfU6qjdwOr +75NGA30+WIWYAtCLGAPp0bSgfVZ1/3ubPaGofBO11Y4Gx2K0S4raiOxLXwIDAQAB +AoGAb4HDgjM+yLU4gvbERi1jYzpgC9esZUP7hwAWtLsMd4+r7v6Txx0PfTPoK/m3 +2WjuON8xyZc02i/pQ+CUglwoYcJ7+UIcAvV9Q0FpWifTqu6wuEVIQ/uak+PnfNJn +HgQ3JoBaMc/kjPwifsP8ZH1cI9LzxbgJSz2a/gqOLxQJ9LkCQQDqt3pnz0kDxDu/ +2NHtEZFMWlnMS/zb/wSQUQin6NWdMi4cL2vPPBoYSfNRu6PYFirgY3gPiowF8dXt +pqQjZ+l1AkEA4z2stRzqXlLFe3rEKT8/T9fCGg/OSVRd9HNq1QaWL8Z4qe8lS0Hu +l60S+CxKF5VdSCLxIb4tRiDqHvJAHeFzAwJBAMuXJpeQ1xZrSiBYY46spEmEPUvV +xZjVlRHRGB78+P0HH7PW9j6lNUVIL8P/bFjssXg9D1D7rgUiBZvD5a/IXFkCQCyK +tEWz60Sd2NPBVp33JcPSuNs+6eJ5xQjbbr9e0SWAM7qrg5Xi0I+ufx9iHwvMXUJ8 +huNkUZ+DaCC0v1icDl0CQFGvVWVIt2gs+zRktRDn4A+9bn9DNQR4EYjXFRLpcjZR +9BToOH4F1YFwN8KsLsd1Trwxbgn95tcSLVsGv+i/df8= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/lisbon/lisbon.cert b/server/component/planetlab/eu/lisbon/lisbon.cert new file mode 100644 index 00000000..68acab5a --- /dev/null +++ b/server/component/planetlab/eu/lisbon/lisbon.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZsaXNib24wHhcN +MDgwMzI4MDM0NTEzWhcNMTMwMzI3MDM0NTEzWjARMQ8wDQYDVQQDEwZsaXNib24w +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMkMVksDZpnD0JPgwE9Bef6HmLu/ +hbnXMkYY1myiz6t1k++O3drDeHwk+8xv/CIaRN1373Fk8AY79xzBndpE/JyrDK7b ++zzF4+l/E+AypBu1744WK6t+Vb0X57NvearVYj5qqw+dMbDAXsG8VZpqTMvgvFga +0VWEJHaLRnA7DMYPAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAFvusHll6EiW+MugQ +xiv4YrEz3mgZGligfsYgdO+S5DqSVGVw/oQZ9s+d955wKcLm8cplyq3SZjjxbQo5 +WSH/3WM6Yc5dq9JxKugOQvCW8xEkktAkxDXd6pxzKtKVNt3NVyqCIQnJI1eNHZDD +K1N9wiQrABEaPmp66QTyLCqnaZ0= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/lisbon/lisbon.pkey b/server/component/planetlab/eu/lisbon/lisbon.pkey new file mode 100644 index 00000000..f0c0e62b --- /dev/null +++ b/server/component/planetlab/eu/lisbon/lisbon.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDJDFZLA2aZw9CT4MBPQXn+h5i7v4W51zJGGNZsos+rdZPvjt3a +w3h8JPvMb/wiGkTdd+9xZPAGO/ccwZ3aRPycqwyu2/s8xePpfxPgMqQbte+OFiur +flW9F+ezb3mq1WI+aqsPnTGwwF7BvFWaakzL4LxYGtFVhCR2i0ZwOwzGDwIDAQAB +AoGBAMDTpVxTCbAHAGEk2i3p5eD7GsFQAyloPd6/acFOMpIHtni4dQ6iFkgzjJHb +Al+PBGfJ5YzDu/auwucAyK6VJhZEkzaX2Bs0LxB4mRuZkyAdyaNkopsLKlLGIFjn +ooofucnegUCxPpTOmqW8eP5UVeDPW4JNB2KCTquM9BVKg45hAkEA98qW3cdtbinV +pHLnSl0dDOF52EtZZV8l4cVQZaojtW2hRw16z4lBVXR1i4dbPci+NK0BGJlJn3wG +G+KIdvwVUQJBAM+1Vtnytxaedz8Xu4QlaYiNLifJJevlnJb3m1HNd89s+AqZrcRn +UOdophiHd619i2muYKegUpbJWPUTQ5+/zV8CQC4+oe9cE8E2j4e0ZhQL0qsfvYSv +c0ym+EPtdjazDR0EC9Bd5Kis3gOby4Axz8Z1G4JrM0Qq/4GDPQShP4StQTECQQC8 +Q7eHMPI2tEeNjmtOqcJwHNc7BJ00phg61g+YI8522mQw536TSLoSJc526ULWo7ab +gYzmIvD472OML3vZ7jWtAkEAvDSN63WyYNcRginRZDz3DtCBLDnKH7DP84KbSWU4 +pNZY05m99ncDEreUQUE+C5gIfrgHxj7OoU6vej96sXPwEg== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/moscowstate/moscowstate.cert b/server/component/planetlab/eu/moscowstate/moscowstate.cert new file mode 100644 index 00000000..7be3a6fe --- /dev/null +++ b/server/component/planetlab/eu/moscowstate/moscowstate.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBmzCCAQQCAQAwDQYJKoZIhvcNAQEEBQAwFjEUMBIGA1UEAxMLbW9zY293c3Rh +dGUwHhcNMDgwMzI4MDM0NTEyWhcNMTMwMzI3MDM0NTEyWjAWMRQwEgYDVQQDEwtt +b3Njb3dzdGF0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAl627vZKnAp6G +ENRWovRyvghFcKRpfdUPH/3y8sc6VU6gaBOe6Gj6zYzQmVWsUALUYImrhNKuHqby +gJkU1FJE7Gvl06FW12bOHXgxCZ+++RVdA718BRtJ35eg155kXY/H8xQJA+IQfOcs +8VT5HBMNj1SQdDDV5VUniJN8nq4qGkkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCJ +JCqRa3eH+edF6N01F5p+CbD7CU+yACr1SRoVYT/vEFduy0ILDMSdsoyK5eKNKkbI +yx0LPnR63Sz/0T41Bw4MJvepDkWebKGiHkvR2ijH4M7DslrXRCQbiFJ/RMlh9eGZ +I0kxWyfQ++DvwTM8PKskEGvDZ3Aoa8U8ZMPDbzvuYA== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/moscowstate/moscowstate.pkey b/server/component/planetlab/eu/moscowstate/moscowstate.pkey new file mode 100644 index 00000000..7b0be2c8 --- /dev/null +++ b/server/component/planetlab/eu/moscowstate/moscowstate.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCXrbu9kqcCnoYQ1Fai9HK+CEVwpGl91Q8f/fLyxzpVTqBoE57o +aPrNjNCZVaxQAtRgiauE0q4epvKAmRTUUkTsa+XToVbXZs4deDEJn775FV0DvXwF +G0nfl6DXnmRdj8fzFAkD4hB85yzxVPkcEw2PVJB0MNXlVSeIk3yerioaSQIDAQAB +AoGAXUqBP49U45qHERDZHK9HZ7SEqUymibui6uVyKXr6WP/cT0dKJN507DphDv6P +1kJ3R81FTpOafsXmP8xn8FONif5Fxgwd4IhjMpzvMFTl78WqBDIzPtoMvkCYnzeI +jWrFQuCGbsJqKcqNq8x3Pc4nr6Noyp8W3d6SKvJyjFFO5BECQQDG86Tk16i7fZHP +4jWfSI2eJq/5K1SqtvZLpr3tHAvJ+tQEnCTPSN6mAzhmt5f9B5nbz8TYShlO/Gsm +zwOg+w4FAkEAwyvvm9JbPqh7CuUSE0j5fOdsjZ473csln0hz/Tp+Zg55h95uQzmn +gnkc/SYL4rk/SB1M7Rdo8LiXbbKPlsaKdQJAAzY3uUIKBUzXp8V9HB8tuhnhyWH7 +se3WOA5vDn7fadlUxuZGadpBTejLZk0cdQdEYpoOEXfQxMeqayv4YQbsiQJAOxok +9yTeaL0QdZ4kuR5SHtbd8ozGSEXqYK/KIBcEi9c6SkC7VzQwW7xdYPOSidfbJ/Vn +hCygpLThdmCqRthcuQJBAJg7AgQYAShkV0dWo2+8V2phqD1OOydQGlmVxV5l/3yM +EPGI4nacY55lEf2thkectSzyOVnUdlqf3fhiVxzzZEw= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/msuchem/msuchem.cert b/server/component/planetlab/eu/msuchem/msuchem.cert new file mode 100644 index 00000000..145aced2 --- /dev/null +++ b/server/component/planetlab/eu/msuchem/msuchem.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdtc3VjaGVtMB4X +DTA4MDMyODAzNDUxMloXDTEzMDMyNzAzNDUxMlowEjEQMA4GA1UEAxMHbXN1Y2hl +bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArPBMxnccIJ7m8M3B4KxsUj0U +4GwaS48ZDXp0nJSf/sRIiFEw1lGFYH246UaklHpOWejrgPsx8QneEHDVNHZoxVp2 +bE0nQ6DAqrNBX0YPCW5URJi21ufMz/SiFLPAn+BHYGqI+TPiy2IrhwaXXQunetBL +CejJlm4Fiwwl0qCITq0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQBT2aVYrS9V01P1 +DeC6AW+qVS/jNqzST0j5lGrpmJ+vp3O5oGxkM5KT2JIiuy0thilK1w3+RF8nOw1q +tp9+e4inxujR/NWdW7L1fUemPMX1h9VI0o1w8S9xSFm9/ShyNf1cM9yS8nVYi3JU +TMRydbPlsMNK1gFuZdIvuzVvuzxDUA== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/msuchem/msuchem.pkey b/server/component/planetlab/eu/msuchem/msuchem.pkey new file mode 100644 index 00000000..7285d8c2 --- /dev/null +++ b/server/component/planetlab/eu/msuchem/msuchem.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCs8EzGdxwgnubwzcHgrGxSPRTgbBpLjxkNenSclJ/+xEiIUTDW +UYVgfbjpRqSUek5Z6OuA+zHxCd4QcNU0dmjFWnZsTSdDoMCqs0FfRg8JblREmLbW +58zP9KIUs8Cf4Edgaoj5M+LLYiuHBpddC6d60EsJ6MmWbgWLDCXSoIhOrQIDAQAB +AoGAFDB9lhHju78xUN2Ei9k1UCiHXmfgbf/HufYY1QrY3uJFYXyxCeQ8gPZMdxdj +MV5R9Vcm30j0HKK9RQgXK+fC9U4n+u0khOhLWDomkRZZokJv5VHpjCtQ1BmT8vjU +uL7PEjz5/BGVIj15oo8nN0Cvdct0UtD7lM/mn8zpd4JILcECQQDUJayAO1y0hd9X +v8wIzkb7M1b2aHYsG/djaaqQFpBScEMQwoMQsahXoykESTrzAL46rdRk5u/ZbjXo +vYELA+49AkEA0K/OLxxZmGec5hpgpqkIces7zV+KOk1j0BbnL3xed7rF0Y2ty58G +PtWXTI9Mj1enxn6mu4P3eEUIITCx0o7ZMQJAbKiLLPa6qd+zoD8lYxE8O+d00Cp6 +9GaylCGH8dsMupyzTP9DoCZOgeyY0pAreFFWHbnxAmliSexwAjAlyx2NRQJBAJeN +NSVNZ1ug03bf7RTbaMCiXpm1KoNQtI3oNBhuL4Sv5P1b8L0RTc3P+8KjxqvKspMa +YyeGnO+A4niIDnulNeECQQCle1G30FUv+GgM9OswiyDkwTK4cXi7/o3SEzLrV7e4 +l57JCKPSfIBNxH6SvYsThJmQaZdtVANh72pL2PF1hup/ +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/tcd/tcd.cert b/server/component/planetlab/eu/tcd/tcd.cert new file mode 100644 index 00000000..1e444e6b --- /dev/null +++ b/server/component/planetlab/eu/tcd/tcd.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN0Y2QwHhcNMDgw +MzI4MDM0NTEyWhcNMTMwMzI3MDM0NTEyWjAOMQwwCgYDVQQDEwN0Y2QwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAKJ4mpTDyGhza+hxWAXyoqSIGXS+517fgfqp +Ep6AHEtGizp872mFFoSspQCrmhlh7VzP530oq83/JwIxGYdR9SG6/f+92aH0chVo +fq0iIlCaQXBdecDLFComSOacylZ/CSs1MI1bTdzEhRq3jUw++eeEjK1GC2NjSXb9 +3/IqJnyjAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAmnAkMdB2gVC4vY7gnRWPOZHd +ZipXDZaQABgTDvWyt36xlfbMLE6K2GU40i2FqQspQOmmgf6EMjEBDKvsll3McZLo +55EB/TR8rhrBVgGGgvg9OfZeYP1ECwxlxkd9x+nczWzLHW6V2aii344c0P8il6S1 +gir3sb7jPmVYfyk921E= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/tcd/tcd.pkey b/server/component/planetlab/eu/tcd/tcd.pkey new file mode 100644 index 00000000..f95b523f --- /dev/null +++ b/server/component/planetlab/eu/tcd/tcd.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQCieJqUw8hoc2vocVgF8qKkiBl0vude34H6qRKegBxLRos6fO9p +hRaErKUAq5oZYe1cz+d9KKvN/ycCMRmHUfUhuv3/vdmh9HIVaH6tIiJQmkFwXXnA +yxQqJkjmnMpWfwkrNTCNW03cxIUat41MPvnnhIytRgtjY0l2/d/yKiZ8owIDAQAB +AoGAcYB/vV3pK882m3RTYhRXu0m5Pu3/BTBvxYVIFKK7IXtu2LVfLABl8toJi6ZW +SVU4VZaIyc8X9xlBTy6t/vMqpADe2S7R4qg9ZsCOCPJp6HXd5dFw7jLb2MZrvVVH +mlVG9tRNis2Q5j8msyuwM46QtnJBZepV4swFGlKYdTXZiwECQQDOCKFkeqsgd8lb +tm5s2T78mkr20OfrkvGaDxpLbf2duXuK5gJrvv5kXQQg4t/g4W9U+3QZvTIm651i +/J7fBAzzAkEAyd9wQT5NPOsMlkLNOJobUupQCLrU03XiKHLa2ZYNqKD8UTSsgxAT +1G57q0SpqDE5DXuHB70CTS+yMrEun3X9kQJAOCd2BXLBjVnYkZyJQDV9y08qO1b4 +vuYP31NacVCLHR/eoh7Kbh9iKmyHoYb0SdBnjZvzKsi8EIuLG92KV3I9LQJAWkVa +MzKi40zQUhkJH/h5o3g31c+GABFE0oWZq5bYAMIMUlvVkL4Nv/6vuoR3wUhRlN/a +H/G7J7zeWKC2koP2oQJAK4ugULFZQT2Y+TiT0IeZ0kxoj/MALVcxqj6+kNH0eYIL +ueCTvcZkgcAbjD/WzGhCHFNUg931ej9jyUusrrgZZg== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/univie/univie.cert b/server/component/planetlab/eu/univie/univie.cert new file mode 100644 index 00000000..891d9e21 --- /dev/null +++ b/server/component/planetlab/eu/univie/univie.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ1bml2aWUwHhcN +MDgwMzI4MDM0NTEzWhcNMTMwMzI3MDM0NTEzWjARMQ8wDQYDVQQDEwZ1bml2aWUw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANNMPYyHTw5D1By7KsmXmBJZpjKO +uuO1bAZDmqXDGkUgTgfCxHLFH+ARW2f4jwckX4XJQgzhAjKU+X2jf8WrYYipRo9m +ueKNdZa6R35/nJ368ZaM33+pXQEbRa2DbWTGD/ysw7LysOP2uygmy8NGG/hI/U4D +jZyyA3hMALfxg/tLAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAJNJ5jlSiZ0M7kAdN +8gUIC0bWs+xphl9VIdcIOfhmO7rl7tG1T0FAda1jVXWVMpLbYCSPWg4uG/IZz7r0 +ZW2hMoeWVu0caM9t9Nrk+vGq0lyBfO4mF2VMydZCOBn08gl10QjnfMIOQRDHX0QC +4SltWoEvF10/SoNrUKLdDW9rdkM= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/univie/univie.pkey b/server/component/planetlab/eu/univie/univie.pkey new file mode 100644 index 00000000..8cc271cb --- /dev/null +++ b/server/component/planetlab/eu/univie/univie.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDTTD2Mh08OQ9QcuyrJl5gSWaYyjrrjtWwGQ5qlwxpFIE4HwsRy +xR/gEVtn+I8HJF+FyUIM4QIylPl9o3/Fq2GIqUaPZrnijXWWukd+f5yd+vGWjN9/ +qV0BG0Wtg21kxg/8rMOy8rDj9rsoJsvDRhv4SP1OA42csgN4TAC38YP7SwIDAQAB +AoGBAMMjfRBEgjlNYR5rqLdm3lXMH5Y/hM/5Y9thIfiGd8Nxcz7tnBnWfXqk7QLX +ZdgVunZHCU31m971AHkMv1rhzP8GuBmQXIy5Vfhh3VvXArTzWaaZjymqDr9wFP7z +2Myi7z693ukezZChp1QSbNz171G9O19vs5PZ4yzF9YF+P8HxAkEA/7narf4mOCb5 +9Xs+eeAJXgFFDq2eJYTtDs8HPFMoz9Y8XOx2evuyan/2CAgO9RJ052sViRLR0HrL +zeiTeuHGwwJBANOGMxSm2n7SjJy102C8Q3IYEIuxU/f2nDB7PRHmDzI9nlWlNCDA +aKRyOYtU4r37xb38BuKpCHM8rCqTBlYrgNkCQQCdhC1e3x1LmTZ+Ltvc1lLuxHl1 +ARxYn/glFwCt98s7ugqUclLIjiDn2MoDSHNuIWBA64ToWd9DO2AuBQRSvJ9hAkBO +c8CwUS5KyWaznNCYWVsejwRb+1osZsAJTzwYTl6mgKogE9TgrNxi2aa0IbizRBVU +YIxhNtZWf1NPuxYnkZ0JAkAVSSeRZ0mMEOhDPF4NWUWptK+FlrZDMM+rZaT/MCnr +T3C+fhKkmg3hto88hONW0j/1hj1S95cMRnbqxrlKqPhX +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/unizh/unizh.cert b/server/component/planetlab/eu/unizh/unizh.cert new file mode 100644 index 00000000..eb1cf08b --- /dev/null +++ b/server/component/planetlab/eu/unizh/unizh.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwV1bml6aDAeFw0w +ODAzMjgwMzQ1MTJaFw0xMzAzMjcwMzQ1MTJaMBAxDjAMBgNVBAMTBXVuaXpoMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDtHmPkqhgqVlwDMcgjZhXRkOMbxnOW +zBg+EaTBR2oCmw7qt0LGQuqBRIEsW/hn9hZzrrf5Dunps/rv0J8f26i5sv5qw9Vw +oVmCORcFw/q4aEvPn2oEZX8E5huPYjGy9c1eb0Q6JAX1qStv+AM9Hq47QBEDkZq5 +T1VfcCt8UAw79QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAIFuptajC6HtzQOEykji +j7EsBrShGtLQZCGtaJStrk463fthVKwZATDWqhxRgCmvI5LFqQcxjvnZmixQWf7G +SxzVpO2+wbfk8932Aiu6+BeckFySB1ZNG6czmE8ijPIgGkm/Qneub1kKV438Pir4 +nSuSmrHTue1P8tvqwVfc5vB3 +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/unizh/unizh.pkey b/server/component/planetlab/eu/unizh/unizh.pkey new file mode 100644 index 00000000..bb0dfa29 --- /dev/null +++ b/server/component/planetlab/eu/unizh/unizh.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDtHmPkqhgqVlwDMcgjZhXRkOMbxnOWzBg+EaTBR2oCmw7qt0LG +QuqBRIEsW/hn9hZzrrf5Dunps/rv0J8f26i5sv5qw9VwoVmCORcFw/q4aEvPn2oE +ZX8E5huPYjGy9c1eb0Q6JAX1qStv+AM9Hq47QBEDkZq5T1VfcCt8UAw79QIDAQAB +AoGBAJd7br3KnJ2PhkDUMNPMh+vV8ADyiy2vPV2J0ANaKDN589GnOhWG8mGa7hr0 +toFUCYvl9so56N3QiWNjmAS2Q9cDwgAXdItVxvjj9m7Iog8RNIqf+hCSmW1yWzCW +5QR5B0RWxMQBuEKo8rb8G4XfUXPBa5u78IpXqaM6PMruUJYBAkEA/WsCBYi8iIBZ +Kpg7TKcjKL26dtjfgCZcXibyAV1vvhfIk0ViY3YglDJNTTFQertLjYhnMw9jf/s2 +IHIXOJg41QJBAO+I3map0mLX8hT7EZhdJdjusSv2XyZ9XoXlrW8tEqHCkGrSiF8S +Q3olk2BIHe4VslCuia+xksHzDdJULmjNhqECQCd07c+mxpQKR9fV9AWvUE4bnFi8 +06/ESUVvkuabgbZ7RYOInhUWY2QvoNGQCBPT7aOPxWGx17ApkPfkS7FIIjECQE/M +cBMRljY5rLtSnRz+QyKO+lUkAbTn5TqENpAoGuHq2IPN2YKaqgIiTIOx4s6zSbFZ +RCNU7AhS+ZLNWpytg6ECQQDv87sce1NHkzgWTUugH/c3NvXFv80mai4bNXUi2sPR +uLTtTrsEkMdVQaZje4KrzO/81me0ihK+8mn7FshpMYAI +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/eu/upb/upb.cert b/server/component/planetlab/eu/upb/upb.cert new file mode 100644 index 00000000..f9bb6d42 --- /dev/null +++ b/server/component/planetlab/eu/upb/upb.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1cGIwHhcNMDgw +MzI4MDM0NTEyWhcNMTMwMzI3MDM0NTEyWjAOMQwwCgYDVQQDEwN1cGIwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAKciMgBkd5Edh9nGAQdDZqgvp8fUdf4sK9g1 +1YZTgQSE7cd1WvIpRqsm65IrEyeyTAJZ5EYYv3uFeOsHD7Wu5n9SOJSTi1SDemQn +m+ydaAEj3xVUpQNhqqWMMYPx3JMSLBqGn1SL3QF0N5Ll26q14ebsR9NEO31MHIvD +CylKcbXBAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEARqpWQsoqanjmOnwINgUJ6wfH +C7VJtAmNDmH3VTWQgQIIp3+tZMuUqUvSJi9fMrwA9F3NyajPVUW1H5pNuHzvNHy7 +k2w0Etm3wSkYdpTMYDHdk8lIG3Yzhy4M5o6Q7BJ9Yh6s3Hfg+cIrJTp8I08JSHEJ +15HWiQgamhtiubXo47I= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/eu/upb/upb.pkey b/server/component/planetlab/eu/upb/upb.pkey new file mode 100644 index 00000000..0d5ab11b --- /dev/null +++ b/server/component/planetlab/eu/upb/upb.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCnIjIAZHeRHYfZxgEHQ2aoL6fH1HX+LCvYNdWGU4EEhO3HdVry +KUarJuuSKxMnskwCWeRGGL97hXjrBw+1ruZ/UjiUk4tUg3pkJ5vsnWgBI98VVKUD +YaqljDGD8dyTEiwahp9Ui90BdDeS5duqteHm7EfTRDt9TByLwwspSnG1wQIDAQAB +AoGAQUFErIqNdIdHJ2v7ss5KIpiYtZjqiNbON5itSckIsq8D98CGRc5/3QtRJrzS +uckPjEt0qTm4aY3vbDRRmeoz7Bizy7wrgpdDu2BGCSh7IS5Gegtc09ljXhPjMAKC +zAqOI3/e07jBnHBFVNlQRaEGTyHR0k+qaAg4sWfvu6hbgAECQQDPTQ6TULXorTqq +4+s6n/LVeFRef94dpo3QYk+AoWa5y5g5ljK0t92o3sRSmEDwNf2ATZKx6lfGDEk6 +GIxt8ZFBAkEAzmV/CbiSK85gUBVvVQ1aDDa6YUle1JyRzF1P/4y+9d53rQR0PkKU +6JU5W928cByu34CNyvny36iD1tpTTlKEgQJAdvb3yF7nJhJTusJ1uf0UtKELeffT +lhyBAfeJPH5jn3hRcaraio+B62l8LRInIjM5uanK58Nef8+JLofr/yREgQJAJWRL +5JX0nU0RM9D+T3lQw/+yOmfRb1FCNLT/BjwYaHC6W7T/3juvwIcwUg1U0zbPE5y1 +k30+2/gqkmURTJI0gQJBAJLuidQk3oiMUoQXbdIyFqaNUK8UV7FZjOR2nLvkDbMK +0MrfV9JcsBOR6PBkoFfGsBcH5P/ofyOTbhSrZcJTBFI= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/fing/fing.cert b/server/component/planetlab/fing/fing.cert new file mode 100644 index 00000000..e1116a0b --- /dev/null +++ b/server/component/planetlab/fing/fing.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRmaW5nMB4XDTA4 +MDMyODAzNDUxNFoXDTEzMDMyNzAzNDUxNFowDzENMAsGA1UEAxMEZmluZzCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwpqTIWTTb0YSSLNHVUTaoBSZuwadn+Hn +vJ4WsA4UCh9H3m5EqcvFMaGt01CUjWJF414BzxfstsZOjIGRT8O2i1lXzstw01v6 +MmGzOs2HdZo0BVKBzqCUq5gnfj6HKFqIrbfd1Sebm+7h9fAhAE84ptMvZ78Oi72/ +WB9nHacpG4ECAwEAATANBgkqhkiG9w0BAQQFAAOBgQAuC5l3PUk9MM3goNedNco/ +nSW2pZ+1UT5XtISbkzcJ0kuwmEaegQcMg7cM4aVTE5YqrrOO4rSPhHzAv7C93Dpl +HR7lgJnwIEeP2h8aP5l8WJU2d/g2cwh9KJhUT1GptAPkWpllN9GFrnSqrSD5ZdsM +dK3qUgkVIV2avvEqKVl/Jw== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/fing/fing.pkey b/server/component/planetlab/fing/fing.pkey new file mode 100644 index 00000000..8a77f78f --- /dev/null +++ b/server/component/planetlab/fing/fing.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXwIBAAKBgQDCmpMhZNNvRhJIs0dVRNqgFJm7Bp2f4ee8nhawDhQKH0febkSp +y8Uxoa3TUJSNYkXjXgHPF+y2xk6MgZFPw7aLWVfOy3DTW/oyYbM6zYd1mjQFUoHO +oJSrmCd+PocoWoitt93VJ5ub7uH18CEATzim0y9nvw6Lvb9YH2cdpykbgQIDAQAB +AoGBAL3u2AMTwTktjtLeB5U1qpvq/1AG2PkfJ2p0cXhLhUuL1D1IKkP+2evi/SDt +2M9VRxjuu51AoIyTaD7Chuzu+822wX4bwPVw13K6pz/KIutcr3Ge2aN+2Eq+abbp +Q2OtGPrzaJBh7GOFoXBU26fJLHF0ACcg4E6PBLG/WtzyH+dxAkEA/OF7bX0qbY9D +K4z+whOig0yxSegzJQw1v1YMeixrmGIYfHPliAFiqkjYQu+inC2qwhtfucRRCxC+ +XJoO3r1KDwJBAMUBEn5XfL1AIMhynqeX6zuNkpJUFjzXtu3BjuQ4Gylbr0LcJSXJ +bbB6nGUGOBtfZ9ZqMf39+wyC9P7+D2MlEW8CQQCNmFPcQrF3FzitMg2T7hqZGmBK +2dGJdQTDVhM2dZjpgkPjq6FiPiRY5ODy2etbN9bdSSaYhew7Hez5POoGnkbRAkEA +hjrazPbzaUd+jtV6QJsEjolB6y4cEMyyOYF+yQVpjF6KJjY1oW+Dq5F/al44cH4r +FC87bOJW4gmAwRV+ioFBRQJBAO293rYT50Uyvx9uNA+uVz5LR6phxUrQWzKzdM++ +AAm9y8hcH6WhWFZsfuu86QOgi508PrOerY1my5w7UlMkES0= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/haifa/haifa.cert b/server/component/planetlab/haifa/haifa.cert new file mode 100644 index 00000000..c0a00413 --- /dev/null +++ b/server/component/planetlab/haifa/haifa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVoYWlmYTAeFw0w +ODAzMjgwMzQ1MTRaFw0xMzAzMjcwMzQ1MTRaMBAxDjAMBgNVBAMTBWhhaWZhMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVRFJyFpUvwjrBT0A2VBPQGmAFehnL +Jfd61juLdNL5Pou7tULogaQlRq0TiE5+mDdRSshVrTDp5lmOvgzECs9fI07jNPhS +JL7aHNdy5CIcRibq6s7jAW2ulj+6fMvtB3LP6M1P2TMaJETIQdN0tF6cTmXTW3zc +9DHufx5twIXOUQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAGPTcm8qei/mtCl9RXtx +Z8Ijw28v3LA48w7Y+72qB+oVmUiepzsd9ZjOVed1aQu1lHk1KwcwHy8YpPLacBzt +yLTOraiDfZOE4PFnzqr0zMAsHBhjlFBcoFU5MJUuo7cO1I2Ru0zLtBAQLKcxpOY/ ++9dbqhSnRYWlDiSfmz846HLX +-----END CERTIFICATE----- diff --git a/server/component/planetlab/haifa/haifa.pkey b/server/component/planetlab/haifa/haifa.pkey new file mode 100644 index 00000000..60e341fc --- /dev/null +++ b/server/component/planetlab/haifa/haifa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDVRFJyFpUvwjrBT0A2VBPQGmAFehnLJfd61juLdNL5Pou7tULo +gaQlRq0TiE5+mDdRSshVrTDp5lmOvgzECs9fI07jNPhSJL7aHNdy5CIcRibq6s7j +AW2ulj+6fMvtB3LP6M1P2TMaJETIQdN0tF6cTmXTW3zc9DHufx5twIXOUQIDAQAB +AoGBAMdb0bIimB0H9MKl4cGngMnlDeOwyxHTEO/7+beYYmtp41d5zuzn21iZI8uB +fNbsVbGhNXqZpoLPuOItmGNeM4/m8Bxvq3M6Zb0ZZjzcWa6dbIPevIgcYq+TTUVW +te27nvS7ScZYk2Znp0nDAN6h1zHXxYgBmY2iq5ZUJZgpUYrdAkEA+cwqwZCiDubS +QjqkUwQ7nUFk6s/xYFltLDBdtbWQHxEi/5E5SKyQpRvBFd7XxVYYjdG3k2wLVhbR +UjIA5dEvlwJBANqP8t/K8e4Ikpcu/Dqy5hEJp8zsDGPWPVG4Pfn9wK8/VmkuLLGJ +0lb1TnNptL7FGuigLXPkRurGntzZ/MtarlcCQQDQKvPKoVRcJME9zg7Y2+MuNqv5 +/taBW6TeOWQupKL5MNfAsO5TAPP9lDaBmlaoLgqCTS213klIMfW4kNEss/n7AkEA +lD3ciwQYsc2ot9hLhfi/aUD2Sly0TqcKMjpX9w6wuWypTG/gKo8DVq3NhyRkTpxc +EvpJufhUTXtoVv2Xo8oewwJAH0uqT46zoJ4AMas8jqA2Eyh4t42d0YxmmsYUwWCv +Q4hxi9dD4JPjzmjD3QDbFFiXH3kAJxhDupGcVigxVqZDpQ== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/icavite/icavite.cert b/server/component/planetlab/icavite/icavite.cert new file mode 100644 index 00000000..0a30704c --- /dev/null +++ b/server/component/planetlab/icavite/icavite.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdpY2F2aXRlMB4X +DTA4MDMyODAzNDUxNVoXDTEzMDMyNzAzNDUxNVowEjEQMA4GA1UEAxMHaWNhdml0 +ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu9p0gv4RXjs85pSNCaIL/Aw4 +YZM2ITkft6+sptBFDHFD62MVRIORJ8cXYMG1qyKvAJuyrXlijvrAVk0ipk0I36/4 +VSC7ZxrETCuKgpxZYmurdIDcPY9keX1S6Qd5Enb7lBCwuoYRJnkwZJdl9Wn+JEHi +grZd8GF0PUQiJLLRkW8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQBWcbT7WlwsI4dr +vqyu37TD1arT3XF62imjOXJkLRS8LqrX6Eze7j+v7ATgnReOy+uzIDPucs9f/Edo +Lj0n0YgbZPXfqoJglraC3SRZNHL2I/Obuc74SLUXD2z46khzLH4l2qz55XPOpheR +u4YUxRl/wAeP6nmhfrcDerJfSoKPJg== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/icavite/icavite.pkey b/server/component/planetlab/icavite/icavite.pkey new file mode 100644 index 00000000..30e22ca0 --- /dev/null +++ b/server/component/planetlab/icavite/icavite.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC72nSC/hFeOzzmlI0Jogv8DDhhkzYhOR+3r6ym0EUMcUPrYxVE +g5EnxxdgwbWrIq8Am7KteWKO+sBWTSKmTQjfr/hVILtnGsRMK4qCnFlia6t0gNw9 +j2R5fVLpB3kSdvuUELC6hhEmeTBkl2X1af4kQeKCtl3wYXQ9RCIkstGRbwIDAQAB +AoGAFsaz3bYEURKJncNhHkvhfBvXMi1xILIWYGUSX99cn9eTzpRi3b29+b6v3PFf +n3JDGaXHEjVnd8J7U3tiuhsY+iC8+Wy6jFC32ssFX4X/p4IDjjUPTi/A/8TlSOJ5 +gS/IiVurHgRFgSVx8/Q9KHIG99Kbojy04m6t667QQh6RC2ECQQDsoEU45wyTRUOJ +8FqNGd+QznXIR4Ll8NX1VU4jnFymi3B0bqH2CttIoS3cQI6f6VlMzcFnRklAkujz +oEKnRnHpAkEAyzvmGM0J8d9xskkUbVl+jGlkQCrzhhppag8S8KwSn5rzmYlfAnn5 +Iievq1Le26BdHARtBGBMe4dd08NiHXu5lwJAdkv5z2TTSJ0MEt3ypzAUMNTG1YXK +zyIEFU68bdkyCKEVa2AT4Gm1Dy5lOwObSh7i4h7LXdIptPq9M28fY3k4YQJBAKOL +8U+1+LHG8VTakHCq2zadPUqSBeS97mSl+sTohBgidrPwox94Dm9Y5noFN0ggVa1N +NnmWERY7Sds22QcG4MMCQHcKgBhqnJbGFgMYTumyZFsmDOiP+Fk9cgTatIl5RD6L +qZhbQksOriBHhrPhQwFd0sV7yfvzb0SIG+0jc2FDnNo= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/ihaifa/ihaifa.cert b/server/component/planetlab/ihaifa/ihaifa.cert new file mode 100644 index 00000000..7803d2f0 --- /dev/null +++ b/server/component/planetlab/ihaifa/ihaifa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZpaGFpZmEwHhcN +MDgwMzI4MDM0NTE1WhcNMTMwMzI3MDM0NTE1WjARMQ8wDQYDVQQDEwZpaGFpZmEw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANfTFZiyfNB5Sme43bsZjbEwD2AQ +2pk5XGqDl1sFnzRABmItRU5lmPbCNwk2vxEGxLMRGhTryawroqoXt1HMgBRpgIbh +e5YttkCxwh2a0FbSyTdPyUX7u2a60S9uhIC9Jot30tL72wkpSWKVvfFG+8h51Nw0 +0FIMoILG4daOqNipAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAFKFvMG6TPXCbjzUn +j490a+ugqEoxap3zUrHjwU9UCo31D/fZ5aV4BYdnz7U0Z7kKJfuE/eFGWk52cKlj +BxoxtBcnXDUwTLV9cvYBbuXi0X1RIOTCkrIh6OXffbyno4uOg7811KvSplmoZjm6 +d0jZbipPIXbjhUGxG/d5YBiOZaM= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/ihaifa/ihaifa.pkey b/server/component/planetlab/ihaifa/ihaifa.pkey new file mode 100644 index 00000000..3faa7b54 --- /dev/null +++ b/server/component/planetlab/ihaifa/ihaifa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXwIBAAKBgQDX0xWYsnzQeUpnuN27GY2xMA9gENqZOVxqg5dbBZ80QAZiLUVO +ZZj2wjcJNr8RBsSzERoU68msK6KqF7dRzIAUaYCG4XuWLbZAscIdmtBW0sk3T8lF ++7tmutEvboSAvSaLd9LS+9sJKUlilb3xRvvIedTcNNBSDKCCxuHWjqjYqQIDAQAB +AoGBANZ7HoY+Ms3XC7tiO3BZp7dDpLP6a9ND7vSnS34Yayu4yN8+UBbl3oqzXZBZ +iK26BTZTM5FA9Y2VW7Ufln3C9i//j3k8gAQ8EXX4Ag8LNosrLTv+wxRYwnT21U3R +wt3e60L9UlODb8OVaF8Eym3svdb/glCofRR2nRO4QSiOlbt1AkEA8Dnk6t4AxjdB +/jYrlVrohADV9OEs3p7TSTwKUe2ABN/FYKRHPZb9M3v9kyUNCImFrfbwDWPl9RGW +5d+nhoSY/wJBAOX/AkvLwRLWtR0VtP0npEDTylLLH/Eg2IIYILODQrNj33HoeH/o +oZqKWP1TD4IO/TrrKgoB6tBVJK/+YSwdJlcCQQCli5AIlsK71hqhP91bCJHRXe4T +2hUcuSDrh/eoq92b/kU7qxn5BJMqppiBjXfk2TiJQPH+mEhBUUTG1xDQb5IrAkEA +mIhvNWWEPsI2i3uB9QL9ZCER5abhIEHwVRc7WNKMwfxSjHDouavGwX9PVXJorpDS +UOj1kH2FBXXyRuYl++O5MQJBAO25lGjB+zf+lC1q0HzJ/gpKNcsTJ3iQwOtnwcM5 +NirU4DBdEpESX7wOODlX+KMSk8jk3MEu7J+kOfD2XdO9Mms= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/iitr/iitr.cert b/server/component/planetlab/iitr/iitr.cert new file mode 100644 index 00000000..2fbaab52 --- /dev/null +++ b/server/component/planetlab/iitr/iitr.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRpaXRyMB4XDTA4 +MDMyODAzNDUxNFoXDTEzMDMyNzAzNDUxNFowDzENMAsGA1UEAxMEaWl0cjCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtXCGHTOYNsc7Ywl8i4zAI5V0nnzpPk9T ++HJsBJ0R5hUTdyVwq1U03S7AcrMGB8ah2BZ5m7BKT6RF6z1EHA3B8Usg3d838d0M +yYvka2xWyyt7Wv0gKxivxYs+hNm+2nDe0SkQ7MgEiHaDxh4dRoJAP3LtWTxzziy8 +aEkQHmNQ38sCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBVY5oZq1LGw5nQU/gstVT3 +ll6hKkPZNMBCJqnQWX1m88Z2ujEqhOHQie/pYcqHan15tpSQ36N2+Yb9KEPo+OWp +QbhODG0OsteTCEXcfkjJIo680pGtSfzwlIqc0BYWO6fSTZmJxGLT3FhkFD5NjELd +reJMPK9dlS0bs+cVDTOrWQ== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/iitr/iitr.pkey b/server/component/planetlab/iitr/iitr.pkey new file mode 100644 index 00000000..0767d895 --- /dev/null +++ b/server/component/planetlab/iitr/iitr.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC1cIYdM5g2xztjCXyLjMAjlXSefOk+T1P4cmwEnRHmFRN3JXCr +VTTdLsByswYHxqHYFnmbsEpPpEXrPUQcDcHxSyDd3zfx3QzJi+RrbFbLK3ta/SAr +GK/Fiz6E2b7acN7RKRDsyASIdoPGHh1GgkA/cu1ZPHPOLLxoSRAeY1DfywIDAQAB +AoGAM3YC0+16Uq8XbPOX24zEQlN1jC4piX6+dk0dzgEuvm9j4ftAhZfZMpK8Cswz +/aic5skZHMtXiFczbZEm7D4Kr4clsxCZfrwUqx3FxuxmxfjMsh3Fu9AgBVMVyx7E +exLICtEDl9R1uipOf/8DWkeqwRTqn2dHFlnLraVnFSjJzwECQQDfb7Y7zqDzWrtf +M4mX2xXNENz6iJg41ZvT1JNeX0YELavyWkFGt6ZGqwnGMV+4Za6YtKc3tAPMDD1E +OFFu5hKhAkEAz+Hu+ZA34XC7At2pAMBtX3sk5Y/k/KqLu47EhXXPfY+9PuOAQl3s +0ZRkrO7p4xIHy3Yrr0V4SE+MkTNS4O4G6wJAD2EiGwXDAF0rbocenmw/GOljPH9w +cuEJI9CLAEDwkdMO9dSOj66ObGjTeGfnncqp9OriY6wpYr8o7Gwv9sExYQJADgra +BLusOqtNxqzIfMeC299Kp8MnmbW/iKTlO4qwwG+UPgpKILGNjL60akYdQHx4UFMk +MkvEC0ZsXWaVI6KQjwJBAIdddkJtyGlY8QKUyZKwy5RfcJElo8RvyqbiwutZM3Qu +wEyQfHiCmobbtlKYupg2BT6fRXRabDUP8wTCk3nZRyE= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/ileixlip/ileixlip.cert b/server/component/planetlab/ileixlip/ileixlip.cert new file mode 100644 index 00000000..7cf125af --- /dev/null +++ b/server/component/planetlab/ileixlip/ileixlip.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhpbGVpeGxpcDAe +Fw0wODAzMjgwMzQ1MTVaFw0xMzAzMjcwMzQ1MTVaMBMxETAPBgNVBAMTCGlsZWl4 +bGlwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3q7HMiN4fWJSWt/s4QpIs +5/6Gp62YdqoOLDn6SNPvvNtdO6bzOY+DbOrI/DkQtyJxnuhootacKZquMxDzzwtW +AzU4RmGo8W7OqhSUSg9uoKYgDSTDPfg/detasx54qgr210LUp1rNKw88e/cmBysP +vSROFRKcn1I+670/tw/mdQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBADQpxAkBtOcq +QkNyo3KSNOwY603kWhsgmPlZ1BJ7M7A8z4C35EP9E3G3Wd16Orzx5zk51GJGfG5p +B7T/U8lnCdyBP8bb+kxHWPY2ZypJ9pkxpIQacNtx/ghOhKPWzK/PPnfOT4qclk7k ++cs9JBCLGvfcUoOH66WYT08sDkKCL7Bv +-----END CERTIFICATE----- diff --git a/server/component/planetlab/ileixlip/ileixlip.pkey b/server/component/planetlab/ileixlip/ileixlip.pkey new file mode 100644 index 00000000..db7b5f2b --- /dev/null +++ b/server/component/planetlab/ileixlip/ileixlip.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC3q7HMiN4fWJSWt/s4QpIs5/6Gp62YdqoOLDn6SNPvvNtdO6bz +OY+DbOrI/DkQtyJxnuhootacKZquMxDzzwtWAzU4RmGo8W7OqhSUSg9uoKYgDSTD +Pfg/detasx54qgr210LUp1rNKw88e/cmBysPvSROFRKcn1I+670/tw/mdQIDAQAB +AoGARaVqd0eTCsnZFknPjibYLQUPo9njXsPoehVVKs4A55BykijzhplWDRz47puN +vAPloLYEJOFShcbU66dbj0f8YM3Ak3fpRFCZEbhKyl8UrCL7nTsZYtWW1L9Q1szj +ApjCLnHDmdUsfc3+wsczmlrmxqm9b9C2JAq1DsGKGWfEh6ECQQDcJisKiXUyRfyQ +VBoDoE56A8vW8vtwcEihMKRL5m408brQDQ3pmczMyLeCHcaHpIAST3YMgueQ4l+y +gSEaGsEtAkEA1ZTFl8RBnSFG3PqKLotxH5nOuAbi2sWYDn5YWrHB1b+hf1rTBdb5 +e17/dcAZFTljO2kV5vAkI059nJfijq43aQJBAInK6g3CU7SP0bGUsmOqpvQABEoZ +8/9AiHU7uNo49Kn203L9eMPKHEHhL9slP+oOsIrFaaITHVW2GyfjYxCvxlECQQCJ +k35AB2wYcgH6f+wYlTu2FlYhFlZ0g4kx9NKnAQ+RxxGZPoDlpxcnEAdP6wB9Om0g +LM2t54vvrjSddPy72Z7ZAkBBeMG+9r6V06BH8xsJ65gNsAneH3wi/xO6xc2HI3AL +B6lYUXaIN0xUhwTjwqWr/Gyj9gjJ1oYcQ33qw2UngxTQ +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/jaist/jaist.cert b/server/component/planetlab/jp/jaist/jaist.cert new file mode 100644 index 00000000..504c19d4 --- /dev/null +++ b/server/component/planetlab/jp/jaist/jaist.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVqYWlzdDAeFw0w +ODAzMjgwMzQ1MDdaFw0xMzAzMjcwMzQ1MDdaMBAxDjAMBgNVBAMTBWphaXN0MIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDic2ybBWwWDf4s22JCNA3Q/FSQv5zk +k7G2HTXLmSgpva5pPVN+ou25Nc7dobIxOgtFgRMLRG/z8MekYQvN/oeOKnfA/3GH +YxtUB8aQOq/zje3mmbJ6euFBhxginWm6RB/BiK4rMDHbjClJ1NVATQPJ0oe/XvWJ +1yJkcGLt76fjnwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAF0OSdldZmbIQX0GfXWL +EMFxBn5fu9jb+JZbRQOwg35ynP24yPspJEirfXxZKnaR3QQzH4W812nVk8IoIri5 +RmkdfaSn7gX9YbJQyFJio5HdLNTHF6jlp+2ox02wslsd3MwGi6dRiUceloRs3nm6 +ngDGUeWnds8Rj4V2wYN3vEI4 +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/jaist/jaist.pkey b/server/component/planetlab/jp/jaist/jaist.pkey new file mode 100644 index 00000000..c15a0079 --- /dev/null +++ b/server/component/planetlab/jp/jaist/jaist.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDic2ybBWwWDf4s22JCNA3Q/FSQv5zkk7G2HTXLmSgpva5pPVN+ +ou25Nc7dobIxOgtFgRMLRG/z8MekYQvN/oeOKnfA/3GHYxtUB8aQOq/zje3mmbJ6 +euFBhxginWm6RB/BiK4rMDHbjClJ1NVATQPJ0oe/XvWJ1yJkcGLt76fjnwIDAQAB +AoGBALGlAsoJ0uTqTT87SzXMSBpuGJkE+DuIcZ0ABTeXCp7UIoKEjX+GqR7mS0Yq +lvNvKXB49UudgIXJmZQmXXBYAFXYzHyM3u+m7T178sCD6r2LhThZEBlRVOhup2d8 +6vm+9HM6Si8eQzCmxQzb6oeTU/qgeUotC0YD4pTW3KzDTcQBAkEA8oqW4oNnEXUu ++zlYMZnymy6VGVtZpx5qZOniaqO2isA7eYWbeC7W56pRZeW6FMMw+PAcs4lZNfjB +MWIw3ZtRgQJBAO8EQxpNuk/fNNZ0Vu8oM3e+Ke8KLMpebWS+8OKX2jTUujrAOfOi +JQnjPLSwm3t/AkVtHkQknG1p97qks5cBhR8CQDfCqvu6kAiQc1OolGEa7o7Ev9yL +huoH8RfwOXCg4Me3eDTxBZQ02I18N6iAjy5Uzb59nWudSRhCb1AGLgvUuIECQGgR +jAIM691RC1mAyEVTVK2DcBCzdnMakDj4ZjvS8GBmazufbNwmskfO2CS4bMplr6B4 +9V+oLS/6nrF2evd54vMCQQCYU5W50/YdpIaysLbHou4yDNqEmMmgnmYeZLmzKAp7 +AyieJek0QIhz8Pdt1Uv8/Z5K2i81HW5Znk1ijsiMUGtV +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/jp.cert b/server/component/planetlab/jp/jp.cert new file mode 100644 index 00000000..b5c047c8 --- /dev/null +++ b/server/component/planetlab/jp/jp.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJqcDAeFw0wODAz +MjgwMzQ1MDVaFw0xMzAzMjcwMzQ1MDVaMA0xCzAJBgNVBAMTAmpwMIGfMA0GCSqG +SIb3DQEBAQUAA4GNADCBiQKBgQDG54g2Zw05TvORV1u1rsdxWPJI0hGhvvYxCFUz +2mzgrb+iB2j29mbkCW4brtTfKMjynMRJ6BcPNf4ZNvV9K1c9PXOzzdz2a17R3k3a +JMA2TZFG1S64V+XfO3bJt7AKSV34IIvYVS3fa2mEi0Y34DC2Py//LE0rrRtS72Pz +TFWm3QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALQ5eRlhZ+QttwWoNL/8/d633esY +80uLAWi9M34UzUD9jn4j+2VLBZAnX9T9DInMHty2zNhbiUokEEwImUR4U1jeUcGG +iC6fz2iMQC3mHfvcYKVJ0itFvxOZkbqn5Cswbfdzf3ZiqCGrpOajrx4xSnqbNORd +YGk7ytRDpkU84I2V +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/jp.pkey b/server/component/planetlab/jp/jp.pkey new file mode 100644 index 00000000..7c096c4f --- /dev/null +++ b/server/component/planetlab/jp/jp.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDG54g2Zw05TvORV1u1rsdxWPJI0hGhvvYxCFUz2mzgrb+iB2j2 +9mbkCW4brtTfKMjynMRJ6BcPNf4ZNvV9K1c9PXOzzdz2a17R3k3aJMA2TZFG1S64 +V+XfO3bJt7AKSV34IIvYVS3fa2mEi0Y34DC2Py//LE0rrRtS72PzTFWm3QIDAQAB +AoGBAIUaSzycmWzQOI36N5TM8QoYy4mPid0DPRxyxxF8CYAQxTxYWRVqrk/LP7Om +uyzazh4Mag5LEaNMLk4RSRYJ+sYCAQyuxa8/pj6GS+kp0Evysx1pZc6+++PecVG1 +74BrVAkyL7ox3bPvgg6fax9WwpjJXPruFAHKIBJgvbPwtvoBAkEA7Yn7MFmBsxrf +gfCiRLi9hKo9GgVxYNJLwRTuB5BjErIF08NujTHsJEAdthzsiX0WfE61iNufSWGX +0itEmtTUqQJBANZc4wSz8Lgj1DbB/w58RvymUEQP02fWYnpaGvfwQ5bwAZSlaR48 +i/9l7v8KG2pNuyZoOHt53Iji8HBYCUwarRUCQCnCBO91/LAAvGP6anxMQbzNtJob +dNgBgCG8TS/1OQVzWETm6UtXCF1DDDYUlZyB6e8GYzFg8nqS9n6S7qeNXKkCQBsd +kNHteQux7IwoqfzJF6mp2Alj/xfpdHeJolOunr4fCfQloFBk1EiwOjUksCcYQg4v +rMVhutXN7yAm4rYvwakCQEaMRVL3cd1pJHLP7gY6pZs24TfPvOEi8mBo643vX4mD +8Ky5Tn0yuUjW213T/rv4bX3LoFSNvHJxDHbuINw7Y+A= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/keio/keio.cert b/server/component/planetlab/jp/keio/keio.cert new file mode 100644 index 00000000..0627235c --- /dev/null +++ b/server/component/planetlab/jp/keio/keio.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRrZWlvMB4XDTA4 +MDMyODAzNDUwN1oXDTEzMDMyNzAzNDUwN1owDzENMAsGA1UEAxMEa2VpbzCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu0TiWDCiaIP0VAktXNJTFhLSvwb66LbT +tTutmcPKtiJggrexYLdS4ZjSXiToqzpkWj/cCPjvKORWFTU6a3ETHnHlVGWfia3T +1IiUuCFzG1NB9IjBH+o/0tsxow5s0wX+cl+3Jqj+VihWvEntyOaJ+7C1CiKTS1G1 +FP5acRP473MCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCiFGqgj1w5JHuli/uBsP6z +TEzL8XNsLcU8ccbv9fTBp55VqC1DPdTldU0UCjoQs3/ButuZupJjWp33dtlt4jcM +FE0DUMj1RxRXOSg/RDszEQ/AiFA51fhFf2nCisVcYMbge0W/PFko6Cbc2ZQ3/ESa +XLASlCT+bEX7r02va/SlEA== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/keio/keio.pkey b/server/component/planetlab/jp/keio/keio.pkey new file mode 100644 index 00000000..7627098c --- /dev/null +++ b/server/component/planetlab/jp/keio/keio.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC7ROJYMKJog/RUCS1c0lMWEtK/BvrottO1O62Zw8q2ImCCt7Fg +t1LhmNJeJOirOmRaP9wI+O8o5FYVNTprcRMeceVUZZ+JrdPUiJS4IXMbU0H0iMEf +6j/S2zGjDmzTBf5yX7cmqP5WKFa8Se3I5on7sLUKIpNLUbUU/lpxE/jvcwIDAQAB +AoGAD5N0LBenen/3M4Ir5ruLs5tPMhpXhkGmrD1RfCef1bRYSKcUttGosCDw5mm1 +fIB31lXXbFugMMuFKXBq8oLOLyankUbNuJvDwc+RT+J5WZ6jELSz1ay2h/SoT622 +t0RdmJCNnPGr0o8LOOQX4VZQlm/HXTqFmcSmCmYuug7LowkCQQDb9PdDo9tojgB/ +HMFt5C4MYT/fC1eyjlFJd8Qoy83B+XUqdKH7/ocPUXMFrWo9QZz02N2BX+fXPgMI +h6pV9XD3AkEA2fSwDbHhlEu3+/v1NWcA0H8lSw1yJ28paMLTM6oV4xevGaMBcgYL +W9BEXhehw3Hx2rmDwMS6ZZM/CPqLHt4SZQJBAMsLfV4RWq9PtqGgl+arpt6Cv4VU +YSZRPjSFvKy0RkJz13bTp9yJf3/ifj2VcecONKfJseCF+ey2L/Kl2dXz9s0CQDmH ++Ay1Xnj5f6gY+sHM3Y8rcJmeA/rawdBwVLV3eO2Hq+WVfGUvqUHj+Jfpnv5rDk8Q +1vFEPHthYasqDxznu20CQBJIxujmGajl09faO9GKPpfl3B2PZ3v7BcHyLcXPEBog +WY/TwXBcHkI/4FKw8iSVMEbAosg/p11ZXOzXcHc9bvI= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/naist/naist.cert b/server/component/planetlab/jp/naist/naist.cert new file mode 100644 index 00000000..75b3a1b5 --- /dev/null +++ b/server/component/planetlab/jp/naist/naist.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVuYWlzdDAeFw0w +ODAzMjgwMzQ1MDVaFw0xMzAzMjcwMzQ1MDVaMBAxDjAMBgNVBAMTBW5haXN0MIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6T9srwMUCCSXJ4qjB9XqP+FomrtdO +SGkdkhHBfgzCeHWMkkC68BCPmzgTkMKi4GVvFQyRJltCk4r5ayhG4h3SwuTEIVWC +hlMrfZMyB+ziuB0nXyoiCJiyU6Zi7qFjj+8hcE8fgJts0o5Qwb9Q9AsZwHPD6SJT +oqXgXj8vBxU/kQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABPiuWtaKUvjx3tmP12s +wjW1ezl3bO/hscr9lWZ2Yi9uq75MdVTDbKZbgllfxQVYVdsksmegYvIO+tNisnsW +/2IAtigrW+89U/SEpgGcDB0qUlvkuxiPcZGg+f9Phrw/FpR/47i9E7wmYfo5hi6p ++3uEVHL+EU1SKH5sfqbHkCUq +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/naist/naist.pkey b/server/component/planetlab/jp/naist/naist.pkey new file mode 100644 index 00000000..8de0cd2d --- /dev/null +++ b/server/component/planetlab/jp/naist/naist.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC6T9srwMUCCSXJ4qjB9XqP+FomrtdOSGkdkhHBfgzCeHWMkkC6 +8BCPmzgTkMKi4GVvFQyRJltCk4r5ayhG4h3SwuTEIVWChlMrfZMyB+ziuB0nXyoi +CJiyU6Zi7qFjj+8hcE8fgJts0o5Qwb9Q9AsZwHPD6SJToqXgXj8vBxU/kQIDAQAB +AoGBAKmuZvbPJt22xRK7+mRDlK8gScKnQ/HI4usKiF9H1IkcujofTRKz5vFTNVwk +YA+E/PyRGBPt8fmNdGm6HUGJWAx21gYsjMJ0YLW74rJM1gqzJD9BGcghU8ifUS1d +HTjoPMAqe97CQttwx1h+yWT07SNMnIFyOkGrqRjjP85r5wZtAkEA8DHvBkPkAfRr +1+c38jaUz+AZbc1TMfEIdFeD69oVRRDjipyMMYZkfvIU6n9iBrwSIeC6TQKy56xq +2C3tZCPfmwJBAMaSRAWs5TVdgjQ/CersVdqe+utf986UPAMqU1mPe97AXwVAe0or +JwMQIYxl2pQSDS7y2Ix0+u79GAVn88L5zkMCQQCkrGdGMVdpq6wgGmp1ycvedLKa +X/GQxMJaGQHduedpMXn+tvM6pPvTOJ70Yh7PpTL9PPgdAiOrx758tYgSZrHPAkAj +TryjmbODwqW1LoRP7kfxwJTzJzRD2h21nmAFq7qlx+TdZTLG5FdidwrQEQhFjdQk +Re/1QZOgzQXpaCtyvsJLAkAYc7UhlPac+4yQpwyhMtxVvd/qjyrF4yYyAyNfrI2L +ktfp2cw1/9tuZeGaymmn8BSqKqKTOePEtqISAn/tChXL +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/nict/nict.cert b/server/component/planetlab/jp/nict/nict.cert new file mode 100644 index 00000000..750a7ff4 --- /dev/null +++ b/server/component/planetlab/jp/nict/nict.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRuaWN0MB4XDTA4 +MDMyODAzNDUwNloXDTEzMDMyNzAzNDUwNlowDzENMAsGA1UEAxMEbmljdDCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1HgF/Ae3eVigZBiS5CF9NlDInHpY1bz5 +5xFF3rsbsS1Ks613amaQol7UAriYrMx29aqKrwtUCVEjuxud1tIRkSuyvCVdlioj +jBjzI3WXWY4A8NHG6kO1eIAiLN31UUQJ1pz0T7I5B+vF2gR9awDpLwaj1M4lUN9h +QlmMhxoipP8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCB24g4EN78aGHE4lp7CJLR +NYwE4FA+xmUKRVFAJ+iy6LPdiWxKG0TvSyScYUmP5p8wNVlw8UqbNInomvPmpVBA +RxYNCy+fBRdcgWtwBWshQBPUfk10btjUDDYyPgGoZHEcqP+VcRIA/hxmhuXV3Xuo +lCPiUE1tGIv78rncYpAS6A== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/nict/nict.pkey b/server/component/planetlab/jp/nict/nict.pkey new file mode 100644 index 00000000..c4b2363e --- /dev/null +++ b/server/component/planetlab/jp/nict/nict.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDUeAX8B7d5WKBkGJLkIX02UMiceljVvPnnEUXeuxuxLUqzrXdq +ZpCiXtQCuJiszHb1qoqvC1QJUSO7G53W0hGRK7K8JV2WKiOMGPMjdZdZjgDw0cbq +Q7V4gCIs3fVRRAnWnPRPsjkH68XaBH1rAOkvBqPUziVQ32FCWYyHGiKk/wIDAQAB +AoGAVgGT4pa5FXzjyEEOTRylU/RVkMoR5cuOmZOrZeL17b24zIz+luqXx7J9PfC9 +lM1bpkx3wS3jwbW/sgEW3pvAkfdCEHUqvVjp1kk2IH4feNCJ99YIVfrFMC9q/XcW +boyx7bq0BFVhE19aLZF5y6cHRsP6u2NUSVKkrP5p0KxT38kCQQD1L0vDSYfSZ7Er +puD9tnBvycThEYWzouGekXhcKqQB8Jad1bapqh3OLVU+a521mYuVwZBSU/JaX8zP +mwF5FbMzAkEA3ddJ+/jC6dcEeoTb0h1FVOJCYEcxGWq2QagMlINqmJXYJhaCyWph ++MuzuTFzvGXiHTIisH1ce+9UpEoO5/FHBQJBALtlHLjz+FV+X1GHyKrhx+oJAusq +40+7DEqP0LhQ9u1snxGfiG8A0KsGxwJgajekVaVuPgpOkwsz8WwzgtqzFTUCQQC9 +UXJxF313xCitSl6ydIprg1/z/C15rGj3pSt/PpukthQthP5+V0xe37Bz9jD38dbC +5btW9NUNa1THk/AenvjlAkA+H9baKaCAo2nTCq0N26Y+i0lU8bPqwLsLgLkqhyKS +jyNx6ahK51qf+l3N6kbXwRdUqOXWoYSzpuisPuhCqstj +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/osaka/osaka.cert b/server/component/planetlab/jp/osaka/osaka.cert new file mode 100644 index 00000000..066aadcb --- /dev/null +++ b/server/component/planetlab/jp/osaka/osaka.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVvc2FrYTAeFw0w +ODAzMjgwMzQ1MDZaFw0xMzAzMjcwMzQ1MDZaMBAxDjAMBgNVBAMTBW9zYWthMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDvOrdUhMZtS5ovbjcWD554LWLjS29J +T8Vx2M2sdgiphs2hSA129RsQ8JJFAf/G4hTOGPAyfY0OHCjI4PKp6gjOdYO80aty +HyzNvTrpDD++zhPJi+2m1tc/nv28PJYyDhif6pnWL9l9kixcPvYXAlpUhH1igkv+ +fnyRsBqcWyFyGQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAE72TvEG/vx6FbI7YVUz +0B8IN2D66gicWvr81T78bijQdvXuKoV3JY9Qz1kwZrzVhiWFgmXYd8peXAgs+7l2 +GkN/ZnNED6g4DjJuGfhCN9LH0ISCoMID5aP/XqvjGg94aVEccW+vEJVR25IE5kW/ +wn2NrQ4ZfrJnmTyHpDxs1t5m +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/osaka/osaka.pkey b/server/component/planetlab/jp/osaka/osaka.pkey new file mode 100644 index 00000000..f2dcbdef --- /dev/null +++ b/server/component/planetlab/jp/osaka/osaka.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDvOrdUhMZtS5ovbjcWD554LWLjS29JT8Vx2M2sdgiphs2hSA12 +9RsQ8JJFAf/G4hTOGPAyfY0OHCjI4PKp6gjOdYO80atyHyzNvTrpDD++zhPJi+2m +1tc/nv28PJYyDhif6pnWL9l9kixcPvYXAlpUhH1igkv+fnyRsBqcWyFyGQIDAQAB +AoGBAMnUFLWmqy2sefGIH8tp8/1Z9TLkAoisV1zcV3Enx9kWlMd73Xg+A86/1/eG +Xz9wn7LdUVCXofiEg1guiCwX+cJrr2d+/f8W82otpzKav9bqPlqyj4S+FQqOOJyv +X4rx0aiRyrSvwDJWPb0qdV+FeN0RWOPmMAUQo8E8MjtAFpF9AkEA/QvHjBi0AgWK +HB7zVeYt0qvw0vTySr4fH7DpwheM9iKVeUA8lSD+dqp32P9DIJ1h5JbLy9OwH3/P +szzSBDbPbwJBAPIFpV+yw3+1/B0AwKEJI6qN87+ftt5nI+rrjyctCfBiodRSFU7S +IycVCIHTRzscMKJFghl0xIIgJ7I94V4ukvcCQQDkSOA5L4AV4tF6FSIJ+KKWUK/u +YTTE4UhK2tvIUl7FHuYigSUmlKF8hMWiaocwwUszYidxNwTJJhFG7jO5wYjZAkEA +hRAVnEfstIqZ0lhXkDI2Kc9h9DkbkaujU8WvLxrUHBYeY1292Vgve41U4AwJXbZi +BtWwcc6BPAnxyU28WsvAgQJAem9czQyUwYos7WEdO0G9uVu2nRwkexmU9MjbXo6h +xwq1px6MOh60eSlHo1haUmbO6qhjo4KW0WhuDB/xr722xQ== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert b/server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert new file mode 100644 index 00000000..fdc475d3 --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBpTCCAQ4CAQAwDQYJKoZIhvcNAQEEBQAwGzEZMBcGA1UEAxMQcGxjb2xvamdu +ZnVrdW9rYTAeFw0wODAzMjgwMzQ1MDdaFw0xMzAzMjcwMzQ1MDdaMBsxGTAXBgNV +BAMTEHBsY29sb2pnbmZ1a3Vva2EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB +ALiP4bMZ+YGWbXliJoulekSWpr9oFikDgTt2/kiLRjbutSfgkzXQy6U7LuqHkqNs +xv3q5HtgfRRxQgBBbvqZwc8N8FeKRYtfMHuSkWL60NHICPgxfvD3w76ke/3wEUEf +3F7qFnGKUM6382WZbNvbuFkaKUc1W71aXZQdmnXgHcTvAgMBAAEwDQYJKoZIhvcN +AQEEBQADgYEAqb9J79EoVIM27ZvenA0TguPiUitoChAfvVGwPij0tEmtRC9KzeYz +dqoOZRb7BShH+OdQhMMP9n3d9ZQCIhgEei44bxHVgqRY/LXYNQmekMnfNmm44lVD +znfm/4oIibwmZ7oLSHBR0JHyWGL6VyHDTV/rXxuaV2Q8iM6wVpj8hDE= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey b/server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey new file mode 100644 index 00000000..ce0a75e7 --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC4j+GzGfmBlm15YiaLpXpElqa/aBYpA4E7dv5Ii0Y27rUn4JM1 +0MulOy7qh5KjbMb96uR7YH0UcUIAQW76mcHPDfBXikWLXzB7kpFi+tDRyAj4MX7w +98O+pHv98BFBH9xe6hZxilDOt/NlmWzb27hZGilHNVu9Wl2UHZp14B3E7wIDAQAB +AoGALRVwk7iPm1ksqs8QDWLByElouC7r4t7pTaZWnU/wOfD7rZ8NNsMnS9h2MHIn +nuYugc5EO+MpCrpT3g4d1veCQPCmgYnnXKnMeiK580cJjkWc/3P1IWd5kwNk3EXK +yWT9Jc0iaXFYnDRS4QUkScGvLT9A9251faM26br/+AA/8XECQQDiH9pnDLzN7vg6 +E9fiZHNoqlsAUAerWYhmH28r+0pdpx1Z4ao/9hbPVKzmuAs1a0jZZUAXW8wS0Rb8 +tlEJDTUXAkEA0PJGWImZstWz6DdXv5yoEodLSXLBYBF0OamHGIiJVfTMun+8Ljmw +K4qA224zTG7B9ELnzMx3RdhNkpeQHskF6QJBANKtYssILxCfSV6zBjzD4lLuBYMx +DTQ0YsTjHK0Zn5vKC6qmefzFx1K8TatYZfkLUABcOW6J9ITDkms5Yh7Q01kCQQC5 +h2aPFx8yfC7S8tEngqJ6UUe4X/z0oIri6HTcg9/uQv/GWcVuBis3fjQMoz1JkM8H +ZKEOaD8/9WBr2chOjZCBAkA6NdAQXDpOiO2P59A3xMyWWfk90RrIQ0zF5Xz1sSP/ +zaFRtfuDRLRkdbq1EWVY3D+gYJf2NygOqxIdTSoe3dji +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert b/server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert new file mode 100644 index 00000000..fd39e55a --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBqTCCARICAQAwDQYJKoZIhvcNAQEEBQAwHTEbMBkGA1UEAxMScGxjb2xvamdu +aGlyb3NoaW1hMB4XDTA4MDMyODAzNDUwNloXDTEzMDMyNzAzNDUwNlowHTEbMBkG +A1UEAxMScGxjb2xvamduaGlyb3NoaW1hMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB +iQKBgQDVI4af8tt3QE/CCrjRaR4UWTwKaUVXXPJ8ks4dleaZnQiiA3mgsoIidmJb +KOgZivvSxjKBhSkrsEr3JeQDN4ux0hnW/KH7JGFwZHHAdNF53l3ltZei/B9PT9GV +vTUAA+ZvOMj2nfdBAdr4lGAE3+Uj5AhniiArfZIrWmsdWHX02wIDAQABMA0GCSqG +SIb3DQEBBAUAA4GBACVKQAHA4+gTEiBslqR4Vjb1bFO04i4VwZZNS9CwToQCdVo4 +xyU+eU2uLzGyrGQspY4konw4znaCghzbiWz4y5HTqeEl+h74epjPZlOZH0Z8c4+H +KerQf1InAmU3cr8O7N+/zDO29RT1P5Drtp5FNHFAXTMJcMTOda4SJB4nVEGn +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey b/server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey new file mode 100644 index 00000000..e4cb2ffd --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDVI4af8tt3QE/CCrjRaR4UWTwKaUVXXPJ8ks4dleaZnQiiA3mg +soIidmJbKOgZivvSxjKBhSkrsEr3JeQDN4ux0hnW/KH7JGFwZHHAdNF53l3ltZei +/B9PT9GVvTUAA+ZvOMj2nfdBAdr4lGAE3+Uj5AhniiArfZIrWmsdWHX02wIDAQAB +AoGASGdMGVPPt//x2DH6PLEf1bvGiKbgNmBNw4G/YQ+GCZLt1tOlYrChQoHCwcLw +rZSoHR7VE2if5sZ5gOGvRmR9IGjoxZWOiIoKjQwa7LqS+PL+z5QJlu5k4mzLXMR8 +t2nwOlIjp5uoNcHNQ87sjO3aB8uemInWDa4gpzbU3CfmbuECQQD7BOYYRie27lqy +9XoVXU9844OdoDdI9kGXCvhtYI3nsK4IMshBKSuAD5xEYF0rSphFmyBcRGU1gzeq +TNF8iaXRAkEA2V40z+9vqA7ziLXuqj79FkQ6b4dXXrbt2bvv4x0bwebYob9icu5V +avIgvAnGnCJuk5/5kW6h7m6hXJzLvbhe6wJBAOUOjFTcN8NS74rcO+Ig+rbQ+bot +iCVZKXMF/Ln6YKNqcvRiOqBTTDGYjRVMBdjKQfdKXhY0B1L0gSgy3vpQtPECQDEu +K2zQk8bGezt3TmSek8yx6zbIvG/lm7Mj3obYUytv+5u9HZ07Z4AnAFkLLTCuaa5l +B6ZsDZ9Q0JmPsFlgmbkCQQCKhk8Ak94BhK8PhH+ci0id5IxJbpMM2LPP0jpFTIYV +3AwhtDqlPSqnvXfW4Eq8uj9Sc2SJMJ8/CZCw7i32DaCD +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert b/server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert new file mode 100644 index 00000000..f9aeed1e --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvamdu +a29jaGkwHhcNMDgwMzI4MDM0NTA2WhcNMTMwMzI3MDM0NTA2WjAZMRcwFQYDVQQD +Ew5wbGNvbG9qZ25rb2NoaTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu7X5 +54fIGlQr1h91GY2NjRnYWRDnyw0QrcsM1F20AHnGE6MLchfH1g3VsUDw9d0tFO5x +Migpu/ca0l6DobQN6Ft8+zZy9N8o+fQPYrSHAm4Cf66rMHY1IyHN0VnQmczs4Ig7 +GZBSPXbZBXA0nbgQ9VXeZW1xktDuzEUOnLIvzCECAwEAATANBgkqhkiG9w0BAQQF +AAOBgQBNIQsP7JVGa4Tk/0K//v+kDUtEQe866QBAIScFUaYXNycM62NphRDI7ZXX +b8E5tnCY0qJy+SuzwseIMlP2ffHeHEGeurbjAcz5WpNl1h0BN1RVcTO5UXlSiwZR +xON0k/A+uHIjQzJb0FfxdDikaS01tkeBfq+/O/VoW6A7Xi5mZg== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey b/server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey new file mode 100644 index 00000000..5d2b311d --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC7tfnnh8gaVCvWH3UZjY2NGdhZEOfLDRCtywzUXbQAecYTowty +F8fWDdWxQPD13S0U7nEyKCm79xrSXoOhtA3oW3z7NnL03yj59A9itIcCbgJ/rqsw +djUjIc3RWdCZzOzgiDsZkFI9dtkFcDSduBD1Vd5lbXGS0O7MRQ6csi/MIQIDAQAB +AoGAPK/Er7oSU5DK61sYPL6q+OdWLtVsWxVKQyXWbAIvY8f65fZciPJvRSEL6VaZ +kKOFI7NDHXgmpgJpxYGRBQJ1TA/PrrySy/7eM9cnKa7h6GaJNWBl9dae0VifqESP +GgDd6xci6mI3C9A5VrmT0OJqU2eivubOvu5e39XvFmRNhsECQQDrMVpfFztxUb2j +AmiNSyznFTHHaOdKk1a/WqcGNj3THv3R/FoP8ritKNJi4hzPmxAwqlj0YtEl06js +JCFtYitlAkEAzFFAhJmgkVYRMMdfeZd5mXdJDQ92+sNjOhUz2EY8Ra6d+ZeCsIpD +/LXFHbk4xhukdQRp7EEw9QcmxNkgnEe4DQJBAOmgy+G7xTuK9DLSOKNqcr9VyW4J +of/tnnVVCqdcCEwI9B+8aoZ/GL5B18OMUwxTP2DoRpb09kd6GsoAFgh/RRUCQQCy +Oe5dvOUj4j/8nO3b0xZvmG5QxjyzYd0cvYIMFrhc0IVdQ5ztAq9rsePQmdG8fkBn +EwKS5AsgsqxO6lhX+vfBAkAGXCZHSgrjY4DLrpZ988qfr+zTmr8GXyywLxbHQtli +HmUEcaykHMW8nfu8F/eD75k5XuBUcSETOqG2hnsdQZSd +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert b/server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert new file mode 100644 index 00000000..797e7c30 --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPcGxjb2xvamdu +bmFnb3lhMB4XDTA4MDMyODAzNDUwNloXDTEzMDMyNzAzNDUwNlowGjEYMBYGA1UE +AxMPcGxjb2xvamdubmFnb3lhMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCl +Ijoty6h9vvAwHFsMpD56jZSYcU/LAunUmsjMvKn7Hv5X00Lod0gpzylooM8P8w9s +n0sodFVNfjfQRiXhzMMhcpKBlK6lW+7L3JPpN4A6E2WkTKBKrRECb2n+Wj978+jq +LaXPvA7QKpbkFXRttyd8e27IerXaLGOcRs1YMNFbnwIDAQABMA0GCSqGSIb3DQEB +BAUAA4GBAHs48zcn3MISFKwFMMs+znnivqPfbNPt5k2EnOcnN4zAoOfaybs2vWR1 +ohVhYi49RCMNvPEj9DR+FYVG8KbKN6JTW4eG+6LSlOt/VgGOR5MhUNeXWpqo4m/v +6eTY8cxiq69b50amrEg4VOEUglMmscCyZdU4W/hUAhN4Edf2KIL3 +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey b/server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey new file mode 100644 index 00000000..d223dd97 --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQClIjoty6h9vvAwHFsMpD56jZSYcU/LAunUmsjMvKn7Hv5X00Lo +d0gpzylooM8P8w9sn0sodFVNfjfQRiXhzMMhcpKBlK6lW+7L3JPpN4A6E2WkTKBK +rRECb2n+Wj978+jqLaXPvA7QKpbkFXRttyd8e27IerXaLGOcRs1YMNFbnwIDAQAB +AoGBAIQ1cQr1QQLb+gUqzqLCZNtNuyiJn+7TeE6lVhrE+fp6B/xcwfbIeVgv6eFA +zkbgvPqkVlIfQaR3Z0wyvWWYwKgfLUtEXztsd1T7ogmYQpAScdeKH7/jfduAYlHC +yMkmhlRYsQlRUizT6clug1cKLrTEoaKEBwMVvOYkElPzonVBAkEA17DxTtwYIaNB +vOqbKeCtaE+XbRVuIVy+gadnguLpi4x8T5dZPPssmvv8hiuiuaDDSYZzbwzBV+To +yRxzhSkHLwJBAMP+heRUCm77/tB69VeY+JOeYPeq5ZXVi34PyKF3OyBIFF9IvML+ +nBr+mFLZfHDs03dzVqXCr8qwMa+XRMvd1pECQAPKmHNKayIsPHuVpCSYTnQG8iJ4 +vfbYKoEc8DTcyD4rugOsJWVtBNu0kjvJiJK6wLQKKP1KvBtPasgeN+mfTwECQGsM +Um8CY+x4YJXYArbEi0h9YbMEOX9b8mN5FXjzWWzpUY81eDv8uqCX2/SsayZ2g42j +hnjk3AUVtR2VvnKnCLECQFK2ewWFdrSRfLKcN4vhULGtPl3x7uh4VbyUSUsiuls4 +q1b2xApXYVKRxD+LyGxiD+Rt6luvVEzdnvmt76ENa54= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert b/server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert new file mode 100644 index 00000000..d7aa2389 --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBpTCCAQ4CAQAwDQYJKoZIhvcNAQEEBQAwGzEZMBcGA1UEAxMQcGxjb2xvamdu +b2theWFtYTAeFw0wODAzMjgwMzQ1MDZaFw0xMzAzMjcwMzQ1MDZaMBsxGTAXBgNV +BAMTEHBsY29sb2pnbm9rYXlhbWEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB +AK5FphD9l7e77gFWdDTI7GgsUNL6ZcdsallvNVZzhXihOqlsKmrHXLh2Hg8BBRth +UHkNi77iD0Hc//8dAIAJWFdIPZahfa7U9caQZlYraNfqUEmuuCTueh3Qv1AspThg +gIrNosP8Jz29W64FGLmMDe1Tu/ITty8K3BIJW/HIumWdAgMBAAEwDQYJKoZIhvcN +AQEEBQADgYEAEXJJRBW9GTO+clwX6pK6CqQ0iJS638UossGRSMR/whhBf/SneQb7 +Dx+QoXae3vlxM5o1QxEKsBom4jixLIzeJd0uA6qvIQaalJTjhFqCiCtiZQ3a16Sj +hsdRdubn49iYWScE9JpgDRGe52mheIZd185rlNzXAUWr6OSFcN5iK0I= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey b/server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey new file mode 100644 index 00000000..176fdaec --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCuRaYQ/Ze3u+4BVnQ0yOxoLFDS+mXHbGpZbzVWc4V4oTqpbCpq +x1y4dh4PAQUbYVB5DYu+4g9B3P//HQCACVhXSD2WoX2u1PXGkGZWK2jX6lBJrrgk +7nod0L9QLKU4YICKzaLD/Cc9vVuuBRi5jA3tU7vyE7cvCtwSCVvxyLplnQIDAQAB +AoGBAKfS2sGx9NEzYVhYcUAD3eXUB2GlUS5i8Wd++NZwGTC500wkphR+OIRK+1dn +nAtqA50Ptmv0Ns0ujjiXLUwfs7mC6QQIO6nP+qlhQQlzky+jx4Xe0hIUEc+zzndh +rFdBZRnEViPo9XBeV2wB9NvLDnZ8pEafkjI0GrRy7cbyRNbhAkEA3ANkH2nDlVOX +PMRRjI9sWxSGpQEgiIjgGPCpSWiO+G4/0xRtQ+H9FTzegk1JTGZDj7hjf/tHVlvF +qOXncaxPKwJBAMrG8DUKysiWf0z4hPmYBRX4Y3I8xgEBnPgZPfm1utdsTAs0D6hM +raRKxWnN8j6jy5lEBbgCkxTsY0vYndvTelcCQCZxJT5j4Xum9mb0unb/3GPxqzEL +iF6y480Xx8x+y3RW9ynviMPyqaDbWNmVnXgO6kEja6dCBY3uTRQcz5rKC68CQAyO +SO1f37KP7w37DXDPAvGbUb0PGkuRqACMv5OotwsDv6mp7ZZEOTRFFPg6MlfCmKbC +2X/NWQIgqP1XSl8ENz0CQHgkffufkyBVijLMAQDwi7NSWHJOFBj2i4tK0uf6IVyq +nJCqQFMU+HWYlzB/DHzFn3xhqqVKyYnUQqPU6qhkQKA= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert b/server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert new file mode 100644 index 00000000..e1c35d7b --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvamdu +b3Nha2EwHhcNMDgwMzI4MDM0NTA2WhcNMTMwMzI3MDM0NTA2WjAZMRcwFQYDVQQD +Ew5wbGNvbG9qZ25vc2FrYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzLZp +mjyYl0Dp5VSgj4I319Fz2ikuorayYmbnyyrKDX92eVEj54oYdl7qrcl4tUDn8eDg +qQLnN9G/aF2Ky048+pbZN9REh0UN9y/N+xxNO9StBb6BqvVk2JG+axvnTQ4sBluL +LbM7BmrVo+5s5p66SDZ0YTd9zbblq3un0uQGv8kCAwEAATANBgkqhkiG9w0BAQQF +AAOBgQCKBHxWrJxTgMTR+wHhmc428FrNZYc4IDF7BxfRcnOzORzud5xBtCtJIqpz +QZKASxUPgd1YIs3l4yRsO0Cj8Ks9Mr23d4XnGBSszONlwzzXkPeXxLiBnZdMmE/q +FquF2Tjf6R+7dJrLVCUimq9DznNoOpmaqgDc8+Mr9RURbczkAw== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey b/server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey new file mode 100644 index 00000000..1effff7e --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDMtmmaPJiXQOnlVKCPgjfX0XPaKS6itrJiZufLKsoNf3Z5USPn +ihh2XuqtyXi1QOfx4OCpAuc30b9oXYrLTjz6ltk31ESHRQ33L837HE071K0FvoGq +9WTYkb5rG+dNDiwGW4stszsGatWj7mzmnrpINnRhN33NtuWre6fS5Aa/yQIDAQAB +AoGABJkURiKWSs9qcXw1HwQNvQs3Tu8d3Qm9d/hXvHh5kVQLlS39YHX5lq8LFlww +GeIbU5N5eFJYXyiW5AE13NslA3GR+9XODISe4yhGT/yJtbGzbxRROPhRx4saY0L2 +5Nh5dhSlXeC7YLFjlPNfiAyvpQ4/p6unovMZagA5IAmhNwECQQDz8rw5nyJ3OaVC +6wXL4nJFVqdzGlREeu4bMO96nWMqgeylFPJnwth3ixQeWv83/zaVN4k7OkWXggXk +kbjqCJ8TAkEA1tN0rzAexkfWPrfIS/K/OkWJd992bEL7s28onL1syCIA/5n3c5lS +r8Pk3TQXXQt2K4yCikwfTIsbkPo644OVMwJBAM08fdE4qgWGkRxAoKrMw/jEE7MK +BrVqeyKTRBdzjHe5wT+N5PcY/YdtkiqLwkb5R5G4nJMgzmXONWj8lIcJY9MCQQCf +9pTMXmiL/LHrwa3D393E5kKWoC7uLnJ+CieTjvmRjMBxk5RO37xSZOvmSwOapQ45 +H0eU81nbBTphmfJ/t1tBAkAIVSUyTwHGddiLSI2vkKsAhtlMHM/jdMnsi5XjauFm +qHpaqYvM1hUo+jMR/5VeYnE1p8QyM8I3b3rG79VT7DMH +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert b/server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert new file mode 100644 index 00000000..259eb9b1 --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPcGxjb2xvamdu +c2VuZGFpMB4XDTA4MDMyODAzNDUwNloXDTEzMDMyNzAzNDUwNlowGjEYMBYGA1UE +AxMPcGxjb2xvamduc2VuZGFpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1 +b6T3col+V1yomlQHPrWYqJdL4+snvgcoS+zqDP+5xR+U0oFRfwnGGDRZvIyQHjDg +XrXiLsz7vLotQW6bhFhWC8SqDYJGZsPQF7v+xi4Pma+Hv3gU/Z7zwgOBy5P8XpYP +3waHzT1aF+r8EgbAhINFH0S9JffsXc53/7fxldUSbwIDAQABMA0GCSqGSIb3DQEB +BAUAA4GBACL8PIa58DZbe4H9fsEDboF7SY8xyl3XwwnWk9xoRs8YgAiQRbzAaQEb +Rwu0qkbagYvRVdNRj+OMBWZUGgQWBulJ4gNo/BKXZPkn9+ZnOJ8wlkG6cXrZgkjM +0MaODu2oDgZxvPTc7fYD+DswC+47LGQT5Wwq8RI+lqopiMrjm7wN +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey b/server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey new file mode 100644 index 00000000..f8e75b53 --- /dev/null +++ b/server/component/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC1b6T3col+V1yomlQHPrWYqJdL4+snvgcoS+zqDP+5xR+U0oFR +fwnGGDRZvIyQHjDgXrXiLsz7vLotQW6bhFhWC8SqDYJGZsPQF7v+xi4Pma+Hv3gU +/Z7zwgOBy5P8XpYP3waHzT1aF+r8EgbAhINFH0S9JffsXc53/7fxldUSbwIDAQAB +AoGAT7hqh79v4m+IaxzEZxqKuDT7pYDTxnactnwF8SEdDActRTrpT2G+bagc+ID8 +Uiax2yRCTsu5jbLzKwdhDjwsg4TqKnDI+kp/FSp1wotRMqe4WN5lZvUngU0RGbvd +S62S0qvHTPGIxjwgkyWNk7B7UOY3jU2OpE9TSNtgSRbfN0ECQQDZLeB77qSSkjf9 +NRUPa2j0QWF2uhOoh04cvuNf3zsRz9o1TPRgLvszzkb/692PheEwhhyh8EIfGYsn +xug9APN3AkEA1d4pu8rLcHhKmoTOUp/R2BPI/A24RLZwOoeXA/wX73D4DJDIFWt4 +WCgX1r+FRbiRiwdscgBSrXIa+jYyka/myQJAJZlNrecI0t9BljKkbMD5sJ/JEdbx +JFIYcd2SW7y360OC0Yt7G1PG5Zcmr5PUDc7tx4rQVjDUIbI4ZzCGcFlDzQJAAuUB +3ZfODxShtdusSzP8jBcgdkDdSJjLhg9FvPkRfd0ijlD7VEbjFxZb1D09WYc4+Q+9 +qQFWHSDZOp+3KX+e+QJBAJRnjecDlV5hGqLmsf0P7XwtmhM/MQcBFhs6HbeUBQZM +XafaYRZKI5Z2ekgbHrspeM31paWfJ6zt0ub5Q6tA0tM= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert b/server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert new file mode 100644 index 00000000..991b5620 --- /dev/null +++ b/server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvdHBn +ZGFuc2swHhcNMDgwMzI4MDM0NTA3WhcNMTMwMzI3MDM0NTA3WjAZMRcwFQYDVQQD +Ew5wbGNvbG90cGdkYW5zazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3ca8 +xc8Cqjw+N2ffP18miWdZJJ6z4bCp13huLEeJTca8DiVj2anmKW7QsyH+hKa84QNb +OkK/bWnXEmBmDRd3ZILlnTUHmsWYrmmdcUMyf9MY9OfoMoByZp9xeJ0lTKUDahdN +2Pk7bohEZKB5Eo5qq3oqnXy3UfVDF6P9IkNEqG8CAwEAATANBgkqhkiG9w0BAQQF +AAOBgQDQ3Qcf4roY3bvZD4YoGXmKhBDGKBQPd9O27JcCQ5XiLME4aexw4akaNnVL +wOS5mUdjH04q8JuM8cNtil27uloRdYsCy1bX/trITqWg4foy5Cxsqn+ctHWbghZz ++DBPjgWQhDBw1sV1SDhjqg994/c5kWAWYh92FS/cv52dyy4WXg== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey b/server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey new file mode 100644 index 00000000..8b89596d --- /dev/null +++ b/server/component/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDdxrzFzwKqPD43Z98/XyaJZ1kknrPhsKnXeG4sR4lNxrwOJWPZ +qeYpbtCzIf6EprzhA1s6Qr9tadcSYGYNF3dkguWdNQeaxZiuaZ1xQzJ/0xj05+gy +gHJmn3F4nSVMpQNqF03Y+TtuiERkoHkSjmqreiqdfLdR9UMXo/0iQ0SobwIDAQAB +AoGBALczxxk4yqDKJzMp0VfOSE1VXGRN3Zbgk0z1pT1a0ue29f5RkMxr9z/e1PRF +brUx7/GJDkFwhiXiOtJpY6QI8IxDa8oCbEjLpYrMBZ9C3pLUHy4mbM/LaZxXdxX+ +A203NYrDWopRt3KcF/Fm63pOaPvu2b+DKips51XnQfp36qBBAkEA9PbfOWXIIjz5 +ZX5+FWcSLPpoI1G3hYldPgjMjrEI//ESov42bnN7BPwcYAZ0wZ7ecYZ0i8sd40LJ +QZdLwlBMHwJBAOfEcTeIiaMvuBKnoWFY5GkZyDfstgynsBHsQRbMWnGBvUvAgAMi +y++mrZUwxzumC7LdbBfZucqqcupH8dOPGbECQQCzm98IAqy/Dd3+oMRphO06tU9t +thjNfG41cdYqOXvTzTpQ7/uQ+HMWsJNNhO5OmOGYc3E4nnEHlIxj3z7Y9m8ZAkA5 +SWYOqvISYu4ltkd+b2Ft1RCXOiw5bo1nsLTZ9ML6QW5PthIuNECiSNmpAbiNNtq3 +aGGad5ejz4O+AvB0MW/RAkBmdjKVwfBHBALXJQPxDNLa/1JrDHuT8qO7RVXExc2I +mUcNAgvSDid4iA6wkFphe8z0vGDCgA987HDZfHYvI/EK +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert b/server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert new file mode 100644 index 00000000..e683e742 --- /dev/null +++ b/server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBpTCCAQ4CAQAwDQYJKoZIhvcNAQEEBQAwGzEZMBcGA1UEAxMQcGxjb2xvdHBw +aW90cmtvdzAeFw0wODAzMjgwMzQ1MDdaFw0xMzAzMjcwMzQ1MDdaMBsxGTAXBgNV +BAMTEHBsY29sb3RwcGlvdHJrb3cwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB +AOtiAqrvauL/hvfHuIF+LIYirzIXmpS09Px7gl/Dwj8ilqfPi1740CLtMiOiFx4I +0aH2dDSwL2bH82aGICrLdTiL+7VKrK/xzloWIsHv7vdwekNNGEIH+MjLsU8NE5u/ +azxOJmFagVUDr6l7krxLlghGNhZQp7yWx9++RaY/+udpAgMBAAEwDQYJKoZIhvcN +AQEEBQADgYEANX/+a9QHDZo7TNGiP52Sf15Uyomdqaq6xhBkGpUTaeJWpRmTEE2/ +diXIHsCn3wUxoygIurWy/lYGuDewBeyRwF5jBaFcIqO+coPcrBsvhr4gzGCITB4E +jRjTuJQI2q5XC4VO3J4UGs9yy3V2yJrmQ7KqcDC2YTj1M13hTQRd+y4= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey b/server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey new file mode 100644 index 00000000..df13212a --- /dev/null +++ b/server/component/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDrYgKq72ri/4b3x7iBfiyGIq8yF5qUtPT8e4Jfw8I/Ipanz4te ++NAi7TIjohceCNGh9nQ0sC9mx/NmhiAqy3U4i/u1Sqyv8c5aFiLB7+73cHpDTRhC +B/jIy7FPDRObv2s8TiZhWoFVA6+pe5K8S5YIRjYWUKe8lsffvkWmP/rnaQIDAQAB +AoGASLGsQT5PtGtWM4/q25MsDQEJOl8vzl1Ui+VZDlpW00jLXmgqktok7aRzp62X +lh8DHxIOMXd4LDX0ZeVmadEMEiMJema5df+JNfc3vbtToAthkvDpr/YZXjYIC01m +Ri62UjW8UnDnFavFa9KxzY2OtAkJ9IZP6eVH53eUhq1cQAECQQD168oPR49s13od +WixJn/ZihnbGjiYb37pCbG0YBBU7DnpF9HnE3tWQUTT+6og3t54gPRLMdpMo6opz +s56BEASBAkEA9Qenb1sMxorw9zGNhBc1R2fHb081OK2+zzXj6YFqUwckowcZzskR +Uw01Po8bMaouwWtibNz4/yUDiipwJUfO6QJADwsadC7TdjwEK1F9zg8r+kDxeRnu ++NuJwFBzp/lv9wnervLSlBlxhP+Ct2lPZeEkmiJCSSGjxOf8CjHdq1V4gQJAJDmq +dlsWq2+1KkaILoQj21erc3hZXPTK5eWIuWfpqTbAIt4U4a52QjoMqiAMHC6V1QCk +P4X3xfjZ6h5WEBzqqQJBAO6RMB9dDyama/NJwGCOi6uJlIoVvdA80ss6GT8LPhM+ +ylMnkQcprV0GdOiDazRT5qJX9HAusOi18Gg3T9MGSpY= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.cert b/server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.cert new file mode 100644 index 00000000..7f546cf1 --- /dev/null +++ b/server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvdHBw +b3puYW4wHhcNMDgwMzI4MDM0NTA3WhcNMTMwMzI3MDM0NTA3WjAZMRcwFQYDVQQD +Ew5wbGNvbG90cHBvem5hbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAta/a +d5HU6ZntMyohbF6CH9MveCcuqfKW2bTzx3vVzY4aqs97D4pqV4F8zAcQwjq0Vzqp +xIrwa4bxyikNwg2axy+abi9JvGHziKz03cVt7S84QkBmUMaEx/MNLHM6XCiZvTdi +x8ZKl/U/l7mDW7mkteFEzMLXUEq1BMv0X/wFnw8CAwEAATANBgkqhkiG9w0BAQQF +AAOBgQBJviwXpD50PkO7zgI9BCvoNvmD219go7DrZdM+PfEvHgES+zrBFUhue0/O +8BeKqxaXDKChViG4O0Cs/BYNeRC/SM+e3O5GDzI2ixkVqiUOvHDrXpQnIEgzCURp +xhxD3STm97N8qk4eV03RUuS8hSgVQpcPb3BPA3MtBeiWh4tvKA== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey b/server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey new file mode 100644 index 00000000..78ac001d --- /dev/null +++ b/server/component/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC1r9p3kdTpme0zKiFsXoIf0y94Jy6p8pbZtPPHe9XNjhqqz3sP +impXgXzMBxDCOrRXOqnEivBrhvHKKQ3CDZrHL5puL0m8YfOIrPTdxW3tLzhCQGZQ +xoTH8w0sczpcKJm9N2LHxkqX9T+XuYNbuaS14UTMwtdQSrUEy/Rf/AWfDwIDAQAB +AoGAQAlyS/CHhapuMzlnPGX3ITZzJbtRtC6/wo4H2kioa+HpPkkQy8JyhtMp5FOd +MYg1ZgVULuT1pkCS2jksEzhuU6wKQFdbjqP86GSx70iYPqgbq7hSBrl/gsJF/rEb +vZ23Eh1hNdjPOhlamXGXNr6gS8zJbKkz6cY7Jdu7wfskR4kCQQDkS5VscxBWBtJe +XqHu5D4HUHql9qUblpjQXOZal9NcNnE6hzGIwRyemea0WMMWyzfXNIVxg3ZFxYKs +ZTuU0YX7AkEAy7xLqPvSRqVeTayngxFjs2OWN/26gGzvOUn7CCC/YDOkmanpXFL0 +rUXwXfFfVEAaRYrIOZ1/I6hjsQCIZITC/QJALBYslPTjgrluhqrfurJ5CBCSntoy +qFE80YAfO/914ajh1NumxTIFxNsTomBBzHUSI40Q+ArbHD44LfKevu53YQJBAJr4 +HSzqb2XhP7whikF+JrI7G/Z2/zfUpJqVFWd3UVqhraBcx+68AvUR7+XlRbfWEqW3 +DNoWXLEI0tu+JgEfoxkCQQCS0RjIMOFFXc9FpLWCnyTwvAol0aUhiA2iQSuoMDZl +fRvZyye13a43BdTrS9eZulPwCvhJZA/n2lg4s0+FE/6J +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/utokyo/utokyo.cert b/server/component/planetlab/jp/utokyo/utokyo.cert new file mode 100644 index 00000000..29b069ad --- /dev/null +++ b/server/component/planetlab/jp/utokyo/utokyo.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ1dG9reW8wHhcN +MDgwMzI4MDM0NTA3WhcNMTMwMzI3MDM0NTA3WjARMQ8wDQYDVQQDEwZ1dG9reW8w +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANsNqOHKf2xdiCL5bCFd2/hKkY16 +1eh9aAcx3mAnr1ZsX1Rydq4ekbh8MbLfWgecku4K4gPEqTzWw9WVGdgS7uw9SjvG +AR5PIqGYUUT3zd/yCpRbvi9EqS3t2h3i7jd8z6CogNFlxPQNYg8mYesqXZi+1wIR +EaNkWiJOA3bppUdVAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAZRjE09B97FXikiNb +MOggBAwPw4GVTx1YZRi9vvAg6TelkKHt4h7ASZjEq05DmCyYAeRuMqx3rCSqSdNb +MtDtLSrnJFFdjTRuRPQN601wJLyC6QCGXmLZQeEMnq2QdQQ9XwHugaHBJGB+tB29 +k5tKGmEGoCINSkDson7C0XxxTp0= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/utokyo/utokyo.pkey b/server/component/planetlab/jp/utokyo/utokyo.pkey new file mode 100644 index 00000000..226d1200 --- /dev/null +++ b/server/component/planetlab/jp/utokyo/utokyo.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDbDajhyn9sXYgi+WwhXdv4SpGNetXofWgHMd5gJ69WbF9Ucnau +HpG4fDGy31oHnJLuCuIDxKk81sPVlRnYEu7sPUo7xgEeTyKhmFFE983f8gqUW74v +RKkt7dod4u43fM+gqIDRZcT0DWIPJmHrKl2YvtcCERGjZFoiTgN26aVHVQIDAQAB +AoGBAKgBGf3SqVgbhEYOtngA3KzZxDiWdWkSha6++KcWyMun4pWKFKwGlgzAc/2U +gCBGXgpkHmR1eLdIoHo3GNM38jWiHS7JfCYOYEvFx4aIQzX4P/R+5DfHBMN4Z5L6 +DzXO+ac5gQXaRL6zy47n9HSaH+wJh+09MeYj3tvPfs1lGn4hAkEA+lm5/ovFsKZd +jZhvCr9HwpbXNG47+m2HImv4khXo64+b80oZILUB2NnkDd+ydH9Ym54WxT1jB7jc +fs6mXGwxcwJBAN//ITh4PcvNVk4twF+AHmGennqCexN9UdC2KlwewWVKApKzmylC +1N273B1COpeH6+kZl7PQfGPwR1NJsR4SUhcCQFfyk3uPwKg5GZ53kXLWFbCPaxS5 +MQrd1V5LTeyME+JE9gU237L0w6xZh1s0Xa29WvR4SgmKcjKxR4yorhrDy28CQEx2 +53xDb7T2r5OYgqcXMUfZwffIOwN4MEmzJdq0lQhir2Ys8bawHcJjssw6I44+1AWK +uwKjFRN4nqCL8250ipkCQEoyBTRO/Dr7pNKD7reO6S4q8jBaMFoGYG76+6oAypBi +prXOPilRps7ZKOkpGNvtKV7Xr7Cz3hUcwr7IWaC6eY0= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/waseda/waseda.cert b/server/component/planetlab/jp/waseda/waseda.cert new file mode 100644 index 00000000..dfd33a30 --- /dev/null +++ b/server/component/planetlab/jp/waseda/waseda.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ3YXNlZGEwHhcN +MDgwMzI4MDM0NTA3WhcNMTMwMzI3MDM0NTA3WjARMQ8wDQYDVQQDEwZ3YXNlZGEw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALexccXPggc57pjBKUvx0xXr8c4G +SQmcTs8sQeQqULwWGiTpIYKW9ku1f7Ccj+0UwJIQpgxVCJ7GI4T53Bs3qftrMgTX +Tc6QajeCiGU7Aa/dwE/JFC6jqUAP1wHWuEXAm4DKZNma7vUOqElyq/92YseR1IRO +N3/rvlPsA2wyEFIFAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAo22DfyRxdWis3Rzj +etUjAr3oHQYcLpfTZV3J8QD4xGA553ZtuujTK9jOFHcc/d3qMEcbF6jZxdqWDrTq +iMbwXBVDElLKxVlDqDT6aB3ahBau5l4aFdk0z5xUAlp0nN+FrZckftDK6TSQCusU +C8wIeZUybyPa6M95DXhVI1YwIKg= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/waseda/waseda.pkey b/server/component/planetlab/jp/waseda/waseda.pkey new file mode 100644 index 00000000..41e2812b --- /dev/null +++ b/server/component/planetlab/jp/waseda/waseda.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC3sXHFz4IHOe6YwSlL8dMV6/HOBkkJnE7PLEHkKlC8Fhok6SGC +lvZLtX+wnI/tFMCSEKYMVQiexiOE+dwbN6n7azIE103OkGo3gohlOwGv3cBPyRQu +o6lAD9cB1rhFwJuAymTZmu71DqhJcqv/dmLHkdSETjd/675T7ANsMhBSBQIDAQAB +AoGAVbFcvwfvw8k9ylsKFdipPWfFdPQvrGETzsf5sSQgZ63z4lYzgMVF/smb2Nsg +tVvh/gHwRH6Ct/b86PLawIO2Mr3xvgH0u53yLbi6QDtp4+GUmq0duLrWIRvKycpy +dlEzn/15WcxrDzWXn8+voHek5wxdCH0iHV6pDiWeoHIdrWECQQDnFKUR/O3SjC/m +1cTcQQCw310xP/eOjEGsMK1W10/BhtkzR6b75gEGHhslQp1WAN8fM+sTk8mDr1nM +skf74W2JAkEAy4CXR9NwhicD25H+4i44/1+ikiG4fRyxVn74X5a7kdM037VmFgn4 +NMtqJyIXRBmsWYGm1Z4j1yDMGLIL2OK9nQJAOj+x/H7NVC2SRZXNMdgQ3ITxcOC2 +/m/MfiMnDqTnrdjYF10Qcp7f0zLzlMjd8Df4Bl2H/D9cpJ0m/bpS+uMwQQJAU5/1 +CqP9onMX57u35NQfwflXwfsvZ+JJkYS9pfI4A/WpzaAqYjYYlAFfDtO4gdiW9XUM +zM2eZsHofOF1ctvCFQJBAJEsgFG/I3t3f0NnzOFwifDDzu2BYt28pFcBu2lpv14V +IeW/ryOL2uNFkpvLLf1ZQFCAfeSPzHzT2k8YdZQkZug= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/jp/wide/wide.cert b/server/component/planetlab/jp/wide/wide.cert new file mode 100644 index 00000000..e1827b79 --- /dev/null +++ b/server/component/planetlab/jp/wide/wide.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR3aWRlMB4XDTA4 +MDMyODAzNDUwNloXDTEzMDMyNzAzNDUwNlowDzENMAsGA1UEAxMEd2lkZTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxvuZnIVQj0yJAvn19de1bTD/Z7iBmSBL +bgeeP4RenqFsa9U/3971ckOGTyStZta1XkCkpXMqqXh1nJHnTdgF0ILm/h5GLzUB +hC+tzHFjETJ2H5YBDopuCf+AhlDkDBbpu6LEd10cJKwLSjHSxBa3bbQgtUT8sB7O +Z+Kope+jONkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAa7GcURkSdqMaBH0VHRzdD +QoHaSdUm+QTD7kVpP8NsUqP1ymvqV6JTWgRCLv5D7FRK6Q/EwvpdC8lxQCApKcno +ZyTYG0dusHCDQmAkfS+hjKsYmsZic7nYi5dtil72wNFXxuAkiVN+KBFKj5d7if1U +riGocsQF9GFe6d/J4l39Gw== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/jp/wide/wide.pkey b/server/component/planetlab/jp/wide/wide.pkey new file mode 100644 index 00000000..17c38dac --- /dev/null +++ b/server/component/planetlab/jp/wide/wide.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDG+5mchVCPTIkC+fX117VtMP9nuIGZIEtuB54/hF6eoWxr1T/f +3vVyQ4ZPJK1m1rVeQKSlcyqpeHWckedN2AXQgub+HkYvNQGEL63McWMRMnYflgEO +im4J/4CGUOQMFum7osR3XRwkrAtKMdLEFrdttCC1RPywHs5n4qil76M42QIDAQAB +AoGAS3CygZwtudarj3xTWzzIJTjRbHKQeAy9bF7pCW3XLc9Huu5jxC3U4thlAHaI +Y5f9tVlO0weB4jSwaocKqgG/2e3MSdWC6IU7wPQ75rlAWgtggyvowhpZqZht9UOE +c+9vJcukH+5//LbuClNdRlpunihu+XVe88R/2naLz7vy7IECQQDlzRqUpsg9blra +W3g5LimFwczYrZ2D3mHO0aPYsqIGAQq50KMR4ArpspV2l7bjUppWMHFGH10htjCS +I6XnDS2xAkEA3asKw2zquzzCE4HWONBS0aKWA5/ZTT4WmMTqbco0NpDVpH1OrWx4 +pA7cgd4Mfix43+umpM0i+2inBCE+Oam/qQJAbrc1wj7kpKxBe4isUKhL+xSXNCHZ +jQoch397eFEAPPJNj57Uoi0WNOgEmMGZrMZEc5gdSxKbVT2pAw/Hw50W0QJBAJPR +dpkBbbq0dps5jthOG5xONoluNCNtTvZLAiV6nLzycnWBVlERr5V/j45Ou7f8AhMY +ewUVAsnybMW1QWCEkRkCQG9e8cka04QBwPP7J+8uQD1gVks+ykFUiiZfXR92Y7SZ +Oo49U4idOeSDBV+o89urWKY6S8GwJpxs14zUo9bMcTw= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/ntu/ntu.cert b/server/component/planetlab/ntu/ntu.cert new file mode 100644 index 00000000..060caeaa --- /dev/null +++ b/server/component/planetlab/ntu/ntu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNudHUwHhcNMDgw +MzI4MDM0NTE0WhcNMTMwMzI3MDM0NTE0WjAOMQwwCgYDVQQDEwNudHUwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAKcx8RV8xui9KljAngEkZMsJTGrskOztJJ9A +xDOPfkBU2/VGqp02Ax391+F1H9azPsbna4m2rW9wG0uo+4YWBCXNukNJUegTNgW1 +BWmHUrxtGIhdt47H2jAgiQJSSqs5ChjB4VfbaSNhlRYRCBKntvsYBdqsxtyUfwUs +XsGNpCetAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAH7Eh035PJX3U4eh2J7j8g82K +JalWYgSOZOsTc///FTZb3lfPuDjxNJT0DNumvDH11KIIckbeZeC7skwVE9RWE4OC +PWNjne5M1BNTCtq8AqDqsn2eNZZV27vDjf1wGoiNhzqWZFkrB4IY/+t1k50wOI7P +ZVHMN/tN9NSQeZbwbXI= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/ntu/ntu.pkey b/server/component/planetlab/ntu/ntu.pkey new file mode 100644 index 00000000..b4000c4b --- /dev/null +++ b/server/component/planetlab/ntu/ntu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCnMfEVfMbovSpYwJ4BJGTLCUxq7JDs7SSfQMQzj35AVNv1Rqqd +NgMd/dfhdR/Wsz7G52uJtq1vcBtLqPuGFgQlzbpDSVHoEzYFtQVph1K8bRiIXbeO +x9owIIkCUkqrOQoYweFX22kjYZUWEQgSp7b7GAXarMbclH8FLF7BjaQnrQIDAQAB +AoGAZQP7kOvukbeY2j6mODJw42sezItZlIxC0CUlZbGQqfWbX7nuY0W65Gf2ArXt +Ip7xkuNHSdEhQG8PTssuDHlIz0RZkwkfpSTtvBZI/c1VMybA4g9+gNvUinKOCngS +OIZsHp5aPcde7+pss0XOtkQGiO8B8JWwG+z6zlWSi5AXxtECQQDPqQ49KSVWLe0D +5LsGr0sH5xNS25FcYu0sN7M6/EoXH6g3DWZN1WUlZ2DG0O+KslHZqlKUD4H1+DXh +vb7a98gDAkEAzh14Kmzj6iQLvD2yhZWapOo67gvbUdQQCh2N167jujVNEhOPrxAP +/9cjx1Grl0+F6D89+xMmmvdI1jI2vU56jwJBALDckjUC+zq36Lq9L5EU8PltFCco +vFgMJWXYlrzxLQUewD0LG4vE6N1/e4w5XRsqns2c47IYtx5P5Uw7N/b0vBMCQQCs +dDfAt48Srsoq3CxsXLohVeGsnrsIgjhRXlz5o1jiygoMH9XOkc/xLd6/vHOnjF/r +7E49rs5URqbooObwCaO9AkBdJOqMfmkmhvCsKQdbsLSzjiRkE1WboMQJYcN50ntv +FS2Zem6yhX07aEUoPpaqPhIp3Biz+kCumGyWNQ3ERnXa +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/planetlab.cert b/server/component/planetlab/planetlab.cert new file mode 100644 index 00000000..c1b42112 --- /dev/null +++ b/server/component/planetlab/planetlab.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJcGxh +bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52QbJtucIQUE +YZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba +6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5amLZcMPm +u/G64ieWI8QMUxYgCE1ut3bI1QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJH5KqIU +2lrA9calI3oklbWpduiZspbwCUkhr8PNVDnkXSI1K+egDqFTaANVp1DxXU8qaDS6 +X5+s9Qf9FQ5+9mfSaocma6YW4Qfb3Zm/mYmpt+nknTlnVuEaTENyBIPfr0pDqzld +GGcYPul25KknFmdPOrqAUzma9n568u2KYlfz +-----END CERTIFICATE----- diff --git a/server/component/planetlab/planetlab.pkey b/server/component/planetlab/planetlab.pkey new file mode 100644 index 00000000..15bf789f --- /dev/null +++ b/server/component/planetlab/planetlab.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC1li/h52QbJtucIQUEYZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLE +RQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba6Rb9vYKEMDujZwdc3QjhAbYS72V28rbd +IeHysJ7JeGz9J1ODLSzbcCt5amLZcMPmu/G64ieWI8QMUxYgCE1ut3bI1QIDAQAB +AoGBAIIlztPfAMTlKOnSUMI/HStpMTeT64rWOWnftIZrcRSzr2DkhQ6fV2JhOZqm +13ofk8ouZkQFO7rP2pzu0hM8lRi65WTelTbGPY+QAM0GFiCpNrQ4pIkyvFVLoMyy +Uz+JIqv3LwNPws4OIQvbccTm9WkoPy5o99mlHFVBZvgFvQ3RAkEA4ZeWM4fOuUZB +zdVeWXx2JqIrYCdbwvK5gSP3WtzilbUGLJmGZQzmohym/4wCYmecjH0F8LyFTxkh +/Sh+7V7I5wJBAM4QH0F4htrbbjf8yUYsGmaUALE6ttnKy4fTHCHK3fZNYq3kkWo4 +5exbxLgU/OomS24lZJ6wOZ6bP8MBkab3vOMCQBjO2baq/aHERyJCj5CZrkiLVufJ +DD9BAANimCYG2mgKMzaeX3gnVgmHyxmZJP37VOziJtAVezd6lRFI7cRewwsCQH4Z +XZcqE5RQnbVDS0RW7t0BCx9pp8XFlSGMLfX7+DKmjpGNgvM22HT4f3yK027Semxw +E5AMlWYa6T0Dc8dyaTMCQEqso8hRQIutEwddInaxrFcgj5fo/CAjqsaXhnPTCF5P +YFI/k+5B6GRNwTWkdm5qM0T8exlNqcQIu3/VG0qV6Bw= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/qub/qub.cert b/server/component/planetlab/qub/qub.cert new file mode 100644 index 00000000..9536b78e --- /dev/null +++ b/server/component/planetlab/qub/qub.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNxdWIwHhcNMDgw +MzI4MDM0NTEzWhcNMTMwMzI3MDM0NTEzWjAOMQwwCgYDVQQDEwNxdWIwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBALs8ps88FatjYjIvAeUAbqQzZWdg+CckO9fT +JdVF6I7fCHhaUU9KDFo3h+MCyu5IEvC+TtE4hhlGic+lIJbgOgLr9UKySLgHVd1M +rc4Uvsm2eBnSCwGwR3VRmlcElbC4FCOndZ5KdJDvLVzZelkOAf3ihyXlOIQZUGoB +F3b/UVzfAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAIYUDISPk5sTxAanVT+wiWJKw +zKGHridFcHO/ncprwWdbjuAnrdmseEti+dw3IcSZJUIZzSOCU/hTlKYVLKLPOl/s +BUY2PrnajFlAWcV1TIjgPnVpaNbMOsViAj4CahJgYmE7Vn8jn/hSkficucNMNy9F +KnY5tLI6jSeDbvqaBBw= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/qub/qub.pkey b/server/component/planetlab/qub/qub.pkey new file mode 100644 index 00000000..0af7fc20 --- /dev/null +++ b/server/component/planetlab/qub/qub.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC7PKbPPBWrY2IyLwHlAG6kM2VnYPgnJDvX0yXVReiO3wh4WlFP +SgxaN4fjAsruSBLwvk7ROIYZRonPpSCW4DoC6/VCski4B1XdTK3OFL7JtngZ0gsB +sEd1UZpXBJWwuBQjp3WeSnSQ7y1c2XpZDgH94ocl5TiEGVBqARd2/1Fc3wIDAQAB +AoGAN8SY6qC605GGbewSZGL8kWu9iE0ZnI7uRBpf6mYoHmXP4AkGrtcfVr+zeaob +R12wRoRodWigiGa6JV7JliazICh5wWv3UNDIlqacVzgqPm7hxLDL/f3nYA94Jp4b +8mo7SgeiiO7RRGxTsaPhbunjUgdnfHOs6g/p/A66k/kG2AECQQDz3FMw1DLTbHuV +qjSP8lUvn5LyAtsZrxY6Pkr+8o0/JY65qmgwpRUIf/52WEzFVo/r3Eh7u1YqP3Be +EI3ObMavAkEAxI67z5wC/4oExJ06Z2cEkH7hR+RI3yDKpbsF2swMuqQIuFSlgYuq +GLi5/HucgKqkzMkH3Mam101APL/zbPlY0QJAJ/HMErB/jtAzQiW6LGYGfCGIYWoE +V6WtX2b6w94ZMuHFCjaWkHlKA7VrihkWojB2rKzNlq7uA0eW8WGGyOxacwJAP58n +wXpxKf+lrXJq/h9FRfQbvWZyA+8cSOqxaXHUyPDhdbDIZZcsdpYMdWIZdThG4ZZM +ejS+uj/iBAfppiNLkQJBAOY+pydoKtGgKoXg2oyWPPX3jAdjsT9tzCkL9nxNBCxx +EH45AXqHga/t+GBtp2myEDyRIzcyxeyjI0oA77zUd5Y= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/snummlab/snummlab.cert b/server/component/planetlab/snummlab/snummlab.cert new file mode 100644 index 00000000..66f846c2 --- /dev/null +++ b/server/component/planetlab/snummlab/snummlab.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhzbnVtbWxhYjAe +Fw0wODAzMjgwMzQ1MTNaFw0xMzAzMjcwMzQ1MTNaMBMxETAPBgNVBAMTCHNudW1t +bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkXEAuln8V2lp/00RME9wI +aK6ZdcPVfbY/fnysijgqbO2ets2PSScOhsng0m5UcwguCjBd96B1v3HtA83kKJ3g +2U/CfQAAPxoIYHiAAuhZAZmMdggGlq+UW5ulmlvlR5AfmetFq9ef4zcr1O90WmGl +7Upnqbs3bk0MieLetMYWswIDAQABMA0GCSqGSIb3DQEBBAUAA4GBADACDzVAAKKY +MOKL8NHSELT0cts6a2uzfrkUfzF1qFTJbXfx+q8BJ/AFzcQs+zOSJRPNdizZSEFQ +l0xPY989gFuOEiwp0rcR2MlhtBMvPCNuypLCZKBHRiriQzD05QKctwC6ta3XWFPX +iV7jdYbeNCaM6TOXofcbKvOurshg82dO +-----END CERTIFICATE----- diff --git a/server/component/planetlab/snummlab/snummlab.pkey b/server/component/planetlab/snummlab/snummlab.pkey new file mode 100644 index 00000000..ad1b48be --- /dev/null +++ b/server/component/planetlab/snummlab/snummlab.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCkXEAuln8V2lp/00RME9wIaK6ZdcPVfbY/fnysijgqbO2ets2P +SScOhsng0m5UcwguCjBd96B1v3HtA83kKJ3g2U/CfQAAPxoIYHiAAuhZAZmMdggG +lq+UW5ulmlvlR5AfmetFq9ef4zcr1O90WmGl7Upnqbs3bk0MieLetMYWswIDAQAB +AoGAfPnsj8A96Db9g574msSrFfXLdcMXYvnRH5ylXmlHZfMoB/xGeAKO4Tvau8om +vK4vdRqoRntplr84+Jlg8HF2AfAojd12kb4D73hzFRZBncde/AsYLb3hAaN7UTxJ +35NHXYHpSQOp9Mc3fVMa5VT0iA4WWPC7GSJ/XupW+6IecmECQQDNcSqQ6eVH6Jji +TyH2CROz/Ec5oFm5JnJKGlnvAyc3Uom3lmDAyHd5PY/bgJB47VmuWx3JpVQsrqe+ +rwb52uaxAkEAzM7wvlu3yNzcKDrBAB+NQmlSRg56yG2qy+WUWhOFGhLJ9pQGbuuA +87YNiIcO6QhEu20x7j5JekIouKhrnO10owJAHl3G0+quqEVaK8FUnMBUuDrm8D6i +ZHqpVAi3GFwX9NZvYsKIhJZdCn+t/tzu/eDfa6UuLvsQCRa71rSaTF4t0QJBAKyB +7dNY669bIHEeM+xHpzL2BV+O2KqzfLYrVM6ePHFevBBeVCDfaolcoX+KyutLlKEN +842Jl1hMG4KWEbZnZ+MCQHF7YSkAjgTDN6rCljSTN3Gt0Li12K08asZtd9Vk24K1 +Z1RB0Zqyt0wiacOMoYEhAbgJx1aG68qyq79O89/TP4c= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/sydney/sydney.cert b/server/component/planetlab/sydney/sydney.cert new file mode 100644 index 00000000..215be400 --- /dev/null +++ b/server/component/planetlab/sydney/sydney.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZzeWRuZXkwHhcN +MDgwMzI4MDM0NTEzWhcNMTMwMzI3MDM0NTEzWjARMQ8wDQYDVQQDEwZzeWRuZXkw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOdGb0v3G9K1Ygz+z/xM9VWYWkD6 +qRA4q+ITmRXI2TnWVDzTVUAhtYagZfNY21gVXXxmPw4Aq2yUNqwG/VL6Y2kg+kU6 +gXvviVU927um/eKTk1npbeRQOqgw0rJXBaD4eAk9w8zPEqQ5JX/gIu+he+l1MS2Y +lInr3ZqQf6fM5d8XAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAAj/RzoL3bN5SW8Vo +i8vsyx8H1ou053wpyjQut6SyiSEkUHLyirAEvTPiBzAcqB3l4PpgieHOjBPQkyeX +sODexQelFr6DYvS0wLVV6W1nIYvtItxwF+XuIWbIcOw76aDqelGKeowVVoORGuA8 +khdy/7++27MuvrETC2oeslR3zAw= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/sydney/sydney.pkey b/server/component/planetlab/sydney/sydney.pkey new file mode 100644 index 00000000..809d2abe --- /dev/null +++ b/server/component/planetlab/sydney/sydney.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDnRm9L9xvStWIM/s/8TPVVmFpA+qkQOKviE5kVyNk51lQ801VA +IbWGoGXzWNtYFV18Zj8OAKtslDasBv1S+mNpIPpFOoF774lVPdu7pv3ik5NZ6W3k +UDqoMNKyVwWg+HgJPcPMzxKkOSV/4CLvoXvpdTEtmJSJ692akH+nzOXfFwIDAQAB +AoGASoJ8tOKlyhq5vioR49z/ZVYyLaET+q/nYGyj80rEAUg112rWmlTB4N+oOOA1 +uokXl05xnhdFIzQU8RNHZgZZJBavkEcZV4PBdkw6XLqBk0ZC+vUPQUP1Rtqim+WX +NK0V7E9WIhB8+AMlwraLNGrD3wlgXNJJcctJ1KMQNoJwqSECQQD5pkOVSSX6OWIo +rSAugKCMWAGV1NAgtDyIwKlkDloKVmCJWAt0ANvLt8XEpZYDuWfDihM1ohBTQWQD +7ZNspiVZAkEA7SiEBqJYqS6OviritGGj/1kC64RwUX3mMHq2eYlHaWIrZK8N7XM1 +6WTURMmHnhiFdjNiCQ0+yFyVczhD68Pp7wJBAJOl6cKZCIT8+zjja20VVd6rDgT3 +YEB3WHXovEYY1tfWTjHsiJmLCHNrtOOgqyB4vw2+062cs9sJiYVpNQ/FE8ECQQC1 +nIA2QF6a+E9Ra6/+KIOZCIYG633DuiDr4R0ZxznLhuTqDnAg9UhEufUf1CCpved+ +U+zwN5drghLkkCLbSkU7AkEAwACEJB6qu+34pUIlowL+lS6cZXO+QOW6hqj+LeZ0 +02SgLt814wsiUbhiFesijxhL8PtVV1+eogcLwJltB5ZIxw== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/tau/tau.cert b/server/component/planetlab/tau/tau.cert new file mode 100644 index 00000000..aff99b65 --- /dev/null +++ b/server/component/planetlab/tau/tau.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN0YXUwHhcNMDgw +MzI4MDM0NTE0WhcNMTMwMzI3MDM0NTE0WjAOMQwwCgYDVQQDEwN0YXUwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAMahrQ5tP0SeLS0yzt0BpZI+OutFfD14jbzD +cEnKRiGxWZu8w+ECtztbNuYGGosW/XRRAdQIzSTFO/6WvPvcoJLwiSjLzp5sARol +DwPI4qCb3Syu3EuhFB2qIVNJNK873qHVFNVGlYb8VVeN7icoHhhgvksZOkdgLPhL +iblS3Ht/AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAlagtdmTzabPHhV3eBxfKTmBm +6Z8EHlldK6gxmFl0rZaX4xrO25C+dyTSr0VLWRHmUsseX4jiCQ3foeecjlOX5261 +8a1P15qVUd5ZJGG9dPaRJcsaDTDl1bEZBJmTOX4Zst2WsK9Ro5oNs7gjS4u+edNk +2/0BE43Vp1DwOBZIMHs= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/tau/tau.pkey b/server/component/planetlab/tau/tau.pkey new file mode 100644 index 00000000..751a4046 --- /dev/null +++ b/server/component/planetlab/tau/tau.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDGoa0ObT9Eni0tMs7dAaWSPjrrRXw9eI28w3BJykYhsVmbvMPh +Arc7WzbmBhqLFv10UQHUCM0kxTv+lrz73KCS8Ikoy86ebAEaJQ8DyOKgm90srtxL +oRQdqiFTSTSvO96h1RTVRpWG/FVXje4nKB4YYL5LGTpHYCz4S4m5Utx7fwIDAQAB +AoGAFphHlk+JFeYkX3LbIzrPuc4IZ8D0vA1dmi5lNI+k4KpK9jNH2O21KDRdD1d8 +Z3wLAtNAMP17UIZ7J5/ACap0PW92zANqv2l10b9axqTif9cGC0BGqWfiVU0iFJ/a +J4c9O0z1uXdRh67NfvakXomsMRVcGvDEydY2Y9jJb7AuH4ECQQDp84/RiuayQkXe +8oFbI0G+JKynwZx1BMHb+LZTShYQeG1/7aUKUUkcOZR7JKOaYgkv5rQHYfpoZWMJ +TFWslys/AkEA2Vn30Mpv2JvLwHHO+5k6nr8Mq7rsNXGQFpE4G7KCUgFDMeuGvBy3 +kA6nA20Q7WnTLlQyh0Kyk/tLzP7XSIffwQJAb8MXFXdRth7K2jLncO5q3bcPdCSd +5ZkcM0WhdDCUUdH2HYMdsMwcLQukzx81uO7UjLmdj1lTEsQ8h5ib5RNiaQJBAIk6 +lo6K4ecfJpvQv2B3NF26PiPHFw//LXwyH/zMzh88kNJZ5G2sq/EWbzhoikF7iUw8 ++NIRuHJaPVempwIyV4ECQEUak56swuG7e4f3+YkYPodLAf+KI1oetSBXqrkZFabk +R+4GmLSZ7yf1qD5TFMjpRUZVy7UKSqu//8cRLDk7mIo= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/ula/ula.cert b/server/component/planetlab/ula/ula.cert new file mode 100644 index 00000000..d9ba97ff --- /dev/null +++ b/server/component/planetlab/ula/ula.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1bGEwHhcNMDgw +MzI4MDM0NTE1WhcNMTMwMzI3MDM0NTE1WjAOMQwwCgYDVQQDEwN1bGEwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBALIZwsxDl9ZU8rEYUtPa7jtvqADiwis5RyjQ +rjuuUKuWeb7dd2J13J005rg5mle8qt74H5GpweCG0cNMakedKaxH5ryxlsNEdiT6 +homPKHYp1gGLulTyzu+kNT6dNQtyR+nqwcMCJpae+eesxaTBFdz9RIwaqCdqxzs6 +sG93YUFnAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEANMCaPh3Fz1R/884kpo5wrymX +fkKMSg3IuMnMQpCHB+7nEWnIZ0Hv5merPTrjjRL2l755sr3Yiyj0vozKJhgWUVcA +8lr/SrNWzUoJQ8KW3xpReMGwmhpiouDV0tGeKpi2/jHHfLOTaLhSDH7hvVDxGiFM +m56R67xYhmfJE3AEUlY= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/ula/ula.pkey b/server/component/planetlab/ula/ula.pkey new file mode 100644 index 00000000..46f7c087 --- /dev/null +++ b/server/component/planetlab/ula/ula.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQCyGcLMQ5fWVPKxGFLT2u47b6gA4sIrOUco0K47rlCrlnm+3Xdi +ddydNOa4OZpXvKre+B+RqcHghtHDTGpHnSmsR+a8sZbDRHYk+oaJjyh2KdYBi7pU +8s7vpDU+nTULckfp6sHDAiaWnvnnrMWkwRXc/USMGqgnasc7OrBvd2FBZwIDAQAB +AoGAH98cTRGLin+JLsf7io4TM++3UPFDbhjB8zvk8ikvpoU3JEDdrHELGdbtsuoc +BLdunJgqjhai61s1Do4ONuKZIj7trvnli55bIpt0jktkatNPLRYTZ0fPe9hvQy8D +N6MFLXpRJSD+95z9DLAEwFJoThx8yE7p4QGOvjSu3M4pEIECQQDia/BQin+s2iHu +yukNcH0/TJgbVBGJrZ3+ge14Pa/lYrCzn1xNfI4iEsV60cAXzBsSP+Bg6Nuk/eHG +0ki3DHgbAkEAyV3bOzrxbvL0O8XkQyTNcMeR1l6jNaSOl9ZWa7llMXYmt1bM/Tf9 +ZnL4sstfcN7gMrnToky+bRUkSrhmYTUIpQJAM+xW1tF8B/KZ933Wxfs27a4t745u +2yjSY4v+HiXfUXY5WWfBLg/TNGMjoE+7gnmO97doSDD+Na72+LY+cKPOYwJAP7G6 +eN/KIqgi7Q1JiJuJiFT4InDI+1zT5d9ccrKv+Zc/49pG+QnO06smU5fU1qUJEcKJ +2NqhmWuIkUIG0FSwKQJAHrkFWXphVIJlCv/ehjLijLTV3p41htaUaxQh3mWgJl3s +GLqYtrVCQZEVXdB2hc4TUHj5aZ7/+ov1ay9A8DNQtQ== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/unioslo/unioslo.cert b/server/component/planetlab/unioslo/unioslo.cert new file mode 100644 index 00000000..f1d9cdb7 --- /dev/null +++ b/server/component/planetlab/unioslo/unioslo.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwd1bmlvc2xvMB4X +DTA4MDMyODAzNDUxNloXDTEzMDMyNzAzNDUxNlowEjEQMA4GA1UEAxMHdW5pb3Ns +bzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvQCvKu5zq8gSdnniQR0A+Xmm +CbNYJxcK2c7rtTHAKJgGYBZrvJRuEfwhW+6C1zmOuQfKL3KEyIQoXK05fRiWBM+U +P0pwrJvXgOHiVTzBhDHIYyNMPph/mF5pK7+P5ne8xdGpccjs2D5i1bg0CJ8nMKsK +1EftlXNAusLhhUuTWHMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBQXm1IhRFBlRi0 +9paxfWSkfLkLv/ndYeFmsqR1IBx8L2hopHKLYDR1cMSvxapsRPzWZrxLD8QWTDKY +91yC5WOgSUhjEp+gGDI07pGqCtLvgfcGbESDzLrPdnJb+sS0wjSoG/EkigtVkUT1 +AOcilaV3/GTV4+DU7ws+SlGQYCcT4A== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/unioslo/unioslo.pkey b/server/component/planetlab/unioslo/unioslo.pkey new file mode 100644 index 00000000..8dd2efd9 --- /dev/null +++ b/server/component/planetlab/unioslo/unioslo.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC9AK8q7nOryBJ2eeJBHQD5eaYJs1gnFwrZzuu1McAomAZgFmu8 +lG4R/CFb7oLXOY65B8ovcoTIhChcrTl9GJYEz5Q/SnCsm9eA4eJVPMGEMchjI0w+ +mH+YXmkrv4/md7zF0alxyOzYPmLVuDQInycwqwrUR+2Vc0C6wuGFS5NYcwIDAQAB +AoGAfm7zvzNum66mcy0L5uUBHuJ66ShZQyUN9DCQy1BxrHYuZZ76CVf93fgdVMNU +MafmSu7kGSNxojWOTpjuyTlmOL/O8PQ60tb0/vGReyeVUywa9tTD08dwuUtnnqPa +cm5yCJbYsiA0b/g4qCO/sN4pOdw2vWJXBhDUcFkqtKQ04zECQQDzvj9HAIcm+u/s +QoXazXbxmwB7G/AWcp434sbKeQqlKtYWdxw/OTLwHyxd0as8UZtCoYexMczh4Kb4 +z6gTiY6LAkEAxoHAlI6me4lu1lW8DGM0NTdV/MFT8ttbQcuAhBrAd1QcI8JNQ6OE +QGRw7/ha10xawWp/oqYs/iKEvylkSDLCuQJBAIadhM8O8JXLs2Q1nT2pik6Hf61+ +UYvkQ5Oz8Hx0ezebP9/qarRUP9i0Lsml+b93hps3IPzw9yms7CqwbTBVIV8CQBJp +sLJW9QxaeCR7eWDwxsP06Q3z5NSPEkztEnOug5HOBHowqLgQb9EFQBCSSeLUm0p7 +lXFB1sSP8R5GOZ4Uz0kCQBPn2MbYB0L4ctPeEHsAkaSOtXIoo9DG/R0FfPbXHiIl +WLsxNoYIxmXA5OZLjN7z/JSiuNNLlOCCqv1pc72tWIE= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/att/att.cert b/server/component/planetlab/us/att/att.cert new file mode 100644 index 00000000..f5ea777d --- /dev/null +++ b/server/component/planetlab/us/att/att.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNhdHQwHhcNMDgw +MzI4MDM0NTA4WhcNMTMwMzI3MDM0NTA4WjAOMQwwCgYDVQQDEwNhdHQwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBANALwPfWO4pnLtZBhuo35pS3WOGngD+ywwSJ +OH+jzENDyTyaLPWKrxwsVBQmjq4pvjQYPRbk/nFvvRGy3Yv4pA7GcdxsuOBlTEN2 +uPijQlsL/JDqJwLfuSxBZMMToM21jmsLhYG4M1Bf4Vfo32rrJmr7NMk41aT7wUuF +oB4EEReBAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAfKimUT5OC9F/uZqTeaS5GjNa +fMqIYX5PvCQqyqWYNegV7VNQxKMqJ9TffxSgyv15i3kx4vmiOzmil72XKgts5QHK +AikZtM9VzuDBbCmwM0ETuctYFMT6p9dNvTwcas80vjgzZY0TtzjLEkELm5mNagP3 +uyvb/jgus1KQjDbzLJk= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/att/att.pkey b/server/component/planetlab/us/att/att.pkey new file mode 100644 index 00000000..c9360c03 --- /dev/null +++ b/server/component/planetlab/us/att/att.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDQC8D31juKZy7WQYbqN+aUt1jhp4A/ssMEiTh/o8xDQ8k8miz1 +iq8cLFQUJo6uKb40GD0W5P5xb70Rst2L+KQOxnHcbLjgZUxDdrj4o0JbC/yQ6icC +37ksQWTDE6DNtY5rC4WBuDNQX+FX6N9q6yZq+zTJONWk+8FLhaAeBBEXgQIDAQAB +AoGBAJ9lof9A4HV2AOifY+Ln2X5vy2V4lEY5jDlZeTQyJzoSIYiRB4lJLEkFnZWi +xQajbNs1BvkXkesPlWiOBjhL1EUrRiM3rt6XEpame7X/BK4arBr8LO1l+Lsp5dB4 +X/awQ3nuKt570VLtKZwceAJJIqlDu6yyEYKgzD+gdC+8oqyRAkEA9ygTgm7YhwIK +SlnfZc9FIK01i+Mh2ZAaqzIXXw901qleQQ3axsz48zcfkGfyz2DBqv4y4XeYs4c3 +sR5ICaEW/wJBANd9bc7ZZ/PmrHkPPC4+I2cRKygPQXNGfaN9UcI6re5SU+UOdX7P +O1mtAezPASrmN7WLPRcd00ADlXKjupsgUX8CQQCcjV4OOHgezEQIZHUE4A1BbXWF +bhF65bR+y/PR2tB/SDjTrBrv4dWu+TOdHLrIcNk7nlhMSJ0I2pWEM1IeB1OxAkBO +QYa3L8zIjmTkMdwxDu/cZie+DIxASMEntkMSviyb99nvvSh+PNPY5TNlxGcwJRrm +GwK8emBVRvfnAf6qhzoRAkBPmOp19ehelSAqzBN8thmRCVByhuLHUNQwZgX+HqnG +rPgfMILU2UL92mbk5kyC2p8uVqaLZjAGeCovrKAvceTa +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/aub/aub.cert b/server/component/planetlab/us/aub/aub.cert new file mode 100644 index 00000000..364955d7 --- /dev/null +++ b/server/component/planetlab/us/aub/aub.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNhdWIwHhcNMDgw +MzI4MDM0NTEwWhcNMTMwMzI3MDM0NTEwWjAOMQwwCgYDVQQDEwNhdWIwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAMPs4WNHC3OxwDGISgDEgCahc3MBKAgpGhCd +OgMF2XHUafUof6pqHcQcHQoKy1Yte2cp3bLh1DyzV9Y1fOZ5kqMNzQrs+RlAS5pe +RIUVAPSGUTK/K5z9HyVP+rhGZlnjPJUZNbzY6eHq+65AfhNYf+75c27w1CBapN5Q +bERR/ZsvAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAe0bET48RK/NN7RUsA3GVcf0T +ikZDivZtj6m+yy4umB4h50jX1c4ORsuZ/Imm+6WfEdjd549N4JI7MqUzSqPlPnn2 +wL5Axw+X2PF9JmrNmdLOWRsdhBbvz0kjGI+MKwTsRhcRWByjqI/CqSnqeX8s1IoL +wTlPdGIcpsQw2Dl9MdY= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/aub/aub.pkey b/server/component/planetlab/us/aub/aub.pkey new file mode 100644 index 00000000..61b1a25d --- /dev/null +++ b/server/component/planetlab/us/aub/aub.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDD7OFjRwtzscAxiEoAxIAmoXNzASgIKRoQnToDBdlx1Gn1KH+q +ah3EHB0KCstWLXtnKd2y4dQ8s1fWNXzmeZKjDc0K7PkZQEuaXkSFFQD0hlEyvyuc +/R8lT/q4RmZZ4zyVGTW82Onh6vuuQH4TWH/u+XNu8NQgWqTeUGxEUf2bLwIDAQAB +AoGBAJk19za8Ss9JM+NIEZ6yCwiqfm5zfAuNoK1XVhMhEt553fXxmov3+Zju5yKA +OGwGmxacXZrSEDb7g/el0isk7K4n2K6ea/njnhFdw/3daYAEMA8Cd3xrvjTSmuZT +p5pH5QYqtJtfS2uls5t0xfahzq4amxhS9sRhshweAsVi7bq5AkEA80AXEEFo2m6U ++q9x0/nV+MozP/VNZGXwH+JvK5ebVMNLAjaGk6YOzyl7qE+8N+OGkpNTWwjyrBbA +nq5necMZiwJBAM4xyZojZkA6xsJ/7BwFepD70LQ+cZaAoQurzgJ/B+3H8uZN/cAJ +2bTto/0xNy8haTWr6Ha5EvSCv3BcGq/ckW0CQQCgW6vYp4Y8GZJVALwFhjos3P+U +Nl5ixWDbZCbtkfBwnJ4iQ1fMljhFEY/XkVj/bxsUHdNhvDBeilFJSqgkeR2pAkA7 +JJC9A5ZaqgFE3MhuqSuk1nXgnWCbWL3YySjIEoPFsmp7oLc+FBU8DkXRZAJ+JEk3 +Od3t39wOAkrDAcgt1UhpAkEAnQiIS/K25MrP5dF6i3FBNUrnIgLOn/f73zxaEgyJ +RblaJKR4Nbc+8bziLshovUR993meCeZr0kyinwIjlmghTg== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/brown/brown.cert b/server/component/planetlab/us/brown/brown.cert new file mode 100644 index 00000000..0cc2c63f --- /dev/null +++ b/server/component/planetlab/us/brown/brown.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVicm93bjAeFw0w +ODAzMjgwMzQ1MDlaFw0xMzAzMjcwMzQ1MDlaMBAxDjAMBgNVBAMTBWJyb3duMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDGLYEu9DsSrCvcEwMi1EjZcUoJpAM +XyDZWEk2xt8kiNbJeJMhUsbRbJc6lxRFZwc6T6JN3YgbiKrH0AhLz3hA5hMJJete +oOyHu1vRospzJzzGjzAmoSANUQ9tdJFt2Bxodt2iMNl5lxGB9EKFspKozoTCNJDM +81pWAlxsMP7F3QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBACwN7R4/oRQn7LNL5RTn +IB0/8xWh7PB4DNxUN8iv0Nzcp8SPdMfbNO31HRLNbWiqGTQ4HjpU9sXP6pW5ds9p +9eLDsPeGKVyvBDG4KlVZlMjdh2kjU9dJptWS+GoWvUSUTQOx+Q6PGDm1xlqJWb0f +5Q8I/S5VoAIM7fpOK6w3glCA +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/brown/brown.pkey b/server/component/planetlab/us/brown/brown.pkey new file mode 100644 index 00000000..b56e0b68 --- /dev/null +++ b/server/component/planetlab/us/brown/brown.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDDGLYEu9DsSrCvcEwMi1EjZcUoJpAMXyDZWEk2xt8kiNbJeJMh +UsbRbJc6lxRFZwc6T6JN3YgbiKrH0AhLz3hA5hMJJeteoOyHu1vRospzJzzGjzAm +oSANUQ9tdJFt2Bxodt2iMNl5lxGB9EKFspKozoTCNJDM81pWAlxsMP7F3QIDAQAB +AoGAQixeiKp/ybXnygnn8ZVLlxsMzXqO/3NAvBfC9Y5s34J+f+Wi2fmusBgKD3hx +Cr1QaUnbfle2s8geTRnVxoj/e0L2T3vOXRBurHBYtIniEWmpcKP31UpYo4KpcNmn +Yp63uVVLCgz0Rk5CiK2R0hBBqNd49Zwhrf4y72G8QaFZB80CQQD98Zh0xsosceQc +Ytf2zPAbMvyUP62kf+FYUUpit7HUcH1eI3J5pvAkHRAGg39Gn0roH0LvmDVuONEW +GqyyXf1XAkEAxK0hS8PXyGEzYY2wYroXSlUmPuGULNiUx50rwIenPMchl6hgwL2n +MKIdSASocj3pcZk6by/qZ9V1KR02qQkh6wJBAOcOIbdvAJk771/cl7/ZbEZzN9nz +rpzUNkdTf6keltFCoO88tXX27N0PDHvAvdeWLGPTveWeyk7Fp4jDMIsCdfUCQB0+ +pTHP6DkqguphmDXF+AqciLhW8KKOfekErOnPAgYekhcr+V8PlFm98V6xGp8KJ7k1 +kKPR2ygfbHF1n5gY/IsCQQCzFr0zWG2PCRi4Vpa7qw298xWU4oK/viFUw9BT6h9E +uhfjxEWUE61bvq1iA2ozl6f0A9xp71rRGSUJa6ON9t1o +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/bu/bu.cert b/server/component/planetlab/us/bu/bu.cert new file mode 100644 index 00000000..76d4f9bb --- /dev/null +++ b/server/component/planetlab/us/bu/bu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJidTAeFw0wODAz +MjgwMzQ1MTBaFw0xMzAzMjcwMzQ1MTBaMA0xCzAJBgNVBAMTAmJ1MIGfMA0GCSqG +SIb3DQEBAQUAA4GNADCBiQKBgQCyCbwwtmRj1J7QlDLiXgXnyUrJe3Cf/tSywQUn +KttHVpOce0ulItvzXXGuQ/GPKR6N0sIu1P9GQwlFPCtJOppQZkXzd0QhxJQvVo9z +CtQJhk6PgY9BW0VxX58l8psaawMjIj20d5wLmlOc/aZVi0bQ6XfVFmGKUjqTOJFu +vHyG3QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABx5P9Sm38Ji6wV1dT7eoQbsBkc7 +uQpTHKrfiteGXbAETj7CvxygagQnpEW1PcTXZSA9OJhyD2oDpYo6ovJ3+wJxk/QN +Dwcw9o1WHqEpMY1OxZfuv5+I9eygcFVz8pHer+AJNIitZmC9cUHNXKGCj7/mv+fK +3VoJBySctBS2lD4+ +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/bu/bu.pkey b/server/component/planetlab/us/bu/bu.pkey new file mode 100644 index 00000000..769a89b5 --- /dev/null +++ b/server/component/planetlab/us/bu/bu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCyCbwwtmRj1J7QlDLiXgXnyUrJe3Cf/tSywQUnKttHVpOce0ul +ItvzXXGuQ/GPKR6N0sIu1P9GQwlFPCtJOppQZkXzd0QhxJQvVo9zCtQJhk6PgY9B +W0VxX58l8psaawMjIj20d5wLmlOc/aZVi0bQ6XfVFmGKUjqTOJFuvHyG3QIDAQAB +AoGBAKwIGB4Bv9Nu+d6VtO1i6NXlfSxe6J7Q//mR5UbJdITkNVH5GUkB/AKWgmhf +IqSwmON1iUjza48a63RJBZKG29/DD2Bv0zgHhLUe2hoQXjaN++EB7hInenrkshSn +HGzl7Nbkbi+EfAfH4S6hXcn5k4HOoa2cZZ4q2ypGXshSHi2BAkEA4iaX88Y0xZfo +qSw1oWqh0akiESq7HcjPJCkij13Rmp5o76J2eMCDy2jbg42hwVEMuuTUayVZw5RP +aNHkDI0H8QJBAMmJdfzVzca77pEwl0CEFRUuXJL+JE5+1NUbcB62omVjOnBrzHo0 +1HKfBSfN3myo1rJEZdianzVoh7yZKraBua0CQQCI6i6iooP+gKqWCTLq58DSSyBZ +3lHshU+LJ/BJddZZUsBbHDO3hW4FLxV+/rdIb4ZSfAlyWOmQc/Djl/cF9jgxAkA8 +WAta/A2ULts83+a565KAeBRB8xSd6D4D3SZSG+8+Glr6JFziToU6GMErbOnncRpv +4Cj6lTmMfVL/NoFiii81AkAkixOrO//KRSn2KDN8PPreLCCeh+17rTK1quKcTobj +6yGN6dFihAWYhdthG33ctl2ZUDgBnqSZ1EU11DRJHW82 +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/ccny/ccny.cert b/server/component/planetlab/us/ccny/ccny.cert new file mode 100644 index 00000000..970d6c11 --- /dev/null +++ b/server/component/planetlab/us/ccny/ccny.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRjY255MB4XDTA4 +MDMyODAzNDUwOVoXDTEzMDMyNzAzNDUwOVowDzENMAsGA1UEAxMEY2NueTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAljF598JLC9OjVeo0ic1MT9IqmOXDZNZk +YBybcGgVx3Fn9Vc3rXprBbdU9xE2oJZnOdYO3yKrPjPW73zVEQ5qiMsx9nVC4Jbz +sl29UW2Tug7Rj91iY8p4H9QpbQoYyboZW/zrWjKYpQuXEg/Pcmd1jAuD17JJ7q69 +sQejujwgp+cCAwEAATANBgkqhkiG9w0BAQQFAAOBgQASF1qGhq+U7966BdpIX6cu +yuSAvuRlBkmYIdjqL9fKyOHSXx+xO3MTxAGf3KBL3Sfk7oesaEJpOgEpR4C0MdOj +8gthTINOoY5/M52GetW0Fw9ZjE9AF2ms7mWtJCD+YcEaaztwWRqc8LmnUsY+jdCG ++mfgTKbGBq/KYZSnCe4mJA== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/ccny/ccny.pkey b/server/component/planetlab/us/ccny/ccny.pkey new file mode 100644 index 00000000..1fba42b2 --- /dev/null +++ b/server/component/planetlab/us/ccny/ccny.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCWMXn3wksL06NV6jSJzUxP0iqY5cNk1mRgHJtwaBXHcWf1Vzet +emsFt1T3ETaglmc51g7fIqs+M9bvfNURDmqIyzH2dULglvOyXb1RbZO6DtGP3WJj +yngf1CltChjJuhlb/OtaMpilC5cSD89yZ3WMC4PXsknurr2xB6O6PCCn5wIDAQAB +AoGAToMwog6EEnugz6GtszeJo9RWhjTdrpHQSNnLe7g9YlPrJzpflaT/2y4aEUmD +R/E3puk6PvStlcednPWhn9fsYibnIc713kz7YWNsdZ86zTFiC+JYTfI8V9JJFr01 +vQB/gWADBKG5W2swHuAdzHOCn2XOQT3zBDh7qAbkODPDb8kCQQDG3dAG+UJAeji0 +1bgY2UmeOsEZx2gV3MpBl8lUr+Vc6g605etP+YZovRdmMQxr76mx01rtdGX1de6u +DzXteEVDAkEAwVfbz1H8WazUtL/tWp0KDs9OH0yFGR33x9dIbCdCdLB+pAbsPuJs +Xk1kKjUwX2CW9QuIJeCdUG9K1LHthwpWjQJBAJPB/20PCrDJnxSNrymXWOGeGhfD +V4zW7dhqpQatYqf0qFS0eHCFn952kMo3K1mPSvB7b5X65D7LDzp4xsLYl+0CQEX4 +q/5d53v0xo4bn6TZjJhLgjRllw2+ALx8NyOdGbntXgey0bD4dMu0Knn0Aeuioz9P +yxgaMBS6ElTjh9kFbskCQEMqDf28LHUuwquHByS7c5k1ZaGMm3K5STHsrlVby0CC +wlFG2AQtySV46riKSqFHNNq7ivMXD/tEAT1FpjAaKV4= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/cernetneu/cernetneu.cert b/server/component/planetlab/us/cernetneu/cernetneu.cert new file mode 100644 index 00000000..c645cb52 --- /dev/null +++ b/server/component/planetlab/us/cernetneu/cernetneu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0bmV1 +MB4XDTA4MDMyODAzNDUwOFoXDTEzMDMyNzAzNDUwOFowFDESMBAGA1UEAxMJY2Vy +bmV0bmV1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDTLF20LTPafaJz1Fpw +BF3JKJzMr83zhsyarJGF3np49KDRRLG2WtzCQ402d0qxKTHhwVl5wHvYQTB2ZnMC +QRue8kZVGYw8fduOkh147mIkz8btETWEIL3JeJF4jvN0SyJIYZax4QCwxEbvFWGn +rFvLvyYZyTwQFni5t8nqfIyONwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAENDnMoz +IgoaJOODParZ7f3kzntXdtwd17wmC8kCLzSoCwvSi6tdCfIy8WlTmLKd9B1fPPQD +3amfMJW66bqAwAT7WTh4htNn4KvzSG5zn7MbYnpmu5hPk+rToyDs4MC+C2ZNajZS +M04ux9JfV0c317TUPHVVoOe9T9p/5E/adVJk +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/cernetneu/cernetneu.pkey b/server/component/planetlab/us/cernetneu/cernetneu.pkey new file mode 100644 index 00000000..bb227673 --- /dev/null +++ b/server/component/planetlab/us/cernetneu/cernetneu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDTLF20LTPafaJz1FpwBF3JKJzMr83zhsyarJGF3np49KDRRLG2 +WtzCQ402d0qxKTHhwVl5wHvYQTB2ZnMCQRue8kZVGYw8fduOkh147mIkz8btETWE +IL3JeJF4jvN0SyJIYZax4QCwxEbvFWGnrFvLvyYZyTwQFni5t8nqfIyONwIDAQAB +AoGAHXuuQX+mI7UyvzVAwy744SL4cWOCP6PsYRQC5UvgkY6l/VG39hvNgpnn11jk +ZsO3oStbkLIdGF5Ro9Y97GymrFNp/FH74fY9bWQjYD97998v3P4BQ9fqgAB3eLvp +m+SBfbjh0AFjMYEFrDebEfeTwXJKBafhjK7blbrK2U2jsYECQQD0TtWFh8M8Xl1V +Cd/G8e4mDV+EchIUjG2tW3GLZABT8gWuupAHvm1FTUnqhJow/JPM4aXcnk2VZse5 +IoF3SELhAkEA3UeUSGo0JXjWi6x1w/96yRFX5DdHfOEQSB7FnkUXsMG9kXeNz4t8 +SRzART0kPO63v89IK088wdwnpXGFi2wMFwJADCQy1l0F5eUmrEg+V8vEMx3tBk8I ++P51oOzveqbwoTtg7usUp13eXlhV+RK3+wFCcycvsAQqBOfDuz6swnnT4QJATerX +jww+ondDbNlkeoiqjsSZo1XHyXRizFJxmcKQjgAapW9osw1VzVTfa0IVUZNphpQR +wJZdOZIxL7Oip657LwJAE2FGct3yCQBnYLd/xO6TC496oBFwoUOrAmUpKGKduMX8 +QR02FeFq99CS1jnCpiZ8Y//4uzyPNWrJJzdZqv81PA== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/colorado/colorado.cert b/server/component/planetlab/us/colorado/colorado.cert new file mode 100644 index 00000000..c16e32db --- /dev/null +++ b/server/component/planetlab/us/colorado/colorado.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhjb2xvcmFkbzAe +Fw0wODAzMjgwMzQ1MTBaFw0xMzAzMjcwMzQ1MTBaMBMxETAPBgNVBAMTCGNvbG9y +YWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD5R6/v89nwXY6prkbU73Q7 +oXdjntFSeOjADfhZWdiv97uDKkl39NzSChsNUyi7n7kkU2tuDmLgvNJdaimqpdNs +AnRfTbH4VwzLKzBniXpb+bKk/sYABfAXae8Hd0uKF9kEwvMuxu6LW6Cznh9nwyHj +o6F9425WPFsJvVDm97khjwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAL1oCgtKkeFu +4h2Yp/xBvr3C+1WLyZCV0fnB0I9+p9ZhDUCmoJvGcYcWSPTkciHNUrcBgqqQgoaI +6Y1xxnXqu5CFX36PLPsgvSI6gn/PzERdl63ZDo21hxxaMn2KDlcm93NDSWnvTyXy +MlyCunt39C6tVqcF2cdkvC8HIVGYiIk3 +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/colorado/colorado.pkey b/server/component/planetlab/us/colorado/colorado.pkey new file mode 100644 index 00000000..e5e9bbf9 --- /dev/null +++ b/server/component/planetlab/us/colorado/colorado.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQD5R6/v89nwXY6prkbU73Q7oXdjntFSeOjADfhZWdiv97uDKkl3 +9NzSChsNUyi7n7kkU2tuDmLgvNJdaimqpdNsAnRfTbH4VwzLKzBniXpb+bKk/sYA +BfAXae8Hd0uKF9kEwvMuxu6LW6Cznh9nwyHjo6F9425WPFsJvVDm97khjwIDAQAB +AoGBAIg6U/y276g7CKbUFeNyRLv9vogTl+MRLmkeeVUjE5b+tFu29VV33GFwol4C +zyTR4dTnPbN0azbUGcZxKPoYC1RMV8Bo7X30AalomY0gJnIuoVK8W3Nx1o59GAVK +2hPYhvJ0wDQPuBhKfDxZ/TYEbsgTpk3Z+Y9Go7s8Vfg7s69xAkEA/zseYmk23dTW +p8PCzc7d3qILxM/LpUf2IuN1/7QTJuIYFtWHyC9eqySyUVaHfczs5cXZVDYYUZrC +WhZ6CKe3JwJBAPoH+maXo+RlZe0kKpQd5gq+IZo2mAJgb05NwvsuSUieujXxZsA3 +YTjN5ipFV2Y6SqWnFMV9hixRdae10mKzA1kCQFV6ukFhVYPT7ZRARvTgrIQMp35h +zaVsRW4H2hQqfiOOo1y6ZQBRhRYycxo0raofQNPvgEro1xo1h5PeZT6S1Q8CQQCD +wkCKX87WRTj5Rt3JQBhCAP/kLHDej8MYGJJvm2yzADJQyu3CzWxGavqnu/LaxE0i +DnI7wHI8WJEP2BkOOhfBAkBlQ1o1LbMuyhPCKFh/yqZriaTvw0qtYwpDuOsEgk1h +nMyN+1LEoRA0i4/8U1WciSQpgz/05yj0hfbbZ5ntxlgL +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/columbia/columbia.cert b/server/component/planetlab/us/columbia/columbia.cert new file mode 100644 index 00000000..33c1d6e6 --- /dev/null +++ b/server/component/planetlab/us/columbia/columbia.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhjb2x1bWJpYTAe +Fw0wODAzMjgwMzQ1MDlaFw0xMzAzMjcwMzQ1MDlaMBMxETAPBgNVBAMTCGNvbHVt +YmlhMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCPOe32hcQ/tsE/2fG6MYx +gzNue59nuWyLYl1Q90YQsx5T5Sbz1Q6358s1tZmMrKNHbH2hUAPrYNSYTD1ac6M1 +IqK1YkeiWqkOXcm+qC/6d2Ed3AaTAw57AGbQmKVSmpPyxI02RwcmES1Ure6dqDXf +yyyQH17Xs/qBUoFtb/pgOwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAA99GYIZlMCE +Gmqr5017QPf1nsGUjJLcp/0BWpNjCEpatnLn5CrQkkOcYbi3/b43sktqY4vIvv35 +weMHdI/KKYMQSSuQflxE0JpHWhJFsg1+aZb+K41i0AO9IfvFNjar+wsBG2LRp2I/ +S8Bi5ODLNlWF2dH5DpUio0YPMS1/dCyC +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/columbia/columbia.pkey b/server/component/planetlab/us/columbia/columbia.pkey new file mode 100644 index 00000000..576a74eb --- /dev/null +++ b/server/component/planetlab/us/columbia/columbia.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDCPOe32hcQ/tsE/2fG6MYxgzNue59nuWyLYl1Q90YQsx5T5Sbz +1Q6358s1tZmMrKNHbH2hUAPrYNSYTD1ac6M1IqK1YkeiWqkOXcm+qC/6d2Ed3AaT +Aw57AGbQmKVSmpPyxI02RwcmES1Ure6dqDXfyyyQH17Xs/qBUoFtb/pgOwIDAQAB +AoGBAIY/cigwJCErBFW/8QoZeGJgO/vwlYwrLEpqAfUj8tk3844oo3ODnlidbGYC +zc3cxD1pTqtfklXs5wMcLouFwRaURq8Io6lRmiZ/0liJVU3bx5uYnnOh0ND8/Lu+ +njgBHBAiVSyX303X6XEEo+2HNYswCv+IEkZNM0iLwXr2LogBAkEA4U1BwFqXkjCW +nomJtyhgPXtm8JNmrX1Vlb32M41qG28VjKWQmKlgRLOptOMqvxIS+Mj0nwX2V2fq +gDd5804qwQJBANy0HEiRhL1rODXumBMK6Fls88at+OEpaPpzuQ2vJ+PbbheXoAA5 +7lwfjTupac4VrguBFtO2B52JJvfZmjEctfsCQDvUxG1MoYvVE2quo7/cHRK2vrOM +sWvJKP1HISa3m0IF0fcz0J55/HLCM4MyAJwVNKyU0UGZ172GfyPll6EhVQECQQCN +qmLZRebxeyhKngspdf/snt3fcv5k8SK8WJm5Kewt+0Swihge7RCOO4Z5fGY47XuZ +UNQpMxeyTD4iK6Ao1CgPAkB6Yq+Bil3gREUDFtXsnqGm/M5UePiP3fGoFB8IUvZ9 +t2nAfY6EtsInmEs6duGoqbBcLUGicBqUJojkL4SROFwV +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/irp/irp.cert b/server/component/planetlab/us/irp/irp.cert new file mode 100644 index 00000000..ee69dbf8 --- /dev/null +++ b/server/component/planetlab/us/irp/irp.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNpcnAwHhcNMDgw +MzI4MDM0NTA4WhcNMTMwMzI3MDM0NTA4WjAOMQwwCgYDVQQDEwNpcnAwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAPzvSNF2gndHEE+bXk8ftHDeOBuBz74Q4tRE +bje+KsMrfJEkoDE8JReP87rsXJOAqKK5m+zVS8K5Eag/7FkVtEwWYygmwHa+4B8s +ryR/RSgz5B3dKiS2ZlGFB2tS5waaivy7HV5+7Dxe4EA+SRzM15smLGqvCFj8uot4 +RUp5+r5hAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAWYmG4UONb+7VVDSCO7vPjLml +/336Oevuk2S/+lBCo3YNfm2jPSjYeMG343STrj1PF28wNyY3+MZKUnRY/HDOHqT8 +FZvis8lFDZaX7xSkP/SbszFIaCjlIscY61uGt0bIFTmHQ8/W0hUEtjrkbq4uOu9T +0tF8Uh6BWD89R2YTHNw= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/irp/irp.pkey b/server/component/planetlab/us/irp/irp.pkey new file mode 100644 index 00000000..d8838fcc --- /dev/null +++ b/server/component/planetlab/us/irp/irp.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQD870jRdoJ3RxBPm15PH7Rw3jgbgc++EOLURG43virDK3yRJKAx +PCUXj/O67FyTgKiiuZvs1UvCuRGoP+xZFbRMFmMoJsB2vuAfLK8kf0UoM+Qd3Sok +tmZRhQdrUucGmor8ux1efuw8XuBAPkkczNebJixqrwhY/LqLeEVKefq+YQIDAQAB +AoGBAN+LlG4cMZ693fqdtLJ1sQJ4RFp7VmIDhpZYjJkTp7OrAYM+PZ6GK7oxbhZs +xD1RXrnDFb4xna3R53suU/NALYG4EttehyaCPPDVVrixQ/r7nw8ZvE9l9nbSvzkE +kAkcwn2MCL82+J7i9PYi65cBieT1y1eNFdalxHPB4B8FPsABAkEA/xtsivCpNvVn +wjoupM52ckBAZLqwpGoStZ6rdas8PkAVxVJjpU3zBLXnjuG5FNCTuLF3S1qktaBg +DcV9TC+9AQJBAP3R6flyK6pJg9zggpYxg/qBFmJiK+dRW2+Wzd3rGu3GPzGFGSuz +z7AD2sIwX3rRp3DxqvKvrTU5VLHlbMmHIWECQQDjqCCMOUp4/jWTMgLwFkPDn60X +dzct8m8x3yBaCO7hCqWjCuxb1504pfC4JJ3bgmthlhXEjGaSo0U05Pn1JGEBAkBi +Jc+x04IrAO5qdK5KYa9FKLF9LbUIZ59R0SCeFZF+LFC3V15aVdeTmon22TmyhmuW +8vxFh8UUdazYdXzRmN1BAkEAn4oPt7XtQp/cM8K3Z4kElYLUWuh469vbofkOTHWT +0A4hLZKwR901dTkjaC4sE30QwHkTM8xKei6kUr/14cy5Ww== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/jhuis/jhuis.cert b/server/component/planetlab/us/jhuis/jhuis.cert new file mode 100644 index 00000000..3773d3e4 --- /dev/null +++ b/server/component/planetlab/us/jhuis/jhuis.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVqaHVpczAeFw0w +ODAzMjgwMzQ1MTBaFw0xMzAzMjcwMzQ1MTBaMBAxDjAMBgNVBAMTBWpodWlzMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD5jmZLwSjBJ34ryAuZVvGYLhBNJV8q +eG01YIpYUijMKv3VyH/E88x/Kkh/V9PTZ6eOnuPSC55tZxvE7FEHJUuFg/uuww1m +eAamZV1twI8vG+ouTSIWcGfwj5OyPZiy8vLyHCCg+hHLBXRel8whm7uTaDKjBgke +rjS0H26IEQj4SQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBADCXtGPQiIBWPpRPiSJL +tgPRVQvndalWATs4k8+tq7wQN2c6MUe1yGJedLTB+qYwJq5a+Ic4IcFK4gaHTLQK +dPrX0lRTflOanbN7dJuSscJaQ9K0efNtHDzoVlGsJBTOTuUp6uKVBi8Vppmfj+N6 +xIFCmAJsAWHTWR2cW4SxeiXQ +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/jhuis/jhuis.pkey b/server/component/planetlab/us/jhuis/jhuis.pkey new file mode 100644 index 00000000..1ae09744 --- /dev/null +++ b/server/component/planetlab/us/jhuis/jhuis.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXwIBAAKBgQD5jmZLwSjBJ34ryAuZVvGYLhBNJV8qeG01YIpYUijMKv3VyH/E +88x/Kkh/V9PTZ6eOnuPSC55tZxvE7FEHJUuFg/uuww1meAamZV1twI8vG+ouTSIW +cGfwj5OyPZiy8vLyHCCg+hHLBXRel8whm7uTaDKjBgkerjS0H26IEQj4SQIDAQAB +AoGBAI6rXUozzLPYeyZWgGMStJ32v7ULB4QFQxH/9jeWCOLoNSPyMzGK279bkgTT +VjOHD+DWb5JWuCT9jH+hRpWaObijAXcdDXn9EKXzXkMEqPsWL/nY1Z3zE801sFJs +UbxkIGrGstKH137MHp5WEQgrbBJhYiXZEKG31tTVbmzExZEBAkEA/aGRxjiluMnG +g23wjRJjct2Y94pE/Dn7wRNoz5xinrJ8nHPXlShGe0xeX0IWQArg9I1DDW42dMb4 +/bl4U68F4QJBAPvjFk79cPVHqcnCkYIlMgwBpNwHmG/sqUZc+YtdcvqDP8QIJRdO +chnUvBZoUQ/jBydChmILMmWM4ia7/ssTb2kCQQDoGiFS6qgNkOkPgV5vWvKTPWMs +tOYog891gxOZWh2N6PzMF96javYFA4AhYFMITGxMn7FK6x7+gs99MWuB+VtBAkEA +3AlaGZKoNHxvw8JmHgykFXzyKQuxjERu8vqRO79ci55P+80pqZxrbEk8LU7fUUN/ +ojoo7kjds3xIqpGbWIcX0QJBAL7eTlqM8J6pyo/omr40JC5FGv7KNv0Pbh6JlV78 +izAwT0s/UzvLFTwgnjCmdX/DwMT2T4Bt3eW4C86KYAk5vTM= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/michigan/michigan.cert b/server/component/planetlab/us/michigan/michigan.cert new file mode 100644 index 00000000..87817573 --- /dev/null +++ b/server/component/planetlab/us/michigan/michigan.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhtaWNoaWdhbjAe +Fw0wODAzMjgwMzQ1MDlaFw0xMzAzMjcwMzQ1MDlaMBMxETAPBgNVBAMTCG1pY2hp +Z2FuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdUsESJzbkw8DWo5QVram6 +Tk4WclGCSnFiS86ERUkQE3pbDcv+kqKi5FGAuQL0dY3/A/s+4+eKWQI+t5b43EKN +1xYpEesUwGfywIug03la0Kyb1bxHWdWqAtjfOv5AvkU07BgqHy1Os7hOQll5ZVsh +z/Sdhx5WYQ0E1qth5XkbsQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJtcoYK1jyS3 +Qu/FNnkowgZyn4Bb9Et1l94pv2jilASHGFKQ5zMv0dFZwRe7N08XCFjDImJJY3EC +kpDydQgJ0Cp3fNlm8WpI2fYgBnMImty6hgfPk0cARd6+hC0mtGJ9jcuROLYHM+pB +ncZVQ5FSx8rvX2RVG4OWKUMMRReoUHCW +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/michigan/michigan.pkey b/server/component/planetlab/us/michigan/michigan.pkey new file mode 100644 index 00000000..c1745bf6 --- /dev/null +++ b/server/component/planetlab/us/michigan/michigan.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQCdUsESJzbkw8DWo5QVram6Tk4WclGCSnFiS86ERUkQE3pbDcv+ +kqKi5FGAuQL0dY3/A/s+4+eKWQI+t5b43EKN1xYpEesUwGfywIug03la0Kyb1bxH +WdWqAtjfOv5AvkU07BgqHy1Os7hOQll5ZVshz/Sdhx5WYQ0E1qth5XkbsQIDAQAB +AoGAByQ9jXRoQoQ8WcH9M+q5PLLXSp+P4ak9cmfcjRaUFX283StIKls/tMNGi+Ba +KPy5IG1u11EDLr2Ro4Uz/kIJZ1K0sKAri8hck/Y6Dfzs5oIUM+Quw+ICvg2rBeAs +FMb99JX1zkawyTIyBnbLl8bQLXcDytjmT4AHX4fK2bdZu40CQQDO4H5VielSlDTk +mDWv4iVuzJmKjTavV+YsvND0E8sRawTTv9FOK8VYU/eg/uF/88/xR5HLv0kIxyFI +Csioc3/zAkEAwq4F4BNiVk3nyFR3BAUOv1nF2ma77PRWQkS1+PU4Zqh8r+6oHLmb +r/XhA8po4Ky9EnTH3Vj+g9NOwv/QCQJCywJAfgT+sDisauNhPQcDXTrTNqVnuqC+ ++R0AV6xFVQlhoCCi9iJY69d6BY5QwD/DOeBZgU7pn0XMxY4X1fzLsuF4xQJAfH32 +Sd17c/8rqkLBPPPTA3BwAoLRx+xTwNrZl1OQ9qzl10eBf6T9tx8//kGQoaQ04DmH +mbeQQlJ9OluF+EzW0wJABHmA6wNHmSbejWR9tCMPPY4CP+ipmjoDdSB4L4x23zKg +qw80vi91ds6977k4M7ylBhSK/MU8e5KTRHX9yzsyfg== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/northwestern/northwestern.cert b/server/component/planetlab/us/northwestern/northwestern.cert new file mode 100644 index 00000000..d89febbf --- /dev/null +++ b/server/component/planetlab/us/northwestern/northwestern.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBnTCCAQYCAQAwDQYJKoZIhvcNAQEEBQAwFzEVMBMGA1UEAxMMbm9ydGh3ZXN0 +ZXJuMB4XDTA4MDMyODAzNDUwOVoXDTEzMDMyNzAzNDUwOVowFzEVMBMGA1UEAxMM +bm9ydGh3ZXN0ZXJuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEy6IlCLsu +pRyj9XUCq/VuDUAHc7illhn2DHEJtasenzDHagKbPBRTQAXgeOcRwjBGf9TX7QdR +GBD/YW1MRONzwHmkh6TR2PVwnaMsIzFm1Wj3Pl1Jl35h2a7yq0nS/6nRUNEESxv9 +8konwGNdFow1/v+5wla3Zc8N0LcGU+yMLQIDAQABMA0GCSqGSIb3DQEBBAUAA4GB +AMLJKP02wDmcRVtJvULpRrpegdG6btUJzyf8eoCJFWl3o+Q4UbUTNdrKUepnp1Rf +5Y9J9qsObnvwWfZZKsSHmZbMMbhw5NVjWp+6aZtNNJDzCsudJRaxuVU+LJRXdHIS +GMT/QkcGpokGoKGyiE9o//V0FIK4olBMTS5r+gOXfHiQ +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/northwestern/northwestern.pkey b/server/component/planetlab/us/northwestern/northwestern.pkey new file mode 100644 index 00000000..7de1afbf --- /dev/null +++ b/server/component/planetlab/us/northwestern/northwestern.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDEy6IlCLsupRyj9XUCq/VuDUAHc7illhn2DHEJtasenzDHagKb +PBRTQAXgeOcRwjBGf9TX7QdRGBD/YW1MRONzwHmkh6TR2PVwnaMsIzFm1Wj3Pl1J +l35h2a7yq0nS/6nRUNEESxv98konwGNdFow1/v+5wla3Zc8N0LcGU+yMLQIDAQAB +AoGAbib5FDel5j7/H/sFSsCLuNTr0QACC5VP5LwkDWZFaPd76zK4UMG5Mrv0Tif+ +Vp9WPC/TKCWBYe/Rm9Chx/4LPUNpOk9zkP+tuXaFeA8CV+1Co8seH0am+WJZew2f +Olxp6UB5Ut7803BkoDAK/vQzYoFJo6wmyroctXIX3EHheaECQQD6aHYck47YSa8W +PPG79l7Wg3F6RdPcnPdCo0Ek66qb9mwyTnn/BTosT+orgwHwnl51ONYKxmnS1NGz +ngB/BEkZAkEAyTCtnUtHkmxW5kS0kbbTtsZObvkQmmSUuadvO7/d5rXOE4dE9imF +Qay3jP8Dd15FYN3grsnH0FopBz0Ap7/6NQJAW0XYR3JBjvTMrP5p3mlfCDHBGyB4 +qOFN/ywigqKj/VVE+tFABoSRP7WhVVrbSilvpKqi2iqYSBDqnt3osGOPgQJAIV9g +vSG6mpA8DfBBn5YbIktcwU2xMlsSzIT4j4mxDk8EAvtCNi8G+rDitZGrioZprbrA +RV4VNftuqNO2oxzWLQJAIjY3Jsnwpp5R5xBdVQQFpttEIUx4D3zQiAC6YkvF43GT +x9Prr5EZORDyGtO8t2Z94d/fnIKyxPzlUAZI//1MiQ== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/orbit/orbit.cert b/server/component/planetlab/us/orbit/orbit.cert new file mode 100644 index 00000000..47df8390 --- /dev/null +++ b/server/component/planetlab/us/orbit/orbit.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVvcmJpdDAeFw0w +ODAzMjgwMzQ1MTBaFw0xMzAzMjcwMzQ1MTBaMBAxDjAMBgNVBAMTBW9yYml0MIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSEPH++WG45H9NhSiBH2Zrgz/EZaX5 +qdR1/H/p6IWP6wWrmmsm6qpXf7aX6NWUzG2e4t20p/pRENHQSLDmX5D1DxBMAs7j +3z8dDJ+99GN2b7aVhSIXjOCQOJCXl94PuVKBrxW3Mp1FQMd4Ta1BEapoOPj0oYLc +a38+BegrzZILRQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAH9RZdEbOWuNQj16RLa8 +ekUAKYkPvTCf+OPJ6lxbjfzI5kDX7E9+iCrkv3SNE55y+STgIXTpVRpwbqHo090E +Dkcmst+6V43GxXDph+sDDRxQ0C+tAMpilPdLC86Yf1qR+OYhKJg2cMsEzS5cq3E6 +oHrAyAcrdze/I3zcAIqFxxyK +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/orbit/orbit.pkey b/server/component/planetlab/us/orbit/orbit.pkey new file mode 100644 index 00000000..85b9aba3 --- /dev/null +++ b/server/component/planetlab/us/orbit/orbit.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDSEPH++WG45H9NhSiBH2Zrgz/EZaX5qdR1/H/p6IWP6wWrmmsm +6qpXf7aX6NWUzG2e4t20p/pRENHQSLDmX5D1DxBMAs7j3z8dDJ+99GN2b7aVhSIX +jOCQOJCXl94PuVKBrxW3Mp1FQMd4Ta1BEapoOPj0oYLca38+BegrzZILRQIDAQAB +AoGBAJjNqrqGPQd5bwC8s9H5PU9HkcMTDcCmQN3yZjmH4l/l3aIOGZOdb3tmczPd +Mj+i1LqW3B7lcbg2O+j+d2+cZJwMkVrF21jtKiaaAfzWt0rXE1ui9wkA9MIFMhp4 +2hqCK+KFrqv2zVy0ch6kE4/AyV9+0tTtCuLTEXaMmQBgoewBAkEA6AI+ojPFgQY2 +Onstz9Nf0KXKnh97XDI8BGyTEY0+/48uNED07xe28LyRaGzfH6b7Hi6umhsmhCVX +TwDLlsh4oQJBAOfJ1b+D4jiSlRaTRxtN4NgKYH+4LoNDNoz11lOZGW8xUnC6oVOq +6Zfr3josCrZ25tpWWMKgdjRmF98S9CkHHCUCQQDGHLSTGRY7mKxRv8Fcx6f3qLqd +z1AtaA/rzzK+OBhlbUQNBrKgP2XNp5eazeyxQIsKON6LZUe8a45kPc+bD9BBAkAf +8pDUkc/3bjTAZNJTMBvCi0Obtv4qN3RoX2YIJbz8t3aedQrRZmhF+UurBvD/D0po +Y6heQxGnzT6TD6C5mvJFAkEAswlGfTMSAKLfJ45MtN/zR1nEkHot7l+ZPYbXdzT4 +ydJnFLDEYwBYTME5BqBILai3BMBKKhMl/di+mtroWDZN2A== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/rice/rice.cert b/server/component/planetlab/us/rice/rice.cert new file mode 100644 index 00000000..98111dcb --- /dev/null +++ b/server/component/planetlab/us/rice/rice.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRyaWNlMB4XDTA4 +MDMyODAzNDUwOVoXDTEzMDMyNzAzNDUwOVowDzENMAsGA1UEAxMEcmljZTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvPgtziV4JpT+7LTHWX3O7cefzxxjRuT3 +fC00NGEJHM3yFAaMcbLo0ppehr+HhXBcWxmffUd4Rg71/WKHZsdrnhpF8FkO89Yn +dNNli5hrFuXDJDqdkdHzWC/EItdJGK993+Y4b9RjSlYRIKpfFDzIbdbtlrYdbMCZ +jkq3hrpxkRUCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAgkv9S4qCtZMG5gsdQhLJx +sYgtjdDdv9d4TsnqYXPHsWCDQWnGaedz+CMufmaZko9GiRL5Fsw51Beo0hb2n9PX +DRvc3uF0CvwzolsKP9UKaFR6IvgMOd6IBYhHdIguDxkqQDvHWmt5CqcoQJjmtrU8 +J5JBfiMyWH8OfhMz0yID3w== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/rice/rice.pkey b/server/component/planetlab/us/rice/rice.pkey new file mode 100644 index 00000000..4185938d --- /dev/null +++ b/server/component/planetlab/us/rice/rice.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQC8+C3OJXgmlP7stMdZfc7tx5/PHGNG5Pd8LTQ0YQkczfIUBoxx +sujSml6Gv4eFcFxbGZ99R3hGDvX9Yodmx2ueGkXwWQ7z1id002WLmGsW5cMkOp2R +0fNYL8Qi10kYr33f5jhv1GNKVhEgql8UPMht1u2Wth1swJmOSreGunGRFQIDAQAB +AoGADHiAZVtZq4onrK1dfo1r64tCA6QG9TXFE1/UUySYOlto/2NTP2mkLcncNR5M +rkS1A5oUSWs/B7iTCU7ISsMcWeyve+dsSlcBsMbLzh/z75h1iR+Vdn45N+VFp62j +yY64YvZrTtinUpSXxOpRnKO/NABi6qJGnHSJecXCPBz2KH0CQQDe/JtYzt3ggUXp +VS47iHeZBI+YGGIpzbP+hConUC7vbbretzcf0mJDpkgQUIus1pNg/4edGTauXtbc +Fm4h/3F3AkEA2PJJZ7RKkARPNCLlZcKgddCokzbfS1pfj6+Mh0fco5h6zucDjeeM +Rafmn/HUEYXJM4XSpw9Lueu83SNSxLRU0wJAXwKa3lgmScZLF4Rn0o3vB4/d7xxU +lyNCkiuWGnIbzYCfos3F+xUVMWXkRq9LFDXJTgcSrWlU1y8ptVUJUAsbOQJAUC9l +QEZcFNTy7WNEhJMmOcWQuTDb4X8auQH6n/nIrFLseVLbdnSx3QEM9estJfjcAAYj +cQnvRF3EZbvrmLbKbwJAWGaTxygBFH4xu+BWnGUR54JPaQiHXMU91XOsD65rFT0J +CjGbJ4y2q2qqSQyY4oSTXKUKElMYh1LYIKRHNmBMAg== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/rpi/rpi.cert b/server/component/planetlab/us/rpi/rpi.cert new file mode 100644 index 00000000..3f50d514 --- /dev/null +++ b/server/component/planetlab/us/rpi/rpi.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNycGkwHhcNMDgw +MzI4MDM0NTA5WhcNMTMwMzI3MDM0NTA5WjAOMQwwCgYDVQQDEwNycGkwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBANvg9MJ7RnBY42IeRAYDaYZfJ1k8FK+mCGlf +ttYkucu92w7fh25hszSbAq6LL+bkWfXCGS5CgmihFIspoZJD1qfA8Hi6lJnOO6Km +YrhNv+PBvzGfr5W95rm6lymNP+ZVqOXw6iHHU4CusPjQVBt1AqqqN862XwspIoQn +TD/j3VtrAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA07cbEDriUDSHPNNItmA5B3fi +2ALrOUdJYN8E39HL/o6HEWpArpY3zhsXDr0glIpKvXm1Sz1720zvCTSfOuGN8xLV +Al5h3rLBZVNeeOTz3HXUqCNJJh6J/O82Kt50Id/U59lFqwk2OAHqT6D3nDzmdngP +qXTOnvqS2GEtJnpCT2I= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/rpi/rpi.pkey b/server/component/planetlab/us/rpi/rpi.pkey new file mode 100644 index 00000000..08c0c07c --- /dev/null +++ b/server/component/planetlab/us/rpi/rpi.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDb4PTCe0ZwWONiHkQGA2mGXydZPBSvpghpX7bWJLnLvdsO34du +YbM0mwKuiy/m5Fn1whkuQoJooRSLKaGSQ9anwPB4upSZzjuipmK4Tb/jwb8xn6+V +vea5upcpjT/mVajl8Oohx1OArrD40FQbdQKqqjfOtl8LKSKEJ0w/491bawIDAQAB +AoGBALzT8h7a82EkVRI8X7qyT3uAWDCAMluuQOcNtd0t6QmZ4HhjatFWwinZPXJc +QiUN0lwF9s4NfCUSwKvKcuFDtSD/vxHyspfUqxthqpAvrzqaKoDtkpz9JHchmj1s +Kk5mEyjCUDjmDJ7CGXhZkzF0KVTc6DGVpQxEdd7ejSvr2hehAkEA+aNYPz54waYn +s/H4uXuL1qT16K5gHKCsDDUYCAnleZAOBxNbW9anFDhIhESIG8QFCBTtAub3ghkA +REFG33v+SQJBAOF7daPqeOTDCb1npugnS5Xk/guun7rdui3YPALFBkn5IuvFrRxT +zz9osap/1mo8A2eVNgpeyZGA+wwUVy0NnBMCQQDHoNAZAyQd93kYdQ+phBq3cwMT +Jx7ExdfPi0XEZ+WR6JjPH7OXJXhGuxuCaitNyNsdM161S23yI3wLGQhL/yPBAkAE +ygqFoMVQlpPuYfU5mRwR4vtCZEMgRPVfY+hiZqzrhU8oktpKb71HK4IajPyQ5RVt +bc3oCntdi8/JQeVYH6HhAkEAzpSQ2vRXTOAe76IJxRZeEFLAdmvoVtSwJ7DZdQRm +/b/5hvlYx1xWsMNgr39qJkpzprp+708JubpPEZdpo6vTlg== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/stevens/stevens.cert b/server/component/planetlab/us/stevens/stevens.cert new file mode 100644 index 00000000..10ee7ccf --- /dev/null +++ b/server/component/planetlab/us/stevens/stevens.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdzdGV2ZW5zMB4X +DTA4MDMyODAzNDUxMFoXDTEzMDMyNzAzNDUxMFowEjEQMA4GA1UEAxMHc3RldmVu +czCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvO65JFWWsxufe4FV5C7TKrK6 +t6aZEeHrcTPiW78P8bvKunGVVSEiRza9sq5c1Bp6q+Lk3GVYpUbDnhw/jnpMTB/8 +IcDLOjk7p0KhCa5OAsSEm/+GLC+R+AW7cpuvJTNoAyrrbQr6wI6vTbC4zkS5eeny +17BcGYYiVCqBA6Np+1ECAwEAATANBgkqhkiG9w0BAQQFAAOBgQAQRLlBZoYTHnJ/ +3jtJ4ocfywGrcDvldm+ymIx5H2GGMW9dnJClkcLkDNHVK5ZbQ6D2JyAOvV3Bu8+E +6Ir4bIkZOiy7Xk3jmE8aBqbs9bg30612wTaZjeYo1FnOttwdAuVGXw0xOMOlDcrO +zBzVBbLQ0u8fq/sb57cGRhREV9721w== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/stevens/stevens.pkey b/server/component/planetlab/us/stevens/stevens.pkey new file mode 100644 index 00000000..4853cc02 --- /dev/null +++ b/server/component/planetlab/us/stevens/stevens.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC87rkkVZazG597gVXkLtMqsrq3ppkR4etxM+Jbvw/xu8q6cZVV +ISJHNr2yrlzUGnqr4uTcZVilRsOeHD+OekxMH/whwMs6OTunQqEJrk4CxISb/4Ys +L5H4Bbtym68lM2gDKuttCvrAjq9NsLjORLl56fLXsFwZhiJUKoEDo2n7UQIDAQAB +AoGASUgfL+Syy04PkgwckKFI7urcWZeZD8KdXA9P4V4+hPjeLWsZDSgI765f7gqL +nwmWQ02Cj6oPtCu6fH1geZceOE1/LPia2MrhAbeIWAz+91tyBaqhNwYrIjQullzX +uzaxq8VWzCoAMz+MjOFPJ89TPt4LNw1WcXJvuO872hswc0ECQQDv4ntkW3R4pk79 +dvg6pogxlV+D2jpto7tSWqZLKBVTd2p9FNtWpJPP+5pn40RuKTTFBxe7URei5u2i +ahKQPZ+VAkEAyZ/4OAW7n7GyvavIzr6ZC0l1o3FGerp4Kmg5kYYN6q/BfvZ/pkYr +dVkjp/FIRbbrgEMnRzSsJ/GHAqnhp/QtzQJBAMKD7faEyj8C7E5PaB126Dz8mMT7 +8iDxgXXYF7wdtp1F2c2vWeQ587nUlXHkMZr6QtX5WF8F9Jqdktf+FytrLLkCQQCv +7g7ny1DQ4nwldlyM0dC3AY1NZUzrUAQEdNcuvLst+dgsEaiGjJnlFje/lhDLC/Zn +/7CpODOz0tNMprFJHQ5NAkBr47TiRXDbM4qIkcUzl7zawrxDCCk7Um/iEIThHEFA +X1cm54BWZGLlvaqEnm6Bv/kCdvMEn5ZFie27dnjGGHDm +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/tky/tky.cert b/server/component/planetlab/us/tky/tky.cert new file mode 100644 index 00000000..1b06e13c --- /dev/null +++ b/server/component/planetlab/us/tky/tky.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN0a3kwHhcNMDgw +MzI4MDM0NTEwWhcNMTMwMzI3MDM0NTEwWjAOMQwwCgYDVQQDEwN0a3kwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAMiykH2wAha6xH66PhU8520iX9E6Yd5nUmnE +5LwX2hpEYj8Snm5yoVD5kAar5DBSrGpbT4JBB75uYxLnZQBSILUrLbOPxq/mw/7a +ExiSiokfKv22g2EGhGUclFG4OOxFPUS4QNyU1sBVwjlTWy4hzK/7Xcp8OiGglu2y +KRMGL2EhAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAn1x3uXxAPU8UcD7fpL7/w9Xu +sMfRjvnDSaMlLxJuOnVopg0TXSSNllhqkQRLpopyswCxytDgagSZ4of5C+qemDYy +fpsymZfVJD2jgHKJw5bGf54QleiwHnqDRr1EYHEySXID+yYeW9BCs4GZUVWW65cz +CNxB848inuMrAYG3PbU= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/tky/tky.pkey b/server/component/planetlab/us/tky/tky.pkey new file mode 100644 index 00000000..9a574c71 --- /dev/null +++ b/server/component/planetlab/us/tky/tky.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDIspB9sAIWusR+uj4VPOdtIl/ROmHeZ1JpxOS8F9oaRGI/Ep5u +cqFQ+ZAGq+QwUqxqW0+CQQe+bmMS52UAUiC1Ky2zj8av5sP+2hMYkoqJHyr9toNh +BoRlHJRRuDjsRT1EuEDclNbAVcI5U1suIcyv+13KfDohoJbtsikTBi9hIQIDAQAB +AoGAEXPNstBSbi2Rlr+VVH12VnwtvuEHz7JGbWIszdp5Id2eeYOh+VLIimUZTCs4 +badSzPDhyh7jkIDC5srucoexxke59VkRjluroHwtWug1uxoRYs+wpcO0K9JaugPR +WhbSZZbHDifaI6z9KhKIcChQJJr+x+e/1ajH1N6ABvyMghECQQD63BGf3qJA7cjt +qzZnj2dD3qdtdKDXJhG886qICjK3RHECFKpwWCDoAqO/ju9V8jhHT75j1XBvGOdr +S2Yy9wMNAkEAzM9cWsadEVTVZhoIdZwRM0ZeO5sbFnDPJl/oEsnLHE1ZKV0pbqUB +e9DJNEZOqg9Xn8dNbihYlUhn1Bl8pRChZQJAVYny7IuS0gcC65/lBj0M3kSu3JDX +Q2W0yLRhos+vaXSKAEahs3sphVNZGLmZfLoCXLahWhNuqkNYrepg5+H4hQJBAMVI +5WSHtxrPxfPhFc78c9EZcoImKZSXO+NyNOGMQjtUApQGqndrOJ+lAXt6UiIcP0Ko +v9xhvtql8WXs2xVBjMUCQQDBLmwARF2iqmezIIrXrZCcHaHTzHHh1ybzcteVv5m2 +U1t0DS0jDzAx+nQAzTDkce9EFOC6p6pWQ1P1kZAusz8v +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/ucd/ucd.cert b/server/component/planetlab/us/ucd/ucd.cert new file mode 100644 index 00000000..6ed35795 --- /dev/null +++ b/server/component/planetlab/us/ucd/ucd.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1Y2QwHhcNMDgw +MzI4MDM0NTEwWhcNMTMwMzI3MDM0NTEwWjAOMQwwCgYDVQQDEwN1Y2QwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBANK61udOX7RD/yGJ4jzI2XhGaw/nY9INmG7L +BNZ+BVelMe2qW7Cb3cKOcn9qB80KJYR/rhjU1NbUa3pfdbUk3Cu0/zasOvHDQdlE +gjBvUirUeu6B6p1vRI51x03lSkpNqN//1/pquOmJoDTJU2xSslnyQYK0NRFc/Lri +USiRveMBAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAOmZDEEwKzi1kJt9+dvhejDGi +8PWQ/OEtgMhdApFIKe5WyRFOe7kk7LsNl/aQE04NyVsuZDOhVj5X2hdtBX/UjB0A +ojNVojFlqf4NKHZbFLUOZErWucBnR8Ljhd2Wo0foAp8WF795+NrGRUkB1KrdLZg6 +GTBPMn+NtfL01+1w/WE= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/ucd/ucd.pkey b/server/component/planetlab/us/ucd/ucd.pkey new file mode 100644 index 00000000..9f981558 --- /dev/null +++ b/server/component/planetlab/us/ucd/ucd.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDSutbnTl+0Q/8hieI8yNl4RmsP52PSDZhuywTWfgVXpTHtqluw +m93CjnJ/agfNCiWEf64Y1NTW1Gt6X3W1JNwrtP82rDrxw0HZRIIwb1Iq1Hrugeqd +b0SOdcdN5UpKTajf/9f6arjpiaA0yVNsUrJZ8kGCtDURXPy64lEokb3jAQIDAQAB +AoGAVQg5oXp5mdb6Q0FNPjPZtPPNTcyT9fWwdbyMRjTx2Oz62akteHVcpZ4vS4Sw +gyc9/lo7GSAAhnOOrwGIEME/6dNwrkFCC3YWbDYAybjhvpXdmFq17yS0ZMDIwLoE +rJuWwYBbLPNtCDPisnS9rCCjElr/4kC/aBVdxQUyIcibMPECQQDyWqY7YKOuPMq7 +BtX+ag6Khj2LAzGpciR7boJGu4yEsvjA9Zxz9VdhjMnbRFV80Ycc8byZpXZ8f2NN +j46mCIo9AkEA3phZtUMAgt/1VawHgvw7TxM2LyKR78gUmqkDMnik+yjykhnGa4ep +fzhsPgI5oj2cZjdbdST3cZnsv20hMrl8FQJBAIU2TH8AzJd+NNT+meuA8kM0LGnX +tJl18xWhlZw5hLCAC3lMx9V5OrGVCHMsqWy1YvYG7erqZylhf/zm9rrOoOUCQQDH +uSUMuaCUzURA6YkX4x+IFPHSGw+ceQbbunhO6ecGIDh+FLhvNRtFNigQ/0gdJXDW +Wicqlc+b04OUQuO9sqX9AkAgLPtcI3+gWbvzMzLfZNSl8bx/cZBUHrex+0oNRUE2 +Mw0J/13ZNhboJzjxK9wv/nq5Q47oZSIbIWRDbtxMFo4N +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/uci/uci.cert b/server/component/planetlab/us/uci/uci.cert new file mode 100644 index 00000000..15876c65 --- /dev/null +++ b/server/component/planetlab/us/uci/uci.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1Y2kwHhcNMDgw +MzI4MDM0NTA4WhcNMTMwMzI3MDM0NTA4WjAOMQwwCgYDVQQDEwN1Y2kwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBALK9wNRqWBfWA/A+ATeiHjN8OcdzI4YB4NZH +pCCCi5LxNgIvTqhvdA34kNNlvY9XaaeFuJFO+aBlofWHduKXT2Sy4XU3xUeC2vv1 +qBsWqRgcmMT9yZn4oyNZ4n8stQGF09vFzzJ2ERMhieS+0lm8YjnCnoSDJGb6gkKm +VRbheve/AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAPwbCHIV79NputR6kSgAVT/d/ +mYZLKozMY6CYEmgGYftK4rZA6nzWm9tWmGe/mr2S6DhS838YakTstaIW9885rGBl +dMOrH8Rp3t3IXqsG+i96XDnnMkyt4SWLU2wnyG8H+1nhE0R4UyzoxhAgDHINZGON +M6iz4IrcF8hA3nMdcDM= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/uci/uci.pkey b/server/component/planetlab/us/uci/uci.pkey new file mode 100644 index 00000000..0fb7f6fc --- /dev/null +++ b/server/component/planetlab/us/uci/uci.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQCyvcDUalgX1gPwPgE3oh4zfDnHcyOGAeDWR6QggouS8TYCL06o +b3QN+JDTZb2PV2mnhbiRTvmgZaH1h3bil09ksuF1N8VHgtr79agbFqkYHJjE/cmZ ++KMjWeJ/LLUBhdPbxc8ydhETIYnkvtJZvGI5wp6EgyRm+oJCplUW4Xr3vwIDAQAB +AoGAYns0XJT/Vpq/bsXrC8kSFNH0T9U7lGFCjS3J23OyDVNDq65/C0TlT7FNsnwT +FoBWIUwHJmC6H0sAEnUB5tTxk6FR8v3molofw2NKfFAS8G10KEN+12Y6qtGrU7Lw +XvdbfJKuC4OOADa9QOq0gxaChK477vY0nr0SIIcCxLhywIECQQDYuh0tSTLWqMl3 +JFpcEra6/p2b7C3Wq8srMKigs7v/tOCysnHOT5vO1PcP5z+iRjeU1sufClOPGtt4 +UPx9+h7BAkEA0yF+JEsssa7COOGNOcftJpy3F4PcEhIbhzGVcqiziS43huHAS+t+ +ww9lDxuN1x10FTP+cIBGA3E7bbbicyk2fwJBANTDEXWt0Jzvoqi2JYcSUBWPdIbn ++7AtgwzpfgIVsNA9cAG+MP+LI7iPVeRk7xGNwW7613dQmet5QFADoXzDGYECQQCS +mmgfxX9kZcgBfUT2QUgADsPn9Syj86TfzGNMua3o7ImsBCflz8E2qwLuaaClJZOM +gY0FC10SWNb+SQaXFp/7AkEAxPgxsf1r08knHRFwoYGrgOFc+y12JMA19fsj9wBa ++KoJtjbAycV+yb92Av7mAA5kXLYDy2ezbeBXp967gBJkmA== +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/ucla/ucla.cert b/server/component/planetlab/us/ucla/ucla.cert new file mode 100644 index 00000000..4c718467 --- /dev/null +++ b/server/component/planetlab/us/ucla/ucla.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR1Y2xhMB4XDTA4 +MDMyODAzNDUwOVoXDTEzMDMyNzAzNDUwOVowDzENMAsGA1UEAxMEdWNsYTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA63bz0FFyeq8qsSfwC3Ou2Vshf8I3WXYT +fCpP/MULZl7UHqn/1iRjhnixNoUu7YkJlPd6dUz0mW5sT3OECVZ9wHu1GF3iDBnG +EbOn0Y3GseQIj0nZr7MxQeI82r99AuJgoVEddlgcc+hH4rsiLCzVggQDRNHhZiZ1 +HfKd5XKNFysCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAKq95d5WuFwg/fkkQACAfW +cQB7HMxs0vXKmKViH+ehHZ+mZWlQurBwZO0O9L027KfgKc+8SLHsC9QSxzPJk2wn +MsIyBDe40Q9hLVxkuRve/lENPgA5po9KarUdWikIyD+iyo2tHSghQzKHUZV744Dh +3kfmYTpBckINAWC2EbCBxw== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/ucla/ucla.pkey b/server/component/planetlab/us/ucla/ucla.pkey new file mode 100644 index 00000000..5a0c2d55 --- /dev/null +++ b/server/component/planetlab/us/ucla/ucla.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDrdvPQUXJ6ryqxJ/ALc67ZWyF/wjdZdhN8Kk/8xQtmXtQeqf/W +JGOGeLE2hS7tiQmU93p1TPSZbmxPc4QJVn3Ae7UYXeIMGcYRs6fRjcax5AiPSdmv +szFB4jzav30C4mChUR12WBxz6EfiuyIsLNWCBANE0eFmJnUd8p3lco0XKwIDAQAB +AoGBAIuOniVbEKnsRjZnwFtZPkmvPKSXPOz2Echm36+mLgKHs9tU0MBgIujhgc8Z +kt3QefBj2Z3KdbK2gtV4VsqeC7s1taiklE//UfOWM1G5+Aym0dXfc41LYfim99Fg +xsypo5oxS/IZ/ik/twXr0z0S8ui6N6VPRw3WbuRkxSaUDQCJAkEA+92ZN5yrF4gg +4tDaPjGrvpbMjCF4DL5I0mL/dUbVy7OnlP00zC0HDF7V6Kn6JTh+YLlxE+t8r0ZX +kAgUmqqX3wJBAO9Ubtlq/OZCKng6sH4bXQgNtCd0+Y29M/Z7BY08uW043pNV7XNW +V82CDdaN/ccoNDXBlQGcbiAOaoON+HwRGjUCQQCHp2j4nPdBq14bC+YgDVy1QD9X +Ukd4hZxvREbXAZnxJwghpOck+TOMpB+OOs6x8WWP7xFKa1Eyji5nMxL14t/9AkAo +J86BhEXyjF971L0QK58sXsA/bo0AjyJM1M9Vpz6laMlPhzdUBsSsoomX2jMeW0yH +SHer0YdYsZKFiCiNCIGRAkBlJFRX6R0nHGz3mZMdnXKKzfgI5HjjWhcGRJaTauBs +8EvhaDEzXXPlD2GRkvXbG/oK6C7qv2JAqIpRLETe3UuS +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/uclaee/uclaee.cert b/server/component/planetlab/us/uclaee/uclaee.cert new file mode 100644 index 00000000..f11db547 --- /dev/null +++ b/server/component/planetlab/us/uclaee/uclaee.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ1Y2xhZWUwHhcN +MDgwMzI4MDM0NTA5WhcNMTMwMzI3MDM0NTA5WjARMQ8wDQYDVQQDEwZ1Y2xhZWUw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALjfiIXW8jlRtWQyY3+TujcLl0vc +mOF5qrJyVDv851FXV5o3U2AxQfxkLXYRmzocDdT3TUHQV9qLNJjHazlF2ogwCTQN +QCEC3xXEDXnoOfCZDMPY665whEc0XUlrU3BLFsM4wPU+nr7EzCZhLLmx+ASEfAT5 +5HEiiYv8UU07yvH9AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEARgTAmhMNZC7237un +Cy757WiTp/7Rl98P7GOYFRKDRRDjGl6iCUlsxiC5Sz7MUwI3A0rofDfu5RSikbLN +k/FZY7H01+tALgFzMn42tIMkeupfnv0xXLpqnpPZf6oISKAdZN77XzRlVq2Cep5p +X0lsb48z/Pls/H0uD97zJAHbQSc= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/uclaee/uclaee.pkey b/server/component/planetlab/us/uclaee/uclaee.pkey new file mode 100644 index 00000000..a4f658ed --- /dev/null +++ b/server/component/planetlab/us/uclaee/uclaee.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC434iF1vI5UbVkMmN/k7o3C5dL3JjheaqyclQ7/OdRV1eaN1Ng +MUH8ZC12EZs6HA3U901B0FfaizSYx2s5RdqIMAk0DUAhAt8VxA156DnwmQzD2Ouu +cIRHNF1Ja1NwSxbDOMD1Pp6+xMwmYSy5sfgEhHwE+eRxIomL/FFNO8rx/QIDAQAB +AoGAbUDc44uVdj5NXjtRBbH92E3nSZPCXW2TbQWXtiPNaAqf4KlVgoFZp5hkLWRW +Qc8WdYb4hy5i3OprWOZw/VXEwLj1wZxg3QNYCAFFuMYvCpcJqsjfv4X5WBney5JZ +jz5IC7gFRz67FMvjJzMJjXDTwpxK47i11/a+nXz/urHimoECQQDsC8oGIPInawfG +a0CaKnR1f6va1rl9kPibrXd7mBhalykBekxvlv5pEnjG5SasXqgopGhIdjlN72Te +DQ2b6NGxAkEAyIBTSfvqtUtXmlDRA99i7acSWBdpv0TOXsqsStWuDcWI5cvW/DMu +a1nyaPpvHVVxCLhLYZYVlmZG7WzE3mQMDQJAIJID31Ked0fye7OC54LiLPBf80Nb +tvLRCxIlgX1cJuvisZyBfYhVNIRi+/bUnkY1Z94/sXf2skVNIsKkVRYMEQJBAIdp +09a141DKL8IzLtc0ufXTzpncRjk92TtAGpj4M/NtJAY/Y1U1o/Yw631nFkBzgkHn +ZlHkMXRAY0rbGSMx4skCQQCV6cLw+Cg5llX1Nqf0vuiU/LCZjI+cXKz02wSTb/Dw +AzCwNVKsv1My5hv4AuUVqMLZrEp09wyjl9xhJJnhSDl8 +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/us.cert b/server/component/planetlab/us/us.cert new file mode 100644 index 00000000..5aaaf0ed --- /dev/null +++ b/server/component/planetlab/us/us.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJ1czAeFw0wODAz +MjgwMzQ1MDhaFw0xMzAzMjcwMzQ1MDhaMA0xCzAJBgNVBAMTAnVzMIGfMA0GCSqG +SIb3DQEBAQUAA4GNADCBiQKBgQCjh9+Z1MLgDFDEjZYpB4244uKgl7yWybcdzT35 +kUO8Ijz6tNf3s2fvXkG2hyJzvcMrGILFmFq7rwHZcuhj8xgEladPqFC7dQuz9EZY +J4KNdVyWUhb0/wk+hGwAvAbmWDfSit/QMCpNgSSnRrWGWlt1wchyHw79xX8rOmmj +3TDkjwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAABNua6OpYkmW8dlwivX4yxy9zRf +GnXscmLI7AjGXbIo1VbrWlQayHJRFZ1Bn5of1jF13BaWC/PQ73HgdS4taWI6Etii +yPnrruzrwsysTkoyXrQvsE0wG/ghj0j/8elEiP9xvCYjTpeXv6bjHXQYofNIMooi +byos/pgwdg2f9AjU +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/us.pkey b/server/component/planetlab/us/us.pkey new file mode 100644 index 00000000..24785537 --- /dev/null +++ b/server/component/planetlab/us/us.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCjh9+Z1MLgDFDEjZYpB4244uKgl7yWybcdzT35kUO8Ijz6tNf3 +s2fvXkG2hyJzvcMrGILFmFq7rwHZcuhj8xgEladPqFC7dQuz9EZYJ4KNdVyWUhb0 +/wk+hGwAvAbmWDfSit/QMCpNgSSnRrWGWlt1wchyHw79xX8rOmmj3TDkjwIDAQAB +AoGAXFixY3xro/wwbB6MipTyalLtqcSmQfydRN4PPmzS9F3dU7JmN0H/0oPG1h2P +zg5+NUr9Jjp4Gn6kq7ghFbhEegMgY5dtmnjmqZhMJgS3Di8IolhCzBMR2AduvVIo +ZxkuRTqg3YQZpmZbjwnbkVcZqAYIZqxz4UGwp+eYDZQF/CECQQDSQukYUoXsXQ+g +bof/Nju7C+c/XN9D4mb9j78f5ejvri/IfrcD8lgZGBJHsrflv7UUbWyyOo08z1dn +Y+wCf9t/AkEAxxqdzgaCr25+tHb5/mnrNrdMaAsI9LJgLorumo+BOeDaNWQ7GFge +zJPfncyBOhMkrorZV7Nl4KBSYV2So5W+8QJAOxPNxqW5N1ZWg69KyuyED+QiT21a +1goRAgGXo/DHaEC68EyaQ6OeGT7oM/kFLqqUyG6Oce19ra5cUpKCx5kBJQJBALyT +wRL5p51xEiDq7yzANT/FrGB+0ySwLdjnTcamVMb06LfZDv+ntsQc6pcSsvLGXt/S +MriV+dAfCOefMNwvYIECQCdDeU+y6zACGb3LEnjgcB34BgpdPDIK9LDW118iRH7h +6WU5FSjxCXY+CtPVHLqC9awOW2FkOEuquKC/vGczvxc= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/utah/utah.cert b/server/component/planetlab/us/utah/utah.cert new file mode 100644 index 00000000..ec41911a --- /dev/null +++ b/server/component/planetlab/us/utah/utah.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR1dGFoMB4XDTA4 +MDMyODAzNDUxMFoXDTEzMDMyNzAzNDUxMFowDzENMAsGA1UEAxMEdXRhaDCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwZZS+cKctZwcxNpFJY/g5CchL8OSWyK6 +dx5C65J/SoOuN326OgTGuNnCF4N54nIsivQjeZcTGIIn9P2abQVn61iq0OrGi+6R +1bG/gwT1wCrGlh4WZ3mVn9BUhmWpGTaKLtyzT/n4cmfTDhgygPD0RIWsREeWbOOr +kDbH9ZVEY+0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB4AAxHkuf+kMCqfJN1erQX +9yAmK64FK+AwtV/BB6X/uaVX56yFAH/+mRWXrNhqIX4DymGY4L8SRWAPp8WQraqj +MNLVaoxzO+vnDom+4NfdZjHjOzPVWboL0Bs7mjZS/RNxivfnXnD55SgIGNkXcCS1 +BTFSgAf3JRTZBGZEkQaH8Q== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/utah/utah.pkey b/server/component/planetlab/us/utah/utah.pkey new file mode 100644 index 00000000..4814ed94 --- /dev/null +++ b/server/component/planetlab/us/utah/utah.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDBllL5wpy1nBzE2kUlj+DkJyEvw5JbIrp3HkLrkn9Kg643fbo6 +BMa42cIXg3niciyK9CN5lxMYgif0/ZptBWfrWKrQ6saL7pHVsb+DBPXAKsaWHhZn +eZWf0FSGZakZNoou3LNP+fhyZ9MOGDKA8PREhaxER5Zs46uQNsf1lURj7QIDAQAB +AoGABmCcZSv7G6SD8hw6sO0XfIypdDheJvBy8h+mFrqhxOOnpp5WtziXD1nlIf8r +0cDvJLi8PnIyp9kJ1fFQ2AyYisKRPFSzqs/ob5kkbFnR1yNs7W10f14mwz3pd5Ol +S1XHJP823frLc+Bq4fvMEDveV7CMLtrq7JDqEg+4aYxPBWUCQQDvWYb9CeQJb5EG +irm8kAf5/XxoB0who+vAtJheVmlLNI/89Zyyhwr/02X7A/8Qp8OddEVex/r3W/Vg +QDSLtaY/AkEAzw3VJCmQWWzKeDeS1Cw3Y2iZXo+K9nYabbAdzOGwYo/8RG0MIXK/ +SNemX5PD7fwpxMfHDKRLSY2AxtKKw4gi0wJAWIYlPgtdcvv3iJLgdVRUDurpC1S/ +nKWS+VgSDropAW60Xpu80+7Ma6gVTMzClrdlyyOI0LBoKvqw+2Njy9RoYwJBAJzn +D5CCyrdpYJjvDB4qj6KOPkLRJe4Um3xpjHuYvzBBilpUBHBIYzoQ6SvebwgmIYTU +GzuyOLc5Os/v9mWsAS8CQFPi/pBWffJjVWdXUQnA4qMhvFNTs3pnaSqlS8S6MtpS +BRJoIFY9dMbWS+EEmk7rY6WBk2TTCzrMdq6+SPhi+Ug= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/utxsa/utxsa.cert b/server/component/planetlab/us/utxsa/utxsa.cert new file mode 100644 index 00000000..4ddaf430 --- /dev/null +++ b/server/component/planetlab/us/utxsa/utxsa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwV1dHhzYTAeFw0w +ODAzMjgwMzQ1MDhaFw0xMzAzMjcwMzQ1MDhaMBAxDjAMBgNVBAMTBXV0eHNhMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDM5C5olBeb1f9gAN6WKn3jCjOPfstb +JkNS7xJqXr6bdthDK4deWSPJhIyEcash4Jhf0X9qkMQi7gxNBQvbmE6ujWu/mYZB +Kwwny+TasLFJHbTw2T7e2H3JfRA8IZwgDIN+4gOmgG/eVaa+Lbrl2T+Xre+9bLdM +lj/gjv1nO76mWQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAMIiWvoNm4H5Uy1GpV2A +BOkx9S1cNm1dV9O0b40IrBrFWZyqXyJDbAEuTQIAf/wjcGF3k8ShzSBW4r/mLiQS +dlvDXji3idVOqdSsHdyWtj9cLYCsQwQYrE0XgQcUFxeXa8YJwaYSN1giWLN897WC ++m9uCio5Gcam6YESz4NpbdSp +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/utxsa/utxsa.pkey b/server/component/planetlab/us/utxsa/utxsa.pkey new file mode 100644 index 00000000..c789601a --- /dev/null +++ b/server/component/planetlab/us/utxsa/utxsa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDM5C5olBeb1f9gAN6WKn3jCjOPfstbJkNS7xJqXr6bdthDK4de +WSPJhIyEcash4Jhf0X9qkMQi7gxNBQvbmE6ujWu/mYZBKwwny+TasLFJHbTw2T7e +2H3JfRA8IZwgDIN+4gOmgG/eVaa+Lbrl2T+Xre+9bLdMlj/gjv1nO76mWQIDAQAB +AoGAEnOiMkzT63bULsMlSIS/HYk3p36Vtbm2amuZTvcFV17WjwYGhNqmPGmxdeP+ +s2hUkJx/SwuKflLNzMndjYMj4q8cAHZLp9aRT/44sJcUhTvkwNryI/eRJizH9les +YBLvwS3NEY15BttpWdvtrxZXaqkn61ntWP4L4WqH2v9ZIQECQQDo/XV+zdM/IEJp +PtqLjSxE0qMoDWlqNSw1+iCwlW33uNkViJkWFDVAIjm11d2c+AqIR9e/Cxmda7Nl +MbQey+6xAkEA4SBRz+/FLsGJn7DlWWc+Zs7WxUasRQdjrbS5hCq1O+xjdD6zx2p7 +ACsF2B7ZvHl53RuDZaO+lFWLWzAtSr8sKQJAA8S1tctWc1ruOA2QM1mhMavGf8tX +vSQHBwh4puKD2NHgkPyYnUbOZa8oB8zhvLw2T2X6E1j2nRk02ZooM6dQwQJBAJGt +AEO1u7rNseiL51062b5dCc0ONltUtMOqtoE3wZ7NEG4gROU9meo57MY08GBtmtXg +/929X41M7ahMPIKpwkECQQDBNcFIpItiQh9lLUjlBR8l5w7WM1hOyK1gnm6xyicg +jhQ5M8kPsZgg7V0wwir7JdV+y3Ohe0fHELjlg3/wXthd +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/uvic/uvic.cert b/server/component/planetlab/us/uvic/uvic.cert new file mode 100644 index 00000000..bf50c289 --- /dev/null +++ b/server/component/planetlab/us/uvic/uvic.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR1dmljMB4XDTA4 +MDMyODAzNDUwOVoXDTEzMDMyNzAzNDUwOVowDzENMAsGA1UEAxMEdXZpYzCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuCI9XCY9lYG1PLmFQlfwOrlANpX5ygrz +EUQUQJ08FNvaCXzIek32Z5TbseLcLqE/p7jBctNmE9cEhe3Ni3mvQLbVLvdXsCv/ +wPMkEzTJLOKTafuFE7avahQqz3fR7OiyXs4hcDDycBcrdizqW5F3kLSqLaPrOEID +zR7KEMEBlI8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA63jNDHL8vfZsIDVKsujbH +wjkc8KXccaMSCSwHd50xjafgVgfLxj3sJNnMMc30ydU1pZuV2EQWFuAPy946dmZR +2HJfNT1v/gItuq+XniiifednvQcjubzGwXMZx1QQAK8BiN16vdBMTfsHzegBhNFK +zz9WyWE69mfjSui9B3vmNw== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/uvic/uvic.pkey b/server/component/planetlab/us/uvic/uvic.pkey new file mode 100644 index 00000000..cc77e19c --- /dev/null +++ b/server/component/planetlab/us/uvic/uvic.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC4Ij1cJj2VgbU8uYVCV/A6uUA2lfnKCvMRRBRAnTwU29oJfMh6 +TfZnlNux4twuoT+nuMFy02YT1wSF7c2Lea9AttUu91ewK//A8yQTNMks4pNp+4UT +tq9qFCrPd9Hs6LJeziFwMPJwFyt2LOpbkXeQtKoto+s4QgPNHsoQwQGUjwIDAQAB +AoGAJm7HHefBbOZA3ObgIKPYOXmXJI2TMI+ugkkSbRYkhzoIPXi1I4oIR0BzxqJS +UM1JSwmuHvhu0u9LO2USRO1mHaIofZcRJRR3WppHHnY8DcwVvpa6evFx2r/un1Jp +guVgE5le6YSU7HmQBAoESr5a3xAyLGzl2GUxAnnuqoAriGkCQQDbH7Kgx/Hh0qb+ +aq/REaKzc4qI3FmP7URxRZtJtZ3E+WGKH2h6hJWGazDAEAQkSp2Y8bycKA4UuGx9 +003yex39AkEA1x8ZHtVvPuINvfhGX/upP4IwGZNEdI9GyMRkWfZn5sAQYkKd9vMV +YIOHxMTXuSCla/vgyzvLhEX5n50gqiScewJAJ9dflzRDmpe+nUuwpAbc2lwLuE64 +Sh8N7rqFPaW0BfiB76c+S+iHd2VN+93totueRAzQCmSOCt5te4NMDOat0QJAS7qv +3jHmwq1Thx/CroFqeGf9RNOaEqppkb3JUf4zX4EXg2/OKiQyz1IeVn+xLYO3mEcI +QKNhJsR3duAaoqrWxwJBAIPYAStgJUm/2wkOkIPHxWSIBQ6U/aD5Q9npDPFSmvP9 +xCqNQG+O1dTsU8TEi8vOnhyY9C4lC4tXiamcgv+MUkY= +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert b/server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert new file mode 100644 index 00000000..51baea90 --- /dev/null +++ b/server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOdXdhY2NyZXRp +dmVkc2wwHhcNMDgwMzI4MDM0NTA4WhcNMTMwMzI3MDM0NTA4WjAZMRcwFQYDVQQD +Ew51d2FjY3JldGl2ZWRzbDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3I0H +6dgxxwZDSvdZDZv2a2el8ocBakKLYb5NlwPRZnQTbezEzIZ9iyvHsTIiNyhK1NNS +5KrF708tMiUoGCmSw30ToJ+El7gQgPTcEwVxogDG33wtFss+9ODxneq9FKaDkf+X +1F7ufHmApIoB2q0CVVUrIT0vJ8n8ElDC9sISnYUCAwEAATANBgkqhkiG9w0BAQQF +AAOBgQDWaA3VNsnt+TpeTeZ2iMgFFGJrX4onRp1m2xOdWrXcBvmBcjIAFBBGCg0p +RSP5dC6ggShFHFU3K1uAMS9ng3/uqdT1APtgaPA/svd9jcK6CtdSgO2enUCaG2v1 +AN0jb5TVvt39ZIEQDvyDhWHcF+PzhcvnlrHHlHXGvjmL8rc/pg== +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey b/server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey new file mode 100644 index 00000000..f8fce1e6 --- /dev/null +++ b/server/component/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDcjQfp2DHHBkNK91kNm/ZrZ6XyhwFqQothvk2XA9FmdBNt7MTM +hn2LK8exMiI3KErU01LkqsXvTy0yJSgYKZLDfROgn4SXuBCA9NwTBXGiAMbffC0W +yz704PGd6r0UpoOR/5fUXu58eYCkigHarQJVVSshPS8nyfwSUML2whKdhQIDAQAB +AoGAXJUbSE/H/Yskfni8uljJJacZ42hG8MtEZWCUg5tHsOFzMobcyhp+4wgayMiJ +0muolhSrzG/frSioiU9NuG7jO0NTClNiGm1TApFIVhlbdARLMYFMAqD6pc33RbMP +/fJmFaF+vE0HoLNV9kR+ppd17yPNY6plYecc6uCXy5xZmeECQQD1PM+cA+lirnMW +9T80fGbT5F+XxEmCeb6LlT6Oc4JyNcRncNHQxiT7tmQZ8v9x37u7DQyuB5DZQRof +vvXjeO+ZAkEA5jre/IUHQs4xX5UJ+fFk1BmsSJhyMbDC1Fm5POmdMxptife0ERNS +zULTN2Ob3qTqhiJKkc5lFj3xUcFFz8jAzQJBALb9Z1TdPlraHRq2aTE62mel8waF ++uwW9+2jsYgN/PpH0IP3FTiZgaMpV8xdG+rWrXhHpnx9PMI/58Rkc4oHBZECQHcO +7K+Dj6yxeoDmTuFtPuocWKa2Bx/BPA+aUpu4Z628tfbKHNlTt9cj/pw/K6Tofctd +wlhCdq4Y3Emd/B8mvuUCQQCi1PqTl8tU7FpmDSUhFboPaGvTNbUvj3VPjJPCDPwR +ayjY/z6+6D2KFyWUt7YqVtKR8ewvgoNPs5W2Uumm9K7w +-----END RSA PRIVATE KEY----- diff --git a/server/component/planetlab/us/vanderbilt/vanderbilt.cert b/server/component/planetlab/us/vanderbilt/vanderbilt.cert new file mode 100644 index 00000000..df04ef7c --- /dev/null +++ b/server/component/planetlab/us/vanderbilt/vanderbilt.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKdmFuZGVyYmls +dDAeFw0wODAzMjgwMzQ1MDhaFw0xMzAzMjcwMzQ1MDhaMBUxEzARBgNVBAMTCnZh +bmRlcmJpbHQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOMTJnlQpJbwFUzk +o+SP7asm3Ete9iZ2G3PfJFHblWyvmX8AM/tFIsrNqJPqlFGwvhhMnd+r6HnF/u8V +WeRFKCt4hzNR3KY34fGaoQc/kAtQAfnlX4xBvb1iZzJi49gMiuz6RuK5XhP/RL9D +4qcc3MhxlHS5QPaYv5naxgnJXM35AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEABXRt +tVRPHLlhs9CMcUI3cttD77m0CilVurmRNCPW1vFj1u0aDBXynlVjMwV2SUi6J3+e +KcsuA/Qtks9Fx4ScNqwsNu7wYn0drfG5/NR2e27ZSRtW9d78dTJvKq6RayNnUdDd +ubXd6Nj30By1W/E2f+pddGmIRYC7TyDW1hDgjqI= +-----END CERTIFICATE----- diff --git a/server/component/planetlab/us/vanderbilt/vanderbilt.pkey b/server/component/planetlab/us/vanderbilt/vanderbilt.pkey new file mode 100644 index 00000000..bb0ac06c --- /dev/null +++ b/server/component/planetlab/us/vanderbilt/vanderbilt.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDjEyZ5UKSW8BVM5KPkj+2rJtxLXvYmdhtz3yRR25Vsr5l/ADP7 +RSLKzaiT6pRRsL4YTJ3fq+h5xf7vFVnkRSgreIczUdymN+HxmqEHP5ALUAH55V+M +Qb29YmcyYuPYDIrs+kbiuV4T/0S/Q+KnHNzIcZR0uUD2mL+Z2sYJyVzN+QIDAQAB +AoGAFSqq0nIm9X7prWI+uMaF1AdqT4hJj6pAwttRCmRamGgB+emt7sUyCg+DoE4k +hzzfa2pw6PGgWQGQ0v59g57CsKW3eXD8huwyTssFRvVJEeWUuB6Na+9dUqMkqUSZ +3qmiZE//ToCYoHtHyjCzKZWLzXZl4MQCjKkBT6TkaVL+gIECQQDxZjbXf8+NV3qv +jY/C6vfA6Kxp5ruUQmpxtJhqxLhjcaDlonufkMN2jeJXYIzSN4pHTsKKblsAFVTG +2U2KXymRAkEA8M8jbkDZfESGXhp3QPhrJ+bnLgzN9nhZP5fOgfFPXqFzNDaBgVhF +A5HMhLGci7VVijioFqFMiiAJ5h6tb7vp6QJAWKQg5TbgftUtjsMblAZ13VdS4DxC +iulsbr5S7Xm4/4MdAtWMMYaVz7W/9DfW3eZZF2AbXXuyXLB4heALchEJkQJBAIj1 +prccVxXge3OmJdFj+L4XC8EbM0FNLaWHl8I8FuJBfR5jKcEBDS98iw+lXN3w4pfc +pW1JjBi7JCYnqIj2HZECQF4WkYtF4bdzrfa1gNKtpF9dRkUZFv2XHrWmCcyLpQOy +vZbuLLaOXTNE4J06e9u9VnqJ/JNxch3Z8lxYdi0dir0= +-----END RSA PRIVATE KEY----- diff --git a/server/interface_tree_cr b/server/interface_tree_cr new file mode 100644 index 00000000..9e3a8a4e --- /dev/null +++ b/server/interface_tree_cr @@ -0,0 +1,97 @@ +planetlab |The root authority + jp |Japan authority + naist |Nara Institute of Science and Technology |http://inet-lab.naist.jp/ + nict |National Institute of Information and Communications Technology |http://www.nict.go.jp/ + osaka |Osaka University |http://www.ist.osaka-u.ac.jp + wide |WIDE Project |http://www.wide.ad.jp/ + plcolojgnsendai |PlanetLab Colo - NICT JGN2 Sendai | + plcolojgnnagoya |PlanetLab Colo - NICT JGN2 Nagoya | + plcolojgnosaka |PlanetLab Colo - NICT JGN2 Osaka | + plcolojgnokayama |PlanetLab Colo - NICT JGN2 Okayama | + plcolojgnhiroshima |PlanetLab Colo - NICT JGN2 Hiroshima | + plcolojgnkochi |PlanetLab Colo - NICT JGN2 Kochi | + plcolojgnfukuoka |PlanetLab Colo - NICT JGN2 Fukuoka | + plcolotppoznan |PlanetLab Colo - TP Poznan |http://www.tp-ir.pl/index.php?page=index&lang=en + plcolotppiotrkow |PlanetLab Colo - TP Piotrkow Trybunalski |http://www.tp-ir.pl/index.php?page=index&lang=en + plcolotpgdansk |PlanetLab Colo - TP Gdansk |http://www.tp-ir.pl/index.php?page=index&lang=en + waseda |Waseda University |http://www.waseda.jp/ + keio |Keio University |http://www.sfc.wide.ad.jp + utokyo |University of Tokyo |http://www.planet-lab-jp.org + jaist |Japan Advanced Institute of Science and Technology (JAIST) |http://www.jaist.ac.jp + us |US authority + uwaccretivedsl |University of Washington - Accretive DSL |http://www.cs.washington.edu/ + irp |Intel Research Pittsburgh |http://www.intel-research.net/pittsburgh/ + cernetneu |CERNET - Northeast University |http://www.neu.edu.cn/english/ + utxsa |University of Texas at San Antonio |http://www.utsa.edu + att |AT&T Labs--Research |http://www.research.att.com + vanderbilt |Vanderbilt University |http://www.vuse.vanderbilt.edu + uci |University of California, Irvine |http://www.ics.uci.edu/~lbao/planetlab/ + uclaee |UCLA - EE |http://cantor.ee.ucla.edu/~networks/ + ucla |University of California at Los Angeles |http://www.cs.ucla.edu/ + ccny |City College of the City University of New York |http://www.ccny.cuny.edu/cint/ + michigan |University of Michigan |http://www.eecs.umich.edu/ + columbia |Columbia University |http://www.cs.columbia.edu/ + northwestern |Northwestern University at Illinois |http://www.cs.northwestern.edu/ + rpi |Rensselaer Polytechnic Institute |http://networks.ecse.rpi.edu/ + rice |Rice University |http://www.cs.rice.edu/ + brown |Brown University |http://cs.brown.edu/ + uvic |University of Victoria |http://www.uvic.ca + stevens |Stevens Institute of Technology |http://www.cs.stevens-tech.edu + colorado |University of Colorado at Boulder |http://serl.cs.colorado.edu + orbit |Orbit |http://www.orbit-lab.org + bu |Boston University |http://www.cs.bu.edu/ + aub |American University of Beirut |http://www.aub.edu.lb + jhuis |Johns Hopkins Information Security Institute |http://www.cs.jhu.edu/ + ucd |University of California, Davis |http://engineering.ucdavis.edu + utah |University of Utah |http://www.cs.utah.edu/ + tky |new site for testing purposes |tokyo.com + eu |Europe authority + eurecom |Eurecom Institute |http://www.eurecom.fr + inria |INRIA Sophia Antipolis |http://www-sop.inria.fr/ + ethzcs |ETH Zuerich - Computer Science |http://www.inf.ethz.ch + basel |University of Basel, Switzerland |http://cn.cs.unibas.ch/ + enst |Ecole Nationale Superieure des Telecommunications |http://www.enst.fr + unizh |University of Zurich, Institut fur Informatik |http://www.csg.uzh.ch/ + moscowstate |Moscow State University |http://www.cs.msu.ru/ + msuchem |Moscow State University, Chemistry |http://lcc.chem.msu.ru + hawh |HAW Hamburg |http://www.haw-hamburg.de + bamberg |University of Bamberg |http://www.uni-bamberg.de/wiai/minf + budapest |Budapest University of Technology and Economics |http://www.tmit.bme.hu/home!eng + upb |University of Paderborn |http://www.uni-paderborn.de + tcd |Trinity College Dublin |http://www.cs.tcd.ie + irisa |IRISA |http://www.irisa.fr + cesnet |CESNET - Czech Education and Research Network |http://www.ces.net/about/ + aston |Aston University |http://www.aston.ac.uk/~pengx1/DSN-project + univie |University of Vienna |http://www.cs.univie.ac.at + lisbon |University of Lisbon |http://lasige.di.fc.ul.pt + konstanz |University of Konstanz |http://www.uni-konstanz.de + fokus |Fraunhofer FOKUS - Research Institute for Open Communication Systems |http://www.fokus.fraunhofer.de + snummlab |Seoul National University - MMLAB |http://mmlab.snu.ac.kr/ + qub |Queen's University Belfast |http://www.qub.ac.uk/schools/eeecs/ + sydney |University of Technology at Sydney |http://www.it.uts.edu.au/ + canterbury |University of Canterbury, New Zealand |http://www.cosc.canterbury.ac.nz/ + fing |Facultad de Ingenieria - Universidad de la Republica |http://www.fing.edu.uy + haifa |Haifa University |http://www.haifa.ac.il + iitr |Indian Institute of Technology Roorkee |http://www.iitr.ac.in + tau |Tel-Aviv University |http://www.cs.tau.ac.il + canarie |CANARIE |http://www.canarie.ca + ntu |National Taiwan University, Department of Information Management |http://www.im.ntu.edu.tw/index_e.htm + equinixsi |Equinix - Singapore | + icavite |Intel - Cavite | + ihaifa |Intel - Haifa | + ileixlip |Intel - Leixlip | + ula |Centro Nacional de Calculo Cientifico Universidad de Los Andes |http://www.cecalc.ula.ve/ + canariecalgary |Canarie - Calgary |http://www.canarie.ca + canarieottawa |Canarie - Ottawa |http://www.canarie.ca + canariehalifax |Canarie - Halifax |http://www.canarie.ca + canariemontreal |Canarie - Montreal |http://www.canarie.ca + canarietoronto |Canarie - Toronto |http://www.canarie.ca + canariewinnipeg |Canarie - Winnipeg |http://www.canarie.ca + unioslo |University of Oslo |http://www.ifi.uio.no/dmms + buaa |BeiHang University |http://www.nlsde.buaa.edu.cn + cernetxjtu |CERNET - XiAn Jiao Tong University |http://www.xjtu.edu.cn/en/ + cernetsdu |CERNET - Shandong University |http://www.sdu.edu.cn/english/ + cernetpku |CERNET - Peiking University |http://en.pku.edu.cn/ + cernetbuaa |CERNET - Beihang University |http://ev.buaa.edu.cn/ + cernetzju |CERNET - Zhejiang University |http://www.zju.edu.cn/english/ + cernetxmu |CERNET - Xiamen University |http://www.xmu.edu.cn/english/index.htm \ No newline at end of file diff --git a/server/interface_tree_cr_dict b/server/interface_tree_cr_dict new file mode 100644 index 00000000..17a90283 --- /dev/null +++ b/server/interface_tree_cr_dict @@ -0,0 +1 @@ +{'info': {'node_data': {'key_info': {'acc_file': 'acc_file', 'id_file': 'planetlab.cert', 'cred_file': 'cred_file', 'id_key_file': 'planetlab.pkey', 'last_update': '', 'folder': 'component/planetlab'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'planetlab', 'name': 'planetlab'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'jp.cert', 'cred_file': '', 'id_key_file': 'jp.pkey', 'last_update': '', 'folder': 'component/planetlab/jp'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'jp', 'name': 'planetlab.jp'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'naist.cert', 'cred_file': '', 'id_key_file': 'naist.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/naist'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$naist_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'naist', 'name': 'planetlab.jp.naist'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'nict.cert', 'cred_file': '', 'id_key_file': 'nict.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/nict'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$nict_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'nict', 'name': 'planetlab.jp.nict'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'osaka.cert', 'cred_file': '', 'id_key_file': 'osaka.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/osaka'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$osaka_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'osaka', 'name': 'planetlab.jp.osaka'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'wide.cert', 'cred_file': '', 'id_key_file': 'wide.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/wide'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$wide_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'wide', 'name': 'planetlab.jp.wide'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnsendai.cert', 'cred_file': '', 'id_key_file': 'plcolojgnsendai.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnsendai'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnsendai_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnsendai', 'name': 'planetlab.jp.plcolojgnsendai'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnnagoya.cert', 'cred_file': '', 'id_key_file': 'plcolojgnnagoya.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnnagoya'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnnagoya_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnnagoya', 'name': 'planetlab.jp.plcolojgnnagoya'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnosaka.cert', 'cred_file': '', 'id_key_file': 'plcolojgnosaka.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnosaka'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnosaka_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnosaka', 'name': 'planetlab.jp.plcolojgnosaka'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnokayama.cert', 'cred_file': '', 'id_key_file': 'plcolojgnokayama.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnokayama'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnokayama_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnokayama', 'name': 'planetlab.jp.plcolojgnokayama'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnhiroshima.cert', 'cred_file': '', 'id_key_file': 'plcolojgnhiroshima.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnhiroshima'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnhiroshima_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnhiroshima', 'name': 'planetlab.jp.plcolojgnhiroshima'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnkochi.cert', 'cred_file': '', 'id_key_file': 'plcolojgnkochi.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnkochi'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnkochi_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnkochi', 'name': 'planetlab.jp.plcolojgnkochi'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnfukuoka.cert', 'cred_file': '', 'id_key_file': 'plcolojgnfukuoka.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolojgnfukuoka'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnfukuoka_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnfukuoka', 'name': 'planetlab.jp.plcolojgnfukuoka'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolotppoznan.cert', 'cred_file': '', 'id_key_file': 'plcolotppoznan.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolotppoznan'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolotppoznan_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolotppoznan', 'name': 'planetlab.jp.plcolotppoznan'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolotppiotrkow.cert', 'cred_file': '', 'id_key_file': 'plcolotppiotrkow.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolotppiotrkow'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolotppiotrkow_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolotppiotrkow', 'name': 'planetlab.jp.plcolotppiotrkow'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolotpgdansk.cert', 'cred_file': '', 'id_key_file': 'plcolotpgdansk.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/plcolotpgdansk'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolotpgdansk_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolotpgdansk', 'name': 'planetlab.jp.plcolotpgdansk'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'waseda.cert', 'cred_file': '', 'id_key_file': 'waseda.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/waseda'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$waseda_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'waseda', 'name': 'planetlab.jp.waseda'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'keio.cert', 'cred_file': '', 'id_key_file': 'keio.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/keio'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$keio_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'keio', 'name': 'planetlab.jp.keio'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'utokyo.cert', 'cred_file': '', 'id_key_file': 'utokyo.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/utokyo'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$utokyo_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'utokyo', 'name': 'planetlab.jp.utokyo'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'jaist.cert', 'cred_file': '', 'id_key_file': 'jaist.pkey', 'last_update': '', 'folder': 'component/planetlab/jp/jaist'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$jaist_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'jaist', 'name': 'planetlab.jp.jaist'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'us.cert', 'cred_file': '', 'id_key_file': 'us.pkey', 'last_update': '', 'folder': 'component/planetlab/us'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'us', 'name': 'planetlab.us'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uwaccretivedsl.cert', 'cred_file': '', 'id_key_file': 'uwaccretivedsl.pkey', 'last_update': '', 'folder': 'component/planetlab/us/uwaccretivedsl'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uwaccretivedsl_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uwaccretivedsl', 'name': 'planetlab.us.uwaccretivedsl'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'irp.cert', 'cred_file': '', 'id_key_file': 'irp.pkey', 'last_update': '', 'folder': 'component/planetlab/us/irp'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$irp_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'irp', 'name': 'planetlab.us.irp'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetneu.cert', 'cred_file': '', 'id_key_file': 'cernetneu.pkey', 'last_update': '', 'folder': 'component/planetlab/us/cernetneu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$cernetneu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetneu', 'name': 'planetlab.us.cernetneu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'utxsa.cert', 'cred_file': '', 'id_key_file': 'utxsa.pkey', 'last_update': '', 'folder': 'component/planetlab/us/utxsa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$utxsa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'utxsa', 'name': 'planetlab.us.utxsa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'att.cert', 'cred_file': '', 'id_key_file': 'att.pkey', 'last_update': '', 'folder': 'component/planetlab/us/att'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$att_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'att', 'name': 'planetlab.us.att'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'vanderbilt.cert', 'cred_file': '', 'id_key_file': 'vanderbilt.pkey', 'last_update': '', 'folder': 'component/planetlab/us/vanderbilt'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$vanderbilt_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'vanderbilt', 'name': 'planetlab.us.vanderbilt'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uci.cert', 'cred_file': '', 'id_key_file': 'uci.pkey', 'last_update': '', 'folder': 'component/planetlab/us/uci'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uci_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uci', 'name': 'planetlab.us.uci'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uclaee.cert', 'cred_file': '', 'id_key_file': 'uclaee.pkey', 'last_update': '', 'folder': 'component/planetlab/us/uclaee'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uclaee_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uclaee', 'name': 'planetlab.us.uclaee'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ucla.cert', 'cred_file': '', 'id_key_file': 'ucla.pkey', 'last_update': '', 'folder': 'component/planetlab/us/ucla'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$ucla_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ucla', 'name': 'planetlab.us.ucla'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ccny.cert', 'cred_file': '', 'id_key_file': 'ccny.pkey', 'last_update': '', 'folder': 'component/planetlab/us/ccny'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$ccny_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ccny', 'name': 'planetlab.us.ccny'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'michigan.cert', 'cred_file': '', 'id_key_file': 'michigan.pkey', 'last_update': '', 'folder': 'component/planetlab/us/michigan'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$michigan_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'michigan', 'name': 'planetlab.us.michigan'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'columbia.cert', 'cred_file': '', 'id_key_file': 'columbia.pkey', 'last_update': '', 'folder': 'component/planetlab/us/columbia'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$columbia_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'columbia', 'name': 'planetlab.us.columbia'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'northwestern.cert', 'cred_file': '', 'id_key_file': 'northwestern.pkey', 'last_update': '', 'folder': 'component/planetlab/us/northwestern'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$northwestern_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'northwestern', 'name': 'planetlab.us.northwestern'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'rpi.cert', 'cred_file': '', 'id_key_file': 'rpi.pkey', 'last_update': '', 'folder': 'component/planetlab/us/rpi'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$rpi_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'rpi', 'name': 'planetlab.us.rpi'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'rice.cert', 'cred_file': '', 'id_key_file': 'rice.pkey', 'last_update': '', 'folder': 'component/planetlab/us/rice'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$rice_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'rice', 'name': 'planetlab.us.rice'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'brown.cert', 'cred_file': '', 'id_key_file': 'brown.pkey', 'last_update': '', 'folder': 'component/planetlab/us/brown'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$brown_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'brown', 'name': 'planetlab.us.brown'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uvic.cert', 'cred_file': '', 'id_key_file': 'uvic.pkey', 'last_update': '', 'folder': 'component/planetlab/us/uvic'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uvic_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uvic', 'name': 'planetlab.us.uvic'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'stevens.cert', 'cred_file': '', 'id_key_file': 'stevens.pkey', 'last_update': '', 'folder': 'component/planetlab/us/stevens'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$stevens_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'stevens', 'name': 'planetlab.us.stevens'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'colorado.cert', 'cred_file': '', 'id_key_file': 'colorado.pkey', 'last_update': '', 'folder': 'component/planetlab/us/colorado'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$colorado_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'colorado', 'name': 'planetlab.us.colorado'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'orbit.cert', 'cred_file': '', 'id_key_file': 'orbit.pkey', 'last_update': '', 'folder': 'component/planetlab/us/orbit'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$orbit_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'orbit', 'name': 'planetlab.us.orbit'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'bu.cert', 'cred_file': '', 'id_key_file': 'bu.pkey', 'last_update': '', 'folder': 'component/planetlab/us/bu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$bu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'bu', 'name': 'planetlab.us.bu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'aub.cert', 'cred_file': '', 'id_key_file': 'aub.pkey', 'last_update': '', 'folder': 'component/planetlab/us/aub'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$aub_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'aub', 'name': 'planetlab.us.aub'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'jhuis.cert', 'cred_file': '', 'id_key_file': 'jhuis.pkey', 'last_update': '', 'folder': 'component/planetlab/us/jhuis'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$jhuis_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'jhuis', 'name': 'planetlab.us.jhuis'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ucd.cert', 'cred_file': '', 'id_key_file': 'ucd.pkey', 'last_update': '', 'folder': 'component/planetlab/us/ucd'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$ucd_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ucd', 'name': 'planetlab.us.ucd'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'utah.cert', 'cred_file': '', 'id_key_file': 'utah.pkey', 'last_update': '', 'folder': 'component/planetlab/us/utah'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$utah_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'utah', 'name': 'planetlab.us.utah'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tky.cert', 'cred_file': '', 'id_key_file': 'tky.pkey', 'last_update': '', 'folder': 'component/planetlab/us/tky'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$tky_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tky', 'name': 'planetlab.us.tky'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'eu.cert', 'cred_file': '', 'id_key_file': 'eu.pkey', 'last_update': '', 'folder': 'component/planetlab/eu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'eu', 'name': 'planetlab.eu'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'eurecom.cert', 'cred_file': '', 'id_key_file': 'eurecom.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/eurecom'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$eurecom_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'eurecom', 'name': 'planetlab.eu.eurecom'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'inria.cert', 'cred_file': '', 'id_key_file': 'inria.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/inria'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$inria_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'inria', 'name': 'planetlab.eu.inria'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ethzcs.cert', 'cred_file': '', 'id_key_file': 'ethzcs.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/ethzcs'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$ethzcs_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ethzcs', 'name': 'planetlab.eu.ethzcs'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'basel.cert', 'cred_file': '', 'id_key_file': 'basel.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/basel'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$basel_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'basel', 'name': 'planetlab.eu.basel'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'enst.cert', 'cred_file': '', 'id_key_file': 'enst.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/enst'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$enst_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'enst', 'name': 'planetlab.eu.enst'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'unizh.cert', 'cred_file': '', 'id_key_file': 'unizh.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/unizh'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$unizh_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'unizh', 'name': 'planetlab.eu.unizh'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'moscowstate.cert', 'cred_file': '', 'id_key_file': 'moscowstate.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/moscowstate'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$moscowstate_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'moscowstate', 'name': 'planetlab.eu.moscowstate'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'msuchem.cert', 'cred_file': '', 'id_key_file': 'msuchem.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/msuchem'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$msuchem_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'msuchem', 'name': 'planetlab.eu.msuchem'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'hawh.cert', 'cred_file': '', 'id_key_file': 'hawh.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/hawh'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$hawh_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'hawh', 'name': 'planetlab.eu.hawh'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'bamberg.cert', 'cred_file': '', 'id_key_file': 'bamberg.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/bamberg'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$bamberg_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'bamberg', 'name': 'planetlab.eu.bamberg'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'budapest.cert', 'cred_file': '', 'id_key_file': 'budapest.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/budapest'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$budapest_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'budapest', 'name': 'planetlab.eu.budapest'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'upb.cert', 'cred_file': '', 'id_key_file': 'upb.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/upb'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$upb_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'upb', 'name': 'planetlab.eu.upb'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tcd.cert', 'cred_file': '', 'id_key_file': 'tcd.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/tcd'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$tcd_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tcd', 'name': 'planetlab.eu.tcd'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'irisa.cert', 'cred_file': '', 'id_key_file': 'irisa.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/irisa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$irisa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'irisa', 'name': 'planetlab.eu.irisa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cesnet.cert', 'cred_file': '', 'id_key_file': 'cesnet.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/cesnet'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$cesnet_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cesnet', 'name': 'planetlab.eu.cesnet'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'aston.cert', 'cred_file': '', 'id_key_file': 'aston.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/aston'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$aston_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'aston', 'name': 'planetlab.eu.aston'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'univie.cert', 'cred_file': '', 'id_key_file': 'univie.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/univie'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$univie_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'univie', 'name': 'planetlab.eu.univie'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'lisbon.cert', 'cred_file': '', 'id_key_file': 'lisbon.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/lisbon'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$lisbon_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'lisbon', 'name': 'planetlab.eu.lisbon'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'konstanz.cert', 'cred_file': '', 'id_key_file': 'konstanz.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/konstanz'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$konstanz_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'konstanz', 'name': 'planetlab.eu.konstanz'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'fokus.cert', 'cred_file': '', 'id_key_file': 'fokus.pkey', 'last_update': '', 'folder': 'component/planetlab/eu/fokus'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$fokus_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'fokus', 'name': 'planetlab.eu.fokus'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'snummlab.cert', 'cred_file': '', 'id_key_file': 'snummlab.pkey', 'last_update': '', 'folder': 'component/planetlab/snummlab'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$snummlab_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'snummlab', 'name': 'planetlab.snummlab'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'qub.cert', 'cred_file': '', 'id_key_file': 'qub.pkey', 'last_update': '', 'folder': 'component/planetlab/qub'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$qub_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'qub', 'name': 'planetlab.qub'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'sydney.cert', 'cred_file': '', 'id_key_file': 'sydney.pkey', 'last_update': '', 'folder': 'component/planetlab/sydney'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$sydney_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'sydney', 'name': 'planetlab.sydney'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canterbury.cert', 'cred_file': '', 'id_key_file': 'canterbury.pkey', 'last_update': '', 'folder': 'component/planetlab/canterbury'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canterbury_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canterbury', 'name': 'planetlab.canterbury'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'fing.cert', 'cred_file': '', 'id_key_file': 'fing.pkey', 'last_update': '', 'folder': 'component/planetlab/fing'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$fing_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'fing', 'name': 'planetlab.fing'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'haifa.cert', 'cred_file': '', 'id_key_file': 'haifa.pkey', 'last_update': '', 'folder': 'component/planetlab/haifa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$haifa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'haifa', 'name': 'planetlab.haifa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'iitr.cert', 'cred_file': '', 'id_key_file': 'iitr.pkey', 'last_update': '', 'folder': 'component/planetlab/iitr'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$iitr_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'iitr', 'name': 'planetlab.iitr'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tau.cert', 'cred_file': '', 'id_key_file': 'tau.pkey', 'last_update': '', 'folder': 'component/planetlab/tau'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$tau_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tau', 'name': 'planetlab.tau'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canarie.cert', 'cred_file': '', 'id_key_file': 'canarie.pkey', 'last_update': '', 'folder': 'component/planetlab/canarie'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canarie_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canarie', 'name': 'planetlab.canarie'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ntu.cert', 'cred_file': '', 'id_key_file': 'ntu.pkey', 'last_update': '', 'folder': 'component/planetlab/ntu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ntu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ntu', 'name': 'planetlab.ntu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'equinixsi.cert', 'cred_file': '', 'id_key_file': 'equinixsi.pkey', 'last_update': '', 'folder': 'component/planetlab/equinixsi'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$equinixsi_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'equinixsi', 'name': 'planetlab.equinixsi'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'icavite.cert', 'cred_file': '', 'id_key_file': 'icavite.pkey', 'last_update': '', 'folder': 'component/planetlab/icavite'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$icavite_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'icavite', 'name': 'planetlab.icavite'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ihaifa.cert', 'cred_file': '', 'id_key_file': 'ihaifa.pkey', 'last_update': '', 'folder': 'component/planetlab/ihaifa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ihaifa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ihaifa', 'name': 'planetlab.ihaifa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ileixlip.cert', 'cred_file': '', 'id_key_file': 'ileixlip.pkey', 'last_update': '', 'folder': 'component/planetlab/ileixlip'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ileixlip_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ileixlip', 'name': 'planetlab.ileixlip'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ula.cert', 'cred_file': '', 'id_key_file': 'ula.pkey', 'last_update': '', 'folder': 'component/planetlab/ula'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ula_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ula', 'name': 'planetlab.ula'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariecalgary.cert', 'cred_file': '', 'id_key_file': 'canariecalgary.pkey', 'last_update': '', 'folder': 'component/planetlab/canariecalgary'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariecalgary_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariecalgary', 'name': 'planetlab.canariecalgary'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canarieottawa.cert', 'cred_file': '', 'id_key_file': 'canarieottawa.pkey', 'last_update': '', 'folder': 'component/planetlab/canarieottawa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canarieottawa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canarieottawa', 'name': 'planetlab.canarieottawa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariehalifax.cert', 'cred_file': '', 'id_key_file': 'canariehalifax.pkey', 'last_update': '', 'folder': 'component/planetlab/canariehalifax'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariehalifax_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariehalifax', 'name': 'planetlab.canariehalifax'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariemontreal.cert', 'cred_file': '', 'id_key_file': 'canariemontreal.pkey', 'last_update': '', 'folder': 'component/planetlab/canariemontreal'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariemontreal_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariemontreal', 'name': 'planetlab.canariemontreal'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canarietoronto.cert', 'cred_file': '', 'id_key_file': 'canarietoronto.pkey', 'last_update': '', 'folder': 'component/planetlab/canarietoronto'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canarietoronto_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canarietoronto', 'name': 'planetlab.canarietoronto'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariewinnipeg.cert', 'cred_file': '', 'id_key_file': 'canariewinnipeg.pkey', 'last_update': '', 'folder': 'component/planetlab/canariewinnipeg'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariewinnipeg_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariewinnipeg', 'name': 'planetlab.canariewinnipeg'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'unioslo.cert', 'cred_file': '', 'id_key_file': 'unioslo.pkey', 'last_update': '', 'folder': 'component/planetlab/unioslo'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$unioslo_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'unioslo', 'name': 'planetlab.unioslo'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'buaa.cert', 'cred_file': '', 'id_key_file': 'buaa.pkey', 'last_update': '', 'folder': 'component/planetlab/buaa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$buaa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'buaa', 'name': 'planetlab.buaa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetxjtu.cert', 'cred_file': '', 'id_key_file': 'cernetxjtu.pkey', 'last_update': '', 'folder': 'component/planetlab/cernetxjtu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetxjtu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetxjtu', 'name': 'planetlab.cernetxjtu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetsdu.cert', 'cred_file': '', 'id_key_file': 'cernetsdu.pkey', 'last_update': '', 'folder': 'component/planetlab/cernetsdu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetsdu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetsdu', 'name': 'planetlab.cernetsdu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetpku.cert', 'cred_file': '', 'id_key_file': 'cernetpku.pkey', 'last_update': '', 'folder': 'component/planetlab/cernetpku'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetpku_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetpku', 'name': 'planetlab.cernetpku'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetbuaa.cert', 'cred_file': '', 'id_key_file': 'cernetbuaa.pkey', 'last_update': '', 'folder': 'component/planetlab/cernetbuaa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetbuaa_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetbuaa', 'name': 'planetlab.cernetbuaa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetzju.cert', 'cred_file': '', 'id_key_file': 'cernetzju.pkey', 'last_update': '', 'folder': 'component/planetlab/cernetzju'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetzju_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetzju', 'name': 'planetlab.cernetzju'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetxmu.cert', 'cred_file': '', 'id_key_file': 'cernetxmu.pkey', 'last_update': '', 'folder': 'component/planetlab/cernetxmu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetxmu_crr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetxmu', 'name': 'planetlab.cernetxmu'}, 'children': []}]} \ No newline at end of file diff --git a/server/interface_tree_sr b/server/interface_tree_sr new file mode 100644 index 00000000..9e3a8a4e --- /dev/null +++ b/server/interface_tree_sr @@ -0,0 +1,97 @@ +planetlab |The root authority + jp |Japan authority + naist |Nara Institute of Science and Technology |http://inet-lab.naist.jp/ + nict |National Institute of Information and Communications Technology |http://www.nict.go.jp/ + osaka |Osaka University |http://www.ist.osaka-u.ac.jp + wide |WIDE Project |http://www.wide.ad.jp/ + plcolojgnsendai |PlanetLab Colo - NICT JGN2 Sendai | + plcolojgnnagoya |PlanetLab Colo - NICT JGN2 Nagoya | + plcolojgnosaka |PlanetLab Colo - NICT JGN2 Osaka | + plcolojgnokayama |PlanetLab Colo - NICT JGN2 Okayama | + plcolojgnhiroshima |PlanetLab Colo - NICT JGN2 Hiroshima | + plcolojgnkochi |PlanetLab Colo - NICT JGN2 Kochi | + plcolojgnfukuoka |PlanetLab Colo - NICT JGN2 Fukuoka | + plcolotppoznan |PlanetLab Colo - TP Poznan |http://www.tp-ir.pl/index.php?page=index&lang=en + plcolotppiotrkow |PlanetLab Colo - TP Piotrkow Trybunalski |http://www.tp-ir.pl/index.php?page=index&lang=en + plcolotpgdansk |PlanetLab Colo - TP Gdansk |http://www.tp-ir.pl/index.php?page=index&lang=en + waseda |Waseda University |http://www.waseda.jp/ + keio |Keio University |http://www.sfc.wide.ad.jp + utokyo |University of Tokyo |http://www.planet-lab-jp.org + jaist |Japan Advanced Institute of Science and Technology (JAIST) |http://www.jaist.ac.jp + us |US authority + uwaccretivedsl |University of Washington - Accretive DSL |http://www.cs.washington.edu/ + irp |Intel Research Pittsburgh |http://www.intel-research.net/pittsburgh/ + cernetneu |CERNET - Northeast University |http://www.neu.edu.cn/english/ + utxsa |University of Texas at San Antonio |http://www.utsa.edu + att |AT&T Labs--Research |http://www.research.att.com + vanderbilt |Vanderbilt University |http://www.vuse.vanderbilt.edu + uci |University of California, Irvine |http://www.ics.uci.edu/~lbao/planetlab/ + uclaee |UCLA - EE |http://cantor.ee.ucla.edu/~networks/ + ucla |University of California at Los Angeles |http://www.cs.ucla.edu/ + ccny |City College of the City University of New York |http://www.ccny.cuny.edu/cint/ + michigan |University of Michigan |http://www.eecs.umich.edu/ + columbia |Columbia University |http://www.cs.columbia.edu/ + northwestern |Northwestern University at Illinois |http://www.cs.northwestern.edu/ + rpi |Rensselaer Polytechnic Institute |http://networks.ecse.rpi.edu/ + rice |Rice University |http://www.cs.rice.edu/ + brown |Brown University |http://cs.brown.edu/ + uvic |University of Victoria |http://www.uvic.ca + stevens |Stevens Institute of Technology |http://www.cs.stevens-tech.edu + colorado |University of Colorado at Boulder |http://serl.cs.colorado.edu + orbit |Orbit |http://www.orbit-lab.org + bu |Boston University |http://www.cs.bu.edu/ + aub |American University of Beirut |http://www.aub.edu.lb + jhuis |Johns Hopkins Information Security Institute |http://www.cs.jhu.edu/ + ucd |University of California, Davis |http://engineering.ucdavis.edu + utah |University of Utah |http://www.cs.utah.edu/ + tky |new site for testing purposes |tokyo.com + eu |Europe authority + eurecom |Eurecom Institute |http://www.eurecom.fr + inria |INRIA Sophia Antipolis |http://www-sop.inria.fr/ + ethzcs |ETH Zuerich - Computer Science |http://www.inf.ethz.ch + basel |University of Basel, Switzerland |http://cn.cs.unibas.ch/ + enst |Ecole Nationale Superieure des Telecommunications |http://www.enst.fr + unizh |University of Zurich, Institut fur Informatik |http://www.csg.uzh.ch/ + moscowstate |Moscow State University |http://www.cs.msu.ru/ + msuchem |Moscow State University, Chemistry |http://lcc.chem.msu.ru + hawh |HAW Hamburg |http://www.haw-hamburg.de + bamberg |University of Bamberg |http://www.uni-bamberg.de/wiai/minf + budapest |Budapest University of Technology and Economics |http://www.tmit.bme.hu/home!eng + upb |University of Paderborn |http://www.uni-paderborn.de + tcd |Trinity College Dublin |http://www.cs.tcd.ie + irisa |IRISA |http://www.irisa.fr + cesnet |CESNET - Czech Education and Research Network |http://www.ces.net/about/ + aston |Aston University |http://www.aston.ac.uk/~pengx1/DSN-project + univie |University of Vienna |http://www.cs.univie.ac.at + lisbon |University of Lisbon |http://lasige.di.fc.ul.pt + konstanz |University of Konstanz |http://www.uni-konstanz.de + fokus |Fraunhofer FOKUS - Research Institute for Open Communication Systems |http://www.fokus.fraunhofer.de + snummlab |Seoul National University - MMLAB |http://mmlab.snu.ac.kr/ + qub |Queen's University Belfast |http://www.qub.ac.uk/schools/eeecs/ + sydney |University of Technology at Sydney |http://www.it.uts.edu.au/ + canterbury |University of Canterbury, New Zealand |http://www.cosc.canterbury.ac.nz/ + fing |Facultad de Ingenieria - Universidad de la Republica |http://www.fing.edu.uy + haifa |Haifa University |http://www.haifa.ac.il + iitr |Indian Institute of Technology Roorkee |http://www.iitr.ac.in + tau |Tel-Aviv University |http://www.cs.tau.ac.il + canarie |CANARIE |http://www.canarie.ca + ntu |National Taiwan University, Department of Information Management |http://www.im.ntu.edu.tw/index_e.htm + equinixsi |Equinix - Singapore | + icavite |Intel - Cavite | + ihaifa |Intel - Haifa | + ileixlip |Intel - Leixlip | + ula |Centro Nacional de Calculo Cientifico Universidad de Los Andes |http://www.cecalc.ula.ve/ + canariecalgary |Canarie - Calgary |http://www.canarie.ca + canarieottawa |Canarie - Ottawa |http://www.canarie.ca + canariehalifax |Canarie - Halifax |http://www.canarie.ca + canariemontreal |Canarie - Montreal |http://www.canarie.ca + canarietoronto |Canarie - Toronto |http://www.canarie.ca + canariewinnipeg |Canarie - Winnipeg |http://www.canarie.ca + unioslo |University of Oslo |http://www.ifi.uio.no/dmms + buaa |BeiHang University |http://www.nlsde.buaa.edu.cn + cernetxjtu |CERNET - XiAn Jiao Tong University |http://www.xjtu.edu.cn/en/ + cernetsdu |CERNET - Shandong University |http://www.sdu.edu.cn/english/ + cernetpku |CERNET - Peiking University |http://en.pku.edu.cn/ + cernetbuaa |CERNET - Beihang University |http://ev.buaa.edu.cn/ + cernetzju |CERNET - Zhejiang University |http://www.zju.edu.cn/english/ + cernetxmu |CERNET - Xiamen University |http://www.xmu.edu.cn/english/index.htm \ No newline at end of file diff --git a/server/interface_tree_sr_dict b/server/interface_tree_sr_dict new file mode 100644 index 00000000..e8b2a036 --- /dev/null +++ b/server/interface_tree_sr_dict @@ -0,0 +1 @@ +{'info': {'node_data': {'key_info': {'acc_file': 'acc_file', 'id_file': 'planetlab.cert', 'cred_file': 'cred_file', 'id_key_file': 'planetlab.pkey', 'last_update': '', 'folder': 'slice/planetlab'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'planetlab', 'name': 'planetlab'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'jp.cert', 'cred_file': '', 'id_key_file': 'jp.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'jp', 'name': 'planetlab.jp'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'naist.cert', 'cred_file': '', 'id_key_file': 'naist.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/naist'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$naist_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'naist', 'name': 'planetlab.jp.naist'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'nict.cert', 'cred_file': '', 'id_key_file': 'nict.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/nict'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$nict_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'nict', 'name': 'planetlab.jp.nict'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'osaka.cert', 'cred_file': '', 'id_key_file': 'osaka.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/osaka'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$osaka_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'osaka', 'name': 'planetlab.jp.osaka'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tokyobranch2.cert', 'cred_file': '', 'id_key_file': 'tokyobranch2.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/osaka/tokyobranch2'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$osaka$tokyobranch2_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tokyologinbg', 'name': 'planetlab.jp.osaka.tokyobranch2'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tokyobranchty.cert', 'cred_file': '', 'id_key_file': 'tokyobranchty.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/osaka/tokyobranchty'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$osaka$tokyobranchty_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'myloginbasejj', 'name': 'planetlab.jp.osaka.tokyobranchty'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'wide.cert', 'cred_file': '', 'id_key_file': 'wide.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/wide'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$wide_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'wide', 'name': 'planetlab.jp.wide'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnsendai.cert', 'cred_file': '', 'id_key_file': 'plcolojgnsendai.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnsendai'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnsendai_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnsendai', 'name': 'planetlab.jp.plcolojgnsendai'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnnagoya.cert', 'cred_file': '', 'id_key_file': 'plcolojgnnagoya.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnnagoya'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnnagoya_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnnagoya', 'name': 'planetlab.jp.plcolojgnnagoya'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnosaka.cert', 'cred_file': '', 'id_key_file': 'plcolojgnosaka.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnosaka'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnosaka_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnosaka', 'name': 'planetlab.jp.plcolojgnosaka'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnokayama.cert', 'cred_file': '', 'id_key_file': 'plcolojgnokayama.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnokayama'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnokayama_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnokayama', 'name': 'planetlab.jp.plcolojgnokayama'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnhiroshima.cert', 'cred_file': '', 'id_key_file': 'plcolojgnhiroshima.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnhiroshima'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnhiroshima_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnhiroshima', 'name': 'planetlab.jp.plcolojgnhiroshima'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnkochi.cert', 'cred_file': '', 'id_key_file': 'plcolojgnkochi.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnkochi'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnkochi_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnkochi', 'name': 'planetlab.jp.plcolojgnkochi'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolojgnfukuoka.cert', 'cred_file': '', 'id_key_file': 'plcolojgnfukuoka.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolojgnfukuoka'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolojgnfukuoka_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolojgnfukuoka', 'name': 'planetlab.jp.plcolojgnfukuoka'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolotppoznan.cert', 'cred_file': '', 'id_key_file': 'plcolotppoznan.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolotppoznan'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolotppoznan_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolotppoznan', 'name': 'planetlab.jp.plcolotppoznan'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolotppiotrkow.cert', 'cred_file': '', 'id_key_file': 'plcolotppiotrkow.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolotppiotrkow'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolotppiotrkow_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolotppiotrkow', 'name': 'planetlab.jp.plcolotppiotrkow'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'plcolotpgdansk.cert', 'cred_file': '', 'id_key_file': 'plcolotpgdansk.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/plcolotpgdansk'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$plcolotpgdansk_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'plcolotpgdansk', 'name': 'planetlab.jp.plcolotpgdansk'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'waseda.cert', 'cred_file': '', 'id_key_file': 'waseda.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/waseda'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$waseda_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'waseda', 'name': 'planetlab.jp.waseda'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'keio.cert', 'cred_file': '', 'id_key_file': 'keio.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/keio'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$keio_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'keio', 'name': 'planetlab.jp.keio'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'utokyo.cert', 'cred_file': '', 'id_key_file': 'utokyo.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/utokyo'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$utokyo_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'utokyo', 'name': 'planetlab.jp.utokyo'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'jaist.cert', 'cred_file': '', 'id_key_file': 'jaist.pkey', 'last_update': '', 'folder': 'slice/planetlab/jp/jaist'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$jp$jaist_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'jaist', 'name': 'planetlab.jp.jaist'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'us.cert', 'cred_file': '', 'id_key_file': 'us.pkey', 'last_update': '', 'folder': 'slice/planetlab/us'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'us', 'name': 'planetlab.us'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uwaccretivedsl.cert', 'cred_file': '', 'id_key_file': 'uwaccretivedsl.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/uwaccretivedsl'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uwaccretivedsl_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uwaccretivedsl', 'name': 'planetlab.us.uwaccretivedsl'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'irp.cert', 'cred_file': '', 'id_key_file': 'irp.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/irp'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$irp_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'irp', 'name': 'planetlab.us.irp'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetneu.cert', 'cred_file': '', 'id_key_file': 'cernetneu.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/cernetneu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$cernetneu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetneu', 'name': 'planetlab.us.cernetneu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'utxsa.cert', 'cred_file': '', 'id_key_file': 'utxsa.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/utxsa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$utxsa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'utxsa', 'name': 'planetlab.us.utxsa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'att.cert', 'cred_file': '', 'id_key_file': 'att.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/att'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$att_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'att', 'name': 'planetlab.us.att'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'vanderbilt.cert', 'cred_file': '', 'id_key_file': 'vanderbilt.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/vanderbilt'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$vanderbilt_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'vanderbilt', 'name': 'planetlab.us.vanderbilt'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uci.cert', 'cred_file': '', 'id_key_file': 'uci.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/uci'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uci_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uci', 'name': 'planetlab.us.uci'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uclaee.cert', 'cred_file': '', 'id_key_file': 'uclaee.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/uclaee'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uclaee_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uclaee', 'name': 'planetlab.us.uclaee'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ucla.cert', 'cred_file': '', 'id_key_file': 'ucla.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/ucla'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$ucla_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ucla', 'name': 'planetlab.us.ucla'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ccny.cert', 'cred_file': '', 'id_key_file': 'ccny.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/ccny'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$ccny_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ccny', 'name': 'planetlab.us.ccny'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'michigan.cert', 'cred_file': '', 'id_key_file': 'michigan.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/michigan'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$michigan_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'michigan', 'name': 'planetlab.us.michigan'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'columbia.cert', 'cred_file': '', 'id_key_file': 'columbia.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/columbia'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$columbia_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'columbia', 'name': 'planetlab.us.columbia'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'northwestern.cert', 'cred_file': '', 'id_key_file': 'northwestern.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/northwestern'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$northwestern_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'northwestern', 'name': 'planetlab.us.northwestern'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'rpi.cert', 'cred_file': '', 'id_key_file': 'rpi.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/rpi'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$rpi_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'rpi', 'name': 'planetlab.us.rpi'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'rice.cert', 'cred_file': '', 'id_key_file': 'rice.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/rice'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$rice_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'rice', 'name': 'planetlab.us.rice'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'brown.cert', 'cred_file': '', 'id_key_file': 'brown.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/brown'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$brown_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'brown', 'name': 'planetlab.us.brown'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'uvic.cert', 'cred_file': '', 'id_key_file': 'uvic.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/uvic'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$uvic_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'uvic', 'name': 'planetlab.us.uvic'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'stevens.cert', 'cred_file': '', 'id_key_file': 'stevens.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/stevens'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$stevens_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'stevens', 'name': 'planetlab.us.stevens'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'colorado.cert', 'cred_file': '', 'id_key_file': 'colorado.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/colorado'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$colorado_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'colorado', 'name': 'planetlab.us.colorado'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'orbit.cert', 'cred_file': '', 'id_key_file': 'orbit.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/orbit'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$orbit_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'orbit', 'name': 'planetlab.us.orbit'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'bu.cert', 'cred_file': '', 'id_key_file': 'bu.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/bu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$bu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'bu', 'name': 'planetlab.us.bu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'aub.cert', 'cred_file': '', 'id_key_file': 'aub.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/aub'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$aub_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'aub', 'name': 'planetlab.us.aub'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'jhuis.cert', 'cred_file': '', 'id_key_file': 'jhuis.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/jhuis'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$jhuis_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'jhuis', 'name': 'planetlab.us.jhuis'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ucd.cert', 'cred_file': '', 'id_key_file': 'ucd.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/ucd'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$ucd_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ucd', 'name': 'planetlab.us.ucd'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'utah.cert', 'cred_file': '', 'id_key_file': 'utah.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/utah'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$utah_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'utah', 'name': 'planetlab.us.utah'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tky.cert', 'cred_file': '', 'id_key_file': 'tky.pkey', 'last_update': '', 'folder': 'slice/planetlab/us/tky'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$us$tky_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tky', 'name': 'planetlab.us.tky'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'eu.cert', 'cred_file': '', 'id_key_file': 'eu.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'eu', 'name': 'planetlab.eu'}, 'children': [{'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'eurecom.cert', 'cred_file': '', 'id_key_file': 'eurecom.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/eurecom'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$eurecom_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'eurecom', 'name': 'planetlab.eu.eurecom'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'inria.cert', 'cred_file': '', 'id_key_file': 'inria.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/inria'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$inria_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'inria', 'name': 'planetlab.eu.inria'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ethzcs.cert', 'cred_file': '', 'id_key_file': 'ethzcs.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/ethzcs'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$ethzcs_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ethzcs', 'name': 'planetlab.eu.ethzcs'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'basel.cert', 'cred_file': '', 'id_key_file': 'basel.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/basel'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$basel_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'basel', 'name': 'planetlab.eu.basel'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'enst.cert', 'cred_file': '', 'id_key_file': 'enst.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/enst'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$enst_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'enst', 'name': 'planetlab.eu.enst'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'unizh.cert', 'cred_file': '', 'id_key_file': 'unizh.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/unizh'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$unizh_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'unizh', 'name': 'planetlab.eu.unizh'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'moscowstate.cert', 'cred_file': '', 'id_key_file': 'moscowstate.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/moscowstate'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$moscowstate_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'moscowstate', 'name': 'planetlab.eu.moscowstate'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'msuchem.cert', 'cred_file': '', 'id_key_file': 'msuchem.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/msuchem'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$msuchem_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'msuchem', 'name': 'planetlab.eu.msuchem'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'hawh.cert', 'cred_file': '', 'id_key_file': 'hawh.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/hawh'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$hawh_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'hawh', 'name': 'planetlab.eu.hawh'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'bamberg.cert', 'cred_file': '', 'id_key_file': 'bamberg.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/bamberg'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$bamberg_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'bamberg', 'name': 'planetlab.eu.bamberg'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'budapest.cert', 'cred_file': '', 'id_key_file': 'budapest.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/budapest'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$budapest_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'budapest', 'name': 'planetlab.eu.budapest'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'upb.cert', 'cred_file': '', 'id_key_file': 'upb.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/upb'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$upb_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'upb', 'name': 'planetlab.eu.upb'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tcd.cert', 'cred_file': '', 'id_key_file': 'tcd.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/tcd'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$tcd_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tcd', 'name': 'planetlab.eu.tcd'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'irisa.cert', 'cred_file': '', 'id_key_file': 'irisa.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/irisa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$irisa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'irisa', 'name': 'planetlab.eu.irisa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cesnet.cert', 'cred_file': '', 'id_key_file': 'cesnet.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/cesnet'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$cesnet_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cesnet', 'name': 'planetlab.eu.cesnet'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'aston.cert', 'cred_file': '', 'id_key_file': 'aston.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/aston'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$aston_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'aston', 'name': 'planetlab.eu.aston'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'univie.cert', 'cred_file': '', 'id_key_file': 'univie.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/univie'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$univie_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'univie', 'name': 'planetlab.eu.univie'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'lisbon.cert', 'cred_file': '', 'id_key_file': 'lisbon.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/lisbon'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$lisbon_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'lisbon', 'name': 'planetlab.eu.lisbon'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'konstanz.cert', 'cred_file': '', 'id_key_file': 'konstanz.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/konstanz'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$konstanz_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'konstanz', 'name': 'planetlab.eu.konstanz'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'fokus.cert', 'cred_file': '', 'id_key_file': 'fokus.pkey', 'last_update': '', 'folder': 'slice/planetlab/eu/fokus'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$eu$fokus_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'fokus', 'name': 'planetlab.eu.fokus'}, 'children': []}]}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'snummlab.cert', 'cred_file': '', 'id_key_file': 'snummlab.pkey', 'last_update': '', 'folder': 'slice/planetlab/snummlab'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$snummlab_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'snummlab', 'name': 'planetlab.snummlab'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'qub.cert', 'cred_file': '', 'id_key_file': 'qub.pkey', 'last_update': '', 'folder': 'slice/planetlab/qub'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$qub_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'qub', 'name': 'planetlab.qub'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'sydney.cert', 'cred_file': '', 'id_key_file': 'sydney.pkey', 'last_update': '', 'folder': 'slice/planetlab/sydney'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$sydney_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'sydney', 'name': 'planetlab.sydney'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canterbury.cert', 'cred_file': '', 'id_key_file': 'canterbury.pkey', 'last_update': '', 'folder': 'slice/planetlab/canterbury'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canterbury_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canterbury', 'name': 'planetlab.canterbury'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'fing.cert', 'cred_file': '', 'id_key_file': 'fing.pkey', 'last_update': '', 'folder': 'slice/planetlab/fing'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$fing_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'fing', 'name': 'planetlab.fing'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'haifa.cert', 'cred_file': '', 'id_key_file': 'haifa.pkey', 'last_update': '', 'folder': 'slice/planetlab/haifa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$haifa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'haifa', 'name': 'planetlab.haifa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'iitr.cert', 'cred_file': '', 'id_key_file': 'iitr.pkey', 'last_update': '', 'folder': 'slice/planetlab/iitr'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$iitr_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'iitr', 'name': 'planetlab.iitr'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'tau.cert', 'cred_file': '', 'id_key_file': 'tau.pkey', 'last_update': '', 'folder': 'slice/planetlab/tau'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$tau_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'tau', 'name': 'planetlab.tau'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canarie.cert', 'cred_file': '', 'id_key_file': 'canarie.pkey', 'last_update': '', 'folder': 'slice/planetlab/canarie'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canarie_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canarie', 'name': 'planetlab.canarie'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ntu.cert', 'cred_file': '', 'id_key_file': 'ntu.pkey', 'last_update': '', 'folder': 'slice/planetlab/ntu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ntu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ntu', 'name': 'planetlab.ntu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'equinixsi.cert', 'cred_file': '', 'id_key_file': 'equinixsi.pkey', 'last_update': '', 'folder': 'slice/planetlab/equinixsi'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$equinixsi_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'equinixsi', 'name': 'planetlab.equinixsi'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'icavite.cert', 'cred_file': '', 'id_key_file': 'icavite.pkey', 'last_update': '', 'folder': 'slice/planetlab/icavite'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$icavite_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'icavite', 'name': 'planetlab.icavite'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ihaifa.cert', 'cred_file': '', 'id_key_file': 'ihaifa.pkey', 'last_update': '', 'folder': 'slice/planetlab/ihaifa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ihaifa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ihaifa', 'name': 'planetlab.ihaifa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ileixlip.cert', 'cred_file': '', 'id_key_file': 'ileixlip.pkey', 'last_update': '', 'folder': 'slice/planetlab/ileixlip'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ileixlip_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ileixlip', 'name': 'planetlab.ileixlip'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'ula.cert', 'cred_file': '', 'id_key_file': 'ula.pkey', 'last_update': '', 'folder': 'slice/planetlab/ula'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$ula_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'ula', 'name': 'planetlab.ula'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariecalgary.cert', 'cred_file': '', 'id_key_file': 'canariecalgary.pkey', 'last_update': '', 'folder': 'slice/planetlab/canariecalgary'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariecalgary_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariecalgary', 'name': 'planetlab.canariecalgary'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canarieottawa.cert', 'cred_file': '', 'id_key_file': 'canarieottawa.pkey', 'last_update': '', 'folder': 'slice/planetlab/canarieottawa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canarieottawa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canarieottawa', 'name': 'planetlab.canarieottawa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariehalifax.cert', 'cred_file': '', 'id_key_file': 'canariehalifax.pkey', 'last_update': '', 'folder': 'slice/planetlab/canariehalifax'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariehalifax_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariehalifax', 'name': 'planetlab.canariehalifax'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariemontreal.cert', 'cred_file': '', 'id_key_file': 'canariemontreal.pkey', 'last_update': '', 'folder': 'slice/planetlab/canariemontreal'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariemontreal_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariemontreal', 'name': 'planetlab.canariemontreal'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canarietoronto.cert', 'cred_file': '', 'id_key_file': 'canarietoronto.pkey', 'last_update': '', 'folder': 'slice/planetlab/canarietoronto'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canarietoronto_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canarietoronto', 'name': 'planetlab.canarietoronto'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'canariewinnipeg.cert', 'cred_file': '', 'id_key_file': 'canariewinnipeg.pkey', 'last_update': '', 'folder': 'slice/planetlab/canariewinnipeg'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$canariewinnipeg_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'canariewinnipeg', 'name': 'planetlab.canariewinnipeg'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'unioslo.cert', 'cred_file': '', 'id_key_file': 'unioslo.pkey', 'last_update': '', 'folder': 'slice/planetlab/unioslo'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$unioslo_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'unioslo', 'name': 'planetlab.unioslo'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'buaa.cert', 'cred_file': '', 'id_key_file': 'buaa.pkey', 'last_update': '', 'folder': 'slice/planetlab/buaa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$buaa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'buaa', 'name': 'planetlab.buaa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetxjtu.cert', 'cred_file': '', 'id_key_file': 'cernetxjtu.pkey', 'last_update': '', 'folder': 'slice/planetlab/cernetxjtu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetxjtu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetxjtu', 'name': 'planetlab.cernetxjtu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetsdu.cert', 'cred_file': '', 'id_key_file': 'cernetsdu.pkey', 'last_update': '', 'folder': 'slice/planetlab/cernetsdu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetsdu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetsdu', 'name': 'planetlab.cernetsdu'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetpku.cert', 'cred_file': '', 'id_key_file': 'cernetpku.pkey', 'last_update': '', 'folder': 'slice/planetlab/cernetpku'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetpku_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetpku', 'name': 'planetlab.cernetpku'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetbuaa.cert', 'cred_file': '', 'id_key_file': 'cernetbuaa.pkey', 'last_update': '', 'folder': 'slice/planetlab/cernetbuaa'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetbuaa_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetbuaa', 'name': 'planetlab.cernetbuaa'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetzju.cert', 'cred_file': '', 'id_key_file': 'cernetzju.pkey', 'last_update': '', 'folder': 'slice/planetlab/cernetzju'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetzju_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetzju', 'name': 'planetlab.cernetzju'}, 'children': []}, {'info': {'node_data': {'key_info': {'acc_file': '', 'id_file': 'cernetxmu.cert', 'cred_file': '', 'id_key_file': 'cernetxmu.pkey', 'last_update': '', 'folder': 'slice/planetlab/cernetxmu'}, 'db_info': {'db_name': 'plDB', 'table_name': 'planetlab$cernetxmu_srr', 'user': 'postgres', 'address': 'localhost', 'password': '111', 'port': 5433}}, 'login_base': 'cernetxmu', 'name': 'planetlab.cernetxmu'}, 'children': []}]} \ No newline at end of file diff --git a/server/jpywork/PathVFS$_PyInner.class b/server/jpywork/PathVFS$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..18200155f19737f8138215e82bc3209584bf6bed GIT binary patch literal 7997 zcmbVQd7KpWmH)o!tGf6x4Ala|a0uGK(7+rVGu%Y(QHH~T!QrrIda7p{da9f1o*4!d zQSnBiMvWvfn{1415_Pd5%|xQfuDc=8Y+{V@*p1Pwut#Dr2PUh=kk9*7_4FJ)B-wv{ zulxJn@4feX*RQHx_|r4b0jQu)`%pwESszZfHm+<4>g&7eOw+J@a1$<1SS^*wu5@d{ ztc)ZqqjG)M%62o7jwQ^E;hk~A2QQ&)pwPALrpbJQD;2CFl&u*kvu@`uBa&VqMXKdG zQ?9cJu2^uk{5?mmHFB+$>s-0cBe+w+>MEO56a3M3Ga_9gOe|omkJk$bA`-09bvG zv5E>*`A|vF1}09R8Z!xg)97qSTQReRP*J{SSGXfw84sH+l{UCwYJr$KEI$ad1$fGO$oUWneLT*BtBR9dkb+Fa!$wxl~{omJ?Ld=&Uo-MvGw)#+TO> zvhVPv11kjt>t9W9SL_N~to3Svp^U9zY+o$N*jj;N#?})?*sV~J3`cf{TZ~jiGMsKr zvCy>w!&qn|VHiiEA`%a$Y(BFa1xlEG9f77Zuti`v1KS9JRJ&QRGm%L5+jG5u#v(fi zq007@RheoHTSnzByBjwq67iJtCsOGYMn$rVmG2Y?aBK+W{MQh;3?qDKA(Zsbl7blb zkP(k6*iG<6&2XEcppBs9x`Sh!5J+MV!DkwsTwjFGm)C6_nDf5|*|McTVf5|KLaGZ` zt1Fme*|&V|l)y-gQqWE)iZv_fB)AMSt)PqG=8k5e{Q{*dbfY}6-P(-bBruxsn+aaK z#~Hmhk~yWys5Nhgxi?;q`*XG{v*NXR1w2Z3tYkQ34)u)3}asx zxDulXz7`{0FGo*Vd7&ng3E=AchCqlX(9lRY9@lw7^Tk1^DX%M30#>-qC^$8on}St7 zEASk?MNo6q$ydjm^8c^8e-ij-R_En%2+m{+|03|Ojs?3Kg0mPtBk)~@6}uRMvl)Cr z;Kjb)%whQ71b&d$TEoyw0zc}jwU*%@3%nw=+T{_P%iya5uQBL%3L!X;(KiJCozWrr zlUFhRQ-L=b_sJtvS2OmOz}t+exl6rT9_>E`-jSl5(O~r~73c8ZKKvJ9)W9h((;@Ib z_+Nt3Vx;4VNH|UyS9q{GDN^uDf^T0eX&3gd2(EpxB-?pU;Me#K!QWz}TjGhGtn076 zHF}i)j^Nu8ORkK?4HfU>4?g^!P&&|edxOCLvBe>}-eRP~>9nQmyz4`OkMKv??y@d* zF317}7$ZQbsath0_U( zV>O$TK8LXLZ_0Inv*pq@IE&5I3VcL!FCEjtHC#fuLh}iMrR~wEVHwSRYGNT_7>A+{ zxR`HflSA?eg0D54(svuO3ziC6#_90sx|vAJhNcyQR?@0m3&zq$8&_fNCFSqJlOFYNX8skuuUN_C}1PeG%68PV2^2E78d>O@-VW{BrD3x4=hDgh2iY zuScPewi3n;9Fxmq@8ZHW$^=oA;!X7hLiCJ00MA*P{sOY9M3 z@tq`eJsLBc?Q|=Y=J&#`6f5Zv)Jc0~Jv19}d+-xR^p17z6{S(3eex#Y`--dS9Ni%3 zMjq(?RPLfu=_b0_M+XUk{>P5BB?a9=w-WrZwq(LeuQLt8ssg48l-%Gsb-God+X!w> zD7$cnpgZX3h4I}l-iK_B~va((X91vqjt7r_7WR3oSjiFPYu@Q5LZ+=~)BO%U=+hji0O z`S=-F$$kF7L=apccu)qFUsVC9{E8~6>d+w$6%HNh&|-%Ub7+Y}hdWerXuzSDVT9B> z5~Cz7b?9h^mN|5cL&rLFoI}Su^m2zzaOgybUg6LyB^?gpZv!Aq1~3j>?|>(C3R9j2 zK$r@^D?tS+Kg8RjMc;w|fTAVZv~J8efmzxdNo%!vk}l8|NxH<{jjK*zg|@NyDc>O{Wk!fo6~ASwx#$T5Cg-Tiey3=~~?7%Anar z;gpMl2P>sWwiIbRxmoXc^#2hL{4b`BQHeoI$FpnO^eEKOC6scHP z6vU#U#aIkN7N?xLpX${8& z3pgZK$j(>>U^Rex0M`Q83}738Fn}n4-2jpR+5zkXaMSc|eDnD9ZhV`U=Xv=KFW=+k z`@H;+mzR0@2`{hn@*lkXjF+Dur@X_9F$};eEJq#ca1GX?9t~KB>#zaa(SV)UgcfW@ z98K7Rt?0mZ?1zqn2;(+Hpz^D=bI3*T$o8KYa%FK=`$b55H;ePyZ?m`%a%XWiix0B+ zI77Y6+wp3}IK-gxYqg`Q#hE0_LLNt178e5Kw)K!VOKQl&DyjG=M)wxc9Nc?66rjtp zIG;bO1~-5)u}^4q<$cMp8> z?DZinews>~LMN%r^(@}cz&b_avNR#2?d^;2%i%Zl#Sb`mmafQ~v|ZniQrv(l+=$gU z0F}QZIOea1TbiFQ1C&8+mL|*Cl*)qyXsQ#9EIvMlKo4lArEgAbTeo01ZpCEWjvCwv zl|N26w!S1ky#hCdJfQ$h%i?^1W^j%<>j9dYOLu@OGg#0^BtX?Nn6t7}lS`rYfP{*V zf_=2r&0`(8KMVMeOg7ig2ZQDHFs{PA*nlJG#C=ft(~0A7$jPgg!IEB17Rc#?Q2E=+ zU(D(4x!m>3>D@WJUrrAXp3_HAileB)XRsQdh00%XZ1eOTc(`C`SO1(gI)_*!dt!;q zwl_;x$%N18#mt~KgB4j??qI9shO0x`ku1*hHhhpJ?`H1E{<+NcE2$x`41R#t$ULdN z^ap53$Sb?B$NV>Yu_e!Ofb$oiwYgMJF62?(sCV-*Sk9jHSzKsZBhOYLB?5G926b8T zHq}eiH~kn!?O@*abGn&i#sZ|7hZ{p_e~XN0CR_T4f(P-n;RIkTk6^pD)CA@K+Qd^ z$!#AXQ)ZQCvTISOgbQN6?-*@V#kgy6C_pK`HXh63!hFB2M`2I<>+z2}#8$E?t)idI~!aJbJ@+}!rEh~ z2zjRG+e_Ok^Wa=S`ZE__9B{8qh9AJMP=xa+#(Nl!Ut<)0gK79J zYVbQO#Cxd2@1gPs-hs32;lB6JBe@yY?;d+RhxeO#PYgcWK13-#LKXgq)%X}He@J%B zzX7j&QhF#9psozUS=!He4^S%9O$V|xAwY-hC+`4FYY27I?Q6K`rnzQjX##zl?p_n1 z!_K4myAEG_w--C49n=om7w|3AO-JMnd_+59L-+MSPiart&~XRqQ#>>I0gVVMc~DAT xgvf{4q+lNTaW$!Epdq-91a{L<9H3&{Ps30|5AfR#eTp8GZ)F6chv;GW{|uea4Fv!I literal 0 HcmV?d00001 diff --git a/server/jpywork/PathVFS.class b/server/jpywork/PathVFS.class new file mode 100644 index 0000000000000000000000000000000000000000..87e2788c5f0bcf88b759bc7db946d9a155ef83b2 GIT binary patch literal 2487 zcma)7S##4?6#h=^Sl32L#3c#)R-hyfb)b|k1Sl;_8yZ5|3!#D*qbL_!U`y_m47mHg z@B6-Y`V5%?rVRA4GyM=brUD-#Pd9zkaz2pn#tYbP$XQCn`_w z6$a7->!fqq8Ll{fY52g@N$ExeezMkBTXj5tLIpLcB2R{d1xLr`G)1I5zcfNvpjB%s zINNB|HDjsco^nds)Nm_K7_Qw&nBU@Kmllo?vZCQfWf^%cfo*dup6^9F2&sX=NkV#8 zFf9#O*X7xa&cF%%wMJA9{6aODu2*DOn5uh~$nzO`3G3upSJomg@WZWvDisn{H&C)L zca#O8-$W-e42uY>6Rn_WSP09(nSIV_XU{cX3`+>A@q!Sz8tStr=&XQOjRTy zvn@s`hZHuL$fJwU-GpGb=SHKx7ZH{Zj0LJR+^lC0-i!!O0x%#8v}$we`~sYhnc32=j`?P)1%PtHmN= zxQ(~}O5DH>f|W3MZE>P8>ibgVupJxp-#sSo#V&$TlF@$0^9f4^2HW`4yc)@25AHLt zm%wkV-NgMEB^aviYh^;Y9iXwFHvSW!|NW$0Qi%~Et*4LBKhS3A^jPHP=xAVEkKwf; zzIKws1RgT*;Ps=^2qRfFA#jk8b(C@%Zcu9w@~v%1@)&LD^Q>rea8grq(nJ(?gp95>2pOK%IRx%0y+WQPq#I7H%J4jaxlTp;(~e?zk&srh zrWjt<@}SlzDp_K9m0*h4R!DVPDu&m!x8(gzLWfT0Z9=x<`OhM}<-k)0ZZ`!q?5AX-=PN zZF;lAZ8-h^L@iuNI@rc;aMHlHgjI74ildGPQIkKjdz_FHL0!3WuctSvnQWATwj-GF zR*5b34aR2o3|51X0+0sNcLp?djO59ZXBIgS=0X3oo{26Hx&cH;$I^+;E9kLPe7>;L ze1VujpK+bQ?&J%Fo#Bhc43=8C=Gk&BUMXyYuNJnI;cJ9#F}_aBVEs7&gh2p2j*!ND zbYcTCIDiyL-w;U#%RwLjo%xFxnlsD9!W6Q&1%*U)Cpu&4syrXQj7>J*d=a-@z#W&d z-M)ysFJNare+jz}&w1(A&`>XWs1GZtA6e|f1L(k53z_*P-)Re;$3jWG!jp z;%N|1X>h6l~whVqI2CE@#E6bk{ww2>g3EP^-pAoiY^5=wYb@3O3 zZFTdPgl+ZkSA=a@{54@)^Z6UXwm5%F*wzC6j{+_U{KK_BQt$zNIu&sss6JcA6 z_-0{Si}`2b623SG!V0WG9^WLb=|?9(i@|6Kx@al-X&L^Y<>"); + s$1 = Py.newString(""); + s$2 = Py.newString("/"); + s$3 = Py.newString(""); + i$4 = Py.newInteger(1); + s$5 = Py.newString(".jar"); + s$6 = Py.newString(".zip"); + s$7 = Py.newString("python.packages.paths"); + s$8 = Py.newString("java.class.path"); + s$9 = Py.newString(","); + s$10 = Py.newString("sun.boot.class.path"); + s$11 = Py.newString("/usr/share/jython/Tools/jythonc/PathVFS.py"); + funcTable = new _PyInner(); + c$0___init__ = Py.newCode(2, new String[] {"self", "fname"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "__init__", false, false, funcTable, 0, null, null, 0, 1); + c$1_open = Py.newCode(2, new String[] {"self", "id", "ent"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "open", false, false, funcTable, 1, null, null, 0, 1); + c$2___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "__repr__", false, false, funcTable, 2, null, null, 0, 1); + c$3_JarVFS = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "JarVFS", false, false, funcTable, 3, null, null, 0, 0); + c$4___init__ = Py.newCode(2, new String[] {"self", "dir"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "__init__", false, false, funcTable, 4, null, null, 0, 1); + c$5_open = Py.newCode(2, new String[] {"self", "id", "f"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "open", false, false, funcTable, 5, null, null, 0, 1); + c$6___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "__repr__", false, false, funcTable, 6, null, null, 0, 1); + c$7_DirVFS = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "DirVFS", false, false, funcTable, 7, null, null, 0, 0); + c$8_add_vfs = Py.newCode(2, new String[] {"self", "fname", "file", "canon"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "add_vfs", false, false, funcTable, 8, null, null, 0, 1); + c$9___init__ = Py.newCode(2, new String[] {"self", "registry", "name", "p", "e", "paths", "path"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "__init__", false, false, funcTable, 9, null, null, 0, 1); + c$10_open = Py.newCode(2, new String[] {"self", "id", "v", "stream"}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "open", false, false, funcTable, 10, null, null, 0, 1); + c$11_PathVFS = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "PathVFS", false, false, funcTable, 11, null, null, 0, 0); + c$12_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/PathVFS.py", "main", false, false, funcTable, 12, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$12_main == null) _PyInner.initConstants(); + return c$12_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.__init__$1(frame); + case 1: + return _PyInner.open$2(frame); + case 2: + return _PyInner.__repr__$3(frame); + case 3: + return _PyInner.JarVFS$4(frame); + case 4: + return _PyInner.__init__$5(frame); + case 5: + return _PyInner.open$6(frame); + case 6: + return _PyInner.__repr__$7(frame); + case 7: + return _PyInner.DirVFS$8(frame); + case 8: + return _PyInner.add_vfs$9(frame); + case 9: + return _PyInner.__init__$10(frame); + case 10: + return _PyInner.open$11(frame); + case 11: + return _PyInner.PathVFS$12(frame); + case 12: + return _PyInner.main$13(frame); + default: + return null; + } + } + + private static PyObject __init__$1(PyFrame frame) { + frame.getlocal(0).__setattr__("zipfile", frame.getglobal("zip").__getattr__("ZipFile").__call__(frame.getlocal(1))); + return Py.None; + } + + private static PyObject open$2(PyFrame frame) { + frame.setlocal(2, frame.getlocal(0).__getattr__("zipfile").invoke("getEntry", frame.getlocal(1))); + if (frame.getlocal(2).__nonzero__()) { + return frame.getlocal(0).__getattr__("zipfile").invoke("getInputStream", frame.getlocal(2)); + } + else { + return frame.getglobal("None"); + } + } + + private static PyObject __repr__$3(PyFrame frame) { + return s$0._mod(frame.getlocal(0).__getattr__("zipfile").__getattr__("name")); + } + + private static PyObject JarVFS$4(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$0___init__)); + frame.setlocal("open", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_open)); + frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$2___repr__)); + return frame.getf_locals(); + } + + private static PyObject __init__$5(PyFrame frame) { + if (frame.getlocal(1)._eq(s$1).__nonzero__()) { + frame.getlocal(0).__setattr__("pfx", frame.getglobal("None")); + } + else { + frame.getlocal(0).__setattr__("pfx", frame.getlocal(1)); + } + return Py.None; + } + + private static PyObject open$6(PyFrame frame) { + frame.setlocal(2, frame.getglobal("io").__getattr__("File").__call__(frame.getlocal(0).__getattr__("pfx"), frame.getlocal(1).invoke("replace", s$2, frame.getglobal("io").__getattr__("File").__getattr__("separator")))); + if (frame.getlocal(2).__getattr__("file").__nonzero__()) { + return frame.getglobal("io").__getattr__("BufferedInputStream").__call__(frame.getglobal("io").__getattr__("FileInputStream").__call__(frame.getlocal(2))); + } + return frame.getglobal("None"); + } + + private static PyObject __repr__$7(PyFrame frame) { + return s$3._mod(frame.getlocal(0).__getattr__("pfx")); + } + + private static PyObject DirVFS$8(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$4___init__)); + frame.setlocal("open", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_open)); + frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$6___repr__)); + return frame.getf_locals(); + } + + private static PyObject add_vfs$9(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + if (frame.getlocal(1)._eq(s$1).__nonzero__()) { + if (frame.getlocal(0).__getattr__("once").invoke("has_key", s$1).__not__().__nonzero__()) { + frame.getlocal(0).__getattr__("once").__setitem__(s$1, i$4); + frame.getlocal(0).__getattr__("vfs").invoke("append", frame.getglobal("DirVFS").__call__(s$1)); + } + return Py.None; + } + frame.setlocal(2, frame.getglobal("io").__getattr__("File").__call__(frame.getlocal(1))); + frame.setlocal(3, frame.getlocal(2).__getattr__("canonicalPath")); + if (frame.getlocal(0).__getattr__("once").invoke("has_key", frame.getlocal(3)).__not__().__nonzero__()) { + frame.getlocal(0).__getattr__("once").__setitem__(frame.getlocal(3), i$4); + try { + if (frame.getlocal(2).__getattr__("directory").__nonzero__()) { + frame.getlocal(0).__getattr__("vfs").invoke("append", frame.getglobal("DirVFS").__call__(frame.getlocal(1))); + } + else { + if (((t$0$PyObject = frame.getlocal(2).__getattr__("exists")).__nonzero__() ? ((t$1$PyObject = frame.getlocal(1).invoke("endswith", s$5)).__nonzero__() ? t$1$PyObject : frame.getlocal(1).invoke("endswith", s$6)) : t$0$PyObject).__nonzero__()) { + frame.getlocal(0).__getattr__("vfs").invoke("append", frame.getglobal("JarVFS").__call__(frame.getlocal(1))); + } + } + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + // pass + } + } + return Py.None; + } + + private static PyObject __init__$10(PyFrame frame) { + // Temporary Variables + int t$0$int, t$1$int, t$2$int; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject; + + // Code + frame.getlocal(0).__setattr__("once", new PyDictionary(new PyObject[] {})); + frame.getlocal(0).__setattr__("vfs", new PyList(new PyObject[] {})); + frame.setlocal(5, frame.getlocal(1).invoke("getProperty", s$7, s$8)); + frame.setlocal(5, frame.getlocal(5).invoke("split", s$9)); + if (s$10._in(frame.getlocal(5)).__nonzero__()) { + frame.getlocal(5).invoke("remove", s$10); + } + t$0$int = 0; + t$1$PyObject = frame.getlocal(5); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(3, t$0$PyObject); + frame.setlocal(4, frame.getlocal(1).invoke("getProperty", frame.getlocal(3))); + if (frame.getlocal(4)._ne(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(6, frame.getlocal(4).invoke("split", frame.getglobal("io").__getattr__("File").__getattr__("pathSeparator"))); + t$1$int = 0; + t$3$PyObject = frame.getlocal(6); + while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) { + frame.setlocal(2, t$2$PyObject); + frame.getlocal(0).invoke("add_vfs", frame.getlocal(2)); + } + } + } + t$2$int = 0; + t$5$PyObject = frame.getglobal("sys").__getattr__("path"); + while ((t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) { + frame.setlocal(2, t$4$PyObject); + frame.getlocal(0).invoke("add_vfs", frame.getlocal(2)); + } + frame.getlocal(0).__delattr__("once"); + return Py.None; + } + + private static PyObject open$11(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + t$0$int = 0; + t$1$PyObject = frame.getlocal(0).__getattr__("vfs"); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(2, t$0$PyObject); + frame.setlocal(3, frame.getlocal(2).invoke("open", frame.getlocal(1))); + if (frame.getlocal(3).__nonzero__()) { + return frame.getlocal(3); + } + } + return frame.getglobal("None"); + } + + private static PyObject PathVFS$12(PyFrame frame) { + frame.setlocal("add_vfs", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_add_vfs)); + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$9___init__)); + frame.setlocal("open", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_open)); + return frame.getf_locals(); + } + + private static PyObject main$13(PyFrame frame) { + frame.setglobal("__file__", s$11); + + PyObject[] imp_accu; + // Code + frame.setlocal("sys", org.python.core.imp.importOne("sys", frame)); + imp_accu = org.python.core.imp.importFrom("java", new String[] {"io"}, frame); + frame.setlocal("io", imp_accu[0]); + imp_accu = null; + imp_accu = org.python.core.imp.importFrom("java.util", new String[] {"zip"}, frame); + frame.setlocal("zip", imp_accu[0]); + imp_accu = null; + frame.setlocal("JarVFS", Py.makeClass("JarVFS", new PyObject[] {}, c$3_JarVFS, null)); + frame.setlocal("DirVFS", Py.makeClass("DirVFS", new PyObject[] {}, c$7_DirVFS, null)); + frame.setlocal("PathVFS", Py.makeClass("PathVFS", new PyObject[] {}, c$11_PathVFS, null)); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("PathVFS")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "PathVFS"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(PathVFS._PyInner.class, newargs, PathVFS.jpy$packages, PathVFS.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/SocketServer$_PyInner.class b/server/jpywork/SocketServer$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..ea8d8cfa520f85cda7f4d0df5c6f1e5c4ed51ade GIT binary patch literal 27870 zcmeIaX`CHJ^*8>l>RE0&on&$^OTrR5aDkc0%p|j9Wer&%WF?ajCM=hpdwXU&xzjy# z_npZ^P(%??P!>S~BA{YGWE;pN2#AQ{iVGr&JD{RJMFbTWRG!bNs_whwCco(a#s9_g z8!F37GpatnU42P}Sn`UkA z7CRfBAV}Ip*&)hKQFe)Pt|;e;a=s`Rh;kuAO^|M%BSE_a9TId(&?UiK3Fb*KUxEb^ zNG=_cO9ydr(jAgZhvd>BxpYV_9g<6jN?AH3mrmm1q&ta=lkSvU zIwhA*$)!_r=_D>rx=YH^CAoA-E?rWVE-6cwB#m(;c!l z)93m2uv+2&vfaT`$cE-0aD%e3ND!Venw(sEDAqP))AOR9 zvUxACMeF&QKF4)}fg;`1YaR$xnuXPA^tx3`y! zx*?lxSEKMVy^fn>I4GNL?~H^f8*Y17RIOy2m`%6O&Gb2W+x3{>H80a|heer^*>wB- zNts^;Q%jnN4@JSK-&uk=eL3=67&5-O-uJdilJa z4KvvRC!h0eSB$KqYj35~M9$4D_x!Dn+rQe`wnCB4+nY3%O?S-CY#8uuD_10@{uV?G zD&$xg)t8L-&}_PMPLWGV3&OM)F(qvd&Zav%G8Rgb?WO8<%7SP0Ox-&9B z@mJRzWw(r^>}nT=xL&S`GsGJ48FB0)0~8!5X474raii(kbXQkK4!2sfxuwnK#mx@S zrn}~6qLEZKoRCd-EyxU7j>}MYA}#)t8MMZxvl(h=x$Dpn8W_Sw3{zG)uDzx(*lYXB zuS}u_OFTCSEjJ7j*v3+)o^HFg?_|wDY%Qkr6J|DV1%Vy3>H3BNCol)STp@3pq3_s% z8G2^c8VU=(ZH5E3Ic)ikR|rfi7_zfrV0wLK&ZZUb_M4XCw@BBQd%o(Uwbu&loWcZ) zbiLKIayj1)0<+H=bn>H%bW{CnH5V_>tXQ*b!yHD7*tU71R8!l)$$D#~vT$_BE)}_Z?UI$5?hWggEnaOl`gYzC%>!Zgs+SE* z)|Cn>S}Z+%JvGRwbr1=(ap}4ysXgV9%hhK#I&L;!pygbq-X@{fY~HcmFjlYd;!f70 zsKD&C$?uze1)s)m<~@%bh-rmlR#j)Qni_>2IDu(p!-AF1kD8V_;CWlkKF>ETchppy z0kH@Ntk86AJ11;~7{_cX*hfNG?r1nbP3?SOD;?#%{(i^pZ_-=M0dIt?PVP+RU?Cqm zLwP%rF(_4jFzRLpe9t9|Z1miih(wp|b0mXhhR&c}ItP8yftroBl^uv!m$vGqA-ncS zG}6+>VdPQ|pt+=NqLpPw>&$dqGb~wXeb%t&i+ND%k!(!r)d|eN863*nL1>1aKH@u} zy@(cC$-p-(SvPydI@Pw#G^4rewQ{mYGiL`*zuRK=7D7F+hHW$O25suaar@g$nr+*+ zj}J^MA9z9zCkP5k0?W+V_K;#U;Ml(9X9q_0An%O?X3iUN%|SaH@N#123qwJh9IJ1O zCDrE)mkrx;O~)OueJ8ZstZn8Tu?w`AeO|#QUotY_i1`@u?Z9?Jy>y&XIl|=#a?%nx zl*oO|YAyLUE3UrSEXEY(#c}mMsO7&Rnfy0gwb?9%E$1cwmG&R+jON7(d-BD?OO@`9 zC4H8Pc3^$TfB)a5ZY`5L-s>ynj`l0Lub1?DppsKR`Wi1(Hbx%1f@jY5onbpL`+RS( zC`gOxdZDP(D?C#0+-FsMcHGt3P(-f9L#R8&mi%^WNQp_wJ`)93g> z*kT3_O_CFu-mvZaPR9*zAPz92(@PSCIUr?Ue3A5b1%2|fC@?8J1!Xvb)5QvJ7?W{+1eX;#7k+co`yt4HBa=~Pl!L>AzXwT;r~ zdSyIB8Wn(V8t+Y@4pH?K87p!KdAwW+e!n zeBKnMs>tt;`>$#!j zxPcjjR%p`#9kd5Me^hRyYVd`ofA4%UUsf;wTD8v%iHFV<&&YRh)Gx-Ee<|BVKXPB5V^Y z(Q!@Jw*34kg&Ku?Xt_4UQ=w;CLqqvdQfyz|$%YiMWd|&`U!Dpgv$x6Mtk9-u7b``E z*uscfXp(3g6khihoV6M49jP(d25RE!-^AmNDizU}7hVx&b2_UN2#^&L%qK5vT!8?6B+ z(0gqfaui3lwyND=&>E%nCqiLz1fyo&qd3?Zv}w5Hc0?RbyGGs{(La5}NWmP=21 zp7J?UtD1JVoJT!cu4!)@$~##{xVWv+#7EtfxkX+6Rdn9EzStFKJ*f%`^P@urF^`WG zWi}tX1RAZY+wQRAd#>1M#Ciz|Lqnb)2BvE};v6NnRdQBxuFOWySEd{e*tBqcTMs>t zMq;}GMZ=zNI&SIokRe5j$;sMHG|Qo9()pDfnh+$?Lnuy{UZ0pqY1DG6>|9ZJQlav* zflXaeO#PheB9yx(+VI;pCTzm)}P z!*a5PyznE=AZf``TT@A(lDWurR$O9@PM;pB zoi@8duQF~sAVw4*_S)n$b4_i!zPun(7c|C2daKzTT5itr)xn73OV2mE3$D3--4e4= zo<0gxujZG6CC`^9_>$J;;T9<|Ht=GGq(D(as5TSb6w_k6S$}j$oXCUhfIVmjrEL3r zYtR7fjNjRAx3*A?+)j6Y&v65(%TNXB7) z8Hbw;OeTt(ODW2De9XWUqWCyNa_{h)q`cig15tc};h<_UCeeJ#z*M67G{Yg)<4vNv z%RrK-KEp6MmRB502>V$BDZ<{zV3elL3HN}3g9taqP``M&NFh@7!v+qf>T!mK%A+RX z_ZT>Y@SkHy?tOeEipLBbN)(@Gm>!E%jnx+nOe4ZCG8|q;7!6mhSmOC51JjB0X{L3O zN~05w@D_AUC@VxNmvREDMQTQRIkNn$mCxIhpCx3g8C@tf%Dp$EPQNYHj9(_eT4nSZ zT_QC`wQ~23?ot|?O!Js1^vikT&`wdT=w`3B@=B($$!tBD9F0kBi~g^%NlF_HMeM^W z1XE|mobAR#QX`?;p;)+Rbm}%Nt}k~RttUtOT8oO{B7G=rmEVd9S7g%>R&HVuaikH| zsknTKdsI7BtS9Ai_r*grt|X2+P%0OkPBS<%nO%h92cjSIc41dBe@wxt7Rsqs&AbHUFl8!>ReV z7`m6xY7$4uEZwq5MzjM*mKKL~HXVvpmM-e2sJ;>$b@3eoM^G2fGPKC6r?P`doX<83 zZs_FAoaYS&Icrpi_nd(vk)U1bc>_Pd4;ggV9-*6*e!9S#(YT`8?xXNx`}vW98Pxkv z7>?V!_ZD-=3j&7@n!R+oqy#d_{4)bbQLA4txMz#oV=;DR-$mtC9rSv+TZeu@9H2&Q zGZ+wuY_VMIoD63~#ynzJ)F$=*k^z%?|0ToOG$|D}UP8TAW|>q1q;xM3;aTi{#nw^M zj(YjEftl3HZy1)Usi(`ayluIyg`xj$uK<(Zuuj3=5Wvd-Jln?j2PND0D1w{;p!@ zLjQj-a18PJBSTY#Y-V9drrmSSu#+oT`B;fGs5cCxso|d))IFy-chQx++3#CfyRVSX zkNz(cNOv3RMot}GhJ5nmmKhR@UMss*sFzYSj$5EqL9`f1hBplyOEUb8fwfY_KMWj) z1bzL}!109oH$&I5ZCP7}&I8uaknP$zGgqK6D{`y!>Geg!6Y<^zFa`sSNF*3%+IATNZia|NnMh_xSMty3P0h z?X&SM`~SYribO!>qJmwpGl8?+rkm9Ks0_hGCRr_yIJEiCw&p1Ml9&E!SFYm6s_)mV z#z2$s1+30Mv;0aJm_;jEXIQ(>O_)MJ>6FD=hZ3KoHu|c25jhOQKnt;-%&=PRO_GPq zIlAJJMF~IgP@&Jt$_$u8Nz2~RIQ3FONX#1yv=Z|qL(l1U+4Z~hk>!{8;uI{hL;vY0 z4l>Y29Ua0jwerq~TtAy;V7AofVFu<9=@ATb%dTsR86c6aQM<3q1(sZn3wARMv=bAP zVU~QlL0gSi2pw0XAV(~j$1`)3e~%tIiKa&z=%A))hF02>)zy13wL^laH7%48g#k2- z;|z3C<3@(A|44Y5L=rrj4RjHY7KY~TkaDE*@?VndulF_sbE)MV#_y`wTq13i^c{MX(vo~AQ@mk7M#-gNXJFIjByJ+;!B4g%N{%F{JZ6X$ zN7*5{L|eqSxay*FqU0t!Ev8jXv;6u^@SwLqP9HrhlGk7@BG*lMe|i@};^#aS7*yQN ziHw`zA@AYn_OG%_87xqYQGpS8!@g*lN9wi$T6%qL>hBgBk?5gfWkq!5$G2DsN-6Z> zMr7AbM?Q~{FI}uGy@eEpVf(F8f2QO1dH$eyZ_^aBm$)|5>=rkjN@4bp<;z zuoNzoPQMsI<=EwjELZ8xwESKt^eul>-M&QUE_qh+ZoF zn6xIYRishm``SjtpW-xLwiSp~Gta<$;<12%`@O_fknh+DMRb*Lg3F11}xv6y+yu&Ugh+*X4Pxx(l^s>L!%_raswyO znTR2zKUWwy5hvBNl?)A)xw!;eO;3>Rd|!gCWtc1{FFJ)L*jWszDqB~Abu%QQY>JNU zY@@->W}6u5U3-LH>M?x0amBfN=K>F;X7lDM3B&RS!qr$;>1{>T)1P=aOq%I2a57Fw zuyYxvL?c%@6GESF;8a3q7$ymHl*u8aWneKOvka5VS5$)84E1U?CRjhiWVw!`#0E8Y z44g*Iw=zsF&$AGA(7+PHdJI!4LOViVWMCj!DGlJqFGo(#si2a_oe;!oUigLSI)J zIFo2T$S_e!Ng)cMt~Rhz5`EafD*1J-fz?EQJwu($kP+n#2G&sRM;RuTq^}6I!@yeE z^cDl_;1f8`wxJ?qR5- zd)`8jVD~a;LryNi?q{g?#F;Eeum|Z?b;Ubo;{T9=vn8)x1~$pB-3HDfu8%OVFu@)r z6-O^rsLkUBdL-o&1~$vDCk>n{zn(I1p8Wcoc2A@vIDP=Auy^wH+8~g}?D|IR9_Bn)`Veq2}H;DpEc?pni zZzs%5gC9+piA7Zlt)vZpEY(L6l7mUN3#A-y@J2!eUq$FCrCG#uhtSO$gRiaLROsg{gRdv_)be~|xvgTXfvHl-Ms$Sw4= z$>8Ud;){Ch6w2Cc@N)@&aLm2Pp;PGVe1l(5PEo=`DD6UnTcVH33#)Xe&|TKxIl*D? zyRUSo&|aUx`-$R+q7)Us2T6AdJvs*8LWDEQ2+Qxj(w#!Bd4mrUY0>OEg+4ul4^e$W zxbAePP@`|~fGTz6y3?IPdj*3JQ}qP7;L=?}XWI-uDr)8WO?L@By~E%aQ|-aD0L$aP zbeGW6I}QFWqEJ0|3FW-o;Fpy#6AF2+!7r!UL#y3%rn`hLt}yufOWBE0f56}$EMq6e ze6_(pM77f+O;yS#lyHr~uO+H_+9=Xp3w3@yzoDLggyGP=@2`cIH~5YGqYR0DJIs4o zE6;Fb^-F`u^Yb12mU@0O!?e9QN*aTIjNd9|EwDo?41M|q&g?2T<5ji_)l1Xa6R@4% zX7JmQV5nK+xi)qD34?!b3GrOd-ER9HiKjI-ZPu}! zf5zbV@Xs<#F1SNhc563f%iOHZu%Oz;rr54%I(Oegp((h};P>+fq}eDfcb#=|FB z#ti-te^>;$VVn$SSY4{g4FkS6LU(o5l)3M1JZ5)7f{#;VB(hB;>K=nXLMoonZ-@PP zuh+^a_@fN9BKD;@c--KhCxVF?`c<5qUXu0;27i)&kzw+n6=nzG4j2|y(_DNT z&D7tQXwJXP&|5le^?qXCTHiOOT9{N~9$%sEzRGaMf7IQ6nAY>JGo*?q&v?dYaNnff zo?%!~rMLaq)PA}nuHQEJcldW1YBGa`JjHnboi?zYf6w60@$WO#iwmB-OWt8W%!Jwg zz~DcmHo9oD#2Xy6bp9j$lY0JRhE%1~a0Z7A{!{)lh6(Z+*;?0TIK7HKs`R^W16MPe z;J;v)AOy+S+p?sbmkjgYs1fnU#mWANXSqngl{ zk!vQ<`LFoz3=Hw#GpyT>%JwtKRmLmA`KGgJo&JGb%B}SEM}xmk1EK?BUq-l>Ai@8{ zFuDBdJ;DD%M^UlT<;^?a!T(Cy_}l(vtRhIXLideI@P9C*Ec$UlrtAVC!T-siQ~J`& zZuN%31phaK-o18JhJGlwY(qi=gVDVO! z-j~o)3<=-P4pUM-p&iUHWzgD|p?$#)#nnl@c4*a|bwgn&Z|mA2+H?a$+F^7Nzn_V2 zIy<2qA#|{0rTn2_LYu*$wJfHG|k(06Iz{ zYngnQ(3%*y7bLV<4E3AVtUY7#n$r_nD?>dc=;>6?Z>L6c46U84s6LZ%y)ctWXq^mo zzCGv-+X;<+>`uR-Bg*-Pwm`CXf_iNc!y%Pxdfn(MCkSz1*Sy z!D4Dzs+aat21EQ88A4V&sMp>>jzjo2d3q*ossBa;Gr>Tfr51hA>BS`got{|=s4F;8 zK|{ew3QksVih>OaPE|0eU`oM*6g*hLLlitz!D$LkSMV?e4_ELA1&>s4hJr^aXeu~U z!J`#CM!~d#$0~T7g2yY^s9=+V%?i#^utmXE1=|#yt>7F5+ZF6kuv5V<1?MU_Pr>;L zE>Lixf{PS9LBSJol9-p1af*PaD!5p|(-d5y;8F#bDY#t0(-k~J!4(Rgso+WlS1Gt! z!8Ho5RdAhxXDPT|!EOaND7aC$H_qu>?=wq2w+BcPAea@X_Ss0zQ#^QoyH@Ul#By z$*&3cjpQ=|emnVH0l!zX2j71PFC>2~{`_h3=K{W%d|AL>C0`Nnx5?iL_-gVs0bfu4 zNx;7(|0>|$8yW?lx03%7f4`k#j6Rr_pn6uT2~eM66GZjI6q_VIrliavu`}xG9%pCvXeqX;yQe0_)^zvOrr5gf6kC#F>oskR zouM(N)$Cy#9%ARz)WpPsV6z~oi3!fDB)C8j)W!rC)|7YGE4s@`ZheBdE+!tRkS!;O zdnNG}L0lgb=l4hK3gSdeJX9&CF9;fneTVyFH!P`(oo}nHjTJ*$R0G;B>5BbcTvuN~ zN80Y~?x{<$cgk^HD%(tmWxY((9%p9?b-!2QbjCDIOvw8xq^vS~4HIKd@2?#72P8iu zrnst-LQZhQq?qDEl@v;IlVgf&Dk-j$y-bNIK2k|>qoinvDQ?=YKBvZXH%GcjUM^WA zW7T}D!qPr2RDHWtvg$AuGx|iONNV5*#T1{~uSf^Sbf1nzx>AaCNG#G_HRZGa86nbV z#q8fF1$#iYIW%TBwjYc6tZXBVyJ1?~=HXa`dnLQ+u?XXJiG3R2p6;Id6#HBm)5Bt> zkHt*ymP`+inSMS-T`f^Z#HcUCsB0za$Qbp-7Zlm?bd1_1QD%(# zYK(eBqGraZug9pzCFDt2w);aBMO*$qf-CWDd;mYd2k~=Ug;#JjUc-m* zS9}<6;~G|vYgq%XV~65;HUl4F$KwVz2RE{X_$WIKH?fu2!8YJ#c0O)lefSvja4Xw} zkF$5|^)@yAz*e_u*4)5AI~Y!l!v1cJkwK7vF%p`MdEMejo1P-@#}3 zzj3d29PZOL<9=-z4``plgWA&=(|&`8YIHnY(}GQ>`Rbp!Zv-FxtK-N*5jx<~NU zy65n<`UJjS-;8h6ufjL$T|85N4Zc->558Uh48BwU8ory*@ob_4-%D)3a|sXMPka#1 zgR#G{zpJ3LNd=vg#@L%*LERqqk1_V<199-Fg9G>xCg8_l?4RskvKhZeoch4NarkE_ z5M^Jb62Ke)-vjVN06zur5`b3#{2svT0Nw=f7DcuIs|A=2uqgmL2w>9zHUnVC0IU&U ztpMu)*nEJU2(ZNfTMn?509yyJjR4yWunfR*0CNE50xSU7Hh^6Mu*(2;1;DNX*tGz= z5n#6f>~?_N39!!q?0$ef46sK4_IZFk)v|~E`+=4{oKsOtMS_ZnR7|E~DisG&aVQms zQE?;{CKbm}aU2y*RJ2ern~Dx9=2EeMiW8_fnTo|!ET!UfD$b;0H5Kcq=%(UqDtf3m zkBSTxy;Rs#3{bI^3YUtDs0gVTp<+7~mr!vj74M%_yJa&^lzaPz|Zj< zUc?J{89&3X@G@S(Z}3~Zir?W4yo$f#HT)B=GloC0I{bxA#9vth{>~1@TkJ6Wiyeix zS(-7{#5C5%YFQ_%XA9T_b`qP&PGghU>1+yH#ip{eSc;v^4rb@FL)nFFIF2&X~*NpS)#`#U^?{&?!^6xSJ z@uEg1Lj%|fG_W&avX#*3NrmEggjzv0Wi7<1jctTZ&npz=soaK5`-?3>7 zFO2g$Z+`m^WgL>I5eBZYb1{W&#x!<5bb62>xiKBJM1jvJRyU6GJ8JjvyH_>W&eA%@ z`Mu3GvuX(LM0!nY^B(@->Xzmd-!;y6r}*c_`D1(d6FX2(eYQNIcx(})S1NgGoZqiG;tb09cpr3n zn4&0GqE^huEG6u)7`T%7sp1f%g{UD!$8u>BAI2f<8XV8Ag-&l;_7b7gh@=R&K&K}z zit-H93lUnB2jR zobMQ8=j`VHGtOUaPO;79i1T8^1?7kfV?335$}J$9KiPVb?f+OjW*7 z{QR?+^EZp0@&n|$Bpur<+*qjv90Jo{(f8hT|0&s%Em)&HKqhyBUo1~Vd-Jt!c_K8 ztY-hl7WOuDdflbuJ4r2$nWf@rn*2+vt;SNUNS?rvd;)ZO38q+eDA#{T8LRre)F#^} zk>n}p^jb`{Z&vM-rR~{u-F z%`o^Z==2gzwq#vuQvcYT;%|sK(k7;~$wFDLHmCTXB+y1-rFrMH3P$f^Wf0z7Fh?95lwJOXH}RpHIZ|Q(*(2iV+nP_vvaA zCw47x9kU8>3pr`D0_OUhK8w{LQK}y%V#G zF`Z;tjOmiiwaqE5ZJh5G(O+%L6T%3_wb??9x}8zPBVKuuw6+{m0e%%Uel=S7hp?DmixvDM=;JrQ&LgmL~gJdWq_Jb*vpO#$Ui&>ExwelHAu zA7=9V(ZV0V>HI;Q&mTg_AI9Z;7p~-w;5Pm_jPu8^n?H`n`4f1aKZzglr|=X0B!0@j zh}Zd3c#}U3ogUt*RXCzn;o9buc9c-2Hc_lK?HCakQV{k)xmO&E7gt5(^l-JsB?1Ee z4NT_W#5Dd4+WEI|CjT~cdf}^txE_;4H0(7~N;Hl+o9ij+)J`4ek4f(qO^pl$N_?FR zZdBMzUQQ*&wA1KQL!`^fO;v6cS-I=wMg0xnWon$eu9 z9Q0$=1}(SqpI|!wDRg>`toRhK`pR|=xr4t1ogOA125cM%kp3PzJyt#t($}HW zt7S#nrJ|r|B^!G3L9rZPEf-&o_Af~BH=)zJ=KqqzKak>YL8o`m2OzEn==AdWKuBw$ z)5~W?`fb!uYrI3*Q%PMHR&ez9ca+13{(esQD49q2Ny+yw=zAy3)pwEaUDce@ zRtld_%U^oso9<@OqUV@{P1pn=#E5`$v5P1|n}7yQhpA1(9BmR#)F$H$Z3;GNQ*o}A z!ui@%T%aZ4YblIq2SKOj+iGz8*{Zea(CJP00Z`6>PS3m#fbtmV^z{1xC>x>Eb8tm@ zpITCv?S1@vHg+)2m3yA&W5f^35kHC%KPgB2EJpmI9PyGul&!$m4lvr<$dJV9P-dc?C2O^{;zZIt#uloIje_i{;=UB^zcJ-W zin1rBEIVWgccm@GA=)yWsx8MB?R4n$W?sp6fr{c6DK?vg1m_k_Rn>@dh@v@5(CmFO zk$tU1Qd@W~~9cm=K(ip0wf;0zh+7{^aiw4DelbV+K&8bTL|6yPH z|6?`%i+q>nVY)Vi4(%f7^n(c5iMAdI+PC@h%_*&Kj4d122AWga)-k+Cm;m2J=>?HN zdX=1EN?Td{t1+cD7XKQgc&%ZgIKzzLite78F?_I_4)-7K?x`EY_1!)7WB6!yPht$W zboVsWjp4TLo`(7{e6qWzAu)!X-8~Hx#&Az}PlG;&`@2QlN47&LeW~>F=H#yAu8Q$~HENZ7 zB>6~$Qv>*VjC(x!_+H)alB4`)O!Q>($-Rgkkwo8$iEd5aDpmN)xayAN9Z|=(O7j1S zad#%~tiZjYaAp2>3l0Oc0(9*UI7oX9M{9q?9PM?Sti6Gov_D}?`!inF-o)Ruzp{h1 zzp-}h?`)~|54K5ri(Rb!lii{Hi#@IVoBd9Eo7dKW&#Ynmq#Dk9YczgEO)bB-$76g@XqtY@Rd$_oigSqrp@p$?SNEkJ2m+RzZvJ_r?EjG{bjfi1aDGT`p} zzVG|q>F2@>$&`V9>`ebd`%^ldCp*Lxw^M(xM)%$AoqO)l?|=Pr2|xiqn&=`}BJ@tm zSV(nBDia35KH;8nM=EYm8aX(9LV7WQpQts~S6x4tRAEi3*q0HZ|H1JEPZ29WD2)>O zwQEg<*mket2Y$ShkQy4E zA{e{F8EL}4qR(b^22L2PHR5s@6sqA&y&|K+bltDSe!#GputA>jWG(i?Ai6zNr9#Wq z3zaM^9A!Wlw9t(-!&1W9mRHyeEJWq-^nUl0yZ3S~hUEk!R&}XES6DE0=qdu!_!I&e zGpr$Gk~fVj!?lFmKRRGoPcRc7KV-O$(38B>W4}^(%&+O(Llzj)gxt6v$ccJ&TB<|t zbVU-<+Y^+sNMVzOJbDPdO$he*UOX1~F=6G|J`ZfF6<_lB^e)Z{eZB1Xt+aCO|H=_ z_Tp|6`w0AM04&^tF@mY;fp#X8JE5B7>5#vL_P?KWYN{1PF!Tx%28TLqp5Be@0w+yO z=v} z8$*SVR&Fp8Rv7|CLFm{mP2|`-mHjEga(mf<9&F~DtXt=d1!*c}YxfL1AxQgKg zf}vzhF}$ShVXaYAvc&L;j!m?k;Wa{+F8&4~Q}F}oxn5Z^ywwt_nj4oH-XXBVkyKhX z7~UfoIvK+U`kG}W-5FmC*hd5-irtvu6M{ME#^tGfg5fhlM&GOEsz~ZR`ohAO_^P=t z&Basg^KK5e1D*e$sf{MB;dO``o-*+bVa)=0lByG7+@#LDjuWyXtSe9M^R=S(wJSrcdA3rUR}07FYlUN{`8wg)jBgOL0=77O>nv_M zk6SKahck;i&SO_TKZiX>7P9neXpA1@j9#oZa>!sm?nM{I6Cel&Gzip-47vdPnZINl zyNKNQ#uVQw@~MqR{?Z%{p2cD3H>^0qkIdl#=Nu0Igxm!@a&6po$aTZLoW{AJIQA0$ zp>XV_{A1zR%lM~a4xj%F!YZso9$&XcGl*`$;9y2SdW^*wGzRd8F^DdF3!n?%;d>yV K&JGZMK<00rNrG1Z literal 0 HcmV?d00001 diff --git a/server/jpywork/SocketServer.java b/server/jpywork/SocketServer.java new file mode 100644 index 00000000..8eb03195 --- /dev/null +++ b/server/jpywork/SocketServer.java @@ -0,0 +1,1048 @@ +import org.python.core.*; + +public class SocketServer extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject s$1; + private static PyObject s$2; + private static PyObject s$3; + private static PyObject s$4; + private static PyObject s$5; + private static PyObject s$6; + private static PyObject s$7; + private static PyObject s$8; + private static PyObject s$9; + private static PyObject s$10; + private static PyObject s$11; + private static PyObject s$12; + private static PyObject s$13; + private static PyObject s$14; + private static PyObject s$15; + private static PyObject s$16; + private static PyObject s$17; + private static PyObject s$18; + private static PyObject s$19; + private static PyObject s$20; + private static PyObject s$21; + private static PyObject i$22; + private static PyObject s$23; + private static PyObject s$24; + private static PyObject s$25; + private static PyObject s$26; + private static PyObject s$27; + private static PyObject s$28; + private static PyObject s$29; + private static PyObject s$30; + private static PyObject i$31; + private static PyObject s$32; + private static PyObject s$33; + private static PyObject i$34; + private static PyObject i$35; + private static PyObject s$36; + private static PyObject s$37; + private static PyObject s$38; + private static PyObject s$39; + private static PyObject i$40; + private static PyObject s$41; + private static PyObject s$42; + private static PyObject s$43; + private static PyObject s$44; + private static PyObject s$45; + private static PyObject s$46; + private static PyObject s$47; + private static PyObject s$48; + private static PyObject s$49; + private static PyObject s$50; + private static PyObject s$51; + private static PyFunctionTable funcTable; + private static PyCode c$0___init__; + private static PyCode c$1_server_activate; + private static PyCode c$2_serve_forever; + private static PyCode c$3_handle_request; + private static PyCode c$4_verify_request; + private static PyCode c$5_process_request; + private static PyCode c$6_server_close; + private static PyCode c$7_finish_request; + private static PyCode c$8_close_request; + private static PyCode c$9_handle_error; + private static PyCode c$10_BaseServer; + private static PyCode c$11___init__; + private static PyCode c$12_server_bind; + private static PyCode c$13_server_activate; + private static PyCode c$14_server_close; + private static PyCode c$15_fileno; + private static PyCode c$16_get_request; + private static PyCode c$17_close_request; + private static PyCode c$18_TCPServer; + private static PyCode c$19_get_request; + private static PyCode c$20_server_activate; + private static PyCode c$21_close_request; + private static PyCode c$22_UDPServer; + private static PyCode c$23_collect_children; + private static PyCode c$24_process_request; + private static PyCode c$25_ForkingMixIn; + private static PyCode c$26_process_request; + private static PyCode c$27_ThreadingMixIn; + private static PyCode c$28_ForkingUDPServer; + private static PyCode c$29_ForkingTCPServer; + private static PyCode c$30_ThreadingUDPServer; + private static PyCode c$31_ThreadingTCPServer; + private static PyCode c$32_UnixStreamServer; + private static PyCode c$33_UnixDatagramServer; + private static PyCode c$34_ThreadingUnixStreamServer; + private static PyCode c$35_ThreadingUnixDatagramServer; + private static PyCode c$36___init__; + private static PyCode c$37_setup; + private static PyCode c$38___del__; + private static PyCode c$39_handle; + private static PyCode c$40_finish; + private static PyCode c$41_BaseRequestHandler; + private static PyCode c$42_setup; + private static PyCode c$43_finish; + private static PyCode c$44_StreamRequestHandler; + private static PyCode c$45_setup; + private static PyCode c$46_finish; + private static PyCode c$47_DatagramRequestHandler; + private static PyCode c$48_main; + private static void initConstants() { + s$0 = Py.newString("Generic socket server classes.\012\012This module tries to capture the various aspects of defining a server:\012\012For socket-based servers:\012\012- address family:\012 - AF_INET: IP (Internet Protocol) sockets (default)\012 - AF_UNIX: Unix domain sockets\012 - others, e.g. AF_DECNET are conceivable (see \012- socket type:\012 - SOCK_STREAM (reliable stream, e.g. TCP)\012 - SOCK_DGRAM (datagrams, e.g. UDP)\012\012For request-based servers (including socket-based):\012\012- client address verification before further looking at the request\012 (This is actually a hook for any processing that needs to look\012 at the request before anything else, e.g. logging)\012- how to handle multiple requests:\012 - synchronous (one request is handled at a time)\012 - forking (each request is handled by a new process)\012 - threading (each request is handled by a new thread)\012\012The classes in this module favor the server type that is simplest to\012write: a synchronous TCP/IP server. This is bad class design, but\012save some typing. (There's also the issue that a deep class hierarchy\012slows down method lookups.)\012\012There are five classes in an inheritance diagram, four of which represent\012synchronous servers of four types:\012\012 +------------+\012 | BaseServer |\012 +------------+\012 |\012 v\012 +-----------+ +------------------+\012 | TCPServer |------->| UnixStreamServer |\012 +-----------+ +------------------+\012 |\012 v\012 +-----------+ +--------------------+\012 | UDPServer |------->| UnixDatagramServer |\012 +-----------+ +--------------------+\012\012Note that UnixDatagramServer derives from UDPServer, not from\012UnixStreamServer -- the only difference between an IP and a Unix\012stream server is the address family, which is simply repeated in both\012unix server classes.\012\012Forking and threading versions of each type of server can be created\012using the ForkingServer and ThreadingServer mix-in classes. For\012instance, a threading UDP server class is created as follows:\012\012 class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass\012\012The Mix-in class must come first, since it overrides a method defined\012in UDPServer!\012\012To implement a service, you must derive a class from\012BaseRequestHandler and redefine its handle() method. You can then run\012various versions of the service by combining one of the server classes\012with your request handler class.\012\012The request handler class must be different for datagram or stream\012services. This can be hidden by using the mix-in request handler\012classes StreamRequestHandler or DatagramRequestHandler.\012\012Of course, you still have to use your head!\012\012For instance, it makes no sense to use a forking server if the service\012contains state in memory that can be modified by requests (since the\012modifications in the child process would never reach the initial state\012kept in the parent process and passed to each child). In this case,\012you can use a threading server, but you will probably have to use\012locks to avoid two requests that come in nearly simultaneous to apply\012conflicting changes to the server state.\012\012On the other hand, if you are building e.g. an HTTP server, where all\012data is stored externally (e.g. in the file system), a synchronous\012class will essentially render the service \"deaf\" while one request is\012being handled -- which may be for a very long time if a client is slow\012to reqd all the data it has requested. Here a threading or forking\012server is appropriate.\012\012In some cases, it may be appropriate to process part of a request\012synchronously, but to finish processing in a forked child depending on\012the request data. This can be implemented by using a synchronous\012server and doing an explicit fork in the request handler class\012handle() method.\012\012Another approach to handling multiple simultaneous requests in an\012environment that supports neither threads nor fork (or where these are\012too expensive or inappropriate for the service) is to maintain an\012explicit table of partially finished requests and to use select() to\012decide which request to work on next (or whether to handle a new\012incoming request). This is particularly important for stream services\012where each client can potentially be connected for a long time (if\012threads or subprocesses cannot be used).\012\012Future work:\012- Standard classes for Sun RPC (which uses either UDP or TCP)\012- Standard mix-in classes to implement various authentication\012 and encryption schemes\012- Standard framework for select-based multiplexing\012\012XXX Open problems:\012- What to do with out-of-band data?\012\012BaseServer:\012- split generic \"request\" functionality out into BaseServer class.\012 Copyright (C) 2000 Luke Kenneth Casson Leighton \012\012 example: read entries from a SQL database (requires overriding\012 get_request() to return a table entry from the database).\012 entry is processed by a RequestHandlerClass.\012\012"); + s$1 = Py.newString("0.4"); + s$2 = Py.newString("TCPServer"); + s$3 = Py.newString("UDPServer"); + s$4 = Py.newString("ForkingUDPServer"); + s$5 = Py.newString("ForkingTCPServer"); + s$6 = Py.newString("ThreadingUDPServer"); + s$7 = Py.newString("ThreadingTCPServer"); + s$8 = Py.newString("BaseRequestHandler"); + s$9 = Py.newString("StreamRequestHandler"); + s$10 = Py.newString("DatagramRequestHandler"); + s$11 = Py.newString("ThreadingMixIn"); + s$12 = Py.newString("ForkingMixIn"); + s$13 = Py.newString("AF_UNIX"); + s$14 = Py.newString("UnixStreamServer"); + s$15 = Py.newString("UnixDatagramServer"); + s$16 = Py.newString("ThreadingUnixStreamServer"); + s$17 = Py.newString("ThreadingUnixDatagramServer"); + s$18 = Py.newString("Base class for server classes.\012\012 Methods for the caller:\012\012 - __init__(server_address, RequestHandlerClass)\012 - serve_forever()\012 - handle_request() # if you do not use serve_forever()\012 - fileno() -> int # for select()\012\012 Methods that may be overridden:\012\012 - server_bind()\012 - server_activate()\012 - get_request() -> request, client_address\012 - verify_request(request, client_address)\012 - server_close()\012 - process_request(request, client_address)\012 - close_request(request)\012 - handle_error()\012\012 Methods for derived classes:\012\012 - finish_request(request, client_address)\012\012 Class variables that may be overridden by derived classes or\012 instances:\012\012 - address_family\012 - socket_type\012 - reuse_address\012\012 Instance variables:\012\012 - RequestHandlerClass\012 - socket\012\012 "); + s$19 = Py.newString("Constructor. May be extended, do not override."); + s$20 = Py.newString("Called by constructor to activate the server.\012\012 May be overridden.\012\012 "); + s$21 = Py.newString("Handle one request at a time until doomsday."); + i$22 = Py.newInteger(1); + s$23 = Py.newString("Handle one request, possibly blocking."); + s$24 = Py.newString("Verify the request. May be overridden.\012\012 Return true if we should proceed with this request.\012\012 "); + s$25 = Py.newString("Call finish_request.\012\012 Overridden by ForkingMixIn and ThreadingMixIn.\012\012 "); + s$26 = Py.newString("Called to clean-up the server.\012\012 May be overridden.\012\012 "); + s$27 = Py.newString("Finish one request by instantiating RequestHandlerClass."); + s$28 = Py.newString("Called to clean up an individual request."); + s$29 = Py.newString("Handle an error gracefully. May be overridden.\012\012 The default is to print a traceback and continue.\012\012 "); + s$30 = Py.newString("-"); + i$31 = Py.newInteger(40); + s$32 = Py.newString("Exception happened during processing of request from"); + s$33 = Py.newString("Base class for various socket-based server classes.\012\012 Defaults to synchronous IP stream (i.e., TCP).\012\012 Methods for the caller:\012\012 - __init__(server_address, RequestHandlerClass)\012 - serve_forever()\012 - handle_request() # if you don't use serve_forever()\012 - fileno() -> int # for select()\012\012 Methods that may be overridden:\012\012 - server_bind()\012 - server_activate()\012 - get_request() -> request, client_address\012 - verify_request(request, client_address)\012 - process_request(request, client_address)\012 - close_request(request)\012 - handle_error()\012\012 Methods for derived classes:\012\012 - finish_request(request, client_address)\012\012 Class variables that may be overridden by derived classes or\012 instances:\012\012 - address_family\012 - socket_type\012 - request_queue_size (only for stream sockets)\012 - reuse_address\012\012 Instance variables:\012\012 - server_address\012 - RequestHandlerClass\012 - socket\012\012 "); + i$34 = Py.newInteger(5); + i$35 = Py.newInteger(0); + s$36 = Py.newString("Called by constructor to bind the socket.\012\012 May be overridden.\012\012 "); + s$37 = Py.newString("Return socket file number.\012\012 Interface required by select().\012\012 "); + s$38 = Py.newString("Get the request and client address from the socket.\012\012 May be overridden.\012\012 "); + s$39 = Py.newString("UDP server class."); + i$40 = Py.newInteger(8192); + s$41 = Py.newString("Mix-in class to handle each request in a new process."); + s$42 = Py.newString("Internal routine to wait for died children."); + s$43 = Py.newString("Fork a new subprocess to process the request."); + s$44 = Py.newString("Mix-in class to handle each request in a new thread."); + s$45 = Py.newString("Start a new thread to process the request."); + s$46 = Py.newString("Base class for request handler classes.\012\012 This class is instantiated for each request to be handled. The\012 constructor sets the instance variables request, client_address\012 and server, and then calls the handle() method. To implement a\012 specific service, all you need to do is to derive a class which\012 defines a handle() method.\012\012 The handle() method can find the request as self.request, the\012 client address as self.client_address, and the server (in case it\012 needs access to per-server information) as self.server. Since a\012 separate instance is created for each request, the handle() method\012 can define arbitrary other instance variariables.\012\012 "); + s$47 = Py.newString("Define self.rfile and self.wfile for stream sockets."); + s$48 = Py.newString("rb"); + s$49 = Py.newString("wb"); + s$50 = Py.newString("Define self.rfile and self.wfile for datagram sockets."); + s$51 = Py.newString("/usr/share/jython/Lib-cpython/SocketServer.py"); + funcTable = new _PyInner(); + c$0___init__ = Py.newCode(3, new String[] {"self", "server_address", "RequestHandlerClass"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "__init__", false, false, funcTable, 0, null, null, 0, 1); + c$1_server_activate = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "server_activate", false, false, funcTable, 1, null, null, 0, 1); + c$2_serve_forever = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "serve_forever", false, false, funcTable, 2, null, null, 0, 1); + c$3_handle_request = Py.newCode(1, new String[] {"self", "client_address", "request"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "handle_request", false, false, funcTable, 3, null, null, 0, 1); + c$4_verify_request = Py.newCode(3, new String[] {"self", "request", "client_address"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "verify_request", false, false, funcTable, 4, null, null, 0, 1); + c$5_process_request = Py.newCode(3, new String[] {"self", "request", "client_address"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "process_request", false, false, funcTable, 5, null, null, 0, 1); + c$6_server_close = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "server_close", false, false, funcTable, 6, null, null, 0, 1); + c$7_finish_request = Py.newCode(3, new String[] {"self", "request", "client_address"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "finish_request", false, false, funcTable, 7, null, null, 0, 1); + c$8_close_request = Py.newCode(2, new String[] {"self", "request"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "close_request", false, false, funcTable, 8, null, null, 0, 1); + c$9_handle_error = Py.newCode(3, new String[] {"self", "request", "client_address", "traceback"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "handle_error", false, false, funcTable, 9, null, null, 0, 1); + c$10_BaseServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "BaseServer", false, false, funcTable, 10, null, null, 0, 0); + c$11___init__ = Py.newCode(3, new String[] {"self", "server_address", "RequestHandlerClass"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "__init__", false, false, funcTable, 11, null, null, 0, 1); + c$12_server_bind = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "server_bind", false, false, funcTable, 12, null, null, 0, 1); + c$13_server_activate = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "server_activate", false, false, funcTable, 13, null, null, 0, 1); + c$14_server_close = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "server_close", false, false, funcTable, 14, null, null, 0, 1); + c$15_fileno = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "fileno", false, false, funcTable, 15, null, null, 0, 1); + c$16_get_request = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "get_request", false, false, funcTable, 16, null, null, 0, 1); + c$17_close_request = Py.newCode(2, new String[] {"self", "request"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "close_request", false, false, funcTable, 17, null, null, 0, 1); + c$18_TCPServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "TCPServer", false, false, funcTable, 18, null, null, 0, 0); + c$19_get_request = Py.newCode(1, new String[] {"self", "client_addr", "data"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "get_request", false, false, funcTable, 19, null, null, 0, 1); + c$20_server_activate = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "server_activate", false, false, funcTable, 20, null, null, 0, 1); + c$21_close_request = Py.newCode(2, new String[] {"self", "request"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "close_request", false, false, funcTable, 21, null, null, 0, 1); + c$22_UDPServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "UDPServer", false, false, funcTable, 22, null, null, 0, 0); + c$23_collect_children = Py.newCode(1, new String[] {"self", "status", "pid", "options"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "collect_children", false, false, funcTable, 23, null, null, 0, 1); + c$24_process_request = Py.newCode(3, new String[] {"self", "request", "client_address", "pid"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "process_request", false, false, funcTable, 24, null, null, 0, 1); + c$25_ForkingMixIn = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ForkingMixIn", false, false, funcTable, 25, null, null, 0, 0); + c$26_process_request = Py.newCode(3, new String[] {"self", "request", "client_address", "t", "threading"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "process_request", false, false, funcTable, 26, null, null, 0, 1); + c$27_ThreadingMixIn = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ThreadingMixIn", false, false, funcTable, 27, null, null, 0, 0); + c$28_ForkingUDPServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ForkingUDPServer", false, false, funcTable, 28, null, null, 0, 0); + c$29_ForkingTCPServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ForkingTCPServer", false, false, funcTable, 29, null, null, 0, 0); + c$30_ThreadingUDPServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ThreadingUDPServer", false, false, funcTable, 30, null, null, 0, 0); + c$31_ThreadingTCPServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ThreadingTCPServer", false, false, funcTable, 31, null, null, 0, 0); + c$32_UnixStreamServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "UnixStreamServer", false, false, funcTable, 32, null, null, 0, 0); + c$33_UnixDatagramServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "UnixDatagramServer", false, false, funcTable, 33, null, null, 0, 0); + c$34_ThreadingUnixStreamServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ThreadingUnixStreamServer", false, false, funcTable, 34, null, null, 0, 0); + c$35_ThreadingUnixDatagramServer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "ThreadingUnixDatagramServer", false, false, funcTable, 35, null, null, 0, 0); + c$36___init__ = Py.newCode(4, new String[] {"self", "request", "client_address", "server"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "__init__", false, false, funcTable, 36, null, null, 0, 1); + c$37_setup = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "setup", false, false, funcTable, 37, null, null, 0, 1); + c$38___del__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "__del__", false, false, funcTable, 38, null, null, 0, 1); + c$39_handle = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "handle", false, false, funcTable, 39, null, null, 0, 1); + c$40_finish = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "finish", false, false, funcTable, 40, null, null, 0, 1); + c$41_BaseRequestHandler = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "BaseRequestHandler", false, false, funcTable, 41, null, null, 0, 0); + c$42_setup = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "setup", false, false, funcTable, 42, null, null, 0, 1); + c$43_finish = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "finish", false, false, funcTable, 43, null, null, 0, 1); + c$44_StreamRequestHandler = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "StreamRequestHandler", false, false, funcTable, 44, null, null, 0, 0); + c$45_setup = Py.newCode(1, new String[] {"self", "StringIO"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "setup", false, false, funcTable, 45, null, null, 0, 1); + c$46_finish = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/SocketServer.py", "finish", false, false, funcTable, 46, null, null, 0, 1); + c$47_DatagramRequestHandler = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "DatagramRequestHandler", false, false, funcTable, 47, null, null, 0, 0); + c$48_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/SocketServer.py", "main", false, false, funcTable, 48, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$48_main == null) _PyInner.initConstants(); + return c$48_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.__init__$1(frame); + case 1: + return _PyInner.server_activate$2(frame); + case 2: + return _PyInner.serve_forever$3(frame); + case 3: + return _PyInner.handle_request$4(frame); + case 4: + return _PyInner.verify_request$5(frame); + case 5: + return _PyInner.process_request$6(frame); + case 6: + return _PyInner.server_close$7(frame); + case 7: + return _PyInner.finish_request$8(frame); + case 8: + return _PyInner.close_request$9(frame); + case 9: + return _PyInner.handle_error$10(frame); + case 10: + return _PyInner.BaseServer$11(frame); + case 11: + return _PyInner.__init__$12(frame); + case 12: + return _PyInner.server_bind$13(frame); + case 13: + return _PyInner.server_activate$14(frame); + case 14: + return _PyInner.server_close$15(frame); + case 15: + return _PyInner.fileno$16(frame); + case 16: + return _PyInner.get_request$17(frame); + case 17: + return _PyInner.close_request$18(frame); + case 18: + return _PyInner.TCPServer$19(frame); + case 19: + return _PyInner.get_request$20(frame); + case 20: + return _PyInner.server_activate$21(frame); + case 21: + return _PyInner.close_request$22(frame); + case 22: + return _PyInner.UDPServer$23(frame); + case 23: + return _PyInner.collect_children$24(frame); + case 24: + return _PyInner.process_request$25(frame); + case 25: + return _PyInner.ForkingMixIn$26(frame); + case 26: + return _PyInner.process_request$27(frame); + case 27: + return _PyInner.ThreadingMixIn$28(frame); + case 28: + return _PyInner.ForkingUDPServer$29(frame); + case 29: + return _PyInner.ForkingTCPServer$30(frame); + case 30: + return _PyInner.ThreadingUDPServer$31(frame); + case 31: + return _PyInner.ThreadingTCPServer$32(frame); + case 32: + return _PyInner.UnixStreamServer$33(frame); + case 33: + return _PyInner.UnixDatagramServer$34(frame); + case 34: + return _PyInner.ThreadingUnixStreamServer$35(frame); + case 35: + return _PyInner.ThreadingUnixDatagramServer$36(frame); + case 36: + return _PyInner.__init__$37(frame); + case 37: + return _PyInner.setup$38(frame); + case 38: + return _PyInner.__del__$39(frame); + case 39: + return _PyInner.handle$40(frame); + case 40: + return _PyInner.finish$41(frame); + case 41: + return _PyInner.BaseRequestHandler$42(frame); + case 42: + return _PyInner.setup$43(frame); + case 43: + return _PyInner.finish$44(frame); + case 44: + return _PyInner.StreamRequestHandler$45(frame); + case 45: + return _PyInner.setup$46(frame); + case 46: + return _PyInner.finish$47(frame); + case 47: + return _PyInner.DatagramRequestHandler$48(frame); + case 48: + return _PyInner.main$49(frame); + default: + return null; + } + } + + private static PyObject __init__$1(PyFrame frame) { + /* Constructor. May be extended, do not override. */ + frame.getlocal(0).__setattr__("server_address", frame.getlocal(1)); + frame.getlocal(0).__setattr__("RequestHandlerClass", frame.getlocal(2)); + return Py.None; + } + + private static PyObject server_activate$2(PyFrame frame) { + /* Called by constructor to activate the server. + + May be overridden. + + */ + // pass + return Py.None; + } + + private static PyObject serve_forever$3(PyFrame frame) { + /* Handle one request at a time until doomsday. */ + while (i$22.__nonzero__()) { + frame.getlocal(0).invoke("handle_request"); + } + return Py.None; + } + + private static PyObject handle_request$4(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + PyException t$0$PyException; + + // Code + /* Handle one request, possibly blocking. */ + try { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).invoke("get_request"), 2); + frame.setlocal(2, t$0$PyObject__[0]); + frame.setlocal(1, t$0$PyObject__[1]); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("socket").__getattr__("error"))) { + return Py.None; + } + else throw t$0$PyException; + } + if (frame.getlocal(0).invoke("verify_request", frame.getlocal(2), frame.getlocal(1)).__nonzero__()) { + try { + frame.getlocal(0).invoke("process_request", frame.getlocal(2), frame.getlocal(1)); + } + catch (Throwable x$1) { + t$0$PyException = Py.setException(x$1, frame); + frame.getlocal(0).invoke("handle_error", frame.getlocal(2), frame.getlocal(1)); + frame.getlocal(0).invoke("close_request", frame.getlocal(2)); + } + } + return Py.None; + } + + private static PyObject verify_request$5(PyFrame frame) { + /* Verify the request. May be overridden. + + Return true if we should proceed with this request. + + */ + return i$22; + } + + private static PyObject process_request$6(PyFrame frame) { + /* Call finish_request. + + Overridden by ForkingMixIn and ThreadingMixIn. + + */ + frame.getlocal(0).invoke("finish_request", frame.getlocal(1), frame.getlocal(2)); + frame.getlocal(0).invoke("close_request", frame.getlocal(1)); + return Py.None; + } + + private static PyObject server_close$7(PyFrame frame) { + /* Called to clean-up the server. + + May be overridden. + + */ + // pass + return Py.None; + } + + private static PyObject finish_request$8(PyFrame frame) { + /* Finish one request by instantiating RequestHandlerClass. */ + frame.getlocal(0).invoke("RequestHandlerClass", new PyObject[] {frame.getlocal(1), frame.getlocal(2), frame.getlocal(0)}); + return Py.None; + } + + private static PyObject close_request$9(PyFrame frame) { + /* Called to clean up an individual request. */ + // pass + return Py.None; + } + + private static PyObject handle_error$10(PyFrame frame) { + /* Handle an error gracefully. May be overridden. + + The default is to print a traceback and continue. + + */ + Py.println(s$30._mul(i$31)); + Py.printComma(s$32); + Py.println(frame.getlocal(2)); + frame.setlocal(3, org.python.core.imp.importOne("traceback", frame)); + frame.getlocal(3).__getattr__("print_exc").__call__(); + Py.println(s$30._mul(i$31)); + return Py.None; + } + + private static PyObject BaseServer$11(PyFrame frame) { + /* Base class for server classes. + + Methods for the caller: + + - __init__(server_address, RequestHandlerClass) + - serve_forever() + - handle_request() # if you do not use serve_forever() + - fileno() -> int # for select() + + Methods that may be overridden: + + - server_bind() + - server_activate() + - get_request() -> request, client_address + - verify_request(request, client_address) + - server_close() + - process_request(request, client_address) + - close_request(request) + - handle_error() + + Methods for derived classes: + + - finish_request(request, client_address) + + Class variables that may be overridden by derived classes or + instances: + + - address_family + - socket_type + - reuse_address + + Instance variables: + + - RequestHandlerClass + - socket + + */ + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$0___init__)); + frame.setlocal("server_activate", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_server_activate)); + frame.setlocal("serve_forever", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_serve_forever)); + frame.setlocal("handle_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_handle_request)); + frame.setlocal("verify_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_verify_request)); + frame.setlocal("process_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_process_request)); + frame.setlocal("server_close", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_server_close)); + frame.setlocal("finish_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_finish_request)); + frame.setlocal("close_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_close_request)); + frame.setlocal("handle_error", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_handle_error)); + return frame.getf_locals(); + } + + private static PyObject __init__$12(PyFrame frame) { + /* Constructor. May be extended, do not override. */ + frame.getglobal("BaseServer").invoke("__init__", new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2)}); + frame.getlocal(0).__setattr__("socket", frame.getglobal("socket").__getattr__("socket").__call__(frame.getlocal(0).__getattr__("address_family"), frame.getlocal(0).__getattr__("socket_type"))); + frame.getlocal(0).invoke("server_bind"); + frame.getlocal(0).invoke("server_activate"); + return Py.None; + } + + private static PyObject server_bind$13(PyFrame frame) { + /* Called by constructor to bind the socket. + + May be overridden. + + */ + if (frame.getlocal(0).__getattr__("allow_reuse_address").__nonzero__()) { + frame.getlocal(0).__getattr__("socket").invoke("setsockopt", new PyObject[] {frame.getglobal("socket").__getattr__("SOL_SOCKET"), frame.getglobal("socket").__getattr__("SO_REUSEADDR"), i$22}); + } + frame.getlocal(0).__getattr__("socket").invoke("bind", frame.getlocal(0).__getattr__("server_address")); + return Py.None; + } + + private static PyObject server_activate$14(PyFrame frame) { + /* Called by constructor to activate the server. + + May be overridden. + + */ + frame.getlocal(0).__getattr__("socket").invoke("listen", frame.getlocal(0).__getattr__("request_queue_size")); + return Py.None; + } + + private static PyObject server_close$15(PyFrame frame) { + /* Called to clean-up the server. + + May be overridden. + + */ + frame.getlocal(0).__getattr__("socket").invoke("close"); + return Py.None; + } + + private static PyObject fileno$16(PyFrame frame) { + /* Return socket file number. + + Interface required by select(). + + */ + return frame.getlocal(0).__getattr__("socket").invoke("fileno"); + } + + private static PyObject get_request$17(PyFrame frame) { + /* Get the request and client address from the socket. + + May be overridden. + + */ + return frame.getlocal(0).__getattr__("socket").invoke("accept"); + } + + private static PyObject close_request$18(PyFrame frame) { + /* Called to clean up an individual request. */ + frame.getlocal(1).invoke("close"); + return Py.None; + } + + private static PyObject TCPServer$19(PyFrame frame) { + /* Base class for various socket-based server classes. + + Defaults to synchronous IP stream (i.e., TCP). + + Methods for the caller: + + - __init__(server_address, RequestHandlerClass) + - serve_forever() + - handle_request() # if you don't use serve_forever() + - fileno() -> int # for select() + + Methods that may be overridden: + + - server_bind() + - server_activate() + - get_request() -> request, client_address + - verify_request(request, client_address) + - process_request(request, client_address) + - close_request(request) + - handle_error() + + Methods for derived classes: + + - finish_request(request, client_address) + + Class variables that may be overridden by derived classes or + instances: + + - address_family + - socket_type + - request_queue_size (only for stream sockets) + - reuse_address + + Instance variables: + + - server_address + - RequestHandlerClass + - socket + + */ + frame.setlocal("address_family", frame.getname("socket").__getattr__("AF_INET")); + frame.setlocal("socket_type", frame.getname("socket").__getattr__("SOCK_STREAM")); + frame.setlocal("request_queue_size", i$34); + frame.setlocal("allow_reuse_address", i$35); + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$11___init__)); + frame.setlocal("server_bind", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_server_bind)); + frame.setlocal("server_activate", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_server_activate)); + frame.setlocal("server_close", new PyFunction(frame.f_globals, new PyObject[] {}, c$14_server_close)); + frame.setlocal("fileno", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_fileno)); + frame.setlocal("get_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$16_get_request)); + frame.setlocal("close_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$17_close_request)); + return frame.getf_locals(); + } + + private static PyObject get_request$20(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getattr__("socket").invoke("recvfrom", frame.getlocal(0).__getattr__("max_packet_size")), 2); + frame.setlocal(2, t$0$PyObject__[0]); + frame.setlocal(1, t$0$PyObject__[1]); + return new PyTuple(new PyObject[] {new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(0).__getattr__("socket")}), frame.getlocal(1)}); + } + + private static PyObject server_activate$21(PyFrame frame) { + // pass + return Py.None; + } + + private static PyObject close_request$22(PyFrame frame) { + // pass + return Py.None; + } + + private static PyObject UDPServer$23(PyFrame frame) { + /* UDP server class. */ + frame.setlocal("allow_reuse_address", i$35); + frame.setlocal("socket_type", frame.getname("socket").__getattr__("SOCK_DGRAM")); + frame.setlocal("max_packet_size", i$40); + frame.setlocal("get_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$19_get_request)); + frame.setlocal("server_activate", new PyFunction(frame.f_globals, new PyObject[] {}, c$20_server_activate)); + frame.setlocal("close_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$21_close_request)); + return frame.getf_locals(); + } + + private static PyObject collect_children$24(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + PyException t$0$PyException; + + // Code + /* Internal routine to wait for died children. */ + while (frame.getlocal(0).__getattr__("active_children").__nonzero__()) { + if (frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("active_children"))._lt(frame.getlocal(0).__getattr__("max_children")).__nonzero__()) { + frame.setlocal(3, frame.getglobal("os").__getattr__("WNOHANG")); + } + else { + frame.setlocal(3, i$35); + } + try { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("os").__getattr__("waitpid").__call__(i$35, frame.getlocal(3)), 2); + frame.setlocal(2, t$0$PyObject__[0]); + frame.setlocal(1, t$0$PyObject__[1]); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("os").__getattr__("error"))) { + frame.setlocal(2, frame.getglobal("None")); + } + else throw t$0$PyException; + } + if (frame.getlocal(2).__not__().__nonzero__()) { + break; + } + frame.getlocal(0).__getattr__("active_children").invoke("remove", frame.getlocal(2)); + } + return Py.None; + } + + private static PyObject process_request$25(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + + // Code + /* Fork a new subprocess to process the request. */ + frame.getlocal(0).invoke("collect_children"); + frame.setlocal(3, frame.getglobal("os").__getattr__("fork").__call__()); + if (frame.getlocal(3).__nonzero__()) { + if (frame.getlocal(0).__getattr__("active_children")._is(frame.getglobal("None")).__nonzero__()) { + frame.getlocal(0).__setattr__("active_children", new PyList(new PyObject[] {})); + } + frame.getlocal(0).__getattr__("active_children").invoke("append", frame.getlocal(3)); + frame.getlocal(0).invoke("close_request", frame.getlocal(1)); + return Py.None; + } + else { + try { + frame.getlocal(0).invoke("finish_request", frame.getlocal(1), frame.getlocal(2)); + frame.getglobal("os").__getattr__("_exit").__call__(i$35); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + try { + frame.getlocal(0).invoke("handle_error", frame.getlocal(1), frame.getlocal(2)); + } + finally { + frame.getglobal("os").__getattr__("_exit").__call__(i$22); + } + } + } + return Py.None; + } + + private static PyObject ForkingMixIn$26(PyFrame frame) { + /* Mix-in class to handle each request in a new process. */ + frame.setlocal("active_children", frame.getname("None")); + frame.setlocal("max_children", i$31); + frame.setlocal("collect_children", new PyFunction(frame.f_globals, new PyObject[] {}, c$23_collect_children)); + frame.setlocal("process_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$24_process_request)); + return frame.getf_locals(); + } + + private static PyObject process_request$27(PyFrame frame) { + /* Start a new thread to process the request. */ + frame.setlocal(4, org.python.core.imp.importOne("threading", frame)); + frame.setlocal(3, frame.getlocal(4).__getattr__("Thread").__call__(new PyObject[] {frame.getlocal(0).__getattr__("finish_request"), new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(2)})}, new String[] {"target", "args"})); + frame.getlocal(3).invoke("start"); + return Py.None; + } + + private static PyObject ThreadingMixIn$28(PyFrame frame) { + /* Mix-in class to handle each request in a new thread. */ + frame.setlocal("process_request", new PyFunction(frame.f_globals, new PyObject[] {}, c$26_process_request)); + return frame.getf_locals(); + } + + private static PyObject ForkingUDPServer$29(PyFrame frame) { + // pass + return frame.getf_locals(); + } + + private static PyObject ForkingTCPServer$30(PyFrame frame) { + // pass + return frame.getf_locals(); + } + + private static PyObject ThreadingUDPServer$31(PyFrame frame) { + // pass + return frame.getf_locals(); + } + + private static PyObject ThreadingTCPServer$32(PyFrame frame) { + // pass + return frame.getf_locals(); + } + + private static PyObject UnixStreamServer$33(PyFrame frame) { + frame.setlocal("address_family", frame.getname("socket").__getattr__("AF_UNIX")); + return frame.getf_locals(); + } + + private static PyObject UnixDatagramServer$34(PyFrame frame) { + frame.setlocal("address_family", frame.getname("socket").__getattr__("AF_UNIX")); + return frame.getf_locals(); + } + + private static PyObject ThreadingUnixStreamServer$35(PyFrame frame) { + // pass + return frame.getf_locals(); + } + + private static PyObject ThreadingUnixDatagramServer$36(PyFrame frame) { + // pass + return frame.getf_locals(); + } + + private static PyObject __init__$37(PyFrame frame) { + frame.getlocal(0).__setattr__("request", frame.getlocal(1)); + frame.getlocal(0).__setattr__("client_address", frame.getlocal(2)); + frame.getlocal(0).__setattr__("server", frame.getlocal(3)); + try { + frame.getlocal(0).invoke("setup"); + frame.getlocal(0).invoke("handle"); + frame.getlocal(0).invoke("finish"); + } + finally { + frame.getglobal("sys").__setattr__("exc_traceback", frame.getglobal("None")); + } + return Py.None; + } + + private static PyObject setup$38(PyFrame frame) { + // pass + return Py.None; + } + + private static PyObject __del__$39(PyFrame frame) { + // pass + return Py.None; + } + + private static PyObject handle$40(PyFrame frame) { + // pass + return Py.None; + } + + private static PyObject finish$41(PyFrame frame) { + // pass + return Py.None; + } + + private static PyObject BaseRequestHandler$42(PyFrame frame) { + /* Base class for request handler classes. + + This class is instantiated for each request to be handled. The + constructor sets the instance variables request, client_address + and server, and then calls the handle() method. To implement a + specific service, all you need to do is to derive a class which + defines a handle() method. + + The handle() method can find the request as self.request, the + client address as self.client_address, and the server (in case it + needs access to per-server information) as self.server. Since a + separate instance is created for each request, the handle() method + can define arbitrary other instance variariables. + + */ + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$36___init__)); + frame.setlocal("setup", new PyFunction(frame.f_globals, new PyObject[] {}, c$37_setup)); + frame.setlocal("__del__", new PyFunction(frame.f_globals, new PyObject[] {}, c$38___del__)); + frame.setlocal("handle", new PyFunction(frame.f_globals, new PyObject[] {}, c$39_handle)); + frame.setlocal("finish", new PyFunction(frame.f_globals, new PyObject[] {}, c$40_finish)); + return frame.getf_locals(); + } + + private static PyObject setup$43(PyFrame frame) { + frame.getlocal(0).__setattr__("connection", frame.getlocal(0).__getattr__("request")); + frame.getlocal(0).__setattr__("rfile", frame.getlocal(0).__getattr__("connection").invoke("makefile", s$48, frame.getlocal(0).__getattr__("rbufsize"))); + frame.getlocal(0).__setattr__("wfile", frame.getlocal(0).__getattr__("connection").invoke("makefile", s$49, frame.getlocal(0).__getattr__("wbufsize"))); + return Py.None; + } + + private static PyObject finish$44(PyFrame frame) { + frame.getlocal(0).__getattr__("wfile").invoke("flush"); + frame.getlocal(0).__getattr__("wfile").invoke("close"); + frame.getlocal(0).__getattr__("rfile").invoke("close"); + return Py.None; + } + + private static PyObject StreamRequestHandler$45(PyFrame frame) { + /* Define self.rfile and self.wfile for stream sockets. */ + frame.setlocal("rbufsize", i$22.__neg__()); + frame.setlocal("wbufsize", i$35); + frame.setlocal("setup", new PyFunction(frame.f_globals, new PyObject[] {}, c$42_setup)); + frame.setlocal("finish", new PyFunction(frame.f_globals, new PyObject[] {}, c$43_finish)); + return frame.getf_locals(); + } + + private static PyObject setup$46(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + frame.setlocal(1, org.python.core.imp.importOne("StringIO", frame)); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getattr__("request"), 2); + frame.getlocal(0).__setattr__("packet", t$0$PyObject__[0]); + frame.getlocal(0).__setattr__("socket", t$0$PyObject__[1]); + frame.getlocal(0).__setattr__("rfile", frame.getlocal(1).__getattr__("StringIO").__call__(frame.getlocal(0).__getattr__("packet"))); + frame.getlocal(0).__setattr__("wfile", frame.getlocal(1).__getattr__("StringIO").__call__()); + return Py.None; + } + + private static PyObject finish$47(PyFrame frame) { + frame.getlocal(0).__getattr__("socket").invoke("sendto", frame.getlocal(0).__getattr__("wfile").invoke("getvalue"), frame.getlocal(0).__getattr__("client_address")); + return Py.None; + } + + private static PyObject DatagramRequestHandler$48(PyFrame frame) { + /* Define self.rfile and self.wfile for datagram sockets. */ + frame.setlocal("setup", new PyFunction(frame.f_globals, new PyObject[] {}, c$45_setup)); + frame.setlocal("finish", new PyFunction(frame.f_globals, new PyObject[] {}, c$46_finish)); + return frame.getf_locals(); + } + + private static PyObject main$49(PyFrame frame) { + frame.setglobal("__file__", s$51); + + /* Generic socket server classes. + + This module tries to capture the various aspects of defining a server: + + For socket-based servers: + + - address family: + - AF_INET: IP (Internet Protocol) sockets (default) + - AF_UNIX: Unix domain sockets + - others, e.g. AF_DECNET are conceivable (see + - socket type: + - SOCK_STREAM (reliable stream, e.g. TCP) + - SOCK_DGRAM (datagrams, e.g. UDP) + + For request-based servers (including socket-based): + + - client address verification before further looking at the request + (This is actually a hook for any processing that needs to look + at the request before anything else, e.g. logging) + - how to handle multiple requests: + - synchronous (one request is handled at a time) + - forking (each request is handled by a new process) + - threading (each request is handled by a new thread) + + The classes in this module favor the server type that is simplest to + write: a synchronous TCP/IP server. This is bad class design, but + save some typing. (There's also the issue that a deep class hierarchy + slows down method lookups.) + + There are five classes in an inheritance diagram, four of which represent + synchronous servers of four types: + + +------------+ + | BaseServer | + +------------+ + | + v + +-----------+ +------------------+ + | TCPServer |------->| UnixStreamServer | + +-----------+ +------------------+ + | + v + +-----------+ +--------------------+ + | UDPServer |------->| UnixDatagramServer | + +-----------+ +--------------------+ + + Note that UnixDatagramServer derives from UDPServer, not from + UnixStreamServer -- the only difference between an IP and a Unix + stream server is the address family, which is simply repeated in both + unix server classes. + + Forking and threading versions of each type of server can be created + using the ForkingServer and ThreadingServer mix-in classes. For + instance, a threading UDP server class is created as follows: + + class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass + + The Mix-in class must come first, since it overrides a method defined + in UDPServer! + + To implement a service, you must derive a class from + BaseRequestHandler and redefine its handle() method. You can then run + various versions of the service by combining one of the server classes + with your request handler class. + + The request handler class must be different for datagram or stream + services. This can be hidden by using the mix-in request handler + classes StreamRequestHandler or DatagramRequestHandler. + + Of course, you still have to use your head! + + For instance, it makes no sense to use a forking server if the service + contains state in memory that can be modified by requests (since the + modifications in the child process would never reach the initial state + kept in the parent process and passed to each child). In this case, + you can use a threading server, but you will probably have to use + locks to avoid two requests that come in nearly simultaneous to apply + conflicting changes to the server state. + + On the other hand, if you are building e.g. an HTTP server, where all + data is stored externally (e.g. in the file system), a synchronous + class will essentially render the service "deaf" while one request is + being handled -- which may be for a very long time if a client is slow + to reqd all the data it has requested. Here a threading or forking + server is appropriate. + + In some cases, it may be appropriate to process part of a request + synchronously, but to finish processing in a forked child depending on + the request data. This can be implemented by using a synchronous + server and doing an explicit fork in the request handler class + handle() method. + + Another approach to handling multiple simultaneous requests in an + environment that supports neither threads nor fork (or where these are + too expensive or inappropriate for the service) is to maintain an + explicit table of partially finished requests and to use select() to + decide which request to work on next (or whether to handle a new + incoming request). This is particularly important for stream services + where each client can potentially be connected for a long time (if + threads or subprocesses cannot be used). + + Future work: + - Standard classes for Sun RPC (which uses either UDP or TCP) + - Standard mix-in classes to implement various authentication + and encryption schemes + - Standard framework for select-based multiplexing + + XXX Open problems: + - What to do with out-of-band data? + + BaseServer: + - split generic "request" functionality out into BaseServer class. + Copyright (C) 2000 Luke Kenneth Casson Leighton + + example: read entries from a SQL database (requires overriding + get_request() to return a table entry from the database). + entry is processed by a RequestHandlerClass. + + */ + frame.setlocal("__version__", s$1); + frame.setlocal("socket", org.python.core.imp.importOne("socket", frame)); + frame.setlocal("sys", org.python.core.imp.importOne("sys", frame)); + frame.setlocal("os", org.python.core.imp.importOne("os", frame)); + frame.setlocal("__all__", new PyList(new PyObject[] {s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12})); + if (frame.getname("hasattr").__call__(frame.getname("socket"), s$13).__nonzero__()) { + frame.getname("__all__").invoke("extend", new PyList(new PyObject[] {s$14, s$15, s$16, s$17})); + } + frame.setlocal("BaseServer", Py.makeClass("BaseServer", new PyObject[] {}, c$10_BaseServer, null)); + frame.setlocal("TCPServer", Py.makeClass("TCPServer", new PyObject[] {frame.getname("BaseServer")}, c$18_TCPServer, null)); + frame.setlocal("UDPServer", Py.makeClass("UDPServer", new PyObject[] {frame.getname("TCPServer")}, c$22_UDPServer, null)); + frame.setlocal("ForkingMixIn", Py.makeClass("ForkingMixIn", new PyObject[] {}, c$25_ForkingMixIn, null)); + frame.setlocal("ThreadingMixIn", Py.makeClass("ThreadingMixIn", new PyObject[] {}, c$27_ThreadingMixIn, null)); + frame.setlocal("ForkingUDPServer", Py.makeClass("ForkingUDPServer", new PyObject[] {frame.getname("ForkingMixIn"), frame.getname("UDPServer")}, c$28_ForkingUDPServer, null)); + frame.setlocal("ForkingTCPServer", Py.makeClass("ForkingTCPServer", new PyObject[] {frame.getname("ForkingMixIn"), frame.getname("TCPServer")}, c$29_ForkingTCPServer, null)); + frame.setlocal("ThreadingUDPServer", Py.makeClass("ThreadingUDPServer", new PyObject[] {frame.getname("ThreadingMixIn"), frame.getname("UDPServer")}, c$30_ThreadingUDPServer, null)); + frame.setlocal("ThreadingTCPServer", Py.makeClass("ThreadingTCPServer", new PyObject[] {frame.getname("ThreadingMixIn"), frame.getname("TCPServer")}, c$31_ThreadingTCPServer, null)); + if (frame.getname("hasattr").__call__(frame.getname("socket"), s$13).__nonzero__()) { + frame.setlocal("UnixStreamServer", Py.makeClass("UnixStreamServer", new PyObject[] {frame.getname("TCPServer")}, c$32_UnixStreamServer, null)); + frame.setlocal("UnixDatagramServer", Py.makeClass("UnixDatagramServer", new PyObject[] {frame.getname("UDPServer")}, c$33_UnixDatagramServer, null)); + frame.setlocal("ThreadingUnixStreamServer", Py.makeClass("ThreadingUnixStreamServer", new PyObject[] {frame.getname("ThreadingMixIn"), frame.getname("UnixStreamServer")}, c$34_ThreadingUnixStreamServer, null)); + frame.setlocal("ThreadingUnixDatagramServer", Py.makeClass("ThreadingUnixDatagramServer", new PyObject[] {frame.getname("ThreadingMixIn"), frame.getname("UnixDatagramServer")}, c$35_ThreadingUnixDatagramServer, null)); + } + frame.setlocal("BaseRequestHandler", Py.makeClass("BaseRequestHandler", new PyObject[] {}, c$41_BaseRequestHandler, null)); + frame.setlocal("StreamRequestHandler", Py.makeClass("StreamRequestHandler", new PyObject[] {frame.getname("BaseRequestHandler")}, c$44_StreamRequestHandler, null)); + frame.setlocal("DatagramRequestHandler", Py.makeClass("DatagramRequestHandler", new PyObject[] {frame.getname("BaseRequestHandler")}, c$47_DatagramRequestHandler, null)); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("SocketServer")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "SocketServer"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(SocketServer._PyInner.class, newargs, SocketServer.jpy$packages, SocketServer.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/StringIO$_PyInner.class b/server/jpywork/StringIO$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..0acaed0bc03d08f1cc504e058295f98b18b85101 GIT binary patch literal 13344 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 R+VDBP0OHo!0>YO_{|%Pzg{=Sp literal 0 HcmV?d00001 diff --git a/server/jpywork/StringIO.java b/server/jpywork/StringIO.java new file mode 100644 index 00000000..4067b649 --- /dev/null +++ b/server/jpywork/StringIO.java @@ -0,0 +1,507 @@ +import org.python.core.*; + +public class StringIO extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject i$1; + private static PyObject s$2; + private static PyObject i$3; + private static PyObject s$4; + private static PyObject i$5; + private static PyObject s$6; + private static PyObject i$7; + private static PyObject s$8; + private static PyObject s$9; + private static PyObject s$10; + private static PyObject s$11; + private static PyObject s$12; + private static PyObject s$13; + private static PyObject s$14; + private static PyObject s$15; + private static PyObject s$16; + private static PyObject s$17; + private static PyObject s$18; + private static PyObject s$19; + private static PyObject s$20; + private static PyObject s$21; + private static PyObject s$22; + private static PyObject s$23; + private static PyFunctionTable funcTable; + private static PyCode c$0___init__; + private static PyCode c$1_close; + private static PyCode c$2_isatty; + private static PyCode c$3_seek; + private static PyCode c$4_tell; + private static PyCode c$5_read; + private static PyCode c$6_readline; + private static PyCode c$7_readlines; + private static PyCode c$8_truncate; + private static PyCode c$9_write; + private static PyCode c$10_writelines; + private static PyCode c$11_flush; + private static PyCode c$12_getvalue; + private static PyCode c$13_StringIO; + private static PyCode c$14_test; + private static PyCode c$15_main; + private static void initConstants() { + s$0 = Py.newString("File-like objects that read from or write to a string buffer.\012\012This implements (nearly) all stdio methods.\012\012f = StringIO() # ready for writing\012f = StringIO(buf) # ready for reading\012f.close() # explicitly release resources held\012flag = f.isatty() # always false\012pos = f.tell() # get current position\012f.seek(pos) # set current position\012f.seek(pos, mode) # mode 0: absolute; 1: relative; 2: relative to EOF\012buf = f.read() # read until EOF\012buf = f.read(n) # read up to n bytes\012buf = f.readline() # read until end of line ('\012') or EOF\012list = f.readlines()# list of f.readline() results until EOF\012f.truncate([size]) # truncate file at to at most size (default: current pos)\012f.write(buf) # write at current position\012f.writelines(list) # for line in list: f.write(line)\012f.getvalue() # return whole file's contents as a string\012\012Notes:\012- Using a real file is often faster (but less convenient).\012- There's also a much faster implementation in C, called cStringIO, but\012 it's not subclassable.\012- fileno() is left unimplemented so that code which uses it triggers\012 an exception early.\012- Seeking far beyond EOF and then writing will insert real null\012 bytes that occupy space in the buffer.\012- There's a simple test set (see end of this file).\012"); + i$1 = Py.newInteger(22); + s$2 = Py.newString("StringIO"); + i$3 = Py.newInteger(0); + s$4 = Py.newString(""); + i$5 = Py.newInteger(1); + s$6 = Py.newString("I/O operation on closed file"); + i$7 = Py.newInteger(2); + s$8 = Py.newString("\012"); + s$9 = Py.newString("Negative size not allowed"); + s$10 = Py.newString("\000"); + s$11 = Py.newString("/etc/passwd"); + s$12 = Py.newString("r"); + s$13 = Py.newString("write failed"); + s$14 = Py.newString("File length ="); + s$15 = Py.newString("First line ="); + s$16 = Py.newString("Second line ="); + s$17 = Py.newString("bad result after seek back"); + s$18 = Py.newString("bad result after seek back from EOF"); + s$19 = Py.newString("Read"); + s$20 = Py.newString("more lines"); + s$21 = Py.newString("bad length"); + s$22 = Py.newString("__main__"); + s$23 = Py.newString("/usr/share/jython/Lib-cpython/StringIO.py"); + funcTable = new _PyInner(); + c$0___init__ = Py.newCode(2, new String[] {"self", "buf"}, "/usr/share/jython/Lib-cpython/StringIO.py", "__init__", false, false, funcTable, 0, null, null, 0, 1); + c$1_close = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/StringIO.py", "close", false, false, funcTable, 1, null, null, 0, 1); + c$2_isatty = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/StringIO.py", "isatty", false, false, funcTable, 2, null, null, 0, 1); + c$3_seek = Py.newCode(3, new String[] {"self", "pos", "mode"}, "/usr/share/jython/Lib-cpython/StringIO.py", "seek", false, false, funcTable, 3, null, null, 0, 1); + c$4_tell = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/StringIO.py", "tell", false, false, funcTable, 4, null, null, 0, 1); + c$5_read = Py.newCode(2, new String[] {"self", "n", "r", "newpos"}, "/usr/share/jython/Lib-cpython/StringIO.py", "read", false, false, funcTable, 5, null, null, 0, 1); + c$6_readline = Py.newCode(2, new String[] {"self", "length", "i", "r", "newpos"}, "/usr/share/jython/Lib-cpython/StringIO.py", "readline", false, false, funcTable, 6, null, null, 0, 1); + c$7_readlines = Py.newCode(2, new String[] {"self", "sizehint", "line", "lines", "total"}, "/usr/share/jython/Lib-cpython/StringIO.py", "readlines", false, false, funcTable, 7, null, null, 0, 1); + c$8_truncate = Py.newCode(2, new String[] {"self", "size"}, "/usr/share/jython/Lib-cpython/StringIO.py", "truncate", false, false, funcTable, 8, null, null, 0, 1); + c$9_write = Py.newCode(2, new String[] {"self", "s", "newpos"}, "/usr/share/jython/Lib-cpython/StringIO.py", "write", false, false, funcTable, 9, null, null, 0, 1); + c$10_writelines = Py.newCode(2, new String[] {"self", "list"}, "/usr/share/jython/Lib-cpython/StringIO.py", "writelines", false, false, funcTable, 10, null, null, 0, 1); + c$11_flush = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/StringIO.py", "flush", false, false, funcTable, 11, null, null, 0, 1); + c$12_getvalue = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/StringIO.py", "getvalue", false, false, funcTable, 12, null, null, 0, 1); + c$13_StringIO = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/StringIO.py", "StringIO", false, false, funcTable, 13, null, null, 0, 0); + c$14_test = Py.newCode(0, new String[] {"length", "file", "f", "list", "here", "line2", "text", "sys", "lines", "line"}, "/usr/share/jython/Lib-cpython/StringIO.py", "test", false, false, funcTable, 14, null, null, 0, 1); + c$15_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/StringIO.py", "main", false, false, funcTable, 15, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$15_main == null) _PyInner.initConstants(); + return c$15_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.__init__$1(frame); + case 1: + return _PyInner.close$2(frame); + case 2: + return _PyInner.isatty$3(frame); + case 3: + return _PyInner.seek$4(frame); + case 4: + return _PyInner.tell$5(frame); + case 5: + return _PyInner.read$6(frame); + case 6: + return _PyInner.readline$7(frame); + case 7: + return _PyInner.readlines$8(frame); + case 8: + return _PyInner.truncate$9(frame); + case 9: + return _PyInner.write$10(frame); + case 10: + return _PyInner.writelines$11(frame); + case 11: + return _PyInner.flush$12(frame); + case 12: + return _PyInner.getvalue$13(frame); + case 13: + return _PyInner.StringIO$14(frame); + case 14: + return _PyInner.test$15(frame); + case 15: + return _PyInner.main$16(frame); + default: + return null; + } + } + + private static PyObject __init__$1(PyFrame frame) { + frame.getlocal(0).__setattr__("buf", frame.getlocal(1)); + frame.getlocal(0).__setattr__("len", frame.getglobal("len").__call__(frame.getlocal(1))); + frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {})); + frame.getlocal(0).__setattr__("pos", i$3); + frame.getlocal(0).__setattr__("closed", i$3); + frame.getlocal(0).__setattr__("softspace", i$3); + return Py.None; + } + + private static PyObject close$2(PyFrame frame) { + if (frame.getlocal(0).__getattr__("closed").__not__().__nonzero__()) { + frame.getlocal(0).__setattr__("closed", i$5); + frame.getlocal(0).__delattr__("buf"); + frame.getlocal(0).__delattr__("pos"); + } + return Py.None; + } + + private static PyObject isatty$3(PyFrame frame) { + if (frame.getlocal(0).__getattr__("closed").__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$6); + } + return i$3; + } + + private static PyObject seek$4(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject; + + // Code + if (frame.getlocal(0).__getattr__("closed").__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$6); + } + if (frame.getlocal(0).__getattr__("buflist").__nonzero__()) { + t$0$PyObject = s$4.invoke("join", frame.getlocal(0).__getattr__("buflist")); + t$1$PyObject = frame.getlocal(0); + t$1$PyObject.__setattr__("buf", t$1$PyObject.__getattr__("buf").__iadd__(t$0$PyObject)); + frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {})); + } + if (frame.getlocal(2)._eq(i$5).__nonzero__()) { + t$0$PyObject = frame.getlocal(0).__getattr__("pos"); + frame.setlocal(1, frame.getlocal(1).__iadd__(t$0$PyObject)); + } + else if (frame.getlocal(2)._eq(i$7).__nonzero__()) { + t$0$PyObject = frame.getlocal(0).__getattr__("len"); + frame.setlocal(1, frame.getlocal(1).__iadd__(t$0$PyObject)); + } + frame.getlocal(0).__setattr__("pos", frame.getglobal("max").__call__(i$3, frame.getlocal(1))); + return Py.None; + } + + private static PyObject tell$5(PyFrame frame) { + if (frame.getlocal(0).__getattr__("closed").__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$6); + } + return frame.getlocal(0).__getattr__("pos"); + } + + private static PyObject read$6(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject; + + // Code + if (frame.getlocal(0).__getattr__("closed").__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$6); + } + if (frame.getlocal(0).__getattr__("buflist").__nonzero__()) { + t$0$PyObject = s$4.invoke("join", frame.getlocal(0).__getattr__("buflist")); + t$1$PyObject = frame.getlocal(0); + t$1$PyObject.__setattr__("buf", t$1$PyObject.__getattr__("buf").__iadd__(t$0$PyObject)); + frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {})); + } + if (frame.getlocal(1)._lt(i$3).__nonzero__()) { + frame.setlocal(3, frame.getlocal(0).__getattr__("len")); + } + else { + frame.setlocal(3, frame.getglobal("min").__call__(frame.getlocal(0).__getattr__("pos")._add(frame.getlocal(1)), frame.getlocal(0).__getattr__("len"))); + } + frame.setlocal(2, frame.getlocal(0).__getattr__("buf").__getslice__(frame.getlocal(0).__getattr__("pos"), frame.getlocal(3), null)); + frame.getlocal(0).__setattr__("pos", frame.getlocal(3)); + return frame.getlocal(2); + } + + private static PyObject readline$7(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject; + + // Code + if (frame.getlocal(0).__getattr__("closed").__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$6); + } + if (frame.getlocal(0).__getattr__("buflist").__nonzero__()) { + t$0$PyObject = s$4.invoke("join", frame.getlocal(0).__getattr__("buflist")); + t$1$PyObject = frame.getlocal(0); + t$1$PyObject.__setattr__("buf", t$1$PyObject.__getattr__("buf").__iadd__(t$0$PyObject)); + frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {})); + } + frame.setlocal(2, frame.getlocal(0).__getattr__("buf").invoke("find", s$8, frame.getlocal(0).__getattr__("pos"))); + if (frame.getlocal(2)._lt(i$3).__nonzero__()) { + frame.setlocal(4, frame.getlocal(0).__getattr__("len")); + } + else { + frame.setlocal(4, frame.getlocal(2)._add(i$5)); + } + if (frame.getlocal(1)._isnot(frame.getglobal("None")).__nonzero__()) { + if (frame.getlocal(0).__getattr__("pos")._add(frame.getlocal(1))._lt(frame.getlocal(4)).__nonzero__()) { + frame.setlocal(4, frame.getlocal(0).__getattr__("pos")._add(frame.getlocal(1))); + } + } + frame.setlocal(3, frame.getlocal(0).__getattr__("buf").__getslice__(frame.getlocal(0).__getattr__("pos"), frame.getlocal(4), null)); + frame.getlocal(0).__setattr__("pos", frame.getlocal(4)); + return frame.getlocal(3); + } + + private static PyObject readlines$8(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + frame.setlocal(4, i$3); + frame.setlocal(3, new PyList(new PyObject[] {})); + frame.setlocal(2, frame.getlocal(0).invoke("readline")); + while (frame.getlocal(2).__nonzero__()) { + frame.getlocal(3).invoke("append", frame.getlocal(2)); + t$0$PyObject = frame.getglobal("len").__call__(frame.getlocal(2)); + frame.setlocal(4, frame.getlocal(4).__iadd__(t$0$PyObject)); + if ((i$3._lt(t$0$PyObject = frame.getlocal(1)).__nonzero__() ? t$0$PyObject._le(frame.getlocal(4)) : Py.Zero).__nonzero__()) { + break; + } + frame.setlocal(2, frame.getlocal(0).invoke("readline")); + } + return frame.getlocal(3); + } + + private static PyObject truncate$9(PyFrame frame) { + if (frame.getlocal(0).__getattr__("closed").__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$6); + } + if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(1, frame.getlocal(0).__getattr__("pos")); + } + else if (frame.getlocal(1)._lt(i$3).__nonzero__()) { + throw Py.makeException(frame.getglobal("IOError").__call__(frame.getglobal("EINVAL"), s$9)); + } + else if (frame.getlocal(1)._lt(frame.getlocal(0).__getattr__("pos")).__nonzero__()) { + frame.getlocal(0).__setattr__("pos", frame.getlocal(1)); + } + frame.getlocal(0).__setattr__("buf", frame.getlocal(0).invoke("getvalue").__getslice__(null, frame.getlocal(1), null)); + return Py.None; + } + + private static PyObject write$10(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject; + + // Code + if (frame.getlocal(0).__getattr__("closed").__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$6); + } + if (frame.getlocal(1).__not__().__nonzero__()) { + return Py.None; + } + if (frame.getlocal(0).__getattr__("pos")._gt(frame.getlocal(0).__getattr__("len")).__nonzero__()) { + frame.getlocal(0).__getattr__("buflist").invoke("append", s$10._mul(frame.getlocal(0).__getattr__("pos")._sub(frame.getlocal(0).__getattr__("len")))); + frame.getlocal(0).__setattr__("len", frame.getlocal(0).__getattr__("pos")); + } + frame.setlocal(2, frame.getlocal(0).__getattr__("pos")._add(frame.getglobal("len").__call__(frame.getlocal(1)))); + if (frame.getlocal(0).__getattr__("pos")._lt(frame.getlocal(0).__getattr__("len")).__nonzero__()) { + if (frame.getlocal(0).__getattr__("buflist").__nonzero__()) { + t$0$PyObject = s$4.invoke("join", frame.getlocal(0).__getattr__("buflist")); + t$1$PyObject = frame.getlocal(0); + t$1$PyObject.__setattr__("buf", t$1$PyObject.__getattr__("buf").__iadd__(t$0$PyObject)); + frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {})); + } + frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {frame.getlocal(0).__getattr__("buf").__getslice__(null, frame.getlocal(0).__getattr__("pos"), null), frame.getlocal(1), frame.getlocal(0).__getattr__("buf").__getslice__(frame.getlocal(2), null, null)})); + frame.getlocal(0).__setattr__("buf", s$4); + if (frame.getlocal(2)._gt(frame.getlocal(0).__getattr__("len")).__nonzero__()) { + frame.getlocal(0).__setattr__("len", frame.getlocal(2)); + } + } + else { + frame.getlocal(0).__getattr__("buflist").invoke("append", frame.getlocal(1)); + frame.getlocal(0).__setattr__("len", frame.getlocal(2)); + } + frame.getlocal(0).__setattr__("pos", frame.getlocal(2)); + return Py.None; + } + + private static PyObject writelines$11(PyFrame frame) { + frame.getlocal(0).invoke("write", s$4.invoke("join", frame.getlocal(1))); + return Py.None; + } + + private static PyObject flush$12(PyFrame frame) { + if (frame.getlocal(0).__getattr__("closed").__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$6); + } + return Py.None; + } + + private static PyObject getvalue$13(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject; + + // Code + if (frame.getlocal(0).__getattr__("buflist").__nonzero__()) { + t$0$PyObject = s$4.invoke("join", frame.getlocal(0).__getattr__("buflist")); + t$1$PyObject = frame.getlocal(0); + t$1$PyObject.__setattr__("buf", t$1$PyObject.__getattr__("buf").__iadd__(t$0$PyObject)); + frame.getlocal(0).__setattr__("buflist", new PyList(new PyObject[] {})); + } + return frame.getlocal(0).__getattr__("buf"); + } + + private static PyObject StringIO$14(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {s$4}, c$0___init__)); + frame.setlocal("close", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_close)); + frame.setlocal("isatty", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_isatty)); + frame.setlocal("seek", new PyFunction(frame.f_globals, new PyObject[] {i$3}, c$3_seek)); + frame.setlocal("tell", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_tell)); + frame.setlocal("read", new PyFunction(frame.f_globals, new PyObject[] {i$5.__neg__()}, c$5_read)); + frame.setlocal("readline", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$6_readline)); + frame.setlocal("readlines", new PyFunction(frame.f_globals, new PyObject[] {i$3}, c$7_readlines)); + frame.setlocal("truncate", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$8_truncate)); + frame.setlocal("write", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_write)); + frame.setlocal("writelines", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_writelines)); + frame.setlocal("flush", new PyFunction(frame.f_globals, new PyObject[] {}, c$11_flush)); + frame.setlocal("getvalue", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_getvalue)); + return frame.getf_locals(); + } + + private static PyObject test$15(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(7, org.python.core.imp.importOne("sys", frame)); + if (frame.getlocal(7).__getattr__("argv").__getslice__(i$5, null, null).__nonzero__()) { + frame.setlocal(1, frame.getlocal(7).__getattr__("argv").__getitem__(i$5)); + } + else { + frame.setlocal(1, s$11); + } + frame.setlocal(8, frame.getglobal("open").__call__(frame.getlocal(1), s$12).invoke("readlines")); + frame.setlocal(6, frame.getglobal("open").__call__(frame.getlocal(1), s$12).invoke("read")); + frame.setlocal(2, frame.getglobal("StringIO").__call__()); + t$0$int = 0; + t$1$PyObject = frame.getlocal(8).__getslice__(null, i$7.__neg__(), null); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(9, t$0$PyObject); + frame.getlocal(2).invoke("write", frame.getlocal(9)); + } + frame.getlocal(2).invoke("writelines", frame.getlocal(8).__getslice__(i$7.__neg__(), null, null)); + if (frame.getlocal(2).invoke("getvalue")._ne(frame.getlocal(6)).__nonzero__()) { + throw Py.makeException(frame.getglobal("RuntimeError"), s$13); + } + frame.setlocal(0, frame.getlocal(2).invoke("tell")); + Py.printComma(s$14); + Py.println(frame.getlocal(0)); + frame.getlocal(2).invoke("seek", frame.getglobal("len").__call__(frame.getlocal(8).__getitem__(i$3))); + frame.getlocal(2).invoke("write", frame.getlocal(8).__getitem__(i$5)); + frame.getlocal(2).invoke("seek", i$3); + Py.printComma(s$15); + Py.println(frame.getlocal(2).invoke("readline").__repr__()); + frame.setlocal(4, frame.getlocal(2).invoke("tell")); + frame.setlocal(9, frame.getlocal(2).invoke("readline")); + Py.printComma(s$16); + Py.println(frame.getlocal(9).__repr__()); + frame.getlocal(2).invoke("seek", frame.getglobal("len").__call__(frame.getlocal(9)).__neg__(), i$5); + frame.setlocal(5, frame.getlocal(2).invoke("read", frame.getglobal("len").__call__(frame.getlocal(9)))); + if (frame.getlocal(9)._ne(frame.getlocal(5)).__nonzero__()) { + throw Py.makeException(frame.getglobal("RuntimeError"), s$17); + } + frame.getlocal(2).invoke("seek", frame.getglobal("len").__call__(frame.getlocal(5)), i$5); + frame.setlocal(3, frame.getlocal(2).invoke("readlines")); + frame.setlocal(9, frame.getlocal(3).__getitem__(i$5.__neg__())); + frame.getlocal(2).invoke("seek", frame.getlocal(2).invoke("tell")._sub(frame.getglobal("len").__call__(frame.getlocal(9)))); + frame.setlocal(5, frame.getlocal(2).invoke("read")); + if (frame.getlocal(9)._ne(frame.getlocal(5)).__nonzero__()) { + throw Py.makeException(frame.getglobal("RuntimeError"), s$18); + } + Py.printComma(s$19); + Py.printComma(frame.getglobal("len").__call__(frame.getlocal(3))); + Py.println(s$20); + Py.printComma(s$14); + Py.println(frame.getlocal(2).invoke("tell")); + if (frame.getlocal(2).invoke("tell")._ne(frame.getlocal(0)).__nonzero__()) { + throw Py.makeException(frame.getglobal("RuntimeError"), s$21); + } + frame.getlocal(2).invoke("close"); + return Py.None; + } + + private static PyObject main$16(PyFrame frame) { + frame.setglobal("__file__", s$23); + + PyObject[] imp_accu; + // Temporary Variables + PyException t$0$PyException; + + // Code + /* File-like objects that read from or write to a string buffer. + + This implements (nearly) all stdio methods. + + f = StringIO() # ready for writing + f = StringIO(buf) # ready for reading + f.close() # explicitly release resources held + flag = f.isatty() # always false + pos = f.tell() # get current position + f.seek(pos) # set current position + f.seek(pos, mode) # mode 0: absolute; 1: relative; 2: relative to EOF + buf = f.read() # read until EOF + buf = f.read(n) # read up to n bytes + buf = f.readline() # read until end of line (' + ') or EOF + list = f.readlines()# list of f.readline() results until EOF + f.truncate([size]) # truncate file at to at most size (default: current pos) + f.write(buf) # write at current position + f.writelines(list) # for line in list: f.write(line) + f.getvalue() # return whole file's contents as a string + + Notes: + - Using a real file is often faster (but less convenient). + - There's also a much faster implementation in C, called cStringIO, but + it's not subclassable. + - fileno() is left unimplemented so that code which uses it triggers + an exception early. + - Seeking far beyond EOF and then writing will insert real null + bytes that occupy space in the buffer. + - There's a simple test set (see end of this file). + */ + try { + imp_accu = org.python.core.imp.importFrom("errno", new String[] {"EINVAL"}, frame); + frame.setlocal("EINVAL", imp_accu[0]); + imp_accu = null; + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getname("ImportError"))) { + frame.setlocal("EINVAL", i$1); + } + else throw t$0$PyException; + } + frame.setlocal("__all__", new PyList(new PyObject[] {s$2})); + frame.setlocal("StringIO", Py.makeClass("StringIO", new PyObject[] {}, c$13_StringIO, null)); + frame.setlocal("test", new PyFunction(frame.f_globals, new PyObject[] {}, c$14_test)); + if (frame.getname("__name__")._eq(s$22).__nonzero__()) { + frame.getname("test").__call__(); + } + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("StringIO")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "StringIO"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(StringIO._PyInner.class, newargs, StringIO.jpy$packages, StringIO.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/UserDict$_PyInner.class b/server/jpywork/UserDict$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..2a922b477d250d1a6d5bd378052cfc9bcfe8d20d GIT binary patch literal 7456 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 T7{A0kf5opMr_M2i-%$QH+tq~z literal 0 HcmV?d00001 diff --git a/server/jpywork/UserDict.java b/server/jpywork/UserDict.java new file mode 100644 index 00000000..54648b85 --- /dev/null +++ b/server/jpywork/UserDict.java @@ -0,0 +1,258 @@ +import org.python.core.*; + +public class UserDict extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject s$1; + private static PyFunctionTable funcTable; + private static PyCode c$0___init__; + private static PyCode c$1___repr__; + private static PyCode c$2___cmp__; + private static PyCode c$3___len__; + private static PyCode c$4___getitem__; + private static PyCode c$5___setitem__; + private static PyCode c$6___delitem__; + private static PyCode c$7_clear; + private static PyCode c$8_copy; + private static PyCode c$9_keys; + private static PyCode c$10_items; + private static PyCode c$11_values; + private static PyCode c$12_has_key; + private static PyCode c$13_update; + private static PyCode c$14_get; + private static PyCode c$15_setdefault; + private static PyCode c$16_popitem; + private static PyCode c$17_UserDict; + private static PyCode c$18_main; + private static void initConstants() { + s$0 = Py.newString("A more or less complete user-defined wrapper around dictionary objects."); + s$1 = Py.newString("/usr/share/jython/Lib-cpython/UserDict.py"); + funcTable = new _PyInner(); + c$0___init__ = Py.newCode(2, new String[] {"self", "dict"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__init__", false, false, funcTable, 0, null, null, 0, 1); + c$1___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__repr__", false, false, funcTable, 1, null, null, 0, 1); + c$2___cmp__ = Py.newCode(2, new String[] {"self", "dict"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__cmp__", false, false, funcTable, 2, null, null, 0, 1); + c$3___len__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__len__", false, false, funcTable, 3, null, null, 0, 1); + c$4___getitem__ = Py.newCode(2, new String[] {"self", "key"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__getitem__", false, false, funcTable, 4, null, null, 0, 1); + c$5___setitem__ = Py.newCode(3, new String[] {"self", "key", "item"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__setitem__", false, false, funcTable, 5, null, null, 0, 1); + c$6___delitem__ = Py.newCode(2, new String[] {"self", "key"}, "/usr/share/jython/Lib-cpython/UserDict.py", "__delitem__", false, false, funcTable, 6, null, null, 0, 1); + c$7_clear = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "clear", false, false, funcTable, 7, null, null, 0, 1); + c$8_copy = Py.newCode(1, new String[] {"self", "copy"}, "/usr/share/jython/Lib-cpython/UserDict.py", "copy", false, false, funcTable, 8, null, null, 0, 1); + c$9_keys = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "keys", false, false, funcTable, 9, null, null, 0, 1); + c$10_items = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "items", false, false, funcTable, 10, null, null, 0, 1); + c$11_values = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "values", false, false, funcTable, 11, null, null, 0, 1); + c$12_has_key = Py.newCode(2, new String[] {"self", "key"}, "/usr/share/jython/Lib-cpython/UserDict.py", "has_key", false, false, funcTable, 12, null, null, 0, 1); + c$13_update = Py.newCode(2, new String[] {"self", "dict", "v", "k"}, "/usr/share/jython/Lib-cpython/UserDict.py", "update", false, false, funcTable, 13, null, null, 0, 1); + c$14_get = Py.newCode(3, new String[] {"self", "key", "failobj"}, "/usr/share/jython/Lib-cpython/UserDict.py", "get", false, false, funcTable, 14, null, null, 0, 1); + c$15_setdefault = Py.newCode(3, new String[] {"self", "key", "failobj"}, "/usr/share/jython/Lib-cpython/UserDict.py", "setdefault", false, false, funcTable, 15, null, null, 0, 1); + c$16_popitem = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/UserDict.py", "popitem", false, false, funcTable, 16, null, null, 0, 1); + c$17_UserDict = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/UserDict.py", "UserDict", false, false, funcTable, 17, null, null, 0, 0); + c$18_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/UserDict.py", "main", false, false, funcTable, 18, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$18_main == null) _PyInner.initConstants(); + return c$18_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.__init__$1(frame); + case 1: + return _PyInner.__repr__$2(frame); + case 2: + return _PyInner.__cmp__$3(frame); + case 3: + return _PyInner.__len__$4(frame); + case 4: + return _PyInner.__getitem__$5(frame); + case 5: + return _PyInner.__setitem__$6(frame); + case 6: + return _PyInner.__delitem__$7(frame); + case 7: + return _PyInner.clear$8(frame); + case 8: + return _PyInner.copy$9(frame); + case 9: + return _PyInner.keys$10(frame); + case 10: + return _PyInner.items$11(frame); + case 11: + return _PyInner.values$12(frame); + case 12: + return _PyInner.has_key$13(frame); + case 13: + return _PyInner.update$14(frame); + case 14: + return _PyInner.get$15(frame); + case 15: + return _PyInner.setdefault$16(frame); + case 16: + return _PyInner.popitem$17(frame); + case 17: + return _PyInner.UserDict$18(frame); + case 18: + return _PyInner.main$19(frame); + default: + return null; + } + } + + private static PyObject __init__$1(PyFrame frame) { + frame.getlocal(0).__setattr__("data", new PyDictionary(new PyObject[] {})); + if (frame.getlocal(1)._isnot(frame.getglobal("None")).__nonzero__()) { + frame.getlocal(0).invoke("update", frame.getlocal(1)); + } + return Py.None; + } + + private static PyObject __repr__$2(PyFrame frame) { + return frame.getglobal("repr").__call__(frame.getlocal(0).__getattr__("data")); + } + + private static PyObject __cmp__$3(PyFrame frame) { + if (frame.getglobal("isinstance").__call__(frame.getlocal(1), frame.getglobal("UserDict")).__nonzero__()) { + return frame.getglobal("cmp").__call__(frame.getlocal(0).__getattr__("data"), frame.getlocal(1).__getattr__("data")); + } + else { + return frame.getglobal("cmp").__call__(frame.getlocal(0).__getattr__("data"), frame.getlocal(1)); + } + } + + private static PyObject __len__$4(PyFrame frame) { + return frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("data")); + } + + private static PyObject __getitem__$5(PyFrame frame) { + return frame.getlocal(0).__getattr__("data").__getitem__(frame.getlocal(1)); + } + + private static PyObject __setitem__$6(PyFrame frame) { + frame.getlocal(0).__getattr__("data").__setitem__(frame.getlocal(1), frame.getlocal(2)); + return Py.None; + } + + private static PyObject __delitem__$7(PyFrame frame) { + frame.getlocal(0).__getattr__("data").__delitem__(frame.getlocal(1)); + return Py.None; + } + + private static PyObject clear$8(PyFrame frame) { + frame.getlocal(0).__getattr__("data").invoke("clear"); + return Py.None; + } + + private static PyObject copy$9(PyFrame frame) { + if (frame.getlocal(0).__getattr__("__class__")._is(frame.getglobal("UserDict")).__nonzero__()) { + return frame.getglobal("UserDict").__call__(frame.getlocal(0).__getattr__("data")); + } + frame.setlocal(1, org.python.core.imp.importOne("copy", frame)); + return frame.getlocal(1).__getattr__("copy").__call__(frame.getlocal(0)); + } + + private static PyObject keys$10(PyFrame frame) { + return frame.getlocal(0).__getattr__("data").invoke("keys"); + } + + private static PyObject items$11(PyFrame frame) { + return frame.getlocal(0).__getattr__("data").invoke("items"); + } + + private static PyObject values$12(PyFrame frame) { + return frame.getlocal(0).__getattr__("data").invoke("values"); + } + + private static PyObject has_key$13(PyFrame frame) { + return frame.getlocal(0).__getattr__("data").invoke("has_key", frame.getlocal(1)); + } + + private static PyObject update$14(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + if (frame.getglobal("isinstance").__call__(frame.getlocal(1), frame.getglobal("UserDict")).__nonzero__()) { + frame.getlocal(0).__getattr__("data").invoke("update", frame.getlocal(1).__getattr__("data")); + } + else if (frame.getglobal("isinstance").__call__(frame.getlocal(1), frame.getglobal("type").__call__(frame.getlocal(0).__getattr__("data"))).__nonzero__()) { + frame.getlocal(0).__getattr__("data").invoke("update", frame.getlocal(1)); + } + else { + t$0$int = 0; + t$1$PyObject = frame.getlocal(1).invoke("items"); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(3, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + frame.getlocal(0).__getattr__("data").__setitem__(frame.getlocal(3), frame.getlocal(2)); + } + } + return Py.None; + } + + private static PyObject get$15(PyFrame frame) { + return frame.getlocal(0).__getattr__("data").invoke("get", frame.getlocal(1), frame.getlocal(2)); + } + + private static PyObject setdefault$16(PyFrame frame) { + if (frame.getlocal(0).__getattr__("data").invoke("has_key", frame.getlocal(1)).__not__().__nonzero__()) { + frame.getlocal(0).__getattr__("data").__setitem__(frame.getlocal(1), frame.getlocal(2)); + } + return frame.getlocal(0).__getattr__("data").__getitem__(frame.getlocal(1)); + } + + private static PyObject popitem$17(PyFrame frame) { + return frame.getlocal(0).__getattr__("data").invoke("popitem"); + } + + private static PyObject UserDict$18(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$0___init__)); + frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$1___repr__)); + frame.setlocal("__cmp__", new PyFunction(frame.f_globals, new PyObject[] {}, c$2___cmp__)); + frame.setlocal("__len__", new PyFunction(frame.f_globals, new PyObject[] {}, c$3___len__)); + frame.setlocal("__getitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$4___getitem__)); + frame.setlocal("__setitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$5___setitem__)); + frame.setlocal("__delitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$6___delitem__)); + frame.setlocal("clear", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_clear)); + frame.setlocal("copy", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_copy)); + frame.setlocal("keys", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_keys)); + frame.setlocal("items", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_items)); + frame.setlocal("values", new PyFunction(frame.f_globals, new PyObject[] {}, c$11_values)); + frame.setlocal("has_key", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_has_key)); + frame.setlocal("update", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_update)); + frame.setlocal("get", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$14_get)); + frame.setlocal("setdefault", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$15_setdefault)); + frame.setlocal("popitem", new PyFunction(frame.f_globals, new PyObject[] {}, c$16_popitem)); + return frame.getf_locals(); + } + + private static PyObject main$19(PyFrame frame) { + frame.setglobal("__file__", s$1); + + /* A more or less complete user-defined wrapper around dictionary objects. */ + frame.setlocal("UserDict", Py.makeClass("UserDict", new PyObject[] {}, c$17_UserDict, null)); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("UserDict")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "UserDict"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(UserDict._PyInner.class, newargs, UserDict.jpy$packages, UserDict.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/atexit$_PyInner.class b/server/jpywork/atexit$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..e06407e61b07e65ac2a5c7ad0fb415e51c1bda69 GIT binary patch literal 5853 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 literal 0 HcmV?d00001 diff --git a/server/jpywork/atexit.class b/server/jpywork/atexit.class new file mode 100644 index 0000000000000000000000000000000000000000..f7a629f5a1dbd175e1dd79cf2f334711ad714153 GIT binary patch literal 2485 zcma)-X?GiE6~}+qk~NQH*_uoeHw{gi(1hAbkXu4o>Lj#e0TgqTRbRz70c5zG7 zP2(VJ&I>z@YB!Fq_eXWhnbdDw@telfYP9_%IrNCIW5mZPBb*nCZa++0It?0vI^Jjp zVUV5_ax=3lLjF{=rY-Dy@*G50IKp(dpSGf~)``}7ZJpFsdqF!5Ld7oOu)f~V-86{8 zR-y7A87K}3R;Cj~inj@q*+(x8+O-#guJJunMo|zdi$SQD zdYx4rpZ8bWS|}XPP%4q*XqhUL!qfnQ(?KI$2!mAEH?tVU&ACB6bEfLK<^G_>^Rp|8 zM+8-`hki%b>lW`2_Pkkr6X~%MkMfv_^e$od%t#l9Oqg9M@g5$xc<;7;24Tz0b6l9H z*AtxvsqWP4!rV6A{#W7_Cxyy@z=!I~{e>{pafuTgHGfZ*c|WHFtEtnc{U8+f&dhG( z&d_SU#2G$daaM5NTzZ)gvLIM-FEq+RYdbtMKil{p;{4xFwo7VgB;?KT3DYy%%$%8u z(iR&nmdq61o#DGDC6@V!#fR^moPLt(P8pZ;LeY<7zu$OkEzGVM zX0DVeQc|2O;qk1+GeTu6hitOTe2k9^)}<(3@;h2MJQ`w?HX|Vh`@o_u?BDXW6lL<$ z`qJ5`7p|R&<0vlS)38{*r||QwIJ#!0qs$swC>aLmB=MVC*fld6X&Ai3b3CSK2`DZL zg(TZ*indUQ{ctVnC_*7`W>V1=ifQaO^s3*uqKJiwB-Zst)aeFotw@Dj5^Kd(VRCR1 zCaE8$iQ>AT22mHzDP9l?rot#ue9FX)8duEL_>7S6``wP>vw~{)Z5^)pvEuVWKGxk> z@kJw#y8U{rn~E<9WjC{Rb$nIFidT%c;rmyFF_X^Mgkn1gb;ED8wBohlqU!o-OYsds zT}X6n)`sF+Lf*Jne8&{qinYHMm<9GdA)lmvs`!CmE&FL}<*cjtkx(?1cKtZfW}1Fd z=BNB@Fg1hmi$}XYXz@0r{{KWHWEr+_8@t&Ri(d!_wkVWEU5e5Hfj0NJP;#SQ+|XwO zvr#7o8>MEKg?eS+~!dZ6me-R4ox zIkv$&Z}RTjobWby-%XyVR&R0o;+B`G44U6l;SW5>A1U$_A7YHf3<%+A1AfNg$vMZ|YVJtBdgm7BZg9c-8xLG`F5cp!-Z~e4N98upJyXBQ^BY|H>yaBg ze1qLi)80G4B`_dfG2nCzW|2YY6RxM6V;M||>)Dpm%fPzkdUnz2yPjQgKIwY)g!5_F zv&+tlu4hj=pL0EX%K3up*%jv{*RyTsW!JNJIA3->+i||?diGA|RoAn3IbU}@d$;pV z*R!XcZ@Zp-pYvVUv-ddPcRl-l=ZEese*8MZejcLA&xfs~qlO_YSx5qciY$r(A^|jRaY!DLfn+Am0z~V+ zYqeHeTdhlrRjjQRM;$1NS~t|XS6ka^Ywe=lX|=VY*5Buxdnb!T-oEdTKc4TMbM9I0 zx#yne-ur}S|FiXB0F#}oLr{cKZOJY_-JZa52m!+WnQX_Dp5A78Flx8+lr^s?m2EW!9qqov+xsW)2cjh1?&rQT?%H(I6{Ez^vaX-3O5qh*@WGR

nfIsd$6Y(qObSu$EN3!T8d^T2k>wqovVk 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 literal 0 HcmV?d00001 diff --git a/server/jpywork/calendar.class b/server/jpywork/calendar.class new file mode 100644 index 0000000000000000000000000000000000000000..cff124eed5739cda06ae51a551b35b6729b64e6c GIT binary patch literal 2489 zcma)7>30)V6#v~M&AfzZJAFV|WEGG$#S}zbC?LwB#ZsydiUUfRP9MoYG85lSfZzrw zoBO`+%keXC4shgvA3ewaLH`tw=S@-?Bznw;%*=gv{oUWa@Atocxd|YTp9~}j%yr7r zpLCRg6u~;|9CZfEj$a(yHE~$F5rH4B)|Xct&mU7kRjSC7Az|kJk!ej4DbFts5oT)D zstS(RTXoG?>bOUoqBb?$vJ-~OR}*?#d~DIeAwovf{iq}(&n2)8ZrSs_XcHmX*FR23 zZ3!l&0qeFr8_^j!p|@I(N`arR1e3M04D%B;uN-+k!z{uIdEAxN$P4^%eV~f@rm7n# znV&w&fY58A18Ii2gr!ZbpkbH~OTn=n&QWLEEnf`t38_fcq&8h(!qBFR2u$OX_hrPe zgpi59G_DMH6T1JA0mE{F5$kvX!##w~_@fqi<@^b+s(tsFU`P|XM?7DS)+!TH?RF;0 zl91jIqm)Gwt4!q3N$6@ou+?*;Vc&}g3;RX_RUB;8GpMT`9IH24Jk&qVu$sUM1>dR2 zLczd>>RBPa&PiVhz^mNDmNZ_qBAf$%Ov#EFQvo0}r?L(+F!~2pb493WZQcUL-4p z0%5R?xBp7qz$QY^6or=;#_GeqFI5&Bu}c3vYT_|$As9s&?Q}e!Fu$+AjYCbWp)9uH zaRb{4{LbP{Jb__?p=!QXCY0JC8vAMEzlrp}pR`M=X+%ir@gwy1wV66S7ujh(8W`1c zcx#Gpon$eFrwu%H`|Q-iNLEY;>?UL!rJTAORO^IXYag0<47W6TN;KR*uDLmGB7-c$ zrYvmiH?WV;J)J{5+a{jHa|Gj1phlgFB&=u+F-4q~5RHvspg>qO?Q1lMo1nv>NLrxM>b*EZkI88_?Syc?L>Fpg< z>jfo?3}*?Zh_!`ON2OvoukD-fuM-kFfj0@6vgb?JaZ8fn?dGDYI#G$?T>{$^N~PBZ z!~2AkcF*vkF14hjGwJCC_Awz9Moz@=DZvx)RZf?dwQdGPHmLD zHYAwwR*6mZ6~?Ca43>hB1dsyLmj*O-jOLRypBZF9m;wFMdL}wS=mHQS6-&oDZlK#v z@*ZKQ_)KvbvyIyXb_bs$>@=SzF5@mM+c;aO#fyb)@TJ1G(tMe)Eyh=f%UF340HGfM zk0YeegAS}h8oQ7L=_{g{!9oxSKu7K>2Byu@u`r1Y?nS<-x)~j@bV-g6UdI}nuf2-< zui(M!*l1tHBUi9Fm%E0od#Am0X=oBB(VaMj#fj6%UOuwy0DtCg zrVidf_sBq!uNArEKq`0h8g^a69{V>e*vt1`!!!0}?D-kp*KuH9;R+63#i3sZE@9;* z%;rUFeghXzgLp)PQ_+|O8lmTf&3G8YR1>yk@MAGpbzxf>{(`WrEPqMZ)(rlNuq~6X z6}HvMPYK)V;;#zZ>gH#JZCU)Bu&o|`LD&}OZwT9($=?#THH*I^Y-=`uPuNy3|3KK* z9R888t-1UYVO#U~XW|;ZxCp``EJF_8G+Wb)4j^#`EO8c{iF4>poW~!D3rOHQ0114L OAAp!T8$tLHnZE%zKZ1(@ literal 0 HcmV?d00001 diff --git a/server/jpywork/calendar.java b/server/jpywork/calendar.java new file mode 100644 index 00000000..e7320b7b --- /dev/null +++ b/server/jpywork/calendar.java @@ -0,0 +1,651 @@ +import org.python.core.*; + +public class calendar extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject s$1; + private static PyObject s$2; + private static PyObject s$3; + private static PyObject s$4; + private static PyObject s$5; + private static PyObject s$6; + private static PyObject s$7; + private static PyObject s$8; + private static PyObject s$9; + private static PyObject s$10; + private static PyObject s$11; + private static PyObject s$12; + private static PyObject s$13; + private static PyObject i$14; + private static PyObject i$15; + private static PyObject i$16; + private static PyObject i$17; + private static PyObject i$18; + private static PyObject i$19; + private static PyObject s$20; + private static PyObject s$21; + private static PyObject s$22; + private static PyObject s$23; + private static PyObject s$24; + private static PyObject s$25; + private static PyObject s$26; + private static PyObject s$27; + private static PyObject s$28; + private static PyObject s$29; + private static PyObject s$30; + private static PyObject s$31; + private static PyObject s$32; + private static PyObject s$33; + private static PyObject s$34; + private static PyObject s$35; + private static PyObject s$36; + private static PyObject s$37; + private static PyObject s$38; + private static PyObject s$39; + private static PyObject s$40; + private static PyObject s$41; + private static PyObject s$42; + private static PyObject s$43; + private static PyObject s$44; + private static PyObject s$45; + private static PyObject s$46; + private static PyObject s$47; + private static PyObject s$48; + private static PyObject s$49; + private static PyObject s$50; + private static PyObject s$51; + private static PyObject s$52; + private static PyObject s$53; + private static PyObject s$54; + private static PyObject s$55; + private static PyObject s$56; + private static PyObject s$57; + private static PyObject s$58; + private static PyObject i$59; + private static PyObject s$60; + private static PyObject s$61; + private static PyObject s$62; + private static PyObject i$63; + private static PyObject i$64; + private static PyObject i$65; + private static PyObject s$66; + private static PyObject s$67; + private static PyObject i$68; + private static PyObject s$69; + private static PyObject i$70; + private static PyObject s$71; + private static PyObject s$72; + private static PyObject i$73; + private static PyObject s$74; + private static PyObject s$75; + private static PyObject s$76; + private static PyObject s$77; + private static PyObject s$78; + private static PyObject s$79; + private static PyObject i$80; + private static PyObject s$81; + private static PyObject s$82; + private static PyObject s$83; + private static PyObject i$84; + private static PyObject s$85; + private static PyObject s$86; + private static PyObject s$87; + private static PyObject s$88; + private static PyObject i$89; + private static PyObject s$90; + private static PyObject i$91; + private static PyObject i$92; + private static PyObject i$93; + private static PyObject s$94; + private static PyFunctionTable funcTable; + private static PyCode c$0_firstweekday; + private static PyCode c$1_setfirstweekday; + private static PyCode c$2_isleap; + private static PyCode c$3_leapdays; + private static PyCode c$4_weekday; + private static PyCode c$5_monthrange; + private static PyCode c$6_monthcalendar; + private static PyCode c$7__center; + private static PyCode c$8_prweek; + private static PyCode c$9_week; + private static PyCode c$10_weekheader; + private static PyCode c$11_prmonth; + private static PyCode c$12_month; + private static PyCode c$13_format3c; + private static PyCode c$14_format3cstring; + private static PyCode c$15_prcal; + private static PyCode c$16_calendar; + private static PyCode c$17_timegm; + private static PyCode c$18_main; + private static void initConstants() { + s$0 = Py.newString("Calendar printing functions\012\012Note when comparing these calendars to the ones printed by cal(1): By\012default, these calendars have Monday as the first day of the week, and\012Sunday as the last (the European convention). Use setfirstweekday() to\012set the first day of the week (0=Monday, 6=Sunday)."); + s$1 = Py.newString("error"); + s$2 = Py.newString("setfirstweekday"); + s$3 = Py.newString("firstweekday"); + s$4 = Py.newString("isleap"); + s$5 = Py.newString("leapdays"); + s$6 = Py.newString("weekday"); + s$7 = Py.newString("monthrange"); + s$8 = Py.newString("monthcalendar"); + s$9 = Py.newString("prmonth"); + s$10 = Py.newString("month"); + s$11 = Py.newString("prcal"); + s$12 = Py.newString("calendar"); + s$13 = Py.newString("timegm"); + i$14 = Py.newInteger(1); + i$15 = Py.newInteger(2); + i$16 = Py.newInteger(0); + i$17 = Py.newInteger(31); + i$18 = Py.newInteger(28); + i$19 = Py.newInteger(30); + s$20 = Py.newString("Monday"); + s$21 = Py.newString("Tuesday"); + s$22 = Py.newString("Wednesday"); + s$23 = Py.newString("Thursday"); + s$24 = Py.newString("Friday"); + s$25 = Py.newString("Saturday"); + s$26 = Py.newString("Sunday"); + s$27 = Py.newString("Mon"); + s$28 = Py.newString("Tue"); + s$29 = Py.newString("Wed"); + s$30 = Py.newString("Thu"); + s$31 = Py.newString("Fri"); + s$32 = Py.newString("Sat"); + s$33 = Py.newString("Sun"); + s$34 = Py.newString(""); + s$35 = Py.newString("January"); + s$36 = Py.newString("February"); + s$37 = Py.newString("March"); + s$38 = Py.newString("April"); + s$39 = Py.newString("May"); + s$40 = Py.newString("June"); + s$41 = Py.newString("July"); + s$42 = Py.newString("August"); + s$43 = Py.newString("September"); + s$44 = Py.newString("October"); + s$45 = Py.newString("November"); + s$46 = Py.newString("December"); + s$47 = Py.newString(" "); + s$48 = Py.newString("Jan"); + s$49 = Py.newString("Feb"); + s$50 = Py.newString("Mar"); + s$51 = Py.newString("Apr"); + s$52 = Py.newString("Jun"); + s$53 = Py.newString("Jul"); + s$54 = Py.newString("Aug"); + s$55 = Py.newString("Sep"); + s$56 = Py.newString("Oct"); + s$57 = Py.newString("Nov"); + s$58 = Py.newString("Dec"); + i$59 = Py.newInteger(7); + s$60 = Py.newString("Set weekday (Monday=0, Sunday=6) to start each week."); + s$61 = Py.newString("bad weekday number; must be 0 (Monday) to 6 (Sunday)"); + s$62 = Py.newString("Return 1 for leap years, 0 for non-leap years."); + i$63 = Py.newInteger(4); + i$64 = Py.newInteger(100); + i$65 = Py.newInteger(400); + s$66 = Py.newString("Return number of leap years in range [y1, y2).\012 Assume y1 <= y2."); + s$67 = Py.newString("Return weekday (0-6 ~ Mon-Sun) for year (1970-...), month (1-12),\012 day (1-31)."); + i$68 = Py.newInteger(6); + s$69 = Py.newString("Return weekday (0-6 ~ Mon-Sun) and number of days (28-31) for\012 year, month."); + i$70 = Py.newInteger(12); + s$71 = Py.newString("bad month number"); + s$72 = Py.newString("Return a matrix representing a month's calendar.\012 Each row represents a week; days outside this month are zero."); + i$73 = Py.newInteger(5); + s$74 = Py.newString("Center a string in a field."); + s$75 = Py.newString(" "); + s$76 = Py.newString("Print a single week (no newline)."); + s$77 = Py.newString("Returns a single week in a string (no newline)."); + s$78 = Py.newString("%2i"); + s$79 = Py.newString("Return a header for a week."); + i$80 = Py.newInteger(9); + s$81 = Py.newString("Print a month's calendar."); + s$82 = Py.newString("Return a month's calendar string (multi-line)."); + s$83 = Py.newString("\012"); + i$84 = Py.newInteger(3); + s$85 = Py.newString("Prints 3-column formatting for year calendars"); + s$86 = Py.newString("Returns a string formatted from 3 strings, centered within 3 columns."); + s$87 = Py.newString("Print a year's calendar."); + s$88 = Py.newString("Returns a year's calendar as a multi-line string."); + i$89 = Py.newInteger(1970); + s$90 = Py.newString("Unrelated but handy function to calculate Unix timestamp from GMT."); + i$91 = Py.newInteger(365); + i$92 = Py.newInteger(24); + i$93 = Py.newInteger(60); + s$94 = Py.newString("/usr/share/jython/Lib-cpython/calendar.py"); + funcTable = new _PyInner(); + c$0_firstweekday = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/calendar.py", "firstweekday", false, false, funcTable, 0, null, null, 0, 1); + c$1_setfirstweekday = Py.newCode(1, new String[] {"weekday"}, "/usr/share/jython/Lib-cpython/calendar.py", "setfirstweekday", false, false, funcTable, 1, null, null, 0, 1); + c$2_isleap = Py.newCode(1, new String[] {"year"}, "/usr/share/jython/Lib-cpython/calendar.py", "isleap", false, false, funcTable, 2, null, null, 0, 1); + c$3_leapdays = Py.newCode(2, new String[] {"y1", "y2"}, "/usr/share/jython/Lib-cpython/calendar.py", "leapdays", false, false, funcTable, 3, null, null, 0, 1); + c$4_weekday = Py.newCode(3, new String[] {"year", "month", "day", "tuple", "secs"}, "/usr/share/jython/Lib-cpython/calendar.py", "weekday", false, false, funcTable, 4, null, null, 0, 1); + c$5_monthrange = Py.newCode(2, new String[] {"year", "month", "ndays", "day1"}, "/usr/share/jython/Lib-cpython/calendar.py", "monthrange", false, false, funcTable, 5, null, null, 0, 1); + c$6_monthcalendar = Py.newCode(2, new String[] {"year", "month", "ndays", "i", "day", "day1", "r7", "row", "rows"}, "/usr/share/jython/Lib-cpython/calendar.py", "monthcalendar", false, false, funcTable, 6, null, null, 0, 1); + c$7__center = Py.newCode(2, new String[] {"str", "width", "n"}, "/usr/share/jython/Lib-cpython/calendar.py", "_center", false, false, funcTable, 7, null, null, 0, 1); + c$8_prweek = Py.newCode(2, new String[] {"theweek", "width"}, "/usr/share/jython/Lib-cpython/calendar.py", "prweek", false, false, funcTable, 8, null, null, 0, 1); + c$9_week = Py.newCode(2, new String[] {"theweek", "width", "day", "s", "days"}, "/usr/share/jython/Lib-cpython/calendar.py", "week", false, false, funcTable, 9, null, null, 0, 1); + c$10_weekheader = Py.newCode(1, new String[] {"width", "i", "names", "days"}, "/usr/share/jython/Lib-cpython/calendar.py", "weekheader", false, false, funcTable, 10, null, null, 0, 1); + c$11_prmonth = Py.newCode(4, new String[] {"theyear", "themonth", "w", "l"}, "/usr/share/jython/Lib-cpython/calendar.py", "prmonth", false, false, funcTable, 11, null, null, 0, 1); + c$12_month = Py.newCode(4, new String[] {"theyear", "themonth", "w", "l", "aweek", "s"}, "/usr/share/jython/Lib-cpython/calendar.py", "month", false, false, funcTable, 12, null, null, 0, 1); + c$13_format3c = Py.newCode(5, new String[] {"a", "b", "c", "colwidth", "spacing"}, "/usr/share/jython/Lib-cpython/calendar.py", "format3c", false, false, funcTable, 13, null, null, 0, 1); + c$14_format3cstring = Py.newCode(5, new String[] {"a", "b", "c", "colwidth", "spacing"}, "/usr/share/jython/Lib-cpython/calendar.py", "format3cstring", false, false, funcTable, 14, null, null, 0, 1); + c$15_prcal = Py.newCode(4, new String[] {"year", "w", "l", "c"}, "/usr/share/jython/Lib-cpython/calendar.py", "prcal", false, false, funcTable, 15, null, null, 0, 1); + c$16_calendar = Py.newCode(4, new String[] {"year", "w", "l", "c", "weeks", "cal", "s", "height", "q", "colwidth", "amonth", "i", "header", "data"}, "/usr/share/jython/Lib-cpython/calendar.py", "calendar", false, false, funcTable, 16, null, null, 0, 1); + c$17_timegm = Py.newCode(1, new String[] {"tuple", "second", "minute", "minutes", "hour", "i", "month", "year", "day", "hours", "seconds", "days"}, "/usr/share/jython/Lib-cpython/calendar.py", "timegm", false, false, funcTable, 17, null, null, 0, 1); + c$18_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/calendar.py", "main", false, false, funcTable, 18, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$18_main == null) _PyInner.initConstants(); + return c$18_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.firstweekday$1(frame); + case 1: + return _PyInner.setfirstweekday$2(frame); + case 2: + return _PyInner.isleap$3(frame); + case 3: + return _PyInner.leapdays$4(frame); + case 4: + return _PyInner.weekday$5(frame); + case 5: + return _PyInner.monthrange$6(frame); + case 6: + return _PyInner.monthcalendar$7(frame); + case 7: + return _PyInner._center$8(frame); + case 8: + return _PyInner.prweek$9(frame); + case 9: + return _PyInner.week$10(frame); + case 10: + return _PyInner.weekheader$11(frame); + case 11: + return _PyInner.prmonth$12(frame); + case 12: + return _PyInner.month$13(frame); + case 13: + return _PyInner.format3c$14(frame); + case 14: + return _PyInner.format3cstring$15(frame); + case 15: + return _PyInner.prcal$16(frame); + case 16: + return _PyInner.calendar$17(frame); + case 17: + return _PyInner.timegm$18(frame); + case 18: + return _PyInner.main$19(frame); + default: + return null; + } + } + + private static PyObject firstweekday$1(PyFrame frame) { + return frame.getglobal("_firstweekday"); + } + + private static PyObject setfirstweekday$2(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + /* Set weekday (Monday=0, Sunday=6) to start each week. */ + // global _firstweekday + if ((frame.getglobal("MONDAY")._le(t$0$PyObject = frame.getlocal(0)).__nonzero__() ? t$0$PyObject._le(frame.getglobal("SUNDAY")) : Py.Zero).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$61); + } + frame.setglobal("_firstweekday", frame.getlocal(0)); + return Py.None; + } + + private static PyObject isleap$3(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Return 1 for leap years, 0 for non-leap years. */ + return (t$0$PyObject = frame.getlocal(0)._mod(i$63)._eq(i$16)).__nonzero__() ? ((t$1$PyObject = frame.getlocal(0)._mod(i$64)._ne(i$16)).__nonzero__() ? t$1$PyObject : frame.getlocal(0)._mod(i$65)._eq(i$16)) : t$0$PyObject; + } + + private static PyObject leapdays$4(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + /* Return number of leap years in range [y1, y2). + Assume y1 <= y2. */ + t$0$PyObject = i$14; + frame.setlocal(0, frame.getlocal(0).__isub__(t$0$PyObject)); + t$0$PyObject = i$14; + frame.setlocal(1, frame.getlocal(1).__isub__(t$0$PyObject)); + return frame.getlocal(1)._div(i$63)._sub(frame.getlocal(0)._div(i$63))._sub(frame.getlocal(1)._div(i$64)._sub(frame.getlocal(0)._div(i$64)))._add(frame.getlocal(1)._div(i$65)._sub(frame.getlocal(0)._div(i$65))); + } + + private static PyObject weekday$5(PyFrame frame) { + /* Return weekday (0-6 ~ Mon-Sun) for year (1970-...), month (1-12), + day (1-31). */ + frame.setlocal(4, frame.getglobal("mktime").__call__(new PyTuple(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2), i$16, i$16, i$16, i$16, i$16, i$16}))); + frame.setlocal(3, frame.getglobal("localtime").__call__(frame.getlocal(4))); + return frame.getlocal(3).__getitem__(i$68); + } + + private static PyObject monthrange$6(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + /* Return weekday (0-6 ~ Mon-Sun) and number of days (28-31) for + year, month. */ + if ((i$14._le(t$0$PyObject = frame.getlocal(1)).__nonzero__() ? t$0$PyObject._le(i$70) : Py.Zero).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$71); + } + frame.setlocal(3, frame.getglobal("weekday").__call__(frame.getlocal(0), frame.getlocal(1), i$14)); + frame.setlocal(2, frame.getglobal("mdays").__getitem__(frame.getlocal(1))._add((t$0$PyObject = frame.getlocal(1)._eq(frame.getglobal("February"))).__nonzero__() ? frame.getglobal("isleap").__call__(frame.getlocal(0)) : t$0$PyObject)); + return new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(2)}); + } + + private static PyObject monthcalendar$7(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject; + + // Code + /* Return a matrix representing a month's calendar. + Each row represents a week; days outside this month are zero. */ + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("monthrange").__call__(frame.getlocal(0), frame.getlocal(1)), 2); + frame.setlocal(5, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + frame.setlocal(8, new PyList(new PyObject[] {})); + frame.setlocal(6, frame.getglobal("range").__call__(i$59)); + frame.setlocal(4, frame.getglobal("_firstweekday")._sub(frame.getlocal(5))._add(i$68)._mod(i$59)._sub(i$73)); + while (frame.getlocal(4)._le(frame.getlocal(2)).__nonzero__()) { + frame.setlocal(7, new PyList(new PyObject[] {i$16, i$16, i$16, i$16, i$16, i$16, i$16})); + t$0$int = 0; + t$1$PyObject = frame.getlocal(6); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(3, t$0$PyObject); + if ((i$14._le(t$2$PyObject = frame.getlocal(4)).__nonzero__() ? t$2$PyObject._le(frame.getlocal(2)) : Py.Zero).__nonzero__()) { + frame.getlocal(7).__setitem__(frame.getlocal(3), frame.getlocal(4)); + } + frame.setlocal(4, frame.getlocal(4)._add(i$14)); + } + frame.getlocal(8).invoke("append", frame.getlocal(7)); + } + return frame.getlocal(8); + } + + private static PyObject _center$8(PyFrame frame) { + /* Center a string in a field. */ + frame.setlocal(2, frame.getlocal(1)._sub(frame.getglobal("len").__call__(frame.getlocal(0)))); + if (frame.getlocal(2)._le(i$16).__nonzero__()) { + return frame.getlocal(0); + } + return s$75._mul(frame.getlocal(2)._add(i$14)._div(i$15))._add(frame.getlocal(0))._add(s$75._mul(frame.getlocal(2)._div(i$15))); + } + + private static PyObject prweek$9(PyFrame frame) { + /* Print a single week (no newline). */ + Py.printComma(frame.getglobal("week").__call__(frame.getlocal(0), frame.getlocal(1))); + return Py.None; + } + + private static PyObject week$10(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Returns a single week in a string (no newline). */ + frame.setlocal(4, new PyList(new PyObject[] {})); + t$0$int = 0; + t$1$PyObject = frame.getlocal(0); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(2, t$0$PyObject); + if (frame.getlocal(2)._eq(i$16).__nonzero__()) { + frame.setlocal(3, s$34); + } + else { + frame.setlocal(3, s$78._mod(frame.getlocal(2))); + } + frame.getlocal(4).invoke("append", frame.getglobal("_center").__call__(frame.getlocal(3), frame.getlocal(1))); + } + return s$75.invoke("join", frame.getlocal(4)); + } + + private static PyObject weekheader$11(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Return a header for a week. */ + if (frame.getlocal(0)._ge(i$80).__nonzero__()) { + frame.setlocal(2, frame.getglobal("day_name")); + } + else { + frame.setlocal(2, frame.getglobal("day_abbr")); + } + frame.setlocal(3, new PyList(new PyObject[] {})); + t$0$int = 0; + t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("_firstweekday"), frame.getglobal("_firstweekday")._add(i$59)); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(1, t$0$PyObject); + frame.getlocal(3).invoke("append", frame.getglobal("_center").__call__(frame.getlocal(2).__getitem__(frame.getlocal(1)._mod(i$59)).__getslice__(null, frame.getlocal(0), null), frame.getlocal(0))); + } + return s$75.invoke("join", frame.getlocal(3)); + } + + private static PyObject prmonth$12(PyFrame frame) { + /* Print a month's calendar. */ + Py.printComma(frame.getglobal("month").__call__(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)})); + return Py.None; + } + + private static PyObject month$13(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Return a month's calendar string (multi-line). */ + frame.setlocal(2, frame.getglobal("max").__call__(i$15, frame.getlocal(2))); + frame.setlocal(3, frame.getglobal("max").__call__(i$14, frame.getlocal(3))); + frame.setlocal(5, frame.getglobal("_center").__call__(frame.getglobal("month_name").__getitem__(frame.getlocal(1))._add(s$75)._add(frame.getlocal(0).__repr__()), i$59._mul(frame.getlocal(2)._add(i$14))._sub(i$14)).invoke("rstrip")._add(s$83._mul(frame.getlocal(3)))._add(frame.getglobal("weekheader").__call__(frame.getlocal(2)).invoke("rstrip"))._add(s$83._mul(frame.getlocal(3)))); + t$0$int = 0; + t$1$PyObject = frame.getglobal("monthcalendar").__call__(frame.getlocal(0), frame.getlocal(1)); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(4, t$0$PyObject); + frame.setlocal(5, frame.getlocal(5)._add(frame.getglobal("week").__call__(frame.getlocal(4), frame.getlocal(2)).invoke("rstrip"))._add(s$83._mul(frame.getlocal(3)))); + } + return frame.getlocal(5).__getslice__(null, frame.getlocal(3).__neg__(), null)._add(s$83); + } + + private static PyObject format3c$14(PyFrame frame) { + /* Prints 3-column formatting for year calendars */ + Py.println(frame.getglobal("format3cstring").__call__(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2), frame.getlocal(3), frame.getlocal(4)})); + return Py.None; + } + + private static PyObject format3cstring$15(PyFrame frame) { + /* Returns a string formatted from 3 strings, centered within 3 columns. */ + return frame.getglobal("_center").__call__(frame.getlocal(0), frame.getlocal(3))._add(s$75._mul(frame.getlocal(4)))._add(frame.getglobal("_center").__call__(frame.getlocal(1), frame.getlocal(3)))._add(s$75._mul(frame.getlocal(4)))._add(frame.getglobal("_center").__call__(frame.getlocal(2), frame.getlocal(3))); + } + + private static PyObject prcal$16(PyFrame frame) { + /* Print a year's calendar. */ + Py.printComma(frame.getglobal("calendar").__call__(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)})); + return Py.None; + } + + private static PyObject calendar$17(PyFrame frame) { + // Temporary Variables + int t$0$int, t$1$int, t$2$int, t$3$int; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject, t$6$PyObject, t$7$PyObject; + + // Code + /* Returns a year's calendar as a multi-line string. */ + frame.setlocal(1, frame.getglobal("max").__call__(i$15, frame.getlocal(1))); + frame.setlocal(2, frame.getglobal("max").__call__(i$14, frame.getlocal(2))); + frame.setlocal(3, frame.getglobal("max").__call__(i$15, frame.getlocal(3))); + frame.setlocal(9, frame.getlocal(1)._add(i$14)._mul(i$59)._sub(i$14)); + frame.setlocal(6, frame.getglobal("_center").__call__(frame.getlocal(0).__repr__(), frame.getlocal(9)._mul(i$84)._add(frame.getlocal(3)._mul(i$15))).invoke("rstrip")._add(s$83._mul(frame.getlocal(2)))); + frame.setlocal(12, frame.getglobal("weekheader").__call__(frame.getlocal(1))); + frame.setlocal(12, frame.getglobal("format3cstring").__call__(new PyObject[] {frame.getlocal(12), frame.getlocal(12), frame.getlocal(12), frame.getlocal(9), frame.getlocal(3)}).invoke("rstrip")); + t$0$int = 0; + t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("January"), frame.getglobal("January")._add(i$70), i$84); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(8, t$0$PyObject); + frame.setlocal(6, frame.getlocal(6)._add(s$83._mul(frame.getlocal(2)))._add(frame.getglobal("format3cstring").__call__(new PyObject[] {frame.getglobal("month_name").__getitem__(frame.getlocal(8)), frame.getglobal("month_name").__getitem__(frame.getlocal(8)._add(i$14)), frame.getglobal("month_name").__getitem__(frame.getlocal(8)._add(i$15)), frame.getlocal(9), frame.getlocal(3)}).invoke("rstrip"))._add(s$83._mul(frame.getlocal(2)))._add(frame.getlocal(12))._add(s$83._mul(frame.getlocal(2)))); + frame.setlocal(13, new PyList(new PyObject[] {})); + frame.setlocal(7, i$16); + t$1$int = 0; + t$3$PyObject = frame.getglobal("range").__call__(frame.getlocal(8), frame.getlocal(8)._add(i$84)); + while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) { + frame.setlocal(10, t$2$PyObject); + frame.setlocal(5, frame.getglobal("monthcalendar").__call__(frame.getlocal(0), frame.getlocal(10))); + if (frame.getglobal("len").__call__(frame.getlocal(5))._gt(frame.getlocal(7)).__nonzero__()) { + frame.setlocal(7, frame.getglobal("len").__call__(frame.getlocal(5))); + } + frame.getlocal(13).invoke("append", frame.getlocal(5)); + } + t$2$int = 0; + t$5$PyObject = frame.getglobal("range").__call__(frame.getlocal(7)); + while ((t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) { + frame.setlocal(11, t$4$PyObject); + frame.setlocal(4, new PyList(new PyObject[] {})); + t$3$int = 0; + t$7$PyObject = frame.getlocal(13); + while ((t$6$PyObject = t$7$PyObject.__finditem__(t$3$int++)) != null) { + frame.setlocal(5, t$6$PyObject); + if (frame.getlocal(11)._ge(frame.getglobal("len").__call__(frame.getlocal(5))).__nonzero__()) { + frame.getlocal(4).invoke("append", s$34); + } + else { + frame.getlocal(4).invoke("append", frame.getglobal("week").__call__(frame.getlocal(5).__getitem__(frame.getlocal(11)), frame.getlocal(1))); + } + } + frame.setlocal(6, frame.getlocal(6)._add(frame.getglobal("format3cstring").__call__(new PyObject[] {frame.getlocal(4).__getitem__(i$16), frame.getlocal(4).__getitem__(i$14), frame.getlocal(4).__getitem__(i$15), frame.getlocal(9), frame.getlocal(3)}).invoke("rstrip"))._add(s$83._mul(frame.getlocal(2)))); + } + } + return frame.getlocal(6).__getslice__(null, frame.getlocal(2).__neg__(), null)._add(s$83); + } + + private static PyObject timegm$18(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject; + + // Code + /* Unrelated but handy function to calculate Unix timestamp from GMT. */ + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getslice__(null, i$68, null), 6); + frame.setlocal(7, t$0$PyObject__[0]); + frame.setlocal(6, t$0$PyObject__[1]); + frame.setlocal(8, t$0$PyObject__[2]); + frame.setlocal(4, t$0$PyObject__[3]); + frame.setlocal(2, t$0$PyObject__[4]); + frame.setlocal(1, t$0$PyObject__[5]); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(7)._ge(frame.getglobal("EPOCH"))); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(i$14._le(t$0$PyObject = frame.getlocal(6)).__nonzero__() ? t$0$PyObject._le(i$70) : Py.Zero); + frame.setlocal(11, i$91._mul(frame.getlocal(7)._sub(frame.getglobal("EPOCH")))._add(frame.getglobal("leapdays").__call__(frame.getglobal("EPOCH"), frame.getlocal(7)))); + t$0$int = 0; + t$1$PyObject = frame.getglobal("range").__call__(i$14, frame.getlocal(6)); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(5, t$0$PyObject); + frame.setlocal(11, frame.getlocal(11)._add(frame.getglobal("mdays").__getitem__(frame.getlocal(5)))); + } + if (((t$2$PyObject = frame.getlocal(6)._gt(i$15)).__nonzero__() ? frame.getglobal("isleap").__call__(frame.getlocal(7)) : t$2$PyObject).__nonzero__()) { + frame.setlocal(11, frame.getlocal(11)._add(i$14)); + } + frame.setlocal(11, frame.getlocal(11)._add(frame.getlocal(8))._sub(i$14)); + frame.setlocal(9, frame.getlocal(11)._mul(i$92)._add(frame.getlocal(4))); + frame.setlocal(3, frame.getlocal(9)._mul(i$93)._add(frame.getlocal(2))); + frame.setlocal(10, frame.getlocal(3)._mul(i$93)._add(frame.getlocal(1))); + return frame.getlocal(10); + } + + private static PyObject main$19(PyFrame frame) { + frame.setglobal("__file__", s$94); + + PyObject[] imp_accu; + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + /* Calendar printing functions + + Note when comparing these calendars to the ones printed by cal(1): By + default, these calendars have Monday as the first day of the week, and + Sunday as the last (the European convention). Use setfirstweekday() to + set the first day of the week (0=Monday, 6=Sunday). */ + imp_accu = org.python.core.imp.importFrom("time", new String[] {"localtime", "mktime"}, frame); + frame.setlocal("localtime", imp_accu[0]); + frame.setlocal("mktime", imp_accu[1]); + imp_accu = null; + frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12, s$13})); + frame.setlocal("error", frame.getname("ValueError")); + frame.setlocal("January", i$14); + frame.setlocal("February", i$15); + frame.setlocal("mdays", new PyList(new PyObject[] {i$16, i$17, i$18, i$17, i$19, i$17, i$19, i$17, i$17, i$19, i$17, i$19, i$17})); + frame.setlocal("day_name", new PyList(new PyObject[] {s$20, s$21, s$22, s$23, s$24, s$25, s$26})); + frame.setlocal("day_abbr", new PyList(new PyObject[] {s$27, s$28, s$29, s$30, s$31, s$32, s$33})); + frame.setlocal("month_name", new PyList(new PyObject[] {s$34, s$35, s$36, s$37, s$38, s$39, s$40, s$41, s$42, s$43, s$44, s$45, s$46})); + frame.setlocal("month_abbr", new PyList(new PyObject[] {s$47, s$48, s$49, s$50, s$51, s$39, s$52, s$53, s$54, s$55, s$56, s$57, s$58})); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getname("range").__call__(i$59), 7); + frame.setlocal("MONDAY", t$0$PyObject__[0]); + frame.setlocal("TUESDAY", t$0$PyObject__[1]); + frame.setlocal("WEDNESDAY", t$0$PyObject__[2]); + frame.setlocal("THURSDAY", t$0$PyObject__[3]); + frame.setlocal("FRIDAY", t$0$PyObject__[4]); + frame.setlocal("SATURDAY", t$0$PyObject__[5]); + frame.setlocal("SUNDAY", t$0$PyObject__[6]); + frame.setlocal("_firstweekday", i$16); + frame.setlocal("firstweekday", new PyFunction(frame.f_globals, new PyObject[] {}, c$0_firstweekday)); + frame.setlocal("setfirstweekday", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_setfirstweekday)); + frame.setlocal("isleap", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_isleap)); + frame.setlocal("leapdays", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_leapdays)); + frame.setlocal("weekday", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_weekday)); + frame.setlocal("monthrange", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_monthrange)); + frame.setlocal("monthcalendar", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_monthcalendar)); + frame.setlocal("_center", new PyFunction(frame.f_globals, new PyObject[] {}, c$7__center)); + frame.setlocal("prweek", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_prweek)); + frame.setlocal("week", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_week)); + frame.setlocal("weekheader", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_weekheader)); + frame.setlocal("prmonth", new PyFunction(frame.f_globals, new PyObject[] {i$16, i$16}, c$11_prmonth)); + frame.setlocal("month", new PyFunction(frame.f_globals, new PyObject[] {i$16, i$16}, c$12_month)); + frame.setlocal("_colwidth", i$59._mul(i$84)._sub(i$14)); + frame.setlocal("_spacing", i$68); + frame.setlocal("format3c", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("_colwidth"), frame.getname("_spacing")}, c$13_format3c)); + frame.setlocal("format3cstring", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("_colwidth"), frame.getname("_spacing")}, c$14_format3cstring)); + frame.setlocal("prcal", new PyFunction(frame.f_globals, new PyObject[] {i$16, i$16, frame.getname("_spacing")}, c$15_prcal)); + frame.setlocal("calendar", new PyFunction(frame.f_globals, new PyObject[] {i$16, i$16, frame.getname("_spacing")}, c$16_calendar)); + frame.setlocal("EPOCH", i$89); + frame.setlocal("timegm", new PyFunction(frame.f_globals, new PyObject[] {}, c$17_timegm)); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("calendar")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "calendar"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(calendar._PyInner.class, newargs, calendar.jpy$packages, calendar.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/copy$_PyInner.class b/server/jpywork/copy$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..f0bb7bf93b970aeb8f539f8c5032b7283f534df4 GIT binary patch literal 17997 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 literal 0 HcmV?d00001 diff --git a/server/jpywork/copy_reg.class b/server/jpywork/copy_reg.class new file mode 100644 index 0000000000000000000000000000000000000000..937827f2e9db236199ce64f5404042f13b8238f5 GIT binary patch literal 2489 zcma)-`*Rc56~{lvmbF(xw$}?dga!f)G`65}Qkp(uphfk-pOR`~7}*`g33gm@=V1cBcPB`=@j|cO_%dxSi?;?e4kf`90rr?%)6QmwP~s zKRJvDsu6d3^~9_@6a@Ebuo29)f@pp2!s=Di$OP|dr+1_sgwb*mcTAFnCKYzSxVWvU zvm}hx=Y`!?wUfk~y83*@)Jp0iVo-p0%Wz9IMwd1vJ%cQl{ZrIAgNU=vaYBn3DlZA1V zJ{>3PwSj6QPE2k4sDvDmd2k zpr9;1wa8?OLqaM4vbZYVE=>MM28ttslk0@B;vK?x{?X0CR_)cWV|~w5P!xs9#V|5U z-S(vR2j=4{n-%e{V!=Vw^UnV~KYm@vCi=6yWv@cteB^utz|=cKT! zUQbOHW~N=Q3v)Yo`(KGWoEE0GD14;8+*^nulax8dar^gdg%5H@aMn%sd=N&${+Zbw z99m+{mpR9W9L@{gTZ^yoVHN}@=|)yrXzqk)?q>)81El}^$xcZPjD&(6KVf=ihpDr3 zQQqdG!;+oD`%`@Xq|7oObNJ|kv(rm6)2^VoD3pRE33?Vwp*q}$K^_Z3jouP1%&u5& zu2d*dR-7*5^P(&&+V7LGUs!@sy$|ptvd& z(|oTfT0$`iqP4iKh=hWjN<~K~Wl7L5t3l(MA`y0_iK#c@b|-8ZMJ5!3%xs34VnY~B z6QkG^#`{`PngvmoDqa;-KZAt}icbqgTWy>wK5KJ`8`ta(`J7Pb1)a9y3wCD*EfcK; ziQ-E_Au*jq@nxZ+b8T&s4U;IoYV8N_Ul&Gf0^bx$tuQi;pwTpnZx0q#C&-$L?+WTt zY7)CP6yFyLmJNy@+ESZ|3D!cpz6aCL z#jpD_(;vQMxaa)_??CDQPc%f8K?8TNn_Y4Et#D|YKzY=qIP24AYmW);|!i^@GMbA*oFOBy$a(96F^2GmoAUJ z$)rE(O=-X2?bbKh>pURv$GnHMU-TZ|?w=j7;zzabc!#y`7QM%`?<()8zRBZn z0KzQbS^CCd7sk0TlPMqeRr4ln)cm_ z_j&EReb@88p?!C^_bu(ad%W*x-`(qdPy6n) z_XF*_4|zY*zPr!+iT2%xy`Skj{NfFSgFHr+-wawa%^1){vB5aknP!uJ&|`$(0VDjL NKR`~MQwV>g^l!Ohf;RvF literal 0 HcmV?d00001 diff --git a/server/jpywork/copy_reg.java b/server/jpywork/copy_reg.java new file mode 100644 index 00000000..cb7caa5b --- /dev/null +++ b/server/jpywork/copy_reg.java @@ -0,0 +1,123 @@ +import org.python.core.*; + +public class copy_reg extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject s$1; + private static PyObject s$2; + private static PyObject s$3; + private static PyObject s$4; + private static PyObject s$5; + private static PyObject i$6; + private static PyObject j$7; + private static PyObject s$8; + private static PyFunctionTable funcTable; + private static PyCode c$0_pickle; + private static PyCode c$1_constructor; + private static PyCode c$2_pickle_complex; + private static PyCode c$3_main; + private static void initConstants() { + s$0 = Py.newString("Helper to provide extensibility for pickle/cPickle.\012\012This is only useful to add pickle support for extension types defined in\012C, not for instances of user-defined classes.\012"); + s$1 = Py.newString("pickle"); + s$2 = Py.newString("constructor"); + s$3 = Py.newString("copy_reg is not intended for use with classes"); + s$4 = Py.newString("reduction functions must be callable"); + s$5 = Py.newString("constructors must be callable"); + i$6 = Py.newInteger(1); + j$7 = Py.newImaginary(1.0); + s$8 = Py.newString("/usr/share/jython/Lib-cpython/copy_reg.py"); + funcTable = new _PyInner(); + c$0_pickle = Py.newCode(3, new String[] {"ob_type", "pickle_function", "constructor_ob"}, "/usr/share/jython/Lib-cpython/copy_reg.py", "pickle", false, false, funcTable, 0, null, null, 0, 1); + c$1_constructor = Py.newCode(1, new String[] {"object"}, "/usr/share/jython/Lib-cpython/copy_reg.py", "constructor", false, false, funcTable, 1, null, null, 0, 1); + c$2_pickle_complex = Py.newCode(1, new String[] {"c"}, "/usr/share/jython/Lib-cpython/copy_reg.py", "pickle_complex", false, false, funcTable, 2, null, null, 0, 1); + c$3_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/copy_reg.py", "main", false, false, funcTable, 3, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$3_main == null) _PyInner.initConstants(); + return c$3_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.pickle$1(frame); + case 1: + return _PyInner.constructor$2(frame); + case 2: + return _PyInner.pickle_complex$3(frame); + case 3: + return _PyInner.main$4(frame); + default: + return null; + } + } + + private static PyObject pickle$1(PyFrame frame) { + if (frame.getglobal("type").__call__(frame.getlocal(0))._is(frame.getglobal("_ClassType")).__nonzero__()) { + throw Py.makeException(frame.getglobal("TypeError").__call__(s$3)); + } + if (frame.getglobal("callable").__call__(frame.getlocal(1)).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("TypeError").__call__(s$4)); + } + frame.getglobal("dispatch_table").__setitem__(frame.getlocal(0), frame.getlocal(1)); + if (frame.getlocal(2)._isnot(frame.getglobal("None")).__nonzero__()) { + frame.getglobal("constructor").__call__(frame.getlocal(2)); + } + return Py.None; + } + + private static PyObject constructor$2(PyFrame frame) { + if (frame.getglobal("callable").__call__(frame.getlocal(0)).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("TypeError").__call__(s$5)); + } + frame.getglobal("safe_constructors").__setitem__(frame.getlocal(0), i$6); + return Py.None; + } + + private static PyObject pickle_complex$3(PyFrame frame) { + return new PyTuple(new PyObject[] {frame.getglobal("complex"), new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("real"), frame.getlocal(0).__getattr__("imag")})}); + } + + private static PyObject main$4(PyFrame frame) { + frame.setglobal("__file__", s$8); + + PyObject[] imp_accu; + // Code + /* Helper to provide extensibility for pickle/cPickle. + + This is only useful to add pickle support for extension types defined in + C, not for instances of user-defined classes. + */ + imp_accu = org.python.core.imp.importFrom("types", new String[] {"ClassType"}, frame); + frame.setlocal("_ClassType", imp_accu[0]); + imp_accu = null; + frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2})); + frame.setlocal("dispatch_table", new PyDictionary(new PyObject[] {})); + frame.setlocal("safe_constructors", new PyDictionary(new PyObject[] {})); + frame.setlocal("pickle", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$0_pickle)); + frame.setlocal("constructor", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_constructor)); + frame.setlocal("pickle_complex", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_pickle_complex)); + frame.getname("pickle").__call__(frame.getname("type").__call__(j$7), frame.getname("pickle_complex"), frame.getname("complex")); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("copy_reg")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "copy_reg"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(copy_reg._PyInner.class, newargs, copy_reg.jpy$packages, copy_reg.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/javaos$_PyInner.class b/server/jpywork/javaos$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..8d9b498ec52c404a0ed3837b84883338fd4368f5 GIT binary patch literal 31551 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 UfMKpS*T|2F5zy>54}-G*2hzs-4gdfE literal 0 HcmV?d00001 diff --git a/server/jpywork/javaos.class b/server/jpywork/javaos.class new file mode 100644 index 0000000000000000000000000000000000000000..7f0f7efeb1f3fb4eae77cbc97e507bf52a8a8e33 GIT binary patch literal 2485 zcma)7>30)V6#w03nt4g5?eKsK$f_W1z!XK?%BDcISW5LlaX<;v=_46PX5yO(5chrG z_kH*H88`L} z*R>L<>m7H?+SK%_ZWOKFK$zF&V}}-w5OSg!#1$F)9)WH4s(#?dTM3!Lp(%o~Bb<>Y z?5pxjqcd>AK)o4P!k}0SXBt%*6{j11HTDCB1%x&7lqc)49|qCgp(+f*b2FF8H9!~2S)>RKrHq#c53{5d?Ah1#?aBH$uGI1+m z(Y5NcNO$FN3pVLUw-Xi)wso;J2}4tP+=;tQ+||)f8rH%HHWPYErAWqpENi6_VYq|0 z|4Q7%RzknVDvVZ_CYxhHAXOe)uwMV&W8q%xAedzt?{WQruw-zkgF8J|BYEt?eI`Z; z{Mynj+>bGWsTzS+CR94%nfU48zlHO^pL9y9WkfJE`3M7p9XO|1k)NAJ6BC++S2%p- zB#%ivWa7cAnbVA7S+gLpkC1bfa+_XQZxRaaU1;So*4E}((b&+Gp3Er=Ipi6(=HcLw ziG!_{q5@{}JloFHT(B^gc;dQ+_+ zirpZN7#=6EG=s6d3{UE~p?6$wji(7l)2-JSo+U8Pt;%4=RSeG)3?=J|;YBSE>&=pq zWrmjtmPl-cR41fjcvX9Ay}wTA(kZ-2$W{G7dahTI3~#pBg0*QNi#zA*ZXWyDE~JO!1Hb^&R|fRxn5`#kJ#)x|&;$L`dKP*?=mQYLNTie9m(cHI_&nhl ze7-n~h2~WPr<-3VoGf1~&fmCKzHFh*3Fq^6JZ89+>ByNbvwEf>B<5hzKB~KzVSS6JBK?i zVvBPg+sP2^56pS#)6f{(&~I$V3gaH+up1Ac3*!k8ggqJr>O&4)0RAjoHjZ3E z|MSje4}veJbywsb`O6_IJU)~5sux< zpA(MV$6pYR-OpbVj&1W-gk#U+uL;NI{0-sQ^Z8rCu@~@ngkvw{?+M2q;2#LbzK(w+ z9D5P}L^$?h{+YOdFHVE795I K&K3}UMDB01Zhs>H literal 0 HcmV?d00001 diff --git a/server/jpywork/javaos.java b/server/jpywork/javaos.java new file mode 100644 index 00000000..5b1394f8 --- /dev/null +++ b/server/jpywork/javaos.java @@ -0,0 +1,1098 @@ +import org.python.core.*; + +public class javaos extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject s$1; + private static PyObject s$2; + private static PyObject s$3; + private static PyObject s$4; + private static PyObject s$5; + private static PyObject s$6; + private static PyObject s$7; + private static PyObject s$8; + private static PyObject s$9; + private static PyObject s$10; + private static PyObject s$11; + private static PyObject s$12; + private static PyObject i$13; + private static PyObject s$14; + private static PyObject s$15; + private static PyObject s$16; + private static PyObject s$17; + private static PyObject s$18; + private static PyObject s$19; + private static PyObject s$20; + private static PyObject s$21; + private static PyObject s$22; + private static PyObject s$23; + private static PyObject s$24; + private static PyObject f$25; + private static PyObject s$26; + private static PyObject i$27; + private static PyObject s$28; + private static PyObject s$29; + private static PyObject s$30; + private static PyObject s$31; + private static PyObject s$32; + private static PyObject s$33; + private static PyObject s$34; + private static PyObject s$35; + private static PyObject s$36; + private static PyObject s$37; + private static PyObject s$38; + private static PyObject s$39; + private static PyObject s$40; + private static PyObject s$41; + private static PyObject s$42; + private static PyObject s$43; + private static PyObject s$44; + private static PyObject s$45; + private static PyObject s$46; + private static PyObject s$47; + private static PyObject s$48; + private static PyObject s$49; + private static PyObject s$50; + private static PyObject s$51; + private static PyObject s$52; + private static PyObject s$53; + private static PyObject s$54; + private static PyObject s$55; + private static PyObject s$56; + private static PyObject s$57; + private static PyObject s$58; + private static PyObject s$59; + private static PyObject s$60; + private static PyObject s$61; + private static PyObject s$62; + private static PyObject s$63; + private static PyObject s$64; + private static PyObject s$65; + private static PyObject s$66; + private static PyObject s$67; + private static PyObject s$68; + private static PyObject s$69; + private static PyObject s$70; + private static PyObject s$71; + private static PyObject s$72; + private static PyObject s$73; + private static PyObject s$74; + private static PyObject s$75; + private static PyObject s$76; + private static PyObject s$77; + private static PyObject s$78; + private static PyObject s$79; + private static PyObject s$80; + private static PyObject s$81; + private static PyObject s$82; + private static PyObject s$83; + private static PyObject s$84; + private static PyObject s$85; + private static PyObject s$86; + private static PyObject s$87; + private static PyObject s$88; + private static PyObject s$89; + private static PyObject s$90; + private static PyObject s$91; + private static PyObject s$92; + private static PyObject s$93; + private static PyObject s$94; + private static PyObject s$95; + private static PyObject s$96; + private static PyObject s$97; + private static PyObject s$98; + private static PyObject s$99; + private static PyObject s$100; + private static PyObject s$101; + private static PyObject s$102; + private static PyObject s$103; + private static PyObject s$104; + private static PyObject s$105; + private static PyObject s$106; + private static PyObject s$107; + private static PyObject s$108; + private static PyObject s$109; + private static PyFunctionTable funcTable; + private static PyCode c$0__exit; + private static PyCode c$1_getcwd; + private static PyCode c$2_chdir; + private static PyCode c$3_listdir; + private static PyCode c$4_mkdir; + private static PyCode c$5_makedirs; + private static PyCode c$6_remove; + private static PyCode c$7_rename; + private static PyCode c$8_rmdir; + private static PyCode c$9_stat; + private static PyCode c$10_utime; + private static PyCode c$11_lambda; + private static PyCode c$12_lambda; + private static PyCode c$13___init__; + private static PyCode c$14__LazyDict__populate; + private static PyCode c$15___repr__; + private static PyCode c$16___cmp__; + private static PyCode c$17___len__; + private static PyCode c$18___getitem__; + private static PyCode c$19___setitem__; + private static PyCode c$20___delitem__; + private static PyCode c$21_clear; + private static PyCode c$22_copy; + private static PyCode c$23_keys; + private static PyCode c$24_items; + private static PyCode c$25_values; + private static PyCode c$26_has_key; + private static PyCode c$27_update; + private static PyCode c$28_get; + private static PyCode c$29_setdefault; + private static PyCode c$30_popitem; + private static PyCode c$31_LazyDict; + private static PyCode c$32___init__; + private static PyCode c$33_println; + private static PyCode c$34_printlnStdErr; + private static PyCode c$35_system; + private static PyCode c$36_execute; + private static PyCode c$37__readLines; + private static PyCode c$38__formatCmd; + private static PyCode c$39__formatEnvironment; + private static PyCode c$40__getEnvironment; + private static PyCode c$41__ShellEnv; + private static PyCode c$42__getOsType; + private static PyCode c$43__getShellEnv; + private static PyCode c$44__testGetOsType; + private static PyCode c$45__testCmds; + private static PyCode c$46__testSystem; + private static PyCode c$47__testBadShell; + private static PyCode c$48__testBadGetEnv; + private static PyCode c$49__test; + private static PyCode c$50_main; + private static void initConstants() { + s$0 = Py.newString("OS routines for Java, with some attempts to support DOS, NT, and\012Posix functionality.\012\012This exports:\012 - all functions from posix, nt, dos, os2, mac, or ce, e.g. unlink, stat, etc.\012 - os.path is one of the modules posixpath, ntpath, macpath, or dospath\012 - os.name is 'posix', 'nt', 'dos', 'os2', 'mac', 'ce' or 'riscos'\012 - os.curdir is a string representing the current directory ('.' or ':')\012 - os.pardir is a string representing the parent directory ('..' or '::')\012 - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\\\')\012 - os.altsep is the alternate pathname separator (None or '/')\012 - os.pathsep is the component separator used in $PATH etc\012 - os.linesep is the line separator in text files ('\\r' or '\\n' or '\\r\\n')\012 - os.defpath is the default search path for executables\012\012Programs that import and use 'os' stand a better chance of being\012portable between different platforms. Of course, they must then\012only use functions that are defined by all platforms (e.g., unlink\012and opendir), and leave all pathname manipulation to os.path\012(e.g., split and join).\012"); + s$1 = Py.newString("altsep"); + s$2 = Py.newString("curdir"); + s$3 = Py.newString("pardir"); + s$4 = Py.newString("sep"); + s$5 = Py.newString("pathsep"); + s$6 = Py.newString("linesep"); + s$7 = Py.newString("defpath"); + s$8 = Py.newString("name"); + s$9 = Py.newString("java"); + s$10 = Py.newString("."); + s$11 = Py.newString(".."); + s$12 = Py.newString("line.separator"); + i$13 = Py.newInteger(0); + s$14 = Py.newString("foo"); + s$15 = Py.newString("chdir not supported in Java"); + s$16 = Py.newString("No such directory"); + s$17 = Py.newString("couldn't make directory"); + s$18 = Py.newString("ignored"); + s$19 = Py.newString("couldn't make directories"); + s$20 = Py.newString("couldn't delete file"); + s$21 = Py.newString("couldn't rename file"); + s$22 = Py.newString("couldn't delete directory"); + s$23 = Py.newString("The Java stat implementation only returns a small subset of\012 the standard fields"); + s$24 = Py.newString("No such file or directory"); + f$25 = Py.newFloat(1000.0); + s$26 = Py.newString("setLastModified"); + i$27 = Py.newInteger(1); + s$28 = Py.newString("A lazy-populating User Dictionary.\012 Lazy initialization is not thread-safe.\012 "); + s$29 = Py.newString("dict: starting dictionary of values\012 populate: function that returns the populated dictionary\012 keyTransform: function to normalize the keys (e.g., toupper/None)\012 "); + s$30 = Py.newString("Provide environment derived by spawning a subshell and parsing its\012 environment. Also supports system functions and provides empty\012 environment support for platforms with unknown shell\012 functionality.\012 "); + s$31 = Py.newString("cmd: list of exec() arguments to run command in subshell, or None\012 getEnv: shell command to list environment variables, or None\012 keyTransform: normalization function for environment keys, or None\012 "); + s$32 = Py.newString("Imitate the standard library 'system' call.\012 Execute 'cmd' in a shell, and send output to stdout & stderr.\012 "); + s$33 = Py.newString("\012"); + s$34 = Py.newString("Execute cmd in a shell, and return the process instance"); + s$35 = Py.newString("Failed to execute command (%s): %s"); + s$36 = Py.newString("Read lines of stream, and either append them to return\012 array of lines, or call func on each line.\012 "); + s$37 = Py.newString("Format a command for execution in a shell."); + s$38 = Py.newString("Unable to execute commands in subshell because shell functionality not implemented for OS %s with shell setting %s. Failed command=%s"); + s$39 = Py.newString("Format enviroment in lines suitable for Runtime.exec"); + s$40 = Py.newString("%s=%s"); + s$41 = Py.newString("Get the environment variables by spawning a subshell.\012 This allows multi-line variables as long as subsequent lines do\012 not have '=' signs.\012 "); + s$42 = Py.newString("="); + s$43 = Py.newString("getEnv command (%s) did not print environment.\012Output=%s"); + s$44 = Py.newString("%s\012%s"); + s$45 = Py.newString("Failed to get environment, environ will be empty:"); + s$46 = Py.newString("Select the OS behavior based on os argument, 'python.os' registry\012 setting and 'os.name' Java property.\012 os: explicitly select desired OS. os=None to autodetect, os='None' to\012 disable \012 "); + s$47 = Py.newString("python.os"); + s$48 = Py.newString("os.name"); + s$49 = Py.newString("nt"); + s$50 = Py.newString("(nt)|(Windows NT)|(Windows NT 4.0)|(WindowsNT)|(Windows 2000)|(Windows XP)|(Windows CE)"); + s$51 = Py.newString("dos"); + s$52 = Py.newString("(dos)|(Windows 95)|(Windows 98)|(Windows ME)"); + s$53 = Py.newString("mac"); + s$54 = Py.newString("(mac)|(MacOS.*)|(Darwin)"); + s$55 = Py.newString("None"); + s$56 = Py.newString("(None)"); + s$57 = Py.newString("posix"); + s$58 = Py.newString("(.*)"); + s$59 = Py.newString("Create the desired environment type.\012 envType: 'shell' or None\012 "); + s$60 = Py.newString("shell"); + s$61 = Py.newString("python.environment"); + s$62 = Py.newString("cmd"); + s$63 = Py.newString("/c"); + s$64 = Py.newString("set"); + s$65 = Py.newString("command.com"); + s$66 = Py.newString("sh"); + s$67 = Py.newString("-c"); + s$68 = Py.newString("env"); + s$69 = Py.newString(":"); + s$70 = Py.newString("::"); + s$71 = Py.newString("Windows NT"); + s$72 = Py.newString("Windows 95"); + s$73 = Py.newString("MacOS"); + s$74 = Py.newString("Solaris"); + s$75 = Py.newString("Linux"); + s$76 = Py.newString("_getOsType( '%s' ) should return '%s', not '%s'"); + s$77 = Py.newString("\012Executing '%s' with %s environment"); + s$78 = Py.newString("%s failed with %s environment"); + s$79 = Py.newString("expected match for %s, got %s"); + s$80 = Py.newString("testKey"); + s$81 = Py.newString("testValue"); + s$82 = Py.newString("echo hello there"); + s$83 = Py.newString("hello there"); + s$84 = Py.newString("echo PATH=%PATH%"); + s$85 = Py.newString("(PATH=.*;.*)|(PATH=%PATH%)"); + s$86 = Py.newString("echo %s=%%%s%%"); + s$87 = Py.newString("(%s=)"); + s$88 = Py.newString("echo PATH=$PATH"); + s$89 = Py.newString("PATH=.*"); + s$90 = Py.newString("echo %s=$%s"); + s$91 = Py.newString("(%s=$%s)|(%s=)|(%s=%s)"); + s$92 = Py.newString("echo \"hello there\""); + s$93 = Py.newString("\"?hello there\"?"); + s$94 = Py.newString("jython -c \"import sys;sys.stdout.write( 'why\\n' )\""); + s$95 = Py.newString("why"); + s$96 = Py.newString("jython -c \"import sys;sys.stderr.write('why\\n');print \" "); + s$97 = Py.newString(""); + s$98 = Py.newString("before population, environ._populated should be false"); + s$99 = Py.newString("default"); + s$100 = Py.newString("after population, environ._populated should be true"); + s$101 = Py.newString("expected stub to have %s set"); + s$102 = Py.newString("expected real environment to have %s set"); + s$103 = Py.newString("initialized"); + s$104 = Py.newString("PATH"); + s$105 = Py.newString("expected environment to have PATH attribute (this may not apply to all platforms!)"); + s$106 = Py.newString("badshell"); + s$107 = Py.newString("environment should be empty"); + s$108 = Py.newString("echo This command does not print environment"); + s$109 = Py.newString("/usr/share/jython/Lib/javaos.py"); + funcTable = new _PyInner(); + c$0__exit = Py.newCode(1, new String[] {"n"}, "/usr/share/jython/Lib/javaos.py", "_exit", false, false, funcTable, 0, null, null, 0, 1); + c$1_getcwd = Py.newCode(0, new String[] {"foo"}, "/usr/share/jython/Lib/javaos.py", "getcwd", false, false, funcTable, 1, null, null, 0, 1); + c$2_chdir = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javaos.py", "chdir", false, false, funcTable, 2, null, null, 0, 1); + c$3_listdir = Py.newCode(1, new String[] {"path", "l"}, "/usr/share/jython/Lib/javaos.py", "listdir", false, false, funcTable, 3, null, null, 0, 1); + c$4_mkdir = Py.newCode(2, new String[] {"path", "mode"}, "/usr/share/jython/Lib/javaos.py", "mkdir", false, false, funcTable, 4, null, null, 0, 1); + c$5_makedirs = Py.newCode(2, new String[] {"path", "mode"}, "/usr/share/jython/Lib/javaos.py", "makedirs", false, false, funcTable, 5, null, null, 0, 1); + c$6_remove = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javaos.py", "remove", false, false, funcTable, 6, null, null, 0, 1); + c$7_rename = Py.newCode(2, new String[] {"path", "newpath"}, "/usr/share/jython/Lib/javaos.py", "rename", false, false, funcTable, 7, null, null, 0, 1); + c$8_rmdir = Py.newCode(1, new String[] {"path"}, "/usr/share/jython/Lib/javaos.py", "rmdir", false, false, funcTable, 8, null, null, 0, 1); + c$9_stat = Py.newCode(1, new String[] {"path", "mtime", "size", "f"}, "/usr/share/jython/Lib/javaos.py", "stat", false, false, funcTable, 9, null, null, 0, 1); + c$10_utime = Py.newCode(2, new String[] {"path", "times"}, "/usr/share/jython/Lib/javaos.py", "utime", false, false, funcTable, 10, null, null, 0, 1); + c$11_lambda = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javaos.py", "", false, false, funcTable, 11, null, null, 0, 1); + c$12_lambda = Py.newCode(1, new String[] {"key"}, "/usr/share/jython/Lib/javaos.py", "", false, false, funcTable, 12, null, null, 0, 1); + c$13___init__ = Py.newCode(4, new String[] {"self", "dict", "populate", "keyTransform"}, "/usr/share/jython/Lib/javaos.py", "__init__", false, false, funcTable, 13, null, null, 0, 1); + c$14__LazyDict__populate = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "_LazyDict__populate", false, false, funcTable, 14, null, null, 0, 1); + c$15___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "__repr__", false, false, funcTable, 15, null, null, 0, 1); + c$16___cmp__ = Py.newCode(2, new String[] {"self", "dict"}, "/usr/share/jython/Lib/javaos.py", "__cmp__", false, false, funcTable, 16, null, null, 0, 1); + c$17___len__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "__len__", false, false, funcTable, 17, null, null, 0, 1); + c$18___getitem__ = Py.newCode(2, new String[] {"self", "key"}, "/usr/share/jython/Lib/javaos.py", "__getitem__", false, false, funcTable, 18, null, null, 0, 1); + c$19___setitem__ = Py.newCode(3, new String[] {"self", "key", "item"}, "/usr/share/jython/Lib/javaos.py", "__setitem__", false, false, funcTable, 19, null, null, 0, 1); + c$20___delitem__ = Py.newCode(2, new String[] {"self", "key"}, "/usr/share/jython/Lib/javaos.py", "__delitem__", false, false, funcTable, 20, null, null, 0, 1); + c$21_clear = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "clear", false, false, funcTable, 21, null, null, 0, 1); + c$22_copy = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "copy", false, false, funcTable, 22, null, null, 0, 1); + c$23_keys = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "keys", false, false, funcTable, 23, null, null, 0, 1); + c$24_items = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "items", false, false, funcTable, 24, null, null, 0, 1); + c$25_values = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "values", false, false, funcTable, 25, null, null, 0, 1); + c$26_has_key = Py.newCode(2, new String[] {"self", "key"}, "/usr/share/jython/Lib/javaos.py", "has_key", false, false, funcTable, 26, null, null, 0, 1); + c$27_update = Py.newCode(2, new String[] {"self", "dict"}, "/usr/share/jython/Lib/javaos.py", "update", false, false, funcTable, 27, null, null, 0, 1); + c$28_get = Py.newCode(3, new String[] {"self", "key", "failobj"}, "/usr/share/jython/Lib/javaos.py", "get", false, false, funcTable, 28, null, null, 0, 1); + c$29_setdefault = Py.newCode(3, new String[] {"self", "key", "failobj"}, "/usr/share/jython/Lib/javaos.py", "setdefault", false, false, funcTable, 29, null, null, 0, 1); + c$30_popitem = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/javaos.py", "popitem", false, false, funcTable, 30, null, null, 0, 1); + c$31_LazyDict = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javaos.py", "LazyDict", false, false, funcTable, 31, null, null, 0, 0); + c$32___init__ = Py.newCode(4, new String[] {"self", "cmd", "getEnv", "keyTransform"}, "/usr/share/jython/Lib/javaos.py", "__init__", false, false, funcTable, 32, null, null, 0, 1); + c$33_println = Py.newCode(2, new String[] {"arg", "write"}, "/usr/share/jython/Lib/javaos.py", "println", false, false, funcTable, 33, null, null, 0, 1); + c$34_printlnStdErr = Py.newCode(2, new String[] {"arg", "write"}, "/usr/share/jython/Lib/javaos.py", "printlnStdErr", false, false, funcTable, 34, null, null, 0, 1); + c$35_system = Py.newCode(2, new String[] {"self", "cmd", "println", "printlnStdErr", "p"}, "/usr/share/jython/Lib/javaos.py", "system", false, false, funcTable, 35, null, null, 0, 1); + c$36_execute = Py.newCode(2, new String[] {"self", "cmd", "p", "shellCmd", "env", "ex"}, "/usr/share/jython/Lib/javaos.py", "execute", false, false, funcTable, 36, null, null, 0, 1); + c$37__readLines = Py.newCode(3, new String[] {"self", "stream", "func", "bufStream", "lines", "line"}, "/usr/share/jython/Lib/javaos.py", "_readLines", false, false, funcTable, 37, null, null, 0, 1); + c$38__formatCmd = Py.newCode(2, new String[] {"self", "cmd", "msgFmt"}, "/usr/share/jython/Lib/javaos.py", "_formatCmd", false, false, funcTable, 38, null, null, 0, 1); + c$39__formatEnvironment = Py.newCode(2, new String[] {"self", "env", "lines", "keyValue"}, "/usr/share/jython/Lib/javaos.py", "_formatEnvironment", false, false, funcTable, 39, null, null, 0, 1); + c$40__getEnvironment = Py.newCode(1, new String[] {"self", "p", "i", "env", "ex", "value", "key", "lines", "line"}, "/usr/share/jython/Lib/javaos.py", "_getEnvironment", false, false, funcTable, 40, null, null, 0, 1); + c$41__ShellEnv = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javaos.py", "_ShellEnv", false, false, funcTable, 41, null, null, 0, 0); + c$42__getOsType = Py.newCode(1, new String[] {"os", "osType", "pattern", "_osTypeMap"}, "/usr/share/jython/Lib/javaos.py", "_getOsType", false, false, funcTable, 42, null, null, 0, 1); + c$43__getShellEnv = Py.newCode(4, new String[] {"envType", "shellCmd", "envCmd", "envTransform"}, "/usr/share/jython/Lib/javaos.py", "_getShellEnv", false, false, funcTable, 43, null, null, 0, 1); + c$44__testGetOsType = Py.newCode(0, new String[] {"got", "key", "testVals", "msgFmt", "val"}, "/usr/share/jython/Lib/javaos.py", "_testGetOsType", false, false, funcTable, 44, null, null, 0, 1); + c$45__testCmds = Py.newCode(3, new String[] {"_shellEnv", "testCmds", "whichEnv", "line", "pattern", "cmd"}, "/usr/share/jython/Lib/javaos.py", "_testCmds", false, false, funcTable, 45, null, null, 0, 1); + c$46__testSystem = Py.newCode(1, new String[] {"shellEnv", "testCmds", "value", "key", "org"}, "/usr/share/jython/Lib/javaos.py", "_testSystem", false, false, funcTable, 46, null, null, 0, 1); + c$47__testBadShell = Py.newCode(0, new String[] {"se2"}, "/usr/share/jython/Lib/javaos.py", "_testBadShell", false, false, funcTable, 47, null, null, 0, 1); + c$48__testBadGetEnv = Py.newCode(0, new String[] {"se2"}, "/usr/share/jython/Lib/javaos.py", "_testBadGetEnv", false, false, funcTable, 48, null, null, 0, 1); + c$49__test = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javaos.py", "_test", false, false, funcTable, 49, null, null, 0, 1); + c$50_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/javaos.py", "main", false, false, funcTable, 50, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$50_main == null) _PyInner.initConstants(); + return c$50_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner._exit$1(frame); + case 1: + return _PyInner.getcwd$2(frame); + case 2: + return _PyInner.chdir$3(frame); + case 3: + return _PyInner.listdir$4(frame); + case 4: + return _PyInner.mkdir$5(frame); + case 5: + return _PyInner.makedirs$6(frame); + case 6: + return _PyInner.remove$7(frame); + case 7: + return _PyInner.rename$8(frame); + case 8: + return _PyInner.rmdir$9(frame); + case 9: + return _PyInner.stat$10(frame); + case 10: + return _PyInner.utime$11(frame); + case 11: + return _PyInner.lambda$12(frame); + case 12: + return _PyInner.lambda$13(frame); + case 13: + return _PyInner.__init__$14(frame); + case 14: + return _PyInner._LazyDict__populate$15(frame); + case 15: + return _PyInner.__repr__$16(frame); + case 16: + return _PyInner.__cmp__$17(frame); + case 17: + return _PyInner.__len__$18(frame); + case 18: + return _PyInner.__getitem__$19(frame); + case 19: + return _PyInner.__setitem__$20(frame); + case 20: + return _PyInner.__delitem__$21(frame); + case 21: + return _PyInner.clear$22(frame); + case 22: + return _PyInner.copy$23(frame); + case 23: + return _PyInner.keys$24(frame); + case 24: + return _PyInner.items$25(frame); + case 25: + return _PyInner.values$26(frame); + case 26: + return _PyInner.has_key$27(frame); + case 27: + return _PyInner.update$28(frame); + case 28: + return _PyInner.get$29(frame); + case 29: + return _PyInner.setdefault$30(frame); + case 30: + return _PyInner.popitem$31(frame); + case 31: + return _PyInner.LazyDict$32(frame); + case 32: + return _PyInner.__init__$33(frame); + case 33: + return _PyInner.println$34(frame); + case 34: + return _PyInner.printlnStdErr$35(frame); + case 35: + return _PyInner.system$36(frame); + case 36: + return _PyInner.execute$37(frame); + case 37: + return _PyInner._readLines$38(frame); + case 38: + return _PyInner._formatCmd$39(frame); + case 39: + return _PyInner._formatEnvironment$40(frame); + case 40: + return _PyInner._getEnvironment$41(frame); + case 41: + return _PyInner._ShellEnv$42(frame); + case 42: + return _PyInner._getOsType$43(frame); + case 43: + return _PyInner._getShellEnv$44(frame); + case 44: + return _PyInner._testGetOsType$45(frame); + case 45: + return _PyInner._testCmds$46(frame); + case 46: + return _PyInner._testSystem$47(frame); + case 47: + return _PyInner._testBadShell$48(frame); + case 48: + return _PyInner._testBadGetEnv$49(frame); + case 49: + return _PyInner._test$50(frame); + case 50: + return _PyInner.main$51(frame); + default: + return null; + } + } + + private static PyObject _exit$1(PyFrame frame) { + frame.getglobal("java").__getattr__("lang").__getattr__("System").__getattr__("exit").__call__(frame.getlocal(0)); + return Py.None; + } + + private static PyObject getcwd$2(PyFrame frame) { + frame.setlocal(0, frame.getglobal("File").__call__(frame.getglobal("File").__call__(s$14).invoke("getAbsolutePath"))); + return frame.getlocal(0).invoke("getParent"); + } + + private static PyObject chdir$3(PyFrame frame) { + throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$15, frame.getlocal(0))); + } + + private static PyObject listdir$4(PyFrame frame) { + frame.setlocal(1, frame.getglobal("File").__call__(frame.getlocal(0)).invoke("list")); + if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) { + throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$16, frame.getlocal(0))); + } + return frame.getglobal("list").__call__(frame.getlocal(1)); + } + + private static PyObject mkdir$5(PyFrame frame) { + if (frame.getglobal("File").__call__(frame.getlocal(0)).invoke("mkdir").__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$17, frame.getlocal(0))); + } + return Py.None; + } + + private static PyObject makedirs$6(PyFrame frame) { + if (frame.getglobal("File").__call__(frame.getlocal(0)).invoke("mkdirs").__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$19, frame.getlocal(0))); + } + return Py.None; + } + + private static PyObject remove$7(PyFrame frame) { + if (frame.getglobal("File").__call__(frame.getlocal(0)).invoke("delete").__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$20, frame.getlocal(0))); + } + return Py.None; + } + + private static PyObject rename$8(PyFrame frame) { + if (frame.getglobal("File").__call__(frame.getlocal(0)).invoke("renameTo", frame.getglobal("File").__call__(frame.getlocal(1))).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$21, frame.getlocal(0))); + } + return Py.None; + } + + private static PyObject rmdir$9(PyFrame frame) { + if (frame.getglobal("File").__call__(frame.getlocal(0)).invoke("delete").__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$22, frame.getlocal(0))); + } + return Py.None; + } + + private static PyObject stat$10(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + /* The Java stat implementation only returns a small subset of + the standard fields */ + frame.setlocal(3, frame.getglobal("File").__call__(frame.getlocal(0))); + frame.setlocal(2, frame.getlocal(3).invoke("length")); + if (((t$0$PyObject = frame.getlocal(2)._eq(i$13)).__nonzero__() ? frame.getlocal(3).invoke("exists").__not__() : t$0$PyObject).__nonzero__()) { + throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$24, frame.getlocal(0))); + } + frame.setlocal(1, frame.getlocal(3).invoke("lastModified")._div(f$25)); + return new PyTuple(new PyObject[] {i$13, i$13, i$13, i$13, i$13, i$13, frame.getlocal(2), frame.getlocal(1), frame.getlocal(1), i$13}); + } + + private static PyObject utime$11(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + if (((t$0$PyObject = frame.getlocal(1)).__nonzero__() ? frame.getglobal("hasattr").__call__(frame.getglobal("File"), s$26) : t$0$PyObject).__nonzero__()) { + frame.getglobal("File").__call__(frame.getlocal(0)).invoke("setLastModified", frame.getglobal("long").__call__(frame.getlocal(1).__getitem__(i$27)._mul(f$25))); + } + return Py.None; + } + + private static PyObject lambda$12(PyFrame frame) { + return new PyDictionary(new PyObject[] {}); + } + + private static PyObject lambda$13(PyFrame frame) { + return frame.getlocal(0); + } + + private static PyObject __init__$14(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + /* dict: starting dictionary of values + populate: function that returns the populated dictionary + keyTransform: function to normalize the keys (e.g., toupper/None) + */ + frame.getglobal("UserDict").__getattr__("__init__").__call__(frame.getlocal(0), frame.getlocal(1)); + frame.getlocal(0).__setattr__("_populated", i$13); + frame.getlocal(0).__setattr__("_LazyDict__populateFunc", (t$0$PyObject = frame.getlocal(2)).__nonzero__() ? t$0$PyObject : new PyFunction(frame.f_globals, new PyObject[] {}, c$11_lambda)); + frame.getlocal(0).__setattr__("_keyTransform", (t$0$PyObject = frame.getlocal(3)).__nonzero__() ? t$0$PyObject : new PyFunction(frame.f_globals, new PyObject[] {}, c$12_lambda)); + return Py.None; + } + + private static PyObject _LazyDict__populate$15(PyFrame frame) { + if (frame.getlocal(0).__getattr__("_populated").__not__().__nonzero__()) { + frame.getlocal(0).__setattr__("data", frame.getlocal(0).invoke("_LazyDict__populateFunc")); + frame.getlocal(0).__setattr__("_populated", i$27); + } + return Py.None; + } + + private static PyObject __repr__$16(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + return frame.getglobal("UserDict").__getattr__("__repr__").__call__(frame.getlocal(0)); + } + + private static PyObject __cmp__$17(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + return frame.getglobal("UserDict").__getattr__("__cmp__").__call__(frame.getlocal(0), frame.getlocal(1)); + } + + private static PyObject __len__$18(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + return frame.getglobal("UserDict").__getattr__("__len__").__call__(frame.getlocal(0)); + } + + private static PyObject __getitem__$19(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + return frame.getglobal("UserDict").__getattr__("__getitem__").__call__(frame.getlocal(0), frame.getlocal(0).invoke("_keyTransform", frame.getlocal(1))); + } + + private static PyObject __setitem__$20(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + frame.getglobal("UserDict").__getattr__("__setitem__").__call__(frame.getlocal(0), frame.getlocal(0).invoke("_keyTransform", frame.getlocal(1)), frame.getlocal(2)); + return Py.None; + } + + private static PyObject __delitem__$21(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + frame.getglobal("UserDict").__getattr__("__delitem__").__call__(frame.getlocal(0), frame.getlocal(0).invoke("_keyTransform", frame.getlocal(1))); + return Py.None; + } + + private static PyObject clear$22(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + frame.getglobal("UserDict").__getattr__("clear").__call__(frame.getlocal(0)); + return Py.None; + } + + private static PyObject copy$23(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + return frame.getglobal("UserDict").__getattr__("copy").__call__(frame.getlocal(0)); + } + + private static PyObject keys$24(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + return frame.getglobal("UserDict").__getattr__("keys").__call__(frame.getlocal(0)); + } + + private static PyObject items$25(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + return frame.getglobal("UserDict").__getattr__("items").__call__(frame.getlocal(0)); + } + + private static PyObject values$26(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + return frame.getglobal("UserDict").__getattr__("values").__call__(frame.getlocal(0)); + } + + private static PyObject has_key$27(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + return frame.getglobal("UserDict").__getattr__("has_key").__call__(frame.getlocal(0), frame.getlocal(0).invoke("_keyTransform", frame.getlocal(1))); + } + + private static PyObject update$28(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + frame.getglobal("UserDict").__getattr__("update").__call__(frame.getlocal(0), frame.getlocal(1)); + return Py.None; + } + + private static PyObject get$29(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + return frame.getglobal("UserDict").__getattr__("get").__call__(frame.getlocal(0), frame.getlocal(0).invoke("_keyTransform", frame.getlocal(1)), frame.getlocal(2)); + } + + private static PyObject setdefault$30(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + return frame.getglobal("UserDict").__getattr__("setdefault").__call__(frame.getlocal(0), frame.getlocal(0).invoke("_keyTransform", frame.getlocal(1)), frame.getlocal(2)); + } + + private static PyObject popitem$31(PyFrame frame) { + frame.getlocal(0).invoke("_LazyDict__populate"); + return frame.getglobal("UserDict").__getattr__("popitem").__call__(frame.getlocal(0)); + } + + private static PyObject LazyDict$32(PyFrame frame) { + /* A lazy-populating User Dictionary. + Lazy initialization is not thread-safe. + */ + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None"), frame.getname("None")}, c$13___init__)); + frame.setlocal("_LazyDict__populate", new PyFunction(frame.f_globals, new PyObject[] {}, c$14__LazyDict__populate)); + frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$15___repr__)); + frame.setlocal("__cmp__", new PyFunction(frame.f_globals, new PyObject[] {}, c$16___cmp__)); + frame.setlocal("__len__", new PyFunction(frame.f_globals, new PyObject[] {}, c$17___len__)); + frame.setlocal("__getitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$18___getitem__)); + frame.setlocal("__setitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$19___setitem__)); + frame.setlocal("__delitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$20___delitem__)); + frame.setlocal("clear", new PyFunction(frame.f_globals, new PyObject[] {}, c$21_clear)); + frame.setlocal("copy", new PyFunction(frame.f_globals, new PyObject[] {}, c$22_copy)); + frame.setlocal("keys", new PyFunction(frame.f_globals, new PyObject[] {}, c$23_keys)); + frame.setlocal("items", new PyFunction(frame.f_globals, new PyObject[] {}, c$24_items)); + frame.setlocal("values", new PyFunction(frame.f_globals, new PyObject[] {}, c$25_values)); + frame.setlocal("has_key", new PyFunction(frame.f_globals, new PyObject[] {}, c$26_has_key)); + frame.setlocal("update", new PyFunction(frame.f_globals, new PyObject[] {}, c$27_update)); + frame.setlocal("get", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$28_get)); + frame.setlocal("setdefault", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$29_setdefault)); + frame.setlocal("popitem", new PyFunction(frame.f_globals, new PyObject[] {}, c$30_popitem)); + return frame.getf_locals(); + } + + private static PyObject __init__$33(PyFrame frame) { + /* cmd: list of exec() arguments to run command in subshell, or None + getEnv: shell command to list environment variables, or None + keyTransform: normalization function for environment keys, or None + */ + frame.getlocal(0).__setattr__("cmd", frame.getlocal(1)); + frame.getlocal(0).__setattr__("getEnv", frame.getlocal(2)); + frame.getlocal(0).__setattr__("environment", frame.getglobal("LazyDict").__call__(new PyObject[] {frame.getlocal(0).__getattr__("_getEnvironment"), frame.getlocal(3)}, new String[] {"populate", "keyTransform"})); + frame.getlocal(0).__setattr__("_keyTransform", frame.getlocal(0).__getattr__("environment").__getattr__("_keyTransform")); + return Py.None; + } + + private static PyObject println$34(PyFrame frame) { + frame.getlocal(1).__call__(frame.getlocal(0)._add(s$33)); + return Py.None; + } + + private static PyObject printlnStdErr$35(PyFrame frame) { + frame.getlocal(1).__call__(frame.getlocal(0)._add(s$33)); + return Py.None; + } + + private static PyObject system$36(PyFrame frame) { + /* Imitate the standard library 'system' call. + Execute 'cmd' in a shell, and send output to stdout & stderr. + */ + frame.setlocal(4, frame.getlocal(0).invoke("execute", frame.getlocal(1))); + frame.setlocal(2, new PyFunction(frame.f_globals, new PyObject[] {frame.getglobal("sys").__getattr__("stdout").__getattr__("write")}, c$33_println)); + frame.setlocal(3, new PyFunction(frame.f_globals, new PyObject[] {frame.getglobal("sys").__getattr__("stderr").__getattr__("write")}, c$34_printlnStdErr)); + frame.getglobal("thread").__getattr__("start_new_thread").__call__(frame.getlocal(0).__getattr__("_readLines"), new PyTuple(new PyObject[] {frame.getlocal(4).invoke("getErrorStream"), frame.getlocal(3)})); + frame.getlocal(0).invoke("_readLines", frame.getlocal(4).invoke("getInputStream"), frame.getlocal(2)); + return frame.getlocal(4).invoke("waitFor"); + } + + private static PyObject execute$37(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + + // Code + /* Execute cmd in a shell, and return the process instance */ + frame.setlocal(3, frame.getlocal(0).invoke("_formatCmd", frame.getlocal(1))); + if (frame.getlocal(0).__getattr__("environment").__getattr__("_populated").__nonzero__()) { + frame.setlocal(4, frame.getlocal(0).invoke("_formatEnvironment", frame.getlocal(0).__getattr__("environment"))); + } + else { + frame.setlocal(4, frame.getglobal("None")); + } + try { + frame.setlocal(2, frame.getglobal("java").__getattr__("lang").__getattr__("Runtime").__getattr__("getRuntime").__call__().invoke("exec", frame.getlocal(3), frame.getlocal(4))); + return frame.getlocal(2); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("IOException"))) { + frame.setlocal(5, t$0$PyException.value); + throw Py.makeException(frame.getglobal("OSError").__call__(i$13, s$35._mod(new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(5)})))); + } + else throw t$0$PyException; + } + } + + private static PyObject _readLines$38(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + /* Read lines of stream, and either append them to return + array of lines, or call func on each line. + */ + frame.setlocal(4, new PyList(new PyObject[] {})); + frame.setlocal(2, (t$0$PyObject = frame.getlocal(2)).__nonzero__() ? t$0$PyObject : frame.getlocal(4).__getattr__("append")); + frame.setlocal(3, frame.getglobal("BufferedReader").__call__(frame.getglobal("InputStreamReader").__call__(frame.getlocal(1)))); + while (i$27.__nonzero__()) { + frame.setlocal(5, frame.getlocal(3).invoke("readLine")); + if (frame.getlocal(5)._is(frame.getglobal("None")).__nonzero__()) { + break; + } + frame.getlocal(2).__call__(frame.getlocal(5)); + } + return (t$0$PyObject = frame.getlocal(4)).__nonzero__() ? t$0$PyObject : frame.getglobal("None"); + } + + private static PyObject _formatCmd$39(PyFrame frame) { + /* Format a command for execution in a shell. */ + if (frame.getlocal(0).__getattr__("cmd")._is(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(2, s$38); + throw Py.makeException(frame.getglobal("OSError").__call__(i$13, frame.getlocal(2)._mod(new PyTuple(new PyObject[] {frame.getglobal("_osType"), frame.getglobal("_envType"), frame.getlocal(1)})))); + } + return frame.getlocal(0).__getattr__("cmd")._add(new PyList(new PyObject[] {frame.getlocal(1)})); + } + + private static PyObject _formatEnvironment$40(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Format enviroment in lines suitable for Runtime.exec */ + frame.setlocal(2, new PyList(new PyObject[] {})); + t$0$int = 0; + t$1$PyObject = frame.getlocal(1).invoke("items"); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(3, t$0$PyObject); + frame.getlocal(2).invoke("append", s$40._mod(frame.getlocal(3))); + } + return frame.getlocal(2); + } + + private static PyObject _getEnvironment$41(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyException t$0$PyException; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Get the environment variables by spawning a subshell. + This allows multi-line variables as long as subsequent lines do + not have '=' signs. + */ + frame.setlocal(3, new PyDictionary(new PyObject[] {})); + if (frame.getlocal(0).__getattr__("getEnv").__nonzero__()) { + try { + frame.setlocal(1, frame.getlocal(0).invoke("execute", frame.getlocal(0).__getattr__("getEnv"))); + frame.setlocal(7, frame.getlocal(0).invoke("_readLines", frame.getlocal(1).invoke("getInputStream"))); + if (s$42._notin(frame.getlocal(7).__getitem__(i$13)).__nonzero__()) { + Py.println(s$43._mod(new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("getEnv"), s$33.invoke("join", frame.getlocal(7))}))); + return frame.getlocal(3); + } + t$0$int = 0; + t$1$PyObject = frame.getlocal(7); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(8, t$0$PyObject); + try { + frame.setlocal(2, frame.getlocal(8).invoke("index", s$42)); + frame.setlocal(6, frame.getlocal(0).invoke("_keyTransform", frame.getlocal(8).__getslice__(null, frame.getlocal(2), null))); + frame.setlocal(5, frame.getlocal(8).__getslice__(frame.getlocal(2)._add(i$27), null, null)); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) { + frame.setlocal(5, s$44._mod(new PyTuple(new PyObject[] {frame.getlocal(5), frame.getlocal(8)}))); + } + else throw t$0$PyException; + } + frame.getlocal(3).__setitem__(frame.getlocal(6), frame.getlocal(5)); + } + } + catch (Throwable x$1) { + t$0$PyException = Py.setException(x$1, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("OSError"))) { + frame.setlocal(4, t$0$PyException.value); + Py.printComma(s$45); + Py.println(frame.getlocal(4)); + } + else throw t$0$PyException; + } + } + return frame.getlocal(3); + } + + private static PyObject _ShellEnv$42(PyFrame frame) { + /* Provide environment derived by spawning a subshell and parsing its + environment. Also supports system functions and provides empty + environment support for platforms with unknown shell + functionality. + */ + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None"), frame.getname("None")}, c$32___init__)); + frame.setlocal("system", new PyFunction(frame.f_globals, new PyObject[] {}, c$35_system)); + frame.setlocal("execute", new PyFunction(frame.f_globals, new PyObject[] {}, c$36_execute)); + frame.setlocal("_readLines", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$37__readLines)); + frame.setlocal("_formatCmd", new PyFunction(frame.f_globals, new PyObject[] {}, c$38__formatCmd)); + frame.setlocal("_formatEnvironment", new PyFunction(frame.f_globals, new PyObject[] {}, c$39__formatEnvironment)); + frame.setlocal("_getEnvironment", new PyFunction(frame.f_globals, new PyObject[] {}, c$40__getEnvironment)); + return frame.getf_locals(); + } + + private static PyObject _getOsType$43(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Select the OS behavior based on os argument, 'python.os' registry + setting and 'os.name' Java property. + os: explicitly select desired OS. os=None to autodetect, os='None' to + disable + */ + frame.setlocal(0, (t$0$PyObject = ((t$1$PyObject = frame.getlocal(0)).__nonzero__() ? t$1$PyObject : frame.getglobal("sys").__getattr__("registry").__getattr__("getProperty").__call__(s$47))).__nonzero__() ? t$0$PyObject : frame.getglobal("java").__getattr__("lang").__getattr__("System").__getattr__("getProperty").__call__(s$48)); + frame.setlocal(3, new PyTuple(new PyObject[] {new PyTuple(new PyObject[] {s$49, s$50}), new PyTuple(new PyObject[] {s$51, s$52}), new PyTuple(new PyObject[] {s$53, s$54}), new PyTuple(new PyObject[] {s$55, s$56}), new PyTuple(new PyObject[] {s$57, s$58})})); + t$0$int = 0; + t$1$PyObject = frame.getlocal(3); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(1, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + if (frame.getglobal("re").__getattr__("match").__call__(frame.getlocal(2), frame.getlocal(0)).__nonzero__()) { + break; + } + } + return frame.getlocal(1); + } + + private static PyObject _getShellEnv$44(PyFrame frame) { + /* Create the desired environment type. + envType: 'shell' or None + */ + if (frame.getlocal(0)._eq(s$60).__nonzero__()) { + return frame.getglobal("_ShellEnv").__call__(frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)); + } + else { + return frame.getglobal("_ShellEnv").__call__(); + } + } + + private static PyObject _testGetOsType$45(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(2, new PyDictionary(new PyObject[] {s$71, s$49, s$72, s$51, s$73, s$53, s$74, s$57, s$75, s$57, s$55, s$55})); + frame.setlocal(3, s$76); + t$0$int = 0; + t$1$PyObject = frame.getlocal(2).invoke("items"); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(1, t$0$PyObject__[0]); + frame.setlocal(4, t$0$PyObject__[1]); + frame.setlocal(0, frame.getglobal("_getOsType").__call__(frame.getlocal(1))); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0)._eq(frame.getlocal(4)), frame.getlocal(3)._mod(new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(4), frame.getlocal(0)}))); + } + return Py.None; + } + + private static PyObject _testCmds$46(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + t$0$int = 0; + t$1$PyObject = frame.getlocal(1); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(5, t$0$PyObject__[0]); + frame.setlocal(4, t$0$PyObject__[1]); + Py.println(s$77._mod(new PyTuple(new PyObject[] {frame.getlocal(5), frame.getlocal(2)}))); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).invoke("system", frame.getlocal(5)).__not__(), s$78._mod(new PyTuple(new PyObject[] {frame.getlocal(5), frame.getlocal(2)}))); + frame.setlocal(3, frame.getlocal(0).invoke("_readLines", frame.getlocal(0).invoke("execute", frame.getlocal(5)).invoke("getInputStream")).__getitem__(i$13)); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getglobal("re").__getattr__("match").__call__(frame.getlocal(4), frame.getlocal(3)), s$79._mod(new PyTuple(new PyObject[] {frame.getlocal(4), frame.getlocal(3)}))); + } + return Py.None; + } + + private static PyObject _testSystem$47(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {s$80, s$81}), 2); + frame.setlocal(3, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + frame.setlocal(4, frame.getglobal("environ")); + frame.setlocal(1, new PyList(new PyObject[] {new PyTuple(new PyObject[] {s$82, s$83}), new PyTuple(new PyObject[] {s$84, s$85}), new PyTuple(new PyObject[] {s$86._mod(new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(3)})), s$87._mod(new PyTuple(new PyObject[] {frame.getlocal(3)}))}), new PyTuple(new PyObject[] {s$88, s$89}), new PyTuple(new PyObject[] {s$90._mod(new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(3)})), s$91._mod(new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(3), frame.getlocal(3), frame.getlocal(3), frame.getlocal(2)}))}), new PyTuple(new PyObject[] {s$92, s$93}), new PyTuple(new PyObject[] {s$94, s$95}), new PyTuple(new PyObject[] {s$96, s$97})})); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getglobal("environ").__getattr__("_populated").__not__(), s$98); + frame.getglobal("_testCmds").__call__(frame.getglobal("_shellEnv"), frame.getlocal(1), s$99); + frame.getglobal("environ").__setitem__(frame.getlocal(3), frame.getlocal(2)); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getglobal("environ").__getattr__("_populated"), s$100); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(4).invoke("get", frame.getlocal(3), frame.getglobal("None"))._eq(frame.getlocal(2)), s$101._mod(frame.getlocal(3))); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getglobal("environ").invoke("get", frame.getlocal(3), frame.getglobal("None"))._eq(frame.getlocal(2)), s$102._mod(frame.getlocal(3))); + frame.getglobal("_testCmds").__call__(frame.getglobal("_shellEnv"), frame.getlocal(1), s$103); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getglobal("environ").invoke("has_key", s$104), s$105); + return Py.None; + } + + private static PyObject _testBadShell$48(PyFrame frame) { + frame.setlocal(0, frame.getglobal("_ShellEnv").__call__(new PyList(new PyObject[] {s$106, s$67}), s$64)); + frame.getglobal("str").__call__(frame.getlocal(0).__getattr__("environment")); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("environment").invoke("items").__not__(), s$107); + return Py.None; + } + + private static PyObject _testBadGetEnv$49(PyFrame frame) { + frame.setlocal(0, frame.getglobal("_getShellEnv").__call__(new PyObject[] {s$60, frame.getglobal("_shellCmd"), frame.getglobal("_envCmd"), frame.getglobal("_envTransform")})); + frame.getlocal(0).__setattr__("getEnv", s$108); + frame.getglobal("str").__call__(frame.getlocal(0).__getattr__("environment")); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("environment").invoke("items").__not__(), s$107); + return Py.None; + } + + private static PyObject _test$50(PyFrame frame) { + frame.getglobal("_testGetOsType").__call__(); + frame.getglobal("_testBadShell").__call__(); + frame.getglobal("_testBadGetEnv").__call__(); + frame.getglobal("_testSystem").__call__(); + return Py.None; + } + + private static PyObject main$51(PyFrame frame) { + frame.setglobal("__file__", s$109); + + PyObject[] imp_accu; + // Code + /* OS routines for Java, with some attempts to support DOS, NT, and + Posix functionality. + + This exports: + - all functions from posix, nt, dos, os2, mac, or ce, e.g. unlink, stat, etc. + - os.path is one of the modules posixpath, ntpath, macpath, or dospath + - os.name is 'posix', 'nt', 'dos', 'os2', 'mac', 'ce' or 'riscos' + - os.curdir is a string representing the current directory ('.' or ':') + - os.pardir is a string representing the parent directory ('..' or '::') + - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\') + - os.altsep is the alternate pathname separator (None or '/') + - os.pathsep is the component separator used in $PATH etc + - os.linesep is the line separator in text files ('\r' or '\n' or '\r\n') + - os.defpath is the default search path for executables + + Programs that import and use 'os' stand a better chance of being + portable between different platforms. Of course, they must then + only use functions that are defined by all platforms (e.g., unlink + and opendir), and leave all pathname manipulation to os.path + (e.g., split and join). + */ + frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8})); + frame.setlocal("java", org.python.core.imp.importOne("java", frame)); + imp_accu = org.python.core.imp.importFrom("java.io", new String[] {"File", "BufferedReader", "InputStreamReader", "IOException"}, frame); + frame.setlocal("File", imp_accu[0]); + frame.setlocal("BufferedReader", imp_accu[1]); + frame.setlocal("InputStreamReader", imp_accu[2]); + frame.setlocal("IOException", imp_accu[3]); + imp_accu = null; + frame.setlocal("path", org.python.core.imp.importOneAs("javapath", frame)); + imp_accu = org.python.core.imp.importFrom("UserDict", new String[] {"UserDict"}, frame); + frame.setlocal("UserDict", imp_accu[0]); + imp_accu = null; + frame.setlocal("string", org.python.core.imp.importOne("string", frame)); + frame.setlocal("exceptions", org.python.core.imp.importOne("exceptions", frame)); + frame.setlocal("re", org.python.core.imp.importOne("re", frame)); + frame.setlocal("sys", org.python.core.imp.importOne("sys", frame)); + frame.setlocal("thread", org.python.core.imp.importOne("thread", frame)); + frame.setlocal("error", frame.getname("OSError")); + frame.setlocal("name", s$9); + frame.setlocal("curdir", s$10); + frame.setlocal("pardir", s$11); + frame.setlocal("sep", frame.getname("java").__getattr__("io").__getattr__("File").__getattr__("separator")); + frame.setlocal("altsep", frame.getname("None")); + frame.setlocal("pathsep", frame.getname("java").__getattr__("io").__getattr__("File").__getattr__("pathSeparator")); + frame.setlocal("defpath", s$10); + frame.setlocal("linesep", frame.getname("java").__getattr__("lang").__getattr__("System").__getattr__("getProperty").__call__(s$12)); + frame.setlocal("_exit", new PyFunction(frame.f_globals, new PyObject[] {i$13}, c$0__exit)); + frame.setlocal("getcwd", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_getcwd)); + frame.setlocal("chdir", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_chdir)); + frame.setlocal("listdir", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_listdir)); + frame.setlocal("mkdir", new PyFunction(frame.f_globals, new PyObject[] {s$18}, c$4_mkdir)); + frame.setlocal("makedirs", new PyFunction(frame.f_globals, new PyObject[] {s$18}, c$5_makedirs)); + frame.setlocal("remove", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_remove)); + frame.setlocal("rename", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_rename)); + frame.setlocal("rmdir", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_rmdir)); + frame.setlocal("unlink", frame.getname("remove")); + frame.setlocal("stat", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_stat)); + frame.setlocal("utime", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_utime)); + frame.setlocal("LazyDict", Py.makeClass("LazyDict", new PyObject[] {frame.getname("UserDict")}, c$31_LazyDict, null)); + frame.setlocal("_ShellEnv", Py.makeClass("_ShellEnv", new PyObject[] {}, c$41__ShellEnv, null)); + frame.setlocal("_getOsType", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$42__getOsType)); + frame.setlocal("_getShellEnv", new PyFunction(frame.f_globals, new PyObject[] {}, c$43__getShellEnv)); + frame.setlocal("_osType", frame.getname("_getOsType").__call__()); + frame.setlocal("_envType", frame.getname("sys").__getattr__("registry").__getattr__("getProperty").__call__(s$61, s$60)); + frame.setlocal("_shellCmd", frame.getname("None")); + frame.setlocal("_envCmd", frame.getname("None")); + frame.setlocal("_envTransform", frame.getname("None")); + if (frame.getname("_osType")._eq(s$49).__nonzero__()) { + frame.setlocal("_shellCmd", new PyList(new PyObject[] {s$62, s$63})); + frame.setlocal("_envCmd", s$64); + frame.setlocal("_envTransform", frame.getname("string").__getattr__("upper")); + } + else if (frame.getname("_osType")._eq(s$51).__nonzero__()) { + frame.setlocal("_shellCmd", new PyList(new PyObject[] {s$65, s$63})); + frame.setlocal("_envCmd", s$64); + frame.setlocal("_envTransform", frame.getname("string").__getattr__("upper")); + } + else if (frame.getname("_osType")._eq(s$57).__nonzero__()) { + frame.setlocal("_shellCmd", new PyList(new PyObject[] {s$66, s$67})); + frame.setlocal("_envCmd", s$68); + } + else if (frame.getname("_osType")._eq(s$53).__nonzero__()) { + frame.setlocal("curdir", s$69); + frame.setlocal("pardir", s$70); + } + else if (frame.getname("_osType")._eq(s$55).__nonzero__()) { + // pass + } + frame.setlocal("_shellEnv", frame.getname("_getShellEnv").__call__(new PyObject[] {frame.getname("_envType"), frame.getname("_shellCmd"), frame.getname("_envCmd"), frame.getname("_envTransform")})); + frame.setlocal("environ", frame.getname("_shellEnv").__getattr__("environment")); + frame.setlocal("putenv", frame.getname("environ").__getattr__("__setitem__")); + frame.setlocal("getenv", frame.getname("environ").__getattr__("__getitem__")); + frame.setlocal("system", frame.getname("_shellEnv").__getattr__("system")); + frame.setlocal("_testGetOsType", new PyFunction(frame.f_globals, new PyObject[] {}, c$44__testGetOsType)); + frame.setlocal("_testCmds", new PyFunction(frame.f_globals, new PyObject[] {}, c$45__testCmds)); + frame.setlocal("_testSystem", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("_shellEnv")}, c$46__testSystem)); + frame.setlocal("_testBadShell", new PyFunction(frame.f_globals, new PyObject[] {}, c$47__testBadShell)); + frame.setlocal("_testBadGetEnv", new PyFunction(frame.f_globals, new PyObject[] {}, c$48__testBadGetEnv)); + frame.setlocal("_test", new PyFunction(frame.f_globals, new PyObject[] {}, c$49__test)); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("javaos")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "javaos"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(javaos._PyInner.class, newargs, javaos.jpy$packages, javaos.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/javapath$_PyInner.class b/server/jpywork/javapath$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..70dc6401552887e8d96358d5462fc0539fe96086 GIT binary patch literal 18115 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 U-2m!nFWn>#lLVrDltJYG0B=C8>i_@% literal 0 HcmV?d00001 diff --git a/server/jpywork/linecache.class b/server/jpywork/linecache.class new file mode 100644 index 0000000000000000000000000000000000000000..900e0206c5ca47dab23c3c1b100bdd735111045d GIT binary patch literal 2491 zcma)-`*Rc56~{lvlC@VtwwDVyga!f$G`65}Qkp(uplNxuP95WR!E}>0%38iy3(~H- zy9SiL->)Qnzu&Lv&w&|W%7p&dnf?#$U(t4^&*|KiY>US2R6l5U&pprY`JQus|F7TN z1?v3DVMHjm!^kv)X3IDf1@}^LC75Xk(dx|ErlyyK;>mc$IJo!Z*^jQ!!eqCXwc@DWiC5OzCao{8h3zbi6g!1O=33Kq zvoMa*C*owaK2UAOiK%ZMl@TVZj8anU77h%w;=W-$ZN*og3a$jFH+(7f2*oT}GuHHh zDvmYXCn$?gJu;bMzfjJP)|$8C&(tVz1xg z+36+4qk?KQqM&0M4Tm=hyI-rmj`T={$9UXEdb6-=YN(3?CQL6?cq>mhylqQA{jgPL zIVNmtG*Xj=ndvkd!ps)l{#W7-Cj`C0;e(CE-dq%!q{4BI*uQsFc_$|YXVqj+2Vo@a znVR0hqh;1?h10yt;f$bPTYZ&xGbcF7T4a@l)>e?_ezx#Gfcn3mY?ai&NGRI*6DFs& z7&|){l}$oAEZ9NZ7~_qT3X8nY;l1|`PcO|(r;5ipp&TSh&}+uso=_WZ#2}Bkp-!)h z=BAe{IhU%GsVGiV@OjqZ8DU~GhkUrJe1H!M&c!%c2s%bMG#p}`IYS}(E5V^5?A!FU z5a;q!=Hi)nEm}F9Bymz9py{xDPvPfUNqp4~NR<_gP_Ya!X&S5=VdvCvq(Sfs&+)jT zC7`$@l+t{$DcV9Q38Iy_qlko}9ZN-5C}&B~G|NHrvLX?-rHN@Y<4!kh8$~9Rg3MeC zGsP95kS0cPO&IHIMQIj9S*mzJQ2h+%&MH14lx($es`!}AA#Pr_OXL$mu@`hZicblu z8MIBb5+sVx2*t#76UFDOJnr@yiCI;AL8yAUt!I)eCQ*FJdK4#N*#E<(U)1SR$xaIx+Zo%mPPc+1oLI1X}n_hDGsjz>OKY7%JIP0@#eUA$jFJ4QU z=1gce>iEV+sas2-ns1fd*4|-iea~h z?*@;&0tnN9&Lb4r&L~GHah3vN?}$MLdl3W}t=;1ArdcT$7AW%u>I2m$8O^2pYkKAm zkNNuOE#7pKx7^{le~Y)@vA6dcM0& zf86uks{W+syJPy(p6`z9&w9Q)p+E2WuB*T3`R;c8WzToDKI-}I4*innyF2w)Jm1}= zzvlVwr2dBIyZ7mDdA_?_f5-FP`}Oy{+x*}agnc|rjh_r!Gs!6MR}_C^jK4F"); + s$13 = Py.newString("r"); + s$14 = Py.newString("/usr/share/jython/Lib-cpython/linecache.py"); + funcTable = new _PyInner(); + c$0_getline = Py.newCode(2, new String[] {"filename", "lineno", "lines"}, "/usr/share/jython/Lib-cpython/linecache.py", "getline", false, false, funcTable, 0, null, null, 0, 1); + c$1_clearcache = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/linecache.py", "clearcache", false, false, funcTable, 1, null, null, 0, 1); + c$2_getlines = Py.newCode(1, new String[] {"filename"}, "/usr/share/jython/Lib-cpython/linecache.py", "getlines", false, false, funcTable, 2, null, null, 0, 1); + c$3_checkcache = Py.newCode(0, new String[] {"filename", "stat", "mtime", "fullname", "size", "lines"}, "/usr/share/jython/Lib-cpython/linecache.py", "checkcache", false, false, funcTable, 3, null, null, 0, 1); + c$4_updatecache = Py.newCode(1, new String[] {"filename", "msg", "stat", "dirname", "fp", "basename", "mtime", "fullname", "size", "lines"}, "/usr/share/jython/Lib-cpython/linecache.py", "updatecache", false, false, funcTable, 4, null, null, 0, 1); + c$5_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/linecache.py", "main", false, false, funcTable, 5, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$5_main == null) _PyInner.initConstants(); + return c$5_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.getline$1(frame); + case 1: + return _PyInner.clearcache$2(frame); + case 2: + return _PyInner.getlines$3(frame); + case 3: + return _PyInner.checkcache$4(frame); + case 4: + return _PyInner.updatecache$5(frame); + case 5: + return _PyInner.main$6(frame); + default: + return null; + } + } + + private static PyObject getline$1(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + frame.setlocal(2, frame.getglobal("getlines").__call__(frame.getlocal(0))); + if ((i$4._le(t$0$PyObject = frame.getlocal(1)).__nonzero__() ? t$0$PyObject._le(frame.getglobal("len").__call__(frame.getlocal(2))) : Py.Zero).__nonzero__()) { + return frame.getlocal(2).__getitem__(frame.getlocal(1)._sub(i$4)); + } + else { + return s$5; + } + } + + private static PyObject clearcache$2(PyFrame frame) { + /* Clear the cache entirely. */ + // global cache + frame.setglobal("cache", new PyDictionary(new PyObject[] {})); + return Py.None; + } + + private static PyObject getlines$3(PyFrame frame) { + /* Get the lines for a file from the cache. + Update the cache if it doesn't contain an entry for this file already. */ + if (frame.getglobal("cache").invoke("has_key", frame.getlocal(0)).__nonzero__()) { + return frame.getglobal("cache").__getitem__(frame.getlocal(0)).__getitem__(i$8); + } + else { + return frame.getglobal("updatecache").__call__(frame.getlocal(0)); + } + } + + private static PyObject checkcache$4(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyException t$0$PyException; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject; + + // Code + /* Discard cache entries that are out of date. + (This is not checked upon each call!) */ + t$0$int = 0; + t$1$PyObject = frame.getglobal("cache").invoke("keys"); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(0, t$0$PyObject); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("cache").__getitem__(frame.getlocal(0)), 4); + frame.setlocal(4, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + frame.setlocal(5, t$0$PyObject__[2]); + frame.setlocal(3, t$0$PyObject__[3]); + try { + frame.setlocal(1, frame.getglobal("os").__getattr__("stat").__call__(frame.getlocal(3))); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("os").__getattr__("error"))) { + frame.getglobal("cache").__delitem__(frame.getlocal(0)); + continue; + } + else throw t$0$PyException; + } + if (((t$2$PyObject = frame.getlocal(4)._ne(frame.getlocal(1).__getitem__(frame.getglobal("ST_SIZE")))).__nonzero__() ? t$2$PyObject : frame.getlocal(2)._ne(frame.getlocal(1).__getitem__(frame.getglobal("ST_MTIME")))).__nonzero__()) { + frame.getglobal("cache").__delitem__(frame.getlocal(0)); + } + } + return Py.None; + } + + private static PyObject updatecache$5(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + boolean t$0$boolean; + PyException t$0$PyException, t$1$PyException; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Update a cache entry and return its list of lines. + If something's wrong, print a message, discard the cache entry, + and return an empty list. */ + if (frame.getglobal("cache").invoke("has_key", frame.getlocal(0)).__nonzero__()) { + frame.getglobal("cache").__delitem__(frame.getlocal(0)); + } + if (((t$0$PyObject = frame.getlocal(0).__not__()).__nonzero__() ? t$0$PyObject : frame.getlocal(0).__getitem__(i$11)._add(frame.getlocal(0).__getitem__(i$4.__neg__()))._eq(s$12)).__nonzero__()) { + return new PyList(new PyObject[] {}); + } + frame.setlocal(7, frame.getlocal(0)); + try { + frame.setlocal(2, frame.getglobal("os").__getattr__("stat").__call__(frame.getlocal(7))); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("os").__getattr__("error"))) { + frame.setlocal(1, t$0$PyException.value); + frame.setlocal(5, frame.getglobal("os").__getattr__("path").__getattr__("split").__call__(frame.getlocal(0)).__getitem__(i$4)); + t$0$int = 0; + t$1$PyObject = frame.getglobal("sys").__getattr__("path"); + while (t$0$boolean=(t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(3, t$0$PyObject); + frame.setlocal(7, frame.getglobal("os").__getattr__("path").__getattr__("join").__call__(frame.getlocal(3), frame.getlocal(5))); + try { + frame.setlocal(2, frame.getglobal("os").__getattr__("stat").__call__(frame.getlocal(7))); + break; + } + catch (Throwable x$1) { + t$1$PyException = Py.setException(x$1, frame); + if (Py.matchException(t$1$PyException, frame.getglobal("os").__getattr__("error"))) { + // pass + } + else throw t$1$PyException; + } + } + if (!t$0$boolean) { + return new PyList(new PyObject[] {}); + } + } + else throw t$0$PyException; + } + try { + frame.setlocal(4, frame.getglobal("open").__call__(frame.getlocal(7), s$13)); + frame.setlocal(9, frame.getlocal(4).invoke("readlines")); + frame.getlocal(4).invoke("close"); + } + catch (Throwable x$2) { + t$0$PyException = Py.setException(x$2, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("IOError"))) { + frame.setlocal(1, t$0$PyException.value); + return new PyList(new PyObject[] {}); + } + else throw t$0$PyException; + } + t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {frame.getlocal(2).__getitem__(frame.getglobal("ST_SIZE")), frame.getlocal(2).__getitem__(frame.getglobal("ST_MTIME"))}), 2); + frame.setlocal(8, t$0$PyObject__[0]); + frame.setlocal(6, t$0$PyObject__[1]); + frame.getglobal("cache").__setitem__(frame.getlocal(0), new PyTuple(new PyObject[] {frame.getlocal(8), frame.getlocal(6), frame.getlocal(9), frame.getlocal(7)})); + return frame.getlocal(9); + } + + private static PyObject main$6(PyFrame frame) { + frame.setglobal("__file__", s$14); + + /* Cache lines from files. + + This is intended to read lines from modules imported -- hence if a filename + is not found, it will look down the module search path for a file by + that name. + */ + frame.setlocal("sys", org.python.core.imp.importOne("sys", frame)); + frame.setlocal("os", org.python.core.imp.importOne("os", frame)); + org.python.core.imp.importAll("stat", frame); + frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3})); + frame.setlocal("getline", new PyFunction(frame.f_globals, new PyObject[] {}, c$0_getline)); + frame.setlocal("cache", new PyDictionary(new PyObject[] {})); + frame.setlocal("clearcache", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_clearcache)); + frame.setlocal("getlines", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_getlines)); + frame.setlocal("checkcache", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_checkcache)); + frame.setlocal("updatecache", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_updatecache)); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("linecache")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "linecache"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(linecache._PyInner.class, newargs, linecache.jpy$packages, linecache.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/random$_PyInner.class b/server/jpywork/random$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..ac059d7d940b843f8f63d8c2e74c6ca7d9b9d766 GIT binary patch literal 30716 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 K#zy0MDE)uj20exV literal 0 HcmV?d00001 diff --git a/server/jpywork/random.class b/server/jpywork/random.class new file mode 100644 index 0000000000000000000000000000000000000000..95cd9a17b6a521b58c27b2f219e59ba7ddeaced6 GIT binary patch literal 2485 zcma)7>30)V6#w03nt4g5&G3K~fi5@~$xxq|W zH(?O$W9|ueq~->dk-gK$q!$zTu|{ik-SvY>6*i=beHjtv9~z(26tVJy$|zyJR&A*8 zRI5|hN~ErL+^uL+)2q2rw0b>ZUWbpJS~yC`iB=F-W$b$dw$-cofgf)tWQK;P2*%EE zMw+m%$TN-3zzKtmR$L8(Qazk$)?`$gZu+&@4;U5@*2q(yY{Y&TL|Z~tDYaF-P|4EV zQ4WMb3%$rPEF!FIYlW#{DXNAi?{!bOyD$4M+OY531*_>hYU9m`jd}l?AJ<<`3>!R$O1!_P#E_EInk_7OSR9Pu1P|6 zYl2c98LYEVL_c95gU~h(vdb377lfEvCV|xsXT7O78AF3^^=CRFp8~&zH&K|u^-ENxl9=8 z;_bf@H?f^iNC~{UJlPrx0;%%YhIRVyP78NoC&8@9_{@XbJ`$@N?+C~IJ4_mpD&@Aku+btEJG;=%W2~div!b!#Db36&3pwN&w&&sC zkcoqY!dwo?WLtO`j}XkGp_*{(lCY*T#4K$(LZth^M47N`&euek$al%3d%|WgvsA6JF?~hh`>HBDsi(uj3?w1186cy`tw_Rxq0UI{;CURzCWa~j495uBDA{TZHG-k% zkRc%CV&!^r+VzezGzfi>l4UQfH~gApP=u@-%Ts>L5EC+yk_;yZ{i#+E#cmKs45tVz zjXJiM;W0v1R~SYNPw2RzcU*6crwB&NZPXc_Au!La$zaA+49^h^B^!$21uYL7t+J98 zhL;GINNj~vC!}I{MSE+%zeecM>AXS6)%-wuu2+=|Z?zXy!;Py9?-1DjNGiQH7~Ufo z+C9Suy6~!!?u@S&*hd5-irtvu6M{ME#?`4kg5fhlPFLD+RV4K^ePQ8Ce3ed3I)19N z>uHO-koy0LI>^#)VHdmMDHGoiR?JZ-i8>L+DS>A9I3X{>rt;(-UvJdDbfc8C8No`n zN@A!lFgCkquo8p}00T^48PL=*+fUYh=8y-W5BjI|EcAmg03e2uNGE$QqTposJmDC8 zzBq%0<`n{`mtP~CEMF|n;95JMo-Nhl<-#%fO5xa9zDhVY<7>nj-1sv9!Y}}yL@+Q9 zy;z4V_96q)7eqUQr63T1-r_l|oiocO!VGe_38l8`4)i9{6-7RB0XI8*!#Qj`i(4;X zn{y6#oW+h}@jP}NnDa8Ap)oe1U~Iy2V>5EN7x$qD;|UOi`!xtOfE;=N{8_wY9Jz?X z_}UELAc~o_M)A^l>^+VB&TqKx06%aZ4>@PB|0fhK;PAonSsXcsqra{_jT=v6A+Oj= zQe1ou;sy=QagAABBNPgU@kbMwBH`F3Zzf=!6po$aE#cUC{PiF9J`-C zD;#@(KQA1+z+V)OZS$9fW6$HS3diRBb>Z0a`J2MA7x1@*V=v_I3dbJg?+eGihJPp= zdlCOwIQC-xsW^|%e+FS0R-uTm+pQTyFJRmbW^6&fF^WNBEB-LHp$Fdr=)rgR9!RLO J4TK+%`x{{1e#HO) literal 0 HcmV?d00001 diff --git a/server/jpywork/random.java b/server/jpywork/random.java new file mode 100644 index 00000000..b67ec896 --- /dev/null +++ b/server/jpywork/random.java @@ -0,0 +1,1087 @@ +import org.python.core.*; + +public class random extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject s$1; + private static PyObject s$2; + private static PyObject s$3; + private static PyObject s$4; + private static PyObject s$5; + private static PyObject s$6; + private static PyObject s$7; + private static PyObject s$8; + private static PyObject s$9; + private static PyObject s$10; + private static PyObject s$11; + private static PyObject s$12; + private static PyObject s$13; + private static PyObject s$14; + private static PyObject s$15; + private static PyObject s$16; + private static PyObject s$17; + private static PyObject s$18; + private static PyObject s$19; + private static PyObject s$20; + private static PyObject s$21; + private static PyObject s$22; + private static PyObject s$23; + private static PyObject f$24; + private static PyObject s$25; + private static PyObject i$26; + private static PyObject f$27; + private static PyObject f$28; + private static PyObject s$29; + private static PyObject f$30; + private static PyObject s$31; + private static PyObject f$32; + private static PyObject f$33; + private static PyObject s$34; + private static PyObject f$35; + private static PyObject f$36; + private static PyObject f$37; + private static PyObject s$38; + private static PyObject f$39; + private static PyObject i$40; + private static PyObject s$41; + private static PyObject s$42; + private static PyObject i$43; + private static PyObject i$44; + private static PyObject l$45; + private static PyObject i$46; + private static PyObject i$47; + private static PyObject i$48; + private static PyObject s$49; + private static PyObject i$50; + private static PyObject i$51; + private static PyObject i$52; + private static PyObject i$53; + private static PyObject i$54; + private static PyObject i$55; + private static PyObject f$56; + private static PyObject f$57; + private static PyObject f$58; + private static PyObject s$59; + private static PyObject s$60; + private static PyObject i$61; + private static PyObject s$62; + private static PyObject s$63; + private static PyObject s$64; + private static PyObject s$65; + private static PyObject s$66; + private static PyObject s$67; + private static PyObject i$68; + private static PyObject i$69; + private static PyObject s$70; + private static PyObject s$71; + private static PyObject s$72; + private static PyObject s$73; + private static PyObject s$74; + private static PyObject s$75; + private static PyObject s$76; + private static PyObject s$77; + private static PyObject s$78; + private static PyObject s$79; + private static PyObject s$80; + private static PyObject f$81; + private static PyObject f$82; + private static PyObject s$83; + private static PyObject s$84; + private static PyObject s$85; + private static PyObject f$86; + private static PyObject s$87; + private static PyObject s$88; + private static PyObject s$89; + private static PyObject s$90; + private static PyObject s$91; + private static PyObject s$92; + private static PyObject s$93; + private static PyObject s$94; + private static PyObject s$95; + private static PyObject s$96; + private static PyObject s$97; + private static PyObject s$98; + private static PyObject s$99; + private static PyObject s$100; + private static PyObject s$101; + private static PyObject s$102; + private static PyObject s$103; + private static PyObject s$104; + private static PyObject s$105; + private static PyObject s$106; + private static PyObject s$107; + private static PyObject s$108; + private static PyObject s$109; + private static PyObject i$110; + private static PyObject s$111; + private static PyObject s$112; + private static PyFunctionTable funcTable; + private static PyCode c$0__verify; + private static PyCode c$1___init__; + private static PyCode c$2_seed; + private static PyCode c$3_random; + private static PyCode c$4_getstate; + private static PyCode c$5_setstate; + private static PyCode c$6_jumpahead; + private static PyCode c$7__Random__whseed; + private static PyCode c$8_whseed; + private static PyCode c$9___getstate__; + private static PyCode c$10___setstate__; + private static PyCode c$11_randrange; + private static PyCode c$12_randint; + private static PyCode c$13_choice; + private static PyCode c$14_shuffle; + private static PyCode c$15_uniform; + private static PyCode c$16_normalvariate; + private static PyCode c$17_lognormvariate; + private static PyCode c$18_cunifvariate; + private static PyCode c$19_expovariate; + private static PyCode c$20_vonmisesvariate; + private static PyCode c$21_gammavariate; + private static PyCode c$22_stdgamma; + private static PyCode c$23_gauss; + private static PyCode c$24_betavariate; + private static PyCode c$25_paretovariate; + private static PyCode c$26_weibullvariate; + private static PyCode c$27_Random; + private static PyCode c$28__test_generator; + private static PyCode c$29__test; + private static PyCode c$30_main; + private static void initConstants() { + s$0 = Py.newString("Random variable generators.\012\012 integers\012 --------\012 uniform within range\012\012 sequences\012 ---------\012 pick random element\012 generate random permutation\012\012 distributions on the real line:\012 ------------------------------\012 uniform\012 normal (Gaussian)\012 lognormal\012 negative exponential\012 gamma\012 beta\012\012 distributions on the circle (angles 0 to 2pi)\012 ---------------------------------------------\012 circular uniform\012 von Mises\012\012Translated from anonymously contributed C/C++ source.\012\012Multi-threading note: the random number generator used here is not thread-\012safe; it is possible that two calls return the same random value. However,\012you can instantiate a different instance of Random() in each thread to get\012generators that don't share state, then use .setstate() and .jumpahead() to\012move the generators to disjoint segments of the full period. For example,\012\012def create_generators(num, delta, firstseed=None):\012 \"\"\"Return list of num distinct generators.\012 Each generator has its own unique segment of delta elements from\012 Random.random()'s full period.\012 Seed the first generator with optional arg firstseed (default is\012 None, to seed from current time).\012 \"\"\"\012\012 from random import Random\012 g = Random(firstseed)\012 result = [g]\012 for i in range(num - 1):\012 laststate = g.getstate()\012 g = Random()\012 g.setstate(laststate)\012 g.jumpahead(delta)\012 result.append(g)\012 return result\012\012gens = create_generators(10, 1000000)\012\012That creates 10 distinct generators, which can be passed out to 10 distinct\012threads. The generators don't share state so can be called safely in\012parallel. So long as no thread calls its g.random() more than a million\012times (the second argument to create_generators), the sequences seen by\012each thread will not overlap.\012\012The period of the underlying Wichmann-Hill generator is 6,953,607,871,644,\012and that limits how far this technique can be pushed.\012\012Just for fun, note that since we know the period, .jumpahead() can also be\012used to \"move backward in time\":\012\012>>> g = Random(42) # arbitrary\012>>> g.random()\0120.25420336316883324\012>>> g.jumpahead(6953607871644L - 1) # move *back* one\012>>> g.random()\0120.25420336316883324\012"); + s$1 = Py.newString("Random"); + s$2 = Py.newString("seed"); + s$3 = Py.newString("random"); + s$4 = Py.newString("uniform"); + s$5 = Py.newString("randint"); + s$6 = Py.newString("choice"); + s$7 = Py.newString("randrange"); + s$8 = Py.newString("shuffle"); + s$9 = Py.newString("normalvariate"); + s$10 = Py.newString("lognormvariate"); + s$11 = Py.newString("cunifvariate"); + s$12 = Py.newString("expovariate"); + s$13 = Py.newString("vonmisesvariate"); + s$14 = Py.newString("gammavariate"); + s$15 = Py.newString("stdgamma"); + s$16 = Py.newString("gauss"); + s$17 = Py.newString("betavariate"); + s$18 = Py.newString("paretovariate"); + s$19 = Py.newString("weibullvariate"); + s$20 = Py.newString("getstate"); + s$21 = Py.newString("setstate"); + s$22 = Py.newString("jumpahead"); + s$23 = Py.newString("whseed"); + f$24 = Py.newFloat(1.0E-7); + s$25 = Py.newString("computed value for %s deviates too much (computed %g, expected %g)"); + i$26 = Py.newInteger(4); + f$27 = Py.newFloat(0.5); + f$28 = Py.newFloat(2.0); + s$29 = Py.newString("NV_MAGICCONST"); + f$30 = Py.newFloat(1.71552776992141); + s$31 = Py.newString("TWOPI"); + f$32 = Py.newFloat(6.28318530718); + f$33 = Py.newFloat(4.0); + s$34 = Py.newString("LOG4"); + f$35 = Py.newFloat(1.38629436111989); + f$36 = Py.newFloat(1.0); + f$37 = Py.newFloat(4.5); + s$38 = Py.newString("SG_MAGICCONST"); + f$39 = Py.newFloat(2.50407739677627); + i$40 = Py.newInteger(1); + s$41 = Py.newString("Initialize an instance.\012\012 Optional argument x controls seeding, as for Random.seed().\012 "); + s$42 = Py.newString("Initialize internal state from hashable object.\012\012 None or no argument seeds from current time.\012\012 If a is not None or an int or long, hash(a) is used instead.\012\012 If a is an int or long, a is used directly. Distinct values between\012 0 and 27814431486575L inclusive are guaranteed to yield distinct\012 internal states (this guarantee is specific to the default\012 Wichmann-Hill generator).\012 "); + i$43 = Py.newInteger(256); + i$44 = Py.newInteger(3); + l$45 = Py.newLong("3"); + i$46 = Py.newInteger(30268); + i$47 = Py.newInteger(30306); + i$48 = Py.newInteger(30322); + s$49 = Py.newString("Get the next random number in the range [0.0, 1.0)."); + i$50 = Py.newInteger(171); + i$51 = Py.newInteger(30269); + i$52 = Py.newInteger(172); + i$53 = Py.newInteger(30307); + i$54 = Py.newInteger(170); + i$55 = Py.newInteger(30323); + f$56 = Py.newFloat(30269.0); + f$57 = Py.newFloat(30307.0); + f$58 = Py.newFloat(30323.0); + s$59 = Py.newString("Return internal state; can be passed to setstate() later."); + s$60 = Py.newString("Restore internal state from object returned by getstate()."); + i$61 = Py.newInteger(0); + s$62 = Py.newString("state with version %s passed to Random.setstate() of version %s"); + s$63 = Py.newString("Act as if n calls to random() were made, but quickly.\012\012 n is an int, greater than or equal to 0.\012\012 Example use: If you have 2 threads and know that each will\012 consume no more than a million random numbers, create two Random\012 objects r1 and r2, then do\012 r2.setstate(r1.getstate())\012 r2.jumpahead(1000000)\012 Then r1 and r2 will use guaranteed-disjoint segments of the full\012 period.\012 "); + s$64 = Py.newString("n must be >= 0"); + s$65 = Py.newString("Set the Wichmann-Hill seed from (x, y, z).\012\012 These must be integers in the range [0, 256).\012 "); + s$66 = Py.newString("seeds must be integers"); + s$67 = Py.newString("seeds must be in range(0, 256)"); + i$68 = Py.newInteger(16777215); + i$69 = Py.newInteger(24); + s$70 = Py.newString("Seed from hashable object's hash code.\012\012 None or no argument seeds from current time. It is not guaranteed\012 that objects with distinct hash codes lead to distinct internal\012 states.\012\012 This is obsolete, provided for compatibility with the seed routine\012 used prior to Python 2.1. Use the .seed() method instead.\012 "); + s$71 = Py.newString("Choose a random item from range(start, stop[, step]).\012\012 This fixes the problem with randint() which includes the\012 endpoint; in Python this is usually not what you want.\012 Do not supply the 'int' and 'default' arguments.\012 "); + s$72 = Py.newString("non-integer arg 1 for randrange()"); + s$73 = Py.newString("empty range for randrange()"); + s$74 = Py.newString("non-integer stop for randrange()"); + s$75 = Py.newString("non-integer step for randrange()"); + s$76 = Py.newString("zero step for randrange()"); + s$77 = Py.newString("Return random integer in range [a, b], including both end points.\012\012 (Deprecated; use randrange(a, b+1).)\012 "); + s$78 = Py.newString("Choose a random element from a non-empty sequence."); + s$79 = Py.newString("x, random=random.random -> shuffle list x in place; return None.\012\012 Optional arg random is a 0-argument function returning a random\012 float in [0.0, 1.0); by default, the standard random.random.\012\012 Note that for even rather small len(x), the total number of\012 permutations of x is larger than the period of most random number\012 generators; this implies that \"most\" permutations of a long\012 sequence can never be generated.\012 "); + s$80 = Py.newString("Get a random number in the range [a, b)."); + f$81 = Py.newFloat(1.0E-6); + f$82 = Py.newFloat(0.0); + s$83 = Py.newString("stdgamma: alpha must be > 0.0"); + s$84 = Py.newString("times"); + s$85 = Py.newString("eval"); + f$86 = Py.newFloat(1.0E10); + s$87 = Py.newString("sec,"); + s$88 = Py.newString("avg %g, stddev %g, min %g, max %g"); + s$89 = Py.newString("TWOPI ="); + s$90 = Py.newString("LOG4 ="); + s$91 = Py.newString("NV_MAGICCONST ="); + s$92 = Py.newString("SG_MAGICCONST ="); + s$93 = Py.newString("random()"); + s$94 = Py.newString("normalvariate(0.0, 1.0)"); + s$95 = Py.newString("lognormvariate(0.0, 1.0)"); + s$96 = Py.newString("cunifvariate(0.0, 1.0)"); + s$97 = Py.newString("expovariate(1.0)"); + s$98 = Py.newString("vonmisesvariate(0.0, 1.0)"); + s$99 = Py.newString("gammavariate(0.5, 1.0)"); + s$100 = Py.newString("gammavariate(0.9, 1.0)"); + s$101 = Py.newString("gammavariate(1.0, 1.0)"); + s$102 = Py.newString("gammavariate(2.0, 1.0)"); + s$103 = Py.newString("gammavariate(20.0, 1.0)"); + s$104 = Py.newString("gammavariate(200.0, 1.0)"); + s$105 = Py.newString("gauss(0.0, 1.0)"); + s$106 = Py.newString("betavariate(3.0, 3.0)"); + s$107 = Py.newString("paretovariate(1.0)"); + s$108 = Py.newString("weibullvariate(1.0, 1.0)"); + s$109 = Py.newString("jumpahead test failed "); + i$110 = Py.newInteger(200); + s$111 = Py.newString("__main__"); + s$112 = Py.newString("/usr/share/jython/Lib/random.py"); + funcTable = new _PyInner(); + c$0__verify = Py.newCode(3, new String[] {"name", "computed", "expected"}, "/usr/share/jython/Lib/random.py", "_verify", false, false, funcTable, 0, null, null, 0, 1); + c$1___init__ = Py.newCode(2, new String[] {"self", "x"}, "/usr/share/jython/Lib/random.py", "__init__", false, false, funcTable, 1, null, null, 0, 1); + c$2_seed = Py.newCode(2, new String[] {"self", "a", "time", "z", "y", "x"}, "/usr/share/jython/Lib/random.py", "seed", false, false, funcTable, 2, null, null, 0, 1); + c$3_random = Py.newCode(1, new String[] {"self", "x", "z", "y"}, "/usr/share/jython/Lib/random.py", "random", false, false, funcTable, 3, null, null, 0, 1); + c$4_getstate = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/random.py", "getstate", false, false, funcTable, 4, null, null, 0, 1); + c$5_setstate = Py.newCode(2, new String[] {"self", "state", "version"}, "/usr/share/jython/Lib/random.py", "setstate", false, false, funcTable, 5, null, null, 0, 1); + c$6_jumpahead = Py.newCode(2, new String[] {"self", "n", "x", "z", "y"}, "/usr/share/jython/Lib/random.py", "jumpahead", false, false, funcTable, 6, null, null, 0, 1); + c$7__Random__whseed = Py.newCode(4, new String[] {"self", "x", "y", "z", "time", "t"}, "/usr/share/jython/Lib/random.py", "_Random__whseed", false, false, funcTable, 7, null, null, 0, 1); + c$8_whseed = Py.newCode(2, new String[] {"self", "a", "x", "z", "y"}, "/usr/share/jython/Lib/random.py", "whseed", false, false, funcTable, 8, null, null, 0, 1); + c$9___getstate__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/random.py", "__getstate__", false, false, funcTable, 9, null, null, 0, 1); + c$10___setstate__ = Py.newCode(2, new String[] {"self", "state"}, "/usr/share/jython/Lib/random.py", "__setstate__", false, false, funcTable, 10, null, null, 0, 1); + c$11_randrange = Py.newCode(6, new String[] {"self", "start", "stop", "step", "int", "default", "istep", "n", "istart", "istop"}, "/usr/share/jython/Lib/random.py", "randrange", false, false, funcTable, 11, null, null, 0, 1); + c$12_randint = Py.newCode(3, new String[] {"self", "a", "b"}, "/usr/share/jython/Lib/random.py", "randint", false, false, funcTable, 12, null, null, 0, 1); + c$13_choice = Py.newCode(2, new String[] {"self", "seq"}, "/usr/share/jython/Lib/random.py", "choice", false, false, funcTable, 13, null, null, 0, 1); + c$14_shuffle = Py.newCode(4, new String[] {"self", "x", "random", "int", "j", "i"}, "/usr/share/jython/Lib/random.py", "shuffle", false, false, funcTable, 14, null, null, 0, 1); + c$15_uniform = Py.newCode(3, new String[] {"self", "a", "b"}, "/usr/share/jython/Lib/random.py", "uniform", false, false, funcTable, 15, null, null, 0, 1); + c$16_normalvariate = Py.newCode(3, new String[] {"self", "mu", "sigma", "u2", "u1", "random", "zz", "z"}, "/usr/share/jython/Lib/random.py", "normalvariate", false, false, funcTable, 16, null, null, 0, 1); + c$17_lognormvariate = Py.newCode(3, new String[] {"self", "mu", "sigma"}, "/usr/share/jython/Lib/random.py", "lognormvariate", false, false, funcTable, 17, null, null, 0, 1); + c$18_cunifvariate = Py.newCode(3, new String[] {"self", "mean", "arc"}, "/usr/share/jython/Lib/random.py", "cunifvariate", false, false, funcTable, 18, null, null, 0, 1); + c$19_expovariate = Py.newCode(2, new String[] {"self", "lambd", "u", "random"}, "/usr/share/jython/Lib/random.py", "expovariate", false, false, funcTable, 19, null, null, 0, 1); + c$20_vonmisesvariate = Py.newCode(3, new String[] {"self", "mu", "kappa", "random", "theta", "z", "r", "u3", "u2", "u1", "f", "c", "b", "a"}, "/usr/share/jython/Lib/random.py", "vonmisesvariate", false, false, funcTable, 20, null, null, 0, 1); + c$21_gammavariate = Py.newCode(3, new String[] {"self", "alpha", "beta", "ainv"}, "/usr/share/jython/Lib/random.py", "gammavariate", false, false, funcTable, 21, null, null, 0, 1); + c$22_stdgamma = Py.newCode(5, new String[] {"self", "alpha", "ainv", "bbb", "ccc", "random", "z", "x", "v", "u", "r", "p", "u2", "u1", "b"}, "/usr/share/jython/Lib/random.py", "stdgamma", false, false, funcTable, 22, null, null, 0, 1); + c$23_gauss = Py.newCode(3, new String[] {"self", "mu", "sigma", "x2pi", "random", "g2rad", "z"}, "/usr/share/jython/Lib/random.py", "gauss", false, false, funcTable, 23, null, null, 0, 1); + c$24_betavariate = Py.newCode(3, new String[] {"self", "alpha", "beta", "y"}, "/usr/share/jython/Lib/random.py", "betavariate", false, false, funcTable, 24, null, null, 0, 1); + c$25_paretovariate = Py.newCode(2, new String[] {"self", "alpha", "u"}, "/usr/share/jython/Lib/random.py", "paretovariate", false, false, funcTable, 25, null, null, 0, 1); + c$26_weibullvariate = Py.newCode(3, new String[] {"self", "alpha", "beta", "u"}, "/usr/share/jython/Lib/random.py", "weibullvariate", false, false, funcTable, 26, null, null, 0, 1); + c$27_Random = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/random.py", "Random", false, false, funcTable, 27, null, null, 0, 0); + c$28__test_generator = Py.newCode(2, new String[] {"n", "funccall", "smallest", "code", "sum", "largest", "time", "x", "t1", "t0", "avg", "i", "stddev", "sqsum"}, "/usr/share/jython/Lib/random.py", "_test_generator", false, false, funcTable, 28, null, null, 0, 1); + c$29__test = Py.newCode(1, new String[] {"N", "r2", "r1", "i", "s"}, "/usr/share/jython/Lib/random.py", "_test", false, false, funcTable, 29, null, null, 0, 1); + c$30_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/random.py", "main", false, false, funcTable, 30, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$30_main == null) _PyInner.initConstants(); + return c$30_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner._verify$1(frame); + case 1: + return _PyInner.__init__$2(frame); + case 2: + return _PyInner.seed$3(frame); + case 3: + return _PyInner.random$4(frame); + case 4: + return _PyInner.getstate$5(frame); + case 5: + return _PyInner.setstate$6(frame); + case 6: + return _PyInner.jumpahead$7(frame); + case 7: + return _PyInner._Random__whseed$8(frame); + case 8: + return _PyInner.whseed$9(frame); + case 9: + return _PyInner.__getstate__$10(frame); + case 10: + return _PyInner.__setstate__$11(frame); + case 11: + return _PyInner.randrange$12(frame); + case 12: + return _PyInner.randint$13(frame); + case 13: + return _PyInner.choice$14(frame); + case 14: + return _PyInner.shuffle$15(frame); + case 15: + return _PyInner.uniform$16(frame); + case 16: + return _PyInner.normalvariate$17(frame); + case 17: + return _PyInner.lognormvariate$18(frame); + case 18: + return _PyInner.cunifvariate$19(frame); + case 19: + return _PyInner.expovariate$20(frame); + case 20: + return _PyInner.vonmisesvariate$21(frame); + case 21: + return _PyInner.gammavariate$22(frame); + case 22: + return _PyInner.stdgamma$23(frame); + case 23: + return _PyInner.gauss$24(frame); + case 24: + return _PyInner.betavariate$25(frame); + case 25: + return _PyInner.paretovariate$26(frame); + case 26: + return _PyInner.weibullvariate$27(frame); + case 27: + return _PyInner.Random$28(frame); + case 28: + return _PyInner._test_generator$29(frame); + case 29: + return _PyInner._test$30(frame); + case 30: + return _PyInner.main$31(frame); + default: + return null; + } + } + + private static PyObject _verify$1(PyFrame frame) { + if (frame.getglobal("abs").__call__(frame.getlocal(1)._sub(frame.getlocal(2)))._gt(f$24).__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError").__call__(s$25._mod(new PyTuple(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2)})))); + } + return Py.None; + } + + private static PyObject __init__$2(PyFrame frame) { + /* Initialize an instance. + + Optional argument x controls seeding, as for Random.seed(). + */ + frame.getlocal(0).invoke("seed", frame.getlocal(1)); + frame.getlocal(0).__setattr__("gauss_next", frame.getglobal("None")); + return Py.None; + } + + private static PyObject seed$3(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + /* Initialize internal state from hashable object. + + None or no argument seeds from current time. + + If a is not None or an int or long, hash(a) is used instead. + + If a is an int or long, a is used directly. Distinct values between + 0 and 27814431486575L inclusive are guaranteed to yield distinct + internal states (this guarantee is specific to the default + Wichmann-Hill generator). + */ + if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(2, org.python.core.imp.importOne("time", frame)); + frame.setlocal(1, frame.getglobal("long").__call__(frame.getlocal(2).__getattr__("time").__call__()._mul(i$43))); + } + if (frame.getglobal("type").__call__(frame.getlocal(1))._notin(new PyTuple(new PyObject[] {frame.getglobal("type").__call__(i$44), frame.getglobal("type").__call__(l$45)})).__nonzero__()) { + frame.setlocal(1, frame.getglobal("hash").__call__(frame.getlocal(1))); + } + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(1), i$46), 2); + frame.setlocal(1, t$0$PyObject__[0]); + frame.setlocal(5, t$0$PyObject__[1]); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(1), i$47), 2); + frame.setlocal(1, t$0$PyObject__[0]); + frame.setlocal(4, t$0$PyObject__[1]); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(1), i$48), 2); + frame.setlocal(1, t$0$PyObject__[0]); + frame.setlocal(3, t$0$PyObject__[1]); + frame.getlocal(0).__setattr__("_seed", new PyTuple(new PyObject[] {frame.getglobal("int").__call__(frame.getlocal(5))._add(i$40), frame.getglobal("int").__call__(frame.getlocal(4))._add(i$40), frame.getglobal("int").__call__(frame.getlocal(3))._add(i$40)})); + return Py.None; + } + + private static PyObject random$4(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + /* Get the next random number in the range [0.0, 1.0). */ + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getattr__("_seed"), 3); + frame.setlocal(1, t$0$PyObject__[0]); + frame.setlocal(3, t$0$PyObject__[1]); + frame.setlocal(2, t$0$PyObject__[2]); + frame.setlocal(1, i$50._mul(frame.getlocal(1))._mod(i$51)); + frame.setlocal(3, i$52._mul(frame.getlocal(3))._mod(i$53)); + frame.setlocal(2, i$54._mul(frame.getlocal(2))._mod(i$55)); + frame.getlocal(0).__setattr__("_seed", new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(3), frame.getlocal(2)})); + return frame.getlocal(1)._div(f$56)._add(frame.getlocal(3)._div(f$57))._add(frame.getlocal(2)._div(f$58))._mod(f$36); + } + + private static PyObject getstate$5(PyFrame frame) { + /* Return internal state; can be passed to setstate() later. */ + return new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("VERSION"), frame.getlocal(0).__getattr__("_seed"), frame.getlocal(0).__getattr__("gauss_next")}); + } + + private static PyObject setstate$6(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + /* Restore internal state from object returned by getstate(). */ + frame.setlocal(2, frame.getlocal(1).__getitem__(i$61)); + if (frame.getlocal(2)._eq(i$40).__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 3); + frame.setlocal(2, t$0$PyObject__[0]); + frame.getlocal(0).__setattr__("_seed", t$0$PyObject__[1]); + frame.getlocal(0).__setattr__("gauss_next", t$0$PyObject__[2]); + } + else { + throw Py.makeException(frame.getglobal("ValueError").__call__(s$62._mod(new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(0).__getattr__("VERSION")})))); + } + return Py.None; + } + + private static PyObject jumpahead$7(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + /* Act as if n calls to random() were made, but quickly. + + n is an int, greater than or equal to 0. + + Example use: If you have 2 threads and know that each will + consume no more than a million random numbers, create two Random + objects r1 and r2, then do + r2.setstate(r1.getstate()) + r2.jumpahead(1000000) + Then r1 and r2 will use guaranteed-disjoint segments of the full + period. + */ + if (frame.getlocal(1)._ge(i$61).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError").__call__(s$64)); + } + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getattr__("_seed"), 3); + frame.setlocal(2, t$0$PyObject__[0]); + frame.setlocal(4, t$0$PyObject__[1]); + frame.setlocal(3, t$0$PyObject__[2]); + frame.setlocal(2, frame.getglobal("int").__call__(frame.getlocal(2)._mul(frame.getglobal("pow").__call__(i$50, frame.getlocal(1), i$51)))._mod(i$51)); + frame.setlocal(4, frame.getglobal("int").__call__(frame.getlocal(4)._mul(frame.getglobal("pow").__call__(i$52, frame.getlocal(1), i$53)))._mod(i$53)); + frame.setlocal(3, frame.getglobal("int").__call__(frame.getlocal(3)._mul(frame.getglobal("pow").__call__(i$54, frame.getlocal(1), i$55)))._mod(i$55)); + frame.getlocal(0).__setattr__("_seed", new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(4), frame.getlocal(3)})); + return Py.None; + } + + private static PyObject _Random__whseed$8(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject; + + // Code + /* Set the Wichmann-Hill seed from (x, y, z). + + These must be integers in the range [0, 256). + */ + if ((frame.getglobal("type").__call__(frame.getlocal(1))._eq(t$0$PyObject = frame.getglobal("type").__call__(frame.getlocal(2))).__nonzero__() ? (t$0$PyObject._eq(t$1$PyObject = frame.getglobal("type").__call__(frame.getlocal(3))).__nonzero__() ? t$1$PyObject._eq(frame.getglobal("type").__call__(i$61)) : Py.Zero) : Py.Zero).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("TypeError").__call__(s$66)); + } + if (((t$0$PyObject = ((t$1$PyObject = (i$61._le(t$2$PyObject = frame.getlocal(1)).__nonzero__() ? t$2$PyObject._lt(i$43) : Py.Zero)).__nonzero__() ? (i$61._le(t$2$PyObject = frame.getlocal(2)).__nonzero__() ? t$2$PyObject._lt(i$43) : Py.Zero) : t$1$PyObject)).__nonzero__() ? (i$61._le(t$1$PyObject = frame.getlocal(3)).__nonzero__() ? t$1$PyObject._lt(i$43) : Py.Zero) : t$0$PyObject).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError").__call__(s$67)); + } + if ((i$61._eq(t$0$PyObject = frame.getlocal(1)).__nonzero__() ? (t$0$PyObject._eq(t$1$PyObject = frame.getlocal(2)).__nonzero__() ? t$1$PyObject._eq(frame.getlocal(3)) : Py.Zero) : Py.Zero).__nonzero__()) { + frame.setlocal(4, org.python.core.imp.importOne("time", frame)); + frame.setlocal(5, frame.getglobal("long").__call__(frame.getlocal(4).__getattr__("time").__call__()._mul(i$43))); + frame.setlocal(5, frame.getglobal("int").__call__(frame.getlocal(5)._and(i$68)._xor(frame.getlocal(5)._rshift(i$69)))); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(5), i$43), 2); + frame.setlocal(5, t$0$PyObject__[0]); + frame.setlocal(1, t$0$PyObject__[1]); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(5), i$43), 2); + frame.setlocal(5, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(5), i$43), 2); + frame.setlocal(5, t$0$PyObject__[0]); + frame.setlocal(3, t$0$PyObject__[1]); + } + frame.getlocal(0).__setattr__("_seed", new PyTuple(new PyObject[] {(t$0$PyObject = frame.getlocal(1)).__nonzero__() ? t$0$PyObject : i$40, (t$0$PyObject = frame.getlocal(2)).__nonzero__() ? t$0$PyObject : i$40, (t$0$PyObject = frame.getlocal(3)).__nonzero__() ? t$0$PyObject : i$40})); + return Py.None; + } + + private static PyObject whseed$9(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject; + + // Code + /* Seed from hashable object's hash code. + + None or no argument seeds from current time. It is not guaranteed + that objects with distinct hash codes lead to distinct internal + states. + + This is obsolete, provided for compatibility with the seed routine + used prior to Python 2.1. Use the .seed() method instead. + */ + if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) { + frame.getlocal(0).invoke("_Random__whseed"); + return Py.None; + } + frame.setlocal(1, frame.getglobal("hash").__call__(frame.getlocal(1))); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(1), i$43), 2); + frame.setlocal(1, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(1), i$43), 2); + frame.setlocal(1, t$0$PyObject__[0]); + frame.setlocal(4, t$0$PyObject__[1]); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("divmod").__call__(frame.getlocal(1), i$43), 2); + frame.setlocal(1, t$0$PyObject__[0]); + frame.setlocal(3, t$0$PyObject__[1]); + frame.setlocal(2, (t$0$PyObject = frame.getlocal(2)._add(frame.getlocal(1))._mod(i$43)).__nonzero__() ? t$0$PyObject : i$40); + frame.setlocal(4, (t$0$PyObject = frame.getlocal(4)._add(frame.getlocal(1))._mod(i$43)).__nonzero__() ? t$0$PyObject : i$40); + frame.setlocal(3, (t$0$PyObject = frame.getlocal(3)._add(frame.getlocal(1))._mod(i$43)).__nonzero__() ? t$0$PyObject : i$40); + frame.getlocal(0).invoke("_Random__whseed", new PyObject[] {frame.getlocal(2), frame.getlocal(4), frame.getlocal(3)}); + return Py.None; + } + + private static PyObject __getstate__$10(PyFrame frame) { + return frame.getlocal(0).invoke("getstate"); + } + + private static PyObject __setstate__$11(PyFrame frame) { + frame.getlocal(0).invoke("setstate", frame.getlocal(1)); + return Py.None; + } + + private static PyObject randrange$12(PyFrame frame) { + /* Choose a random item from range(start, stop[, step]). + + This fixes the problem with randint() which includes the + endpoint; in Python this is usually not what you want. + Do not supply the 'int' and 'default' arguments. + */ + frame.setlocal(8, frame.getlocal(4).__call__(frame.getlocal(1))); + if (frame.getlocal(8)._ne(frame.getlocal(1)).__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$72); + } + if (frame.getlocal(2)._is(frame.getlocal(5)).__nonzero__()) { + if (frame.getlocal(8)._gt(i$61).__nonzero__()) { + return frame.getlocal(4).__call__(frame.getlocal(0).invoke("random")._mul(frame.getlocal(8))); + } + throw Py.makeException(frame.getglobal("ValueError"), s$73); + } + frame.setlocal(9, frame.getlocal(4).__call__(frame.getlocal(2))); + if (frame.getlocal(9)._ne(frame.getlocal(2)).__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$74); + } + if (frame.getlocal(3)._eq(i$40).__nonzero__()) { + if (frame.getlocal(8)._lt(frame.getlocal(9)).__nonzero__()) { + return frame.getlocal(8)._add(frame.getlocal(4).__call__(frame.getlocal(0).invoke("random")._mul(frame.getlocal(9)._sub(frame.getlocal(8))))); + } + throw Py.makeException(frame.getglobal("ValueError"), s$73); + } + frame.setlocal(6, frame.getlocal(4).__call__(frame.getlocal(3))); + if (frame.getlocal(6)._ne(frame.getlocal(3)).__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$75); + } + if (frame.getlocal(6)._gt(i$61).__nonzero__()) { + frame.setlocal(7, frame.getlocal(9)._sub(frame.getlocal(8))._add(frame.getlocal(6))._sub(i$40)._div(frame.getlocal(6))); + } + else if (frame.getlocal(6)._lt(i$61).__nonzero__()) { + frame.setlocal(7, frame.getlocal(9)._sub(frame.getlocal(8))._add(frame.getlocal(6))._add(i$40)._div(frame.getlocal(6))); + } + else { + throw Py.makeException(frame.getglobal("ValueError"), s$76); + } + if (frame.getlocal(7)._le(i$61).__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$73); + } + return frame.getlocal(8)._add(frame.getlocal(6)._mul(frame.getlocal(4).__call__(frame.getlocal(0).invoke("random")._mul(frame.getlocal(7))))); + } + + private static PyObject randint$13(PyFrame frame) { + /* Return random integer in range [a, b], including both end points. + + (Deprecated; use randrange(a, b+1).) + */ + return frame.getlocal(0).invoke("randrange", frame.getlocal(1), frame.getlocal(2)._add(i$40)); + } + + private static PyObject choice$14(PyFrame frame) { + /* Choose a random element from a non-empty sequence. */ + return frame.getlocal(1).__getitem__(frame.getglobal("int").__call__(frame.getlocal(0).invoke("random")._mul(frame.getglobal("len").__call__(frame.getlocal(1))))); + } + + private static PyObject shuffle$15(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* x, random=random.random -> shuffle list x in place; return None. + + Optional arg random is a 0-argument function returning a random + float in [0.0, 1.0); by default, the standard random.random. + + Note that for even rather small len(x), the total number of + permutations of x is larger than the period of most random number + generators; this implies that "most" permutations of a long + sequence can never be generated. + */ + if (frame.getlocal(2)._is(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(2, frame.getlocal(0).__getattr__("random")); + } + t$0$int = 0; + t$1$PyObject = frame.getglobal("xrange").__call__(frame.getglobal("len").__call__(frame.getlocal(1))._sub(i$40), i$61, i$40.__neg__()); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(5, t$0$PyObject); + frame.setlocal(4, frame.getlocal(3).__call__(frame.getlocal(2).__call__()._mul(frame.getlocal(5)._add(i$40)))); + t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {frame.getlocal(1).__getitem__(frame.getlocal(4)), frame.getlocal(1).__getitem__(frame.getlocal(5))}), 2); + frame.getlocal(1).__setitem__(frame.getlocal(5), t$0$PyObject__[0]); + frame.getlocal(1).__setitem__(frame.getlocal(4), t$0$PyObject__[1]); + } + return Py.None; + } + + private static PyObject uniform$16(PyFrame frame) { + /* Get a random number in the range [a, b). */ + return frame.getlocal(1)._add(frame.getlocal(2)._sub(frame.getlocal(1))._mul(frame.getlocal(0).invoke("random"))); + } + + private static PyObject normalvariate$17(PyFrame frame) { + frame.setlocal(5, frame.getlocal(0).__getattr__("random")); + while (i$40.__nonzero__()) { + frame.setlocal(4, frame.getlocal(5).__call__()); + frame.setlocal(3, frame.getlocal(5).__call__()); + frame.setlocal(7, frame.getglobal("NV_MAGICCONST")._mul(frame.getlocal(4)._sub(f$27))._div(frame.getlocal(3))); + frame.setlocal(6, frame.getlocal(7)._mul(frame.getlocal(7))._div(f$33)); + if (frame.getlocal(6)._le(frame.getglobal("_log").__call__(frame.getlocal(3)).__neg__()).__nonzero__()) { + break; + } + } + return frame.getlocal(1)._add(frame.getlocal(7)._mul(frame.getlocal(2))); + } + + private static PyObject lognormvariate$18(PyFrame frame) { + return frame.getglobal("_exp").__call__(frame.getlocal(0).invoke("normalvariate", frame.getlocal(1), frame.getlocal(2))); + } + + private static PyObject cunifvariate$19(PyFrame frame) { + return frame.getlocal(1)._add(frame.getlocal(2)._mul(frame.getlocal(0).invoke("random")._sub(f$27)))._mod(frame.getglobal("_pi")); + } + + private static PyObject expovariate$20(PyFrame frame) { + frame.setlocal(3, frame.getlocal(0).__getattr__("random")); + frame.setlocal(2, frame.getlocal(3).__call__()); + while (frame.getlocal(2)._le(f$24).__nonzero__()) { + frame.setlocal(2, frame.getlocal(3).__call__()); + } + return frame.getglobal("_log").__call__(frame.getlocal(2)).__neg__()._div(frame.getlocal(1)); + } + + private static PyObject vonmisesvariate$21(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + frame.setlocal(3, frame.getlocal(0).__getattr__("random")); + if (frame.getlocal(2)._le(f$81).__nonzero__()) { + return frame.getglobal("TWOPI")._mul(frame.getlocal(3).__call__()); + } + frame.setlocal(13, f$36._add(frame.getglobal("_sqrt").__call__(f$36._add(f$33._mul(frame.getlocal(2))._mul(frame.getlocal(2)))))); + frame.setlocal(12, frame.getlocal(13)._sub(frame.getglobal("_sqrt").__call__(f$28._mul(frame.getlocal(13))))._div(f$28._mul(frame.getlocal(2)))); + frame.setlocal(6, f$36._add(frame.getlocal(12)._mul(frame.getlocal(12)))._div(f$28._mul(frame.getlocal(12)))); + while (i$40.__nonzero__()) { + frame.setlocal(9, frame.getlocal(3).__call__()); + frame.setlocal(5, frame.getglobal("_cos").__call__(frame.getglobal("_pi")._mul(frame.getlocal(9)))); + frame.setlocal(10, f$36._add(frame.getlocal(6)._mul(frame.getlocal(5)))._div(frame.getlocal(6)._add(frame.getlocal(5)))); + frame.setlocal(11, frame.getlocal(2)._mul(frame.getlocal(6)._sub(frame.getlocal(10)))); + frame.setlocal(8, frame.getlocal(3).__call__()); + if (((t$0$PyObject = frame.getlocal(8)._ge(frame.getlocal(11)._mul(f$28._sub(frame.getlocal(11))))).__nonzero__() ? frame.getlocal(8)._gt(frame.getlocal(11)._mul(frame.getglobal("_exp").__call__(f$36._sub(frame.getlocal(11))))) : t$0$PyObject).__not__().__nonzero__()) { + break; + } + } + frame.setlocal(7, frame.getlocal(3).__call__()); + if (frame.getlocal(7)._gt(f$27).__nonzero__()) { + frame.setlocal(4, frame.getlocal(1)._mod(frame.getglobal("TWOPI"))._add(frame.getglobal("_acos").__call__(frame.getlocal(10)))); + } + else { + frame.setlocal(4, frame.getlocal(1)._mod(frame.getglobal("TWOPI"))._sub(frame.getglobal("_acos").__call__(frame.getlocal(10)))); + } + return frame.getlocal(4); + } + + private static PyObject gammavariate$22(PyFrame frame) { + frame.setlocal(3, frame.getglobal("_sqrt").__call__(f$28._mul(frame.getlocal(1))._sub(f$36))); + return frame.getlocal(2)._mul(frame.getlocal(0).invoke("stdgamma", new PyObject[] {frame.getlocal(1), frame.getlocal(3), frame.getlocal(1)._sub(frame.getglobal("LOG4")), frame.getlocal(1)._add(frame.getlocal(3))})); + } + + private static PyObject stdgamma$23(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(5, frame.getlocal(0).__getattr__("random")); + if (frame.getlocal(1)._le(f$82).__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$83); + } + if (frame.getlocal(1)._gt(f$36).__nonzero__()) { + while (i$40.__nonzero__()) { + frame.setlocal(13, frame.getlocal(5).__call__()); + frame.setlocal(12, frame.getlocal(5).__call__()); + frame.setlocal(8, frame.getglobal("_log").__call__(frame.getlocal(13)._div(f$36._sub(frame.getlocal(13))))._div(frame.getlocal(2))); + frame.setlocal(7, frame.getlocal(1)._mul(frame.getglobal("_exp").__call__(frame.getlocal(8)))); + frame.setlocal(6, frame.getlocal(13)._mul(frame.getlocal(13))._mul(frame.getlocal(12))); + frame.setlocal(10, frame.getlocal(3)._add(frame.getlocal(4)._mul(frame.getlocal(8)))._sub(frame.getlocal(7))); + if (((t$0$PyObject = frame.getlocal(10)._add(frame.getglobal("SG_MAGICCONST"))._sub(f$37._mul(frame.getlocal(6)))._ge(f$82)).__nonzero__() ? t$0$PyObject : frame.getlocal(10)._ge(frame.getglobal("_log").__call__(frame.getlocal(6)))).__nonzero__()) { + return frame.getlocal(7); + } + } + } + else if (frame.getlocal(1)._eq(f$36).__nonzero__()) { + frame.setlocal(9, frame.getlocal(5).__call__()); + while (frame.getlocal(9)._le(f$24).__nonzero__()) { + frame.setlocal(9, frame.getlocal(5).__call__()); + } + return frame.getglobal("_log").__call__(frame.getlocal(9)).__neg__(); + } + else { + while (i$40.__nonzero__()) { + frame.setlocal(9, frame.getlocal(5).__call__()); + frame.setlocal(14, frame.getglobal("_e")._add(frame.getlocal(1))._div(frame.getglobal("_e"))); + frame.setlocal(11, frame.getlocal(14)._mul(frame.getlocal(9))); + if (frame.getlocal(11)._le(f$36).__nonzero__()) { + frame.setlocal(7, frame.getglobal("pow").__call__(frame.getlocal(11), f$36._div(frame.getlocal(1)))); + } + else { + frame.setlocal(7, frame.getglobal("_log").__call__(frame.getlocal(14)._sub(frame.getlocal(11))._div(frame.getlocal(1))).__neg__()); + } + frame.setlocal(13, frame.getlocal(5).__call__()); + if (((t$0$PyObject = ((t$1$PyObject = frame.getlocal(11)._le(f$36)).__nonzero__() ? frame.getlocal(13)._gt(frame.getglobal("_exp").__call__(frame.getlocal(7).__neg__())) : t$1$PyObject)).__nonzero__() ? t$0$PyObject : ((t$1$PyObject = frame.getlocal(11)._gt(i$40)).__nonzero__() ? frame.getlocal(13)._gt(frame.getglobal("pow").__call__(frame.getlocal(7), frame.getlocal(1)._sub(f$36))) : t$1$PyObject)).__not__().__nonzero__()) { + break; + } + } + return frame.getlocal(7); + } + return Py.None; + } + + private static PyObject gauss$24(PyFrame frame) { + frame.setlocal(4, frame.getlocal(0).__getattr__("random")); + frame.setlocal(6, frame.getlocal(0).__getattr__("gauss_next")); + frame.getlocal(0).__setattr__("gauss_next", frame.getglobal("None")); + if (frame.getlocal(6)._is(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(3, frame.getlocal(4).__call__()._mul(frame.getglobal("TWOPI"))); + frame.setlocal(5, frame.getglobal("_sqrt").__call__(f$28.__neg__()._mul(frame.getglobal("_log").__call__(f$36._sub(frame.getlocal(4).__call__()))))); + frame.setlocal(6, frame.getglobal("_cos").__call__(frame.getlocal(3))._mul(frame.getlocal(5))); + frame.getlocal(0).__setattr__("gauss_next", frame.getglobal("_sin").__call__(frame.getlocal(3))._mul(frame.getlocal(5))); + } + return frame.getlocal(1)._add(frame.getlocal(6)._mul(frame.getlocal(2))); + } + + private static PyObject betavariate$25(PyFrame frame) { + frame.setlocal(3, frame.getlocal(0).invoke("gammavariate", frame.getlocal(1), f$36)); + if (frame.getlocal(3)._eq(i$61).__nonzero__()) { + return f$82; + } + else { + return frame.getlocal(3)._div(frame.getlocal(3)._add(frame.getlocal(0).invoke("gammavariate", frame.getlocal(2), f$36))); + } + } + + private static PyObject paretovariate$26(PyFrame frame) { + frame.setlocal(2, frame.getlocal(0).invoke("random")); + return f$36._div(frame.getglobal("pow").__call__(frame.getlocal(2), f$36._div(frame.getlocal(1)))); + } + + private static PyObject weibullvariate$27(PyFrame frame) { + frame.setlocal(3, frame.getlocal(0).invoke("random")); + return frame.getlocal(1)._mul(frame.getglobal("pow").__call__(frame.getglobal("_log").__call__(frame.getlocal(3)).__neg__(), f$36._div(frame.getlocal(2)))); + } + + private static PyObject Random$28(PyFrame frame) { + frame.setlocal("VERSION", i$40); + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$1___init__)); + frame.setlocal("seed", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$2_seed)); + frame.setlocal("random", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_random)); + frame.setlocal("getstate", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_getstate)); + frame.setlocal("setstate", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_setstate)); + frame.setlocal("jumpahead", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_jumpahead)); + frame.setlocal("_Random__whseed", new PyFunction(frame.f_globals, new PyObject[] {i$61, i$61, i$61}, c$7__Random__whseed)); + frame.setlocal("whseed", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$8_whseed)); + frame.setlocal("__getstate__", new PyFunction(frame.f_globals, new PyObject[] {}, c$9___getstate__)); + frame.setlocal("__setstate__", new PyFunction(frame.f_globals, new PyObject[] {}, c$10___setstate__)); + frame.setlocal("randrange", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), i$40, frame.getname("int"), frame.getname("None")}, c$11_randrange)); + frame.setlocal("randint", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_randint)); + frame.setlocal("choice", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_choice)); + frame.setlocal("shuffle", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("int")}, c$14_shuffle)); + frame.setlocal("uniform", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_uniform)); + frame.setlocal("normalvariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$16_normalvariate)); + frame.setlocal("lognormvariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$17_lognormvariate)); + frame.setlocal("cunifvariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$18_cunifvariate)); + frame.setlocal("expovariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$19_expovariate)); + frame.setlocal("vonmisesvariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$20_vonmisesvariate)); + frame.setlocal("gammavariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$21_gammavariate)); + frame.setlocal("stdgamma", new PyFunction(frame.f_globals, new PyObject[] {}, c$22_stdgamma)); + frame.setlocal("gauss", new PyFunction(frame.f_globals, new PyObject[] {}, c$23_gauss)); + frame.setlocal("betavariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$24_betavariate)); + frame.setlocal("paretovariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$25_paretovariate)); + frame.setlocal("weibullvariate", new PyFunction(frame.f_globals, new PyObject[] {}, c$26_weibullvariate)); + return frame.getf_locals(); + } + + private static PyObject _test_generator$29(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(6, org.python.core.imp.importOne("time", frame)); + Py.printComma(frame.getlocal(0)); + Py.printComma(s$84); + Py.println(frame.getlocal(1)); + frame.setlocal(3, frame.getglobal("compile").__call__(frame.getlocal(1), frame.getlocal(1), s$85)); + frame.setlocal(4, f$82); + frame.setlocal(13, f$82); + frame.setlocal(2, f$86); + frame.setlocal(5, f$86.__neg__()); + frame.setlocal(9, frame.getlocal(6).__getattr__("time").__call__()); + t$0$int = 0; + t$1$PyObject = frame.getglobal("range").__call__(frame.getlocal(0)); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(11, t$0$PyObject); + frame.setlocal(7, frame.getglobal("eval").__call__(frame.getlocal(3))); + frame.setlocal(4, frame.getlocal(4)._add(frame.getlocal(7))); + frame.setlocal(13, frame.getlocal(13)._add(frame.getlocal(7)._mul(frame.getlocal(7)))); + frame.setlocal(2, frame.getglobal("min").__call__(frame.getlocal(7), frame.getlocal(2))); + frame.setlocal(5, frame.getglobal("max").__call__(frame.getlocal(7), frame.getlocal(5))); + } + frame.setlocal(8, frame.getlocal(6).__getattr__("time").__call__()); + Py.printComma(frame.getglobal("round").__call__(frame.getlocal(8)._sub(frame.getlocal(9)), i$44)); + Py.printComma(s$87); + frame.setlocal(10, frame.getlocal(4)._div(frame.getlocal(0))); + frame.setlocal(12, frame.getglobal("_sqrt").__call__(frame.getlocal(13)._div(frame.getlocal(0))._sub(frame.getlocal(10)._mul(frame.getlocal(10))))); + Py.println(s$88._mod(new PyTuple(new PyObject[] {frame.getlocal(10), frame.getlocal(12), frame.getlocal(2), frame.getlocal(5)}))); + return Py.None; + } + + private static PyObject _test$30(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + Py.printComma(s$89); + Py.println(frame.getglobal("TWOPI")); + Py.printComma(s$90); + Py.println(frame.getglobal("LOG4")); + Py.printComma(s$91); + Py.println(frame.getglobal("NV_MAGICCONST")); + Py.printComma(s$92); + Py.println(frame.getglobal("SG_MAGICCONST")); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$93); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$94); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$95); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$96); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$97); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$98); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$99); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$100); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$101); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$102); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$103); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$104); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$105); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$106); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$107); + frame.getglobal("_test_generator").__call__(frame.getlocal(0), s$108); + frame.setlocal(4, frame.getglobal("getstate").__call__()); + frame.getglobal("jumpahead").__call__(frame.getlocal(0)); + frame.setlocal(2, frame.getglobal("random").__call__()); + frame.getglobal("setstate").__call__(frame.getlocal(4)); + t$0$int = 0; + t$1$PyObject = frame.getglobal("range").__call__(frame.getlocal(0)); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(3, t$0$PyObject); + frame.getglobal("random").__call__(); + } + frame.setlocal(1, frame.getglobal("random").__call__()); + if (frame.getlocal(2)._ne(frame.getlocal(1)).__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError").__call__(s$109._add(new PyTuple(new PyObject[] {frame.getlocal(0), frame.getlocal(2), frame.getlocal(1)}).__repr__()))); + } + return Py.None; + } + + private static PyObject main$31(PyFrame frame) { + frame.setglobal("__file__", s$112); + + PyObject[] imp_accu; + // Code + /* Random variable generators. + + integers + -------- + uniform within range + + sequences + --------- + pick random element + generate random permutation + + distributions on the real line: + ------------------------------ + uniform + normal (Gaussian) + lognormal + negative exponential + gamma + beta + + distributions on the circle (angles 0 to 2pi) + --------------------------------------------- + circular uniform + von Mises + + Translated from anonymously contributed C/C++ source. + + Multi-threading note: the random number generator used here is not thread- + safe; it is possible that two calls return the same random value. However, + you can instantiate a different instance of Random() in each thread to get + generators that don't share state, then use .setstate() and .jumpahead() to + move the generators to disjoint segments of the full period. For example, + + def create_generators(num, delta, firstseed=None): + """Return list of num distinct generators. + Each generator has its own unique segment of delta elements from + Random.random()'s full period. + Seed the first generator with optional arg firstseed (default is + None, to seed from current time). + """ + + from random import Random + g = Random(firstseed) + result = [g] + for i in range(num - 1): + laststate = g.getstate() + g = Random() + g.setstate(laststate) + g.jumpahead(delta) + result.append(g) + return result + + gens = create_generators(10, 1000000) + + That creates 10 distinct generators, which can be passed out to 10 distinct + threads. The generators don't share state so can be called safely in + parallel. So long as no thread calls its g.random() more than a million + times (the second argument to create_generators), the sequences seen by + each thread will not overlap. + + The period of the underlying Wichmann-Hill generator is 6,953,607,871,644, + and that limits how far this technique can be pushed. + + Just for fun, note that since we know the period, .jumpahead() can also be + used to "move backward in time": + + >>> g = Random(42) # arbitrary + >>> g.random() + 0.25420336316883324 + >>> g.jumpahead(6953607871644L - 1) # move *back* one + >>> g.random() + 0.25420336316883324 + */ + imp_accu = org.python.core.imp.importFrom("math", new String[] {"log", "exp", "pi", "e"}, frame); + frame.setlocal("_log", imp_accu[0]); + frame.setlocal("_exp", imp_accu[1]); + frame.setlocal("_pi", imp_accu[2]); + frame.setlocal("_e", imp_accu[3]); + imp_accu = null; + imp_accu = org.python.core.imp.importFrom("math", new String[] {"sqrt", "acos", "cos", "sin"}, frame); + frame.setlocal("_sqrt", imp_accu[0]); + frame.setlocal("_acos", imp_accu[1]); + frame.setlocal("_cos", imp_accu[2]); + frame.setlocal("_sin", imp_accu[3]); + imp_accu = null; + frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$20, s$21, s$22, s$23})); + frame.setlocal("_verify", new PyFunction(frame.f_globals, new PyObject[] {}, c$0__verify)); + frame.setlocal("NV_MAGICCONST", i$26._mul(frame.getname("_exp").__call__(f$27.__neg__()))._div(frame.getname("_sqrt").__call__(f$28))); + frame.getname("_verify").__call__(s$29, frame.getname("NV_MAGICCONST"), f$30); + frame.setlocal("TWOPI", f$28._mul(frame.getname("_pi"))); + frame.getname("_verify").__call__(s$31, frame.getname("TWOPI"), f$32); + frame.setlocal("LOG4", frame.getname("_log").__call__(f$33)); + frame.getname("_verify").__call__(s$34, frame.getname("LOG4"), f$35); + frame.setlocal("SG_MAGICCONST", f$36._add(frame.getname("_log").__call__(f$37))); + frame.getname("_verify").__call__(s$38, frame.getname("SG_MAGICCONST"), f$39); + frame.dellocal("_verify"); + frame.setlocal("Random", Py.makeClass("Random", new PyObject[] {}, c$27_Random, null)); + frame.setlocal("_test_generator", new PyFunction(frame.f_globals, new PyObject[] {}, c$28__test_generator)); + frame.setlocal("_test", new PyFunction(frame.f_globals, new PyObject[] {i$110}, c$29__test)); + frame.setlocal("_inst", frame.getname("Random").__call__()); + frame.setlocal("seed", frame.getname("_inst").__getattr__("seed")); + frame.setlocal("random", frame.getname("_inst").__getattr__("random")); + frame.setlocal("uniform", frame.getname("_inst").__getattr__("uniform")); + frame.setlocal("randint", frame.getname("_inst").__getattr__("randint")); + frame.setlocal("choice", frame.getname("_inst").__getattr__("choice")); + frame.setlocal("randrange", frame.getname("_inst").__getattr__("randrange")); + frame.setlocal("shuffle", frame.getname("_inst").__getattr__("shuffle")); + frame.setlocal("normalvariate", frame.getname("_inst").__getattr__("normalvariate")); + frame.setlocal("lognormvariate", frame.getname("_inst").__getattr__("lognormvariate")); + frame.setlocal("cunifvariate", frame.getname("_inst").__getattr__("cunifvariate")); + frame.setlocal("expovariate", frame.getname("_inst").__getattr__("expovariate")); + frame.setlocal("vonmisesvariate", frame.getname("_inst").__getattr__("vonmisesvariate")); + frame.setlocal("gammavariate", frame.getname("_inst").__getattr__("gammavariate")); + frame.setlocal("stdgamma", frame.getname("_inst").__getattr__("stdgamma")); + frame.setlocal("gauss", frame.getname("_inst").__getattr__("gauss")); + frame.setlocal("betavariate", frame.getname("_inst").__getattr__("betavariate")); + frame.setlocal("paretovariate", frame.getname("_inst").__getattr__("paretovariate")); + frame.setlocal("weibullvariate", frame.getname("_inst").__getattr__("weibullvariate")); + frame.setlocal("getstate", frame.getname("_inst").__getattr__("getstate")); + frame.setlocal("setstate", frame.getname("_inst").__getattr__("setstate")); + frame.setlocal("jumpahead", frame.getname("_inst").__getattr__("jumpahead")); + frame.setlocal("whseed", frame.getname("_inst").__getattr__("whseed")); + if (frame.getname("__name__")._eq(s$111).__nonzero__()) { + frame.getname("_test").__call__(); + } + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("random")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "random"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(random._PyInner.class, newargs, random.jpy$packages, random.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/re$_PyInner.class b/server/jpywork/re$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..fc31af35b7af777e7a1e86c838e39249e4d83b75 GIT binary patch literal 3685 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 literal 0 HcmV?d00001 diff --git a/server/jpywork/re.java b/server/jpywork/re.java new file mode 100644 index 00000000..f1377fa9 --- /dev/null +++ b/server/jpywork/re.java @@ -0,0 +1,115 @@ +import org.python.core.*; + +public class re extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject s$1; + private static PyObject s$2; + private static PyObject s$3; + private static PyObject s$4; + private static PyObject s$5; + private static PyObject s$6; + private static PyObject s$7; + private static PyObject s$8; + private static PyObject s$9; + private static PyObject s$10; + private static PyObject s$11; + private static PyObject s$12; + private static PyObject s$13; + private static PyObject s$14; + private static PyObject s$15; + private static PyObject s$16; + private static PyObject s$17; + private static PyObject s$18; + private static PyObject s$19; + private static PyObject s$20; + private static PyObject s$21; + private static PyObject s$22; + private static PyObject s$23; + private static PyObject s$24; + private static PyFunctionTable funcTable; + private static PyCode c$0_main; + private static void initConstants() { + s$0 = Py.newString("match"); + s$1 = Py.newString("search"); + s$2 = Py.newString("sub"); + s$3 = Py.newString("subn"); + s$4 = Py.newString("split"); + s$5 = Py.newString("findall"); + s$6 = Py.newString("compile"); + s$7 = Py.newString("purge"); + s$8 = Py.newString("template"); + s$9 = Py.newString("escape"); + s$10 = Py.newString("I"); + s$11 = Py.newString("L"); + s$12 = Py.newString("M"); + s$13 = Py.newString("S"); + s$14 = Py.newString("X"); + s$15 = Py.newString("U"); + s$16 = Py.newString("IGNORECASE"); + s$17 = Py.newString("LOCALE"); + s$18 = Py.newString("MULTILINE"); + s$19 = Py.newString("DOTALL"); + s$20 = Py.newString("VERBOSE"); + s$21 = Py.newString("UNICODE"); + s$22 = Py.newString("error"); + s$23 = Py.newString("re"); + s$24 = Py.newString("/usr/share/jython/Lib/re.py"); + funcTable = new _PyInner(); + c$0_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/re.py", "main", false, false, funcTable, 0, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$0_main == null) _PyInner.initConstants(); + return c$0_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.main$1(frame); + default: + return null; + } + } + + private static PyObject main$1(PyFrame frame) { + frame.setglobal("__file__", s$24); + + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal("__all__", new PyList(new PyObject[] {s$0, s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$20, s$21, s$22})); + frame.setlocal("sre", org.python.core.imp.importOne("sre", frame)); + frame.setlocal("sys", org.python.core.imp.importOne("sys", frame)); + frame.setlocal("module", frame.getname("sys").__getattr__("modules").__getitem__(s$23)); + t$0$int = 0; + t$1$PyObject = frame.getname("__all__"); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal("name", t$0$PyObject); + frame.getname("setattr").__call__(frame.getname("module"), frame.getname("name"), frame.getname("getattr").__call__(frame.getname("sre"), frame.getname("name"))); + } + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("re")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "re"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(re._PyInner.class, newargs, re.jpy$packages, re.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/repr$_PyInner.class b/server/jpywork/repr$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..2bfce4553eec55ec7812db22ca1b9befa357384d GIT binary patch literal 9893 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 GBK"); + s$37 = Py.newString("/usr/share/jython/Lib-cpython/repr.py"); + funcTable = new _PyInner(); + c$0___init__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/repr.py", "__init__", false, false, funcTable, 0, null, null, 0, 1); + c$1_repr = Py.newCode(2, new String[] {"self", "x"}, "/usr/share/jython/Lib-cpython/repr.py", "repr", false, false, funcTable, 1, null, null, 0, 1); + c$2_repr1 = Py.newCode(3, new String[] {"self", "x", "level", "j", "parts", "i", "typename", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr1", false, false, funcTable, 2, null, null, 0, 1); + c$3_repr_tuple = Py.newCode(3, new String[] {"self", "x", "level", "n", "i", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr_tuple", false, false, funcTable, 3, null, null, 0, 1); + c$4_repr_list = Py.newCode(3, new String[] {"self", "x", "level", "n", "i", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr_list", false, false, funcTable, 4, null, null, 0, 1); + c$5_repr_dictionary = Py.newCode(3, new String[] {"self", "x", "level", "n", "i", "key", "keys", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr_dictionary", false, false, funcTable, 5, null, null, 0, 1); + c$6_repr_string = Py.newCode(3, new String[] {"self", "x", "level", "j", "i", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr_string", false, false, funcTable, 6, null, null, 0, 1); + c$7_repr_long_int = Py.newCode(3, new String[] {"self", "x", "level", "j", "i", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr_long_int", false, false, funcTable, 7, null, null, 0, 1); + c$8_repr_instance = Py.newCode(3, new String[] {"self", "x", "level", "j", "i", "s"}, "/usr/share/jython/Lib-cpython/repr.py", "repr_instance", false, false, funcTable, 8, null, null, 0, 1); + c$9_Repr = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/repr.py", "Repr", false, false, funcTable, 9, null, null, 0, 0); + c$10_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/repr.py", "main", false, false, funcTable, 10, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$10_main == null) _PyInner.initConstants(); + return c$10_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.__init__$1(frame); + case 1: + return _PyInner.repr$2(frame); + case 2: + return _PyInner.repr1$3(frame); + case 3: + return _PyInner.repr_tuple$4(frame); + case 4: + return _PyInner.repr_list$5(frame); + case 5: + return _PyInner.repr_dictionary$6(frame); + case 6: + return _PyInner.repr_string$7(frame); + case 7: + return _PyInner.repr_long_int$8(frame); + case 8: + return _PyInner.repr_instance$9(frame); + case 9: + return _PyInner.Repr$10(frame); + case 10: + return _PyInner.main$11(frame); + default: + return null; + } + } + + private static PyObject __init__$1(PyFrame frame) { + frame.getlocal(0).__setattr__("maxlevel", i$3); + frame.getlocal(0).__setattr__("maxtuple", i$3); + frame.getlocal(0).__setattr__("maxlist", i$3); + frame.getlocal(0).__setattr__("maxdict", i$4); + frame.getlocal(0).__setattr__("maxstring", i$5); + frame.getlocal(0).__setattr__("maxlong", i$6); + frame.getlocal(0).__setattr__("maxother", i$7); + return Py.None; + } + + private static PyObject repr$2(PyFrame frame) { + return frame.getlocal(0).invoke("repr1", frame.getlocal(1), frame.getlocal(0).__getattr__("maxlevel")); + } + + private static PyObject repr1$3(PyFrame frame) { + frame.setlocal(6, frame.getglobal("type").__call__(frame.getlocal(1)).__repr__().__getslice__(i$8, i$9.__neg__(), null)); + if (s$10._in(frame.getlocal(6)).__nonzero__()) { + frame.setlocal(4, frame.getlocal(6).invoke("split")); + frame.setlocal(6, s$11.invoke("join", frame.getlocal(4))); + } + if (frame.getglobal("hasattr").__call__(frame.getlocal(0), s$12._add(frame.getlocal(6))).__nonzero__()) { + return frame.getglobal("getattr").__call__(frame.getlocal(0), s$12._add(frame.getlocal(6))).__call__(frame.getlocal(1), frame.getlocal(2)); + } + else { + frame.setlocal(7, frame.getlocal(1).__repr__()); + if (frame.getglobal("len").__call__(frame.getlocal(7))._gt(frame.getlocal(0).__getattr__("maxother")).__nonzero__()) { + frame.setlocal(5, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxother")._sub(i$14)._div(i$9))); + frame.setlocal(3, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxother")._sub(i$14)._sub(frame.getlocal(5)))); + frame.setlocal(7, frame.getlocal(7).__getslice__(null, frame.getlocal(5), null)._add(s$15)._add(frame.getlocal(7).__getslice__(frame.getglobal("len").__call__(frame.getlocal(7))._sub(frame.getlocal(3)), null, null))); + } + return frame.getlocal(7); + } + } + + private static PyObject repr_tuple$4(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(3, frame.getglobal("len").__call__(frame.getlocal(1))); + if (frame.getlocal(3)._eq(i$13).__nonzero__()) { + return s$16; + } + if (frame.getlocal(2)._le(i$13).__nonzero__()) { + return s$17; + } + frame.setlocal(5, s$18); + t$0$int = 0; + t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("min").__call__(frame.getlocal(3), frame.getlocal(0).__getattr__("maxtuple"))); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(4, t$0$PyObject); + if (frame.getlocal(5).__nonzero__()) { + frame.setlocal(5, frame.getlocal(5)._add(s$19)); + } + frame.setlocal(5, frame.getlocal(5)._add(frame.getlocal(0).invoke("repr1", frame.getlocal(1).__getitem__(frame.getlocal(4)), frame.getlocal(2)._sub(i$20)))); + } + if (frame.getlocal(3)._gt(frame.getlocal(0).__getattr__("maxtuple")).__nonzero__()) { + frame.setlocal(5, frame.getlocal(5)._add(s$21)); + } + else if (frame.getlocal(3)._eq(i$20).__nonzero__()) { + frame.setlocal(5, frame.getlocal(5)._add(s$22)); + } + return s$23._add(frame.getlocal(5))._add(s$24); + } + + private static PyObject repr_list$5(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(3, frame.getglobal("len").__call__(frame.getlocal(1))); + if (frame.getlocal(3)._eq(i$13).__nonzero__()) { + return s$25; + } + if (frame.getlocal(2)._le(i$13).__nonzero__()) { + return s$26; + } + frame.setlocal(5, s$18); + t$0$int = 0; + t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("min").__call__(frame.getlocal(3), frame.getlocal(0).__getattr__("maxlist"))); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(4, t$0$PyObject); + if (frame.getlocal(5).__nonzero__()) { + frame.setlocal(5, frame.getlocal(5)._add(s$19)); + } + frame.setlocal(5, frame.getlocal(5)._add(frame.getlocal(0).invoke("repr1", frame.getlocal(1).__getitem__(frame.getlocal(4)), frame.getlocal(2)._sub(i$20)))); + } + if (frame.getlocal(3)._gt(frame.getlocal(0).__getattr__("maxlist")).__nonzero__()) { + frame.setlocal(5, frame.getlocal(5)._add(s$21)); + } + return s$27._add(frame.getlocal(5))._add(s$28); + } + + private static PyObject repr_dictionary$6(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(3, frame.getglobal("len").__call__(frame.getlocal(1))); + if (frame.getlocal(3)._eq(i$13).__nonzero__()) { + return s$29; + } + if (frame.getlocal(2)._le(i$13).__nonzero__()) { + return s$30; + } + frame.setlocal(7, s$18); + frame.setlocal(6, frame.getlocal(1).invoke("keys")); + frame.getlocal(6).invoke("sort"); + t$0$int = 0; + t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("min").__call__(frame.getlocal(3), frame.getlocal(0).__getattr__("maxdict"))); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(4, t$0$PyObject); + if (frame.getlocal(7).__nonzero__()) { + frame.setlocal(7, frame.getlocal(7)._add(s$19)); + } + frame.setlocal(5, frame.getlocal(6).__getitem__(frame.getlocal(4))); + frame.setlocal(7, frame.getlocal(7)._add(frame.getlocal(0).invoke("repr1", frame.getlocal(5), frame.getlocal(2)._sub(i$20)))); + frame.setlocal(7, frame.getlocal(7)._add(s$31)._add(frame.getlocal(0).invoke("repr1", frame.getlocal(1).__getitem__(frame.getlocal(5)), frame.getlocal(2)._sub(i$20)))); + } + if (frame.getlocal(3)._gt(frame.getlocal(0).__getattr__("maxdict")).__nonzero__()) { + frame.setlocal(7, frame.getlocal(7)._add(s$21)); + } + return s$32._add(frame.getlocal(7))._add(s$33); + } + + private static PyObject repr_string$7(PyFrame frame) { + frame.setlocal(5, frame.getlocal(1).__getslice__(null, frame.getlocal(0).__getattr__("maxstring"), null).__repr__()); + if (frame.getglobal("len").__call__(frame.getlocal(5))._gt(frame.getlocal(0).__getattr__("maxstring")).__nonzero__()) { + frame.setlocal(4, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxstring")._sub(i$14)._div(i$9))); + frame.setlocal(3, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxstring")._sub(i$14)._sub(frame.getlocal(4)))); + frame.setlocal(5, frame.getlocal(1).__getslice__(null, frame.getlocal(4), null)._add(frame.getlocal(1).__getslice__(frame.getglobal("len").__call__(frame.getlocal(1))._sub(frame.getlocal(3)), null, null)).__repr__()); + frame.setlocal(5, frame.getlocal(5).__getslice__(null, frame.getlocal(4), null)._add(s$15)._add(frame.getlocal(5).__getslice__(frame.getglobal("len").__call__(frame.getlocal(5))._sub(frame.getlocal(3)), null, null))); + } + return frame.getlocal(5); + } + + private static PyObject repr_long_int$8(PyFrame frame) { + frame.setlocal(5, frame.getlocal(1).__repr__()); + if (frame.getglobal("len").__call__(frame.getlocal(5))._gt(frame.getlocal(0).__getattr__("maxlong")).__nonzero__()) { + frame.setlocal(4, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxlong")._sub(i$14)._div(i$9))); + frame.setlocal(3, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxlong")._sub(i$14)._sub(frame.getlocal(4)))); + frame.setlocal(5, frame.getlocal(5).__getslice__(null, frame.getlocal(4), null)._add(s$15)._add(frame.getlocal(5).__getslice__(frame.getglobal("len").__call__(frame.getlocal(5))._sub(frame.getlocal(3)), null, null))); + } + return frame.getlocal(5); + } + + private static PyObject repr_instance$9(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + + // Code + try { + frame.setlocal(5, frame.getlocal(1).__repr__()); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + return s$34._add(frame.getlocal(1).__getattr__("__class__").__getattr__("__name__"))._add(s$35)._add(frame.getglobal("hex").__call__(frame.getglobal("id").__call__(frame.getlocal(1))).__getslice__(i$9, null, null))._add(s$36); + } + if (frame.getglobal("len").__call__(frame.getlocal(5))._gt(frame.getlocal(0).__getattr__("maxstring")).__nonzero__()) { + frame.setlocal(4, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxstring")._sub(i$14)._div(i$9))); + frame.setlocal(3, frame.getglobal("max").__call__(i$13, frame.getlocal(0).__getattr__("maxstring")._sub(i$14)._sub(frame.getlocal(4)))); + frame.setlocal(5, frame.getlocal(5).__getslice__(null, frame.getlocal(4), null)._add(s$15)._add(frame.getlocal(5).__getslice__(frame.getglobal("len").__call__(frame.getlocal(5))._sub(frame.getlocal(3)), null, null))); + } + return frame.getlocal(5); + } + + private static PyObject Repr$10(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$0___init__)); + frame.setlocal("repr", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_repr)); + frame.setlocal("repr1", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_repr1)); + frame.setlocal("repr_tuple", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_repr_tuple)); + frame.setlocal("repr_list", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_repr_list)); + frame.setlocal("repr_dictionary", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_repr_dictionary)); + frame.setlocal("repr_string", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_repr_string)); + frame.setlocal("repr_long_int", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_repr_long_int)); + frame.setlocal("repr_instance", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_repr_instance)); + return frame.getf_locals(); + } + + private static PyObject main$11(PyFrame frame) { + frame.setglobal("__file__", s$37); + + /* Redo the `...` (representation) but with limits on most sizes. */ + frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2})); + frame.setlocal("Repr", Py.makeClass("Repr", new PyObject[] {}, c$9_Repr, null)); + frame.setlocal("aRepr", frame.getname("Repr").__call__()); + frame.setlocal("repr", frame.getname("aRepr").__getattr__("repr")); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("repr")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "repr"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(repr._PyInner.class, newargs, repr.jpy$packages, repr.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/server$_PyInner.class b/server/jpywork/server$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..fb598633bea63362ebe84547466263edda1cea23 GIT binary patch literal 34592 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 LptY|RhtU54k$9Oo literal 0 HcmV?d00001 diff --git a/server/jpywork/server.class b/server/jpywork/server.class new file mode 100644 index 0000000000000000000000000000000000000000..457a26ab8d24bc78672058a8eb76af6a55263008 GIT binary patch literal 2485 zcma)7X_FIG6g_v+lYYtcOqvIbh^zuK6EK6~K7c5Tj*i3VgTV$R_VhfGhNL^b?f`M$ z_kG_5)bcY>1(X!{(JKFg{uIl4-5DlGw9JQe^?i4H=bn4|_rHF*1fYbUO!N@4kyJ;d zGGP$xL+%lGq~->dkzLb=q!$zTp+;+U-SvY>6*i=beHjtv?;oG@6tVJy$|zyJc5SHe zSgX_5O02GT*sbVL)2q2rw0Z+!UPq2?+BizciB=F-W$b$dw#lpcfgf)nWQK;P2*$Q> zMw+m%=rgU(zzKtmR$L8(Qazk$)?`$gZu+&@4;U5@*2rU?Y{Y&TM0bU%Qfj+;p^~M! zqZ|l>7J89oSVUOa_6pO$QdA9(KHwg4cU;cJu$W-Psws8o5(}mdT}EIUpHd)Wh82Wd z@}_ZRxSmk>M+Xe631;HshYU9m`jeMt?AJ<9`3;?W$O1!_P#E_EInk_7OSRjbu1P|6 zQ-V?+8LYQZL_c95gUxA5`~ zUp~oW5|5a8_{z;`MX{_~5ZFz~xk|Y$FKo03#m*_T`xxsO^Q>uXcuF&K%0do#hAnwG z*l%JVp)l7&ve_0M!{Y?=V5lbCx+JXWEHO))juNRJm?#sL&E=X16Z>{~aA(*IW_BnQ zsytkHCZ?~r`0lC-kLvBPFat@*YX-q#7 z5XEi~M+{F9SlYqZE{10aS$*3uVt7vX5PFBTg1kU5T5hAx@DhP}ZcPR=u3~tFU?|y8 z46kW>*l3lNtT4PmutX9o5^ZOAi_oK6c!!Xy`GNFYuPPbdYYSDwjjIeF5ZInbDlHof z9}x_llHn75*{YK6jIRakGlCJtZp`on!JKsC>eNob@D(AaZ`W{DB=t6ZW8qtTmu^kE zeyVfo>4>|K`u~|a$kHBRm$>066UPZF<|vd@oe1NUK(jhd$cwP4Jh{`?irSYdN=b(i ztVC6kK>Yz@vpR#7AY=d-VEU5*O&zoSWbJ1Tc@X-bf7;JNKL`T=Vi<{aviBkiPKM7D zj=|@PGgxR|VQ_l+HNwgAYsDE{XXn$irP{n)I3`~y96QTb3CCu9jW~m~rvMO!0q~@P zfqCe~dStN+8Ib-!v^!V|0s-hPp2NDiuxw(?Acq@KYP)VlZ(?0h_sa-+La9I%lxwXA~~rz`pWXJaG;Oe_eMPYfob# zuh@%ITzn1UVGT}QV-{+Jo)iw_Q36v_IJU`;CSbLMW9RtO!m;!GS>f1y{CVNn7JpGV zc0YevIQ9U4RXBEmzb+ix<{O1$&*N_j$L9QP;n?%}yTY*-@b`sdFXSHz#~$P#3&*~O ze<~b%5&v8`_O<*=aUNfv0$~|ep@{F>qZvdmV0;H=e2;$PI0lUq_`^7f9-IKsgOm6H MNT{bPW)@tH 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 ykVwR9)c!wdx?#lt literal 0 HcmV?d00001 diff --git a/server/jpywork/socket.class b/server/jpywork/socket.class new file mode 100644 index 0000000000000000000000000000000000000000..7ac76d46c8111e4f655dc52e73b6fd05007f73fa GIT binary patch literal 2485 zcma)7>30)V6#v~$nt4g5&G3MV$f_W1z!b&3YzkDXwNxJz2b3_KK9YfCCcc>fao_iS z-*=CnfpdT(2mI(c{tx=6csy?=r9q;{e8|k)ch}$j-TQw3>z9iFO8Ch{4 zt5erXq^@_=t!PuztGQ9MW+P!ihmRdvI7-NgRuETZ?0W>Z*{k`1A8#cXL&MXA%#LtY zny@d+GmXx`34@JRTn&R#J)CXUWK^1I`nA{(7#0!M$`hV!#C{k=cZRA`YO8volBM~h z90-FJdXZ&VLRj6_3RA;UR1J^c=N@x+UGl}Sl#q#4Q)<&?7EEorg1|IBr9j3Es|dN| zOXJFLEurv_3>elB%tXfz8LlVvCm+q&uazG68`}4f1%@o4FyRMsvRR*zYL7cplZ5Q% z1f@I-Y_L#7KVcw+V5jfJh|sjBd}o(>DMkc7NufQ%xyA_=veg)BgsgId z*|5$K5Hflu85)FKtXxmdxZY6)Md*u^EPG+S;nyTXOvt*iJmJR-#|TEGB*O_pf2tKk zu^Yq@!{Y>&W-z{+;YmVPR~tqQPZKgNw^3(!mcTr>CWBd5F+5MmDA`a9FKT(%XqA<$ zFuY8#M6$_+RL7)ZcvV-?et(_Nqf>a3kgNHD^jxnh8QyL$s)id^8QvwZy^&OUZ7{q~ z$Y}QrAL?SOO1iVYUSJ;+GEwZt44)FrDL1Z8j|qm)2{~O|!&Q;g)AXfsjarVE{mkOd_4?y?}ya@CCxj z@P*7;1oW{D700_eXcoHFl z1?a^FWU(6tNM8``43>jH0D6mOv3}kxn+Of$a05zh)$Qm_q^pX2~kw z3KQ!MzDX2~^_k+ubJ%?fd!65~Y#-lu4i7u0vG->b&g0-#zHA0UGhw&(ZsVN-Wzp)d8#xDF}jG+hL0qDW^_yI_$ Kvjv17k^39+>VFjg literal 0 HcmV?d00001 diff --git a/server/jpywork/socket.java b/server/jpywork/socket.java new file mode 100644 index 00000000..4e66491c --- /dev/null +++ b/server/jpywork/socket.java @@ -0,0 +1,840 @@ +import org.python.core.*; + +public class socket extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject s$1; + private static PyObject s$2; + private static PyObject s$3; + private static PyObject s$4; + private static PyObject s$5; + private static PyObject s$6; + private static PyObject s$7; + private static PyObject s$8; + private static PyObject s$9; + private static PyObject s$10; + private static PyObject s$11; + private static PyObject s$12; + private static PyObject s$13; + private static PyObject i$14; + private static PyObject i$15; + private static PyObject i$16; + private static PyObject i$17; + private static PyObject i$18; + private static PyObject i$19; + private static PyObject s$20; + private static PyObject s$21; + private static PyObject i$22; + private static PyObject s$23; + private static PyObject s$24; + private static PyObject s$25; + private static PyObject i$26; + private static PyObject s$27; + private static PyObject s$28; + private static PyObject s$29; + private static PyObject s$30; + private static PyObject s$31; + private static PyObject i$32; + private static PyObject s$33; + private static PyObject i$34; + private static PyObject s$35; + private static PyObject s$36; + private static PyFunctionTable funcTable; + private static PyCode c$0__gethostbyaddr; + private static PyCode c$1_getfqdn; + private static PyCode c$2_gethostname; + private static PyCode c$3_gethostbyname; + private static PyCode c$4_gethostbyaddr; + private static PyCode c$5_socket; + private static PyCode c$6_bind; + private static PyCode c$7_listen; + private static PyCode c$8_accept; + private static PyCode c$9_connect; + private static PyCode c$10__setup; + private static PyCode c$11_recv; + private static PyCode c$12_send; + private static PyCode c$13_getsockname; + private static PyCode c$14_getpeername; + private static PyCode c$15_setsockopt; + private static PyCode c$16_getsockopt; + private static PyCode c$17_makefile; + private static PyCode c$18___init__; + private static PyCode c$19_close; + private static PyCode c$20_FileWrapper; + private static PyCode c$21_shutdown; + private static PyCode c$22_close; + private static PyCode c$23__tcpsocket; + private static PyCode c$24___init__; + private static PyCode c$25_bind; + private static PyCode c$26_connect; + private static PyCode c$27_sendto; + private static PyCode c$28_send; + private static PyCode c$29_recvfrom; + private static PyCode c$30_recv; + private static PyCode c$31_getsockname; + private static PyCode c$32_getpeername; + private static PyCode c$33___del__; + private static PyCode c$34_close; + private static PyCode c$35__udpsocket; + private static PyCode c$36_test; + private static PyCode c$37_main; + private static void initConstants() { + s$0 = Py.newString("Preliminary socket module.\012\012XXX Restrictions:\012\012- Only INET sockets\012- No asynchronous behavior\012- No socket options\012- Can't do a very good gethostbyaddr() right...\012\012"); + s$1 = Py.newString("AF_INET"); + s$2 = Py.newString("SOCK_DGRAM"); + s$3 = Py.newString("SOCK_RAW"); + s$4 = Py.newString("SOCK_RDM"); + s$5 = Py.newString("SOCK_SEQPACKET"); + s$6 = Py.newString("SOCK_STREAM"); + s$7 = Py.newString("SocketType"); + s$8 = Py.newString("error"); + s$9 = Py.newString("getfqdn"); + s$10 = Py.newString("gethostbyaddr"); + s$11 = Py.newString("gethostbyname"); + s$12 = Py.newString("gethostname"); + s$13 = Py.newString("socket"); + i$14 = Py.newInteger(2); + i$15 = Py.newInteger(1); + i$16 = Py.newInteger(3); + i$17 = Py.newInteger(4); + i$18 = Py.newInteger(5); + i$19 = Py.newInteger(65535); + s$20 = Py.newString("\012 Return a fully qualified domain name for name. If name is omitted or empty\012 it is interpreted as the local host. To find the fully qualified name,\012 the hostname returned by gethostbyaddr() is checked, then aliases for the\012 host, if available. The first name which includes a period is selected.\012 In case no fully qualified domain name is available, the hostname is retur\012 New in version 2.0.\012 "); + s$21 = Py.newString("."); + i$22 = Py.newInteger(0); + s$23 = Py.newString("This signifies a server socket"); + s$24 = Py.newString(""); + s$25 = Py.newString("setReuseAddress"); + i$26 = Py.newInteger(50); + s$27 = Py.newString("This signifies a client socket"); + s$28 = Py.newString("b"); + s$29 = Py.newString(""); + s$30 = Py.newString("both istream and ostream have been shut down"); + s$31 = Py.newString("r"); + i$32 = Py.newInteger(80); + s$33 = Py.newString("GET / HTTP/1.0\015\012\015\012"); + i$34 = Py.newInteger(2000); + s$35 = Py.newString("__main__"); + s$36 = Py.newString("/usr/share/jython/Lib/socket.py"); + funcTable = new _PyInner(); + c$0__gethostbyaddr = Py.newCode(1, new String[] {"name", "addrs", "names", "addresses", "addr"}, "/usr/share/jython/Lib/socket.py", "_gethostbyaddr", false, false, funcTable, 0, null, null, 0, 1); + c$1_getfqdn = Py.newCode(1, new String[] {"name", "a", "addrs", "names"}, "/usr/share/jython/Lib/socket.py", "getfqdn", false, false, funcTable, 1, null, null, 0, 1); + c$2_gethostname = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/socket.py", "gethostname", false, false, funcTable, 2, null, null, 0, 1); + c$3_gethostbyname = Py.newCode(1, new String[] {"name"}, "/usr/share/jython/Lib/socket.py", "gethostbyname", false, false, funcTable, 3, null, null, 0, 1); + c$4_gethostbyaddr = Py.newCode(1, new String[] {"name", "addrs", "names"}, "/usr/share/jython/Lib/socket.py", "gethostbyaddr", false, false, funcTable, 4, null, null, 0, 1); + c$5_socket = Py.newCode(3, new String[] {"family", "type", "flags"}, "/usr/share/jython/Lib/socket.py", "socket", false, false, funcTable, 5, null, null, 0, 1); + c$6_bind = Py.newCode(3, new String[] {"self", "addr", "port", "host"}, "/usr/share/jython/Lib/socket.py", "bind", false, false, funcTable, 6, null, null, 0, 1); + c$7_listen = Py.newCode(2, new String[] {"self", "backlog", "a", "port", "host"}, "/usr/share/jython/Lib/socket.py", "listen", false, false, funcTable, 7, null, null, 0, 1); + c$8_accept = Py.newCode(1, new String[] {"self", "port", "sock", "conn", "host"}, "/usr/share/jython/Lib/socket.py", "accept", false, false, funcTable, 8, null, null, 0, 1); + c$9_connect = Py.newCode(3, new String[] {"self", "addr", "port", "host"}, "/usr/share/jython/Lib/socket.py", "connect", false, false, funcTable, 9, null, null, 0, 1); + c$10__setup = Py.newCode(2, new String[] {"self", "sock"}, "/usr/share/jython/Lib/socket.py", "_setup", false, false, funcTable, 10, null, null, 0, 1); + c$11_recv = Py.newCode(2, new String[] {"self", "n", "m", "data"}, "/usr/share/jython/Lib/socket.py", "recv", false, false, funcTable, 11, null, null, 0, 1); + c$12_send = Py.newCode(2, new String[] {"self", "s", "n"}, "/usr/share/jython/Lib/socket.py", "send", false, false, funcTable, 12, null, null, 0, 1); + c$13_getsockname = Py.newCode(1, new String[] {"self", "port", "host"}, "/usr/share/jython/Lib/socket.py", "getsockname", false, false, funcTable, 13, null, null, 0, 1); + c$14_getpeername = Py.newCode(1, new String[] {"self", "port", "host"}, "/usr/share/jython/Lib/socket.py", "getpeername", false, false, funcTable, 14, null, null, 0, 1); + c$15_setsockopt = Py.newCode(4, new String[] {"self", "level", "optname", "value"}, "/usr/share/jython/Lib/socket.py", "setsockopt", false, false, funcTable, 15, null, null, 0, 1); + c$16_getsockopt = Py.newCode(3, new String[] {"self", "level", "optname"}, "/usr/share/jython/Lib/socket.py", "getsockopt", false, false, funcTable, 16, null, null, 0, 1); + c$17_makefile = Py.newCode(3, new String[] {"self", "mode", "bufsize", "file"}, "/usr/share/jython/Lib/socket.py", "makefile", false, false, funcTable, 17, null, null, 0, 1); + c$18___init__ = Py.newCode(3, new String[] {"self", "socket", "file"}, "/usr/share/jython/Lib/socket.py", "__init__", false, false, funcTable, 18, null, null, 0, 1); + c$19_close = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/socket.py", "close", false, false, funcTable, 19, null, null, 0, 1); + c$20_FileWrapper = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/socket.py", "FileWrapper", false, false, funcTable, 20, null, null, 0, 0); + c$21_shutdown = Py.newCode(2, new String[] {"self", "how"}, "/usr/share/jython/Lib/socket.py", "shutdown", false, false, funcTable, 21, null, null, 0, 1); + c$22_close = Py.newCode(1, new String[] {"self", "ostream", "sock", "istream"}, "/usr/share/jython/Lib/socket.py", "close", false, false, funcTable, 22, null, null, 0, 1); + c$23__tcpsocket = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/socket.py", "_tcpsocket", false, false, funcTable, 23, null, null, 0, 0); + c$24___init__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/socket.py", "__init__", false, false, funcTable, 24, null, null, 0, 1); + c$25_bind = Py.newCode(3, new String[] {"self", "addr", "port", "a", "host"}, "/usr/share/jython/Lib/socket.py", "bind", false, false, funcTable, 25, null, null, 0, 1); + c$26_connect = Py.newCode(3, new String[] {"self", "addr", "port", "host"}, "/usr/share/jython/Lib/socket.py", "connect", false, false, funcTable, 26, null, null, 0, 1); + c$27_sendto = Py.newCode(3, new String[] {"self", "data", "addr", "packet", "n", "port", "a", "host", "bytes"}, "/usr/share/jython/Lib/socket.py", "sendto", false, false, funcTable, 27, null, null, 0, 1); + c$28_send = Py.newCode(2, new String[] {"self", "data"}, "/usr/share/jython/Lib/socket.py", "send", false, false, funcTable, 28, null, null, 0, 1); + c$29_recvfrom = Py.newCode(2, new String[] {"self", "n", "packet", "port", "m", "host", "bytes"}, "/usr/share/jython/Lib/socket.py", "recvfrom", false, false, funcTable, 29, null, null, 0, 1); + c$30_recv = Py.newCode(2, new String[] {"self", "n", "m", "bytes", "packet"}, "/usr/share/jython/Lib/socket.py", "recv", false, false, funcTable, 30, null, null, 0, 1); + c$31_getsockname = Py.newCode(1, new String[] {"self", "port", "host"}, "/usr/share/jython/Lib/socket.py", "getsockname", false, false, funcTable, 31, null, null, 0, 1); + c$32_getpeername = Py.newCode(1, new String[] {"self", "port", "host"}, "/usr/share/jython/Lib/socket.py", "getpeername", false, false, funcTable, 32, null, null, 0, 1); + c$33___del__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib/socket.py", "__del__", false, false, funcTable, 33, null, null, 0, 1); + c$34_close = Py.newCode(1, new String[] {"self", "sock"}, "/usr/share/jython/Lib/socket.py", "close", false, false, funcTable, 34, null, null, 0, 1); + c$35__udpsocket = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/socket.py", "_udpsocket", false, false, funcTable, 35, null, null, 0, 0); + c$36_test = Py.newCode(0, new String[] {"s", "data"}, "/usr/share/jython/Lib/socket.py", "test", false, false, funcTable, 36, null, null, 0, 1); + c$37_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/socket.py", "main", false, false, funcTable, 37, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$37_main == null) _PyInner.initConstants(); + return c$37_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner._gethostbyaddr$1(frame); + case 1: + return _PyInner.getfqdn$2(frame); + case 2: + return _PyInner.gethostname$3(frame); + case 3: + return _PyInner.gethostbyname$4(frame); + case 4: + return _PyInner.gethostbyaddr$5(frame); + case 5: + return _PyInner.socket$6(frame); + case 6: + return _PyInner.bind$7(frame); + case 7: + return _PyInner.listen$8(frame); + case 8: + return _PyInner.accept$9(frame); + case 9: + return _PyInner.connect$10(frame); + case 10: + return _PyInner._setup$11(frame); + case 11: + return _PyInner.recv$12(frame); + case 12: + return _PyInner.send$13(frame); + case 13: + return _PyInner.getsockname$14(frame); + case 14: + return _PyInner.getpeername$15(frame); + case 15: + return _PyInner.setsockopt$16(frame); + case 16: + return _PyInner.getsockopt$17(frame); + case 17: + return _PyInner.makefile$18(frame); + case 18: + return _PyInner.__init__$19(frame); + case 19: + return _PyInner.close$20(frame); + case 20: + return _PyInner.FileWrapper$21(frame); + case 21: + return _PyInner.shutdown$22(frame); + case 22: + return _PyInner.close$23(frame); + case 23: + return _PyInner._tcpsocket$24(frame); + case 24: + return _PyInner.__init__$25(frame); + case 25: + return _PyInner.bind$26(frame); + case 26: + return _PyInner.connect$27(frame); + case 27: + return _PyInner.sendto$28(frame); + case 28: + return _PyInner.send$29(frame); + case 29: + return _PyInner.recvfrom$30(frame); + case 30: + return _PyInner.recv$31(frame); + case 31: + return _PyInner.getsockname$32(frame); + case 32: + return _PyInner.getpeername$33(frame); + case 33: + return _PyInner.__del__$34(frame); + case 34: + return _PyInner.close$35(frame); + case 35: + return _PyInner._udpsocket$36(frame); + case 36: + return _PyInner.test$37(frame); + case 37: + return _PyInner.main$38(frame); + default: + return null; + } + } + + private static PyObject _gethostbyaddr$1(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(3, frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getAllByName").__call__(frame.getglobal("gethostbyname").__call__(frame.getlocal(0)))); + frame.setlocal(2, new PyList(new PyObject[] {})); + frame.setlocal(1, new PyList(new PyObject[] {})); + t$0$int = 0; + t$1$PyObject = frame.getlocal(3); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(4, t$0$PyObject); + frame.getlocal(2).invoke("append", frame.getlocal(4).invoke("getHostName")); + frame.getlocal(1).invoke("append", frame.getlocal(4).invoke("getHostAddress")); + } + return new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(1)}); + } + + private static PyObject getfqdn$2(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* + Return a fully qualified domain name for name. If name is omitted or empty + it is interpreted as the local host. To find the fully qualified name, + the hostname returned by gethostbyaddr() is checked, then aliases for the + host, if available. The first name which includes a period is selected. + In case no fully qualified domain name is available, the hostname is retur + New in version 2.0. + */ + if (frame.getlocal(0).__not__().__nonzero__()) { + frame.setlocal(0, frame.getglobal("gethostname").__call__()); + } + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("_gethostbyaddr").__call__(frame.getlocal(0)), 2); + frame.setlocal(3, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + t$0$int = 0; + t$1$PyObject = frame.getlocal(3); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(1, t$0$PyObject); + if (frame.getlocal(1).invoke("find", s$21)._ge(i$22).__nonzero__()) { + return frame.getlocal(1); + } + } + return frame.getlocal(0); + } + + private static PyObject gethostname$3(PyFrame frame) { + return frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getLocalHost").__call__().invoke("getHostName"); + } + + private static PyObject gethostbyname$4(PyFrame frame) { + return frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getByName").__call__(frame.getlocal(0)).invoke("getHostAddress"); + } + + private static PyObject gethostbyaddr$5(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("_gethostbyaddr").__call__(frame.getlocal(0)), 2); + frame.setlocal(2, t$0$PyObject__[0]); + frame.setlocal(1, t$0$PyObject__[1]); + return new PyTuple(new PyObject[] {frame.getlocal(2).__getitem__(i$22), frame.getlocal(2), frame.getlocal(1)}); + } + + private static PyObject socket$6(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0)._eq(frame.getglobal("AF_INET"))); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(1)._in(new PyTuple(new PyObject[] {frame.getglobal("SOCK_DGRAM"), frame.getglobal("SOCK_STREAM")}))); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(2)._eq(i$22)); + if (frame.getlocal(1)._eq(frame.getglobal("SOCK_STREAM")).__nonzero__()) { + return frame.getglobal("_tcpsocket").__call__(); + } + else { + return frame.getglobal("_udpsocket").__call__(); + } + } + + private static PyObject bind$7(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + if (frame.getlocal(2)._isnot(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(1, new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(2)})); + } + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock").__not__()); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("addr").__not__()); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2); + frame.setlocal(3, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + frame.getlocal(0).__setattr__("addr", frame.getlocal(1)); + return Py.None; + } + + private static PyObject listen$8(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + /* This signifies a server socket */ + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock").__not__()); + frame.getlocal(0).__setattr__("server", i$15); + if (frame.getlocal(0).__getattr__("addr").__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getattr__("addr"), 2); + frame.setlocal(4, t$0$PyObject__[0]); + frame.setlocal(3, t$0$PyObject__[1]); + } + else { + t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {s$24, i$22}), 2); + frame.setlocal(4, t$0$PyObject__[0]); + frame.setlocal(3, t$0$PyObject__[1]); + } + if (frame.getlocal(4).__nonzero__()) { + frame.setlocal(2, frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getByName").__call__(frame.getlocal(4))); + frame.getlocal(0).__setattr__("sock", frame.getglobal("java").__getattr__("net").__getattr__("ServerSocket").__call__(frame.getlocal(3), frame.getlocal(1), frame.getlocal(2))); + } + else { + frame.getlocal(0).__setattr__("sock", frame.getglobal("java").__getattr__("net").__getattr__("ServerSocket").__call__(frame.getlocal(3), frame.getlocal(1))); + } + if (frame.getglobal("hasattr").__call__(frame.getlocal(0).__getattr__("sock"), s$25).__nonzero__()) { + frame.getlocal(0).__getattr__("sock").invoke("setReuseAddress", frame.getlocal(0).__getattr__("reuse_addr")); + } + return Py.None; + } + + private static PyObject accept$9(PyFrame frame) { + /* This signifies a server socket */ + if (frame.getlocal(0).__getattr__("sock").__not__().__nonzero__()) { + frame.getlocal(0).invoke("listen"); + } + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("server")); + frame.setlocal(2, frame.getlocal(0).__getattr__("sock").invoke("accept")); + frame.setlocal(4, frame.getlocal(2).invoke("getInetAddress").invoke("getHostName")); + frame.setlocal(1, frame.getlocal(2).invoke("getPort")); + frame.setlocal(3, frame.getglobal("_tcpsocket").__call__()); + frame.getlocal(3).invoke("_setup", frame.getlocal(2)); + return new PyTuple(new PyObject[] {frame.getlocal(3), new PyTuple(new PyObject[] {frame.getlocal(4), frame.getlocal(1)})}); + } + + private static PyObject connect$10(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + /* This signifies a client socket */ + if (frame.getlocal(2)._isnot(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(1, new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(2)})); + } + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock").__not__()); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2); + frame.setlocal(3, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + if (frame.getlocal(3)._eq(s$24).__nonzero__()) { + frame.setlocal(3, frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getLocalHost").__call__()); + } + frame.getlocal(0).invoke("_setup", frame.getglobal("java").__getattr__("net").__getattr__("Socket").__call__(frame.getlocal(3), frame.getlocal(2))); + return Py.None; + } + + private static PyObject _setup$11(PyFrame frame) { + frame.getlocal(0).__setattr__("sock", frame.getlocal(1)); + if (frame.getglobal("hasattr").__call__(frame.getlocal(0).__getattr__("sock"), s$25).__nonzero__()) { + frame.getlocal(0).__getattr__("sock").invoke("setReuseAddress", frame.getlocal(0).__getattr__("reuse_addr")); + } + frame.getlocal(0).__setattr__("istream", frame.getlocal(1).invoke("getInputStream")); + frame.getlocal(0).__setattr__("ostream", frame.getlocal(1).invoke("getOutputStream")); + return Py.None; + } + + private static PyObject recv$12(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock")); + frame.setlocal(3, frame.getglobal("jarray").__getattr__("zeros").__call__(frame.getlocal(1), s$28)); + frame.setlocal(2, frame.getlocal(0).__getattr__("istream").invoke("read", frame.getlocal(3))); + if (frame.getlocal(2)._le(i$22).__nonzero__()) { + return s$24; + } + if (frame.getlocal(2)._lt(frame.getlocal(1)).__nonzero__()) { + frame.setlocal(3, frame.getlocal(3).__getslice__(null, frame.getlocal(2), null)); + } + return frame.getlocal(3).invoke("tostring"); + } + + private static PyObject send$13(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock")); + frame.setlocal(2, frame.getglobal("len").__call__(frame.getlocal(1))); + frame.getlocal(0).__getattr__("ostream").invoke("write", frame.getlocal(1)); + return frame.getlocal(2); + } + + private static PyObject getsockname$14(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject; + + // Code + if (frame.getlocal(0).__getattr__("sock").__not__().__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence((t$0$PyObject = frame.getlocal(0).__getattr__("addr")).__nonzero__() ? t$0$PyObject : new PyTuple(new PyObject[] {s$24, i$22}), 2); + frame.setlocal(2, t$0$PyObject__[0]); + frame.setlocal(1, t$0$PyObject__[1]); + frame.setlocal(2, frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getByName").__call__(frame.getlocal(2)).invoke("getHostAddress")); + } + else { + if (frame.getlocal(0).__getattr__("server").__nonzero__()) { + frame.setlocal(2, frame.getlocal(0).__getattr__("sock").invoke("getInetAddress").invoke("getHostAddress")); + } + else { + frame.setlocal(2, frame.getlocal(0).__getattr__("sock").invoke("getLocalAddress").invoke("getHostAddress")); + } + frame.setlocal(1, frame.getlocal(0).__getattr__("sock").invoke("getLocalPort")); + } + return new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(1)}); + } + + private static PyObject getpeername$15(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock")); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("server").__not__()); + frame.setlocal(2, frame.getlocal(0).__getattr__("sock").invoke("getInetAddress").invoke("getHostAddress")); + frame.setlocal(1, frame.getlocal(0).__getattr__("sock").invoke("getPort")); + return new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(1)}); + } + + private static PyObject setsockopt$16(PyFrame frame) { + if (frame.getlocal(2)._eq(frame.getglobal("SO_REUSEADDR")).__nonzero__()) { + frame.getlocal(0).__setattr__("reuse_addr", frame.getlocal(3)); + } + return Py.None; + } + + private static PyObject getsockopt$17(PyFrame frame) { + if (frame.getlocal(2)._eq(frame.getglobal("SO_REUSEADDR")).__nonzero__()) { + return frame.getlocal(0).__getattr__("reuse_addr"); + } + return Py.None; + } + + private static PyObject makefile$18(PyFrame frame) { + frame.setlocal(3, frame.getglobal("None")); + if (frame.getlocal(0).__getattr__("istream").__nonzero__()) { + if (frame.getlocal(0).__getattr__("ostream").__nonzero__()) { + frame.setlocal(3, frame.getglobal("org").__getattr__("python").__getattr__("core").__getattr__("PyFile").__call__(new PyObject[] {frame.getlocal(0).__getattr__("istream"), frame.getlocal(0).__getattr__("ostream"), s$29, frame.getlocal(1)})); + } + else { + frame.setlocal(3, frame.getglobal("org").__getattr__("python").__getattr__("core").__getattr__("PyFile").__call__(frame.getlocal(0).__getattr__("istream"), s$29, frame.getlocal(1))); + } + } + else if (frame.getlocal(0).__getattr__("ostream").__nonzero__()) { + frame.setlocal(3, frame.getglobal("org").__getattr__("python").__getattr__("core").__getattr__("PyFile").__call__(frame.getlocal(0).__getattr__("ostream"), s$29, frame.getlocal(1))); + } + else { + throw Py.makeException(frame.getglobal("IOError"), s$30); + } + if (frame.getlocal(3).__nonzero__()) { + return frame.getglobal("_tcpsocket").invoke("FileWrapper", frame.getlocal(0), frame.getlocal(3)); + } + return Py.None; + } + + private static PyObject __init__$19(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject; + + // Code + frame.getlocal(0).__setattr__("socket", frame.getlocal(1)); + frame.getlocal(0).__setattr__("sock", frame.getlocal(1).__getattr__("sock")); + frame.getlocal(0).__setattr__("istream", frame.getlocal(1).__getattr__("istream")); + frame.getlocal(0).__setattr__("ostream", frame.getlocal(1).__getattr__("ostream")); + frame.getlocal(0).__setattr__("file", frame.getlocal(2)); + frame.getlocal(0).__setattr__("read", frame.getlocal(2).__getattr__("read")); + frame.getlocal(0).__setattr__("readline", frame.getlocal(2).__getattr__("readline")); + frame.getlocal(0).__setattr__("readlines", frame.getlocal(2).__getattr__("readlines")); + frame.getlocal(0).__setattr__("write", frame.getlocal(2).__getattr__("write")); + frame.getlocal(0).__setattr__("writelines", frame.getlocal(2).__getattr__("writelines")); + frame.getlocal(0).__setattr__("flush", frame.getlocal(2).__getattr__("flush")); + frame.getlocal(0).__setattr__("seek", frame.getlocal(2).__getattr__("seek")); + frame.getlocal(0).__setattr__("tell", frame.getlocal(2).__getattr__("tell")); + t$0$PyObject = i$15; + t$1$PyObject = frame.getlocal(0); + t$2$PyObject = t$1$PyObject.__getattr__("socket"); + t$2$PyObject.__setattr__("file_count", t$2$PyObject.__getattr__("file_count").__iadd__(t$0$PyObject)); + return Py.None; + } + + private static PyObject close$20(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject; + + // Code + if (frame.getlocal(0).__getattr__("file").__getattr__("closed").__nonzero__()) { + return Py.None; + } + t$0$PyObject = i$15; + t$1$PyObject = frame.getlocal(0); + t$2$PyObject = t$1$PyObject.__getattr__("socket"); + t$2$PyObject.__setattr__("file_count", t$2$PyObject.__getattr__("file_count").__isub__(t$0$PyObject)); + frame.getlocal(0).__getattr__("file").invoke("close"); + if (((t$0$PyObject = frame.getlocal(0).__getattr__("socket").__getattr__("file_count")._eq(i$22)).__nonzero__() ? frame.getlocal(0).__getattr__("socket").__getattr__("sock")._eq(i$22) : t$0$PyObject).__nonzero__()) { + if (frame.getlocal(0).__getattr__("sock").__nonzero__()) { + frame.getlocal(0).__getattr__("sock").invoke("close"); + } + if (frame.getlocal(0).__getattr__("istream").__nonzero__()) { + frame.getlocal(0).__getattr__("istream").invoke("close"); + } + if (frame.getlocal(0).__getattr__("ostream").__nonzero__()) { + frame.getlocal(0).__getattr__("ostream").invoke("close"); + } + } + return Py.None; + } + + private static PyObject FileWrapper$21(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$18___init__)); + frame.setlocal("close", new PyFunction(frame.f_globals, new PyObject[] {}, c$19_close)); + return frame.getf_locals(); + } + + private static PyObject shutdown$22(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(1)._in(new PyTuple(new PyObject[] {i$22, i$15, i$14}))); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock")); + if (frame.getlocal(1)._in(new PyTuple(new PyObject[] {i$22, i$14})).__nonzero__()) { + frame.getlocal(0).__setattr__("istream", frame.getglobal("None")); + } + if (frame.getlocal(1)._in(new PyTuple(new PyObject[] {i$15, i$14})).__nonzero__()) { + frame.getlocal(0).__setattr__("ostream", frame.getglobal("None")); + } + return Py.None; + } + + private static PyObject close$23(PyFrame frame) { + frame.setlocal(2, frame.getlocal(0).__getattr__("sock")); + frame.setlocal(3, frame.getlocal(0).__getattr__("istream")); + frame.setlocal(1, frame.getlocal(0).__getattr__("ostream")); + frame.getlocal(0).__setattr__("sock", i$22); + frame.getlocal(0).__setattr__("istream", i$22); + frame.getlocal(0).__setattr__("ostream", i$22); + if (frame.getlocal(0).__getattr__("file_count")._eq(i$22).__nonzero__()) { + if (frame.getlocal(3).__nonzero__()) { + frame.getlocal(3).invoke("close"); + } + if (frame.getlocal(1).__nonzero__()) { + frame.getlocal(1).invoke("close"); + } + if (frame.getlocal(2).__nonzero__()) { + frame.getlocal(2).invoke("close"); + } + } + return Py.None; + } + + private static PyObject _tcpsocket$24(PyFrame frame) { + frame.setlocal("sock", frame.getname("None")); + frame.setlocal("istream", frame.getname("None")); + frame.setlocal("ostream", frame.getname("None")); + frame.setlocal("addr", frame.getname("None")); + frame.setlocal("server", i$22); + frame.setlocal("file_count", i$22); + frame.setlocal("reuse_addr", i$22); + frame.setlocal("bind", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$6_bind)); + frame.setlocal("listen", new PyFunction(frame.f_globals, new PyObject[] {i$26}, c$7_listen)); + frame.setlocal("accept", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_accept)); + frame.setlocal("connect", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$9_connect)); + frame.setlocal("_setup", new PyFunction(frame.f_globals, new PyObject[] {}, c$10__setup)); + frame.setlocal("recv", new PyFunction(frame.f_globals, new PyObject[] {}, c$11_recv)); + frame.setlocal("send", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_send)); + frame.setlocal("getsockname", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_getsockname)); + frame.setlocal("getpeername", new PyFunction(frame.f_globals, new PyObject[] {}, c$14_getpeername)); + frame.setlocal("setsockopt", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_setsockopt)); + frame.setlocal("getsockopt", new PyFunction(frame.f_globals, new PyObject[] {}, c$16_getsockopt)); + frame.setlocal("makefile", new PyFunction(frame.f_globals, new PyObject[] {s$31, i$15.__neg__()}, c$17_makefile)); + frame.setlocal("FileWrapper", Py.makeClass("FileWrapper", new PyObject[] {}, c$20_FileWrapper, null)); + frame.setlocal("shutdown", new PyFunction(frame.f_globals, new PyObject[] {}, c$21_shutdown)); + frame.setlocal("close", new PyFunction(frame.f_globals, new PyObject[] {}, c$22_close)); + return frame.getf_locals(); + } + + private static PyObject __init__$25(PyFrame frame) { + frame.getlocal(0).__setattr__("sock", frame.getglobal("None")); + frame.getlocal(0).__setattr__("addr", frame.getglobal("None")); + return Py.None; + } + + private static PyObject bind$26(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + if (frame.getlocal(2)._isnot(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(1, new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(2)})); + } + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock").__not__()); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2); + frame.setlocal(4, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + if (frame.getlocal(4)._eq(s$24).__nonzero__()) { + frame.getlocal(0).__setattr__("sock", frame.getglobal("java").__getattr__("net").__getattr__("DatagramSocket").__call__(frame.getlocal(2))); + } + else { + frame.setlocal(3, frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getByName").__call__(frame.getlocal(4))); + frame.getlocal(0).__setattr__("sock", frame.getglobal("java").__getattr__("net").__getattr__("DatagramSocket").__call__(frame.getlocal(2), frame.getlocal(3))); + } + return Py.None; + } + + private static PyObject connect$27(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + if (frame.getlocal(2)._isnot(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(1, new PyTuple(new PyObject[] {frame.getlocal(1), frame.getlocal(2)})); + } + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2); + frame.setlocal(3, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("addr").__not__()); + if (frame.getlocal(0).__getattr__("sock").__not__().__nonzero__()) { + frame.getlocal(0).__setattr__("sock", frame.getglobal("java").__getattr__("net").__getattr__("DatagramSocket").__call__()); + } + frame.getlocal(0).__setattr__("addr", frame.getlocal(1)); + return Py.None; + } + + private static PyObject sendto$28(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + frame.setlocal(4, frame.getglobal("len").__call__(frame.getlocal(1))); + if (frame.getlocal(0).__getattr__("sock").__not__().__nonzero__()) { + frame.getlocal(0).__setattr__("sock", frame.getglobal("java").__getattr__("net").__getattr__("DatagramSocket").__call__()); + } + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(2), 2); + frame.setlocal(7, t$0$PyObject__[0]); + frame.setlocal(5, t$0$PyObject__[1]); + frame.setlocal(8, frame.getglobal("jarray").__getattr__("array").__call__(frame.getglobal("map").__call__(frame.getglobal("ord"), frame.getlocal(1)), s$28)); + frame.setlocal(6, frame.getglobal("java").__getattr__("net").__getattr__("InetAddress").__getattr__("getByName").__call__(frame.getlocal(7))); + frame.setlocal(3, frame.getglobal("java").__getattr__("net").__getattr__("DatagramPacket").__call__(new PyObject[] {frame.getlocal(8), frame.getlocal(4), frame.getlocal(6), frame.getlocal(5)})); + frame.getlocal(0).__getattr__("sock").invoke("send", frame.getlocal(3)); + return frame.getlocal(4); + } + + private static PyObject send$29(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("addr")); + return frame.getlocal(0).invoke("sendto", frame.getlocal(0).__getattr__("addr")); + } + + private static PyObject recvfrom$30(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock")); + frame.setlocal(6, frame.getglobal("jarray").__getattr__("zeros").__call__(frame.getlocal(1), s$28)); + frame.setlocal(2, frame.getglobal("java").__getattr__("net").__getattr__("DatagramPacket").__call__(frame.getlocal(6), frame.getlocal(1))); + frame.getlocal(0).__getattr__("sock").invoke("receive", frame.getlocal(2)); + frame.setlocal(5, frame.getlocal(2).invoke("getAddress").invoke("getHostName")); + frame.setlocal(3, frame.getlocal(2).invoke("getPort")); + frame.setlocal(4, frame.getlocal(2).invoke("getLength")); + if (frame.getlocal(4)._lt(frame.getlocal(1)).__nonzero__()) { + frame.setlocal(6, frame.getlocal(6).__getslice__(null, frame.getlocal(4), null)); + } + return new PyTuple(new PyObject[] {frame.getlocal(6).invoke("tostring"), new PyTuple(new PyObject[] {frame.getlocal(5), frame.getlocal(3)})}); + } + + private static PyObject recv$31(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock")); + frame.setlocal(3, frame.getglobal("jarray").__getattr__("zeros").__call__(frame.getlocal(1), s$28)); + frame.setlocal(4, frame.getglobal("java").__getattr__("net").__getattr__("DatagramPacket").__call__(frame.getlocal(3), frame.getlocal(1))); + frame.getlocal(0).__getattr__("sock").invoke("receive", frame.getlocal(4)); + frame.setlocal(2, frame.getlocal(4).invoke("getLength")); + if (frame.getlocal(2)._lt(frame.getlocal(1)).__nonzero__()) { + frame.setlocal(3, frame.getlocal(3).__getslice__(null, frame.getlocal(2), null)); + } + return frame.getlocal(3).invoke("tostring"); + } + + private static PyObject getsockname$32(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock")); + frame.setlocal(2, frame.getlocal(0).__getattr__("sock").invoke("getLocalAddress").invoke("getHostName")); + frame.setlocal(1, frame.getlocal(0).__getattr__("sock").invoke("getLocalPort")); + return new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(1)}); + } + + private static PyObject getpeername$33(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("sock")); + frame.setlocal(2, frame.getlocal(0).__getattr__("sock").invoke("getInetAddress").invoke("getHostName")); + frame.setlocal(1, frame.getlocal(0).__getattr__("sock").invoke("getPort")); + return new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(1)}); + } + + private static PyObject __del__$34(PyFrame frame) { + frame.getlocal(0).invoke("close"); + return Py.None; + } + + private static PyObject close$35(PyFrame frame) { + frame.setlocal(1, frame.getlocal(0).__getattr__("sock")); + frame.getlocal(0).__setattr__("sock", i$22); + frame.getlocal(1).invoke("close"); + return Py.None; + } + + private static PyObject _udpsocket$36(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$24___init__)); + frame.setlocal("bind", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$25_bind)); + frame.setlocal("connect", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$26_connect)); + frame.setlocal("sendto", new PyFunction(frame.f_globals, new PyObject[] {}, c$27_sendto)); + frame.setlocal("send", new PyFunction(frame.f_globals, new PyObject[] {}, c$28_send)); + frame.setlocal("recvfrom", new PyFunction(frame.f_globals, new PyObject[] {}, c$29_recvfrom)); + frame.setlocal("recv", new PyFunction(frame.f_globals, new PyObject[] {}, c$30_recv)); + frame.setlocal("getsockname", new PyFunction(frame.f_globals, new PyObject[] {}, c$31_getsockname)); + frame.setlocal("getpeername", new PyFunction(frame.f_globals, new PyObject[] {}, c$32_getpeername)); + frame.setlocal("__del__", new PyFunction(frame.f_globals, new PyObject[] {}, c$33___del__)); + frame.setlocal("close", new PyFunction(frame.f_globals, new PyObject[] {}, c$34_close)); + return frame.getf_locals(); + } + + private static PyObject test$37(PyFrame frame) { + frame.setlocal(0, frame.getglobal("socket").__call__(frame.getglobal("AF_INET"), frame.getglobal("SOCK_STREAM"))); + frame.getlocal(0).invoke("connect", new PyTuple(new PyObject[] {s$24, i$32})); + frame.getlocal(0).invoke("send", s$33); + while (i$15.__nonzero__()) { + frame.setlocal(1, frame.getlocal(0).invoke("recv", i$34)); + Py.println(frame.getlocal(1)); + if (frame.getlocal(1).__not__().__nonzero__()) { + break; + } + } + return Py.None; + } + + private static PyObject main$38(PyFrame frame) { + frame.setglobal("__file__", s$36); + + /* Preliminary socket module. + + XXX Restrictions: + + - Only INET sockets + - No asynchronous behavior + - No socket options + - Can't do a very good gethostbyaddr() right... + + */ + frame.setlocal("java", org.python.core.imp.importOne("java.net", frame)); + frame.setlocal("org", org.python.core.imp.importOne("org.python.core", frame)); + frame.setlocal("jarray", org.python.core.imp.importOne("jarray", frame)); + frame.setlocal("string", org.python.core.imp.importOne("string", frame)); + frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12, s$13})); + frame.setlocal("error", frame.getname("IOError")); + frame.setlocal("AF_INET", i$14); + frame.setlocal("SOCK_DGRAM", i$15); + frame.setlocal("SOCK_STREAM", i$14); + frame.setlocal("SOCK_RAW", i$16); + frame.setlocal("SOCK_RDM", i$17); + frame.setlocal("SOCK_SEQPACKET", i$18); + frame.setlocal("SOL_SOCKET", i$19); + frame.setlocal("SO_REUSEADDR", i$17); + frame.setlocal("_gethostbyaddr", new PyFunction(frame.f_globals, new PyObject[] {}, c$0__gethostbyaddr)); + frame.setlocal("getfqdn", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$1_getfqdn)); + frame.setlocal("gethostname", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_gethostname)); + frame.setlocal("gethostbyname", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_gethostbyname)); + frame.setlocal("gethostbyaddr", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_gethostbyaddr)); + frame.setlocal("socket", new PyFunction(frame.f_globals, new PyObject[] {i$22}, c$5_socket)); + frame.setlocal("_tcpsocket", Py.makeClass("_tcpsocket", new PyObject[] {}, c$23__tcpsocket, null)); + frame.setlocal("_udpsocket", Py.makeClass("_udpsocket", new PyObject[] {}, c$35__udpsocket, null)); + frame.setlocal("SocketType", frame.getname("_tcpsocket")); + frame.setlocal("test", new PyFunction(frame.f_globals, new PyObject[] {}, c$36_test)); + if (frame.getname("__name__")._eq(s$35).__nonzero__()) { + frame.getname("test").__call__(); + } + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("socket")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "socket"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(socket._PyInner.class, newargs, socket.jpy$packages, socket.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/sre$_PyInner.class b/server/jpywork/sre$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..daae819d61738a34160dd05ec96a3d11d96cce34 GIT binary patch literal 17011 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

}s^iN39})_?e6(DRTw&)Rd%BfIt}Hup z?A{}fRU^&P$m6>B*c%Ro9o~&fOM|kndx^KPOSHWk_e>8THK`#zN<&)o)LAf(kP}~} zxO$ej5-v~oPSM*#GEaO}C~WvB847!xK1zqe9+!_Yp|HpBaR59OKFWo{9=DI?hQgk1 zK3W?JdrTkARtncEg`SeaM$*eDn*YkyTar=%jsUJXvY% zRnmB>-L7Z2RM~X8;_#L@&UAQ+;Xhl3|6J+crP8MJrA-$~n=V#1U8=mGr+B#%=PQZ3 z(&4Gl8kIQJC6ZEHMvA*wio3eg6gf=n(`%HC*D0a0c!1x}GUzq5Pfl`I09#hwK!YcjB~{EI9Gg#^K9L4zU?qvU~9sKwwrK~?G0RP zcj6NJBwT8b;4=FwxZE)VS2!ARrDHR$avHeW8NepzG+YCs+vyIyVh`6VcK1Bpwgb+s zbZ4G!yRWozyCDGFfC}6QqPyuHHH^Y?3kkf}|4v@T@wR*dy#cHSkOt5O;CKKV0h|ut z8~_&rxD3G60ImmcGk|sgcLU%+765Dm@Hl{H0K5R;WdN@Mczxtn`t^Myw^E)T5AtIx zKeqAXQGPtZkEi*ugC8&Oyw5vcrc*8+EzX^MXk!q*)2HboJ_LGFfeoV-_aPy^^7E%wFw4|o9C3);%JDQ!_ zX?NHr1%<+PXf*P($U<%vpvfF^urz|kP~jcPSiuEfp3=pf6ym- z6zFT8@Dzl1S-d!yy*s4zfDNE-=s_k1P>9KtxC7~X|6cz!$H586i-#L%Eq z<+IA-5d|?ck1u4_geN--Vst@NZbFZK&OE*{T%H$D35Q;^8dRN zzg_d&CI4>C@92>4$dj$aUl5Zd|KXA^Pp*PER3duIT#>fssaruzYe)aisGf2_LCh+M zX`}j|PE-(c!t-|Q?i2LULiPYxt(8V#2)Oy0Sch_oF8QHB9|dG898nPU9e$-ec2Geq=%Q412^s@8UoGo! zu7eYHfO-b)r5p<>dxf2YrPE`HOpm3~ClwNTpX73E72*1zbA+vmnH?kS68gk3Ja_H{ z1u;126A@`+v>@sWBBq5f^**VVsor%w0miB7q#p`mXgezBj|y%TP4h+uy;}-RW3^RI%)a_skK*WlEp&evg+_#K}=JV17RJm zz}4ax`Y<~mK7b~o4^6^Inv5!%im7xcX3=4&r^B&^rePh;#MM-bO*9)f(j44PbMYY6 z;b}S&&(b`6Li4ec7E%Qr1vlU0>mbysAmAhE4OQCz`ye=U5S%&)9MF@b-%n=O%0!eA z`MeIF`_(|P$6BRX2P zD$5OU^Iv3W(bam*=-<^oS&Z8FJq4TyH~;a55+G)xn_LNA4En@boZ@m;+@vcv!4q`p z-$UCmg%gF2E%Fq_b9K44iF3li2gG^yPAh$$5?jQDvTN^{7xXw~OZONGnA^l9VcT}v zy+vHc5{#h7EYL0=C1vRk4SL*Cflpki%3L;?cHAHIxPl&cfp&Rg1>xnP9m zpfEmhbwPMl+wpYMDetM!IqxyJfq1&fq1VXC4h~A3O#e<~*&W5;Ws1tWiW&z?w8sc~ zDx{d9L60-&;mXOAPj>pDs*c2@@I0x)HL@MO6pN;?>T7n7+EX4E1$NMtc!93Qo3sfZ(lz*;t|dX&k)Lj$33MaPq?>37T}CI;&2%N*0yqER zk4~r&aLRRI%YsY^$g}USgN3$a> zNJvEatT2jM!TF$qUtHG%I$V06QmPKMOq|({J7pv#L9^g(edA3(TW;wZU=94 zDmP(>%Aw*$iB0$M+`O_92QQPEr6x2q=#p93kz<^(U31K%@>CIIiv94xo@SO(OnJN` zX;$F?fbNE!?tz zKEhe_F$sE~deNtpq`%TR^cmewe}kL<*idB#ZRfvH2Pho$7<&ZQp(?i1>QwAMR~AIQ zH(cyhPPt?cZO13v+T>axS7PZfy^oMPD}9P^w&U5LAyGcDt+<{shwfhLY~gIjjX|xE z&gGyoi%)EqdPm4kz{jKF60SooJIfg9UT;|Iy;pY+iPd5rW5sf>r`m>!WkGM^d&yW7 zWy(&Z8g}iGILav>UqwQBNW0Kw+n0^c7VKJ`R6b3?-K7uMrc1 zKDxZPH{snzp01R8k|%;bx~?nX22Ci4r#gC}JS7V^`iX9+5+>aI7pE#;9QCN+uV41# zfiG3CrgFpY~aSnfQ&f^09;GD-Lp|GcW9#@3I zo*sE@3WYsA^SC|~_IUF6Whm_FmB+22u*aLn9igztm&ZM!uxGzK?hl1M`{(gsDD3H- z$3wC|NZWsx$9DNf0UrfAW)UffSAF7-1yNrg^qw_>S-dw&zy-{-KP%dKigrsE+8c^? zt)gx2Li>xNU8HF3U1)DB+GUD%R~Op5iguNv-P?uszNGm?KaKrR!;eeWek!ZziJ*6j zMtQmY$!Ud)DWckN9y>yL8mSY-8!Ja0U8FXbqt+CutIJWx7pbXo)X7C^wj6b8k-DxN z^{^uKgd$Z{!?YrPV-eqZrZbAv(~49z>IjYZi5}a;XL=j|ca=5!?S)yFr(PN}V3Sqw1vhH`z#(3hAN0hldFrD+iONGUo!&tyh<`2%`sgOU+>mYRX4)#gDu^e# ztbT7`JRm%9i{9uf`ru&E7q5wacv~ERzl;9ZB?b_Q1IZ8rskazJ2MRw0#9*otLuis1 zO4CGu=8J=9i8z>6ibH6X7)EQva9S^dbfy?V7l@H`xfn$^i_vta7(;n6mYx-r^k-2; z--v3lpQsU4Vw_kg#*3twAkG&P#hqf3cv4Ij?}{nnJ2BPf7Khpfh{J3Li^FY)i)psy zV!CaOm|;6t%(UGhX4#$-wYE>hY}-yT$KFHCwa*cC_LbrY2=OfdA-)se%Rh4u HgNpwLWAt)7 literal 0 HcmV?d00001 diff --git a/server/jpywork/sre.class b/server/jpywork/sre.class new file mode 100644 index 0000000000000000000000000000000000000000..f2def4073cbe06f2d7719d8bd11df8cc0f2f9be7 GIT binary patch literal 2479 zcma)7S##4?6#kCwSl5n{hzkizSqqfJPzOrsLV(h;w4oshy(A!LF^Y1r1-9f~$$;s; z@B6;*(`R4?m@?4E&h$UDKc&;TvO}EWcIpR9I`^#KIp4Xz|Mkmt0D1gmAVElmN*YKJ ztdq`ZXRz$}#lf+ulhTa{{A9Jhrs8=1xC*LLMV<@^^N)_qYKlmCesPE}U#nJCaJJs6 zYsON?J>?X&so|ELFkG{dFt5eOE-f4)WJKMMN;2|X0^8=6J>QFV5R&}^lZ4c+U|Jfm z=H%Ik&cF$M)p}G4{Cp*tu9an&pQ?G~$nzN%5Z21GuB=90;D=iSRm?Y4-9X9w>`?}U zJ`){CGb|#kYH9@y!+cl@&g^qeJ9}>UVpu{*MXDyX=~5GhHeF6&8lSu`BZifPO#G#B zWw@2l^N$P|))0(X#|s#4BXq?dwa6>y&v{ktyWa#un$R=i`Es;YnUdN>SQA6oM(8XQLK%6HtP~1_!8YFh zD{%um2xh3{n!6XKE;mJ$TT-UIM?l zZW9k-m|&=yuaya32l4=?eQkr>$zWz3Z)0D{0j-r84O~D%kzHySp zI36)@U@mRyVI(Ui1P&51j#5tD4XSlQuC)ctJce6(JR=$&nABrAX(EFx!;UO$95rx+ z&@-DuOluR5;xU48B2c4FMH1GwhM1X|mJp3)V4y%)KI>~Vh~>NGiM>J1pWdTXpt5k_ z8km|>_`#A2&S+|wn1&=|^#sT;bc&L&puaUzGk6xqu!W&S0K-W_I*eBuLz$3Pjz1k# z7<@uX6Oy4y$VAF<<&@)|Vo-$6P|1QDRH|NCGDL*56Unn)#BiF>)j0IS$nm3);VgkQ z0uPTdoFk-lkwM7tqz)apr}Wl%nvkkH)e6J21m-$r=}$X~;dw$z$*N*_QOkpBy`W@~ z;bnp;Vp}2AX{i`q)!v%#uM-kVGQ3I1ls#X%j$4upZ#NfJ)rm?B?-JNVD3x9t4DS2YMGa27u(nkOd9x>uyS^a;;5rR)R>`}Jx<7qpr%~8*V7x7g-YhN4Z)1J zN^GTXFE+DhunL4EfE1X%FQ7-qXg*o}&l7fv z&leZbYs?YY9ekm%(|obGh+C{|<7}B0uMoDuR|(rn^VPz(7+)(cV%>QFgaH6Nj*!AU zbYKJ07()`IZ--_E%RnFi9l6U`KWmnbg-K*^JMvA{o#=?AD|3ACDmK}C^JUz533p$` zcKb5!yM&#&+!gFTH0z~XLz5UoPhuP^5(kjMK0J&BMq(fc`!xvEjSLb1{>)uZ9lwU2 zk@ZQwS>%%IQ@QI`Fm?eG_HS5vh#$Iw!}di?{EVKfICi9P3CAzv#INfwVBH1u@}jk* zfs3a>Jf*>@Xv_kQ(Br~pJd9!5ENsi*wHT~3!nQKJE^I5ypAfdy$)6IoW%6f)ZFTYI zgl%>67ldu~@Rx*bS^O1YTl4s9!nQbnL)g}Q{+6(<1^gXhTfO`}VOxFt17TYW`A5RG z7V%GnZ7t@Xi7WWxJP6CN8aaH^Y)v0JfW$$t#00t$ljutv!XJslNZ>mF34D(qfOvGa JgYY9Ve*>v`eHj1% literal 0 HcmV?d00001 diff --git a/server/jpywork/sre.java b/server/jpywork/sre.java new file mode 100644 index 00000000..02321c09 --- /dev/null +++ b/server/jpywork/sre.java @@ -0,0 +1,602 @@ +import org.python.core.*; + +public class sre extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject s$1; + private static PyObject s$2; + private static PyObject s$3; + private static PyObject s$4; + private static PyObject s$5; + private static PyObject s$6; + private static PyObject s$7; + private static PyObject s$8; + private static PyObject s$9; + private static PyObject s$10; + private static PyObject s$11; + private static PyObject s$12; + private static PyObject s$13; + private static PyObject s$14; + private static PyObject s$15; + private static PyObject s$16; + private static PyObject s$17; + private static PyObject s$18; + private static PyObject s$19; + private static PyObject s$20; + private static PyObject s$21; + private static PyObject s$22; + private static PyObject s$23; + private static PyObject s$24; + private static PyObject i$25; + private static PyObject s$26; + private static PyObject s$27; + private static PyObject s$28; + private static PyObject s$29; + private static PyObject s$30; + private static PyObject s$31; + private static PyObject s$32; + private static PyObject s$33; + private static PyObject s$34; + private static PyObject s$35; + private static PyObject s$36; + private static PyObject s$37; + private static PyObject s$38; + private static PyObject s$39; + private static PyObject s$40; + private static PyObject s$41; + private static PyObject s$42; + private static PyObject s$43; + private static PyObject i$44; + private static PyObject i$45; + private static PyObject s$46; + private static PyObject s$47; + private static PyFunctionTable funcTable; + private static PyCode c$0_match; + private static PyCode c$1_search; + private static PyCode c$2_sub; + private static PyCode c$3_subn; + private static PyCode c$4_split; + private static PyCode c$5_findall; + private static PyCode c$6_compile; + private static PyCode c$7_purge; + private static PyCode c$8_template; + private static PyCode c$9_escape; + private static PyCode c$10__join; + private static PyCode c$11__compile; + private static PyCode c$12__compile_repl; + private static PyCode c$13__expand; + private static PyCode c$14__sub; + private static PyCode c$15_filter; + private static PyCode c$16__subn; + private static PyCode c$17__split; + private static PyCode c$18__pickle; + private static PyCode c$19___init__; + private static PyCode c$20_scan; + private static PyCode c$21_Scanner; + private static PyCode c$22_main; + private static void initConstants() { + s$0 = Py.newString("match"); + s$1 = Py.newString("search"); + s$2 = Py.newString("sub"); + s$3 = Py.newString("subn"); + s$4 = Py.newString("split"); + s$5 = Py.newString("findall"); + s$6 = Py.newString("compile"); + s$7 = Py.newString("purge"); + s$8 = Py.newString("template"); + s$9 = Py.newString("escape"); + s$10 = Py.newString("I"); + s$11 = Py.newString("L"); + s$12 = Py.newString("M"); + s$13 = Py.newString("S"); + s$14 = Py.newString("X"); + s$15 = Py.newString("U"); + s$16 = Py.newString("IGNORECASE"); + s$17 = Py.newString("LOCALE"); + s$18 = Py.newString("MULTILINE"); + s$19 = Py.newString("DOTALL"); + s$20 = Py.newString("VERBOSE"); + s$21 = Py.newString("UNICODE"); + s$22 = Py.newString("error"); + s$23 = Py.newString("2.1b2"); + s$24 = Py.newString("Try to apply the pattern at the start of the string, returning\012 a match object, or None if no match was found."); + i$25 = Py.newInteger(0); + s$26 = Py.newString("Scan through string looking for a match to the pattern, returning\012 a match object, or None if no match was found."); + s$27 = Py.newString("Return the string obtained by replacing the leftmost\012 non-overlapping occurrences of the pattern in string by the\012 replacement repl"); + s$28 = Py.newString("Return a 2-tuple containing (new_string, number).\012 new_string is the string obtained by replacing the leftmost\012 non-overlapping occurrences of the pattern in the source\012 string by the replacement repl. number is the number of\012 substitutions that were made."); + s$29 = Py.newString("Split the source string by the occurrences of the pattern,\012 returning a list containing the resulting substrings."); + s$30 = Py.newString("Return a list of all non-overlapping matches in the string.\012\012 If one or more groups are present in the pattern, return a\012 list of groups; this will be a list of tuples if the pattern\012 has more than one group.\012\012 Empty matches are included in the result."); + s$31 = Py.newString("Compile a regular expression pattern, returning a pattern object."); + s$32 = Py.newString("Clear the regular expression cache"); + s$33 = Py.newString("Compile a template pattern, returning a pattern object"); + s$34 = Py.newString("Escape all non-alphanumeric characters in pattern."); + s$35 = Py.newString("a"); + s$36 = Py.newString("z"); + s$37 = Py.newString("A"); + s$38 = Py.newString("Z"); + s$39 = Py.newString("0"); + s$40 = Py.newString("9"); + s$41 = Py.newString("\000"); + s$42 = Py.newString("\\000"); + s$43 = Py.newString("\\"); + i$44 = Py.newInteger(100); + i$45 = Py.newInteger(1); + s$46 = Py.newString(""); + s$47 = Py.newString("/usr/share/jython/Lib-cpython/sre.py"); + funcTable = new _PyInner(); + c$0_match = Py.newCode(3, new String[] {"pattern", "string", "flags"}, "/usr/share/jython/Lib-cpython/sre.py", "match", false, false, funcTable, 0, null, null, 0, 1); + c$1_search = Py.newCode(3, new String[] {"pattern", "string", "flags"}, "/usr/share/jython/Lib-cpython/sre.py", "search", false, false, funcTable, 1, null, null, 0, 1); + c$2_sub = Py.newCode(4, new String[] {"pattern", "repl", "string", "count"}, "/usr/share/jython/Lib-cpython/sre.py", "sub", false, false, funcTable, 2, null, null, 0, 1); + c$3_subn = Py.newCode(4, new String[] {"pattern", "repl", "string", "count"}, "/usr/share/jython/Lib-cpython/sre.py", "subn", false, false, funcTable, 3, null, null, 0, 1); + c$4_split = Py.newCode(3, new String[] {"pattern", "string", "maxsplit"}, "/usr/share/jython/Lib-cpython/sre.py", "split", false, false, funcTable, 4, null, null, 0, 1); + c$5_findall = Py.newCode(3, new String[] {"pattern", "string", "maxsplit"}, "/usr/share/jython/Lib-cpython/sre.py", "findall", false, false, funcTable, 5, null, null, 0, 1); + c$6_compile = Py.newCode(2, new String[] {"pattern", "flags"}, "/usr/share/jython/Lib-cpython/sre.py", "compile", false, false, funcTable, 6, null, null, 0, 1); + c$7_purge = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre.py", "purge", false, false, funcTable, 7, null, null, 0, 1); + c$8_template = Py.newCode(2, new String[] {"pattern", "flags"}, "/usr/share/jython/Lib-cpython/sre.py", "template", false, false, funcTable, 8, null, null, 0, 1); + c$9_escape = Py.newCode(1, new String[] {"pattern", "i", "s", "c"}, "/usr/share/jython/Lib-cpython/sre.py", "escape", false, false, funcTable, 9, null, null, 0, 1); + c$10__join = Py.newCode(2, new String[] {"seq", "sep"}, "/usr/share/jython/Lib-cpython/sre.py", "_join", false, false, funcTable, 10, null, null, 0, 1); + c$11__compile = Py.newCode(1, new String[] {"key", "p", "flags", "pattern", "v"}, "/usr/share/jython/Lib-cpython/sre.py", "_compile", true, false, funcTable, 11, null, null, 0, 1); + c$12__compile_repl = Py.newCode(1, new String[] {"key", "p", "repl", "pattern", "v"}, "/usr/share/jython/Lib-cpython/sre.py", "_compile_repl", true, false, funcTable, 12, null, null, 0, 1); + c$13__expand = Py.newCode(3, new String[] {"pattern", "match", "template"}, "/usr/share/jython/Lib-cpython/sre.py", "_expand", false, false, funcTable, 13, null, null, 0, 1); + c$14__sub = Py.newCode(4, new String[] {"pattern", "template", "string", "count"}, "/usr/share/jython/Lib-cpython/sre.py", "_sub", false, false, funcTable, 14, null, null, 0, 1); + c$15_filter = Py.newCode(2, new String[] {"match", "template"}, "/usr/share/jython/Lib-cpython/sre.py", "filter", false, false, funcTable, 15, null, null, 0, 1); + c$16__subn = Py.newCode(4, new String[] {"pattern", "template", "string", "count", "filter", "append", "n", "m", "i", "e", "c", "b", "s"}, "/usr/share/jython/Lib-cpython/sre.py", "_subn", false, false, funcTable, 16, null, null, 0, 1); + c$17__split = Py.newCode(3, new String[] {"pattern", "string", "maxsplit", "append", "n", "m", "i", "g", "e", "extend", "c", "b", "s"}, "/usr/share/jython/Lib-cpython/sre.py", "_split", false, false, funcTable, 17, null, null, 0, 1); + c$18__pickle = Py.newCode(1, new String[] {"p"}, "/usr/share/jython/Lib-cpython/sre.py", "_pickle", false, false, funcTable, 18, null, null, 0, 1); + c$19___init__ = Py.newCode(2, new String[] {"self", "lexicon", "p", "SUBPATTERN", "phrase", "action", "BRANCH", "s"}, "/usr/share/jython/Lib-cpython/sre.py", "__init__", false, false, funcTable, 19, null, null, 0, 1); + c$20_scan = Py.newCode(2, new String[] {"self", "string", "append", "m", "action", "j", "i", "match", "result"}, "/usr/share/jython/Lib-cpython/sre.py", "scan", false, false, funcTable, 20, null, null, 0, 1); + c$21_Scanner = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre.py", "Scanner", false, false, funcTable, 21, null, null, 0, 0); + c$22_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre.py", "main", false, false, funcTable, 22, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$22_main == null) _PyInner.initConstants(); + return c$22_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.match$1(frame); + case 1: + return _PyInner.search$2(frame); + case 2: + return _PyInner.sub$3(frame); + case 3: + return _PyInner.subn$4(frame); + case 4: + return _PyInner.split$5(frame); + case 5: + return _PyInner.findall$6(frame); + case 6: + return _PyInner.compile$7(frame); + case 7: + return _PyInner.purge$8(frame); + case 8: + return _PyInner.template$9(frame); + case 9: + return _PyInner.escape$10(frame); + case 10: + return _PyInner._join$11(frame); + case 11: + return _PyInner._compile$12(frame); + case 12: + return _PyInner._compile_repl$13(frame); + case 13: + return _PyInner._expand$14(frame); + case 14: + return _PyInner._sub$15(frame); + case 15: + return _PyInner.filter$16(frame); + case 16: + return _PyInner._subn$17(frame); + case 17: + return _PyInner._split$18(frame); + case 18: + return _PyInner._pickle$19(frame); + case 19: + return _PyInner.__init__$20(frame); + case 20: + return _PyInner.scan$21(frame); + case 21: + return _PyInner.Scanner$22(frame); + case 22: + return _PyInner.main$23(frame); + default: + return null; + } + } + + private static PyObject match$1(PyFrame frame) { + /* Try to apply the pattern at the start of the string, returning + a match object, or None if no match was found. */ + return frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(2)).invoke("match", frame.getlocal(1)); + } + + private static PyObject search$2(PyFrame frame) { + /* Scan through string looking for a match to the pattern, returning + a match object, or None if no match was found. */ + return frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(2)).invoke("search", frame.getlocal(1)); + } + + private static PyObject sub$3(PyFrame frame) { + /* Return the string obtained by replacing the leftmost + non-overlapping occurrences of the pattern in string by the + replacement repl */ + return frame.getglobal("_compile").__call__(frame.getlocal(0), i$25).invoke("sub", new PyObject[] {frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)}); + } + + private static PyObject subn$4(PyFrame frame) { + /* Return a 2-tuple containing (new_string, number). + new_string is the string obtained by replacing the leftmost + non-overlapping occurrences of the pattern in the source + string by the replacement repl. number is the number of + substitutions that were made. */ + return frame.getglobal("_compile").__call__(frame.getlocal(0), i$25).invoke("subn", new PyObject[] {frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)}); + } + + private static PyObject split$5(PyFrame frame) { + /* Split the source string by the occurrences of the pattern, + returning a list containing the resulting substrings. */ + return frame.getglobal("_compile").__call__(frame.getlocal(0), i$25).invoke("split", frame.getlocal(1), frame.getlocal(2)); + } + + private static PyObject findall$6(PyFrame frame) { + /* Return a list of all non-overlapping matches in the string. + + If one or more groups are present in the pattern, return a + list of groups; this will be a list of tuples if the pattern + has more than one group. + + Empty matches are included in the result. */ + return frame.getglobal("_compile").__call__(frame.getlocal(0), i$25).invoke("findall", frame.getlocal(1), frame.getlocal(2)); + } + + private static PyObject compile$7(PyFrame frame) { + /* Compile a regular expression pattern, returning a pattern object. */ + return frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(1)); + } + + private static PyObject purge$8(PyFrame frame) { + /* Clear the regular expression cache */ + frame.getglobal("_cache").invoke("clear"); + frame.getglobal("_cache_repl").invoke("clear"); + return Py.None; + } + + private static PyObject template$9(PyFrame frame) { + /* Compile a template pattern, returning a pattern object */ + return frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(1)._or(frame.getglobal("T"))); + } + + private static PyObject escape$10(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject; + + // Code + /* Escape all non-alphanumeric characters in pattern. */ + frame.setlocal(2, frame.getglobal("list").__call__(frame.getlocal(0))); + t$0$int = 0; + t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("len").__call__(frame.getlocal(0))); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(1, t$0$PyObject); + frame.setlocal(3, frame.getlocal(0).__getitem__(frame.getlocal(1))); + if (((t$2$PyObject = ((t$3$PyObject = (s$35._le(t$4$PyObject = frame.getlocal(3)).__nonzero__() ? t$4$PyObject._le(s$36) : Py.Zero)).__nonzero__() ? t$3$PyObject : (s$37._le(t$4$PyObject = frame.getlocal(3)).__nonzero__() ? t$4$PyObject._le(s$38) : Py.Zero))).__nonzero__() ? t$2$PyObject : (s$39._le(t$3$PyObject = frame.getlocal(3)).__nonzero__() ? t$3$PyObject._le(s$40) : Py.Zero)).__not__().__nonzero__()) { + if (frame.getlocal(3)._eq(s$41).__nonzero__()) { + frame.getlocal(2).__setitem__(frame.getlocal(1), s$42); + } + else { + frame.getlocal(2).__setitem__(frame.getlocal(1), s$43._add(frame.getlocal(3))); + } + } + } + return frame.getglobal("_join").__call__(frame.getlocal(2), frame.getlocal(0)); + } + + private static PyObject _join$11(PyFrame frame) { + return frame.getglobal("string").__getattr__("join").__call__(frame.getlocal(0), frame.getlocal(1).__getslice__(null, i$25, null)); + } + + private static PyObject _compile$12(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + PyException t$0$PyException; + + // Code + frame.setlocal(1, frame.getglobal("_cache").invoke("get", frame.getlocal(0))); + if (frame.getlocal(1)._isnot(frame.getglobal("None")).__nonzero__()) { + return frame.getlocal(1); + } + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0), 2); + frame.setlocal(3, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + if (frame.getglobal("type").__call__(frame.getlocal(3))._notin(frame.getglobal("sre_compile").__getattr__("STRING_TYPES")).__nonzero__()) { + return frame.getlocal(3); + } + try { + frame.setlocal(1, frame.getglobal("sre_compile").__getattr__("compile").__call__(frame.getlocal(3), frame.getlocal(2))); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("error"))) { + frame.setlocal(4, t$0$PyException.value); + throw Py.makeException(frame.getglobal("error"), frame.getlocal(4)); + } + else throw t$0$PyException; + } + if (frame.getglobal("len").__call__(frame.getglobal("_cache"))._ge(frame.getglobal("_MAXCACHE")).__nonzero__()) { + frame.getglobal("_cache").invoke("clear"); + } + frame.getglobal("_cache").__setitem__(frame.getlocal(0), frame.getlocal(1)); + return frame.getlocal(1); + } + + private static PyObject _compile_repl$13(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + PyException t$0$PyException; + + // Code + frame.setlocal(1, frame.getglobal("_cache_repl").invoke("get", frame.getlocal(0))); + if (frame.getlocal(1)._isnot(frame.getglobal("None")).__nonzero__()) { + return frame.getlocal(1); + } + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0), 2); + frame.setlocal(2, t$0$PyObject__[0]); + frame.setlocal(3, t$0$PyObject__[1]); + try { + frame.setlocal(1, frame.getglobal("sre_parse").__getattr__("parse_template").__call__(frame.getlocal(2), frame.getlocal(3))); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("error"))) { + frame.setlocal(4, t$0$PyException.value); + throw Py.makeException(frame.getglobal("error"), frame.getlocal(4)); + } + else throw t$0$PyException; + } + if (frame.getglobal("len").__call__(frame.getglobal("_cache_repl"))._ge(frame.getglobal("_MAXCACHE")).__nonzero__()) { + frame.getglobal("_cache_repl").invoke("clear"); + } + frame.getglobal("_cache_repl").__setitem__(frame.getlocal(0), frame.getlocal(1)); + return frame.getlocal(1); + } + + private static PyObject _expand$14(PyFrame frame) { + frame.setlocal(2, frame.getglobal("sre_parse").__getattr__("parse_template").__call__(frame.getlocal(2), frame.getlocal(0))); + return frame.getglobal("sre_parse").__getattr__("expand_template").__call__(frame.getlocal(2), frame.getlocal(1)); + } + + private static PyObject _sub$15(PyFrame frame) { + return frame.getglobal("_subn").__call__(new PyObject[] {frame.getlocal(0), frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)}).__getitem__(i$25); + } + + private static PyObject filter$16(PyFrame frame) { + return frame.getglobal("sre_parse").__getattr__("expand_template").__call__(frame.getlocal(1), frame.getlocal(0)); + } + + private static PyObject _subn$17(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject; + + // Code + if (frame.getglobal("callable").__call__(frame.getlocal(1)).__nonzero__()) { + frame.setlocal(4, frame.getlocal(1)); + } + else { + frame.setlocal(1, frame.getglobal("_compile_repl").__call__(frame.getlocal(1), frame.getlocal(0))); + frame.setlocal(4, new PyFunction(frame.f_globals, new PyObject[] {frame.getlocal(1)}, c$15_filter)); + } + t$0$PyObject = i$25; + frame.setlocal(6, t$0$PyObject); + frame.setlocal(8, t$0$PyObject); + frame.setlocal(12, new PyList(new PyObject[] {})); + frame.setlocal(5, frame.getlocal(12).__getattr__("append")); + frame.setlocal(10, frame.getlocal(0).invoke("scanner", frame.getlocal(2))); + while (((t$0$PyObject = frame.getlocal(3).__not__()).__nonzero__() ? t$0$PyObject : frame.getlocal(6)._lt(frame.getlocal(3))).__nonzero__()) { + frame.setlocal(7, frame.getlocal(10).invoke("search")); + if (frame.getlocal(7).__not__().__nonzero__()) { + break; + } + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(7).invoke("span"), 2); + frame.setlocal(11, t$0$PyObject__[0]); + frame.setlocal(9, t$0$PyObject__[1]); + if (frame.getlocal(8)._lt(frame.getlocal(11)).__nonzero__()) { + frame.getlocal(5).__call__(frame.getlocal(2).__getslice__(frame.getlocal(8), frame.getlocal(11), null)); + } + frame.getlocal(5).__call__(frame.getlocal(4).__call__(frame.getlocal(7))); + frame.setlocal(8, frame.getlocal(9)); + frame.setlocal(6, frame.getlocal(6)._add(i$45)); + } + frame.getlocal(5).__call__(frame.getlocal(2).__getslice__(frame.getlocal(8), null, null)); + return new PyTuple(new PyObject[] {frame.getglobal("_join").__call__(frame.getlocal(12), frame.getlocal(2).__getslice__(null, i$25, null)), frame.getlocal(6)}); + } + + private static PyObject _split$18(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject; + + // Code + t$0$PyObject = i$25; + frame.setlocal(4, t$0$PyObject); + frame.setlocal(6, t$0$PyObject); + frame.setlocal(12, new PyList(new PyObject[] {})); + frame.setlocal(3, frame.getlocal(12).__getattr__("append")); + frame.setlocal(9, frame.getlocal(12).__getattr__("extend")); + frame.setlocal(10, frame.getlocal(0).invoke("scanner", frame.getlocal(1))); + frame.setlocal(7, frame.getlocal(0).__getattr__("groups")); + while (((t$0$PyObject = frame.getlocal(2).__not__()).__nonzero__() ? t$0$PyObject : frame.getlocal(4)._lt(frame.getlocal(2))).__nonzero__()) { + frame.setlocal(5, frame.getlocal(10).invoke("search")); + if (frame.getlocal(5).__not__().__nonzero__()) { + break; + } + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(5).invoke("span"), 2); + frame.setlocal(11, t$0$PyObject__[0]); + frame.setlocal(8, t$0$PyObject__[1]); + if (frame.getlocal(11)._eq(frame.getlocal(8)).__nonzero__()) { + if (frame.getlocal(6)._ge(frame.getglobal("len").__call__(frame.getlocal(1))).__nonzero__()) { + break; + } + continue; + } + frame.getlocal(3).__call__(frame.getlocal(1).__getslice__(frame.getlocal(6), frame.getlocal(11), null)); + if (((t$0$PyObject = frame.getlocal(7)).__nonzero__() ? frame.getlocal(11)._ne(frame.getlocal(8)) : t$0$PyObject).__nonzero__()) { + frame.getlocal(9).__call__(frame.getglobal("list").__call__(frame.getlocal(5).invoke("groups"))); + } + frame.setlocal(6, frame.getlocal(8)); + frame.setlocal(4, frame.getlocal(4)._add(i$45)); + } + frame.getlocal(3).__call__(frame.getlocal(1).__getslice__(frame.getlocal(6), null, null)); + return frame.getlocal(12); + } + + private static PyObject _pickle$19(PyFrame frame) { + return new PyTuple(new PyObject[] {frame.getglobal("_compile"), new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("pattern"), frame.getlocal(0).__getattr__("flags")})}); + } + + private static PyObject __init__$20(PyFrame frame) { + PyObject[] imp_accu; + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + imp_accu = org.python.core.imp.importFrom("sre_constants", new String[] {"BRANCH", "SUBPATTERN"}, frame); + frame.setlocal(6, imp_accu[0]); + frame.setlocal(3, imp_accu[1]); + imp_accu = null; + frame.getlocal(0).__setattr__("lexicon", frame.getlocal(1)); + frame.setlocal(2, new PyList(new PyObject[] {})); + frame.setlocal(7, frame.getglobal("sre_parse").__getattr__("Pattern").__call__()); + t$0$int = 0; + t$1$PyObject = frame.getlocal(1); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(4, t$0$PyObject__[0]); + frame.setlocal(5, t$0$PyObject__[1]); + frame.getlocal(2).invoke("append", frame.getglobal("sre_parse").__getattr__("SubPattern").__call__(frame.getlocal(7), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getlocal(3), new PyTuple(new PyObject[] {frame.getglobal("len").__call__(frame.getlocal(2)), frame.getglobal("sre_parse").__getattr__("parse").__call__(frame.getlocal(4))})})}))); + } + frame.setlocal(2, frame.getglobal("sre_parse").__getattr__("SubPattern").__call__(frame.getlocal(7), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getlocal(6), new PyTuple(new PyObject[] {frame.getglobal("None"), frame.getlocal(2)})})}))); + frame.getlocal(7).__setattr__("groups", frame.getglobal("len").__call__(frame.getlocal(2))); + frame.getlocal(0).__setattr__("scanner", frame.getglobal("sre_compile").__getattr__("compile").__call__(frame.getlocal(2))); + return Py.None; + } + + private static PyObject scan$21(PyFrame frame) { + frame.setlocal(8, new PyList(new PyObject[] {})); + frame.setlocal(2, frame.getlocal(8).__getattr__("append")); + frame.setlocal(7, frame.getlocal(0).__getattr__("scanner").__getattr__("match")); + frame.setlocal(6, i$25); + while (i$45.__nonzero__()) { + frame.setlocal(3, frame.getlocal(7).__call__(frame.getlocal(1), frame.getlocal(6))); + if (frame.getlocal(3).__not__().__nonzero__()) { + break; + } + frame.setlocal(5, frame.getlocal(3).invoke("end")); + if (frame.getlocal(6)._eq(frame.getlocal(5)).__nonzero__()) { + break; + } + frame.setlocal(4, frame.getlocal(0).__getattr__("lexicon").__getitem__(frame.getlocal(3).__getattr__("lastindex")).__getitem__(i$45)); + if (frame.getglobal("callable").__call__(frame.getlocal(4)).__nonzero__()) { + frame.getlocal(0).__setattr__("match", frame.getlocal(3)); + frame.setlocal(4, frame.getlocal(4).__call__(frame.getlocal(0), frame.getlocal(3).invoke("group"))); + } + if (frame.getlocal(4)._isnot(frame.getglobal("None")).__nonzero__()) { + frame.getlocal(2).__call__(frame.getlocal(4)); + } + frame.setlocal(6, frame.getlocal(5)); + } + return new PyTuple(new PyObject[] {frame.getlocal(8), frame.getlocal(1).__getslice__(frame.getlocal(6), null, null)}); + } + + private static PyObject Scanner$22(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$19___init__)); + frame.setlocal("scan", new PyFunction(frame.f_globals, new PyObject[] {}, c$20_scan)); + return frame.getf_locals(); + } + + private static PyObject main$23(PyFrame frame) { + frame.setglobal("__file__", s$47); + + // Temporary Variables + PyObject t$0$PyObject; + + // Code + frame.setlocal("sre_compile", org.python.core.imp.importOne("sre_compile", frame)); + frame.setlocal("sre_parse", org.python.core.imp.importOne("sre_parse", frame)); + frame.setlocal("__all__", new PyList(new PyObject[] {s$0, s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$20, s$21, s$22})); + frame.setlocal("__version__", s$23); + frame.setlocal("string", org.python.core.imp.importOne("string", frame)); + t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_IGNORECASE"); + frame.setlocal("I", t$0$PyObject); + frame.setlocal("IGNORECASE", t$0$PyObject); + t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_LOCALE"); + frame.setlocal("L", t$0$PyObject); + frame.setlocal("LOCALE", t$0$PyObject); + t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_UNICODE"); + frame.setlocal("U", t$0$PyObject); + frame.setlocal("UNICODE", t$0$PyObject); + t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_MULTILINE"); + frame.setlocal("M", t$0$PyObject); + frame.setlocal("MULTILINE", t$0$PyObject); + t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_DOTALL"); + frame.setlocal("S", t$0$PyObject); + frame.setlocal("DOTALL", t$0$PyObject); + t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_VERBOSE"); + frame.setlocal("X", t$0$PyObject); + frame.setlocal("VERBOSE", t$0$PyObject); + t$0$PyObject = frame.getname("sre_compile").__getattr__("SRE_FLAG_TEMPLATE"); + frame.setlocal("T", t$0$PyObject); + frame.setlocal("TEMPLATE", t$0$PyObject); + frame.setlocal("DEBUG", frame.getname("sre_compile").__getattr__("SRE_FLAG_DEBUG")); + frame.setlocal("error", frame.getname("sre_compile").__getattr__("error")); + frame.setlocal("match", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$0_match)); + frame.setlocal("search", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$1_search)); + frame.setlocal("sub", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$2_sub)); + frame.setlocal("subn", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$3_subn)); + frame.setlocal("split", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$4_split)); + frame.setlocal("findall", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$5_findall)); + frame.setlocal("compile", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$6_compile)); + frame.setlocal("purge", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_purge)); + frame.setlocal("template", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$8_template)); + frame.setlocal("escape", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_escape)); + frame.setlocal("_cache", new PyDictionary(new PyObject[] {})); + frame.setlocal("_cache_repl", new PyDictionary(new PyObject[] {})); + frame.setlocal("_MAXCACHE", i$44); + frame.setlocal("_join", new PyFunction(frame.f_globals, new PyObject[] {}, c$10__join)); + frame.setlocal("_compile", new PyFunction(frame.f_globals, new PyObject[] {}, c$11__compile)); + frame.setlocal("_compile_repl", new PyFunction(frame.f_globals, new PyObject[] {}, c$12__compile_repl)); + frame.setlocal("_expand", new PyFunction(frame.f_globals, new PyObject[] {}, c$13__expand)); + frame.setlocal("_sub", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$14__sub)); + frame.setlocal("_subn", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$16__subn)); + frame.setlocal("_split", new PyFunction(frame.f_globals, new PyObject[] {i$25}, c$17__split)); + frame.setlocal("copy_reg", org.python.core.imp.importOne("copy_reg", frame)); + frame.setlocal("_pickle", new PyFunction(frame.f_globals, new PyObject[] {}, c$18__pickle)); + frame.getname("copy_reg").__getattr__("pickle").__call__(frame.getname("type").__call__(frame.getname("_compile").__call__(s$46, i$25)), frame.getname("_pickle"), frame.getname("_compile")); + frame.setlocal("Scanner", Py.makeClass("Scanner", new PyObject[] {}, c$21_Scanner, null)); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("sre")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "sre"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(sre._PyInner.class, newargs, sre.jpy$packages, sre.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/sre_compile$_PyInner.class b/server/jpywork/sre_compile$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..25d8672c2178145cd51f65cf93d2752692091a4a GIT binary patch literal 17124 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 literal 0 HcmV?d00001 diff --git a/server/jpywork/sre_compile.java b/server/jpywork/sre_compile.java new file mode 100644 index 00000000..6ab5235d --- /dev/null +++ b/server/jpywork/sre_compile.java @@ -0,0 +1,710 @@ +import org.python.core.*; + +public class sre_compile extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject i$1; + private static PyObject i$2; + private static PyObject s$3; + private static PyObject i$4; + private static PyObject i$5; + private static PyObject s$6; + private static PyObject s$7; + private static PyObject s$8; + private static PyObject i$9; + private static PyObject s$10; + private static PyObject s$11; + private static PyObject i$12; + private static PyObject s$13; + private static PyObject s$14; + private static PyFunctionTable funcTable; + private static PyCode c$0_fixup; + private static PyCode c$1_lambda; + private static PyCode c$2__compile; + private static PyCode c$3_lambda; + private static PyCode c$4__compile_charset; + private static PyCode c$5__optimize_charset; + private static PyCode c$6__simple; + private static PyCode c$7__compile_info; + private static PyCode c$8__code; + private static PyCode c$9_compile; + private static PyCode c$10_main; + private static void initConstants() { + s$0 = Py.newString("SRE module mismatch"); + i$1 = Py.newInteger(65535); + i$2 = Py.newInteger(0); + s$3 = Py.newString("internal: unsupported template operator"); + i$4 = Py.newInteger(1); + i$5 = Py.newInteger(2); + s$6 = Py.newString("look-behind requires fixed-width pattern"); + s$7 = Py.newString("unsupported operand type"); + s$8 = Py.newString("internal: unsupported set operator"); + i$9 = Py.newInteger(256); + s$10 = Py.newString("nothing to repeat"); + s$11 = Py.newString(""); + i$12 = Py.newInteger(100); + s$13 = Py.newString("sorry, but this version only supports 100 named groups"); + s$14 = Py.newString("/usr/share/jython/Lib-cpython/sre_compile.py"); + funcTable = new _PyInner(); + c$0_fixup = Py.newCode(2, new String[] {"literal", "flags"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "fixup", false, false, funcTable, 0, null, null, 0, 1); + c$1_lambda = Py.newCode(1, new String[] {"x"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "", false, false, funcTable, 1, null, null, 0, 1); + c$2__compile = Py.newCode(3, new String[] {"code", "pattern", "flags", "av", "emit", "skip", "lo", "op", "fixup", "hi", "tail"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "_compile", false, false, funcTable, 2, null, null, 0, 1); + c$3_lambda = Py.newCode(1, new String[] {"x"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "", false, false, funcTable, 3, null, null, 0, 1); + c$4__compile_charset = Py.newCode(4, new String[] {"charset", "flags", "code", "fixup", "op", "av", "emit"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "_compile_charset", false, false, funcTable, 4, null, null, 0, 1); + c$5__optimize_charset = Py.newCode(2, new String[] {"charset", "fixup", "op", "v", "av", "charmap", "p", "n", "m", "runs", "i", "out", "c", "data"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "_optimize_charset", false, false, funcTable, 5, null, null, 0, 1); + c$6__simple = Py.newCode(1, new String[] {"av", "hi", "lo"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "_simple", false, false, funcTable, 6, null, null, 0, 1); + c$7__compile_info = Py.newCode(3, new String[] {"code", "pattern", "flags", "hi", "charset", "lo", "op", "av", "emit", "p", "skip", "prefix", "i", "mask", "table", "c", "prefix_skip"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "_compile_info", false, false, funcTable, 7, null, null, 0, 1); + c$8__code = Py.newCode(2, new String[] {"p", "flags", "code"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "_code", false, false, funcTable, 8, null, null, 0, 1); + c$9_compile = Py.newCode(2, new String[] {"p", "flags", "groupindex", "code", "indexgroup", "k", "i", "sre_parse", "pattern"}, "/usr/share/jython/Lib-cpython/sre_compile.py", "compile", false, false, funcTable, 9, null, null, 0, 1); + c$10_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_compile.py", "main", false, false, funcTable, 10, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$10_main == null) _PyInner.initConstants(); + return c$10_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.fixup$1(frame); + case 1: + return _PyInner.lambda$2(frame); + case 2: + return _PyInner._compile$3(frame); + case 3: + return _PyInner.lambda$4(frame); + case 4: + return _PyInner._compile_charset$5(frame); + case 5: + return _PyInner._optimize_charset$6(frame); + case 6: + return _PyInner._simple$7(frame); + case 7: + return _PyInner._compile_info$8(frame); + case 8: + return _PyInner._code$9(frame); + case 9: + return _PyInner.compile$10(frame); + case 10: + return _PyInner.main$11(frame); + default: + return null; + } + } + + private static PyObject fixup$1(PyFrame frame) { + return frame.getglobal("_sre").__getattr__("getlower").__call__(frame.getlocal(0), frame.getlocal(1)); + } + + private static PyObject lambda$2(PyFrame frame) { + return frame.getlocal(0); + } + + private static PyObject _compile$3(PyFrame frame) { + // Temporary Variables + int t$0$int, t$1$int, t$2$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject; + + // Code + frame.setlocal(4, frame.getlocal(0).__getattr__("append")); + t$0$int = 0; + t$1$PyObject = frame.getlocal(1); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(7, t$0$PyObject__[0]); + frame.setlocal(3, t$0$PyObject__[1]); + if (frame.getlocal(7)._in(new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("NOT_LITERAL")})).__nonzero__()) { + if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_IGNORECASE")).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("OP_IGNORE").__getitem__(frame.getlocal(7)))); + frame.getlocal(4).__call__(frame.getglobal("_sre").__getattr__("getlower").__call__(frame.getlocal(3), frame.getlocal(2))); + } + else { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7))); + frame.getlocal(4).__call__(frame.getlocal(3)); + } + } + else if (frame.getlocal(7)._is(frame.getglobal("IN")).__nonzero__()) { + if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_IGNORECASE")).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("OP_IGNORE").__getitem__(frame.getlocal(7)))); + frame.setlocal(8, new PyFunction(frame.f_globals, new PyObject[] {frame.getlocal(2)}, c$0_fixup)); + } + else { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7))); + frame.setlocal(8, new PyFunction(frame.f_globals, new PyObject[] {}, c$1_lambda)); + } + frame.setlocal(5, frame.getglobal("len").__call__(frame.getlocal(0))); + frame.getlocal(4).__call__(i$2); + frame.getglobal("_compile_charset").__call__(new PyObject[] {frame.getlocal(3), frame.getlocal(2), frame.getlocal(0), frame.getlocal(8)}); + frame.getlocal(0).__setitem__(frame.getlocal(5), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(5))); + } + else if (frame.getlocal(7)._is(frame.getglobal("ANY")).__nonzero__()) { + if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_DOTALL")).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("ANY_ALL"))); + } + else { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("ANY"))); + } + } + else if (frame.getlocal(7)._in(new PyTuple(new PyObject[] {frame.getglobal("REPEAT"), frame.getglobal("MIN_REPEAT"), frame.getglobal("MAX_REPEAT")})).__nonzero__()) { + if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_TEMPLATE")).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$3); + } + else if (((t$2$PyObject = frame.getglobal("_simple").__call__(frame.getlocal(3))).__nonzero__() ? frame.getlocal(7)._eq(frame.getglobal("MAX_REPEAT")) : t$2$PyObject).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("REPEAT_ONE"))); + frame.setlocal(5, frame.getglobal("len").__call__(frame.getlocal(0))); + frame.getlocal(4).__call__(i$2); + frame.getlocal(4).__call__(frame.getlocal(3).__getitem__(i$2)); + frame.getlocal(4).__call__(frame.getlocal(3).__getitem__(i$4)); + frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(3).__getitem__(i$5), frame.getlocal(2)); + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("SUCCESS"))); + frame.getlocal(0).__setitem__(frame.getlocal(5), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(5))); + } + else { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("REPEAT"))); + frame.setlocal(5, frame.getglobal("len").__call__(frame.getlocal(0))); + frame.getlocal(4).__call__(i$2); + frame.getlocal(4).__call__(frame.getlocal(3).__getitem__(i$2)); + frame.getlocal(4).__call__(frame.getlocal(3).__getitem__(i$4)); + frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(3).__getitem__(i$5), frame.getlocal(2)); + frame.getlocal(0).__setitem__(frame.getlocal(5), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(5))); + if (frame.getlocal(7)._eq(frame.getglobal("MAX_REPEAT")).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("MAX_UNTIL"))); + } + else { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("MIN_UNTIL"))); + } + } + } + else if (frame.getlocal(7)._is(frame.getglobal("SUBPATTERN")).__nonzero__()) { + if (frame.getlocal(3).__getitem__(i$2).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("MARK"))); + frame.getlocal(4).__call__(frame.getlocal(3).__getitem__(i$2)._sub(i$4)._mul(i$5)); + } + frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(3).__getitem__(i$4), frame.getlocal(2)); + if (frame.getlocal(3).__getitem__(i$2).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("MARK"))); + frame.getlocal(4).__call__(frame.getlocal(3).__getitem__(i$2)._sub(i$4)._mul(i$5)._add(i$4)); + } + } + else if (frame.getlocal(7)._in(new PyTuple(new PyObject[] {frame.getglobal("SUCCESS"), frame.getglobal("FAILURE")})).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7))); + } + else if (frame.getlocal(7)._in(new PyTuple(new PyObject[] {frame.getglobal("ASSERT"), frame.getglobal("ASSERT_NOT")})).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7))); + frame.setlocal(5, frame.getglobal("len").__call__(frame.getlocal(0))); + frame.getlocal(4).__call__(i$2); + if (frame.getlocal(3).__getitem__(i$2)._ge(i$2).__nonzero__()) { + frame.getlocal(4).__call__(i$2); + } + else { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(3).__getitem__(i$4).invoke("getwidth"), 2); + frame.setlocal(6, t$0$PyObject__[0]); + frame.setlocal(9, t$0$PyObject__[1]); + if (frame.getlocal(6)._ne(frame.getlocal(9)).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$6); + } + frame.getlocal(4).__call__(frame.getlocal(6)); + } + frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(3).__getitem__(i$4), frame.getlocal(2)); + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("SUCCESS"))); + frame.getlocal(0).__setitem__(frame.getlocal(5), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(5))); + } + else if (frame.getlocal(7)._is(frame.getglobal("CALL")).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7))); + frame.setlocal(5, frame.getglobal("len").__call__(frame.getlocal(0))); + frame.getlocal(4).__call__(i$2); + frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(3), frame.getlocal(2)); + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("SUCCESS"))); + frame.getlocal(0).__setitem__(frame.getlocal(5), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(5))); + } + else if (frame.getlocal(7)._is(frame.getglobal("AT")).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7))); + if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_MULTILINE")).__nonzero__()) { + frame.setlocal(3, frame.getglobal("AT_MULTILINE").invoke("get", frame.getlocal(3), frame.getlocal(3))); + } + if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_LOCALE")).__nonzero__()) { + frame.setlocal(3, frame.getglobal("AT_LOCALE").invoke("get", frame.getlocal(3), frame.getlocal(3))); + } + else if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_UNICODE")).__nonzero__()) { + frame.setlocal(3, frame.getglobal("AT_UNICODE").invoke("get", frame.getlocal(3), frame.getlocal(3))); + } + frame.getlocal(4).__call__(frame.getglobal("ATCODES").__getitem__(frame.getlocal(3))); + } + else if (frame.getlocal(7)._is(frame.getglobal("BRANCH")).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7))); + frame.setlocal(10, new PyList(new PyObject[] {})); + t$1$int = 0; + t$3$PyObject = frame.getlocal(3).__getitem__(i$4); + while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) { + frame.setlocal(3, t$2$PyObject); + frame.setlocal(5, frame.getglobal("len").__call__(frame.getlocal(0))); + frame.getlocal(4).__call__(i$2); + frame.getglobal("_compile").__call__(frame.getlocal(0), frame.getlocal(3), frame.getlocal(2)); + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("JUMP"))); + frame.getlocal(10).invoke("append", frame.getglobal("len").__call__(frame.getlocal(0))); + frame.getlocal(4).__call__(i$2); + frame.getlocal(0).__setitem__(frame.getlocal(5), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(5))); + } + frame.getlocal(4).__call__(i$2); + t$2$int = 0; + t$5$PyObject = frame.getlocal(10); + while ((t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) { + frame.setlocal(10, t$4$PyObject); + frame.getlocal(0).__setitem__(frame.getlocal(10), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(10))); + } + } + else if (frame.getlocal(7)._is(frame.getglobal("CATEGORY")).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7))); + if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_LOCALE")).__nonzero__()) { + frame.setlocal(3, frame.getglobal("CH_LOCALE").__getitem__(frame.getlocal(3))); + } + else if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_UNICODE")).__nonzero__()) { + frame.setlocal(3, frame.getglobal("CH_UNICODE").__getitem__(frame.getlocal(3))); + } + frame.getlocal(4).__call__(frame.getglobal("CHCODES").__getitem__(frame.getlocal(3))); + } + else if (frame.getlocal(7)._is(frame.getglobal("GROUPREF")).__nonzero__()) { + if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_IGNORECASE")).__nonzero__()) { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("OP_IGNORE").__getitem__(frame.getlocal(7)))); + } + else { + frame.getlocal(4).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(7))); + } + frame.getlocal(4).__call__(frame.getlocal(3)._sub(i$4)); + } + else { + throw Py.makeException(frame.getglobal("ValueError"), new PyTuple(new PyObject[] {s$7, frame.getlocal(7)})); + } + } + return Py.None; + } + + private static PyObject lambda$4(PyFrame frame) { + return frame.getlocal(0); + } + + private static PyObject _compile_charset$5(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(6, frame.getlocal(2).__getattr__("append")); + if (frame.getlocal(3).__not__().__nonzero__()) { + frame.setlocal(3, new PyFunction(frame.f_globals, new PyObject[] {}, c$3_lambda)); + } + t$0$int = 0; + t$1$PyObject = frame.getglobal("_optimize_charset").__call__(frame.getlocal(0), frame.getlocal(3)); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(4, t$0$PyObject__[0]); + frame.setlocal(5, t$0$PyObject__[1]); + frame.getlocal(6).__call__(frame.getglobal("OPCODES").__getitem__(frame.getlocal(4))); + if (frame.getlocal(4)._is(frame.getglobal("NEGATE")).__nonzero__()) { + // pass + } + else if (frame.getlocal(4)._is(frame.getglobal("LITERAL")).__nonzero__()) { + frame.getlocal(6).__call__(frame.getlocal(3).__call__(frame.getlocal(5))); + } + else if (frame.getlocal(4)._is(frame.getglobal("RANGE")).__nonzero__()) { + frame.getlocal(6).__call__(frame.getlocal(3).__call__(frame.getlocal(5).__getitem__(i$2))); + frame.getlocal(6).__call__(frame.getlocal(3).__call__(frame.getlocal(5).__getitem__(i$4))); + } + else if (frame.getlocal(4)._is(frame.getglobal("CHARSET")).__nonzero__()) { + frame.getlocal(2).invoke("extend", frame.getlocal(5)); + } + else if (frame.getlocal(4)._is(frame.getglobal("CATEGORY")).__nonzero__()) { + if (frame.getlocal(1)._and(frame.getglobal("SRE_FLAG_LOCALE")).__nonzero__()) { + frame.getlocal(6).__call__(frame.getglobal("CHCODES").__getitem__(frame.getglobal("CH_LOCALE").__getitem__(frame.getlocal(5)))); + } + else if (frame.getlocal(1)._and(frame.getglobal("SRE_FLAG_UNICODE")).__nonzero__()) { + frame.getlocal(6).__call__(frame.getglobal("CHCODES").__getitem__(frame.getglobal("CH_UNICODE").__getitem__(frame.getlocal(5)))); + } + else { + frame.getlocal(6).__call__(frame.getglobal("CHCODES").__getitem__(frame.getlocal(5))); + } + } + else { + throw Py.makeException(frame.getglobal("error"), s$8); + } + } + frame.getlocal(6).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("FAILURE"))); + return Py.None; + } + + private static PyObject _optimize_charset$6(PyFrame frame) { + // Temporary Variables + int t$0$int, t$1$int, t$2$int, t$3$int, t$4$int; + PyObject[] t$0$PyObject__; + PyException t$0$PyException; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject, t$6$PyObject, t$7$PyObject, t$8$PyObject, t$9$PyObject; + + // Code + frame.setlocal(11, new PyList(new PyObject[] {})); + frame.setlocal(5, new PyList(new PyObject[] {i$2})._mul(i$9)); + try { + t$0$int = 0; + t$1$PyObject = frame.getlocal(0); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(2, t$0$PyObject__[0]); + frame.setlocal(4, t$0$PyObject__[1]); + if (frame.getlocal(2)._is(frame.getglobal("NEGATE")).__nonzero__()) { + frame.getlocal(11).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(4)})); + } + else if (frame.getlocal(2)._is(frame.getglobal("LITERAL")).__nonzero__()) { + frame.getlocal(5).__setitem__(frame.getlocal(1).__call__(frame.getlocal(4)), i$4); + } + else if (frame.getlocal(2)._is(frame.getglobal("RANGE")).__nonzero__()) { + t$1$int = 0; + t$3$PyObject = frame.getglobal("range").__call__(frame.getlocal(1).__call__(frame.getlocal(4).__getitem__(i$2)), frame.getlocal(1).__call__(frame.getlocal(4).__getitem__(i$4))._add(i$4)); + while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) { + frame.setlocal(10, t$2$PyObject); + frame.getlocal(5).__setitem__(frame.getlocal(10), i$4); + } + } + else if (frame.getlocal(2)._is(frame.getglobal("CATEGORY")).__nonzero__()) { + return frame.getlocal(0); + } + } + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("IndexError"))) { + return frame.getlocal(0); + } + else throw t$0$PyException; + } + t$4$PyObject = i$2; + frame.setlocal(10, t$4$PyObject); + frame.setlocal(6, t$4$PyObject); + frame.setlocal(7, t$4$PyObject); + frame.setlocal(9, new PyList(new PyObject[] {})); + t$2$int = 0; + t$5$PyObject = frame.getlocal(5); + while ((t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) { + frame.setlocal(12, t$4$PyObject); + if (frame.getlocal(12).__nonzero__()) { + if (frame.getlocal(7)._eq(i$2).__nonzero__()) { + frame.setlocal(6, frame.getlocal(10)); + } + frame.setlocal(7, frame.getlocal(7)._add(i$4)); + } + else if (frame.getlocal(7).__nonzero__()) { + frame.getlocal(9).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(6), frame.getlocal(7)})); + frame.setlocal(7, i$2); + } + frame.setlocal(10, frame.getlocal(10)._add(i$4)); + } + if (frame.getlocal(7).__nonzero__()) { + frame.getlocal(9).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(6), frame.getlocal(7)})); + } + if (frame.getglobal("len").__call__(frame.getlocal(9))._le(i$5).__nonzero__()) { + t$3$int = 0; + t$7$PyObject = frame.getlocal(9); + while ((t$6$PyObject = t$7$PyObject.__finditem__(t$3$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$6$PyObject, 2); + frame.setlocal(6, t$0$PyObject__[0]); + frame.setlocal(7, t$0$PyObject__[1]); + if (frame.getlocal(7)._eq(i$4).__nonzero__()) { + frame.getlocal(11).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getlocal(6)})); + } + else { + frame.getlocal(11).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("RANGE"), new PyTuple(new PyObject[] {frame.getlocal(6), frame.getlocal(6)._add(frame.getlocal(7))._sub(i$4)})})); + } + } + if (frame.getglobal("len").__call__(frame.getlocal(11))._lt(frame.getglobal("len").__call__(frame.getlocal(0))).__nonzero__()) { + return frame.getlocal(11); + } + } + else { + frame.setlocal(13, new PyList(new PyObject[] {})); + frame.setlocal(8, i$4); + frame.setlocal(3, i$2); + t$4$int = 0; + t$9$PyObject = frame.getlocal(5); + while ((t$8$PyObject = t$9$PyObject.__finditem__(t$4$int++)) != null) { + frame.setlocal(12, t$8$PyObject); + if (frame.getlocal(12).__nonzero__()) { + frame.setlocal(3, frame.getlocal(3)._add(frame.getlocal(8))); + } + frame.setlocal(8, frame.getlocal(8)._lshift(i$4)); + if (frame.getlocal(8)._gt(frame.getglobal("MAXCODE")).__nonzero__()) { + frame.getlocal(13).invoke("append", frame.getlocal(3)); + frame.setlocal(8, i$4); + frame.setlocal(3, i$2); + } + } + frame.getlocal(11).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("CHARSET"), frame.getlocal(13)})); + return frame.getlocal(11); + } + return frame.getlocal(0); + } + + private static PyObject _simple$7(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0).__getitem__(i$5).invoke("getwidth"), 2); + frame.setlocal(2, t$0$PyObject__[0]); + frame.setlocal(1, t$0$PyObject__[1]); + if (((t$0$PyObject = frame.getlocal(2)._eq(i$2)).__nonzero__() ? frame.getlocal(1)._eq(frame.getglobal("MAXREPEAT")) : t$0$PyObject).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$10); + } + return (t$0$PyObject = (frame.getlocal(2)._eq(t$1$PyObject = frame.getlocal(1)).__nonzero__() ? t$1$PyObject._eq(i$4) : Py.Zero)).__nonzero__() ? frame.getlocal(0).__getitem__(i$5).__getitem__(i$2).__getitem__(i$2)._ne(frame.getglobal("SUBPATTERN")) : t$0$PyObject; + } + + private static PyObject _compile_info$8(PyFrame frame) { + // Temporary Variables + int t$0$int, t$1$int, t$2$int, t$3$int; + boolean t$0$boolean; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject, t$6$PyObject, t$7$PyObject, t$8$PyObject; + + // Code + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1).invoke("getwidth"), 2); + frame.setlocal(5, t$0$PyObject__[0]); + frame.setlocal(3, t$0$PyObject__[1]); + if (frame.getlocal(5)._eq(i$2).__nonzero__()) { + return Py.None; + } + frame.setlocal(11, new PyList(new PyObject[] {})); + frame.setlocal(16, i$2); + frame.setlocal(4, new PyList(new PyObject[] {})); + if (frame.getlocal(2)._and(frame.getglobal("SRE_FLAG_IGNORECASE")).__not__().__nonzero__()) { + t$0$int = 0; + t$1$PyObject = frame.getlocal(1).__getattr__("data"); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(6, t$0$PyObject__[0]); + frame.setlocal(7, t$0$PyObject__[1]); + if (frame.getlocal(6)._is(frame.getglobal("LITERAL")).__nonzero__()) { + if (frame.getglobal("len").__call__(frame.getlocal(11))._eq(frame.getlocal(16)).__nonzero__()) { + frame.setlocal(16, frame.getlocal(16)._add(i$4)); + } + frame.getlocal(11).invoke("append", frame.getlocal(7)); + } + else if (((t$2$PyObject = frame.getlocal(6)._is(frame.getglobal("SUBPATTERN"))).__nonzero__() ? frame.getglobal("len").__call__(frame.getlocal(7).__getitem__(i$4))._eq(i$4) : t$2$PyObject).__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(7).__getitem__(i$4).__getitem__(i$2), 2); + frame.setlocal(6, t$0$PyObject__[0]); + frame.setlocal(7, t$0$PyObject__[1]); + if (frame.getlocal(6)._is(frame.getglobal("LITERAL")).__nonzero__()) { + frame.getlocal(11).invoke("append", frame.getlocal(7)); + } + else { + break; + } + } + else { + break; + } + } + if (((t$2$PyObject = frame.getlocal(11).__not__()).__nonzero__() ? frame.getlocal(1).__getattr__("data") : t$2$PyObject).__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1).__getattr__("data").__getitem__(i$2), 2); + frame.setlocal(6, t$0$PyObject__[0]); + frame.setlocal(7, t$0$PyObject__[1]); + if (((t$2$PyObject = frame.getlocal(6)._is(frame.getglobal("SUBPATTERN"))).__nonzero__() ? frame.getlocal(7).__getitem__(i$4) : t$2$PyObject).__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(7).__getitem__(i$4).__getitem__(i$2), 2); + frame.setlocal(6, t$0$PyObject__[0]); + frame.setlocal(7, t$0$PyObject__[1]); + if (frame.getlocal(6)._is(frame.getglobal("LITERAL")).__nonzero__()) { + frame.getlocal(4).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(6), frame.getlocal(7)})); + } + else if (frame.getlocal(6)._is(frame.getglobal("BRANCH")).__nonzero__()) { + frame.setlocal(15, new PyList(new PyObject[] {})); + t$1$int = 0; + t$3$PyObject = frame.getlocal(7).__getitem__(i$4); + while (t$0$boolean=(t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) { + frame.setlocal(9, t$2$PyObject); + if (frame.getlocal(9).__not__().__nonzero__()) { + break; + } + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(9).__getitem__(i$2), 2); + frame.setlocal(6, t$0$PyObject__[0]); + frame.setlocal(7, t$0$PyObject__[1]); + if (frame.getlocal(6)._is(frame.getglobal("LITERAL")).__nonzero__()) { + frame.getlocal(15).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(6), frame.getlocal(7)})); + } + else { + break; + } + } + if (!t$0$boolean) { + frame.setlocal(4, frame.getlocal(15)); + } + } + } + else if (frame.getlocal(6)._is(frame.getglobal("BRANCH")).__nonzero__()) { + frame.setlocal(15, new PyList(new PyObject[] {})); + t$2$int = 0; + t$5$PyObject = frame.getlocal(7).__getitem__(i$4); + while (t$0$boolean=(t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) { + frame.setlocal(9, t$4$PyObject); + if (frame.getlocal(9).__not__().__nonzero__()) { + break; + } + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(9).__getitem__(i$2), 2); + frame.setlocal(6, t$0$PyObject__[0]); + frame.setlocal(7, t$0$PyObject__[1]); + if (frame.getlocal(6)._is(frame.getglobal("LITERAL")).__nonzero__()) { + frame.getlocal(15).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(6), frame.getlocal(7)})); + } + else { + break; + } + } + if (!t$0$boolean) { + frame.setlocal(4, frame.getlocal(15)); + } + } + else if (frame.getlocal(6)._is(frame.getglobal("IN")).__nonzero__()) { + frame.setlocal(4, frame.getlocal(7)); + } + } + } + frame.setlocal(8, frame.getlocal(0).__getattr__("append")); + frame.getlocal(8).__call__(frame.getglobal("OPCODES").__getitem__(frame.getglobal("INFO"))); + frame.setlocal(10, frame.getglobal("len").__call__(frame.getlocal(0))); + frame.getlocal(8).__call__(i$2); + frame.setlocal(13, i$2); + if (frame.getlocal(11).__nonzero__()) { + frame.setlocal(13, frame.getglobal("SRE_INFO_PREFIX")); + if ((frame.getglobal("len").__call__(frame.getlocal(11))._eq(t$6$PyObject = frame.getlocal(16)).__nonzero__() ? t$6$PyObject._eq(frame.getglobal("len").__call__(frame.getlocal(1).__getattr__("data"))) : Py.Zero).__nonzero__()) { + frame.setlocal(13, frame.getlocal(13)._add(frame.getglobal("SRE_INFO_LITERAL"))); + } + } + else if (frame.getlocal(4).__nonzero__()) { + frame.setlocal(13, frame.getlocal(13)._add(frame.getglobal("SRE_INFO_CHARSET"))); + } + frame.getlocal(8).__call__(frame.getlocal(13)); + if (frame.getlocal(5)._lt(frame.getglobal("MAXCODE")).__nonzero__()) { + frame.getlocal(8).__call__(frame.getlocal(5)); + } + else { + frame.getlocal(8).__call__(frame.getglobal("MAXCODE")); + frame.setlocal(11, frame.getlocal(11).__getslice__(null, frame.getglobal("MAXCODE"), null)); + } + if (frame.getlocal(3)._lt(frame.getglobal("MAXCODE")).__nonzero__()) { + frame.getlocal(8).__call__(frame.getlocal(3)); + } + else { + frame.getlocal(8).__call__(i$2); + } + if (frame.getlocal(11).__nonzero__()) { + frame.getlocal(8).__call__(frame.getglobal("len").__call__(frame.getlocal(11))); + frame.getlocal(8).__call__(frame.getlocal(16)); + frame.getlocal(0).invoke("extend", frame.getlocal(11)); + frame.setlocal(14, new PyList(new PyObject[] {i$4.__neg__()})._add(new PyList(new PyObject[] {i$2})._mul(frame.getglobal("len").__call__(frame.getlocal(11))))); + t$3$int = 0; + t$7$PyObject = frame.getglobal("range").__call__(frame.getglobal("len").__call__(frame.getlocal(11))); + while ((t$6$PyObject = t$7$PyObject.__finditem__(t$3$int++)) != null) { + frame.setlocal(12, t$6$PyObject); + frame.getlocal(14).__setitem__(frame.getlocal(12)._add(i$4), frame.getlocal(14).__getitem__(frame.getlocal(12))._add(i$4)); + while (((t$8$PyObject = frame.getlocal(14).__getitem__(frame.getlocal(12)._add(i$4))._gt(i$2)).__nonzero__() ? frame.getlocal(11).__getitem__(frame.getlocal(12))._ne(frame.getlocal(11).__getitem__(frame.getlocal(14).__getitem__(frame.getlocal(12)._add(i$4))._sub(i$4))) : t$8$PyObject).__nonzero__()) { + frame.getlocal(14).__setitem__(frame.getlocal(12)._add(i$4), frame.getlocal(14).__getitem__(frame.getlocal(14).__getitem__(frame.getlocal(12)._add(i$4))._sub(i$4))._add(i$4)); + } + } + frame.getlocal(0).invoke("extend", frame.getlocal(14).__getslice__(i$4, null, null)); + } + else if (frame.getlocal(4).__nonzero__()) { + frame.getglobal("_compile_charset").__call__(frame.getlocal(4), i$2, frame.getlocal(0)); + } + frame.getlocal(0).__setitem__(frame.getlocal(10), frame.getglobal("len").__call__(frame.getlocal(0))._sub(frame.getlocal(10))); + return Py.None; + } + + private static PyObject _code$9(PyFrame frame) { + frame.setlocal(1, frame.getlocal(0).__getattr__("pattern").__getattr__("flags")._or(frame.getlocal(1))); + frame.setlocal(2, new PyList(new PyObject[] {})); + frame.getglobal("_compile_info").__call__(frame.getlocal(2), frame.getlocal(0), frame.getlocal(1)); + frame.getglobal("_compile").__call__(frame.getlocal(2), frame.getlocal(0).__getattr__("data"), frame.getlocal(1)); + frame.getlocal(2).invoke("append", frame.getglobal("OPCODES").__getitem__(frame.getglobal("SUCCESS"))); + return frame.getlocal(2); + } + + private static PyObject compile$10(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + if (frame.getglobal("type").__call__(frame.getlocal(0))._in(frame.getglobal("STRING_TYPES")).__nonzero__()) { + frame.setlocal(7, org.python.core.imp.importOne("sre_parse", frame)); + frame.setlocal(8, frame.getlocal(0)); + frame.setlocal(0, frame.getlocal(7).__getattr__("parse").__call__(frame.getlocal(0), frame.getlocal(1))); + } + else { + frame.setlocal(8, frame.getglobal("None")); + } + frame.setlocal(3, frame.getglobal("_code").__call__(frame.getlocal(0), frame.getlocal(1))); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("pattern").__getattr__("groups")._le(i$12), s$13); + frame.setlocal(2, frame.getlocal(0).__getattr__("pattern").__getattr__("groupdict")); + frame.setlocal(4, new PyList(new PyObject[] {frame.getglobal("None")})._mul(frame.getlocal(0).__getattr__("pattern").__getattr__("groups"))); + t$0$int = 0; + t$1$PyObject = frame.getlocal(2).invoke("items"); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(5, t$0$PyObject__[0]); + frame.setlocal(6, t$0$PyObject__[1]); + frame.getlocal(4).__setitem__(frame.getlocal(6), frame.getlocal(5)); + } + return frame.getglobal("_sre").__getattr__("compile").__call__(new PyObject[] {frame.getlocal(8), frame.getlocal(1), frame.getlocal(3), frame.getlocal(0).__getattr__("pattern").__getattr__("groups")._sub(i$4), frame.getlocal(2), frame.getlocal(4)}); + } + + private static PyObject main$11(PyFrame frame) { + frame.setglobal("__file__", s$14); + + // Temporary Variables + PyException t$0$PyException; + + // Code + frame.setlocal("_sre", org.python.core.imp.importOne("_sre", frame)); + org.python.core.imp.importAll("sre_constants", frame); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getname("_sre").__getattr__("MAGIC")._eq(frame.getname("MAGIC")), s$0); + frame.setlocal("MAXCODE", i$1); + frame.setlocal("_compile", new PyFunction(frame.f_globals, new PyObject[] {}, c$2__compile)); + frame.setlocal("_compile_charset", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$4__compile_charset)); + frame.setlocal("_optimize_charset", new PyFunction(frame.f_globals, new PyObject[] {}, c$5__optimize_charset)); + frame.setlocal("_simple", new PyFunction(frame.f_globals, new PyObject[] {}, c$6__simple)); + frame.setlocal("_compile_info", new PyFunction(frame.f_globals, new PyObject[] {}, c$7__compile_info)); + frame.setlocal("STRING_TYPES", new PyList(new PyObject[] {frame.getname("type").__call__(s$11)})); + try { + frame.getname("STRING_TYPES").invoke("append", frame.getname("type").__call__(frame.getname("unicode").__call__(s$11))); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getname("NameError"))) { + // pass + } + else throw t$0$PyException; + } + frame.setlocal("_code", new PyFunction(frame.f_globals, new PyObject[] {}, c$8__code)); + frame.setlocal("compile", new PyFunction(frame.f_globals, new PyObject[] {i$2}, c$9_compile)); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("sre_compile")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "sre_compile"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(sre_compile._PyInner.class, newargs, sre_compile.jpy$packages, sre_compile.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/sre_constants$_PyInner.class b/server/jpywork/sre_constants$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..cce46552132a33a257d5547c578f0d86a2ee07e0 GIT binary patch literal 14414 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 K*#g3kNdFCrwTFcO literal 0 HcmV?d00001 diff --git a/server/jpywork/sre_constants.java b/server/jpywork/sre_constants.java new file mode 100644 index 00000000..8e993cce --- /dev/null +++ b/server/jpywork/sre_constants.java @@ -0,0 +1,407 @@ +import org.python.core.*; + +public class sre_constants extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject i$0; + private static PyObject i$1; + private static PyObject s$2; + private static PyObject s$3; + private static PyObject s$4; + private static PyObject s$5; + private static PyObject s$6; + private static PyObject s$7; + private static PyObject s$8; + private static PyObject s$9; + private static PyObject s$10; + private static PyObject s$11; + private static PyObject s$12; + private static PyObject s$13; + private static PyObject s$14; + private static PyObject s$15; + private static PyObject s$16; + private static PyObject s$17; + private static PyObject s$18; + private static PyObject s$19; + private static PyObject s$20; + private static PyObject s$21; + private static PyObject s$22; + private static PyObject s$23; + private static PyObject s$24; + private static PyObject s$25; + private static PyObject s$26; + private static PyObject s$27; + private static PyObject s$28; + private static PyObject s$29; + private static PyObject s$30; + private static PyObject s$31; + private static PyObject s$32; + private static PyObject s$33; + private static PyObject s$34; + private static PyObject s$35; + private static PyObject s$36; + private static PyObject s$37; + private static PyObject s$38; + private static PyObject s$39; + private static PyObject s$40; + private static PyObject s$41; + private static PyObject s$42; + private static PyObject s$43; + private static PyObject s$44; + private static PyObject s$45; + private static PyObject s$46; + private static PyObject s$47; + private static PyObject s$48; + private static PyObject s$49; + private static PyObject s$50; + private static PyObject s$51; + private static PyObject s$52; + private static PyObject s$53; + private static PyObject s$54; + private static PyObject s$55; + private static PyObject s$56; + private static PyObject s$57; + private static PyObject s$58; + private static PyObject s$59; + private static PyObject s$60; + private static PyObject s$61; + private static PyObject s$62; + private static PyObject i$63; + private static PyObject i$64; + private static PyObject i$65; + private static PyObject i$66; + private static PyObject i$67; + private static PyObject i$68; + private static PyObject i$69; + private static PyObject i$70; + private static PyObject i$71; + private static PyObject s$72; + private static PyObject s$73; + private static PyObject s$74; + private static PyObject s$75; + private static PyObject s$76; + private static PyObject s$77; + private static PyObject s$78; + private static PyObject s$79; + private static PyObject s$80; + private static PyObject s$81; + private static PyObject s$82; + private static PyObject s$83; + private static PyObject s$84; + private static PyObject s$85; + private static PyObject s$86; + private static PyObject s$87; + private static PyObject s$88; + private static PyObject s$89; + private static PyObject s$90; + private static PyObject s$91; + private static PyFunctionTable funcTable; + private static PyCode c$0_error; + private static PyCode c$1_makedict; + private static PyCode c$2_lambda; + private static PyCode c$3_dump; + private static PyCode c$4_main; + private static void initConstants() { + i$0 = Py.newInteger(20010320); + i$1 = Py.newInteger(65535); + s$2 = Py.newString("failure"); + s$3 = Py.newString("success"); + s$4 = Py.newString("any"); + s$5 = Py.newString("any_all"); + s$6 = Py.newString("assert"); + s$7 = Py.newString("assert_not"); + s$8 = Py.newString("at"); + s$9 = Py.newString("branch"); + s$10 = Py.newString("call"); + s$11 = Py.newString("category"); + s$12 = Py.newString("charset"); + s$13 = Py.newString("groupref"); + s$14 = Py.newString("groupref_ignore"); + s$15 = Py.newString("in"); + s$16 = Py.newString("in_ignore"); + s$17 = Py.newString("info"); + s$18 = Py.newString("jump"); + s$19 = Py.newString("literal"); + s$20 = Py.newString("literal_ignore"); + s$21 = Py.newString("mark"); + s$22 = Py.newString("max_repeat"); + s$23 = Py.newString("max_until"); + s$24 = Py.newString("min_repeat"); + s$25 = Py.newString("min_until"); + s$26 = Py.newString("negate"); + s$27 = Py.newString("not_literal"); + s$28 = Py.newString("not_literal_ignore"); + s$29 = Py.newString("range"); + s$30 = Py.newString("repeat"); + s$31 = Py.newString("repeat_one"); + s$32 = Py.newString("subpattern"); + s$33 = Py.newString("at_beginning"); + s$34 = Py.newString("at_beginning_line"); + s$35 = Py.newString("at_beginning_string"); + s$36 = Py.newString("at_boundary"); + s$37 = Py.newString("at_non_boundary"); + s$38 = Py.newString("at_end"); + s$39 = Py.newString("at_end_line"); + s$40 = Py.newString("at_end_string"); + s$41 = Py.newString("at_loc_boundary"); + s$42 = Py.newString("at_loc_non_boundary"); + s$43 = Py.newString("at_uni_boundary"); + s$44 = Py.newString("at_uni_non_boundary"); + s$45 = Py.newString("category_digit"); + s$46 = Py.newString("category_not_digit"); + s$47 = Py.newString("category_space"); + s$48 = Py.newString("category_not_space"); + s$49 = Py.newString("category_word"); + s$50 = Py.newString("category_not_word"); + s$51 = Py.newString("category_linebreak"); + s$52 = Py.newString("category_not_linebreak"); + s$53 = Py.newString("category_loc_word"); + s$54 = Py.newString("category_loc_not_word"); + s$55 = Py.newString("category_uni_digit"); + s$56 = Py.newString("category_uni_not_digit"); + s$57 = Py.newString("category_uni_space"); + s$58 = Py.newString("category_uni_not_space"); + s$59 = Py.newString("category_uni_word"); + s$60 = Py.newString("category_uni_not_word"); + s$61 = Py.newString("category_uni_linebreak"); + s$62 = Py.newString("category_uni_not_linebreak"); + i$63 = Py.newInteger(0); + i$64 = Py.newInteger(1); + i$65 = Py.newInteger(2); + i$66 = Py.newInteger(4); + i$67 = Py.newInteger(8); + i$68 = Py.newInteger(16); + i$69 = Py.newInteger(32); + i$70 = Py.newInteger(64); + i$71 = Py.newInteger(128); + s$72 = Py.newString("__main__"); + s$73 = Py.newString("#define %s_%s %s\012"); + s$74 = Py.newString("sre_constants.h"); + s$75 = Py.newString("w"); + s$76 = Py.newString("/*\012 * Secret Labs' Regular Expression Engine\012 *\012 * regular expression matching engine\012 *\012 * NOTE: This file is generated by sre_constants.py. If you need\012 * to change anything in here, edit sre_constants.py and run it.\012 *\012 * Copyright (c) 1997-2001 by Secret Labs AB. All rights reserved.\012 *\012 * See the _sre.c file for information on usage and redistribution.\012 */\012\012"); + s$77 = Py.newString("#define SRE_MAGIC %d\012"); + s$78 = Py.newString("SRE_OP"); + s$79 = Py.newString("SRE"); + s$80 = Py.newString("#define SRE_FLAG_TEMPLATE %d\012"); + s$81 = Py.newString("#define SRE_FLAG_IGNORECASE %d\012"); + s$82 = Py.newString("#define SRE_FLAG_LOCALE %d\012"); + s$83 = Py.newString("#define SRE_FLAG_MULTILINE %d\012"); + s$84 = Py.newString("#define SRE_FLAG_DOTALL %d\012"); + s$85 = Py.newString("#define SRE_FLAG_UNICODE %d\012"); + s$86 = Py.newString("#define SRE_FLAG_VERBOSE %d\012"); + s$87 = Py.newString("#define SRE_INFO_PREFIX %d\012"); + s$88 = Py.newString("#define SRE_INFO_LITERAL %d\012"); + s$89 = Py.newString("#define SRE_INFO_CHARSET %d\012"); + s$90 = Py.newString("done"); + s$91 = Py.newString("/usr/share/jython/Lib-cpython/sre_constants.py"); + funcTable = new _PyInner(); + c$0_error = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_constants.py", "error", false, false, funcTable, 0, null, null, 0, 0); + c$1_makedict = Py.newCode(1, new String[] {"list", "i", "item", "d"}, "/usr/share/jython/Lib-cpython/sre_constants.py", "makedict", false, false, funcTable, 1, null, null, 0, 1); + c$2_lambda = Py.newCode(2, new String[] {"a", "b"}, "/usr/share/jython/Lib-cpython/sre_constants.py", "", false, false, funcTable, 2, null, null, 0, 1); + c$3_dump = Py.newCode(3, new String[] {"f", "d", "prefix", "v", "k", "items"}, "/usr/share/jython/Lib-cpython/sre_constants.py", "dump", false, false, funcTable, 3, null, null, 0, 1); + c$4_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_constants.py", "main", false, false, funcTable, 4, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$4_main == null) _PyInner.initConstants(); + return c$4_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.error$1(frame); + case 1: + return _PyInner.makedict$2(frame); + case 2: + return _PyInner.lambda$3(frame); + case 3: + return _PyInner.dump$4(frame); + case 4: + return _PyInner.main$5(frame); + default: + return null; + } + } + + private static PyObject error$1(PyFrame frame) { + // pass + return frame.getf_locals(); + } + + private static PyObject makedict$2(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(3, new PyDictionary(new PyObject[] {})); + frame.setlocal(1, i$63); + t$0$int = 0; + t$1$PyObject = frame.getlocal(0); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(2, t$0$PyObject); + frame.getlocal(3).__setitem__(frame.getlocal(2), frame.getlocal(1)); + frame.setlocal(1, frame.getlocal(1)._add(i$64)); + } + return frame.getlocal(3); + } + + private static PyObject lambda$3(PyFrame frame) { + return frame.getglobal("cmp").__call__(frame.getlocal(0).__getitem__(i$64), frame.getlocal(1).__getitem__(i$64)); + } + + private static PyObject dump$4(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(5, frame.getlocal(1).invoke("items")); + frame.getlocal(5).invoke("sort", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_lambda)); + t$0$int = 0; + t$1$PyObject = frame.getlocal(5); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(4, t$0$PyObject__[0]); + frame.setlocal(3, t$0$PyObject__[1]); + frame.getlocal(0).invoke("write", s$73._mod(new PyTuple(new PyObject[] {frame.getlocal(2), frame.getglobal("string").__getattr__("upper").__call__(frame.getlocal(4)), frame.getlocal(3)}))); + } + return Py.None; + } + + private static PyObject main$5(PyFrame frame) { + frame.setglobal("__file__", s$91); + + frame.setlocal("MAGIC", i$0); + frame.setlocal("MAXREPEAT", i$1); + frame.setlocal("error", Py.makeClass("error", new PyObject[] {frame.getname("Exception")}, c$0_error, null)); + frame.setlocal("FAILURE", s$2); + frame.setlocal("SUCCESS", s$3); + frame.setlocal("ANY", s$4); + frame.setlocal("ANY_ALL", s$5); + frame.setlocal("ASSERT", s$6); + frame.setlocal("ASSERT_NOT", s$7); + frame.setlocal("AT", s$8); + frame.setlocal("BRANCH", s$9); + frame.setlocal("CALL", s$10); + frame.setlocal("CATEGORY", s$11); + frame.setlocal("CHARSET", s$12); + frame.setlocal("GROUPREF", s$13); + frame.setlocal("GROUPREF_IGNORE", s$14); + frame.setlocal("IN", s$15); + frame.setlocal("IN_IGNORE", s$16); + frame.setlocal("INFO", s$17); + frame.setlocal("JUMP", s$18); + frame.setlocal("LITERAL", s$19); + frame.setlocal("LITERAL_IGNORE", s$20); + frame.setlocal("MARK", s$21); + frame.setlocal("MAX_REPEAT", s$22); + frame.setlocal("MAX_UNTIL", s$23); + frame.setlocal("MIN_REPEAT", s$24); + frame.setlocal("MIN_UNTIL", s$25); + frame.setlocal("NEGATE", s$26); + frame.setlocal("NOT_LITERAL", s$27); + frame.setlocal("NOT_LITERAL_IGNORE", s$28); + frame.setlocal("RANGE", s$29); + frame.setlocal("REPEAT", s$30); + frame.setlocal("REPEAT_ONE", s$31); + frame.setlocal("SUBPATTERN", s$32); + frame.setlocal("AT_BEGINNING", s$33); + frame.setlocal("AT_BEGINNING_LINE", s$34); + frame.setlocal("AT_BEGINNING_STRING", s$35); + frame.setlocal("AT_BOUNDARY", s$36); + frame.setlocal("AT_NON_BOUNDARY", s$37); + frame.setlocal("AT_END", s$38); + frame.setlocal("AT_END_LINE", s$39); + frame.setlocal("AT_END_STRING", s$40); + frame.setlocal("AT_LOC_BOUNDARY", s$41); + frame.setlocal("AT_LOC_NON_BOUNDARY", s$42); + frame.setlocal("AT_UNI_BOUNDARY", s$43); + frame.setlocal("AT_UNI_NON_BOUNDARY", s$44); + frame.setlocal("CATEGORY_DIGIT", s$45); + frame.setlocal("CATEGORY_NOT_DIGIT", s$46); + frame.setlocal("CATEGORY_SPACE", s$47); + frame.setlocal("CATEGORY_NOT_SPACE", s$48); + frame.setlocal("CATEGORY_WORD", s$49); + frame.setlocal("CATEGORY_NOT_WORD", s$50); + frame.setlocal("CATEGORY_LINEBREAK", s$51); + frame.setlocal("CATEGORY_NOT_LINEBREAK", s$52); + frame.setlocal("CATEGORY_LOC_WORD", s$53); + frame.setlocal("CATEGORY_LOC_NOT_WORD", s$54); + frame.setlocal("CATEGORY_UNI_DIGIT", s$55); + frame.setlocal("CATEGORY_UNI_NOT_DIGIT", s$56); + frame.setlocal("CATEGORY_UNI_SPACE", s$57); + frame.setlocal("CATEGORY_UNI_NOT_SPACE", s$58); + frame.setlocal("CATEGORY_UNI_WORD", s$59); + frame.setlocal("CATEGORY_UNI_NOT_WORD", s$60); + frame.setlocal("CATEGORY_UNI_LINEBREAK", s$61); + frame.setlocal("CATEGORY_UNI_NOT_LINEBREAK", s$62); + frame.setlocal("OPCODES", new PyList(new PyObject[] {frame.getname("FAILURE"), frame.getname("SUCCESS"), frame.getname("ANY"), frame.getname("ANY_ALL"), frame.getname("ASSERT"), frame.getname("ASSERT_NOT"), frame.getname("AT"), frame.getname("BRANCH"), frame.getname("CALL"), frame.getname("CATEGORY"), frame.getname("CHARSET"), frame.getname("GROUPREF"), frame.getname("GROUPREF_IGNORE"), frame.getname("IN"), frame.getname("IN_IGNORE"), frame.getname("INFO"), frame.getname("JUMP"), frame.getname("LITERAL"), frame.getname("LITERAL_IGNORE"), frame.getname("MARK"), frame.getname("MAX_UNTIL"), frame.getname("MIN_UNTIL"), frame.getname("NOT_LITERAL"), frame.getname("NOT_LITERAL_IGNORE"), frame.getname("NEGATE"), frame.getname("RANGE"), frame.getname("REPEAT"), frame.getname("REPEAT_ONE"), frame.getname("SUBPATTERN")})); + frame.setlocal("ATCODES", new PyList(new PyObject[] {frame.getname("AT_BEGINNING"), frame.getname("AT_BEGINNING_LINE"), frame.getname("AT_BEGINNING_STRING"), frame.getname("AT_BOUNDARY"), frame.getname("AT_NON_BOUNDARY"), frame.getname("AT_END"), frame.getname("AT_END_LINE"), frame.getname("AT_END_STRING"), frame.getname("AT_LOC_BOUNDARY"), frame.getname("AT_LOC_NON_BOUNDARY"), frame.getname("AT_UNI_BOUNDARY"), frame.getname("AT_UNI_NON_BOUNDARY")})); + frame.setlocal("CHCODES", new PyList(new PyObject[] {frame.getname("CATEGORY_DIGIT"), frame.getname("CATEGORY_NOT_DIGIT"), frame.getname("CATEGORY_SPACE"), frame.getname("CATEGORY_NOT_SPACE"), frame.getname("CATEGORY_WORD"), frame.getname("CATEGORY_NOT_WORD"), frame.getname("CATEGORY_LINEBREAK"), frame.getname("CATEGORY_NOT_LINEBREAK"), frame.getname("CATEGORY_LOC_WORD"), frame.getname("CATEGORY_LOC_NOT_WORD"), frame.getname("CATEGORY_UNI_DIGIT"), frame.getname("CATEGORY_UNI_NOT_DIGIT"), frame.getname("CATEGORY_UNI_SPACE"), frame.getname("CATEGORY_UNI_NOT_SPACE"), frame.getname("CATEGORY_UNI_WORD"), frame.getname("CATEGORY_UNI_NOT_WORD"), frame.getname("CATEGORY_UNI_LINEBREAK"), frame.getname("CATEGORY_UNI_NOT_LINEBREAK")})); + frame.setlocal("makedict", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_makedict)); + frame.setlocal("OPCODES", frame.getname("makedict").__call__(frame.getname("OPCODES"))); + frame.setlocal("ATCODES", frame.getname("makedict").__call__(frame.getname("ATCODES"))); + frame.setlocal("CHCODES", frame.getname("makedict").__call__(frame.getname("CHCODES"))); + frame.setlocal("OP_IGNORE", new PyDictionary(new PyObject[] {frame.getname("GROUPREF"), frame.getname("GROUPREF_IGNORE"), frame.getname("IN"), frame.getname("IN_IGNORE"), frame.getname("LITERAL"), frame.getname("LITERAL_IGNORE"), frame.getname("NOT_LITERAL"), frame.getname("NOT_LITERAL_IGNORE")})); + frame.setlocal("AT_MULTILINE", new PyDictionary(new PyObject[] {frame.getname("AT_BEGINNING"), frame.getname("AT_BEGINNING_LINE"), frame.getname("AT_END"), frame.getname("AT_END_LINE")})); + frame.setlocal("AT_LOCALE", new PyDictionary(new PyObject[] {frame.getname("AT_BOUNDARY"), frame.getname("AT_LOC_BOUNDARY"), frame.getname("AT_NON_BOUNDARY"), frame.getname("AT_LOC_NON_BOUNDARY")})); + frame.setlocal("AT_UNICODE", new PyDictionary(new PyObject[] {frame.getname("AT_BOUNDARY"), frame.getname("AT_UNI_BOUNDARY"), frame.getname("AT_NON_BOUNDARY"), frame.getname("AT_UNI_NON_BOUNDARY")})); + frame.setlocal("CH_LOCALE", new PyDictionary(new PyObject[] {frame.getname("CATEGORY_DIGIT"), frame.getname("CATEGORY_DIGIT"), frame.getname("CATEGORY_NOT_DIGIT"), frame.getname("CATEGORY_NOT_DIGIT"), frame.getname("CATEGORY_SPACE"), frame.getname("CATEGORY_SPACE"), frame.getname("CATEGORY_NOT_SPACE"), frame.getname("CATEGORY_NOT_SPACE"), frame.getname("CATEGORY_WORD"), frame.getname("CATEGORY_LOC_WORD"), frame.getname("CATEGORY_NOT_WORD"), frame.getname("CATEGORY_LOC_NOT_WORD"), frame.getname("CATEGORY_LINEBREAK"), frame.getname("CATEGORY_LINEBREAK"), frame.getname("CATEGORY_NOT_LINEBREAK"), frame.getname("CATEGORY_NOT_LINEBREAK")})); + frame.setlocal("CH_UNICODE", new PyDictionary(new PyObject[] {frame.getname("CATEGORY_DIGIT"), frame.getname("CATEGORY_UNI_DIGIT"), frame.getname("CATEGORY_NOT_DIGIT"), frame.getname("CATEGORY_UNI_NOT_DIGIT"), frame.getname("CATEGORY_SPACE"), frame.getname("CATEGORY_UNI_SPACE"), frame.getname("CATEGORY_NOT_SPACE"), frame.getname("CATEGORY_UNI_NOT_SPACE"), frame.getname("CATEGORY_WORD"), frame.getname("CATEGORY_UNI_WORD"), frame.getname("CATEGORY_NOT_WORD"), frame.getname("CATEGORY_UNI_NOT_WORD"), frame.getname("CATEGORY_LINEBREAK"), frame.getname("CATEGORY_UNI_LINEBREAK"), frame.getname("CATEGORY_NOT_LINEBREAK"), frame.getname("CATEGORY_UNI_NOT_LINEBREAK")})); + frame.setlocal("SRE_FLAG_TEMPLATE", i$64); + frame.setlocal("SRE_FLAG_IGNORECASE", i$65); + frame.setlocal("SRE_FLAG_LOCALE", i$66); + frame.setlocal("SRE_FLAG_MULTILINE", i$67); + frame.setlocal("SRE_FLAG_DOTALL", i$68); + frame.setlocal("SRE_FLAG_UNICODE", i$69); + frame.setlocal("SRE_FLAG_VERBOSE", i$70); + frame.setlocal("SRE_FLAG_DEBUG", i$71); + frame.setlocal("SRE_INFO_PREFIX", i$64); + frame.setlocal("SRE_INFO_LITERAL", i$65); + frame.setlocal("SRE_INFO_CHARSET", i$66); + if (frame.getname("__name__")._eq(s$72).__nonzero__()) { + frame.setlocal("string", org.python.core.imp.importOne("string", frame)); + frame.setlocal("dump", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_dump)); + frame.setlocal("f", frame.getname("open").__call__(s$74, s$75)); + frame.getname("f").invoke("write", s$76); + frame.getname("f").invoke("write", s$77._mod(frame.getname("MAGIC"))); + frame.getname("dump").__call__(frame.getname("f"), frame.getname("OPCODES"), s$78); + frame.getname("dump").__call__(frame.getname("f"), frame.getname("ATCODES"), s$79); + frame.getname("dump").__call__(frame.getname("f"), frame.getname("CHCODES"), s$79); + frame.getname("f").invoke("write", s$80._mod(frame.getname("SRE_FLAG_TEMPLATE"))); + frame.getname("f").invoke("write", s$81._mod(frame.getname("SRE_FLAG_IGNORECASE"))); + frame.getname("f").invoke("write", s$82._mod(frame.getname("SRE_FLAG_LOCALE"))); + frame.getname("f").invoke("write", s$83._mod(frame.getname("SRE_FLAG_MULTILINE"))); + frame.getname("f").invoke("write", s$84._mod(frame.getname("SRE_FLAG_DOTALL"))); + frame.getname("f").invoke("write", s$85._mod(frame.getname("SRE_FLAG_UNICODE"))); + frame.getname("f").invoke("write", s$86._mod(frame.getname("SRE_FLAG_VERBOSE"))); + frame.getname("f").invoke("write", s$87._mod(frame.getname("SRE_INFO_PREFIX"))); + frame.getname("f").invoke("write", s$88._mod(frame.getname("SRE_INFO_LITERAL"))); + frame.getname("f").invoke("write", s$89._mod(frame.getname("SRE_INFO_CHARSET"))); + frame.getname("f").invoke("close"); + Py.println(s$90); + } + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("sre_constants")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "sre_constants"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(sre_constants._PyInner.class, newargs, sre_constants.jpy$packages, sre_constants.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/sre_parse$_PyInner.class b/server/jpywork/sre_parse$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..e4ff92173c74d3ffe0885222fae915dd6b3be4b9 GIT binary patch literal 34820 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

2@w4=nK^ZM@T3 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 literal 0 HcmV?d00001 diff --git a/server/jpywork/sre_parse.class b/server/jpywork/sre_parse.class new file mode 100644 index 0000000000000000000000000000000000000000..8e20fe0bba7a8b1bba199f9594f0054fd14d06eb GIT binary patch literal 2491 zcma)7>30)V6#v~OnRyA*c6dNpWEGG$U< zB55K`u#dYZ-NA|*lm_=r9G6~9;Kyr?RaMsy##C67D)wbWm~(h!MpMMf4@yIXIa;-* z!qbg*T`Q5g-U+v)O---jM$xMEgxPIAc4*-cAuAd|T$Zu#5!e>5;s<`bjgaae7$>B6 zgp<;QeNCRt=nS0DS8K%OFep^R$$CXbg^9XfiT!|KE@8Di?a5l~he5PCRHZ^o)eDs@ z%p7Gw=(CW4!LWd^qNNo!4GU2@JhjI?>F%2L#juEwj#XW1)5R7{ZMu}eG(Lqu#th2| z+2l*(%5Wp0_a7NBtRk3+jvq4IMCeXF>akxbJm%N5?|usm2BCMv59DaQIw945ccLN* z#+C%798y?kA&+iCPZNTjz84P%eoR=>KN70aV6&b8>0$V3Uq?8)065TNhhQ7#Ppt4s14YXGcHHuoi}}g)pmFjAZP`vRW(> z20M8Buf$DkBk*YsuPTl;hJ!$=9JXSe{=3`4J=j4oOETW;`T=24|3C+inps0R?83b! zb`$vZ)myj^!vs^+1FcLbcY-wW)4_iW>VH4!lvK-zkk<1@=7{h}m9=LXR8c{5(76kSavaV8Y!wYK-LcYBbtvrU?Iz1&C9vIi;9Ji1~j$vC4 z4i1|*MChH#AsKE9591Mnc`Q_;ZdDRiw}+TwPFslPN-$9*ES>Q+8Yc3c^4RXM9!&01 zDpWbR@JvixQ~3U}3Qy?)u`mfq$Y}=1C~`}ZFt@)wQY&~4N3e;ZOaQ}if)OQ)jiEv? zlp9QjRfd3&)?>*~BV=RcdUC?`PB19KEKNi&tk(RBWQYld8_Uyv%y5#Bij-tHP3UfF z1ySq`B z$yP~h^&Q5h_6$~lkOGhf)3*jRb0i4)e@w1Wty}7mmRfigUQZ&Na`LXz?=Pn0$qBY=f^9j?MULaSm(F03Zwi;7Nou zW+Q`jFt86PkiH{Y87u*T0A%tPuy)4GNQ5b5aWe`n)$Pb6(&c$RcnKREzVQNXJ&)Tj zVXJcicb&)feEuSK9-Q&gqoK+CiQddrEX(|bEcW1jbYUa`g0NSEKt0H!3&0=wE9s+` z(L1s>#W#w4YHd1y(z6SAx2B)eq3pGNI3WxD1fvGMW+vKMbuo}X#v;1-4*g5{BaO_$9Y2nxwe^xkl zH-BC@b`O71ICd|8Sva=MUloo$o4+m`oAWn?W6$Al3&)6g?yv9h|kY}uoNqi$Jeda^dSQnU0_BE-9{RHMh3qd2D"); + s$89 = Py.newString("bad character in group name"); + s$90 = Py.newString("="); + s$91 = Py.newString("unknown group name"); + s$92 = Py.newString("unexpected end of pattern"); + s$93 = Py.newString("unknown specifier: ?P%s"); + s$94 = Py.newString(":"); + s$95 = Py.newString("unbalanced parenthesis"); + s$96 = Py.newString("!"); + s$97 = Py.newString("syntax error"); + s$98 = Py.newString("unknown extension"); + s$99 = Py.newString("$"); + s$100 = Py.newString("parser error"); + s$101 = Py.newString("bogus characters at end of regular expression"); + s$102 = Py.newString("\\g"); + s$103 = Py.newString("unterminated group name"); + s$104 = Py.newString("bad group name"); + i$105 = Py.newInteger(6); + s$106 = Py.newString("empty group"); + s$107 = Py.newString("/usr/share/jython/Lib-cpython/sre_parse.py"); + funcTable = new _PyInner(); + c$0___init__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__init__", false, false, funcTable, 0, null, null, 0, 1); + c$1_opengroup = Py.newCode(2, new String[] {"self", "name", "gid"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "opengroup", false, false, funcTable, 1, null, null, 0, 1); + c$2_closegroup = Py.newCode(2, new String[] {"self", "gid"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "closegroup", false, false, funcTable, 2, null, null, 0, 1); + c$3_checkgroup = Py.newCode(2, new String[] {"self", "gid"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "checkgroup", false, false, funcTable, 3, null, null, 0, 1); + c$4_Pattern = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_parse.py", "Pattern", false, false, funcTable, 4, null, null, 0, 0); + c$5___init__ = Py.newCode(3, new String[] {"self", "pattern", "data"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__init__", false, false, funcTable, 5, null, null, 0, 1); + c$6_dump = Py.newCode(2, new String[] {"self", "level", "nl", "av", "i", "op", "a"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "dump", false, false, funcTable, 6, null, null, 0, 1); + c$7___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__repr__", false, false, funcTable, 7, null, null, 0, 1); + c$8___len__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__len__", false, false, funcTable, 8, null, null, 0, 1); + c$9___delitem__ = Py.newCode(2, new String[] {"self", "index"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__delitem__", false, false, funcTable, 9, null, null, 0, 1); + c$10___getitem__ = Py.newCode(2, new String[] {"self", "index"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__getitem__", false, false, funcTable, 10, null, null, 0, 1); + c$11___setitem__ = Py.newCode(3, new String[] {"self", "index", "code"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__setitem__", false, false, funcTable, 11, null, null, 0, 1); + c$12___getslice__ = Py.newCode(3, new String[] {"self", "start", "stop"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__getslice__", false, false, funcTable, 12, null, null, 0, 1); + c$13_insert = Py.newCode(3, new String[] {"self", "index", "code"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "insert", false, false, funcTable, 13, null, null, 0, 1); + c$14_append = Py.newCode(2, new String[] {"self", "code"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "append", false, false, funcTable, 14, null, null, 0, 1); + c$15_getwidth = Py.newCode(1, new String[] {"self", "hi", "lo", "op", "av", "l", "j", "i", "h"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "getwidth", false, false, funcTable, 15, null, null, 0, 1); + c$16_SubPattern = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_parse.py", "SubPattern", false, false, funcTable, 16, null, null, 0, 0); + c$17___init__ = Py.newCode(2, new String[] {"self", "string"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "__init__", false, false, funcTable, 17, null, null, 0, 1); + c$18__Tokenizer__next = Py.newCode(1, new String[] {"self", "char", "c"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "_Tokenizer__next", false, false, funcTable, 18, null, null, 0, 1); + c$19_match = Py.newCode(3, new String[] {"self", "char", "skip"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "match", false, false, funcTable, 19, null, null, 0, 1); + c$20_get = Py.newCode(1, new String[] {"self", "this"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "get", false, false, funcTable, 20, null, null, 0, 1); + c$21_tell = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "tell", false, false, funcTable, 21, null, null, 0, 1); + c$22_seek = Py.newCode(2, new String[] {"self", "index"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "seek", false, false, funcTable, 22, null, null, 0, 1); + c$23_Tokenizer = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_parse.py", "Tokenizer", false, false, funcTable, 23, null, null, 0, 0); + c$24_isident = Py.newCode(1, new String[] {"char"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "isident", false, false, funcTable, 24, null, null, 0, 1); + c$25_isdigit = Py.newCode(1, new String[] {"char"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "isdigit", false, false, funcTable, 25, null, null, 0, 1); + c$26_isname = Py.newCode(1, new String[] {"name", "char"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "isname", false, false, funcTable, 26, null, null, 0, 1); + c$27__group = Py.newCode(2, new String[] {"escape", "groups", "gid"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "_group", false, false, funcTable, 27, null, null, 0, 1); + c$28__class_escape = Py.newCode(2, new String[] {"source", "escape", "code"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "_class_escape", false, false, funcTable, 28, null, null, 0, 1); + c$29__escape = Py.newCode(3, new String[] {"source", "escape", "state", "here", "code", "group"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "_escape", false, false, funcTable, 29, null, null, 0, 1); + c$30__parse_sub = Py.newCode(3, new String[] {"source", "state", "nested", "subpattern", "prefix", "items", "set", "item"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "_parse_sub", false, false, funcTable, 30, null, null, 0, 1); + c$31__parse = Py.newCode(2, new String[] {"source", "state", "code", "this", "name", "group", "code2", "code1", "max", "start", "set", "item", "subpattern", "lo", "here", "char", "gid", "p", "dir", "min", "hi"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "_parse", false, false, funcTable, 31, null, null, 0, 1); + c$32_parse = Py.newCode(3, new String[] {"str", "flags", "pattern", "source", "p", "tail"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "parse", false, false, funcTable, 32, null, null, 0, 1); + c$33_literal = Py.newCode(2, new String[] {"literal", "p"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "literal", false, false, funcTable, 33, null, null, 0, 1); + c$34_parse_template = Py.newCode(2, new String[] {"source", "pattern", "code", "this", "literals", "index", "group", "s", "sep", "p", "i", "literal", "groups", "char", "c", "a", "name"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "parse_template", false, false, funcTable, 34, null, null, 0, 1); + c$35_expand_template = Py.newCode(2, new String[] {"template", "match", "literals", "groups", "g", "index", "group", "s", "sep"}, "/usr/share/jython/Lib-cpython/sre_parse.py", "expand_template", false, false, funcTable, 35, null, null, 0, 1); + c$36_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/sre_parse.py", "main", false, false, funcTable, 36, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$36_main == null) _PyInner.initConstants(); + return c$36_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.__init__$1(frame); + case 1: + return _PyInner.opengroup$2(frame); + case 2: + return _PyInner.closegroup$3(frame); + case 3: + return _PyInner.checkgroup$4(frame); + case 4: + return _PyInner.Pattern$5(frame); + case 5: + return _PyInner.__init__$6(frame); + case 6: + return _PyInner.dump$7(frame); + case 7: + return _PyInner.__repr__$8(frame); + case 8: + return _PyInner.__len__$9(frame); + case 9: + return _PyInner.__delitem__$10(frame); + case 10: + return _PyInner.__getitem__$11(frame); + case 11: + return _PyInner.__setitem__$12(frame); + case 12: + return _PyInner.__getslice__$13(frame); + case 13: + return _PyInner.insert$14(frame); + case 14: + return _PyInner.append$15(frame); + case 15: + return _PyInner.getwidth$16(frame); + case 16: + return _PyInner.SubPattern$17(frame); + case 17: + return _PyInner.__init__$18(frame); + case 18: + return _PyInner._Tokenizer__next$19(frame); + case 19: + return _PyInner.match$20(frame); + case 20: + return _PyInner.get$21(frame); + case 21: + return _PyInner.tell$22(frame); + case 22: + return _PyInner.seek$23(frame); + case 23: + return _PyInner.Tokenizer$24(frame); + case 24: + return _PyInner.isident$25(frame); + case 25: + return _PyInner.isdigit$26(frame); + case 26: + return _PyInner.isname$27(frame); + case 27: + return _PyInner._group$28(frame); + case 28: + return _PyInner._class_escape$29(frame); + case 29: + return _PyInner._escape$30(frame); + case 30: + return _PyInner._parse_sub$31(frame); + case 31: + return _PyInner._parse$32(frame); + case 32: + return _PyInner.parse$33(frame); + case 33: + return _PyInner.literal$34(frame); + case 34: + return _PyInner.parse_template$35(frame); + case 35: + return _PyInner.expand_template$36(frame); + case 36: + return _PyInner.main$37(frame); + default: + return null; + } + } + + private static PyObject __init__$1(PyFrame frame) { + frame.getlocal(0).__setattr__("flags", i$40); + frame.getlocal(0).__setattr__("open", new PyList(new PyObject[] {})); + frame.getlocal(0).__setattr__("groups", i$41); + frame.getlocal(0).__setattr__("groupdict", new PyDictionary(new PyObject[] {})); + return Py.None; + } + + private static PyObject opengroup$2(PyFrame frame) { + frame.setlocal(2, frame.getlocal(0).__getattr__("groups")); + frame.getlocal(0).__setattr__("groups", frame.getlocal(2)._add(i$41)); + if (frame.getlocal(1).__nonzero__()) { + frame.getlocal(0).__getattr__("groupdict").__setitem__(frame.getlocal(1), frame.getlocal(2)); + } + frame.getlocal(0).__getattr__("open").invoke("append", frame.getlocal(2)); + return frame.getlocal(2); + } + + private static PyObject closegroup$3(PyFrame frame) { + frame.getlocal(0).__getattr__("open").invoke("remove", frame.getlocal(1)); + return Py.None; + } + + private static PyObject checkgroup$4(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + return (t$0$PyObject = frame.getlocal(1)._lt(frame.getlocal(0).__getattr__("groups"))).__nonzero__() ? frame.getlocal(1)._notin(frame.getlocal(0).__getattr__("open")) : t$0$PyObject; + } + + private static PyObject Pattern$5(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$0___init__)); + frame.setlocal("opengroup", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$1_opengroup)); + frame.setlocal("closegroup", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_closegroup)); + frame.setlocal("checkgroup", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_checkgroup)); + return frame.getf_locals(); + } + + private static PyObject __init__$6(PyFrame frame) { + frame.getlocal(0).__setattr__("pattern", frame.getlocal(1)); + if (frame.getlocal(2).__not__().__nonzero__()) { + frame.setlocal(2, new PyList(new PyObject[] {})); + } + frame.getlocal(0).__setattr__("data", frame.getlocal(2)); + frame.getlocal(0).__setattr__("width", frame.getglobal("None")); + return Py.None; + } + + private static PyObject dump$7(PyFrame frame) { + // Temporary Variables + int t$0$int, t$1$int, t$2$int, t$3$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject, t$6$PyObject, t$7$PyObject; + + // Code + frame.setlocal(2, i$41); + t$0$int = 0; + t$1$PyObject = frame.getlocal(0).__getattr__("data"); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(5, t$0$PyObject__[0]); + frame.setlocal(3, t$0$PyObject__[1]); + Py.printComma(frame.getlocal(1)._mul(s$42)._add(frame.getlocal(5))); + frame.setlocal(2, i$40); + if (frame.getlocal(5)._eq(s$43).__nonzero__()) { + Py.println(); + frame.setlocal(2, i$41); + t$1$int = 0; + t$3$PyObject = frame.getlocal(3); + while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$2$PyObject, 2); + frame.setlocal(5, t$0$PyObject__[0]); + frame.setlocal(6, t$0$PyObject__[1]); + Py.printComma(frame.getlocal(1)._add(i$41)._mul(s$42)._add(frame.getlocal(5))); + Py.println(frame.getlocal(6)); + } + } + else if (frame.getlocal(5)._eq(s$44).__nonzero__()) { + Py.println(); + frame.setlocal(2, i$41); + frame.setlocal(4, i$40); + t$2$int = 0; + t$5$PyObject = frame.getlocal(3).__getitem__(i$41); + while ((t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) { + frame.setlocal(6, t$4$PyObject); + if (frame.getlocal(4)._gt(i$40).__nonzero__()) { + Py.println(frame.getlocal(1)._mul(s$42)._add(s$45)); + } + frame.getlocal(6).invoke("dump", frame.getlocal(1)._add(i$41)); + frame.setlocal(2, i$41); + frame.setlocal(4, frame.getlocal(4)._add(i$41)); + } + } + else if (frame.getglobal("type").__call__(frame.getlocal(3))._in(new PyTuple(new PyObject[] {frame.getglobal("type").__call__(new PyTuple(new PyObject[] {})), frame.getglobal("type").__call__(new PyList(new PyObject[] {}))})).__nonzero__()) { + t$3$int = 0; + t$7$PyObject = frame.getlocal(3); + while ((t$6$PyObject = t$7$PyObject.__finditem__(t$3$int++)) != null) { + frame.setlocal(6, t$6$PyObject); + if (frame.getglobal("isinstance").__call__(frame.getlocal(6), frame.getglobal("SubPattern")).__nonzero__()) { + if (frame.getlocal(2).__not__().__nonzero__()) { + Py.println(); + } + frame.getlocal(6).invoke("dump", frame.getlocal(1)._add(i$41)); + frame.setlocal(2, i$41); + } + else { + Py.printComma(frame.getlocal(6)); + frame.setlocal(2, i$40); + } + } + } + else { + Py.printComma(frame.getlocal(3)); + frame.setlocal(2, i$40); + } + if (frame.getlocal(2).__not__().__nonzero__()) { + Py.println(); + } + } + return Py.None; + } + + private static PyObject __repr__$8(PyFrame frame) { + return frame.getglobal("repr").__call__(frame.getlocal(0).__getattr__("data")); + } + + private static PyObject __len__$9(PyFrame frame) { + return frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("data")); + } + + private static PyObject __delitem__$10(PyFrame frame) { + frame.getlocal(0).__getattr__("data").__delitem__(frame.getlocal(1)); + return Py.None; + } + + private static PyObject __getitem__$11(PyFrame frame) { + return frame.getlocal(0).__getattr__("data").__getitem__(frame.getlocal(1)); + } + + private static PyObject __setitem__$12(PyFrame frame) { + frame.getlocal(0).__getattr__("data").__setitem__(frame.getlocal(1), frame.getlocal(2)); + return Py.None; + } + + private static PyObject __getslice__$13(PyFrame frame) { + return frame.getglobal("SubPattern").__call__(frame.getlocal(0).__getattr__("pattern"), frame.getlocal(0).__getattr__("data").__getslice__(frame.getlocal(1), frame.getlocal(2), null)); + } + + private static PyObject insert$14(PyFrame frame) { + frame.getlocal(0).__getattr__("data").invoke("insert", frame.getlocal(1), frame.getlocal(2)); + return Py.None; + } + + private static PyObject append$15(PyFrame frame) { + frame.getlocal(0).__getattr__("data").invoke("append", frame.getlocal(1)); + return Py.None; + } + + private static PyObject getwidth$16(PyFrame frame) { + // Temporary Variables + int t$0$int, t$1$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject; + + // Code + if (frame.getlocal(0).__getattr__("width").__nonzero__()) { + return frame.getlocal(0).__getattr__("width"); + } + t$0$PyObject = l$46; + frame.setlocal(2, t$0$PyObject); + frame.setlocal(1, t$0$PyObject); + t$0$int = 0; + t$1$PyObject = frame.getlocal(0).__getattr__("data"); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(3, t$0$PyObject__[0]); + frame.setlocal(4, t$0$PyObject__[1]); + if (frame.getlocal(3)._is(frame.getglobal("BRANCH")).__nonzero__()) { + frame.setlocal(7, frame.getglobal("sys").__getattr__("maxint")); + frame.setlocal(6, i$40); + t$1$int = 0; + t$3$PyObject = frame.getlocal(4).__getitem__(i$41); + while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) { + frame.setlocal(4, t$2$PyObject); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(4).invoke("getwidth"), 2); + frame.setlocal(5, t$0$PyObject__[0]); + frame.setlocal(8, t$0$PyObject__[1]); + frame.setlocal(7, frame.getglobal("min").__call__(frame.getlocal(7), frame.getlocal(5))); + frame.setlocal(6, frame.getglobal("max").__call__(frame.getlocal(6), frame.getlocal(8))); + } + frame.setlocal(2, frame.getlocal(2)._add(frame.getlocal(7))); + frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(6))); + } + else if (frame.getlocal(3)._is(frame.getglobal("CALL")).__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(4).invoke("getwidth"), 2); + frame.setlocal(7, t$0$PyObject__[0]); + frame.setlocal(6, t$0$PyObject__[1]); + frame.setlocal(2, frame.getlocal(2)._add(frame.getlocal(7))); + frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(6))); + } + else if (frame.getlocal(3)._is(frame.getglobal("SUBPATTERN")).__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(4).__getitem__(i$41).invoke("getwidth"), 2); + frame.setlocal(7, t$0$PyObject__[0]); + frame.setlocal(6, t$0$PyObject__[1]); + frame.setlocal(2, frame.getlocal(2)._add(frame.getlocal(7))); + frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(6))); + } + else if (frame.getlocal(3)._in(new PyTuple(new PyObject[] {frame.getglobal("MIN_REPEAT"), frame.getglobal("MAX_REPEAT")})).__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(4).__getitem__(i$47).invoke("getwidth"), 2); + frame.setlocal(7, t$0$PyObject__[0]); + frame.setlocal(6, t$0$PyObject__[1]); + frame.setlocal(2, frame.getlocal(2)._add(frame.getglobal("long").__call__(frame.getlocal(7))._mul(frame.getlocal(4).__getitem__(i$40)))); + frame.setlocal(1, frame.getlocal(1)._add(frame.getglobal("long").__call__(frame.getlocal(6))._mul(frame.getlocal(4).__getitem__(i$41)))); + } + else if (frame.getlocal(3)._in(new PyTuple(new PyObject[] {frame.getglobal("ANY"), frame.getglobal("RANGE"), frame.getglobal("IN"), frame.getglobal("LITERAL"), frame.getglobal("NOT_LITERAL"), frame.getglobal("CATEGORY")})).__nonzero__()) { + frame.setlocal(2, frame.getlocal(2)._add(i$41)); + frame.setlocal(1, frame.getlocal(1)._add(i$41)); + } + else if (frame.getlocal(3)._eq(frame.getglobal("SUCCESS")).__nonzero__()) { + break; + } + } + frame.getlocal(0).__setattr__("width", new PyTuple(new PyObject[] {frame.getglobal("int").__call__(frame.getglobal("min").__call__(frame.getlocal(2), frame.getglobal("sys").__getattr__("maxint"))), frame.getglobal("int").__call__(frame.getglobal("min").__call__(frame.getlocal(1), frame.getglobal("sys").__getattr__("maxint")))})); + return frame.getlocal(0).__getattr__("width"); + } + + private static PyObject SubPattern$17(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$5___init__)); + frame.setlocal("dump", new PyFunction(frame.f_globals, new PyObject[] {i$40}, c$6_dump)); + frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$7___repr__)); + frame.setlocal("__len__", new PyFunction(frame.f_globals, new PyObject[] {}, c$8___len__)); + frame.setlocal("__delitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$9___delitem__)); + frame.setlocal("__getitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$10___getitem__)); + frame.setlocal("__setitem__", new PyFunction(frame.f_globals, new PyObject[] {}, c$11___setitem__)); + frame.setlocal("__getslice__", new PyFunction(frame.f_globals, new PyObject[] {}, c$12___getslice__)); + frame.setlocal("insert", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_insert)); + frame.setlocal("append", new PyFunction(frame.f_globals, new PyObject[] {}, c$14_append)); + frame.setlocal("getwidth", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_getwidth)); + return frame.getf_locals(); + } + + private static PyObject __init__$18(PyFrame frame) { + frame.getlocal(0).__setattr__("string", frame.getlocal(1)); + frame.getlocal(0).__setattr__("index", i$40); + frame.getlocal(0).invoke("_Tokenizer__next"); + return Py.None; + } + + private static PyObject _Tokenizer__next$19(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + + // Code + if (frame.getlocal(0).__getattr__("index")._ge(frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("string"))).__nonzero__()) { + frame.getlocal(0).__setattr__("next", frame.getglobal("None")); + return Py.None; + } + frame.setlocal(1, frame.getlocal(0).__getattr__("string").__getitem__(frame.getlocal(0).__getattr__("index"))); + if (frame.getlocal(1).__getitem__(i$40)._eq(s$21).__nonzero__()) { + try { + frame.setlocal(2, frame.getlocal(0).__getattr__("string").__getitem__(frame.getlocal(0).__getattr__("index")._add(i$41))); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("IndexError"))) { + throw Py.makeException(frame.getglobal("error"), s$48); + } + else throw t$0$PyException; + } + frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(2))); + } + frame.getlocal(0).__setattr__("index", frame.getlocal(0).__getattr__("index")._add(frame.getglobal("len").__call__(frame.getlocal(1)))); + frame.getlocal(0).__setattr__("next", frame.getlocal(1)); + return Py.None; + } + + private static PyObject match$20(PyFrame frame) { + if (frame.getlocal(1)._eq(frame.getlocal(0).__getattr__("next")).__nonzero__()) { + if (frame.getlocal(2).__nonzero__()) { + frame.getlocal(0).invoke("_Tokenizer__next"); + } + return i$41; + } + return i$40; + } + + private static PyObject get$21(PyFrame frame) { + frame.setlocal(1, frame.getlocal(0).__getattr__("next")); + frame.getlocal(0).invoke("_Tokenizer__next"); + return frame.getlocal(1); + } + + private static PyObject tell$22(PyFrame frame) { + return new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("index"), frame.getlocal(0).__getattr__("next")}); + } + + private static PyObject seek$23(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2); + frame.getlocal(0).__setattr__("index", t$0$PyObject__[0]); + frame.getlocal(0).__setattr__("next", t$0$PyObject__[1]); + return Py.None; + } + + private static PyObject Tokenizer$24(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$17___init__)); + frame.setlocal("_Tokenizer__next", new PyFunction(frame.f_globals, new PyObject[] {}, c$18__Tokenizer__next)); + frame.setlocal("match", new PyFunction(frame.f_globals, new PyObject[] {i$41}, c$19_match)); + frame.setlocal("get", new PyFunction(frame.f_globals, new PyObject[] {}, c$20_get)); + frame.setlocal("tell", new PyFunction(frame.f_globals, new PyObject[] {}, c$21_tell)); + frame.setlocal("seek", new PyFunction(frame.f_globals, new PyObject[] {}, c$22_seek)); + return frame.getf_locals(); + } + + private static PyObject isident$25(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject; + + // Code + return (t$0$PyObject = ((t$1$PyObject = (s$49._le(t$2$PyObject = frame.getlocal(0)).__nonzero__() ? t$2$PyObject._le(s$50) : Py.Zero)).__nonzero__() ? t$1$PyObject : (s$51._le(t$2$PyObject = frame.getlocal(0)).__nonzero__() ? t$2$PyObject._le(s$52) : Py.Zero))).__nonzero__() ? t$0$PyObject : frame.getlocal(0)._eq(s$53); + } + + private static PyObject isdigit$26(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + return s$54._le(t$0$PyObject = frame.getlocal(0)).__nonzero__() ? t$0$PyObject._le(s$55) : Py.Zero; + } + + private static PyObject isname$27(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject; + + // Code + if (frame.getglobal("isident").__call__(frame.getlocal(0).__getitem__(i$40)).__not__().__nonzero__()) { + return i$40; + } + t$0$int = 0; + t$1$PyObject = frame.getlocal(0); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(1, t$0$PyObject); + if (((t$2$PyObject = frame.getglobal("isident").__call__(frame.getlocal(1)).__not__()).__nonzero__() ? frame.getglobal("isdigit").__call__(frame.getlocal(1)).__not__() : t$2$PyObject).__nonzero__()) { + return i$40; + } + } + return i$41; + } + + private static PyObject _group$28(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + PyObject t$0$PyObject; + + // Code + try { + frame.setlocal(2, frame.getglobal("atoi").__call__(frame.getlocal(0).__getslice__(i$41, null, null))); + if (((t$0$PyObject = frame.getlocal(2)).__nonzero__() ? frame.getlocal(2)._lt(frame.getlocal(1)) : t$0$PyObject).__nonzero__()) { + return frame.getlocal(2); + } + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) { + // pass + } + else throw t$0$PyException; + } + return frame.getglobal("None"); + } + + private static PyObject _class_escape$29(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + PyObject t$0$PyObject; + + // Code + frame.setlocal(2, frame.getglobal("ESCAPES").invoke("get", frame.getlocal(1))); + if (frame.getlocal(2).__nonzero__()) { + return frame.getlocal(2); + } + frame.setlocal(2, frame.getglobal("CATEGORIES").invoke("get", frame.getlocal(1))); + if (frame.getlocal(2).__nonzero__()) { + return frame.getlocal(2); + } + try { + if (frame.getlocal(1).__getslice__(i$41, i$47, null)._eq(s$35).__nonzero__()) { + while (((t$0$PyObject = frame.getlocal(0).__getattr__("next")._in(frame.getglobal("HEXDIGITS"))).__nonzero__() ? frame.getglobal("len").__call__(frame.getlocal(1))._lt(i$56) : t$0$PyObject).__nonzero__()) { + frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(0).invoke("get"))); + } + frame.setlocal(1, frame.getlocal(1).__getslice__(i$47, null, null)); + if (frame.getglobal("len").__call__(frame.getlocal(1))._ne(i$47).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$57._mod(frame.getglobal("repr").__call__(s$21._add(frame.getlocal(1))))); + } + return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("atoi").__call__(frame.getlocal(1), i$58)._and(i$59)}); + } + else if (frame.getglobal("str").__call__(frame.getlocal(1).__getslice__(i$41, i$47, null))._in(frame.getglobal("OCTDIGITS")).__nonzero__()) { + while (((t$0$PyObject = frame.getlocal(0).__getattr__("next")._in(frame.getglobal("OCTDIGITS"))).__nonzero__() ? frame.getglobal("len").__call__(frame.getlocal(1))._lt(i$60) : t$0$PyObject).__nonzero__()) { + frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(0).invoke("get"))); + } + frame.setlocal(1, frame.getlocal(1).__getslice__(i$41, null, null)); + return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("atoi").__call__(frame.getlocal(1), i$39)._and(i$59)}); + } + if (frame.getglobal("len").__call__(frame.getlocal(1))._eq(i$47).__nonzero__()) { + return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(frame.getlocal(1).__getitem__(i$41))}); + } + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) { + // pass + } + else throw t$0$PyException; + } + throw Py.makeException(frame.getglobal("error"), s$57._mod(frame.getglobal("repr").__call__(frame.getlocal(1)))); + } + + private static PyObject _escape$30(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(4, frame.getglobal("CATEGORIES").invoke("get", frame.getlocal(1))); + if (frame.getlocal(4).__nonzero__()) { + return frame.getlocal(4); + } + frame.setlocal(4, frame.getglobal("ESCAPES").invoke("get", frame.getlocal(1))); + if (frame.getlocal(4).__nonzero__()) { + return frame.getlocal(4); + } + try { + if (frame.getlocal(1).__getslice__(i$41, i$47, null)._eq(s$35).__nonzero__()) { + while (((t$0$PyObject = frame.getlocal(0).__getattr__("next")._in(frame.getglobal("HEXDIGITS"))).__nonzero__() ? frame.getglobal("len").__call__(frame.getlocal(1))._lt(i$56) : t$0$PyObject).__nonzero__()) { + frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(0).invoke("get"))); + } + if (frame.getglobal("len").__call__(frame.getlocal(1))._ne(i$56).__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError")); + } + return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("atoi").__call__(frame.getlocal(1).__getslice__(i$47, null, null), i$58)._and(i$59)}); + } + else if (frame.getlocal(1).__getslice__(i$41, i$47, null)._eq(s$54).__nonzero__()) { + while (((t$0$PyObject = frame.getlocal(0).__getattr__("next")._in(frame.getglobal("OCTDIGITS"))).__nonzero__() ? frame.getglobal("len").__call__(frame.getlocal(1))._lt(i$56) : t$0$PyObject).__nonzero__()) { + frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(0).invoke("get"))); + } + return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("atoi").__call__(frame.getlocal(1).__getslice__(i$41, null, null), i$39)._and(i$59)}); + } + else if (frame.getlocal(1).__getslice__(i$41, i$47, null)._in(frame.getglobal("DIGITS")).__nonzero__()) { + frame.setlocal(3, frame.getlocal(0).invoke("tell")); + if (frame.getlocal(0).__getattr__("next")._in(frame.getglobal("DIGITS")).__nonzero__()) { + frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(0).invoke("get"))); + if (((t$0$PyObject = ((t$1$PyObject = frame.getlocal(1).__getitem__(i$41)._in(frame.getglobal("OCTDIGITS"))).__nonzero__() ? frame.getlocal(1).__getitem__(i$47)._in(frame.getglobal("OCTDIGITS")) : t$1$PyObject)).__nonzero__() ? frame.getlocal(0).__getattr__("next")._in(frame.getglobal("OCTDIGITS")) : t$0$PyObject).__nonzero__()) { + frame.setlocal(1, frame.getlocal(1)._add(frame.getlocal(0).invoke("get"))); + return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("atoi").__call__(frame.getlocal(1).__getslice__(i$41, null, null), i$39)._and(i$59)}); + } + } + frame.setlocal(5, frame.getglobal("_group").__call__(frame.getlocal(1), frame.getlocal(2).__getattr__("groups"))); + if (frame.getlocal(5).__nonzero__()) { + if (frame.getlocal(2).invoke("checkgroup", frame.getlocal(5)).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$61); + } + return new PyTuple(new PyObject[] {frame.getglobal("GROUPREF"), frame.getlocal(5)}); + } + throw Py.makeException(frame.getglobal("ValueError")); + } + if (frame.getglobal("len").__call__(frame.getlocal(1))._eq(i$47).__nonzero__()) { + return new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(frame.getlocal(1).__getitem__(i$41))}); + } + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) { + // pass + } + else throw t$0$PyException; + } + throw Py.makeException(frame.getglobal("error"), s$57._mod(frame.getglobal("repr").__call__(frame.getlocal(1)))); + } + + private static PyObject _parse_sub$31(PyFrame frame) { + // Temporary Variables + int t$0$int, t$1$int, t$2$int, t$3$int; + boolean t$0$boolean; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject, t$6$PyObject, t$7$PyObject; + + // Code + frame.setlocal(5, new PyList(new PyObject[] {})); + while (i$41.__nonzero__()) { + frame.getlocal(5).invoke("append", frame.getglobal("_parse").__call__(frame.getlocal(0), frame.getlocal(1))); + if (frame.getlocal(0).invoke("match", s$62).__nonzero__()) { + continue; + } + if (frame.getlocal(2).__not__().__nonzero__()) { + break; + } + if (((t$0$PyObject = frame.getlocal(0).__getattr__("next").__not__()).__nonzero__() ? t$0$PyObject : frame.getlocal(0).invoke("match", s$63, i$40)).__nonzero__()) { + break; + } + else { + throw Py.makeException(frame.getglobal("error"), s$64); + } + } + if (frame.getglobal("len").__call__(frame.getlocal(5))._eq(i$41).__nonzero__()) { + return frame.getlocal(5).__getitem__(i$40); + } + frame.setlocal(3, frame.getglobal("SubPattern").__call__(frame.getlocal(1))); + while (i$41.__nonzero__()) { + frame.setlocal(4, frame.getglobal("None")); + t$0$int = 0; + t$1$PyObject = frame.getlocal(5); + while (t$0$boolean=(t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(7, t$0$PyObject); + if (frame.getlocal(7).__not__().__nonzero__()) { + break; + } + if (frame.getlocal(4)._is(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(4, frame.getlocal(7).__getitem__(i$40)); + } + else if (frame.getlocal(7).__getitem__(i$40)._ne(frame.getlocal(4)).__nonzero__()) { + break; + } + } + if (!t$0$boolean) { + t$1$int = 0; + t$3$PyObject = frame.getlocal(5); + while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) { + frame.setlocal(7, t$2$PyObject); + frame.getlocal(7).__delitem__(i$40); + } + frame.getlocal(3).invoke("append", frame.getlocal(4)); + continue; + } + break; + } + t$2$int = 0; + t$5$PyObject = frame.getlocal(5); + while (t$0$boolean=(t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) { + frame.setlocal(7, t$4$PyObject); + if (((t$6$PyObject = frame.getglobal("len").__call__(frame.getlocal(7))._ne(i$41)).__nonzero__() ? t$6$PyObject : frame.getlocal(7).__getitem__(i$40).__getitem__(i$40)._ne(frame.getglobal("LITERAL"))).__nonzero__()) { + break; + } + } + if (!t$0$boolean) { + frame.setlocal(6, new PyList(new PyObject[] {})); + t$3$int = 0; + t$7$PyObject = frame.getlocal(5); + while ((t$6$PyObject = t$7$PyObject.__finditem__(t$3$int++)) != null) { + frame.setlocal(7, t$6$PyObject); + frame.getlocal(6).invoke("append", frame.getlocal(7).__getitem__(i$40)); + } + frame.getlocal(3).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("IN"), frame.getlocal(6)})); + return frame.getlocal(3); + } + frame.getlocal(3).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("BRANCH"), new PyTuple(new PyObject[] {frame.getglobal("None"), frame.getlocal(5)})})); + return frame.getlocal(3); + } + + private static PyObject _parse$32(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(12, frame.getglobal("SubPattern").__call__(frame.getlocal(1))); + while (i$41.__nonzero__()) { + if (frame.getlocal(0).__getattr__("next")._in(new PyTuple(new PyObject[] {s$62, s$63})).__nonzero__()) { + break; + } + frame.setlocal(3, frame.getlocal(0).invoke("get")); + if (frame.getlocal(3)._is(frame.getglobal("None")).__nonzero__()) { + break; + } + if (frame.getlocal(1).__getattr__("flags")._and(frame.getglobal("SRE_FLAG_VERBOSE")).__nonzero__()) { + if (frame.getlocal(3)._in(frame.getglobal("WHITESPACE")).__nonzero__()) { + continue; + } + if (frame.getlocal(3)._eq(s$65).__nonzero__()) { + while (i$41.__nonzero__()) { + frame.setlocal(3, frame.getlocal(0).invoke("get")); + if (frame.getlocal(3)._in(new PyTuple(new PyObject[] {frame.getglobal("None"), s$13})).__nonzero__()) { + break; + } + } + continue; + } + } + if (((t$0$PyObject = frame.getlocal(3)).__nonzero__() ? frame.getlocal(3).__getitem__(i$40)._notin(frame.getglobal("SPECIAL_CHARS")) : t$0$PyObject).__nonzero__()) { + frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(frame.getlocal(3))})); + } + else if (frame.getlocal(3)._eq(s$66).__nonzero__()) { + frame.setlocal(10, new PyList(new PyObject[] {})); + if (frame.getlocal(0).invoke("match", s$67).__nonzero__()) { + frame.getlocal(10).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("NEGATE"), frame.getglobal("None")})); + } + frame.setlocal(9, frame.getlocal(10).__getslice__(null, null, null)); + while (i$41.__nonzero__()) { + frame.setlocal(3, frame.getlocal(0).invoke("get")); + if (((t$0$PyObject = frame.getlocal(3)._eq(s$68)).__nonzero__() ? frame.getlocal(10)._ne(frame.getlocal(9)) : t$0$PyObject).__nonzero__()) { + break; + } + else if (((t$0$PyObject = frame.getlocal(3)).__nonzero__() ? frame.getlocal(3).__getitem__(i$40)._eq(s$21) : t$0$PyObject).__nonzero__()) { + frame.setlocal(7, frame.getglobal("_class_escape").__call__(frame.getlocal(0), frame.getlocal(3))); + } + else if (frame.getlocal(3).__nonzero__()) { + frame.setlocal(7, new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(frame.getlocal(3))})); + } + else { + throw Py.makeException(frame.getglobal("error"), s$69); + } + if (frame.getlocal(0).invoke("match", s$70).__nonzero__()) { + frame.setlocal(3, frame.getlocal(0).invoke("get")); + if (frame.getlocal(3)._eq(s$68).__nonzero__()) { + if (frame.getlocal(7).__getitem__(i$40)._is(frame.getglobal("IN")).__nonzero__()) { + frame.setlocal(7, frame.getlocal(7).__getitem__(i$41).__getitem__(i$40)); + } + frame.getlocal(10).invoke("append", frame.getlocal(7)); + frame.getlocal(10).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(s$70)})); + break; + } + else { + if (frame.getlocal(3).__getitem__(i$40)._eq(s$21).__nonzero__()) { + frame.setlocal(6, frame.getglobal("_class_escape").__call__(frame.getlocal(0), frame.getlocal(3))); + } + else { + frame.setlocal(6, new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(frame.getlocal(3))})); + } + if (((t$0$PyObject = frame.getlocal(7).__getitem__(i$40)._ne(frame.getglobal("LITERAL"))).__nonzero__() ? t$0$PyObject : frame.getlocal(6).__getitem__(i$40)._ne(frame.getglobal("LITERAL"))).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$71); + } + frame.setlocal(13, frame.getlocal(7).__getitem__(i$41)); + frame.setlocal(20, frame.getlocal(6).__getitem__(i$41)); + if (frame.getlocal(20)._lt(frame.getlocal(13)).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$71); + } + frame.getlocal(10).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("RANGE"), new PyTuple(new PyObject[] {frame.getlocal(13), frame.getlocal(20)})})); + } + } + else { + if (frame.getlocal(7).__getitem__(i$40)._is(frame.getglobal("IN")).__nonzero__()) { + frame.setlocal(7, frame.getlocal(7).__getitem__(i$41).__getitem__(i$40)); + } + frame.getlocal(10).invoke("append", frame.getlocal(7)); + } + } + if (((t$0$PyObject = frame.getglobal("len").__call__(frame.getlocal(10))._eq(i$41)).__nonzero__() ? frame.getlocal(10).__getitem__(i$40).__getitem__(i$40)._is(frame.getglobal("LITERAL")) : t$0$PyObject).__nonzero__()) { + frame.getlocal(12).invoke("append", frame.getlocal(10).__getitem__(i$40)); + } + else if (((t$0$PyObject = ((t$1$PyObject = frame.getglobal("len").__call__(frame.getlocal(10))._eq(i$47)).__nonzero__() ? frame.getlocal(10).__getitem__(i$40).__getitem__(i$40)._is(frame.getglobal("NEGATE")) : t$1$PyObject)).__nonzero__() ? frame.getlocal(10).__getitem__(i$41).__getitem__(i$40)._is(frame.getglobal("LITERAL")) : t$0$PyObject).__nonzero__()) { + frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("NOT_LITERAL"), frame.getlocal(10).__getitem__(i$41).__getitem__(i$41)})); + } + else { + frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("IN"), frame.getlocal(10)})); + } + } + else if (((t$0$PyObject = frame.getlocal(3)).__nonzero__() ? frame.getlocal(3).__getitem__(i$40)._in(frame.getglobal("REPEAT_CHARS")) : t$0$PyObject).__nonzero__()) { + if (frame.getlocal(3)._eq(s$72).__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {i$40, i$41}), 2); + frame.setlocal(19, t$0$PyObject__[0]); + frame.setlocal(8, t$0$PyObject__[1]); + } + else if (frame.getlocal(3)._eq(s$73).__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {i$40, frame.getglobal("MAXREPEAT")}), 2); + frame.setlocal(19, t$0$PyObject__[0]); + frame.setlocal(8, t$0$PyObject__[1]); + } + else if (frame.getlocal(3)._eq(s$74).__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {i$41, frame.getglobal("MAXREPEAT")}), 2); + frame.setlocal(19, t$0$PyObject__[0]); + frame.setlocal(8, t$0$PyObject__[1]); + } + else if (frame.getlocal(3)._eq(s$75).__nonzero__()) { + frame.setlocal(14, frame.getlocal(0).invoke("tell")); + t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {i$40, frame.getglobal("MAXREPEAT")}), 2); + frame.setlocal(19, t$0$PyObject__[0]); + frame.setlocal(8, t$0$PyObject__[1]); + t$0$PyObject = s$76; + frame.setlocal(13, t$0$PyObject); + frame.setlocal(20, t$0$PyObject); + while (frame.getlocal(0).__getattr__("next")._in(frame.getglobal("DIGITS")).__nonzero__()) { + frame.setlocal(13, frame.getlocal(13)._add(frame.getlocal(0).invoke("get"))); + } + if (frame.getlocal(0).invoke("match", s$77).__nonzero__()) { + while (frame.getlocal(0).__getattr__("next")._in(frame.getglobal("DIGITS")).__nonzero__()) { + frame.setlocal(20, frame.getlocal(20)._add(frame.getlocal(0).invoke("get"))); + } + } + else { + frame.setlocal(20, frame.getlocal(13)); + } + if (frame.getlocal(0).invoke("match", s$78).__not__().__nonzero__()) { + frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getglobal("ord").__call__(frame.getlocal(3))})); + frame.getlocal(0).invoke("seek", frame.getlocal(14)); + continue; + } + if (frame.getlocal(13).__nonzero__()) { + frame.setlocal(19, frame.getglobal("atoi").__call__(frame.getlocal(13))); + } + if (frame.getlocal(20).__nonzero__()) { + frame.setlocal(8, frame.getglobal("atoi").__call__(frame.getlocal(20))); + } + if (frame.getlocal(8)._lt(frame.getlocal(19)).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$79); + } + } + else { + throw Py.makeException(frame.getglobal("error"), s$80); + } + if (frame.getlocal(12).__nonzero__()) { + frame.setlocal(11, frame.getlocal(12).__getslice__(i$41.__neg__(), null, null)); + } + else { + frame.setlocal(11, frame.getglobal("None")); + } + if (((t$0$PyObject = frame.getlocal(11).__not__()).__nonzero__() ? t$0$PyObject : ((t$1$PyObject = frame.getglobal("len").__call__(frame.getlocal(11))._eq(i$41)).__nonzero__() ? frame.getlocal(11).__getitem__(i$40).__getitem__(i$40)._eq(frame.getglobal("AT")) : t$1$PyObject)).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$81); + } + if (frame.getlocal(11).__getitem__(i$40).__getitem__(i$40)._in(new PyTuple(new PyObject[] {frame.getglobal("MIN_REPEAT"), frame.getglobal("MAX_REPEAT")})).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$82); + } + if (frame.getlocal(0).invoke("match", s$72).__nonzero__()) { + frame.getlocal(12).__setitem__(i$41.__neg__(), new PyTuple(new PyObject[] {frame.getglobal("MIN_REPEAT"), new PyTuple(new PyObject[] {frame.getlocal(19), frame.getlocal(8), frame.getlocal(11)})})); + } + else { + frame.getlocal(12).__setitem__(i$41.__neg__(), new PyTuple(new PyObject[] {frame.getglobal("MAX_REPEAT"), new PyTuple(new PyObject[] {frame.getlocal(19), frame.getlocal(8), frame.getlocal(11)})})); + } + } + else if (frame.getlocal(3)._eq(s$83).__nonzero__()) { + frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("ANY"), frame.getglobal("None")})); + } + else if (frame.getlocal(3)._eq(s$84).__nonzero__()) { + frame.setlocal(5, i$41); + frame.setlocal(4, frame.getglobal("None")); + if (frame.getlocal(0).invoke("match", s$72).__nonzero__()) { + frame.setlocal(5, i$40); + if (frame.getlocal(0).invoke("match", s$85).__nonzero__()) { + if (frame.getlocal(0).invoke("match", s$86).__nonzero__()) { + frame.setlocal(4, s$76); + while (i$41.__nonzero__()) { + frame.setlocal(15, frame.getlocal(0).invoke("get")); + if (frame.getlocal(15)._is(frame.getglobal("None")).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$87); + } + if (frame.getlocal(15)._eq(s$88).__nonzero__()) { + break; + } + frame.setlocal(4, frame.getlocal(4)._add(frame.getlocal(15))); + } + frame.setlocal(5, i$41); + if (frame.getglobal("isname").__call__(frame.getlocal(4)).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$89); + } + } + else if (frame.getlocal(0).invoke("match", s$90).__nonzero__()) { + frame.setlocal(4, s$76); + while (i$41.__nonzero__()) { + frame.setlocal(15, frame.getlocal(0).invoke("get")); + if (frame.getlocal(15)._is(frame.getglobal("None")).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$87); + } + if (frame.getlocal(15)._eq(s$63).__nonzero__()) { + break; + } + frame.setlocal(4, frame.getlocal(4)._add(frame.getlocal(15))); + } + if (frame.getglobal("isname").__call__(frame.getlocal(4)).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$89); + } + frame.setlocal(16, frame.getlocal(1).__getattr__("groupdict").invoke("get", frame.getlocal(4))); + if (frame.getlocal(16)._is(frame.getglobal("None")).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$91); + } + frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("GROUPREF"), frame.getlocal(16)})); + continue; + } + else { + frame.setlocal(15, frame.getlocal(0).invoke("get")); + if (frame.getlocal(15)._is(frame.getglobal("None")).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$92); + } + throw Py.makeException(frame.getglobal("error"), s$93._mod(frame.getlocal(15))); + } + } + else if (frame.getlocal(0).invoke("match", s$94).__nonzero__()) { + frame.setlocal(5, i$47); + } + else if (frame.getlocal(0).invoke("match", s$65).__nonzero__()) { + while (i$41.__nonzero__()) { + if (((t$0$PyObject = frame.getlocal(0).__getattr__("next")._is(frame.getglobal("None"))).__nonzero__() ? t$0$PyObject : frame.getlocal(0).__getattr__("next")._eq(s$63)).__nonzero__()) { + break; + } + frame.getlocal(0).invoke("get"); + } + if (frame.getlocal(0).invoke("match", s$63).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$95); + } + continue; + } + else if (frame.getlocal(0).__getattr__("next")._in(new PyTuple(new PyObject[] {s$90, s$96, s$86})).__nonzero__()) { + frame.setlocal(15, frame.getlocal(0).invoke("get")); + frame.setlocal(18, i$41); + if (frame.getlocal(15)._eq(s$86).__nonzero__()) { + if (frame.getlocal(0).__getattr__("next")._notin(new PyTuple(new PyObject[] {s$90, s$96})).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$97); + } + frame.setlocal(18, i$41.__neg__()); + frame.setlocal(15, frame.getlocal(0).invoke("get")); + } + frame.setlocal(17, frame.getglobal("_parse_sub").__call__(frame.getlocal(0), frame.getlocal(1))); + if (frame.getlocal(0).invoke("match", s$63).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$95); + } + if (frame.getlocal(15)._eq(s$90).__nonzero__()) { + frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("ASSERT"), new PyTuple(new PyObject[] {frame.getlocal(18), frame.getlocal(17)})})); + } + else { + frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("ASSERT_NOT"), new PyTuple(new PyObject[] {frame.getlocal(18), frame.getlocal(17)})})); + } + continue; + } + else { + if (frame.getglobal("FLAGS").invoke("has_key", frame.getlocal(0).__getattr__("next")).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$92); + } + while (frame.getglobal("FLAGS").invoke("has_key", frame.getlocal(0).__getattr__("next")).__nonzero__()) { + frame.getlocal(1).__setattr__("flags", frame.getlocal(1).__getattr__("flags")._or(frame.getglobal("FLAGS").__getitem__(frame.getlocal(0).invoke("get")))); + } + } + } + if (frame.getlocal(5).__nonzero__()) { + if (frame.getlocal(5)._eq(i$47).__nonzero__()) { + frame.setlocal(5, frame.getglobal("None")); + } + else { + frame.setlocal(5, frame.getlocal(1).invoke("opengroup", frame.getlocal(4))); + } + frame.setlocal(17, frame.getglobal("_parse_sub").__call__(frame.getlocal(0), frame.getlocal(1))); + if (frame.getlocal(0).invoke("match", s$63).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$95); + } + if (frame.getlocal(5)._isnot(frame.getglobal("None")).__nonzero__()) { + frame.getlocal(1).invoke("closegroup", frame.getlocal(5)); + } + frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("SUBPATTERN"), new PyTuple(new PyObject[] {frame.getlocal(5), frame.getlocal(17)})})); + } + else { + while (i$41.__nonzero__()) { + frame.setlocal(15, frame.getlocal(0).invoke("get")); + if (frame.getlocal(15)._is(frame.getglobal("None")).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$92); + } + if (frame.getlocal(15)._eq(s$63).__nonzero__()) { + break; + } + throw Py.makeException(frame.getglobal("error"), s$98); + } + } + } + else if (frame.getlocal(3)._eq(s$67).__nonzero__()) { + frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("AT"), frame.getglobal("AT_BEGINNING")})); + } + else if (frame.getlocal(3)._eq(s$99).__nonzero__()) { + frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("AT"), frame.getglobal("AT_END")})); + } + else if (((t$0$PyObject = frame.getlocal(3)).__nonzero__() ? frame.getlocal(3).__getitem__(i$40)._eq(s$21) : t$0$PyObject).__nonzero__()) { + frame.setlocal(2, frame.getglobal("_escape").__call__(frame.getlocal(0), frame.getlocal(3), frame.getlocal(1))); + frame.getlocal(12).invoke("append", frame.getlocal(2)); + } + else { + throw Py.makeException(frame.getglobal("error"), s$100); + } + } + return frame.getlocal(12); + } + + private static PyObject parse$33(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + frame.setlocal(3, frame.getglobal("Tokenizer").__call__(frame.getlocal(0))); + if (frame.getlocal(2)._is(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(2, frame.getglobal("Pattern").__call__()); + } + frame.getlocal(2).__setattr__("flags", frame.getlocal(1)); + frame.getlocal(2).__setattr__("str", frame.getlocal(0)); + frame.setlocal(4, frame.getglobal("_parse_sub").__call__(frame.getlocal(3), frame.getlocal(2), i$40)); + frame.setlocal(5, frame.getlocal(3).invoke("get")); + if (frame.getlocal(5)._eq(s$63).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$95); + } + else if (frame.getlocal(5).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$101); + } + if (frame.getlocal(1)._and(frame.getglobal("SRE_FLAG_DEBUG")).__nonzero__()) { + frame.getlocal(4).invoke("dump"); + } + if (((t$0$PyObject = frame.getlocal(1)._and(frame.getglobal("SRE_FLAG_VERBOSE")).__not__()).__nonzero__() ? frame.getlocal(4).__getattr__("pattern").__getattr__("flags")._and(frame.getglobal("SRE_FLAG_VERBOSE")) : t$0$PyObject).__nonzero__()) { + return frame.getglobal("parse").__call__(frame.getlocal(0), frame.getlocal(4).__getattr__("pattern").__getattr__("flags")); + } + return frame.getlocal(4); + } + + private static PyObject literal$34(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + if (((t$0$PyObject = frame.getlocal(1)).__nonzero__() ? frame.getlocal(1).__getitem__(i$41.__neg__()).__getitem__(i$40)._is(frame.getglobal("LITERAL")) : t$0$PyObject).__nonzero__()) { + frame.getlocal(1).__setitem__(i$41.__neg__(), new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getlocal(1).__getitem__(i$41.__neg__()).__getitem__(i$41)._add(frame.getlocal(0))})); + } + else { + frame.getlocal(1).invoke("append", new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getlocal(0)})); + } + return Py.None; + } + + private static PyObject parse_template$35(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyException t$0$PyException, t$1$PyException; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(7, frame.getglobal("Tokenizer").__call__(frame.getlocal(0))); + frame.setlocal(9, new PyList(new PyObject[] {})); + frame.setlocal(15, frame.getlocal(9).__getattr__("append")); + frame.setlocal(11, new PyFunction(frame.f_globals, new PyObject[] {frame.getlocal(9)}, c$33_literal)); + frame.setlocal(8, frame.getlocal(0).__getslice__(null, i$40, null)); + if (frame.getglobal("type").__call__(frame.getlocal(8))._is(frame.getglobal("type").__call__(s$76)).__nonzero__()) { + frame.setlocal(13, frame.getglobal("chr")); + } + else { + frame.setlocal(13, frame.getglobal("unichr")); + } + while (i$41.__nonzero__()) { + frame.setlocal(3, frame.getlocal(7).invoke("get")); + if (frame.getlocal(3)._is(frame.getglobal("None")).__nonzero__()) { + break; + } + if (((t$0$PyObject = frame.getlocal(3)).__nonzero__() ? frame.getlocal(3).__getitem__(i$40)._eq(s$21) : t$0$PyObject).__nonzero__()) { + if (frame.getlocal(3)._eq(s$102).__nonzero__()) { + frame.setlocal(16, s$76); + if (frame.getlocal(7).invoke("match", s$86).__nonzero__()) { + while (i$41.__nonzero__()) { + frame.setlocal(13, frame.getlocal(7).invoke("get")); + if (frame.getlocal(13)._is(frame.getglobal("None")).__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$103); + } + if (frame.getlocal(13)._eq(s$88).__nonzero__()) { + break; + } + frame.setlocal(16, frame.getlocal(16)._add(frame.getlocal(13))); + } + } + if (frame.getlocal(16).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$104); + } + try { + frame.setlocal(5, frame.getglobal("atoi").__call__(frame.getlocal(16))); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) { + if (frame.getglobal("isname").__call__(frame.getlocal(16)).__not__().__nonzero__()) { + throw Py.makeException(frame.getglobal("error"), s$89); + } + try { + frame.setlocal(5, frame.getlocal(1).__getattr__("groupindex").__getitem__(frame.getlocal(16))); + } + catch (Throwable x$1) { + t$1$PyException = Py.setException(x$1, frame); + if (Py.matchException(t$1$PyException, frame.getglobal("KeyError"))) { + throw Py.makeException(frame.getglobal("IndexError"), s$91); + } + else throw t$1$PyException; + } + } + else throw t$0$PyException; + } + frame.getlocal(15).__call__(new PyTuple(new PyObject[] {frame.getglobal("MARK"), frame.getlocal(5)})); + } + else if (((t$0$PyObject = frame.getglobal("len").__call__(frame.getlocal(3))._gt(i$41)).__nonzero__() ? frame.getlocal(3).__getitem__(i$41)._in(frame.getglobal("DIGITS")) : t$0$PyObject).__nonzero__()) { + frame.setlocal(2, frame.getglobal("None")); + while (i$41.__nonzero__()) { + frame.setlocal(6, frame.getglobal("_group").__call__(frame.getlocal(3), frame.getlocal(1).__getattr__("groups")._add(i$41))); + if (frame.getlocal(6).__nonzero__()) { + if (((t$0$PyObject = frame.getlocal(7).__getattr__("next")._notin(frame.getglobal("DIGITS"))).__nonzero__() ? t$0$PyObject : frame.getglobal("_group").__call__(frame.getlocal(3)._add(frame.getlocal(7).__getattr__("next")), frame.getlocal(1).__getattr__("groups")._add(i$41)).__not__()).__nonzero__()) { + frame.setlocal(2, new PyTuple(new PyObject[] {frame.getglobal("MARK"), frame.getlocal(6)})); + break; + } + } + else if (frame.getlocal(7).__getattr__("next")._in(frame.getglobal("OCTDIGITS")).__nonzero__()) { + frame.setlocal(3, frame.getlocal(3)._add(frame.getlocal(7).invoke("get"))); + } + else { + break; + } + } + if (frame.getlocal(2).__not__().__nonzero__()) { + frame.setlocal(3, frame.getlocal(3).__getslice__(i$41, null, null)); + frame.setlocal(2, new PyTuple(new PyObject[] {frame.getglobal("LITERAL"), frame.getlocal(13).__call__(frame.getglobal("atoi").__call__(frame.getlocal(3).__getslice__(i$105.__neg__(), null, null), i$39)._and(i$59))})); + } + if (frame.getlocal(2).__getitem__(i$40)._is(frame.getglobal("LITERAL")).__nonzero__()) { + frame.getlocal(11).__call__(frame.getlocal(2).__getitem__(i$41)); + } + else { + frame.getlocal(15).__call__(frame.getlocal(2)); + } + } + else { + try { + frame.setlocal(3, frame.getlocal(13).__call__(frame.getglobal("ESCAPES").__getitem__(frame.getlocal(3)).__getitem__(i$41))); + } + catch (Throwable x$2) { + t$0$PyException = Py.setException(x$2, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("KeyError"))) { + // pass + } + else throw t$0$PyException; + } + frame.getlocal(11).__call__(frame.getlocal(3)); + } + } + else { + frame.getlocal(11).__call__(frame.getlocal(3)); + } + } + frame.setlocal(10, i$40); + frame.setlocal(12, new PyList(new PyObject[] {})); + frame.setlocal(4, new PyList(new PyObject[] {})); + t$0$int = 0; + t$1$PyObject = frame.getlocal(9); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(14, t$0$PyObject__[0]); + frame.setlocal(7, t$0$PyObject__[1]); + if (frame.getlocal(14)._is(frame.getglobal("MARK")).__nonzero__()) { + frame.getlocal(12).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(10), frame.getlocal(7)})); + frame.getlocal(4).invoke("append", frame.getglobal("None")); + } + else { + frame.getlocal(4).invoke("append", frame.getlocal(7)); + } + frame.setlocal(10, frame.getlocal(10)._add(i$41)); + } + return new PyTuple(new PyObject[] {frame.getlocal(12), frame.getlocal(4)}); + } + + private static PyObject expand_template$36(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyException t$0$PyException; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject; + + // Code + frame.setlocal(4, frame.getlocal(1).__getattr__("group")); + frame.setlocal(8, frame.getlocal(1).__getattr__("string").__getslice__(null, i$40, null)); + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(0), 2); + frame.setlocal(3, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + frame.setlocal(2, frame.getlocal(2).__getslice__(null, null, null)); + try { + t$0$int = 0; + t$1$PyObject = frame.getlocal(3); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 2); + frame.setlocal(5, t$0$PyObject__[0]); + frame.setlocal(6, t$0$PyObject__[1]); + t$2$PyObject = frame.getlocal(4).__call__(frame.getlocal(6)); + frame.getlocal(2).__setitem__(frame.getlocal(5), t$2$PyObject); + frame.setlocal(7, t$2$PyObject); + if (frame.getlocal(7)._is(frame.getglobal("None")).__nonzero__()) { + throw Py.makeException(frame.getglobal("IndexError")); + } + } + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("IndexError"))) { + throw Py.makeException(frame.getglobal("error"), s$106); + } + else throw t$0$PyException; + } + return frame.getglobal("string").__getattr__("join").__call__(frame.getlocal(2), frame.getlocal(8)); + } + + private static PyObject main$37(PyFrame frame) { + frame.setglobal("__file__", s$107); + + // Temporary Variables + PyException t$0$PyException; + + // Code + frame.setlocal("string", org.python.core.imp.importOne("string", frame)); + frame.setlocal("sys", org.python.core.imp.importOne("sys", frame)); + org.python.core.imp.importAll("sre_constants", frame); + frame.setlocal("SPECIAL_CHARS", s$0); + frame.setlocal("REPEAT_CHARS", s$1); + frame.setlocal("DIGITS", frame.getname("tuple").__call__(s$2)); + frame.setlocal("OCTDIGITS", frame.getname("tuple").__call__(s$3)); + frame.setlocal("HEXDIGITS", frame.getname("tuple").__call__(s$4)); + frame.setlocal("WHITESPACE", frame.getname("tuple").__call__(s$5)); + frame.setlocal("ESCAPES", new PyDictionary(new PyObject[] {s$6, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$7)}), s$8, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$9)}), s$10, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$11)}), s$12, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$13)}), s$14, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$15)}), s$16, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$17)}), s$18, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$19)}), s$20, new PyTuple(new PyObject[] {frame.getname("LITERAL"), frame.getname("ord").__call__(s$21)})})); + frame.setlocal("CATEGORIES", new PyDictionary(new PyObject[] {s$22, new PyTuple(new PyObject[] {frame.getname("AT"), frame.getname("AT_BEGINNING_STRING")}), s$8, new PyTuple(new PyObject[] {frame.getname("AT"), frame.getname("AT_BOUNDARY")}), s$23, new PyTuple(new PyObject[] {frame.getname("AT"), frame.getname("AT_NON_BOUNDARY")}), s$24, new PyTuple(new PyObject[] {frame.getname("IN"), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getname("CATEGORY"), frame.getname("CATEGORY_DIGIT")})})}), s$25, new PyTuple(new PyObject[] {frame.getname("IN"), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getname("CATEGORY"), frame.getname("CATEGORY_NOT_DIGIT")})})}), s$26, new PyTuple(new PyObject[] {frame.getname("IN"), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getname("CATEGORY"), frame.getname("CATEGORY_SPACE")})})}), s$27, new PyTuple(new PyObject[] {frame.getname("IN"), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getname("CATEGORY"), frame.getname("CATEGORY_NOT_SPACE")})})}), s$28, new PyTuple(new PyObject[] {frame.getname("IN"), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getname("CATEGORY"), frame.getname("CATEGORY_WORD")})})}), s$29, new PyTuple(new PyObject[] {frame.getname("IN"), new PyList(new PyObject[] {new PyTuple(new PyObject[] {frame.getname("CATEGORY"), frame.getname("CATEGORY_NOT_WORD")})})}), s$30, new PyTuple(new PyObject[] {frame.getname("AT"), frame.getname("AT_END_STRING")})})); + frame.setlocal("FLAGS", new PyDictionary(new PyObject[] {s$31, frame.getname("SRE_FLAG_IGNORECASE"), s$32, frame.getname("SRE_FLAG_LOCALE"), s$33, frame.getname("SRE_FLAG_MULTILINE"), s$34, frame.getname("SRE_FLAG_DOTALL"), s$35, frame.getname("SRE_FLAG_VERBOSE"), s$36, frame.getname("SRE_FLAG_TEMPLATE"), s$37, frame.getname("SRE_FLAG_UNICODE")})); + try { + frame.getname("int").__call__(s$38, i$39); + frame.setlocal("atoi", frame.getname("int")); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getname("TypeError"))) { + frame.setlocal("atoi", frame.getname("string").__getattr__("atoi")); + } + else throw t$0$PyException; + } + frame.setlocal("Pattern", Py.makeClass("Pattern", new PyObject[] {}, c$4_Pattern, null)); + frame.setlocal("SubPattern", Py.makeClass("SubPattern", new PyObject[] {}, c$16_SubPattern, null)); + frame.setlocal("Tokenizer", Py.makeClass("Tokenizer", new PyObject[] {}, c$23_Tokenizer, null)); + frame.setlocal("isident", new PyFunction(frame.f_globals, new PyObject[] {}, c$24_isident)); + frame.setlocal("isdigit", new PyFunction(frame.f_globals, new PyObject[] {}, c$25_isdigit)); + frame.setlocal("isname", new PyFunction(frame.f_globals, new PyObject[] {}, c$26_isname)); + frame.setlocal("_group", new PyFunction(frame.f_globals, new PyObject[] {}, c$27__group)); + frame.setlocal("_class_escape", new PyFunction(frame.f_globals, new PyObject[] {}, c$28__class_escape)); + frame.setlocal("_escape", new PyFunction(frame.f_globals, new PyObject[] {}, c$29__escape)); + frame.setlocal("_parse_sub", new PyFunction(frame.f_globals, new PyObject[] {i$41}, c$30__parse_sub)); + frame.setlocal("_parse", new PyFunction(frame.f_globals, new PyObject[] {}, c$31__parse)); + frame.setlocal("parse", new PyFunction(frame.f_globals, new PyObject[] {i$40, frame.getname("None")}, c$32_parse)); + frame.setlocal("parse_template", new PyFunction(frame.f_globals, new PyObject[] {}, c$34_parse_template)); + frame.setlocal("expand_template", new PyFunction(frame.f_globals, new PyObject[] {}, c$35_expand_template)); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("sre_parse")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "sre_parse"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(sre_parse._PyInner.class, newargs, sre_parse.jpy$packages, sre_parse.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/stat$_PyInner.class b/server/jpywork/stat$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..2ac0d537d1b92d9388fb3bb85da0aee1d24bee9d GIT binary patch literal 6005 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 S1u(%c`4!~UIgapa%KrxJK!Rrg literal 0 HcmV?d00001 diff --git a/server/jpywork/stat.java b/server/jpywork/stat.java new file mode 100644 index 00000000..2bcf81a6 --- /dev/null +++ b/server/jpywork/stat.java @@ -0,0 +1,233 @@ +import org.python.core.*; + +public class stat extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject i$1; + private static PyObject i$2; + private static PyObject i$3; + private static PyObject i$4; + private static PyObject i$5; + private static PyObject i$6; + private static PyObject i$7; + private static PyObject i$8; + private static PyObject i$9; + private static PyObject i$10; + private static PyObject i$11; + private static PyObject i$12; + private static PyObject i$13; + private static PyObject i$14; + private static PyObject i$15; + private static PyObject i$16; + private static PyObject i$17; + private static PyObject i$18; + private static PyObject i$19; + private static PyObject i$20; + private static PyObject i$21; + private static PyObject i$22; + private static PyObject i$23; + private static PyObject i$24; + private static PyObject i$25; + private static PyObject i$26; + private static PyObject i$27; + private static PyObject i$28; + private static PyObject i$29; + private static PyObject s$30; + private static PyFunctionTable funcTable; + private static PyCode c$0_S_IMODE; + private static PyCode c$1_S_IFMT; + private static PyCode c$2_S_ISDIR; + private static PyCode c$3_S_ISCHR; + private static PyCode c$4_S_ISBLK; + private static PyCode c$5_S_ISREG; + private static PyCode c$6_S_ISFIFO; + private static PyCode c$7_S_ISLNK; + private static PyCode c$8_S_ISSOCK; + private static PyCode c$9_main; + private static void initConstants() { + s$0 = Py.newString("Constants/functions for interpreting results of os.stat() and os.lstat().\012\012Suggested usage: from stat import *\012"); + i$1 = Py.newInteger(0); + i$2 = Py.newInteger(1); + i$3 = Py.newInteger(2); + i$4 = Py.newInteger(3); + i$5 = Py.newInteger(4); + i$6 = Py.newInteger(5); + i$7 = Py.newInteger(6); + i$8 = Py.newInteger(7); + i$9 = Py.newInteger(8); + i$10 = Py.newInteger(9); + i$11 = Py.newInteger(4095); + i$12 = Py.newInteger(61440); + i$13 = Py.newInteger(16384); + i$14 = Py.newInteger(8192); + i$15 = Py.newInteger(24576); + i$16 = Py.newInteger(32768); + i$17 = Py.newInteger(4096); + i$18 = Py.newInteger(40960); + i$19 = Py.newInteger(49152); + i$20 = Py.newInteger(2048); + i$21 = Py.newInteger(1024); + i$22 = Py.newInteger(512); + i$23 = Py.newInteger(256); + i$24 = Py.newInteger(128); + i$25 = Py.newInteger(64); + i$26 = Py.newInteger(448); + i$27 = Py.newInteger(56); + i$28 = Py.newInteger(32); + i$29 = Py.newInteger(16); + s$30 = Py.newString("/usr/share/jython/Lib-cpython/stat.py"); + funcTable = new _PyInner(); + c$0_S_IMODE = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_IMODE", false, false, funcTable, 0, null, null, 0, 1); + c$1_S_IFMT = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_IFMT", false, false, funcTable, 1, null, null, 0, 1); + c$2_S_ISDIR = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISDIR", false, false, funcTable, 2, null, null, 0, 1); + c$3_S_ISCHR = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISCHR", false, false, funcTable, 3, null, null, 0, 1); + c$4_S_ISBLK = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISBLK", false, false, funcTable, 4, null, null, 0, 1); + c$5_S_ISREG = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISREG", false, false, funcTable, 5, null, null, 0, 1); + c$6_S_ISFIFO = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISFIFO", false, false, funcTable, 6, null, null, 0, 1); + c$7_S_ISLNK = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISLNK", false, false, funcTable, 7, null, null, 0, 1); + c$8_S_ISSOCK = Py.newCode(1, new String[] {"mode"}, "/usr/share/jython/Lib-cpython/stat.py", "S_ISSOCK", false, false, funcTable, 8, null, null, 0, 1); + c$9_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/stat.py", "main", false, false, funcTable, 9, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$9_main == null) _PyInner.initConstants(); + return c$9_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.S_IMODE$1(frame); + case 1: + return _PyInner.S_IFMT$2(frame); + case 2: + return _PyInner.S_ISDIR$3(frame); + case 3: + return _PyInner.S_ISCHR$4(frame); + case 4: + return _PyInner.S_ISBLK$5(frame); + case 5: + return _PyInner.S_ISREG$6(frame); + case 6: + return _PyInner.S_ISFIFO$7(frame); + case 7: + return _PyInner.S_ISLNK$8(frame); + case 8: + return _PyInner.S_ISSOCK$9(frame); + case 9: + return _PyInner.main$10(frame); + default: + return null; + } + } + + private static PyObject S_IMODE$1(PyFrame frame) { + return frame.getlocal(0)._and(i$11); + } + + private static PyObject S_IFMT$2(PyFrame frame) { + return frame.getlocal(0)._and(i$12); + } + + private static PyObject S_ISDIR$3(PyFrame frame) { + return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFDIR")); + } + + private static PyObject S_ISCHR$4(PyFrame frame) { + return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFCHR")); + } + + private static PyObject S_ISBLK$5(PyFrame frame) { + return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFBLK")); + } + + private static PyObject S_ISREG$6(PyFrame frame) { + return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFREG")); + } + + private static PyObject S_ISFIFO$7(PyFrame frame) { + return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFIFO")); + } + + private static PyObject S_ISLNK$8(PyFrame frame) { + return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFLNK")); + } + + private static PyObject S_ISSOCK$9(PyFrame frame) { + return frame.getglobal("S_IFMT").__call__(frame.getlocal(0))._eq(frame.getglobal("S_IFSOCK")); + } + + private static PyObject main$10(PyFrame frame) { + frame.setglobal("__file__", s$30); + + /* Constants/functions for interpreting results of os.stat() and os.lstat(). + + Suggested usage: from stat import * + */ + frame.setlocal("ST_MODE", i$1); + frame.setlocal("ST_INO", i$2); + frame.setlocal("ST_DEV", i$3); + frame.setlocal("ST_NLINK", i$4); + frame.setlocal("ST_UID", i$5); + frame.setlocal("ST_GID", i$6); + frame.setlocal("ST_SIZE", i$7); + frame.setlocal("ST_ATIME", i$8); + frame.setlocal("ST_MTIME", i$9); + frame.setlocal("ST_CTIME", i$10); + frame.setlocal("S_IMODE", new PyFunction(frame.f_globals, new PyObject[] {}, c$0_S_IMODE)); + frame.setlocal("S_IFMT", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_S_IFMT)); + frame.setlocal("S_IFDIR", i$13); + frame.setlocal("S_IFCHR", i$14); + frame.setlocal("S_IFBLK", i$15); + frame.setlocal("S_IFREG", i$16); + frame.setlocal("S_IFIFO", i$17); + frame.setlocal("S_IFLNK", i$18); + frame.setlocal("S_IFSOCK", i$19); + frame.setlocal("S_ISDIR", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_S_ISDIR)); + frame.setlocal("S_ISCHR", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_S_ISCHR)); + frame.setlocal("S_ISBLK", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_S_ISBLK)); + frame.setlocal("S_ISREG", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_S_ISREG)); + frame.setlocal("S_ISFIFO", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_S_ISFIFO)); + frame.setlocal("S_ISLNK", new PyFunction(frame.f_globals, new PyObject[] {}, c$7_S_ISLNK)); + frame.setlocal("S_ISSOCK", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_S_ISSOCK)); + frame.setlocal("S_ISUID", i$20); + frame.setlocal("S_ISGID", i$21); + frame.setlocal("S_ENFMT", frame.getname("S_ISGID")); + frame.setlocal("S_ISVTX", i$22); + frame.setlocal("S_IREAD", i$23); + frame.setlocal("S_IWRITE", i$24); + frame.setlocal("S_IEXEC", i$25); + frame.setlocal("S_IRWXU", i$26); + frame.setlocal("S_IRUSR", i$23); + frame.setlocal("S_IWUSR", i$24); + frame.setlocal("S_IXUSR", i$25); + frame.setlocal("S_IRWXG", i$27); + frame.setlocal("S_IRGRP", i$28); + frame.setlocal("S_IWGRP", i$29); + frame.setlocal("S_IXGRP", i$9); + frame.setlocal("S_IRWXO", i$8); + frame.setlocal("S_IROTH", i$5); + frame.setlocal("S_IWOTH", i$3); + frame.setlocal("S_IXOTH", i$2); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("stat")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "stat"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(stat._PyInner.class, newargs, stat.jpy$packages, stat.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/string$_PyInner.class b/server/jpywork/string$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..87ee37b1e88d79341b7654bff8675a61829705eb GIT binary patch literal 20070 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 Q!l(EQh^ey?gwK)t3(X3InE(I) literal 0 HcmV?d00001 diff --git a/server/jpywork/string.java b/server/jpywork/string.java new file mode 100644 index 00000000..32b21506 --- /dev/null +++ b/server/jpywork/string.java @@ -0,0 +1,758 @@ +import org.python.core.*; + +public class string extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject s$1; + private static PyObject s$2; + private static PyObject s$3; + private static PyObject s$4; + private static PyObject s$5; + private static PyObject s$6; + private static PyObject s$7; + private static PyObject s$8; + private static PyObject i$9; + private static PyObject s$10; + private static PyObject s$11; + private static PyObject s$12; + private static PyObject s$13; + private static PyObject s$14; + private static PyObject s$15; + private static PyObject s$16; + private static PyObject i$17; + private static PyObject s$18; + private static PyObject s$19; + private static PyObject s$20; + private static PyObject s$21; + private static PyObject s$22; + private static PyObject s$23; + private static PyObject s$24; + private static PyObject s$25; + private static PyObject s$26; + private static PyObject s$27; + private static PyObject i$28; + private static PyObject s$29; + private static PyObject s$30; + private static PyObject s$31; + private static PyObject s$32; + private static PyObject s$33; + private static PyObject i$34; + private static PyObject s$35; + private static PyObject s$36; + private static PyObject s$37; + private static PyObject s$38; + private static PyObject s$39; + private static PyObject s$40; + private static PyObject s$41; + private static PyObject i$42; + private static PyObject s$43; + private static PyObject s$44; + private static PyObject s$45; + private static PyObject s$46; + private static PyObject s$47; + private static PyObject s$48; + private static PyObject s$49; + private static PyFunctionTable funcTable; + private static PyCode c$0_lower; + private static PyCode c$1_upper; + private static PyCode c$2_swapcase; + private static PyCode c$3_strip; + private static PyCode c$4_lstrip; + private static PyCode c$5_rstrip; + private static PyCode c$6_split; + private static PyCode c$7_join; + private static PyCode c$8_index; + private static PyCode c$9_rindex; + private static PyCode c$10_count; + private static PyCode c$11_find; + private static PyCode c$12_rfind; + private static PyCode c$13_atof; + private static PyCode c$14_atoi; + private static PyCode c$15_atol; + private static PyCode c$16_ljust; + private static PyCode c$17_rjust; + private static PyCode c$18_center; + private static PyCode c$19_zfill; + private static PyCode c$20_expandtabs; + private static PyCode c$21_translate; + private static PyCode c$22_capitalize; + private static PyCode c$23_capwords; + private static PyCode c$24_maketrans; + private static PyCode c$25_replace; + private static PyCode c$26_main; + private static void initConstants() { + s$0 = Py.newString("Common string manipulations.\012\012Public module variables:\012\012whitespace -- a string containing all characters considered whitespace\012lowercase -- a string containing all characters considered lowercase letters\012uppercase -- a string containing all characters considered uppercase letters\012letters -- a string containing all characters considered letters\012digits -- a string containing all characters considered decimal digits\012hexdigits -- a string containing all characters considered hexadecimal digits\012octdigits -- a string containing all characters considered octal digits\012\012"); + s$1 = Py.newString(" \011\012\015\013\014"); + s$2 = Py.newString("abcdefghijklmnopqrstuvwxyz"); + s$3 = Py.newString("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); + s$4 = Py.newString("0123456789"); + s$5 = Py.newString("abcdef"); + s$6 = Py.newString("ABCDEF"); + s$7 = Py.newString("01234567"); + s$8 = Py.newString(""); + i$9 = Py.newInteger(256); + s$10 = Py.newString("lower(s) -> string\012\012 Return a copy of the string s converted to lowercase.\012\012 "); + s$11 = Py.newString("upper(s) -> string\012\012 Return a copy of the string s converted to uppercase.\012\012 "); + s$12 = Py.newString("swapcase(s) -> string\012\012 Return a copy of the string s with upper case characters\012 converted to lowercase and vice versa.\012\012 "); + s$13 = Py.newString("strip(s) -> string\012\012 Return a copy of the string s with leading and trailing\012 whitespace removed.\012\012 "); + s$14 = Py.newString("lstrip(s) -> string\012\012 Return a copy of the string s with leading whitespace removed.\012\012 "); + s$15 = Py.newString("rstrip(s) -> string\012\012 Return a copy of the string s with trailing whitespace\012 removed.\012\012 "); + s$16 = Py.newString("split(str [,sep [,maxsplit]]) -> list of strings\012\012 Return a list of the words in the string s, using sep as the\012 delimiter string. If maxsplit is nonzero, splits into at most\012 maxsplit words If sep is not specified, any whitespace string\012 is a separator. Maxsplit defaults to -1.\012\012 (split and splitfields are synonymous)\012\012 "); + i$17 = Py.newInteger(1); + s$18 = Py.newString("join(list [,sep]) -> string\012\012 Return a string composed of the words in list, with\012 intervening occurences of sep. The default separator is a\012 single space.\012\012 (joinfields and join are synonymous)\012\012 "); + s$19 = Py.newString(" "); + s$20 = Py.newString("index(s, sub [,start [,end]]) -> int\012\012 Like find but raises ValueError when the substring is not found.\012\012 "); + s$21 = Py.newString("rindex(s, sub [,start [,end]]) -> int\012\012 Like rfind but raises ValueError when the substring is not found.\012\012 "); + s$22 = Py.newString("count(s, sub[, start[,end]]) -> int\012\012 Return the number of occurrences of substring sub in string\012 s[start:end]. Optional arguments start and end are\012 interpreted as in slice notation.\012\012 "); + s$23 = Py.newString("find(s, sub [,start [,end]]) -> in\012\012 Return the lowest index in s where substring sub is found,\012 such that sub is contained within s[start,end]. Optional\012 arguments start and end are interpreted as in slice notation.\012\012 Return -1 on failure.\012\012 "); + s$24 = Py.newString("rfind(s, sub [,start [,end]]) -> int\012\012 Return the highest index in s where substring sub is found,\012 such that sub is contained within s[start,end]. Optional\012 arguments start and end are interpreted as in slice notation.\012\012 Return -1 on failure.\012\012 "); + s$25 = Py.newString("atof(s) -> float\012\012 Return the floating point number represented by the string s.\012\012 "); + s$26 = Py.newString("argument 1: expected string, %s found"); + s$27 = Py.newString("atoi(s [,base]) -> int\012\012 Return the integer represented by the string s in the given\012 base, which defaults to 10. The string s must consist of one\012 or more digits, possibly preceded by a sign. If base is 0, it\012 is chosen from the leading characters of s, 0 for octal, 0x or\012 0X for hexadecimal. If base is 16, a preceding 0x or 0X is\012 accepted.\012\012 "); + i$28 = Py.newInteger(0); + s$29 = Py.newString("function requires at least 1 argument: %d given"); + s$30 = Py.newString("atol(s [,base]) -> long\012\012 Return the long integer represented by the string s in the\012 given base, which defaults to 10. The string s must consist\012 of one or more digits, possibly preceded by a sign. If base\012 is 0, it is chosen from the leading characters of s, 0 for\012 octal, 0x or 0X for hexadecimal. If base is 16, a preceding\012 0x or 0X is accepted. A trailing L or l is not accepted,\012 unless base is 0.\012\012 "); + s$31 = Py.newString("ljust(s, width) -> string\012\012 Return a left-justified version of s, in a field of the\012 specified width, padded with spaces as needed. The string is\012 never truncated.\012\012 "); + s$32 = Py.newString("rjust(s, width) -> string\012\012 Return a right-justified version of s, in a field of the\012 specified width, padded with spaces as needed. The string is\012 never truncated.\012\012 "); + s$33 = Py.newString("center(s, width) -> string\012\012 Return a center version of s, in a field of the specified\012 width. padded with spaces as needed. The string is never\012 truncated.\012\012 "); + i$34 = Py.newInteger(2); + s$35 = Py.newString("zfill(x, width) -> string\012\012 Pad a numeric string x with zeros on the left, to fill a field\012 of the specified width. The string x is never truncated.\012\012 "); + s$36 = Py.newString("-"); + s$37 = Py.newString("+"); + s$38 = Py.newString("0"); + s$39 = Py.newString("expandtabs(s [,tabsize]) -> string\012\012 Return a copy of the string s with all tab characters replaced\012 by the appropriate number of spaces, depending on the current\012 column, and the tabsize (default 8).\012\012 "); + s$40 = Py.newString("\011"); + s$41 = Py.newString("\012"); + i$42 = Py.newInteger(8); + s$43 = Py.newString("translate(s,table [,deletechars]) -> string\012\012 Return a copy of the string s, where all characters occurring\012 in the optional argument deletechars are removed, and the\012 remaining characters have been mapped through the given\012 translation table, which must be a string of length 256.\012\012 "); + s$44 = Py.newString("capitalize(s) -> string\012\012 Return a copy of the string s with only its first character\012 capitalized.\012\012 "); + s$45 = Py.newString("capwords(s, [sep]) -> string\012\012 Split the argument into words using split, capitalize each\012 word using capitalize, and join the capitalized words using\012 join. Note that this replaces runs of whitespace characters by\012 a single space.\012\012 "); + s$46 = Py.newString("maketrans(frm, to) -> string\012\012 Return a translation table (a string of 256 bytes long)\012 suitable for use in string.translate. The strings frm and to\012 must be of the same length.\012\012 "); + s$47 = Py.newString("maketrans arguments must have same length"); + s$48 = Py.newString("replace (str, old, new[, maxsplit]) -> string\012\012 Return a copy of string str with all occurrences of substring\012 old replaced by new. If the optional argument maxsplit is\012 given, only the first maxsplit occurrences are replaced.\012\012 "); + s$49 = Py.newString("/usr/share/jython/Lib/string.py"); + funcTable = new _PyInner(); + c$0_lower = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "lower", false, false, funcTable, 0, null, null, 0, 1); + c$1_upper = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "upper", false, false, funcTable, 1, null, null, 0, 1); + c$2_swapcase = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "swapcase", false, false, funcTable, 2, null, null, 0, 1); + c$3_strip = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "strip", false, false, funcTable, 3, null, null, 0, 1); + c$4_lstrip = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "lstrip", false, false, funcTable, 4, null, null, 0, 1); + c$5_rstrip = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "rstrip", false, false, funcTable, 5, null, null, 0, 1); + c$6_split = Py.newCode(3, new String[] {"s", "sep", "maxsplit"}, "/usr/share/jython/Lib/string.py", "split", false, false, funcTable, 6, null, null, 0, 1); + c$7_join = Py.newCode(2, new String[] {"words", "sep"}, "/usr/share/jython/Lib/string.py", "join", false, false, funcTable, 7, null, null, 0, 1); + c$8_index = Py.newCode(2, new String[] {"s", "args"}, "/usr/share/jython/Lib/string.py", "index", true, false, funcTable, 8, null, null, 0, 1); + c$9_rindex = Py.newCode(2, new String[] {"s", "args"}, "/usr/share/jython/Lib/string.py", "rindex", true, false, funcTable, 9, null, null, 0, 1); + c$10_count = Py.newCode(2, new String[] {"s", "args"}, "/usr/share/jython/Lib/string.py", "count", true, false, funcTable, 10, null, null, 0, 1); + c$11_find = Py.newCode(2, new String[] {"s", "args"}, "/usr/share/jython/Lib/string.py", "find", true, false, funcTable, 11, null, null, 0, 1); + c$12_rfind = Py.newCode(2, new String[] {"s", "args"}, "/usr/share/jython/Lib/string.py", "rfind", true, false, funcTable, 12, null, null, 0, 1); + c$13_atof = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "atof", false, false, funcTable, 13, null, null, 0, 1); + c$14_atoi = Py.newCode(1, new String[] {"args", "s"}, "/usr/share/jython/Lib/string.py", "atoi", true, false, funcTable, 14, null, null, 0, 1); + c$15_atol = Py.newCode(1, new String[] {"args", "s"}, "/usr/share/jython/Lib/string.py", "atol", true, false, funcTable, 15, null, null, 0, 1); + c$16_ljust = Py.newCode(2, new String[] {"s", "width", "n"}, "/usr/share/jython/Lib/string.py", "ljust", false, false, funcTable, 16, null, null, 0, 1); + c$17_rjust = Py.newCode(2, new String[] {"s", "width", "n"}, "/usr/share/jython/Lib/string.py", "rjust", false, false, funcTable, 17, null, null, 0, 1); + c$18_center = Py.newCode(2, new String[] {"s", "width", "half", "n"}, "/usr/share/jython/Lib/string.py", "center", false, false, funcTable, 18, null, null, 0, 1); + c$19_zfill = Py.newCode(2, new String[] {"x", "width", "sign", "s", "n"}, "/usr/share/jython/Lib/string.py", "zfill", false, false, funcTable, 19, null, null, 0, 1); + c$20_expandtabs = Py.newCode(2, new String[] {"s", "tabsize", "line", "res", "c"}, "/usr/share/jython/Lib/string.py", "expandtabs", false, false, funcTable, 20, null, null, 0, 1); + c$21_translate = Py.newCode(3, new String[] {"s", "table", "deletions"}, "/usr/share/jython/Lib/string.py", "translate", false, false, funcTable, 21, null, null, 0, 1); + c$22_capitalize = Py.newCode(1, new String[] {"s"}, "/usr/share/jython/Lib/string.py", "capitalize", false, false, funcTable, 22, null, null, 0, 1); + c$23_capwords = Py.newCode(2, new String[] {"s", "sep"}, "/usr/share/jython/Lib/string.py", "capwords", false, false, funcTable, 23, null, null, 0, 1); + c$24_maketrans = Py.newCode(2, new String[] {"fromstr", "tostr", "i", "L"}, "/usr/share/jython/Lib/string.py", "maketrans", false, false, funcTable, 24, null, null, 0, 1); + c$25_replace = Py.newCode(4, new String[] {"s", "old", "new", "maxsplit"}, "/usr/share/jython/Lib/string.py", "replace", false, false, funcTable, 25, null, null, 0, 1); + c$26_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib/string.py", "main", false, false, funcTable, 26, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$26_main == null) _PyInner.initConstants(); + return c$26_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.lower$1(frame); + case 1: + return _PyInner.upper$2(frame); + case 2: + return _PyInner.swapcase$3(frame); + case 3: + return _PyInner.strip$4(frame); + case 4: + return _PyInner.lstrip$5(frame); + case 5: + return _PyInner.rstrip$6(frame); + case 6: + return _PyInner.split$7(frame); + case 7: + return _PyInner.join$8(frame); + case 8: + return _PyInner.index$9(frame); + case 9: + return _PyInner.rindex$10(frame); + case 10: + return _PyInner.count$11(frame); + case 11: + return _PyInner.find$12(frame); + case 12: + return _PyInner.rfind$13(frame); + case 13: + return _PyInner.atof$14(frame); + case 14: + return _PyInner.atoi$15(frame); + case 15: + return _PyInner.atol$16(frame); + case 16: + return _PyInner.ljust$17(frame); + case 17: + return _PyInner.rjust$18(frame); + case 18: + return _PyInner.center$19(frame); + case 19: + return _PyInner.zfill$20(frame); + case 20: + return _PyInner.expandtabs$21(frame); + case 21: + return _PyInner.translate$22(frame); + case 22: + return _PyInner.capitalize$23(frame); + case 23: + return _PyInner.capwords$24(frame); + case 24: + return _PyInner.maketrans$25(frame); + case 25: + return _PyInner.replace$26(frame); + case 26: + return _PyInner.main$27(frame); + default: + return null; + } + } + + private static PyObject lower$1(PyFrame frame) { + /* lower(s) -> string + + Return a copy of the string s converted to lowercase. + + */ + return frame.getlocal(0).invoke("lower"); + } + + private static PyObject upper$2(PyFrame frame) { + /* upper(s) -> string + + Return a copy of the string s converted to uppercase. + + */ + return frame.getlocal(0).invoke("upper"); + } + + private static PyObject swapcase$3(PyFrame frame) { + /* swapcase(s) -> string + + Return a copy of the string s with upper case characters + converted to lowercase and vice versa. + + */ + return frame.getlocal(0).invoke("swapcase"); + } + + private static PyObject strip$4(PyFrame frame) { + /* strip(s) -> string + + Return a copy of the string s with leading and trailing + whitespace removed. + + */ + return frame.getlocal(0).invoke("strip"); + } + + private static PyObject lstrip$5(PyFrame frame) { + /* lstrip(s) -> string + + Return a copy of the string s with leading whitespace removed. + + */ + return frame.getlocal(0).invoke("lstrip"); + } + + private static PyObject rstrip$6(PyFrame frame) { + /* rstrip(s) -> string + + Return a copy of the string s with trailing whitespace + removed. + + */ + return frame.getlocal(0).invoke("rstrip"); + } + + private static PyObject split$7(PyFrame frame) { + /* split(str [,sep [,maxsplit]]) -> list of strings + + Return a list of the words in the string s, using sep as the + delimiter string. If maxsplit is nonzero, splits into at most + maxsplit words If sep is not specified, any whitespace string + is a separator. Maxsplit defaults to -1. + + (split and splitfields are synonymous) + + */ + return frame.getlocal(0).invoke("split", frame.getlocal(1), frame.getlocal(2)); + } + + private static PyObject join$8(PyFrame frame) { + /* join(list [,sep]) -> string + + Return a string composed of the words in list, with + intervening occurences of sep. The default separator is a + single space. + + (joinfields and join are synonymous) + + */ + return frame.getlocal(1).invoke("join", frame.getlocal(0)); + } + + private static PyObject index$9(PyFrame frame) { + /* index(s, sub [,start [,end]]) -> int + + Like find but raises ValueError when the substring is not found. + + */ + return frame.getglobal("_apply").__call__(frame.getlocal(0).__getattr__("index"), frame.getlocal(1)); + } + + private static PyObject rindex$10(PyFrame frame) { + /* rindex(s, sub [,start [,end]]) -> int + + Like rfind but raises ValueError when the substring is not found. + + */ + return frame.getglobal("_apply").__call__(frame.getlocal(0).__getattr__("rindex"), frame.getlocal(1)); + } + + private static PyObject count$11(PyFrame frame) { + /* count(s, sub[, start[,end]]) -> int + + Return the number of occurrences of substring sub in string + s[start:end]. Optional arguments start and end are + interpreted as in slice notation. + + */ + return frame.getglobal("_apply").__call__(frame.getlocal(0).__getattr__("count"), frame.getlocal(1)); + } + + private static PyObject find$12(PyFrame frame) { + /* find(s, sub [,start [,end]]) -> in + + Return the lowest index in s where substring sub is found, + such that sub is contained within s[start,end]. Optional + arguments start and end are interpreted as in slice notation. + + Return -1 on failure. + + */ + return frame.getglobal("_apply").__call__(frame.getlocal(0).__getattr__("find"), frame.getlocal(1)); + } + + private static PyObject rfind$13(PyFrame frame) { + /* rfind(s, sub [,start [,end]]) -> int + + Return the highest index in s where substring sub is found, + such that sub is contained within s[start,end]. Optional + arguments start and end are interpreted as in slice notation. + + Return -1 on failure. + + */ + return frame.getglobal("_apply").__call__(frame.getlocal(0).__getattr__("rfind"), frame.getlocal(1)); + } + + private static PyObject atof$14(PyFrame frame) { + /* atof(s) -> float + + Return the floating point number represented by the string s. + + */ + if (frame.getglobal("type").__call__(frame.getlocal(0))._eq(frame.getglobal("_StringType")).__nonzero__()) { + return frame.getglobal("_float").__call__(frame.getlocal(0)); + } + else { + throw Py.makeException(frame.getglobal("TypeError").__call__(s$26._mod(frame.getglobal("type").__call__(frame.getlocal(0)).__getattr__("__name__")))); + } + } + + private static PyObject atoi$15(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + + // Code + /* atoi(s [,base]) -> int + + Return the integer represented by the string s in the given + base, which defaults to 10. The string s must consist of one + or more digits, possibly preceded by a sign. If base is 0, it + is chosen from the leading characters of s, 0 for octal, 0x or + 0X for hexadecimal. If base is 16, a preceding 0x or 0X is + accepted. + + */ + try { + frame.setlocal(1, frame.getlocal(0).__getitem__(i$28)); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("IndexError"))) { + throw Py.makeException(frame.getglobal("TypeError").__call__(s$29._mod(frame.getglobal("len").__call__(frame.getlocal(0))))); + } + else throw t$0$PyException; + } + if (frame.getglobal("type").__call__(frame.getlocal(1))._eq(frame.getglobal("_StringType")).__nonzero__()) { + return frame.getglobal("_apply").__call__(frame.getglobal("_int"), frame.getlocal(0)); + } + else { + throw Py.makeException(frame.getglobal("TypeError").__call__(s$26._mod(frame.getglobal("type").__call__(frame.getlocal(1)).__getattr__("__name__")))); + } + } + + private static PyObject atol$16(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + + // Code + /* atol(s [,base]) -> long + + Return the long integer represented by the string s in the + given base, which defaults to 10. The string s must consist + of one or more digits, possibly preceded by a sign. If base + is 0, it is chosen from the leading characters of s, 0 for + octal, 0x or 0X for hexadecimal. If base is 16, a preceding + 0x or 0X is accepted. A trailing L or l is not accepted, + unless base is 0. + + */ + try { + frame.setlocal(1, frame.getlocal(0).__getitem__(i$28)); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("IndexError"))) { + throw Py.makeException(frame.getglobal("TypeError").__call__(s$29._mod(frame.getglobal("len").__call__(frame.getlocal(0))))); + } + else throw t$0$PyException; + } + if (frame.getglobal("type").__call__(frame.getlocal(1))._eq(frame.getglobal("_StringType")).__nonzero__()) { + return frame.getglobal("_apply").__call__(frame.getglobal("_long"), frame.getlocal(0)); + } + else { + throw Py.makeException(frame.getglobal("TypeError").__call__(s$26._mod(frame.getglobal("type").__call__(frame.getlocal(1)).__getattr__("__name__")))); + } + } + + private static PyObject ljust$17(PyFrame frame) { + /* ljust(s, width) -> string + + Return a left-justified version of s, in a field of the + specified width, padded with spaces as needed. The string is + never truncated. + + */ + frame.setlocal(2, frame.getlocal(1)._sub(frame.getglobal("len").__call__(frame.getlocal(0)))); + if (frame.getlocal(2)._le(i$28).__nonzero__()) { + return frame.getlocal(0); + } + return frame.getlocal(0)._add(s$19._mul(frame.getlocal(2))); + } + + private static PyObject rjust$18(PyFrame frame) { + /* rjust(s, width) -> string + + Return a right-justified version of s, in a field of the + specified width, padded with spaces as needed. The string is + never truncated. + + */ + frame.setlocal(2, frame.getlocal(1)._sub(frame.getglobal("len").__call__(frame.getlocal(0)))); + if (frame.getlocal(2)._le(i$28).__nonzero__()) { + return frame.getlocal(0); + } + return s$19._mul(frame.getlocal(2))._add(frame.getlocal(0)); + } + + private static PyObject center$19(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + /* center(s, width) -> string + + Return a center version of s, in a field of the specified + width. padded with spaces as needed. The string is never + truncated. + + */ + frame.setlocal(3, frame.getlocal(1)._sub(frame.getglobal("len").__call__(frame.getlocal(0)))); + if (frame.getlocal(3)._le(i$28).__nonzero__()) { + return frame.getlocal(0); + } + frame.setlocal(2, frame.getlocal(3)._div(i$34)); + if (((t$0$PyObject = frame.getlocal(3)._mod(i$34)).__nonzero__() ? frame.getlocal(1)._mod(i$34) : t$0$PyObject).__nonzero__()) { + frame.setlocal(2, frame.getlocal(2)._add(i$17)); + } + return s$19._mul(frame.getlocal(2))._add(frame.getlocal(0))._add(s$19._mul(frame.getlocal(3)._sub(frame.getlocal(2)))); + } + + private static PyObject zfill$20(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + /* zfill(x, width) -> string + + Pad a numeric string x with zeros on the left, to fill a field + of the specified width. The string x is never truncated. + + */ + if (frame.getglobal("type").__call__(frame.getlocal(0))._eq(frame.getglobal("type").__call__(s$8)).__nonzero__()) { + frame.setlocal(3, frame.getlocal(0)); + } + else { + frame.setlocal(3, frame.getlocal(0).__repr__()); + } + frame.setlocal(4, frame.getglobal("len").__call__(frame.getlocal(3))); + if (frame.getlocal(4)._ge(frame.getlocal(1)).__nonzero__()) { + return frame.getlocal(3); + } + frame.setlocal(2, s$8); + if (frame.getlocal(3).__getitem__(i$28)._in(new PyTuple(new PyObject[] {s$36, s$37})).__nonzero__()) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(new PyTuple(new PyObject[] {frame.getlocal(3).__getitem__(i$28), frame.getlocal(3).__getslice__(i$17, null, null)}), 2); + frame.setlocal(2, t$0$PyObject__[0]); + frame.setlocal(3, t$0$PyObject__[1]); + } + return frame.getlocal(2)._add(s$38._mul(frame.getlocal(1)._sub(frame.getlocal(4))))._add(frame.getlocal(3)); + } + + private static PyObject expandtabs$21(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* expandtabs(s [,tabsize]) -> string + + Return a copy of the string s with all tab characters replaced + by the appropriate number of spaces, depending on the current + column, and the tabsize (default 8). + + */ + t$0$PyObject = s$8; + frame.setlocal(3, t$0$PyObject); + frame.setlocal(2, t$0$PyObject); + t$0$int = 0; + t$1$PyObject = frame.getlocal(0); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(4, t$0$PyObject); + if (frame.getlocal(4)._eq(s$40).__nonzero__()) { + frame.setlocal(4, s$19._mul(frame.getlocal(1)._sub(frame.getglobal("len").__call__(frame.getlocal(2))._mod(frame.getlocal(1))))); + } + frame.setlocal(2, frame.getlocal(2)._add(frame.getlocal(4))); + if (frame.getlocal(4)._eq(s$41).__nonzero__()) { + frame.setlocal(3, frame.getlocal(3)._add(frame.getlocal(2))); + frame.setlocal(2, s$8); + } + } + return frame.getlocal(3)._add(frame.getlocal(2)); + } + + private static PyObject translate$22(PyFrame frame) { + /* translate(s,table [,deletechars]) -> string + + Return a copy of the string s, where all characters occurring + in the optional argument deletechars are removed, and the + remaining characters have been mapped through the given + translation table, which must be a string of length 256. + + */ + return frame.getlocal(0).invoke("translate", frame.getlocal(1), frame.getlocal(2)); + } + + private static PyObject capitalize$23(PyFrame frame) { + /* capitalize(s) -> string + + Return a copy of the string s with only its first character + capitalized. + + */ + return frame.getlocal(0).invoke("capitalize"); + } + + private static PyObject capwords$24(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + /* capwords(s, [sep]) -> string + + Split the argument into words using split, capitalize each + word using capitalize, and join the capitalized words using + join. Note that this replaces runs of whitespace characters by + a single space. + + */ + return frame.getglobal("join").__call__(frame.getglobal("map").__call__(frame.getglobal("capitalize"), frame.getlocal(0).invoke("split", frame.getlocal(1))), (t$0$PyObject = frame.getlocal(1)).__nonzero__() ? t$0$PyObject : s$19); + } + + private static PyObject maketrans$25(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* maketrans(frm, to) -> string + + Return a translation table (a string of 256 bytes long) + suitable for use in string.translate. The strings frm and to + must be of the same length. + + */ + if (frame.getglobal("len").__call__(frame.getlocal(0))._ne(frame.getglobal("len").__call__(frame.getlocal(1))).__nonzero__()) { + throw Py.makeException(frame.getglobal("ValueError"), s$47); + } + // global _idmapL + if (frame.getglobal("_idmapL").__not__().__nonzero__()) { + frame.setglobal("_idmapL", frame.getglobal("map").__call__(frame.getglobal("None"), frame.getglobal("_idmap"))); + } + frame.setlocal(3, frame.getglobal("_idmapL").__getslice__(null, null, null)); + frame.setlocal(0, frame.getglobal("map").__call__(frame.getglobal("ord"), frame.getlocal(0))); + t$0$int = 0; + t$1$PyObject = frame.getglobal("range").__call__(frame.getglobal("len").__call__(frame.getlocal(0))); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(2, t$0$PyObject); + frame.getlocal(3).__setitem__(frame.getlocal(0).__getitem__(frame.getlocal(2)), frame.getlocal(1).__getitem__(frame.getlocal(2))); + } + return frame.getglobal("joinfields").__call__(frame.getlocal(3), s$8); + } + + private static PyObject replace$26(PyFrame frame) { + /* replace (str, old, new[, maxsplit]) -> string + + Return a copy of string str with all occurrences of substring + old replaced by new. If the optional argument maxsplit is + given, only the first maxsplit occurrences are replaced. + + */ + return frame.getlocal(0).invoke("replace", new PyObject[] {frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)}); + } + + private static PyObject main$27(PyFrame frame) { + frame.setglobal("__file__", s$49); + + PyObject[] imp_accu; + // Temporary Variables + int t$0$int; + PyException t$0$PyException; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Common string manipulations. + + Public module variables: + + whitespace -- a string containing all characters considered whitespace + lowercase -- a string containing all characters considered lowercase letters + uppercase -- a string containing all characters considered uppercase letters + letters -- a string containing all characters considered letters + digits -- a string containing all characters considered decimal digits + hexdigits -- a string containing all characters considered hexadecimal digits + octdigits -- a string containing all characters considered octal digits + + */ + frame.setlocal("whitespace", s$1); + frame.setlocal("lowercase", s$2); + frame.setlocal("uppercase", s$3); + frame.setlocal("letters", frame.getname("lowercase")._add(frame.getname("uppercase"))); + frame.setlocal("digits", s$4); + frame.setlocal("hexdigits", frame.getname("digits")._add(s$5)._add(s$6)); + frame.setlocal("octdigits", s$7); + frame.setlocal("_idmap", s$8); + t$0$int = 0; + t$1$PyObject = frame.getname("range").__call__(i$9); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal("i", t$0$PyObject); + frame.setlocal("_idmap", frame.getname("_idmap")._add(frame.getname("chr").__call__(frame.getname("i")))); + } + frame.dellocal("i"); + frame.setlocal("index_error", frame.getname("ValueError")); + frame.setlocal("atoi_error", frame.getname("ValueError")); + frame.setlocal("atof_error", frame.getname("ValueError")); + frame.setlocal("atol_error", frame.getname("ValueError")); + frame.setlocal("lower", new PyFunction(frame.f_globals, new PyObject[] {}, c$0_lower)); + frame.setlocal("upper", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_upper)); + frame.setlocal("swapcase", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_swapcase)); + frame.setlocal("strip", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_strip)); + frame.setlocal("lstrip", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_lstrip)); + frame.setlocal("rstrip", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_rstrip)); + frame.setlocal("split", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), i$17.__neg__()}, c$6_split)); + frame.setlocal("splitfields", frame.getname("split")); + frame.setlocal("join", new PyFunction(frame.f_globals, new PyObject[] {s$19}, c$7_join)); + frame.setlocal("joinfields", frame.getname("join")); + frame.setlocal("_apply", frame.getname("apply")); + frame.setlocal("index", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_index)); + frame.setlocal("rindex", new PyFunction(frame.f_globals, new PyObject[] {}, c$9_rindex)); + frame.setlocal("count", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_count)); + frame.setlocal("find", new PyFunction(frame.f_globals, new PyObject[] {}, c$11_find)); + frame.setlocal("rfind", new PyFunction(frame.f_globals, new PyObject[] {}, c$12_rfind)); + frame.setlocal("_float", frame.getname("float")); + frame.setlocal("_int", frame.getname("int")); + frame.setlocal("_long", frame.getname("long")); + frame.setlocal("_StringType", frame.getname("type").__call__(s$8)); + frame.setlocal("atof", new PyFunction(frame.f_globals, new PyObject[] {}, c$13_atof)); + frame.setlocal("atoi", new PyFunction(frame.f_globals, new PyObject[] {}, c$14_atoi)); + frame.setlocal("atol", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_atol)); + frame.setlocal("ljust", new PyFunction(frame.f_globals, new PyObject[] {}, c$16_ljust)); + frame.setlocal("rjust", new PyFunction(frame.f_globals, new PyObject[] {}, c$17_rjust)); + frame.setlocal("center", new PyFunction(frame.f_globals, new PyObject[] {}, c$18_center)); + frame.setlocal("zfill", new PyFunction(frame.f_globals, new PyObject[] {}, c$19_zfill)); + frame.setlocal("expandtabs", new PyFunction(frame.f_globals, new PyObject[] {i$42}, c$20_expandtabs)); + frame.setlocal("translate", new PyFunction(frame.f_globals, new PyObject[] {s$8}, c$21_translate)); + frame.setlocal("capitalize", new PyFunction(frame.f_globals, new PyObject[] {}, c$22_capitalize)); + frame.setlocal("capwords", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$23_capwords)); + frame.setlocal("_idmapL", frame.getname("None")); + frame.setlocal("maketrans", new PyFunction(frame.f_globals, new PyObject[] {}, c$24_maketrans)); + frame.setlocal("replace", new PyFunction(frame.f_globals, new PyObject[] {i$17.__neg__()}, c$25_replace)); + try { + imp_accu = org.python.core.imp.importFrom("strop", new String[] {"maketrans", "lowercase", "uppercase", "whitespace"}, frame); + frame.setlocal("maketrans", imp_accu[0]); + frame.setlocal("lowercase", imp_accu[1]); + frame.setlocal("uppercase", imp_accu[2]); + frame.setlocal("whitespace", imp_accu[3]); + imp_accu = null; + frame.setlocal("letters", frame.getname("lowercase")._add(frame.getname("uppercase"))); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getname("ImportError"))) { + // pass + } + else throw t$0$PyException; + } + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("string")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "string"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(string._PyInner.class, newargs, string.jpy$packages, string.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/threading$_PyInner.class b/server/jpywork/threading$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..614fe464c127e7745f7e6ad2ce45eb122dd16d0c GIT binary patch literal 34479 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 literal 0 HcmV?d00001 diff --git a/server/jpywork/threading.class b/server/jpywork/threading.class new file mode 100644 index 0000000000000000000000000000000000000000..b05afce36ac9f0b52fb9e4dedff7f25a5eb34aa6 GIT binary patch literal 2491 zcma)7S#uOs6#hU-_-K{?L4S&6-JVG@$Y?na)7|Hu^*i4=_xHbkxeOqWZw+)1GEqrM zXWa9P29gBpq;uNoFFSs*|G?Nu=|%*8vRYqLaXf!S1y!jcPlkkfM~7xLMWj5xI6#=E zRjVpETW{4hW2xhwa*Ep2aLY~@uGvVK+u~!F77h?HqV7i}8F?;&ZF9?>??pQZiQc|Z zLULCyE)7^$v#t)E6%69d>rm{TZ(GV&r> zDHI6(ZM^+g;s$mQ_zZ{F6h`WUzAsf4+p$6a-EQIz>>?ON8SQsGpRlC2uZ>5|tbr`{ z;7$X33H<8nP27b+f}v`@Rwk6%K^psMAs%b<>>iHw|^tKs0Js8 zgE%wBGbdS$;9djwTsb`TFp?D$0tX2hM=7W72Gu$t*V>3?9)m5No)!)EjcRg^n#dr_ zup6WeH3MWAIz>sC-`g6g89a+)*uqdEfZ-$|9mb1| zp-f0C#~%+W3_c;L$C9C{x2JMkIp(;h7!+YnsARznDpjv686ra3iR4)?VmM7mgi11; zC3H5l{4jF-C}enuz#1709$?kjeQQ8d$7nuT^O->wggMYZt!JVWgf0LPlCg9obqU>e zg3lFplFt(pSYTWsuv2`Yu+x08n7}nwwsE#hi&qHS;H!jfrTJ=MTa2$26Igc+0HF^6 zk0T^87b$E&8V8U7={usC!7>mCKq@zh^|NN_SeQTt*CXFl-HB8zU76$k7qQ9anAfQ+wDo*b^$wcxhd>EJnN-PLzDU*-Kih2BK0FO*oV8(fuR@(!hQ_`bs>We0DtB# zCy!r3_t5$T-z;*8^~v1jDI7SDL-uc2dYB)c!hQAx4tmLpBA>&#h(?n)yB8{FALk^{8eFF^Z4t+w&wFUg>5b1ZwuS%;hTkR zE#&VC+gilm7q+#Se<-H#@i`EdV>NR4yxE!_q=3{"); + i$4 = Py.newInteger(1); + s$5 = Py.newString("%s.acquire(%s): recursive success"); + s$6 = Py.newString("%s.acquire(%s): initial succes"); + s$7 = Py.newString("%s.acquire(%s): failure"); + s$8 = Py.newString("release() of un-acquire()d lock"); + s$9 = Py.newString("%s.release(): final release"); + s$10 = Py.newString("%s.release(): non-final release"); + s$11 = Py.newString("%s._acquire_restore()"); + s$12 = Py.newString("%s._release_save()"); + s$13 = Py.newString(""); + s$14 = Py.newString("wait() of un-acquire()d lock"); + s$15 = Py.newString("%s.wait(): got it"); + f$16 = Py.newFloat(1.0E-6); + f$17 = Py.newFloat(1.0); + f$18 = Py.newFloat(2.0); + s$19 = Py.newString("%s.wait(%s): timed out"); + s$20 = Py.newString("%s.wait(%s): got it"); + s$21 = Py.newString("notify() of un-acquire()d lock"); + s$22 = Py.newString("%s.notify(): no waiters"); + s$23 = Py.newString("%s.notify(): notifying %d waiter%s"); + s$24 = Py.newString("s"); + s$25 = Py.newString(""); + s$26 = Py.newString("Semaphore initial value must be >= 0"); + s$27 = Py.newString("Thread-%d"); + s$28 = Py.newString("group argument must be None for now"); + s$29 = Py.newString("Thread.__init__() was not called"); + s$30 = Py.newString("initial"); + s$31 = Py.newString("started"); + s$32 = Py.newString("stopped"); + s$33 = Py.newString(" daemon"); + s$34 = Py.newString("<%s(%s, %s)>"); + s$35 = Py.newString("Thread.__init__() not called"); + s$36 = Py.newString("thread already started"); + s$37 = Py.newString("%s.start(): starting thread"); + s$38 = Py.newString("%s.__bootstrap(): thread started"); + s$39 = Py.newString("%s.__bootstrap(): raised SystemExit"); + s$40 = Py.newString("%s.__bootstrap(): unhandled exception"); + s$41 = Py.newString("Exception in thread %s:\012%s\012"); + s$42 = Py.newString("%s.__bootstrap(): normal return"); + s$43 = Py.newString("cannot join thread before it is started"); + s$44 = Py.newString("cannot join current thread"); + s$45 = Py.newString("%s.join(): waiting until thread stops"); + s$46 = Py.newString("%s.join(): thread stopped"); + s$47 = Py.newString("%s.join(): timed out"); + s$48 = Py.newString("cannot set daemon status of active thread"); + s$49 = Py.newString("MainThread"); + s$50 = Py.newString("%s: waiting for other threads"); + s$51 = Py.newString("%s: exiting"); + s$52 = Py.newString("Dummy-%d"); + s$53 = Py.newString("cannot join a dummy thread"); + s$54 = Py.newString("put(%s): queue full"); + s$55 = Py.newString("put(%s): appended, length now %d"); + s$56 = Py.newString("get(): queue empty"); + s$57 = Py.newString("get(): got %s, %d left"); + s$58 = Py.newString("Producer"); + s$59 = Py.newString("%s.%d"); + f$60 = Py.newFloat(1.0E-5); + s$61 = Py.newString("Consumer"); + i$62 = Py.newInteger(3); + i$63 = Py.newInteger(4); + i$64 = Py.newInteger(5); + s$65 = Py.newString("Producer-%d"); + s$66 = Py.newString("__main__"); + s$67 = Py.newString("/usr/share/jython/Lib-cpython/threading.py"); + funcTable = new _PyInner(); + c$0___init__ = Py.newCode(2, new String[] {"self", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 0, null, null, 0, 1); + c$1__note = Py.newCode(3, new String[] {"self", "format", "args"}, "/usr/share/jython/Lib-cpython/threading.py", "_note", true, false, funcTable, 1, null, null, 0, 1); + c$2__Verbose = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_Verbose", false, false, funcTable, 2, null, null, 0, 0); + c$3___init__ = Py.newCode(2, new String[] {"self", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 3, null, null, 0, 1); + c$4__note = Py.newCode(2, new String[] {"self", "args"}, "/usr/share/jython/Lib-cpython/threading.py", "_note", true, false, funcTable, 4, null, null, 0, 1); + c$5__Verbose = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_Verbose", false, false, funcTable, 5, null, null, 0, 0); + c$6_RLock = Py.newCode(2, new String[] {"args", "kwargs"}, "/usr/share/jython/Lib-cpython/threading.py", "RLock", true, true, funcTable, 6, null, null, 0, 1); + c$7___init__ = Py.newCode(2, new String[] {"self", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 7, null, null, 0, 1); + c$8___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "__repr__", false, false, funcTable, 8, null, null, 0, 1); + c$9_acquire = Py.newCode(2, new String[] {"self", "blocking", "me", "rc"}, "/usr/share/jython/Lib-cpython/threading.py", "acquire", false, false, funcTable, 9, null, null, 0, 1); + c$10_release = Py.newCode(1, new String[] {"self", "count", "me"}, "/usr/share/jython/Lib-cpython/threading.py", "release", false, false, funcTable, 10, null, null, 0, 1); + c$11__acquire_restore = Py.newCode(2, new String[] {"self", "(count, owner)", "owner", "count"}, "/usr/share/jython/Lib-cpython/threading.py", "_acquire_restore", false, false, funcTable, 11, null, null, 0, 1); + c$12__release_save = Py.newCode(1, new String[] {"self", "owner", "count"}, "/usr/share/jython/Lib-cpython/threading.py", "_release_save", false, false, funcTable, 12, null, null, 0, 1); + c$13__is_owned = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_is_owned", false, false, funcTable, 13, null, null, 0, 1); + c$14__RLock = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_RLock", false, false, funcTable, 14, null, null, 0, 0); + c$15_Condition = Py.newCode(2, new String[] {"args", "kwargs"}, "/usr/share/jython/Lib-cpython/threading.py", "Condition", true, true, funcTable, 15, null, null, 0, 1); + c$16___init__ = Py.newCode(3, new String[] {"self", "lock", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 16, null, null, 0, 1); + c$17___repr__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "__repr__", false, false, funcTable, 17, null, null, 0, 1); + c$18__release_save = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_release_save", false, false, funcTable, 18, null, null, 0, 1); + c$19__acquire_restore = Py.newCode(2, new String[] {"self", "x"}, "/usr/share/jython/Lib-cpython/threading.py", "_acquire_restore", false, false, funcTable, 19, null, null, 0, 1); + c$20__is_owned = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_is_owned", false, false, funcTable, 20, null, null, 0, 1); + c$21_wait = Py.newCode(2, new String[] {"self", "timeout", "endtime", "saved_state", "delay", "me", "gotit", "waiter"}, "/usr/share/jython/Lib-cpython/threading.py", "wait", false, false, funcTable, 21, null, null, 0, 1); + c$22_notify = Py.newCode(2, new String[] {"self", "n", "__waiters", "waiters", "me", "waiter"}, "/usr/share/jython/Lib-cpython/threading.py", "notify", false, false, funcTable, 22, null, null, 0, 1); + c$23_notifyAll = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "notifyAll", false, false, funcTable, 23, null, null, 0, 1); + c$24__Condition = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_Condition", false, false, funcTable, 24, null, null, 0, 0); + c$25_Semaphore = Py.newCode(2, new String[] {"args", "kwargs"}, "/usr/share/jython/Lib-cpython/threading.py", "Semaphore", true, true, funcTable, 25, null, null, 0, 1); + c$26___init__ = Py.newCode(3, new String[] {"self", "value", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 26, null, null, 0, 1); + c$27_acquire = Py.newCode(2, new String[] {"self", "blocking", "rc"}, "/usr/share/jython/Lib-cpython/threading.py", "acquire", false, false, funcTable, 27, null, null, 0, 1); + c$28_release = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "release", false, false, funcTable, 28, null, null, 0, 1); + c$29__Semaphore = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_Semaphore", false, false, funcTable, 29, null, null, 0, 0); + c$30_Event = Py.newCode(2, new String[] {"args", "kwargs"}, "/usr/share/jython/Lib-cpython/threading.py", "Event", true, true, funcTable, 30, null, null, 0, 1); + c$31___init__ = Py.newCode(2, new String[] {"self", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 31, null, null, 0, 1); + c$32_isSet = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "isSet", false, false, funcTable, 32, null, null, 0, 1); + c$33_set = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "set", false, false, funcTable, 33, null, null, 0, 1); + c$34_clear = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "clear", false, false, funcTable, 34, null, null, 0, 1); + c$35_wait = Py.newCode(2, new String[] {"self", "timeout"}, "/usr/share/jython/Lib-cpython/threading.py", "wait", false, false, funcTable, 35, null, null, 0, 1); + c$36__Event = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_Event", false, false, funcTable, 36, null, null, 0, 0); + c$37__newname = Py.newCode(1, new String[] {"template"}, "/usr/share/jython/Lib-cpython/threading.py", "_newname", false, false, funcTable, 37, null, null, 0, 1); + c$38___init__ = Py.newCode(7, new String[] {"self", "group", "target", "name", "args", "kwargs", "verbose"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 38, null, null, 0, 1); + c$39__set_daemon = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_set_daemon", false, false, funcTable, 39, null, null, 0, 1); + c$40___repr__ = Py.newCode(1, new String[] {"self", "status"}, "/usr/share/jython/Lib-cpython/threading.py", "__repr__", false, false, funcTable, 40, null, null, 0, 1); + c$41_start = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "start", false, false, funcTable, 41, null, null, 0, 1); + c$42_run = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "run", false, false, funcTable, 42, null, null, 0, 1); + c$43__Thread__bootstrap = Py.newCode(1, new String[] {"self", "s"}, "/usr/share/jython/Lib-cpython/threading.py", "_Thread__bootstrap", false, false, funcTable, 43, null, null, 0, 1); + c$44__Thread__stop = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_Thread__stop", false, false, funcTable, 44, null, null, 0, 1); + c$45__Thread__delete = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_Thread__delete", false, false, funcTable, 45, null, null, 0, 1); + c$46_join = Py.newCode(2, new String[] {"self", "timeout", "delay", "deadline"}, "/usr/share/jython/Lib-cpython/threading.py", "join", false, false, funcTable, 46, null, null, 0, 1); + c$47_getName = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "getName", false, false, funcTable, 47, null, null, 0, 1); + c$48_setName = Py.newCode(2, new String[] {"self", "name"}, "/usr/share/jython/Lib-cpython/threading.py", "setName", false, false, funcTable, 48, null, null, 0, 1); + c$49_isAlive = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "isAlive", false, false, funcTable, 49, null, null, 0, 1); + c$50_isDaemon = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "isDaemon", false, false, funcTable, 50, null, null, 0, 1); + c$51_setDaemon = Py.newCode(2, new String[] {"self", "daemonic"}, "/usr/share/jython/Lib-cpython/threading.py", "setDaemon", false, false, funcTable, 51, null, null, 0, 1); + c$52_Thread = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "Thread", false, false, funcTable, 52, null, null, 0, 0); + c$53___init__ = Py.newCode(1, new String[] {"self", "atexit"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 53, null, null, 0, 1); + c$54__set_daemon = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_set_daemon", false, false, funcTable, 54, null, null, 0, 1); + c$55___MainThread__exitfunc = Py.newCode(1, new String[] {"self", "t"}, "/usr/share/jython/Lib-cpython/threading.py", "__MainThread__exitfunc", false, false, funcTable, 55, null, null, 0, 1); + c$56__MainThread = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_MainThread", false, false, funcTable, 56, null, null, 0, 0); + c$57__pickSomeNonDaemonThread = Py.newCode(0, new String[] {"t"}, "/usr/share/jython/Lib-cpython/threading.py", "_pickSomeNonDaemonThread", false, false, funcTable, 57, null, null, 0, 1); + c$58___init__ = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 58, null, null, 0, 1); + c$59__set_daemon = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "_set_daemon", false, false, funcTable, 59, null, null, 0, 1); + c$60_join = Py.newCode(1, new String[] {"self"}, "/usr/share/jython/Lib-cpython/threading.py", "join", false, false, funcTable, 60, null, null, 0, 1); + c$61__DummyThread = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "_DummyThread", false, false, funcTable, 61, null, null, 0, 0); + c$62_currentThread = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "currentThread", false, false, funcTable, 62, null, null, 0, 1); + c$63_activeCount = Py.newCode(0, new String[] {"count"}, "/usr/share/jython/Lib-cpython/threading.py", "activeCount", false, false, funcTable, 63, null, null, 0, 1); + c$64_enumerate = Py.newCode(0, new String[] {"active"}, "/usr/share/jython/Lib-cpython/threading.py", "enumerate", false, false, funcTable, 64, null, null, 0, 1); + c$65___init__ = Py.newCode(2, new String[] {"self", "limit"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 65, null, null, 0, 1); + c$66_put = Py.newCode(2, new String[] {"self", "item"}, "/usr/share/jython/Lib-cpython/threading.py", "put", false, false, funcTable, 66, null, null, 0, 1); + c$67_get = Py.newCode(1, new String[] {"self", "item"}, "/usr/share/jython/Lib-cpython/threading.py", "get", false, false, funcTable, 67, null, null, 0, 1); + c$68_BoundedQueue = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "BoundedQueue", false, false, funcTable, 68, null, null, 0, 0); + c$69___init__ = Py.newCode(3, new String[] {"self", "queue", "quota"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 69, null, null, 0, 1); + c$70_run = Py.newCode(1, new String[] {"self", "counter", "random"}, "/usr/share/jython/Lib-cpython/threading.py", "run", false, false, funcTable, 70, null, null, 0, 1); + c$71_ProducerThread = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "ProducerThread", false, false, funcTable, 71, null, null, 0, 0); + c$72___init__ = Py.newCode(3, new String[] {"self", "queue", "count"}, "/usr/share/jython/Lib-cpython/threading.py", "__init__", false, false, funcTable, 72, null, null, 0, 1); + c$73_run = Py.newCode(1, new String[] {"self", "item"}, "/usr/share/jython/Lib-cpython/threading.py", "run", false, false, funcTable, 73, null, null, 0, 1); + c$74_ConsumerThread = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "ConsumerThread", false, false, funcTable, 74, null, null, 0, 0); + c$75__test = Py.newCode(0, new String[] {"random", "Q", "P", "time", "ProducerThread", "t", "C", "BoundedQueue", "ConsumerThread", "i", "NP", "QL", "NI"}, "/usr/share/jython/Lib-cpython/threading.py", "_test", false, false, funcTable, 75, null, null, 0, 1); + c$76_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/threading.py", "main", false, false, funcTable, 76, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$76_main == null) _PyInner.initConstants(); + return c$76_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.__init__$1(frame); + case 1: + return _PyInner._note$2(frame); + case 2: + return _PyInner._Verbose$3(frame); + case 3: + return _PyInner.__init__$4(frame); + case 4: + return _PyInner._note$5(frame); + case 5: + return _PyInner._Verbose$6(frame); + case 6: + return _PyInner.RLock$7(frame); + case 7: + return _PyInner.__init__$8(frame); + case 8: + return _PyInner.__repr__$9(frame); + case 9: + return _PyInner.acquire$10(frame); + case 10: + return _PyInner.release$11(frame); + case 11: + return _PyInner._acquire_restore$12(frame); + case 12: + return _PyInner._release_save$13(frame); + case 13: + return _PyInner._is_owned$14(frame); + case 14: + return _PyInner._RLock$15(frame); + case 15: + return _PyInner.Condition$16(frame); + case 16: + return _PyInner.__init__$17(frame); + case 17: + return _PyInner.__repr__$18(frame); + case 18: + return _PyInner._release_save$19(frame); + case 19: + return _PyInner._acquire_restore$20(frame); + case 20: + return _PyInner._is_owned$21(frame); + case 21: + return _PyInner.wait$22(frame); + case 22: + return _PyInner.notify$23(frame); + case 23: + return _PyInner.notifyAll$24(frame); + case 24: + return _PyInner._Condition$25(frame); + case 25: + return _PyInner.Semaphore$26(frame); + case 26: + return _PyInner.__init__$27(frame); + case 27: + return _PyInner.acquire$28(frame); + case 28: + return _PyInner.release$29(frame); + case 29: + return _PyInner._Semaphore$30(frame); + case 30: + return _PyInner.Event$31(frame); + case 31: + return _PyInner.__init__$32(frame); + case 32: + return _PyInner.isSet$33(frame); + case 33: + return _PyInner.set$34(frame); + case 34: + return _PyInner.clear$35(frame); + case 35: + return _PyInner.wait$36(frame); + case 36: + return _PyInner._Event$37(frame); + case 37: + return _PyInner._newname$38(frame); + case 38: + return _PyInner.__init__$39(frame); + case 39: + return _PyInner._set_daemon$40(frame); + case 40: + return _PyInner.__repr__$41(frame); + case 41: + return _PyInner.start$42(frame); + case 42: + return _PyInner.run$43(frame); + case 43: + return _PyInner._Thread__bootstrap$44(frame); + case 44: + return _PyInner._Thread__stop$45(frame); + case 45: + return _PyInner._Thread__delete$46(frame); + case 46: + return _PyInner.join$47(frame); + case 47: + return _PyInner.getName$48(frame); + case 48: + return _PyInner.setName$49(frame); + case 49: + return _PyInner.isAlive$50(frame); + case 50: + return _PyInner.isDaemon$51(frame); + case 51: + return _PyInner.setDaemon$52(frame); + case 52: + return _PyInner.Thread$53(frame); + case 53: + return _PyInner.__init__$54(frame); + case 54: + return _PyInner._set_daemon$55(frame); + case 55: + return _PyInner.__MainThread__exitfunc$56(frame); + case 56: + return _PyInner._MainThread$57(frame); + case 57: + return _PyInner._pickSomeNonDaemonThread$58(frame); + case 58: + return _PyInner.__init__$59(frame); + case 59: + return _PyInner._set_daemon$60(frame); + case 60: + return _PyInner.join$61(frame); + case 61: + return _PyInner._DummyThread$62(frame); + case 62: + return _PyInner.currentThread$63(frame); + case 63: + return _PyInner.activeCount$64(frame); + case 64: + return _PyInner.enumerate$65(frame); + case 65: + return _PyInner.__init__$66(frame); + case 66: + return _PyInner.put$67(frame); + case 67: + return _PyInner.get$68(frame); + case 68: + return _PyInner.BoundedQueue$69(frame); + case 69: + return _PyInner.__init__$70(frame); + case 70: + return _PyInner.run$71(frame); + case 71: + return _PyInner.ProducerThread$72(frame); + case 72: + return _PyInner.__init__$73(frame); + case 73: + return _PyInner.run$74(frame); + case 74: + return _PyInner.ConsumerThread$75(frame); + case 75: + return _PyInner._test$76(frame); + case 76: + return _PyInner.main$77(frame); + default: + return null; + } + } + + private static PyObject __init__$1(PyFrame frame) { + if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(1, frame.getglobal("_VERBOSE")); + } + frame.getlocal(0).__setattr__("__Verbose__verbose", frame.getlocal(1)); + return Py.None; + } + + private static PyObject _note$2(PyFrame frame) { + if (frame.getlocal(0).__getattr__("__Verbose__verbose").__nonzero__()) { + frame.setlocal(1, frame.getlocal(1)._mod(frame.getlocal(2))); + frame.setlocal(1, s$2._mod(new PyTuple(new PyObject[] {frame.getglobal("currentThread").__call__().invoke("getName"), frame.getlocal(1)}))); + frame.getglobal("_sys").__getattr__("stderr").__getattr__("write").__call__(frame.getlocal(1)); + } + return Py.None; + } + + private static PyObject _Verbose$3(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$0___init__)); + frame.setlocal("_note", new PyFunction(frame.f_globals, new PyObject[] {}, c$1__note)); + return frame.getf_locals(); + } + + private static PyObject __init__$4(PyFrame frame) { + // pass + return Py.None; + } + + private static PyObject _note$5(PyFrame frame) { + // pass + return Py.None; + } + + private static PyObject _Verbose$6(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$3___init__)); + frame.setlocal("_note", new PyFunction(frame.f_globals, new PyObject[] {}, c$4__note)); + return frame.getf_locals(); + } + + private static PyObject RLock$7(PyFrame frame) { + return frame.getglobal("apply").__call__(frame.getglobal("_RLock"), frame.getlocal(0), frame.getlocal(1)); + } + + private static PyObject __init__$8(PyFrame frame) { + frame.getglobal("_Verbose").invoke("__init__", frame.getlocal(0), frame.getlocal(1)); + frame.getlocal(0).__setattr__("__RLock__block", frame.getglobal("_allocate_lock").__call__()); + frame.getlocal(0).__setattr__("__RLock__owner", frame.getglobal("None")); + frame.getlocal(0).__setattr__("__RLock__count", i$1); + return Py.None; + } + + private static PyObject __repr__$9(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + return s$3._mod(new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("__class__").__getattr__("__name__"), (t$0$PyObject = frame.getlocal(0).__getattr__("__RLock__owner")).__nonzero__() ? frame.getlocal(0).__getattr__("__RLock__owner").invoke("getName") : t$0$PyObject, frame.getlocal(0).__getattr__("__RLock__count")})); + } + + private static PyObject acquire$10(PyFrame frame) { + frame.setlocal(2, frame.getglobal("currentThread").__call__()); + if (frame.getlocal(0).__getattr__("__RLock__owner")._is(frame.getlocal(2)).__nonzero__()) { + frame.getlocal(0).__setattr__("__RLock__count", frame.getlocal(0).__getattr__("__RLock__count")._add(i$4)); + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", new PyObject[] {s$5, frame.getlocal(0), frame.getlocal(1)}); + } + return i$4; + } + frame.setlocal(3, frame.getlocal(0).__getattr__("__RLock__block").invoke("acquire", frame.getlocal(1))); + if (frame.getlocal(3).__nonzero__()) { + frame.getlocal(0).__setattr__("__RLock__owner", frame.getlocal(2)); + frame.getlocal(0).__setattr__("__RLock__count", i$4); + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", new PyObject[] {s$6, frame.getlocal(0), frame.getlocal(1)}); + } + } + else { + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", new PyObject[] {s$7, frame.getlocal(0), frame.getlocal(1)}); + } + } + return frame.getlocal(3); + } + + private static PyObject release$11(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + frame.setlocal(2, frame.getglobal("currentThread").__call__()); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("__RLock__owner")._is(frame.getlocal(2)), s$8); + t$0$PyObject = frame.getlocal(0).__getattr__("__RLock__count")._sub(i$4); + frame.getlocal(0).__setattr__("__RLock__count", t$0$PyObject); + frame.setlocal(1, t$0$PyObject); + if (frame.getlocal(1).__not__().__nonzero__()) { + frame.getlocal(0).__setattr__("__RLock__owner", frame.getglobal("None")); + frame.getlocal(0).__getattr__("__RLock__block").invoke("release"); + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$9, frame.getlocal(0)); + } + } + else { + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$10, frame.getlocal(0)); + } + } + return Py.None; + } + + private static PyObject _acquire_restore$12(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + + // Code + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2); + frame.setlocal(3, t$0$PyObject__[0]); + frame.setlocal(2, t$0$PyObject__[1]); + frame.getlocal(0).__getattr__("__RLock__block").invoke("acquire"); + frame.getlocal(0).__setattr__("__RLock__count", frame.getlocal(3)); + frame.getlocal(0).__setattr__("__RLock__owner", frame.getlocal(2)); + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$11, frame.getlocal(0)); + } + return Py.None; + } + + private static PyObject _release_save$13(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$12, frame.getlocal(0)); + } + frame.setlocal(2, frame.getlocal(0).__getattr__("__RLock__count")); + frame.getlocal(0).__setattr__("__RLock__count", i$1); + frame.setlocal(1, frame.getlocal(0).__getattr__("__RLock__owner")); + frame.getlocal(0).__setattr__("__RLock__owner", frame.getglobal("None")); + frame.getlocal(0).__getattr__("__RLock__block").invoke("release"); + return new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(1)}); + } + + private static PyObject _is_owned$14(PyFrame frame) { + return frame.getlocal(0).__getattr__("__RLock__owner")._is(frame.getglobal("currentThread").__call__()); + } + + private static PyObject _RLock$15(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$7___init__)); + frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$8___repr__)); + frame.setlocal("acquire", new PyFunction(frame.f_globals, new PyObject[] {i$4}, c$9_acquire)); + frame.setlocal("release", new PyFunction(frame.f_globals, new PyObject[] {}, c$10_release)); + frame.setlocal("_acquire_restore", new PyFunction(frame.f_globals, new PyObject[] {}, c$11__acquire_restore)); + frame.setlocal("_release_save", new PyFunction(frame.f_globals, new PyObject[] {}, c$12__release_save)); + frame.setlocal("_is_owned", new PyFunction(frame.f_globals, new PyObject[] {}, c$13__is_owned)); + return frame.getf_locals(); + } + + private static PyObject Condition$16(PyFrame frame) { + return frame.getglobal("apply").__call__(frame.getglobal("_Condition"), frame.getlocal(0), frame.getlocal(1)); + } + + private static PyObject __init__$17(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + + // Code + frame.getglobal("_Verbose").invoke("__init__", frame.getlocal(0), frame.getlocal(2)); + if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(1, frame.getglobal("RLock").__call__()); + } + frame.getlocal(0).__setattr__("__Condition__lock", frame.getlocal(1)); + frame.getlocal(0).__setattr__("acquire", frame.getlocal(1).__getattr__("acquire")); + frame.getlocal(0).__setattr__("release", frame.getlocal(1).__getattr__("release")); + try { + frame.getlocal(0).__setattr__("_release_save", frame.getlocal(1).__getattr__("_release_save")); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("AttributeError"))) { + // pass + } + else throw t$0$PyException; + } + try { + frame.getlocal(0).__setattr__("_acquire_restore", frame.getlocal(1).__getattr__("_acquire_restore")); + } + catch (Throwable x$1) { + t$0$PyException = Py.setException(x$1, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("AttributeError"))) { + // pass + } + else throw t$0$PyException; + } + try { + frame.getlocal(0).__setattr__("_is_owned", frame.getlocal(1).__getattr__("_is_owned")); + } + catch (Throwable x$2) { + t$0$PyException = Py.setException(x$2, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("AttributeError"))) { + // pass + } + else throw t$0$PyException; + } + frame.getlocal(0).__setattr__("__Condition__waiters", new PyList(new PyObject[] {})); + return Py.None; + } + + private static PyObject __repr__$18(PyFrame frame) { + return s$13._mod(new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("__Condition__lock"), frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("__Condition__waiters"))})); + } + + private static PyObject _release_save$19(PyFrame frame) { + frame.getlocal(0).__getattr__("__Condition__lock").invoke("release"); + return Py.None; + } + + private static PyObject _acquire_restore$20(PyFrame frame) { + frame.getlocal(0).__getattr__("__Condition__lock").invoke("acquire"); + return Py.None; + } + + private static PyObject _is_owned$21(PyFrame frame) { + if (frame.getlocal(0).__getattr__("__Condition__lock").invoke("acquire", i$1).__nonzero__()) { + frame.getlocal(0).__getattr__("__Condition__lock").invoke("release"); + return i$1; + } + else { + return i$4; + } + } + + private static PyObject wait$22(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + PyObject t$0$PyObject; + + // Code + frame.setlocal(5, frame.getglobal("currentThread").__call__()); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).invoke("_is_owned"), s$14); + frame.setlocal(7, frame.getglobal("_allocate_lock").__call__()); + frame.getlocal(7).invoke("acquire"); + frame.getlocal(0).__getattr__("__Condition__waiters").invoke("append", frame.getlocal(7)); + frame.setlocal(3, frame.getlocal(0).invoke("_release_save")); + try { + if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) { + frame.getlocal(7).invoke("acquire"); + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$15, frame.getlocal(0)); + } + } + else { + frame.setlocal(2, frame.getglobal("_time").__call__()._add(frame.getlocal(1))); + frame.setlocal(4, f$16); + while (i$4.__nonzero__()) { + frame.setlocal(6, frame.getlocal(7).invoke("acquire", i$1)); + if (((t$0$PyObject = frame.getlocal(6)).__nonzero__() ? t$0$PyObject : frame.getglobal("_time").__call__()._ge(frame.getlocal(2))).__nonzero__()) { + break; + } + frame.getglobal("_sleep").__call__(frame.getlocal(4)); + if (frame.getlocal(4)._lt(f$17).__nonzero__()) { + frame.setlocal(4, frame.getlocal(4)._mul(f$18)); + } + } + if (frame.getlocal(6).__not__().__nonzero__()) { + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", new PyObject[] {s$19, frame.getlocal(0), frame.getlocal(1)}); + } + try { + frame.getlocal(0).__getattr__("__Condition__waiters").invoke("remove", frame.getlocal(7)); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) { + // pass + } + else throw t$0$PyException; + } + } + else { + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", new PyObject[] {s$20, frame.getlocal(0), frame.getlocal(1)}); + } + } + } + } + finally { + frame.getlocal(0).invoke("_acquire_restore", frame.getlocal(3)); + } + return Py.None; + } + + private static PyObject notify$23(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyException t$0$PyException; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(4, frame.getglobal("currentThread").__call__()); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).invoke("_is_owned"), s$21); + frame.setlocal(2, frame.getlocal(0).__getattr__("__Condition__waiters")); + frame.setlocal(3, frame.getlocal(2).__getslice__(null, frame.getlocal(1), null)); + if (frame.getlocal(3).__not__().__nonzero__()) { + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$22, frame.getlocal(0)); + } + return Py.None; + } + frame.getlocal(0).invoke("_note", new PyObject[] {s$23, frame.getlocal(0), frame.getlocal(1), (t$0$PyObject = ((t$1$PyObject = frame.getlocal(1)._ne(i$4)).__nonzero__() ? s$24 : t$1$PyObject)).__nonzero__() ? t$0$PyObject : s$25}); + t$0$int = 0; + t$1$PyObject = frame.getlocal(3); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(5, t$0$PyObject); + frame.getlocal(5).invoke("release"); + try { + frame.getlocal(2).invoke("remove", frame.getlocal(5)); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("ValueError"))) { + // pass + } + else throw t$0$PyException; + } + } + return Py.None; + } + + private static PyObject notifyAll$24(PyFrame frame) { + frame.getlocal(0).invoke("notify", frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("__Condition__waiters"))); + return Py.None; + } + + private static PyObject _Condition$25(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$16___init__)); + frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$17___repr__)); + frame.setlocal("_release_save", new PyFunction(frame.f_globals, new PyObject[] {}, c$18__release_save)); + frame.setlocal("_acquire_restore", new PyFunction(frame.f_globals, new PyObject[] {}, c$19__acquire_restore)); + frame.setlocal("_is_owned", new PyFunction(frame.f_globals, new PyObject[] {}, c$20__is_owned)); + frame.setlocal("wait", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$21_wait)); + frame.setlocal("notify", new PyFunction(frame.f_globals, new PyObject[] {i$4}, c$22_notify)); + frame.setlocal("notifyAll", new PyFunction(frame.f_globals, new PyObject[] {}, c$23_notifyAll)); + return frame.getf_locals(); + } + + private static PyObject Semaphore$26(PyFrame frame) { + return frame.getglobal("apply").__call__(frame.getglobal("_Semaphore"), frame.getlocal(0), frame.getlocal(1)); + } + + private static PyObject __init__$27(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(1)._ge(i$1), s$26); + frame.getglobal("_Verbose").invoke("__init__", frame.getlocal(0), frame.getlocal(2)); + frame.getlocal(0).__setattr__("__Semaphore__cond", frame.getglobal("Condition").__call__(frame.getglobal("Lock").__call__())); + frame.getlocal(0).__setattr__("__Semaphore__value", frame.getlocal(1)); + return Py.None; + } + + private static PyObject acquire$28(PyFrame frame) { + // Temporary Variables + boolean t$0$boolean; + + // Code + frame.setlocal(2, i$1); + frame.getlocal(0).__getattr__("__Semaphore__cond").invoke("acquire"); + while (t$0$boolean=frame.getlocal(0).__getattr__("__Semaphore__value")._eq(i$1).__nonzero__()) { + if (frame.getlocal(1).__not__().__nonzero__()) { + break; + } + frame.getlocal(0).__getattr__("__Semaphore__cond").invoke("wait"); + } + if (!t$0$boolean) { + frame.getlocal(0).__setattr__("__Semaphore__value", frame.getlocal(0).__getattr__("__Semaphore__value")._sub(i$4)); + frame.setlocal(2, i$4); + } + frame.getlocal(0).__getattr__("__Semaphore__cond").invoke("release"); + return frame.getlocal(2); + } + + private static PyObject release$29(PyFrame frame) { + frame.getlocal(0).__getattr__("__Semaphore__cond").invoke("acquire"); + frame.getlocal(0).__setattr__("__Semaphore__value", frame.getlocal(0).__getattr__("__Semaphore__value")._add(i$4)); + frame.getlocal(0).__getattr__("__Semaphore__cond").invoke("notify"); + frame.getlocal(0).__getattr__("__Semaphore__cond").invoke("release"); + return Py.None; + } + + private static PyObject _Semaphore$30(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {i$4, frame.getname("None")}, c$26___init__)); + frame.setlocal("acquire", new PyFunction(frame.f_globals, new PyObject[] {i$4}, c$27_acquire)); + frame.setlocal("release", new PyFunction(frame.f_globals, new PyObject[] {}, c$28_release)); + return frame.getf_locals(); + } + + private static PyObject Event$31(PyFrame frame) { + return frame.getglobal("apply").__call__(frame.getglobal("_Event"), frame.getlocal(0), frame.getlocal(1)); + } + + private static PyObject __init__$32(PyFrame frame) { + frame.getglobal("_Verbose").invoke("__init__", frame.getlocal(0), frame.getlocal(1)); + frame.getlocal(0).__setattr__("__Event__cond", frame.getglobal("Condition").__call__(frame.getglobal("Lock").__call__())); + frame.getlocal(0).__setattr__("__Event__flag", i$1); + return Py.None; + } + + private static PyObject isSet$33(PyFrame frame) { + return frame.getlocal(0).__getattr__("__Event__flag"); + } + + private static PyObject set$34(PyFrame frame) { + frame.getlocal(0).__getattr__("__Event__cond").invoke("acquire"); + frame.getlocal(0).__setattr__("__Event__flag", i$4); + frame.getlocal(0).__getattr__("__Event__cond").invoke("notifyAll"); + frame.getlocal(0).__getattr__("__Event__cond").invoke("release"); + return Py.None; + } + + private static PyObject clear$35(PyFrame frame) { + frame.getlocal(0).__getattr__("__Event__cond").invoke("acquire"); + frame.getlocal(0).__setattr__("__Event__flag", i$1); + frame.getlocal(0).__getattr__("__Event__cond").invoke("release"); + return Py.None; + } + + private static PyObject wait$36(PyFrame frame) { + frame.getlocal(0).__getattr__("__Event__cond").invoke("acquire"); + if (frame.getlocal(0).__getattr__("__Event__flag").__not__().__nonzero__()) { + frame.getlocal(0).__getattr__("__Event__cond").invoke("wait", frame.getlocal(1)); + } + frame.getlocal(0).__getattr__("__Event__cond").invoke("release"); + return Py.None; + } + + private static PyObject _Event$37(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$31___init__)); + frame.setlocal("isSet", new PyFunction(frame.f_globals, new PyObject[] {}, c$32_isSet)); + frame.setlocal("set", new PyFunction(frame.f_globals, new PyObject[] {}, c$33_set)); + frame.setlocal("clear", new PyFunction(frame.f_globals, new PyObject[] {}, c$34_clear)); + frame.setlocal("wait", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$35_wait)); + return frame.getf_locals(); + } + + private static PyObject _newname$38(PyFrame frame) { + // global _counter + frame.setglobal("_counter", frame.getglobal("_counter")._add(i$4)); + return frame.getlocal(0)._mod(frame.getglobal("_counter")); + } + + private static PyObject __init__$39(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(1)._is(frame.getglobal("None")), s$28); + frame.getglobal("_Verbose").invoke("__init__", frame.getlocal(0), frame.getlocal(6)); + frame.getlocal(0).__setattr__("_Thread__target", frame.getlocal(2)); + frame.getlocal(0).__setattr__("_Thread__name", frame.getglobal("str").__call__((t$0$PyObject = frame.getlocal(3)).__nonzero__() ? t$0$PyObject : frame.getglobal("_newname").__call__())); + frame.getlocal(0).__setattr__("_Thread__args", frame.getlocal(4)); + frame.getlocal(0).__setattr__("_Thread__kwargs", frame.getlocal(5)); + frame.getlocal(0).__setattr__("_Thread__daemonic", frame.getlocal(0).invoke("_set_daemon")); + frame.getlocal(0).__setattr__("_Thread__started", i$1); + frame.getlocal(0).__setattr__("_Thread__stopped", i$1); + frame.getlocal(0).__setattr__("_Thread__block", frame.getglobal("Condition").__call__(frame.getglobal("Lock").__call__())); + frame.getlocal(0).__setattr__("_Thread__initialized", i$4); + return Py.None; + } + + private static PyObject _set_daemon$40(PyFrame frame) { + return frame.getglobal("currentThread").__call__().invoke("isDaemon"); + } + + private static PyObject __repr__$41(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$29); + frame.setlocal(1, s$30); + if (frame.getlocal(0).__getattr__("_Thread__started").__nonzero__()) { + frame.setlocal(1, s$31); + } + if (frame.getlocal(0).__getattr__("_Thread__stopped").__nonzero__()) { + frame.setlocal(1, s$32); + } + if (frame.getlocal(0).__getattr__("_Thread__daemonic").__nonzero__()) { + frame.setlocal(1, frame.getlocal(1)._add(s$33)); + } + return s$34._mod(new PyTuple(new PyObject[] {frame.getlocal(0).__getattr__("__class__").__getattr__("__name__"), frame.getlocal(0).__getattr__("_Thread__name"), frame.getlocal(1)})); + } + + private static PyObject start$42(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__started").__not__(), s$36); + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$37, frame.getlocal(0)); + } + frame.getglobal("_active_limbo_lock").invoke("acquire"); + frame.getglobal("_limbo").__setitem__(frame.getlocal(0), frame.getlocal(0)); + frame.getglobal("_active_limbo_lock").invoke("release"); + frame.getglobal("_start_new_thread").__call__(frame.getlocal(0).__getattr__("_Thread__bootstrap"), new PyTuple(new PyObject[] {})); + frame.getlocal(0).__setattr__("_Thread__started", i$4); + frame.getglobal("_sleep").__call__(f$16); + return Py.None; + } + + private static PyObject run$43(PyFrame frame) { + if (frame.getlocal(0).__getattr__("_Thread__target").__nonzero__()) { + frame.getglobal("apply").__call__(frame.getlocal(0).__getattr__("_Thread__target"), frame.getlocal(0).__getattr__("_Thread__args"), frame.getlocal(0).__getattr__("_Thread__kwargs")); + } + return Py.None; + } + + private static PyObject _Thread__bootstrap$44(PyFrame frame) { + // Temporary Variables + boolean t$0$boolean; + PyException t$0$PyException; + + // Code + try { + frame.getlocal(0).__setattr__("_Thread__started", i$4); + frame.getglobal("_active_limbo_lock").invoke("acquire"); + frame.getglobal("_active").__setitem__(frame.getglobal("_get_ident").__call__(), frame.getlocal(0)); + frame.getglobal("_limbo").__delitem__(frame.getlocal(0)); + frame.getglobal("_active_limbo_lock").invoke("release"); + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$38, frame.getlocal(0)); + } + t$0$boolean = true; + try { + frame.getlocal(0).invoke("run"); + } + catch (Throwable x$0) { + t$0$boolean = false; + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("SystemExit"))) { + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$39, frame.getlocal(0)); + } + } + else { + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$40, frame.getlocal(0)); + } + frame.setlocal(1, frame.getglobal("_StringIO").__call__()); + frame.getglobal("_print_exc").__call__(new PyObject[] {frame.getlocal(1)}, new String[] {"file"}); + frame.getglobal("_sys").__getattr__("stderr").__getattr__("write").__call__(s$41._mod(new PyTuple(new PyObject[] {frame.getlocal(0).invoke("getName"), frame.getlocal(1).invoke("getvalue")}))); + } + } + if (t$0$boolean) { + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$42, frame.getlocal(0)); + } + } + } + finally { + frame.getlocal(0).invoke("_Thread__stop"); + try { + frame.getlocal(0).invoke("_Thread__delete"); + } + catch (Throwable x$1) { + t$0$PyException = Py.setException(x$1, frame); + // pass + } + } + return Py.None; + } + + private static PyObject _Thread__stop$45(PyFrame frame) { + frame.getlocal(0).__getattr__("_Thread__block").invoke("acquire"); + frame.getlocal(0).__setattr__("_Thread__stopped", i$4); + frame.getlocal(0).__getattr__("_Thread__block").invoke("notifyAll"); + frame.getlocal(0).__getattr__("_Thread__block").invoke("release"); + return Py.None; + } + + private static PyObject _Thread__delete$46(PyFrame frame) { + frame.getglobal("_active_limbo_lock").invoke("acquire"); + frame.getglobal("_active").__delitem__(frame.getglobal("_get_ident").__call__()); + frame.getglobal("_active_limbo_lock").invoke("release"); + return Py.None; + } + + private static PyObject join$47(PyFrame frame) { + // Temporary Variables + boolean t$0$boolean; + + // Code + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__started"), s$43); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0)._isnot(frame.getglobal("currentThread").__call__()), s$44); + if (frame.getglobal("__debug__").__nonzero__()) { + if (frame.getlocal(0).__getattr__("_Thread__stopped").__not__().__nonzero__()) { + frame.getlocal(0).invoke("_note", s$45, frame.getlocal(0)); + } + } + frame.getlocal(0).__getattr__("_Thread__block").invoke("acquire"); + if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) { + while (frame.getlocal(0).__getattr__("_Thread__stopped").__not__().__nonzero__()) { + frame.getlocal(0).__getattr__("_Thread__block").invoke("wait"); + } + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$46, frame.getlocal(0)); + } + } + else { + frame.setlocal(3, frame.getglobal("_time").__call__()._add(frame.getlocal(1))); + while (t$0$boolean=frame.getlocal(0).__getattr__("_Thread__stopped").__not__().__nonzero__()) { + frame.setlocal(2, frame.getlocal(3)._sub(frame.getglobal("_time").__call__())); + if (frame.getlocal(2)._le(i$1).__nonzero__()) { + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$47, frame.getlocal(0)); + } + break; + } + frame.getlocal(0).__getattr__("_Thread__block").invoke("wait", frame.getlocal(2)); + } + if (!t$0$boolean) { + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$46, frame.getlocal(0)); + } + } + } + frame.getlocal(0).__getattr__("_Thread__block").invoke("release"); + return Py.None; + } + + private static PyObject getName$48(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35); + return frame.getlocal(0).__getattr__("_Thread__name"); + } + + private static PyObject setName$49(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35); + frame.getlocal(0).__setattr__("_Thread__name", frame.getglobal("str").__call__(frame.getlocal(1))); + return Py.None; + } + + private static PyObject isAlive$50(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35); + return (t$0$PyObject = frame.getlocal(0).__getattr__("_Thread__started")).__nonzero__() ? frame.getlocal(0).__getattr__("_Thread__stopped").__not__() : t$0$PyObject; + } + + private static PyObject isDaemon$51(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35); + return frame.getlocal(0).__getattr__("_Thread__daemonic"); + } + + private static PyObject setDaemon$52(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__initialized"), s$35); + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(frame.getlocal(0).__getattr__("_Thread__started").__not__(), s$48); + frame.getlocal(0).__setattr__("_Thread__daemonic", frame.getlocal(1)); + return Py.None; + } + + private static PyObject Thread$53(PyFrame frame) { + frame.setlocal("_Thread__initialized", i$1); + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None"), frame.getname("None"), new PyTuple(new PyObject[] {}), new PyDictionary(new PyObject[] {}), frame.getname("None")}, c$38___init__)); + frame.setlocal("_set_daemon", new PyFunction(frame.f_globals, new PyObject[] {}, c$39__set_daemon)); + frame.setlocal("__repr__", new PyFunction(frame.f_globals, new PyObject[] {}, c$40___repr__)); + frame.setlocal("start", new PyFunction(frame.f_globals, new PyObject[] {}, c$41_start)); + frame.setlocal("run", new PyFunction(frame.f_globals, new PyObject[] {}, c$42_run)); + frame.setlocal("_Thread__bootstrap", new PyFunction(frame.f_globals, new PyObject[] {}, c$43__Thread__bootstrap)); + frame.setlocal("_Thread__stop", new PyFunction(frame.f_globals, new PyObject[] {}, c$44__Thread__stop)); + frame.setlocal("_Thread__delete", new PyFunction(frame.f_globals, new PyObject[] {}, c$45__Thread__delete)); + frame.setlocal("join", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$46_join)); + frame.setlocal("getName", new PyFunction(frame.f_globals, new PyObject[] {}, c$47_getName)); + frame.setlocal("setName", new PyFunction(frame.f_globals, new PyObject[] {}, c$48_setName)); + frame.setlocal("isAlive", new PyFunction(frame.f_globals, new PyObject[] {}, c$49_isAlive)); + frame.setlocal("isDaemon", new PyFunction(frame.f_globals, new PyObject[] {}, c$50_isDaemon)); + frame.setlocal("setDaemon", new PyFunction(frame.f_globals, new PyObject[] {}, c$51_setDaemon)); + return frame.getf_locals(); + } + + private static PyObject __init__$54(PyFrame frame) { + frame.getglobal("Thread").__getattr__("__init__").__call__(new PyObject[] {frame.getlocal(0), s$49}, new String[] {"name"}); + frame.getlocal(0).__setattr__("_Thread__started", i$4); + frame.getglobal("_active_limbo_lock").invoke("acquire"); + frame.getglobal("_active").__setitem__(frame.getglobal("_get_ident").__call__(), frame.getlocal(0)); + frame.getglobal("_active_limbo_lock").invoke("release"); + frame.setlocal(1, org.python.core.imp.importOne("atexit", frame)); + frame.getlocal(1).__getattr__("register").__call__(frame.getlocal(0).__getattr__("__MainThread__exitfunc")); + return Py.None; + } + + private static PyObject _set_daemon$55(PyFrame frame) { + return i$1; + } + + private static PyObject __MainThread__exitfunc$56(PyFrame frame) { + frame.getlocal(0).invoke("_Thread__stop"); + frame.setlocal(1, frame.getglobal("_pickSomeNonDaemonThread").__call__()); + if (frame.getlocal(1).__nonzero__()) { + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$50, frame.getlocal(0)); + } + } + while (frame.getlocal(1).__nonzero__()) { + frame.getlocal(1).invoke("join"); + frame.setlocal(1, frame.getglobal("_pickSomeNonDaemonThread").__call__()); + } + if (frame.getglobal("__debug__").__nonzero__()) { + frame.getlocal(0).invoke("_note", s$51, frame.getlocal(0)); + } + frame.getlocal(0).invoke("_Thread__delete"); + return Py.None; + } + + private static PyObject _MainThread$57(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$53___init__)); + frame.setlocal("_set_daemon", new PyFunction(frame.f_globals, new PyObject[] {}, c$54__set_daemon)); + frame.setlocal("__MainThread__exitfunc", new PyFunction(frame.f_globals, new PyObject[] {}, c$55___MainThread__exitfunc)); + return frame.getf_locals(); + } + + private static PyObject _pickSomeNonDaemonThread$58(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject; + + // Code + t$0$int = 0; + t$1$PyObject = frame.getglobal("enumerate").__call__(); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(0, t$0$PyObject); + if (((t$2$PyObject = frame.getlocal(0).invoke("isDaemon").__not__()).__nonzero__() ? frame.getlocal(0).invoke("isAlive") : t$2$PyObject).__nonzero__()) { + return frame.getlocal(0); + } + } + return frame.getglobal("None"); + } + + private static PyObject __init__$59(PyFrame frame) { + frame.getglobal("Thread").__getattr__("__init__").__call__(new PyObject[] {frame.getlocal(0), frame.getglobal("_newname").__call__(s$52)}, new String[] {"name"}); + frame.getlocal(0).__setattr__("_Thread__started", i$4); + frame.getglobal("_active_limbo_lock").invoke("acquire"); + frame.getglobal("_active").__setitem__(frame.getglobal("_get_ident").__call__(), frame.getlocal(0)); + frame.getglobal("_active_limbo_lock").invoke("release"); + return Py.None; + } + + private static PyObject _set_daemon$60(PyFrame frame) { + return i$4; + } + + private static PyObject join$61(PyFrame frame) { + if (frame.getglobal("__debug__").__nonzero__()) Py.assert(i$1, s$53); + return Py.None; + } + + private static PyObject _DummyThread$62(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$58___init__)); + frame.setlocal("_set_daemon", new PyFunction(frame.f_globals, new PyObject[] {}, c$59__set_daemon)); + frame.setlocal("join", new PyFunction(frame.f_globals, new PyObject[] {}, c$60_join)); + return frame.getf_locals(); + } + + private static PyObject currentThread$63(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + + // Code + try { + return frame.getglobal("_active").__getitem__(frame.getglobal("_get_ident").__call__()); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("KeyError"))) { + return frame.getglobal("_DummyThread").__call__(); + } + else throw t$0$PyException; + } + } + + private static PyObject activeCount$64(PyFrame frame) { + frame.getglobal("_active_limbo_lock").invoke("acquire"); + frame.setlocal(0, frame.getglobal("len").__call__(frame.getglobal("_active"))._add(frame.getglobal("len").__call__(frame.getglobal("_limbo")))); + frame.getglobal("_active_limbo_lock").invoke("release"); + return frame.getlocal(0); + } + + private static PyObject enumerate$65(PyFrame frame) { + frame.getglobal("_active_limbo_lock").invoke("acquire"); + frame.setlocal(0, frame.getglobal("_active").invoke("values")._add(frame.getglobal("_limbo").invoke("values"))); + frame.getglobal("_active_limbo_lock").invoke("release"); + return frame.getlocal(0); + } + + private static PyObject __init__$66(PyFrame frame) { + frame.getglobal("_Verbose").invoke("__init__", frame.getlocal(0)); + frame.getlocal(0).__setattr__("mon", frame.getglobal("RLock").__call__()); + frame.getlocal(0).__setattr__("rc", frame.getglobal("Condition").__call__(frame.getlocal(0).__getattr__("mon"))); + frame.getlocal(0).__setattr__("wc", frame.getglobal("Condition").__call__(frame.getlocal(0).__getattr__("mon"))); + frame.getlocal(0).__setattr__("limit", frame.getlocal(1)); + frame.getlocal(0).__setattr__("queue", new PyList(new PyObject[] {})); + return Py.None; + } + + private static PyObject put$67(PyFrame frame) { + frame.getlocal(0).__getattr__("mon").invoke("acquire"); + while (frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("queue"))._ge(frame.getlocal(0).__getattr__("limit")).__nonzero__()) { + frame.getlocal(0).invoke("_note", s$54, frame.getlocal(1)); + frame.getlocal(0).__getattr__("wc").invoke("wait"); + } + frame.getlocal(0).__getattr__("queue").invoke("append", frame.getlocal(1)); + frame.getlocal(0).invoke("_note", new PyObject[] {s$55, frame.getlocal(1), frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("queue"))}); + frame.getlocal(0).__getattr__("rc").invoke("notify"); + frame.getlocal(0).__getattr__("mon").invoke("release"); + return Py.None; + } + + private static PyObject get$68(PyFrame frame) { + frame.getlocal(0).__getattr__("mon").invoke("acquire"); + while (frame.getlocal(0).__getattr__("queue").__not__().__nonzero__()) { + frame.getlocal(0).invoke("_note", s$56); + frame.getlocal(0).__getattr__("rc").invoke("wait"); + } + frame.setlocal(1, frame.getlocal(0).__getattr__("queue").__getitem__(i$1)); + frame.getlocal(0).__getattr__("queue").__delitem__(i$1); + frame.getlocal(0).invoke("_note", new PyObject[] {s$57, frame.getlocal(1), frame.getglobal("len").__call__(frame.getlocal(0).__getattr__("queue"))}); + frame.getlocal(0).__getattr__("wc").invoke("notify"); + frame.getlocal(0).__getattr__("mon").invoke("release"); + return frame.getlocal(1); + } + + private static PyObject BoundedQueue$69(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$65___init__)); + frame.setlocal("put", new PyFunction(frame.f_globals, new PyObject[] {}, c$66_put)); + frame.setlocal("get", new PyFunction(frame.f_globals, new PyObject[] {}, c$67_get)); + return frame.getf_locals(); + } + + private static PyObject __init__$70(PyFrame frame) { + frame.getglobal("Thread").__getattr__("__init__").__call__(new PyObject[] {frame.getlocal(0), s$58}, new String[] {"name"}); + frame.getlocal(0).__setattr__("queue", frame.getlocal(1)); + frame.getlocal(0).__setattr__("quota", frame.getlocal(2)); + return Py.None; + } + + private static PyObject run$71(PyFrame frame) { + PyObject[] imp_accu; + // Code + imp_accu = org.python.core.imp.importFrom("random", new String[] {"random"}, frame); + frame.setlocal(2, imp_accu[0]); + imp_accu = null; + frame.setlocal(1, i$1); + while (frame.getlocal(1)._lt(frame.getlocal(0).__getattr__("quota")).__nonzero__()) { + frame.setlocal(1, frame.getlocal(1)._add(i$4)); + frame.getlocal(0).__getattr__("queue").invoke("put", s$59._mod(new PyTuple(new PyObject[] {frame.getlocal(0).invoke("getName"), frame.getlocal(1)}))); + frame.getglobal("_sleep").__call__(frame.getlocal(2).__call__()._mul(f$60)); + } + return Py.None; + } + + private static PyObject ProducerThread$72(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$69___init__)); + frame.setlocal("run", new PyFunction(frame.f_globals, new PyObject[] {}, c$70_run)); + return frame.getf_locals(); + } + + private static PyObject __init__$73(PyFrame frame) { + frame.getglobal("Thread").__getattr__("__init__").__call__(new PyObject[] {frame.getlocal(0), s$61}, new String[] {"name"}); + frame.getlocal(0).__setattr__("queue", frame.getlocal(1)); + frame.getlocal(0).__setattr__("count", frame.getlocal(2)); + return Py.None; + } + + private static PyObject run$74(PyFrame frame) { + while (frame.getlocal(0).__getattr__("count")._gt(i$1).__nonzero__()) { + frame.setlocal(1, frame.getlocal(0).__getattr__("queue").invoke("get")); + Py.println(frame.getlocal(1)); + frame.getlocal(0).__setattr__("count", frame.getlocal(0).__getattr__("count")._sub(i$4)); + } + return Py.None; + } + + private static PyObject ConsumerThread$75(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$72___init__)); + frame.setlocal("run", new PyFunction(frame.f_globals, new PyObject[] {}, c$73_run)); + return frame.getf_locals(); + } + + private static PyObject _test$76(PyFrame frame) { + // Temporary Variables + int t$0$int, t$1$int, t$2$int; + PyObject t$0$PyObject, t$1$PyObject, t$2$PyObject, t$3$PyObject, t$4$PyObject, t$5$PyObject; + + // Code + frame.setlocal(0, org.python.core.imp.importOne("random", frame)); + frame.setlocal(7, Py.makeClass("BoundedQueue", new PyObject[] {frame.getglobal("_Verbose")}, c$68_BoundedQueue, null)); + frame.setlocal(4, Py.makeClass("ProducerThread", new PyObject[] {frame.getglobal("Thread")}, c$71_ProducerThread, null)); + frame.setlocal(8, Py.makeClass("ConsumerThread", new PyObject[] {frame.getglobal("Thread")}, c$74_ConsumerThread, null)); + frame.setlocal(3, org.python.core.imp.importOne("time", frame)); + frame.setlocal(10, i$62); + frame.setlocal(11, i$63); + frame.setlocal(12, i$64); + frame.setlocal(1, frame.getlocal(7).__call__(frame.getlocal(11))); + frame.setlocal(2, new PyList(new PyObject[] {})); + t$0$int = 0; + t$1$PyObject = frame.getglobal("range").__call__(frame.getlocal(10)); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(9, t$0$PyObject); + frame.setlocal(5, frame.getlocal(4).__call__(frame.getlocal(1), frame.getlocal(12))); + frame.getlocal(5).invoke("setName", s$65._mod(frame.getlocal(9)._add(i$4))); + frame.getlocal(2).invoke("append", frame.getlocal(5)); + } + frame.setlocal(6, frame.getlocal(8).__call__(frame.getlocal(1), frame.getlocal(12)._mul(frame.getlocal(10)))); + t$1$int = 0; + t$3$PyObject = frame.getlocal(2); + while ((t$2$PyObject = t$3$PyObject.__finditem__(t$1$int++)) != null) { + frame.setlocal(5, t$2$PyObject); + frame.getlocal(5).invoke("start"); + frame.getglobal("_sleep").__call__(f$16); + } + frame.getlocal(6).invoke("start"); + t$2$int = 0; + t$5$PyObject = frame.getlocal(2); + while ((t$4$PyObject = t$5$PyObject.__finditem__(t$2$int++)) != null) { + frame.setlocal(5, t$4$PyObject); + frame.getlocal(5).invoke("join"); + } + frame.getlocal(6).invoke("join"); + return Py.None; + } + + private static PyObject main$77(PyFrame frame) { + frame.setglobal("__file__", s$67); + + /* Proposed new threading module, emulating a subset of Java's threading model. */ + frame.setlocal("sys", org.python.core.imp.importOne("sys", frame)); + frame.setlocal("time", org.python.core.imp.importOne("time", frame)); + frame.setlocal("thread", org.python.core.imp.importOne("thread", frame)); + frame.setlocal("traceback", org.python.core.imp.importOne("traceback", frame)); + frame.setlocal("StringIO", org.python.core.imp.importOne("StringIO", frame)); + frame.setlocal("_sys", frame.getname("sys")); + frame.dellocal("sys"); + frame.setlocal("_time", frame.getname("time").__getattr__("time")); + frame.setlocal("_sleep", frame.getname("time").__getattr__("sleep")); + frame.dellocal("time"); + frame.setlocal("_start_new_thread", frame.getname("thread").__getattr__("start_new_thread")); + frame.setlocal("_allocate_lock", frame.getname("thread").__getattr__("allocate_lock")); + frame.setlocal("_get_ident", frame.getname("thread").__getattr__("get_ident")); + frame.setlocal("ThreadError", frame.getname("thread").__getattr__("error")); + frame.dellocal("thread"); + frame.setlocal("_print_exc", frame.getname("traceback").__getattr__("print_exc")); + frame.dellocal("traceback"); + frame.setlocal("_StringIO", frame.getname("StringIO").__getattr__("StringIO")); + frame.dellocal("StringIO"); + frame.setlocal("_VERBOSE", i$1); + if (frame.getname("__debug__").__nonzero__()) { + frame.setlocal("_Verbose", Py.makeClass("_Verbose", new PyObject[] {}, c$2__Verbose, null)); + } + else { + frame.setlocal("_Verbose", Py.makeClass("_Verbose", new PyObject[] {}, c$5__Verbose, null)); + } + frame.setlocal("Lock", frame.getname("_allocate_lock")); + frame.setlocal("RLock", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_RLock)); + frame.setlocal("_RLock", Py.makeClass("_RLock", new PyObject[] {frame.getname("_Verbose")}, c$14__RLock, null)); + frame.setlocal("Condition", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_Condition)); + frame.setlocal("_Condition", Py.makeClass("_Condition", new PyObject[] {frame.getname("_Verbose")}, c$24__Condition, null)); + frame.setlocal("Semaphore", new PyFunction(frame.f_globals, new PyObject[] {}, c$25_Semaphore)); + frame.setlocal("_Semaphore", Py.makeClass("_Semaphore", new PyObject[] {frame.getname("_Verbose")}, c$29__Semaphore, null)); + frame.setlocal("Event", new PyFunction(frame.f_globals, new PyObject[] {}, c$30_Event)); + frame.setlocal("_Event", Py.makeClass("_Event", new PyObject[] {frame.getname("_Verbose")}, c$36__Event, null)); + frame.setlocal("_counter", i$1); + frame.setlocal("_newname", new PyFunction(frame.f_globals, new PyObject[] {s$27}, c$37__newname)); + frame.setlocal("_active_limbo_lock", frame.getname("_allocate_lock").__call__()); + frame.setlocal("_active", new PyDictionary(new PyObject[] {})); + frame.setlocal("_limbo", new PyDictionary(new PyObject[] {})); + frame.setlocal("Thread", Py.makeClass("Thread", new PyObject[] {frame.getname("_Verbose")}, c$52_Thread, null)); + frame.setlocal("_MainThread", Py.makeClass("_MainThread", new PyObject[] {frame.getname("Thread")}, c$56__MainThread, null)); + frame.setlocal("_pickSomeNonDaemonThread", new PyFunction(frame.f_globals, new PyObject[] {}, c$57__pickSomeNonDaemonThread)); + frame.setlocal("_DummyThread", Py.makeClass("_DummyThread", new PyObject[] {frame.getname("Thread")}, c$61__DummyThread, null)); + frame.setlocal("currentThread", new PyFunction(frame.f_globals, new PyObject[] {}, c$62_currentThread)); + frame.setlocal("activeCount", new PyFunction(frame.f_globals, new PyObject[] {}, c$63_activeCount)); + frame.setlocal("enumerate", new PyFunction(frame.f_globals, new PyObject[] {}, c$64_enumerate)); + frame.getname("_MainThread").__call__(); + frame.setlocal("_test", new PyFunction(frame.f_globals, new PyObject[] {}, c$75__test)); + if (frame.getname("__name__")._eq(s$66).__nonzero__()) { + frame.getname("_test").__call__(); + } + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("threading")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "threading"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(threading._PyInner.class, newargs, threading.jpy$packages, threading.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/traceback$_PyInner.class b/server/jpywork/traceback$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..d2a7e09e4f902d27fa3e6fbc10ada03514b526dd GIT binary patch literal 18932 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 literal 0 HcmV?d00001 diff --git a/server/jpywork/traceback.class b/server/jpywork/traceback.class new file mode 100644 index 0000000000000000000000000000000000000000..6cc569631e05475e2c417d79a3a26ba2014480ff GIT binary patch literal 2491 zcma)7`E%1o6#ky=SZkvsVjOd(y2vAy%HZ+8^3!#D*qbQ3luqAgT1E%+V z-}ik_e+FhCQwEsnIn)24{Zl%fm7T;Cw^RRMNpIizz3;vK{jVP`1IXh$0|`PVQjROf z9rw6_6u~;?oNxxpj$a(uJAO>M5rH48)>l>>&mUDmRjSC7Az{v;;TcU4DbFts66R>t zstQikTXoG?>bS?9qBb?$vJ-|Y*AZs7_}H$6gM^Hz`%y_oo=aex-LmI<(N;pTuYZh? z+8#_u1J+e}Hlj0dLT|Mml>$Fs2_|Y~8Ro}pUODo7hPi}Q@{}v9kr(*kra%?*O;tBg zGCy;a0ioAK2ht4l3Co*WLBlW~mV%SJofFQ^XWG#i~EKHRUBy4GoY&;7_B#2JlH?Ru#UhA1>dR2 zLczdIg!$L1Pa&PiVm&tMNVgDr`dYf!WJ3Q~7Pn!Of!o{qX@oT~h|Ppqg+eGJFOro) zfiTd<+kYi)U@L)7b9iN8v_9nfQf09PYxUoqCho#^f>D&w9>?juFyfyx17Z zgtT(}iJ-#Z6Hoj zSR>@nUWU_zv@S0Q86MR^1NXSz8jllFb*EZkc#^!<}hCgxCksxZYXKIfVvLdJ{SMKukM(vv3D0yv3 zFypNf+v+=vP3;*h2O$X{1*UHeXzCcvCu=@4$bv8n`lt0wbb`9wz3SnD}uM+35`V0UAfd zw_d~+`vUGbk8Qc!Bz7E_@zSNCNnApA;xd*dt{{WmxEBcw$3PJFXb`9i86*JwnY)}i zatYnTYm$6}$R*dLa+fEu_bm3?zhThn$2Glw#E4?!nWq{*Mx1&fvt*+v?@-2-}*+ z-xIbqpMM~1YXSdAOyZL>AS}TO"); + s$36 = Py.newString(" File \"%s\", line %d\012"); + s$37 = Py.newString("%s^\012"); + s$38 = Py.newString("%s: %s\012"); + s$39 = Py.newString("%s\012"); + s$40 = Py.newString(""); + s$41 = Py.newString("Shorthand for 'print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback, limit, file)'.\012 (In fact, it uses sys.exc_info() to retrieve the same information\012 in a thread-safe way.)"); + s$42 = Py.newString("This is a shorthand for 'print_exception(sys.last_type,\012 sys.last_value, sys.last_traceback, limit, file)'."); + s$43 = Py.newString("Print a stack trace from its invocation point.\012\012 The optional 'f' argument can be used to specify an alternate\012 stack frame at which to start. The optional 'limit' and 'file'\012 arguments have the same meaning as for print_exception().\012 "); + i$44 = Py.newInteger(2); + s$45 = Py.newString("Shorthand for 'format_list(extract_stack(f, limit))'."); + s$46 = Py.newString("Extract the raw traceback from the current stack frame.\012\012 The return value has the same format as for extract_tb(). The\012 optional 'f' and 'limit' arguments have the same meaning as for\012 print_stack(). Each item in the list is a quadruple (filename,\012 line number, function name, text), and the entries are in order\012 from oldest to newest stack frame.\012 "); + s$47 = Py.newString("Calculate correct line number of traceback given in tb.\012\012 Even works with -O on.\012 "); + s$48 = Py.newString("co_lnotab"); + s$49 = Py.newString("/usr/share/jython/Lib-cpython/traceback.py"); + funcTable = new _PyInner(); + c$0__print = Py.newCode(3, new String[] {"file", "str", "terminator"}, "/usr/share/jython/Lib-cpython/traceback.py", "_print", false, false, funcTable, 0, null, null, 0, 1); + c$1_print_list = Py.newCode(2, new String[] {"extracted_list", "file", "line", "filename", "name", "lineno"}, "/usr/share/jython/Lib-cpython/traceback.py", "print_list", false, false, funcTable, 1, null, null, 0, 1); + c$2_format_list = Py.newCode(1, new String[] {"extracted_list", "line", "filename", "name", "item", "list", "lineno"}, "/usr/share/jython/Lib-cpython/traceback.py", "format_list", false, false, funcTable, 2, null, null, 0, 1); + c$3_print_tb = Py.newCode(3, new String[] {"tb", "limit", "file", "filename", "name", "lineno", "n", "f", "co", "line"}, "/usr/share/jython/Lib-cpython/traceback.py", "print_tb", false, false, funcTable, 3, null, null, 0, 1); + c$4_format_tb = Py.newCode(2, new String[] {"tb", "limit"}, "/usr/share/jython/Lib-cpython/traceback.py", "format_tb", false, false, funcTable, 4, null, null, 0, 1); + c$5_extract_tb = Py.newCode(2, new String[] {"tb", "limit", "filename", "name", "lineno", "n", "f", "list", "co", "line"}, "/usr/share/jython/Lib-cpython/traceback.py", "extract_tb", false, false, funcTable, 5, null, null, 0, 1); + c$6_print_exception = Py.newCode(5, new String[] {"etype", "value", "tb", "limit", "file", "line", "lines"}, "/usr/share/jython/Lib-cpython/traceback.py", "print_exception", false, false, funcTable, 6, null, null, 0, 1); + c$7_format_exception = Py.newCode(4, new String[] {"etype", "value", "tb", "limit", "list"}, "/usr/share/jython/Lib-cpython/traceback.py", "format_exception", false, false, funcTable, 7, null, null, 0, 1); + c$8_format_exception_only = Py.newCode(2, new String[] {"etype", "value", "stype", "msg", "offset", "lineno", "line", "s", "filename", "i", "list", "c"}, "/usr/share/jython/Lib-cpython/traceback.py", "format_exception_only", false, false, funcTable, 8, null, null, 0, 1); + c$9__some_str = Py.newCode(1, new String[] {"value"}, "/usr/share/jython/Lib-cpython/traceback.py", "_some_str", false, false, funcTable, 9, null, null, 0, 1); + c$10_print_exc = Py.newCode(2, new String[] {"limit", "file", "tb", "etype", "value"}, "/usr/share/jython/Lib-cpython/traceback.py", "print_exc", false, false, funcTable, 10, null, null, 0, 1); + c$11_print_last = Py.newCode(2, new String[] {"limit", "file"}, "/usr/share/jython/Lib-cpython/traceback.py", "print_last", false, false, funcTable, 11, null, null, 0, 1); + c$12_print_stack = Py.newCode(3, new String[] {"f", "limit", "file"}, "/usr/share/jython/Lib-cpython/traceback.py", "print_stack", false, false, funcTable, 12, null, null, 0, 1); + c$13_format_stack = Py.newCode(2, new String[] {"f", "limit"}, "/usr/share/jython/Lib-cpython/traceback.py", "format_stack", false, false, funcTable, 13, null, null, 0, 1); + c$14_extract_stack = Py.newCode(2, new String[] {"f", "limit", "filename", "name", "lineno", "n", "list", "co", "line"}, "/usr/share/jython/Lib-cpython/traceback.py", "extract_stack", false, false, funcTable, 14, null, null, 0, 1); + c$15_tb_lineno = Py.newCode(1, new String[] {"tb", "tab", "i", "c", "addr", "stopat", "line"}, "/usr/share/jython/Lib-cpython/traceback.py", "tb_lineno", false, false, funcTable, 15, null, null, 0, 1); + c$16_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Lib-cpython/traceback.py", "main", false, false, funcTable, 16, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$16_main == null) _PyInner.initConstants(); + return c$16_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner._print$1(frame); + case 1: + return _PyInner.print_list$2(frame); + case 2: + return _PyInner.format_list$3(frame); + case 3: + return _PyInner.print_tb$4(frame); + case 4: + return _PyInner.format_tb$5(frame); + case 5: + return _PyInner.extract_tb$6(frame); + case 6: + return _PyInner.print_exception$7(frame); + case 7: + return _PyInner.format_exception$8(frame); + case 8: + return _PyInner.format_exception_only$9(frame); + case 9: + return _PyInner._some_str$10(frame); + case 10: + return _PyInner.print_exc$11(frame); + case 11: + return _PyInner.print_last$12(frame); + case 12: + return _PyInner.print_stack$13(frame); + case 13: + return _PyInner.format_stack$14(frame); + case 14: + return _PyInner.extract_stack$15(frame); + case 15: + return _PyInner.tb_lineno$16(frame); + case 16: + return _PyInner.main$17(frame); + default: + return null; + } + } + + private static PyObject _print$1(PyFrame frame) { + frame.getlocal(0).invoke("write", frame.getlocal(1)._add(frame.getlocal(2))); + return Py.None; + } + + private static PyObject print_list$2(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Print the list of tuples as returned by extract_tb() or + extract_stack() as a formatted stack trace to the given file. */ + if (frame.getlocal(1).__not__().__nonzero__()) { + frame.setlocal(1, frame.getglobal("sys").__getattr__("stderr")); + } + t$0$int = 0; + t$1$PyObject = frame.getlocal(0); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 4); + frame.setlocal(3, t$0$PyObject__[0]); + frame.setlocal(5, t$0$PyObject__[1]); + frame.setlocal(4, t$0$PyObject__[2]); + frame.setlocal(2, t$0$PyObject__[3]); + frame.getglobal("_print").__call__(frame.getlocal(1), s$17._mod(new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(5), frame.getlocal(4)}))); + if (frame.getlocal(2).__nonzero__()) { + frame.getglobal("_print").__call__(frame.getlocal(1), s$18._mod(frame.getlocal(2).invoke("strip"))); + } + } + return Py.None; + } + + private static PyObject format_list$3(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Format a list of traceback entry tuples for printing. + + Given a list of tuples as returned by extract_tb() or + extract_stack(), return a list of strings ready for printing. + Each string in the resulting list corresponds to the item with the + same index in the argument list. Each string ends in a newline; + the strings may contain internal newlines as well, for those items + whose source text line is not None. + */ + frame.setlocal(5, new PyList(new PyObject[] {})); + t$0$int = 0; + t$1$PyObject = frame.getlocal(0); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + t$0$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject, 4); + frame.setlocal(2, t$0$PyObject__[0]); + frame.setlocal(6, t$0$PyObject__[1]); + frame.setlocal(3, t$0$PyObject__[2]); + frame.setlocal(1, t$0$PyObject__[3]); + frame.setlocal(4, s$20._mod(new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(6), frame.getlocal(3)}))); + if (frame.getlocal(1).__nonzero__()) { + frame.setlocal(4, frame.getlocal(4)._add(s$21._mod(frame.getlocal(1).invoke("strip")))); + } + frame.getlocal(5).invoke("append", frame.getlocal(4)); + } + return frame.getlocal(5); + } + + private static PyObject print_tb$4(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Print up to 'limit' stack trace entries from the traceback 'tb'. + + If 'limit' is omitted or None, all entries are printed. If 'file' + is omitted or None, the output goes to sys.stderr; otherwise + 'file' should be an open file or file-like object with a write() + method. + */ + if (frame.getlocal(2).__not__().__nonzero__()) { + frame.setlocal(2, frame.getglobal("sys").__getattr__("stderr")); + } + if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) { + if (frame.getglobal("hasattr").__call__(frame.getglobal("sys"), s$23).__nonzero__()) { + frame.setlocal(1, frame.getglobal("sys").__getattr__("tracebacklimit")); + } + } + frame.setlocal(6, i$24); + while (((t$0$PyObject = frame.getlocal(0)._isnot(frame.getglobal("None"))).__nonzero__() ? ((t$1$PyObject = frame.getlocal(1)._is(frame.getglobal("None"))).__nonzero__() ? t$1$PyObject : frame.getlocal(6)._lt(frame.getlocal(1))) : t$0$PyObject).__nonzero__()) { + frame.setlocal(7, frame.getlocal(0).__getattr__("tb_frame")); + frame.setlocal(5, frame.getglobal("tb_lineno").__call__(frame.getlocal(0))); + frame.setlocal(8, frame.getlocal(7).__getattr__("f_code")); + frame.setlocal(3, frame.getlocal(8).__getattr__("co_filename")); + frame.setlocal(4, frame.getlocal(8).__getattr__("co_name")); + frame.getglobal("_print").__call__(frame.getlocal(2), s$17._mod(new PyTuple(new PyObject[] {frame.getlocal(3), frame.getlocal(5), frame.getlocal(4)}))); + frame.setlocal(9, frame.getglobal("linecache").__getattr__("getline").__call__(frame.getlocal(3), frame.getlocal(5))); + if (frame.getlocal(9).__nonzero__()) { + frame.getglobal("_print").__call__(frame.getlocal(2), s$25._add(frame.getlocal(9).invoke("strip"))); + } + frame.setlocal(0, frame.getlocal(0).__getattr__("tb_next")); + frame.setlocal(6, frame.getlocal(6)._add(i$26)); + } + return Py.None; + } + + private static PyObject format_tb$5(PyFrame frame) { + /* A shorthand for 'format_list(extract_stack(f, limit)). */ + return frame.getglobal("format_list").__call__(frame.getglobal("extract_tb").__call__(frame.getlocal(0), frame.getlocal(1))); + } + + private static PyObject extract_tb$6(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Return list of up to limit pre-processed entries from traceback. + + This is useful for alternate formatting of stack traces. If + 'limit' is omitted or None, all entries are extracted. A + pre-processed stack trace entry is a quadruple (filename, line + number, function name, text) representing the information that is + usually printed for a stack trace. The text is a string with + leading and trailing whitespace stripped; if the source is not + available it is None. + */ + if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) { + if (frame.getglobal("hasattr").__call__(frame.getglobal("sys"), s$23).__nonzero__()) { + frame.setlocal(1, frame.getglobal("sys").__getattr__("tracebacklimit")); + } + } + frame.setlocal(7, new PyList(new PyObject[] {})); + frame.setlocal(5, i$24); + while (((t$0$PyObject = frame.getlocal(0)._isnot(frame.getglobal("None"))).__nonzero__() ? ((t$1$PyObject = frame.getlocal(1)._is(frame.getglobal("None"))).__nonzero__() ? t$1$PyObject : frame.getlocal(5)._lt(frame.getlocal(1))) : t$0$PyObject).__nonzero__()) { + frame.setlocal(6, frame.getlocal(0).__getattr__("tb_frame")); + frame.setlocal(4, frame.getglobal("tb_lineno").__call__(frame.getlocal(0))); + frame.setlocal(8, frame.getlocal(6).__getattr__("f_code")); + frame.setlocal(2, frame.getlocal(8).__getattr__("co_filename")); + frame.setlocal(3, frame.getlocal(8).__getattr__("co_name")); + frame.setlocal(9, frame.getglobal("linecache").__getattr__("getline").__call__(frame.getlocal(2), frame.getlocal(4))); + if (frame.getlocal(9).__nonzero__()) { + frame.setlocal(9, frame.getlocal(9).invoke("strip")); + } + else { + frame.setlocal(9, frame.getglobal("None")); + } + frame.getlocal(7).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(4), frame.getlocal(3), frame.getlocal(9)})); + frame.setlocal(0, frame.getlocal(0).__getattr__("tb_next")); + frame.setlocal(5, frame.getlocal(5)._add(i$26)); + } + return frame.getlocal(7); + } + + private static PyObject print_exception$7(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Print exception up to 'limit' stack trace entries from 'tb' to 'file'. + + This differs from print_tb() in the following ways: (1) if + traceback is not None, it prints a header "Traceback (most recent + call last):"; (2) it prints the exception type and value after the + stack trace; (3) if type is SyntaxError and value has the + appropriate format, it prints the line where the syntax error + occurred with a caret on the next line indicating the approximate + position of the error. + */ + if (frame.getlocal(4).__not__().__nonzero__()) { + frame.setlocal(4, frame.getglobal("sys").__getattr__("stderr")); + } + if (frame.getlocal(2).__nonzero__()) { + frame.getglobal("_print").__call__(frame.getlocal(4), s$30); + frame.getglobal("print_tb").__call__(frame.getlocal(2), frame.getlocal(3), frame.getlocal(4)); + } + frame.setlocal(6, frame.getglobal("format_exception_only").__call__(frame.getlocal(0), frame.getlocal(1))); + t$0$int = 0; + t$1$PyObject = frame.getlocal(6).__getslice__(null, i$26.__neg__(), null); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(5, t$0$PyObject); + frame.getglobal("_print").__call__(frame.getlocal(4), frame.getlocal(5), s$31); + } + frame.getglobal("_print").__call__(frame.getlocal(4), frame.getlocal(6).__getitem__(i$26.__neg__()), s$14); + return Py.None; + } + + private static PyObject format_exception$8(PyFrame frame) { + /* Format a stack trace and the exception information. + + The arguments have the same meaning as the corresponding arguments + to print_exception(). The return value is a list of strings, each + ending in a newline and some containing internal newlines. When + these lines are concatenated and printed, exactly the same text is + printed as does print_exception(). + */ + if (frame.getlocal(2).__nonzero__()) { + frame.setlocal(4, new PyList(new PyObject[] {s$33})); + frame.setlocal(4, frame.getlocal(4)._add(frame.getglobal("format_tb").__call__(frame.getlocal(2), frame.getlocal(3)))); + } + else { + frame.setlocal(4, new PyList(new PyObject[] {})); + } + frame.setlocal(4, frame.getlocal(4)._add(frame.getglobal("format_exception_only").__call__(frame.getlocal(0), frame.getlocal(1)))); + return frame.getlocal(4); + } + + private static PyObject format_exception_only$9(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject[] t$0$PyObject__, t$1$PyObject__; + boolean t$0$boolean; + PyObject t$0$PyObject, t$1$PyObject; + PyException t$0$PyException; + + // Code + /* Format the exception part of a traceback. + + The arguments are the exception type and value such as given by + sys.last_type and sys.last_value. The return value is a list of + strings, each ending in a newline. Normally, the list contains a + single string; however, for SyntaxError exceptions, it contains + several lines that (when printed) display detailed information + about where the syntax error occurred. The message indicating + which exception occurred is the always last string in the list. + */ + frame.setlocal(10, new PyList(new PyObject[] {})); + if (frame.getglobal("type").__call__(frame.getlocal(0))._eq(frame.getglobal("types").__getattr__("ClassType")).__nonzero__()) { + frame.setlocal(2, frame.getlocal(0).__getattr__("__name__")); + } + else { + frame.setlocal(2, frame.getlocal(0)); + } + if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) { + frame.getlocal(10).invoke("append", frame.getglobal("str").__call__(frame.getlocal(2))._add(s$15)); + } + else { + if (frame.getlocal(0)._is(frame.getglobal("SyntaxError")).__nonzero__()) { + t$0$boolean = true; + try { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getlocal(1), 2); + frame.setlocal(3, t$0$PyObject__[0]); + t$1$PyObject__ = org.python.core.Py.unpackSequence(t$0$PyObject__[1], 4); + frame.setlocal(8, t$1$PyObject__[0]); + frame.setlocal(5, t$1$PyObject__[1]); + frame.setlocal(4, t$1$PyObject__[2]); + frame.setlocal(6, t$1$PyObject__[3]); + } + catch (Throwable x$0) { + t$0$boolean = false; + t$0$PyException = Py.setException(x$0, frame); + // pass + } + if (t$0$boolean) { + if (frame.getlocal(8).__not__().__nonzero__()) { + frame.setlocal(8, s$35); + } + frame.getlocal(10).invoke("append", s$36._mod(new PyTuple(new PyObject[] {frame.getlocal(8), frame.getlocal(5)}))); + if (frame.getlocal(6)._isnot(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(9, i$24); + while (((t$0$PyObject = frame.getlocal(9)._lt(frame.getglobal("len").__call__(frame.getlocal(6)))).__nonzero__() ? frame.getlocal(6).__getitem__(frame.getlocal(9)).invoke("isspace") : t$0$PyObject).__nonzero__()) { + frame.setlocal(9, frame.getlocal(9)._add(i$26)); + } + frame.getlocal(10).invoke("append", s$21._mod(frame.getlocal(6).invoke("strip"))); + if (frame.getlocal(4)._isnot(frame.getglobal("None")).__nonzero__()) { + frame.setlocal(7, s$25); + t$0$int = 0; + t$1$PyObject = frame.getlocal(6).__getslice__(frame.getlocal(9), frame.getlocal(4)._sub(i$26), null); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(11, t$0$PyObject); + if (frame.getlocal(11).invoke("isspace").__nonzero__()) { + frame.setlocal(7, frame.getlocal(7)._add(frame.getlocal(11))); + } + else { + frame.setlocal(7, frame.getlocal(7)._add(s$31)); + } + } + frame.getlocal(10).invoke("append", s$37._mod(frame.getlocal(7))); + } + frame.setlocal(1, frame.getlocal(3)); + } + } + } + frame.setlocal(7, frame.getglobal("_some_str").__call__(frame.getlocal(1))); + if (frame.getlocal(7).__nonzero__()) { + frame.getlocal(10).invoke("append", s$38._mod(new PyTuple(new PyObject[] {frame.getglobal("str").__call__(frame.getlocal(2)), frame.getlocal(7)}))); + } + else { + frame.getlocal(10).invoke("append", s$39._mod(frame.getglobal("str").__call__(frame.getlocal(2)))); + } + } + return frame.getlocal(10); + } + + private static PyObject _some_str$10(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + + // Code + try { + return frame.getglobal("str").__call__(frame.getlocal(0)); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + return s$40._mod(frame.getglobal("type").__call__(frame.getlocal(0)).__getattr__("__name__")); + } + } + + private static PyObject print_exc$11(PyFrame frame) { + // Temporary Variables + PyObject[] t$0$PyObject__; + PyObject t$0$PyObject; + + // Code + /* Shorthand for 'print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback, limit, file)'. + (In fact, it uses sys.exc_info() to retrieve the same information + in a thread-safe way.) */ + if (frame.getlocal(1).__not__().__nonzero__()) { + frame.setlocal(1, frame.getglobal("sys").__getattr__("stderr")); + } + try { + t$0$PyObject__ = org.python.core.Py.unpackSequence(frame.getglobal("sys").__getattr__("exc_info").__call__(), 3); + frame.setlocal(3, t$0$PyObject__[0]); + frame.setlocal(4, t$0$PyObject__[1]); + frame.setlocal(2, t$0$PyObject__[2]); + frame.getglobal("print_exception").__call__(new PyObject[] {frame.getlocal(3), frame.getlocal(4), frame.getlocal(2), frame.getlocal(0), frame.getlocal(1)}); + } + finally { + t$0$PyObject = frame.getglobal("None"); + frame.setlocal(3, t$0$PyObject); + frame.setlocal(4, t$0$PyObject); + frame.setlocal(2, t$0$PyObject); + } + return Py.None; + } + + private static PyObject print_last$12(PyFrame frame) { + /* This is a shorthand for 'print_exception(sys.last_type, + sys.last_value, sys.last_traceback, limit, file)'. */ + if (frame.getlocal(1).__not__().__nonzero__()) { + frame.setlocal(1, frame.getglobal("sys").__getattr__("stderr")); + } + frame.getglobal("print_exception").__call__(new PyObject[] {frame.getglobal("sys").__getattr__("last_type"), frame.getglobal("sys").__getattr__("last_value"), frame.getglobal("sys").__getattr__("last_traceback"), frame.getlocal(0), frame.getlocal(1)}); + return Py.None; + } + + private static PyObject print_stack$13(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + + // Code + /* Print a stack trace from its invocation point. + + The optional 'f' argument can be used to specify an alternate + stack frame at which to start. The optional 'limit' and 'file' + arguments have the same meaning as for print_exception(). + */ + if (frame.getlocal(0)._is(frame.getglobal("None")).__nonzero__()) { + try { + throw Py.makeException(frame.getglobal("ZeroDivisionError")); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("ZeroDivisionError"))) { + frame.setlocal(0, frame.getglobal("sys").__getattr__("exc_info").__call__().__getitem__(i$44).__getattr__("tb_frame").__getattr__("f_back")); + } + else throw t$0$PyException; + } + } + frame.getglobal("print_list").__call__(frame.getglobal("extract_stack").__call__(frame.getlocal(0), frame.getlocal(1)), frame.getlocal(2)); + return Py.None; + } + + private static PyObject format_stack$14(PyFrame frame) { + // Temporary Variables + PyException t$0$PyException; + + // Code + /* Shorthand for 'format_list(extract_stack(f, limit))'. */ + if (frame.getlocal(0)._is(frame.getglobal("None")).__nonzero__()) { + try { + throw Py.makeException(frame.getglobal("ZeroDivisionError")); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("ZeroDivisionError"))) { + frame.setlocal(0, frame.getglobal("sys").__getattr__("exc_info").__call__().__getitem__(i$44).__getattr__("tb_frame").__getattr__("f_back")); + } + else throw t$0$PyException; + } + } + return frame.getglobal("format_list").__call__(frame.getglobal("extract_stack").__call__(frame.getlocal(0), frame.getlocal(1))); + } + + private static PyObject extract_stack$15(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject, t$1$PyObject; + PyException t$0$PyException; + + // Code + /* Extract the raw traceback from the current stack frame. + + The return value has the same format as for extract_tb(). The + optional 'f' and 'limit' arguments have the same meaning as for + print_stack(). Each item in the list is a quadruple (filename, + line number, function name, text), and the entries are in order + from oldest to newest stack frame. + */ + if (frame.getlocal(0)._is(frame.getglobal("None")).__nonzero__()) { + try { + throw Py.makeException(frame.getglobal("ZeroDivisionError")); + } + catch (Throwable x$0) { + t$0$PyException = Py.setException(x$0, frame); + if (Py.matchException(t$0$PyException, frame.getglobal("ZeroDivisionError"))) { + frame.setlocal(0, frame.getglobal("sys").__getattr__("exc_info").__call__().__getitem__(i$44).__getattr__("tb_frame").__getattr__("f_back")); + } + else throw t$0$PyException; + } + } + if (frame.getlocal(1)._is(frame.getglobal("None")).__nonzero__()) { + if (frame.getglobal("hasattr").__call__(frame.getglobal("sys"), s$23).__nonzero__()) { + frame.setlocal(1, frame.getglobal("sys").__getattr__("tracebacklimit")); + } + } + frame.setlocal(6, new PyList(new PyObject[] {})); + frame.setlocal(5, i$24); + while (((t$0$PyObject = frame.getlocal(0)._isnot(frame.getglobal("None"))).__nonzero__() ? ((t$1$PyObject = frame.getlocal(1)._is(frame.getglobal("None"))).__nonzero__() ? t$1$PyObject : frame.getlocal(5)._lt(frame.getlocal(1))) : t$0$PyObject).__nonzero__()) { + frame.setlocal(4, frame.getlocal(0).__getattr__("f_lineno")); + frame.setlocal(7, frame.getlocal(0).__getattr__("f_code")); + frame.setlocal(2, frame.getlocal(7).__getattr__("co_filename")); + frame.setlocal(3, frame.getlocal(7).__getattr__("co_name")); + frame.setlocal(8, frame.getglobal("linecache").__getattr__("getline").__call__(frame.getlocal(2), frame.getlocal(4))); + if (frame.getlocal(8).__nonzero__()) { + frame.setlocal(8, frame.getlocal(8).invoke("strip")); + } + else { + frame.setlocal(8, frame.getglobal("None")); + } + frame.getlocal(6).invoke("append", new PyTuple(new PyObject[] {frame.getlocal(2), frame.getlocal(4), frame.getlocal(3), frame.getlocal(8)})); + frame.setlocal(0, frame.getlocal(0).__getattr__("f_back")); + frame.setlocal(5, frame.getlocal(5)._add(i$26)); + } + frame.getlocal(6).invoke("reverse"); + return frame.getlocal(6); + } + + private static PyObject tb_lineno$16(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + /* Calculate correct line number of traceback given in tb. + + Even works with -O on. + */ + frame.setlocal(3, frame.getlocal(0).__getattr__("tb_frame").__getattr__("f_code")); + if (frame.getglobal("hasattr").__call__(frame.getlocal(3), s$48).__not__().__nonzero__()) { + return frame.getlocal(0).__getattr__("tb_lineno"); + } + frame.setlocal(1, frame.getlocal(3).__getattr__("co_lnotab")); + frame.setlocal(6, frame.getlocal(3).__getattr__("co_firstlineno")); + frame.setlocal(5, frame.getlocal(0).__getattr__("tb_lasti")); + frame.setlocal(4, i$24); + t$0$int = 0; + t$1$PyObject = frame.getglobal("range").__call__(i$24, frame.getglobal("len").__call__(frame.getlocal(1)), i$44); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(2, t$0$PyObject); + frame.setlocal(4, frame.getlocal(4)._add(frame.getglobal("ord").__call__(frame.getlocal(1).__getitem__(frame.getlocal(2))))); + if (frame.getlocal(4)._gt(frame.getlocal(5)).__nonzero__()) { + break; + } + frame.setlocal(6, frame.getlocal(6)._add(frame.getglobal("ord").__call__(frame.getlocal(1).__getitem__(frame.getlocal(2)._add(i$26))))); + } + return frame.getlocal(6); + } + + private static PyObject main$17(PyFrame frame) { + frame.setglobal("__file__", s$49); + + /* Extract, format and print information about Python stack traces. */ + frame.setlocal("linecache", org.python.core.imp.importOne("linecache", frame)); + frame.setlocal("sys", org.python.core.imp.importOne("sys", frame)); + frame.setlocal("types", org.python.core.imp.importOne("types", frame)); + frame.setlocal("__all__", new PyList(new PyObject[] {s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s$10, s$11, s$12, s$13})); + frame.setlocal("_print", new PyFunction(frame.f_globals, new PyObject[] {s$14, s$15}, c$0__print)); + frame.setlocal("print_list", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$1_print_list)); + frame.setlocal("format_list", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_format_list)); + frame.setlocal("print_tb", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$3_print_tb)); + frame.setlocal("format_tb", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$4_format_tb)); + frame.setlocal("extract_tb", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$5_extract_tb)); + frame.setlocal("print_exception", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$6_print_exception)); + frame.setlocal("format_exception", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None")}, c$7_format_exception)); + frame.setlocal("format_exception_only", new PyFunction(frame.f_globals, new PyObject[] {}, c$8_format_exception_only)); + frame.setlocal("_some_str", new PyFunction(frame.f_globals, new PyObject[] {}, c$9__some_str)); + frame.setlocal("print_exc", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$10_print_exc)); + frame.setlocal("print_last", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$11_print_last)); + frame.setlocal("print_stack", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None"), frame.getname("None")}, c$12_print_stack)); + frame.setlocal("format_stack", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$13_format_stack)); + frame.setlocal("extract_stack", new PyFunction(frame.f_globals, new PyObject[] {frame.getname("None"), frame.getname("None")}, c$14_extract_stack)); + frame.setlocal("tb_lineno", new PyFunction(frame.f_globals, new PyObject[] {}, c$15_tb_lineno)); + return Py.None; + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("traceback")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "traceback"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(traceback._PyInner.class, newargs, traceback.jpy$packages, traceback.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/jpywork/util$_PyInner.class b/server/jpywork/util$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..1fe437e831a0f14ea5cc5f01ef0ee31b25ce7462 GIT binary patch literal 6142 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 literal 0 HcmV?d00001 diff --git a/server/jpywork/util.class b/server/jpywork/util.class new file mode 100644 index 0000000000000000000000000000000000000000..18e5598f098e192aedd18815cfda4f1231489b48 GIT binary patch literal 2481 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 T5-R9uT1m%(uk5GdA;kX&6aPN< literal 0 HcmV?d00001 diff --git a/server/jpywork/yapm$_PyInner.class b/server/jpywork/yapm$_PyInner.class new file mode 100644 index 0000000000000000000000000000000000000000..2a144377ef32a89fc8d74c3246800a32cdc6664d GIT binary patch literal 6645 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 literal 0 HcmV?d00001 diff --git a/server/jpywork/yapm.class b/server/jpywork/yapm.class new file mode 100644 index 0000000000000000000000000000000000000000..f3ea93ea4346d8785766095215396a43f9b47de7 GIT binary patch literal 2583 zcma)-`F9&v6~{lDNgS<1fe`@Tb2erj?~l0#0zkDSB*0DlUH^G32QQ^P?&Xy)B_*YEw_JAePzU+w`l z{_HR$6uLpD?NAWhwcu(n(+Z;1nTyM7rjZGHt<#-s2Vu0B#2u4lp-F{(FU)UidRY=i ztFyvBtJ+E8>)k=!N-hl=>%poubsDW8O(!1__73|OY_mKx5u{L z-YTe5jaC?i*;B&s)bx^2I1{fJhkZM$=;fw3AWU?+Su>7m?RaIQWzyR6M%c>2NO7NV z++1&%P8P;d`edA}*7~ZAI5D;Ds}jQf6-Fp3-XI+7YsEdoTH1`SJri6F&TaWp92N>$ zvSF<0gB2WWdQ4Cjy;@{4#X~|VKUvfj$A$6#$UyOC!O3;PSTQY(=7)_eY}H;0JJ$D! z3W}mIJ|9MAVWYill1ssI%Lv6&IZ9=QnW^v=Tw$yS!P&5p%|&4*9G;qwlhv7CJu|lI znZ<680JGCe3JZ6=9tCYvuRFX=IQV+?O{9m)JkAp~(mR9$Qv*Hj^JIFd%q;J8IJK*v zUf2px@h)Lcy`GvZ%uKsp7iM( zAdG}VQ`5URv!t3W^Io2Dm=pBt3$O4#<^?C&h^(^E+zrj#&o2J^DF64H-ID4X2?aZt z!o<`r^Jr(Hyv;?2_uC2Gn(wWfG9J%5T-rG|-83`p3QJrTNNk4~Ezz%|M9Wu5efu zj%@o{h;#W_bLD)z5v`m{k~k@|!W9Rzqwq`3B)(>6qrxgpp==po(ll5#!v3kjNd4et z0-jK;3n*#YcpKok&G0l(HmfnB}0cuGkRvq=~6F;&vx&8O1fB z7-Z&pm?^r#aGDs!M}^UzR+MHzl%xfZatqHSS52b$iuKWd|C%slllX>EYK4($1dXOq ze5=2xIziS{d`D2vrY5m#L-9SKVBITzV9RYLCRhpW0{f9rNV6bQ{6ugTgRHr9-c$Tc zDB1ctL6RCfPrs<}OMcaxo8AB>gMIHcc^6v$f1&}p^qaVg-Sm>fZ-k@UB+8>M#95C* zn|oX+d+|onFy}+NQA>8C)U1(E$+t>wW>SYg^lvBqVDW-b=snct_Td=9FyNrM`(aT*&q6;O=hBJ2e+3c3B_$ZKeSSnv1zf}Zeha?sf!@JI9^ z&oAl+yqg?x%e}j!R{TcKcl4y^yG8vb&v%uc@@`Un6%ZZm0;nBY8X-0DC(W-vzE|2^A=CAS_xCWQ-C+z(1?^3NOBfoNWRJ50{n&F|y!vEM|#CDD!-! zujVja_k7pUFXdo;%=6un{)FedW&KIdclYR%p6^!lr#;^t)t~izcT9iY^WAa%MbCF# z{bkR0_v){DzN_`uJ>T7@zv=nze*JCFcMs_AdcHfMzwi0(efo!yWQ|c-XF^*1L)r}STVROa@%y}iL%f3UM@pPV_!Fgn163Z6 AQUCw| literal 0 HcmV?d00001 diff --git a/server/jpywork/yapm.java b/server/jpywork/yapm.java new file mode 100644 index 00000000..71c71466 --- /dev/null +++ b/server/jpywork/yapm.java @@ -0,0 +1,367 @@ +import org.python.core.*; + +public class yapm extends java.lang.Object { + static String[] jpy$mainProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions"}; + static String[] jpy$proxyProperties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"}; + static String[] jpy$packages = new String[] {"java.net", null, "java.lang", null, "org.python.core", null, "java.io", null, "java.util.zip", null}; + + public static class _PyInner extends PyFunctionTable implements PyRunnable { + private static PyObject s$0; + private static PyObject s$1; + private static PyObject s$2; + private static PyObject s$3; + private static PyObject s$4; + private static PyObject i$5; + private static PyObject s$6; + private static PyObject i$7; + private static PyObject s$8; + private static PyFunctionTable funcTable; + private static PyCode c$0___init__; + private static PyCode c$1_findClass; + private static PyCode c$2_findAllPackages; + private static PyCode c$3_filterByName; + private static PyCode c$4_filterByAccess; + private static PyCode c$5_doDir; + private static PyCode c$6_packageExists; + private static PyCode c$7_YaPM; + private static PyCode c$8_main; + private static void initConstants() { + s$0 = Py.newString("python.packages.paths"); + s$1 = Py.newString("java.class.path"); + s$2 = Py.newString(","); + s$3 = Py.newString("sun.boot.class.path"); + s$4 = Py.newString("python.packages.fakepath"); + i$5 = Py.newInteger(0); + s$6 = Py.newString("$"); + i$7 = Py.newInteger(1); + s$8 = Py.newString("/usr/share/jython/Tools/jythonc/yapm.py"); + funcTable = new _PyInner(); + c$0___init__ = Py.newCode(2, new String[] {"self", "registry"}, "/usr/share/jython/Tools/jythonc/yapm.py", "__init__", false, false, funcTable, 0, null, null, 0, 1); + c$1_findClass = Py.newCode(3, new String[] {"self", "pkg", "name"}, "/usr/share/jython/Tools/jythonc/yapm.py", "findClass", false, false, funcTable, 1, null, null, 0, 1); + c$2_findAllPackages = Py.newCode(2, new String[] {"self", "registry", "e", "p", "fakepath", "paths"}, "/usr/share/jython/Tools/jythonc/yapm.py", "findAllPackages", false, false, funcTable, 2, null, null, 0, 1); + c$3_filterByName = Py.newCode(3, new String[] {"self", "name", "pkg"}, "/usr/share/jython/Tools/jythonc/yapm.py", "filterByName", false, false, funcTable, 3, null, null, 0, 1); + c$4_filterByAccess = Py.newCode(3, new String[] {"self", "name", "acc"}, "/usr/share/jython/Tools/jythonc/yapm.py", "filterByAccess", false, false, funcTable, 4, null, null, 0, 1); + c$5_doDir = Py.newCode(4, new String[] {"self", "jpkg", "instantiate", "exclpkgs", "basic", "ret"}, "/usr/share/jython/Tools/jythonc/yapm.py", "doDir", false, false, funcTable, 5, null, null, 0, 1); + c$6_packageExists = Py.newCode(3, new String[] {"self", "pkg", "name"}, "/usr/share/jython/Tools/jythonc/yapm.py", "packageExists", false, false, funcTable, 6, null, null, 0, 1); + c$7_YaPM = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/yapm.py", "YaPM", false, false, funcTable, 7, null, null, 0, 0); + c$8_main = Py.newCode(0, new String[] {}, "/usr/share/jython/Tools/jythonc/yapm.py", "main", false, false, funcTable, 8, null, null, 0, 0); + } + + + public PyCode getMain() { + if (c$8_main == null) _PyInner.initConstants(); + return c$8_main; + } + + public PyObject call_function(int index, PyFrame frame) { + switch (index){ + case 0: + return _PyInner.__init__$1(frame); + case 1: + return _PyInner.findClass$2(frame); + case 2: + return _PyInner.findAllPackages$3(frame); + case 3: + return _PyInner.filterByName$4(frame); + case 4: + return _PyInner.filterByAccess$5(frame); + case 5: + return _PyInner.doDir$6(frame); + case 6: + return _PyInner.packageExists$7(frame); + case 7: + return _PyInner.YaPM$8(frame); + case 8: + return _PyInner.main$9(frame); + default: + return null; + } + } + + private static PyObject __init__$1(PyFrame frame) { + frame.getlocal(0).invoke("findAllPackages", frame.getlocal(1)); + return Py.None; + } + + private static PyObject findClass$2(PyFrame frame) { + return frame.getglobal("None"); + } + + private static PyObject findAllPackages$3(PyFrame frame) { + // Temporary Variables + int t$0$int; + PyObject t$0$PyObject, t$1$PyObject; + + // Code + frame.setlocal(5, frame.getlocal(1).invoke("getProperty", s$0, s$1)); + frame.setlocal(5, frame.getlocal(5).invoke("split", s$2)); + if (s$3._in(frame.getlocal(5)).__nonzero__()) { + frame.getlocal(5).invoke("remove", s$3); + } + frame.setlocal(4, frame.getlocal(1).invoke("getProperty", s$4, frame.getglobal("None"))); + t$0$int = 0; + t$1$PyObject = frame.getlocal(5); + while ((t$0$PyObject = t$1$PyObject.__finditem__(t$0$int++)) != null) { + frame.setlocal(3, t$0$PyObject); + frame.setlocal(2, frame.getlocal(1).invoke("getProperty", frame.getlocal(3))); + if (frame.getlocal(2)._ne(frame.getglobal("None")).__nonzero__()) { + frame.getlocal(0).invoke("addClassPath", frame.getlocal(2)); + } + } + if (frame.getlocal(4)._ne(frame.getglobal("None")).__nonzero__()) { + frame.getlocal(0).invoke("addClassPath", frame.getlocal(4)); + } + return Py.None; + } + + private static PyObject filterByName$4(PyFrame frame) { + return i$5; + } + + private static PyObject filterByAccess$5(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + return ((t$0$PyObject = frame.getlocal(1).invoke("find", s$6)._ne(i$7.__neg__())).__nonzero__() ? t$0$PyObject : frame.getlocal(2)._and(i$7)._eq(i$5)).__not__(); + } + + private static PyObject doDir$6(PyFrame frame) { + frame.setlocal(4, frame.getlocal(0).invoke("basicDoDir", new PyObject[] {frame.getlocal(1), i$5, frame.getlocal(3)})); + frame.setlocal(5, new PyList(new PyObject[] {})); + frame.getlocal(0).invoke("super__doDir", new PyObject[] {frame.getlocal(0).__getattr__("searchPath"), frame.getlocal(5), frame.getlocal(1), i$5, frame.getlocal(3)}); + frame.getlocal(0).invoke("super__doDir", new PyObject[] {frame.getglobal("sys").__getattr__("path"), frame.getlocal(5), frame.getlocal(1), i$5, frame.getlocal(3)}); + return frame.getlocal(0).invoke("merge", frame.getlocal(4), frame.getlocal(5)); + } + + private static PyObject packageExists$7(PyFrame frame) { + // Temporary Variables + PyObject t$0$PyObject; + + // Code + return (t$0$PyObject = frame.getlocal(0).invoke("super__packageExists", new PyObject[] {frame.getlocal(0).__getattr__("searchPath"), frame.getlocal(1), frame.getlocal(2)})).__nonzero__() ? t$0$PyObject : frame.getlocal(0).invoke("super__packageExists", new PyObject[] {frame.getglobal("sys").__getattr__("path"), frame.getlocal(1), frame.getlocal(2)}); + } + + private static PyObject YaPM$8(PyFrame frame) { + frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$0___init__)); + frame.setlocal("findClass", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_findClass)); + frame.setlocal("findAllPackages", new PyFunction(frame.f_globals, new PyObject[] {}, c$2_findAllPackages)); + frame.setlocal("filterByName", new PyFunction(frame.f_globals, new PyObject[] {}, c$3_filterByName)); + frame.setlocal("filterByAccess", new PyFunction(frame.f_globals, new PyObject[] {}, c$4_filterByAccess)); + frame.setlocal("doDir", new PyFunction(frame.f_globals, new PyObject[] {}, c$5_doDir)); + frame.setlocal("packageExists", new PyFunction(frame.f_globals, new PyObject[] {}, c$6_packageExists)); + return frame.getf_locals(); + } + + private static PyObject main$9(PyFrame frame) { + frame.setglobal("__file__", s$8); + + PyObject[] imp_accu; + // Code + frame.setlocal("sys", org.python.core.imp.importOne("sys", frame)); + frame.setlocal("os", org.python.core.imp.importOne("os", frame)); + imp_accu = org.python.core.imp.importFrom("string", new String[] {"strip"}, frame); + frame.setlocal("strip", imp_accu[0]); + imp_accu = null; + imp_accu = org.python.core.imp.importFrom("java", new String[] {"io"}, frame); + frame.setlocal("io", imp_accu[0]); + imp_accu = null; + imp_accu = org.python.core.imp.importFrom("org.python.core", new String[] {"PathPackageManager"}, frame); + frame.setlocal("PathPackageManager", imp_accu[0]); + imp_accu = null; + frame.setlocal("YaPM", Py.makeClass("YaPM", new PyObject[] {frame.getname("PathPackageManager")}, c$7_YaPM, null, YaPM.class)); + return Py.None; + } + + } + public static class YaPM extends org.python.core.PathPackageManager implements org.python.core.PyProxy, org.python.core.ClassDictInit { + public void addJar(java.lang.String arg0, boolean arg1) { + PyObject inst = Py.jgetattr(this, "addJar"); + inst._jcall(new Object[] {arg0, Py.newBoolean(arg1)}); + } + + public void addJarDir(java.lang.String arg0, boolean arg1) { + PyObject inst = Py.jgetattr(this, "addJarDir"); + inst._jcall(new Object[] {arg0, Py.newBoolean(arg1)}); + } + + public org.python.core.PyList basicDoDir(org.python.core.PyJavaPackage arg0, boolean arg1, boolean arg2) { + return super.basicDoDir(arg0, arg1, arg2); + } + + public java.lang.Object clone() throws java.lang.CloneNotSupportedException { + return super.clone(); + } + + public void comment(java.lang.String arg0) { + super.comment(arg0); + } + + public void debug(java.lang.String arg0) { + super.debug(arg0); + } + + public void deleteCacheFile(java.lang.String arg0) { + super.deleteCacheFile(arg0); + } + + public void super__doDir(org.python.core.PyList arg0, org.python.core.PyList arg1, org.python.core.PyJavaPackage arg2, boolean arg3, boolean arg4) { + super.doDir(arg0, arg1, arg2, arg3, arg4); + } + + public void doDir(org.python.core.PyList arg0, org.python.core.PyList arg1, org.python.core.PyJavaPackage arg2, boolean arg3, boolean arg4) { + PyObject inst = Py.jfindattr(this, "doDir"); + if (inst != null) inst._jcall(new Object[] {arg0, arg1, arg2, Py.newBoolean(arg3), Py.newBoolean(arg4)}); + else super.doDir(arg0, arg1, arg2, arg3, arg4); + } + + public org.python.core.PyList super__doDir(org.python.core.PyJavaPackage arg0, boolean arg1, boolean arg2) { + return super.doDir(arg0, arg1, arg2); + } + + public org.python.core.PyList doDir(org.python.core.PyJavaPackage arg0, boolean arg1, boolean arg2) { + PyObject inst = Py.jfindattr(this, "doDir"); + if (inst != null) return (org.python.core.PyList)Py.tojava(inst._jcall(new Object[] {arg0, Py.newBoolean(arg1), Py.newBoolean(arg2)}), org.python.core.PyList.class); + else return super.doDir(arg0, arg1, arg2); + } + + public boolean super__filterByAccess(java.lang.String arg0, int arg1) { + return super.filterByAccess(arg0, arg1); + } + + public boolean filterByAccess(java.lang.String arg0, int arg1) { + PyObject inst = Py.jfindattr(this, "filterByAccess"); + if (inst != null) return Py.py2boolean(inst._jcall(new Object[] {arg0, Py.newInteger(arg1)})); + else return super.filterByAccess(arg0, arg1); + } + + public boolean super__filterByName(java.lang.String arg0, boolean arg1) { + return super.filterByName(arg0, arg1); + } + + public boolean filterByName(java.lang.String arg0, boolean arg1) { + PyObject inst = Py.jfindattr(this, "filterByName"); + if (inst != null) return Py.py2boolean(inst._jcall(new Object[] {arg0, Py.newBoolean(arg1)})); + else return super.filterByName(arg0, arg1); + } + + public void finalize() throws java.lang.Throwable { + super.finalize(); + } + + public java.lang.Class super__findClass(java.lang.String arg0, java.lang.String arg1) { + return super.findClass(arg0, arg1); + } + + public java.lang.Class findClass(java.lang.String arg0, java.lang.String arg1) { + PyObject inst = Py.jfindattr(this, "findClass"); + if (inst != null) return (java.lang.Class)Py.tojava(inst._jcall(new Object[] {arg0, arg1}), java.lang.Class.class); + else return super.findClass(arg0, arg1); + } + + public java.lang.Class findClass(java.lang.String arg0, java.lang.String arg1, java.lang.String arg2) { + PyObject inst = Py.jgetattr(this, "findClass"); + return (java.lang.Class)Py.tojava(inst._jcall(new Object[] {arg0, arg1, arg2}), java.lang.Class.class); + } + + public java.io.DataInputStream inOpenCacheFile(java.lang.String arg0) throws java.io.IOException { + return super.inOpenCacheFile(arg0); + } + + public java.io.DataInputStream inOpenIndex() throws java.io.IOException { + return super.inOpenIndex(); + } + + public void initCache() { + super.initCache(); + } + + public org.python.core.PyList merge(org.python.core.PyList arg0, org.python.core.PyList arg1) { + return super.merge(arg0, arg1); + } + + public void message(java.lang.String arg0) { + super.message(arg0); + } + + public java.io.DataOutputStream outCreateCacheFile(org.python.core.CachedJarsPackageManager.JarXEntry arg0, boolean arg1) throws java.io.IOException { + return super.outCreateCacheFile(arg0, arg1); + } + + public java.io.DataOutputStream outOpenIndex() throws java.io.IOException { + return super.outOpenIndex(); + } + + public boolean super__packageExists(java.lang.String arg0, java.lang.String arg1) { + return super.packageExists(arg0, arg1); + } + + public boolean packageExists(java.lang.String arg0, java.lang.String arg1) { + PyObject inst = Py.jfindattr(this, "packageExists"); + if (inst != null) return Py.py2boolean(inst._jcall(new Object[] {arg0, arg1})); + else return super.packageExists(arg0, arg1); + } + + public boolean super__packageExists(org.python.core.PyList arg0, java.lang.String arg1, java.lang.String arg2) { + return super.packageExists(arg0, arg1, arg2); + } + + public boolean packageExists(org.python.core.PyList arg0, java.lang.String arg1, java.lang.String arg2) { + PyObject inst = Py.jfindattr(this, "packageExists"); + if (inst != null) return Py.py2boolean(inst._jcall(new Object[] {arg0, arg1, arg2})); + else return super.packageExists(arg0, arg1, arg2); + } + + public boolean useCacheDir(java.io.File arg0) { + return super.useCacheDir(arg0); + } + + public void warning(java.lang.String arg0) { + super.warning(arg0); + } + + public YaPM() { + super(); + __initProxy__(new Object[] {}); + } + + private PyInstance __proxy; + public void _setPyInstance(PyInstance inst) { + __proxy = inst; + } + + public PyInstance _getPyInstance() { + return __proxy; + } + + private PySystemState __sysstate; + public void _setPySystemState(PySystemState inst) { + __sysstate = inst; + } + + public PySystemState _getPySystemState() { + return __sysstate; + } + + public void __initProxy__(Object[] args) { + Py.initProxy(this, "yapm", "YaPM", args, yapm.jpy$packages, yapm.jpy$proxyProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + + static public void classDictInit(PyObject dict) { + dict.__setitem__("__supernames__", Py.java2py(new String[] {"deleteCacheFile", "finalize", "super__doDir", "comment", "super__filterByAccess", "initCache", "outCreateCacheFile", "merge", "super__filterByName", "useCacheDir", "message", "super__packageExists", "debug", "inOpenIndex", "warning", "super__findClass", "clone", "outOpenIndex", "basicDoDir", "inOpenCacheFile"})); + } + + } + public static void moduleDictInit(PyObject dict) { + dict.__setitem__("__name__", new PyString("yapm")); + Py.runCode(new _PyInner().getMain(), dict, dict); + } + + public static void main(String[] args) throws java.lang.Exception { + String[] newargs = new String[args.length+1]; + newargs[0] = "yapm"; + System.arraycopy(args, 0, newargs, 1, args.length); + Py.runMain(yapm._PyInner.class, newargs, yapm.jpy$packages, yapm.jpy$mainProperties, "", new String[] {"string", "random", "util", "traceback", "sre_compile", "atexit", "sre", "sre_constants", "StringIO", "javaos", "socket", "yapm", "calendar", "repr", "copy_reg", "SocketServer", "server", "re", "linecache", "javapath", "UserDict", "copy", "threading", "stat", "PathVFS", "sre_parse"}); + } + +} diff --git a/server/keycreator/prog.py b/server/keycreator/prog.py new file mode 100644 index 00000000..6148918c --- /dev/null +++ b/server/keycreator/prog.py @@ -0,0 +1,48 @@ +import sys +from OpenSSL import crypto +from M2Crypto import X509 +sys.path.append('../../util/sec') +sys.path.append('../../util') +from sec import * +from util import * +from db import * + +SUFFIX1 = '_srr' +SUFFIX2 = '_crr' + +#get input from user +hrn = raw_input('Enter the hrn of the object: ') + +#generate certificate and the private key +name = get_leaf(hrn) +create_self_cert(name) + +#extract the public key from the certificate and input to the database +cert = X509.load_cert(name+'.cert') +pubkey_pem = cert.get_pubkey().as_pem(cipher=None) + +cnx = get_plDB_conn() +tablename = obtain_authority(hrn).replace('.','$') +t1 = tablename+SUFFIX1 +t2 = tablename+SUFFIX2 + +querystr = "SELECT * FROM "+t1+" WHERE hrn='"+name+"';" +res = cnx.query(querystr) +if res: + querystr = "UPDATE "+t1+" SET pubkey = '"+pubkey_pem+"' WHERE hrn = '"+name+"';" + cnx.query(querystr) +else: + querystr = "SELECT * FROM "+t2+" WHERE hrn='"+name+"';" + res = cnx.query(querystr) + if res: + querystr = "UPDATE "+t2+" SET pubkey = '"+pubkey_pem+"' WHERE hrn = '"+name+"';" + cnx.query(querystr) + else: + print 'The record with name:'+hrn+"' does not exist in the system.\n" + os.exit(1) + +print "Public key is successfully added to '"+hrn+"' record.\nThe certificate and key are generated.\n" + + + + diff --git a/server/server.py b/server/server.py new file mode 100755 index 00000000..e3be0c01 --- /dev/null +++ b/server/server.py @@ -0,0 +1,725 @@ +#wrapper for the registry + +# Socket address +LISTEN_HOST = '127.0.0.1' +LISTEN_PORT = 8002 +SR_FILE = 'interface_tree_sr' +CR_FILE = 'interface_tree_cr' + +AUTH_HOST = '127.0.0.1' +AUTH_PORT = 8002 + +import SocketServer + +import socket, os, sys +from M2Crypto import SSL +from M2Crypto.SSL import SSLError +from M2Crypto import X509 +from pg import DB +sys.path.append('../') +sys.path.append('../util') +sys.path.append('../util/sec') +sys.path.append("../PLCAPI/trunk") +from util import * +from tree import * +from excep import * +from sec import * +from db import * +from pl_to_geni import * +import time, datetime, calendar + +# Import the API Shell +from PLC.Shell import Shell +shell = Shell(globals = globals()) # Add all the API methods to the global namespace +## ,config = options.config, # Configuartion file (Optional. Defaluts to /etc/planetlab/plc_config) +## url = options.url, # XML-RPC server uirl (Optional) +## xmlrpc = options.xmlrpc, # Use XML-RPC ? (Optional) +## cacert = options.cacert, # Certificate to use (Optional) +## method = options.method, # API authentication method (Optional) +## role = options.role, # Role to assume (Optional) +## user = options.user, # (Optional) +## password = options.password, # (Required if user is specified) +## session = options.session) # Session authentication + +class GENIServer(SSL.SSLServer): + + #NOTE: + # step1: The caller first makes a discovery call. + # step2: If the hrn is not managed by this interface, the appropriate child wrapper URL is returned. + # step3: Else, DOMAIN_NAME is returned. + # step4: Then, the caller does the call with authentication and authorization elements. + # step5: The interface handles the call: + # - Check if HRN is in the same database, or another db (again handled by this interface) + # - Perform the call in appropriate database in appropriate table. + # - For remote databases, ensure security. + + #NOTE: For all calls below, if the parameter dbinfo that points to the db/tabe to act shows a different db than the interface tree's root, then + #the PL calls should also reflect that; the PL calls should be made to that db. Currently PL API db configuration is static, and there is no problem now + #since all nodes in interface tree reside at the same database + + #record is the record to be registered + #dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages + def register(self, record, dbinfo): + cnx = dbinfo[0] + table = dbinfo[1] + type = record['g_params']["type"] + + try: + #check if record already exists + existing_res = check_exists_geni(record, dbinfo) + if existing_res: + raise ExistingRecord("Record "+record['g_params']['hrn']+" already exists.\n" ) + if type == "SA" or type == 'MA': + #geni parameters + record['g_params']["wrapperurl"] = 'local' + reg_type = '' + if type == "SA": + reg_type = 'slc' + else: + reg_type = 'comp' + rights = '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)' + rights = rights + '#0:reg:'+reg_type+":"+obtain_authority(record['g_params']["hrn"])+'#1:reg:'+reg_type+":"+record['g_params']["hrn"] + record['g_params']['rights'] = rights + long_hrn = record['g_params']["hrn"] + hrn_suffix = get_leaf(record['g_params']["hrn"]) + pointer = -1 + login_base = '' + #PL specific parameters + site_fields = record['p_params'] + + #check if the authority's site exists already + other_tree = None + if reg_type == 'slc': + other_tree = self.cr_tree + else: + other_tree = self.sr_tree + info = other_tree.tree_lookup(long_hrn) + if info: + login_base = info.login_base + pointer = cnx.query("SELECT site_id FROM sites WHERE login_base = '"+login_base+"';").dictresult()[0]['site_id'] + else: + #check if login_base is specified + if site_fields.has_key('login_base'): + login_base = site_fields['login_base'] + querystr = "SELECT * FROM sites WHERE login_base = '"+login_base+"'" + res = cnx.query(querystr).dictresult() + if res: + return "Site login_base '"+login_base+", already exists in the system. Try another name.\n" + else: + #determine new login_base + login_base = hrn_to_loginbase(long_hrn) + for i in range(1,10): + querystr = "SELECT * FROM sites WHERE login_base = '"+login_base+"'" + res = cnx.query(querystr).dictresult() + if not res: + break + else: + login_base = hrn_to_loginbase(long_hrn, i) + site_fields['login_base'] = login_base + #add into PL table + pointer = shell.AddSite(pl_auth, site_fields) + + #create the folder for the site and keys + curdir = os.getcwd() + if reg_type == 'slc': + dir_type = 'slice' + else: + dir_type = 'component' + dirname = dir_type+'/'+(long_hrn).replace('.','/') + if os.path.exists(dirname): + os.system('rm -rf '+dirname) + os.makedirs(dirname) + os.chdir(dirname) + create_self_cert(hrn_suffix) + os.chdir(curdir) + + #insert into GENI parent table + record['g_params']["hrn"] = get_leaf(record['g_params']["hrn"]) + record['g_params']['pubkey'] = X509.load_cert(dirname+'/'+hrn_suffix+'.cert').get_pubkey().as_pem(cipher=None) + record['g_params']['pointer'] = pointer + querystr = generate_querystr('INSERT', table, record['g_params']) + cnx.query(querystr) + + #create the new table for the site + new_table_name = hrn_to_tablename(long_hrn, reg_type) + cnx.query('DROP TABLE IF EXISTS '+new_table_name) #drop the table if it exists + querystr = "CREATE TABLE "+new_table_name+" ( \ + hrn text, \ + type text, \ + uuid text, \ + userlist text, \ + rights text, \ + description text, \ + pubkey text, \ + wrapperURL text, \ + disabled text, \ + pointer integer);" + cnx.query(querystr) + + #update the interface tree + tree = None + if type == 'SA': + tree = self.sr_tree + else: + tree = self.cr_tree + parent_data = tree.tree_lookup(obtain_authority(long_hrn)).node_data + parent_db_info = parent_data['db_info'] + parent_key_info = parent_data['key_info'] + info = TreeNodeInfo() + info.name = long_hrn + info.login_base = login_base + db_info = DbInfo() + key_info = KeyInfo() + info.node_data = {'db_info':db_info, 'key_info':key_info} + + db_info.table_name = new_table_name + db_info.db_name = parent_db_info.db_name + db_info.address = parent_db_info.address + db_info.port = parent_db_info.port + db_info.user = parent_db_info.user + db_info.password = parent_db_info.password + + key_info.acc_file = '' + key_info.cred_file = '' + key_info.folder = parent_key_info.folder+'/'+hrn_suffix + key_info.id_file = hrn_suffix+'.cert' + key_info.id_key_file = hrn_suffix+'.pkey' + + tree.tree_add(info) + if type == 'SA': + self.save_state('sr') + else: + self.save_state('cr') + return type+' '+long_hrn + ' is successfully added.\n' + + elif type == "slice": + login_base = get_leaf(obtain_authority(record['g_params']["hrn"])) + #geni parameters + #hrn is inside dictionary, passed by the client + long_hrn = record['g_params']["hrn"] + hrn_suffix = get_leaf(record['g_params']["hrn"]) + #PL specific parameters + slice_fields = record['p_params'] + slice_fields['name'] = login_base + "_" + hrn_suffix + + #insert the PL tables first + pointer = shell.AddSlice(pl_auth, slice_fields) + #insert into the GENI tables + record['g_params']["pointer"] = pointer + querystr = "UPDATE "+table+" SET hrn = '"+hrn_suffix+"'" + if record['g_params'].has_key('userlist'): + querystr = querystr+" userlist = '"+record['g_params']['userlist']+"'" + if record['g_params'].has_key('rights'): + querystr = querystr+" rights = '"+record['g_params']['rights']+"'" + querystr = querystr+" WHERE pointer = "+str(record['g_params']["pointer"]) + cnx.query(querystr) + return "Slice "+long_hrn+" is successfully added.\n" + elif type == "user": + #geni parameters + #hrn and pubkey are inside dictinary, passed by the client + long_hrn = record['g_params']["hrn"] + record['g_params']["hrn"] = get_leaf(record['g_params']["hrn"]) + rights = '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)' + rights = rights + '#0:reg:slc:'+obtain_authority(record['g_params']["hrn"]) + record['g_params']["rights"] = rights + #PL specific parameters + user_fields = record['p_params'] + + #insert the PL tables first + pointer = shell.AddPerson(pl_auth, user_fields) + #insert into the GENI tables + record['g_params']["pointer"] = pointer + querystr = generate_querystr('INSERT', table, record['g_params']) + cnx.query(querystr) + return "User "+long_hrn+" is successfully added.\n" + + elif type == "node": + #geni parameters + #hrn and pubkey are inside dictinary, passed by the client + long_hrn = record['g_params']["hrn"] + login_base = self.cr_tree.tree_lookup(obtain_authority(long_hrn)).login_base + record['g_params']["hrn"] = get_leaf(record['g_params']["hrn"]) + rights = '' + record['g_params']["rights"] = rights + #PL specific parameters + node_fields = record['p_params'] + + #insert the PL tables first + pointer = shell.AddNode(pl_auth, login_base, node_fields) + + #insert into the GENI tables + record['g_params']["pointer"] = pointer + querystr = "UPDATE "+table+" SET hrn = '"+record['g_params']["hrn"]+"'" + if record['g_params'].has_key('rights') and record['g_params']['rights'] != '': + querystr = querystr+" rights = '"+record['g_params']['rights']+"'" + querystr = querystr+" WHERE pointer = "+str(record['g_params']["pointer"]) + cnx.query(querystr) + return "Node "+long_hrn+" is successfully added.\n" + + except Exception, e: + print "Error in 'register():"+str(e) + return "Error in register:."+str(e) + + #record is the record to be updated + #record contains the new values of the fields to be changed in a dictionary. + #precondition: the authorization mechanism should already checked the fields intended to be updated + #dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages + def update(self, record, dbinfo): + cnx = dbinfo[0] + table = dbinfo[1] + try: + #determine the type and PL pointer of the record + existing_res = check_exists_geni(record, dbinfo) + if not existing_res: + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + type = existing_res['type'] + pointer = existing_res['pointer'] + long_hrn = record['g_params']["hrn"] + + #PL update + if type == "SA" and pointer != -1: + #check if record exists in PL + pl_res = shell.GetSites(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + #PL specific parameters + site_fields = record['p_params'] + #update the PL tables + shell.UpdateSite(pl_auth, pointer, site_fields) + elif type == "MA" and pointer != -1: + #check if record exists in PL + pl_res = shell.GetSites(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + #PL specific parameters + site_fields = record['p_params'] + #update the PL tables + shell.UpdateSite(pl_auth, pointer, site_fields) + elif type == "slice": + #check if record exists in PL + pl_res = shell.GetSlices(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + #PL specific parameters + slice_fields = record['p_params'] + #update the PL tables + shell.UpdateSlice(pl_auth, pointer, slice_fields) + #process the new users added to the slice + for user in record['g_params']['userlist']: + usr_dbinfo = determine_dbinfo(get_authority(user), self.tree) + if usr_dbinfo: + rec = {'g_params':{'hrn':user}, 'p_params':{}} + user_pointer = self.lookup(rec, usr_dbinfo)['geni']['pointer'] + querystr = "INSERT INTO slice_person VALUES("+pointer+", "+user_pointer+");" + cnx.query(querystr) + elif type == "user": + #check if record exists in PL + pl_res = shell.GetPersons(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + #PL specific parameters + user_fields = record['p_params'] + #update the PL tables + shell.UpdatePerson(pl_auth, pointer, user_fields) + elif type == "node": + #check if record exists in PL + pl_res = shell.GetNodes(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + #PL specific parameters + node_fields = record['p_params'] + #update the PL tables + shell.UpdateNode(pl_auth, pointer, node_fields) + + #geni update + #all fields to be updated resides in the dictionary passed by the client, we just change the hrn field + record['g_params']["hrn"] = get_leaf(record['g_params']["hrn"]) + #update the GENI table + querystr = generate_querystr('UPDATE', table, record['g_params']) + cnx.query(querystr) + return "The record '"+long_hrn+"' is successfully updated.\n" + except Exception, e: + print "Error in 'update():'"+str(e) + return "Error in update:"+str(e) + + #record shows the hrn to be deleted + #dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages + #we enforce that the deletions of SA/MA are only at leaf + def remove(self, record, dbinfo): + cnx = dbinfo[0] + table = dbinfo[1] + try: + #determine the type and PL pointer of the record + long_hrn = record['g_params']["hrn"] + hrn_suffix = get_leaf(record['g_params']["hrn"]) + existing_res = check_exists_geni(record, dbinfo) + if not existing_res: + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + type = existing_res['type'] + pointer = existing_res['pointer'] + + #delete from the PL tables + if type == "SA" or type == "MA": + #do not allow removal if site is not leaf + tree = None + if type == 'SA': + tree = self.sr_tree + else: + tree = self.cr_tree + leaf = tree.is_leaf(long_hrn) + if leaf == None: + return "Error in remove.\n" + elif leaf == False: + return "Site removal should be at the leaves.\n" + + #update the interface tree + tree.tree_remove(long_hrn) + + if type == 'SA': + self.save_state('sr') + else: + self.save_state('cr') + + #if the site still exists in the tree, do not remove from pl, else remove + if not site_to_auth(pointer): + try: + shell.DeleteSite(pl_auth, pointer) + except: + 1==1 #the site may not be deleted because ttl of it expired, so should continue + elif type == 'user': + shell.DeletePerson(pl_auth, pointer) + elif type == "slice": + shell.DeleteSlice(pl_auth, pointer) + elif type == "node": + shell.DeleteNode(pl_auth, pointer) + + #delete from the GENI table + querystr = generate_querystr('DELETE', table, record['g_params']) + cnx.query(querystr) + return "The record '"+long_hrn+"' is successfully removed.\n" + except Exception, e: + print "Error in 'delete()'"+str(e) + return "Error in delete:"+str(e) + + #record shows the hrn to be searched + #dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages + def lookup(self, record, dbinfo): + cnx = dbinfo[0] + table = dbinfo[1] + try: + #lookup in GENI tables + existing_res = check_exists_geni(record, dbinfo) + if not existing_res: + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + type = existing_res['type'] + pointer = existing_res['pointer'] + #lookup in the PL tables + pl_res = None + if type == "SA" and pointer != -1: + pl_res = shell.GetSites(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + pl_res = pl_res[0] + elif type == "MA" and pointer != -1: + pl_res = shell.GetSites(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + pl_res = pl_res[0] + elif type == "slice": + pl_res = shell.GetSlices(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + pl_res = pl_res[0] + elif type == "user": + pl_res = shell.GetPersons(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + pl_res = pl_res[0] + elif type == "node": + pl_res = shell.GetNodes(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+record['g_params']["hrn"]+" does not exist.\n" ) + pl_res = pl_res[0] + return str({'pl':pl_res, 'geni':existing_res}) + except: + return None + + + def list(self, record, dbinfo): + x=1 + + #grants the credentials existing in database to the caller + #peer parameter shows the caller information + #record keeps the parameter: credential name + #dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages + #keyinfo is the id, id_key, and accounting data for the authority + #peerinfo is [peer_hrn, peer_certficate] + def getCredential(self, record, dbinfo, keyinfo, peerinfo): + cnx = dbinfo[0] + table = dbinfo[1] + try: + cred_pem = None + if record['g_params']['cred_name'].split(':')[0] == 'registry': + #lookup in GENI tables + geni_res = cnx.query("SELECT * FROM "+table+" WHERE hrn = '"+get_leaf(peerinfo[0])+"' ").dictresult() + if geni_res: + geni_res = geni_res[0] + else: + raise NonexistingRecord("Record "+peerinfo[0]+" does not exist.\n" ) + type = geni_res['type'] + pointer = geni_res['pointer'] + rights = geni_res['rights'] + #lookup in the PL tables + pl_res = None + if type == "SA" and pointer != -1: + pl_res = shell.GetSites(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+peerinfo[0]+" does not exist.\n" ) + elif type == "MA" and pointer != -1: + pl_res = shell.GetSites(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+peerinfo[0]+" does not exist.\n" ) + elif type == "user": + pl_res = shell.GetPersons(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+peerinfo[0]+" does not exist.\n" ) + pl_res = shell.GetPersons(pl_auth, [pointer])[0] + if rights == '' or rights == None: + if 'admin' in pl_res['roles']: + rights = '(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)'+ \ + '(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)' + rights = rights + '#0:reg:slc:'+ROOT_AUTH + '#1:reg:comp:'+ROOT_AUTH + elif 'pi' in pl_res['roles']: + rights = '(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)'+\ + '(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)' + rights = rights + '#0:reg:slc:'+obtain_authority(peerinfo[0]) + '#1:reg:comp:'+obtain_authority(peerinfo[0]) + elif 'user' in pl_res['roles']: + rights = '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)' + rights = rights + '#0:reg:slc:'+obtain_authority(peerinfo[0]) + elif type == "node": + pl_res = shell.GetNodes(pl_auth, [pointer]) + if not pl_res: + self.remove(record,dbinfo) + raise NonexistingRecord("Record "+peerinfo[0]+" does not exist.\n" ) + #authcert, authkey, pubkey, cname, rights, time + cname = 'Registry credentials' + openssl_cert = peerinfo[1] + cred_pem = create_cred(keyinfo[0], keyinfo[1], openssl_cert.get_pubkey(), cname, rights) + else: + cred_name = record['g_params']['cred_name'].split(':') + if cred_name[0] == 'slice': + slc_rec = {'g_params':{'hrn':cred_name[1]}, 'p_params':{}} + slc_result = self.lookup(slc_rec, dbinfo) + has_slc = False + deleted = slc_result['p_params']['is_deleted'] + expires= time.strptime(slc_result['p_params']['expires'], PL_DATETIME_FORMAT) + expires = datetime.timedelta(seconds=calendar.timegm(expires)) + if slc_result and deleted == 'f': +## if peerinfo[0] in slc_result['geni']['userlist']: +## has_slc = True +## else: + usr_dbinfo = determine_dbinfo(get_authority(peerinfo[0]), self.tree) + if usr_dbinfo: + rec = {'g_params':{'hrn':peerinfo[0]}, 'p_params':{}} + user_pointer = self.lookup(rec, usr_dbinfo)['geni']['pointer'] + querystr = "SELECT * FROM person_slice WHERE person_id = "+user_pointer+" AND slice_id = "+slc_result['geni']['pointer'] + usr_slc_res = cnx.query(querystr).dictresult() + if usr_slc_res: + has_slc = True + if has_slc: + rights = '' + if slc_result['geni']['rights'] != '' or slc_result['geni']['rights'] != None: + rights = slc_result['geni']['rights'] + else: + rights = '(10-0)(11-0)(12-0)(13-0)(14-0)(15-0)(16-0)(17-0)(18-0)(20-0)(21-0)(22-0)(23-0)' + rights = rights + '#0:comp:planetlab.*' + #authcert, authkey, pubkey, cname, rights, time + cname = slc_result['geni']['hrn'] + timenow = datetime.timedelta(seconds=time.time()) + if expires - timenow > CRED_GRANT_TIME: + openssl_cert = crypto.load_certificate(crypto.FILETYPE_PEM, peerinfo[1]) + cred_pem = create_cred(keyinfo[0], keyinfo[1], openssl_cert.get_pubkey(), cname, rights) + else: + raise NonexistingCredType("Credential "+cred_name[0]+" does not exist.\n" ) + if cred_pem == None: + return cred_pem + else: + return crypto.dump_certificate(crypto.FILETYPE_PEM, cred_pem)+keyinfo[3] + except: + return None + + + #returns the existing acconting information in database to the caller + #peer parameter shows the caller certificate, containing the public key + #record keeps the parameter: account_name to ask for + #dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages + #keyinfo is the id, id_key, and accounting data for the authority + #peer_cert is the ssl certificate of the peer + def getAccounting(self, record, dbinfo, keyinfo, peer_cert): + cnx = dbinfo[0] + table = dbinfo[1] + try: + acc = None + #check if the record exists + rec = {'g_params':{'hrn':record['g_params']['account_name']}, 'p_params':{}} + res = eval(self.lookup(rec, dbinfo)) + if not res: + raise NonexistingRecord("Record "+record['g_params']["account_name"]+" does not exist.\n" ) + if res['geni']['pubkey'] == peer_cert.get_pubkey().as_pem(cipher=None): + openssl_cert = crypto.load_certificate(crypto.FILETYPE_PEM, peer_cert.as_pem()) + uuid = 0 + if not res['pl']: + uuid = res['geni']['uuid'] + else: + uuid = res['pl']['uuid'] + acc = create_acc(keyinfo[0], keyinfo[1], openssl_cert.get_pubkey(), record['g_params']['account_name'], uuid) + if acc == None: + return acc + else: + return crypto.dump_certificate(crypto.FILETYPE_PEM, acc)+keyinfo[2] + except: + return None + + def __init__(self, socket, handler): + #initialize trees + self.sr_tree_file = SR_FILE + self.cr_tree_file = CR_FILE + self.sr_tree = None + self.cr_tree = None + self.construct_hierarchy() + set_tree_globals(self.sr_tree, self.cr_tree) + #initialize security module + self.sec = None + self.sec_init() + #set function list + self.functionList = {"register":self.register, "remove":self.remove, "update":self.update, "lookup":self.lookup, "list":self.list, "getCredential":self.getCredential, "getAccounting":self.getAccounting} + SSL.SSLServer.__init__(self, socket, handler, self.sec.ctx) + + def construct_hierarchy(self): + self.sr_tree = InterfaceTree('slice', self.sr_tree_file, (AUTH_HOST, AUTH_PORT)) #slice registry interface tree + self.cr_tree = InterfaceTree('component', self.cr_tree_file, (AUTH_HOST, AUTH_PORT)) #component registry interface tree + + def sec_init(self): + key_info = self.sr_tree.my_tree.info.node_data['key_info'] + id_file = key_info.folder+'/'+key_info.id_file + id_key_file = key_info.folder+'/'+key_info.id_key_file + acc_file = key_info.folder+'/'+key_info.acc_file + cred_file = key_info.folder+'/'+key_info.cred_file + + self.sec = Sec('server', id_file, id_key_file, acc_file, cred_file) + renew_cert('accounting', key_info.folder, 'slice', self.sr_tree.my_tree.info.name, None, None, (AUTH_HOST, AUTH_PORT), self.sec) + renew_cert('credential', key_info.folder, 'slice', self.sr_tree.my_tree.info.name, None, None, (AUTH_HOST, AUTH_PORT), self.sec) + + #save the state of the interface trees + def save_state(self, type='both'): + if type == 'sr' or type == 'both' : + self.sr_tree.save_tree() + if type == 'cr' or type == 'both' : + self.cr_tree.save_tree() + +class handle_connection(SocketServer.BaseRequestHandler): + def handle(self): +## pid = os.fork() +## if pid: +## # parent process closes connnection and returns +## self.request.socket.close() +## return +## else: + try: + peer = server.sec.auth_protocol(self.request) + if not peer: + return + + operation_request = msg_to_params(self.request.read()) + #determine the database information associated with the hrn of the call + hrn_of_call = operation_request["g_params"]["hrn"] + opname = operation_request["opname"] + target_hrn = '' + if opname == "register" or opname == "remove" or opname == "update" or opname == "lookup": + target_hrn = obtain_authority(hrn_of_call) + elif opname == 'list' or opname == 'getCredential' or opname == 'getAccounting': + target_hrn = hrn_of_call + reg_type = '' + if opname == "register" or opname == "remove" or opname == "update" or opname == "lookup" or opname == 'list': + type = operation_request["g_params"]["type"] + if type == 'slice' or type == 'user' or type == 'SA': + reg_type = 'slice' + else: + reg_type = 'component' + elif opname == 'getCredential': + if operation_request["g_params"]["cred_name"].split(':')[1] == 'slc': + reg_type = 'slice' + else: + reg_type = 'component' + elif opname == 'getAccounting': + reg_type = operation_request["g_params"]["registry"] + tree = None + if reg_type == 'slice': + tree = server.sr_tree + else: + tree = server.cr_tree + dbinfo = determine_dbinfo(target_hrn, tree) + keyinfo = None + if opname == 'getAccounting': + keyinfo = tree.determine_keyinfo(target_hrn, server, 'accounting') + elif opname == 'getCredential': + keyinfo = tree.determine_keyinfo(target_hrn, server, 'credential') + if (dbinfo == None): + self.request.write("WRONG INTERFACE") + return + # check to see if a matching function has been registered + if not server.functionList.has_key(operation_request['opname']): + self.request.write("NO FUNC") + return + #check the authorization of the peer + if not server.sec.check_authorization(peer.acc, peer.cred, operation_request): + self.request.write("AUTHORIZATION FAIL") + return + + #perform the function call + op = server.functionList[operation_request["opname"]] + params = {'g_params':operation_request["g_params"], 'p_params':operation_request["p_params"]} + result = None + if op == server.getAccounting: + result = op(params,dbinfo, keyinfo, peer.cert) + elif op == server.getCredential: + peerinfo = [peer.acc.get_hrn(), crypto.load_certificate(crypto.FILETYPE_PEM, peer.cert.as_pem())] + result = op(params,dbinfo, keyinfo, peerinfo) + elif op == server.register or op == server.update or op == server.remove: + result = str({'message':op(params,dbinfo)}) + else: + result = op(params,dbinfo) + if not result: + self.request.write(str({'message':'Requested record does not exist.\n'})) + self.request.write(result) + return + except Exception, e: + print "There is an error handling the request. "+str(e) + return + +#child process never executes this function, because it exits in "handle_connection". +## def finish(self): +## server.save_state() + +server = GENIServer((LISTEN_HOST, LISTEN_PORT), handle_connection) +def main(): + server.save_state() + server.serve_forever() + + +if __name__=="__main__": + main() + diff --git a/server/server.pyc b/server/server.pyc new file mode 100644 index 0000000000000000000000000000000000000000..478d6e7fc0b7c6044800543ebe78466549b5ad41 GIT binary patch literal 16839 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 literal 0 HcmV?d00001 diff --git a/server/serverprj.e3p b/server/serverprj.e3p new file mode 100644 index 00000000..cc32de40 --- /dev/null +++ b/server/serverprj.e3p @@ -0,0 +1,39 @@ + + + + + + + Python + Qt + + 0.1 + + + + + den.py + + + server.py + + + + + + + + + + + + None + + + + + + + + + diff --git a/server/serverprj.e3t b/server/serverprj.e3t new file mode 100644 index 00000000..1040c8da --- /dev/null +++ b/server/serverprj.e3t @@ -0,0 +1,6 @@ + + + + + + diff --git a/server/slice/planetlab/acc_file b/server/slice/planetlab/acc_file new file mode 100644 index 00000000..6fdfaca9 --- /dev/null +++ b/server/slice/planetlab/acc_file @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO +SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz +8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG +O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL +m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE +hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3 +MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69 +KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n +fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3 +si0AZRHgngrWmhf85bKAqS210OWHWOM= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/buaa/buaa.cert b/server/slice/planetlab/buaa/buaa.cert new file mode 100644 index 00000000..183e8d44 --- /dev/null +++ b/server/slice/planetlab/buaa/buaa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRidWFhMB4XDTA4 +MDMyODAzNDUwM1oXDTEzMDMyNzAzNDUwM1owDzENMAsGA1UEAxMEYnVhYTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA4VCO0co+HyKXQnjAUk7yRHCJj+iO0xrr +zkb6rMlCsj2eiBVYn80jS0JHprxaWLpHjH2TBGm6UcSq2OM/iLdoo2PxE9/uGJvD +ovwITLDCz9BRzlpeDC/vp/zEct5ipGJ6nin8cYQU6duY1COK+Fs6HP76mt5NquH8 +qIu23uOvh7ECAwEAATANBgkqhkiG9w0BAQQFAAOBgQDOhqPSG26qaWJL0R2RqiQ9 +Qno20ZYpR/6DNDSnuF2zE7pczSq0htD3g1P0m+SVuDF5P4DcBfRHkjYramdIZ3vK +QMp2DFtfIzvjKa//feaS1QZRIzHTyEpIl5Q+oaWBKRzLOvpIHsWBOkVR0WBhL2/G +N4ZRDn0PuFeBkWSzKkidgw== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/buaa/buaa.pkey b/server/slice/planetlab/buaa/buaa.pkey new file mode 100644 index 00000000..801200a3 --- /dev/null +++ b/server/slice/planetlab/buaa/buaa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDhUI7Ryj4fIpdCeMBSTvJEcImP6I7TGuvORvqsyUKyPZ6IFVif +zSNLQkemvFpYukeMfZMEabpRxKrY4z+It2ijY/ET3+4Ym8Oi/AhMsMLP0FHOWl4M +L++n/MRy3mKkYnqeKfxxhBTp25jUI4r4Wzoc/vqa3k2q4fyoi7be46+HsQIDAQAB +AoGBANLAXGbFSqgq3dtSQWp758a2kSWnvPifpNO0tsMqGhXI52GYveXzpsC9hXHj +moqF62jxCLRHBP14/OmUXphOHjN9cBhzA/5EuERhmDEYohiTfvLN5odpZQNHva1G +mGkXK+0FULT0LnV5VvKJRjw4SXQYYsSvwJaQ1QX59ftcRyoFAkEA85QgIvLQjAf7 +yZmK//gDEWfogIFN4BZAZo91cfB5tOghfusxl8W5yut3Zi+LeLFhbGg4O53v1E0N +D1xIl/Yf2wJBAOzN//+yhAPUL/cgEC1eepYqRXsCQICqju9kbBO1ggPM8YTi5MnH +jIq33I2LtjCzJu7KEs+iAKFEdAenCsQ8gmMCQD2Eo7kv6kvzmDwKc3jCgsPaonYS +MkDuXcWJZfgo7BQsrIkJjbTvU0VUwwsj5u3MnvZqPAmSkgfkje/bNtpqZxECQH26 +ci1krssJod3n3C76dsO79d/1tiGabQGVo/xi5oD2E1Wm0iqAFJKiRCuy/iylMgqe +p5YuQX9eROy7N/Aw4FkCQEjxNglW5hAp/zJh/7b+6MPYw1UeXuxFPsSMLSGkGhL8 +M9z9jQ7julnpLkbvuHY9HbIYci8d9wdmFsZQjqbEceY= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/canarie/canarie.cert b/server/slice/planetlab/canarie/canarie.cert new file mode 100644 index 00000000..52c5e232 --- /dev/null +++ b/server/slice/planetlab/canarie/canarie.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdjYW5hcmllMB4X +DTA4MDMyODAzNDUwMVoXDTEzMDMyNzAzNDUwMVowEjEQMA4GA1UEAxMHY2FuYXJp +ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvz94T+dv3wgMD91Hg0k1J24N +lGNQUhSxN/wPCqWJR/+82Y+tZOT/zW7EGLB7HvI5N+zp9+KBQwc6fc+2nseOXfJy +dhY51H7nyKwMIStMgWIdsSnvV8aQLTyBZyi188BKQSB3FkOKWuYUp44xoczYYixP +VBljvAsEzxnrKDHJJSMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBgUbzWXTa9X0uw +pSaZifNi1OyDu2EkCU7/ZfFFbjnDy4bkCuZ8RnPKCHItzZ69z2HNV4ratEYACptm +MxNMmr1j4w11V2F0YSbS3teVjg9sAFvCjA4gAGry/K4XS2ZfcAQBgdI8JpyiXRRH +eMNuIv8crZ2dr+MGQTdxu9s9pApRKw== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/canarie/canarie.pkey b/server/slice/planetlab/canarie/canarie.pkey new file mode 100644 index 00000000..92d173b5 --- /dev/null +++ b/server/slice/planetlab/canarie/canarie.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC/P3hP52/fCAwP3UeDSTUnbg2UY1BSFLE3/A8KpYlH/7zZj61k +5P/NbsQYsHse8jk37On34oFDBzp9z7aex45d8nJ2FjnUfufIrAwhK0yBYh2xKe9X +xpAtPIFnKLXzwEpBIHcWQ4pa5hSnjjGhzNhiLE9UGWO8CwTPGesoMcklIwIDAQAB +AoGAIZmLD66/jtWhGOBtgflIp2bEZ/+SyvjrscRM+DfhCI87pJWDhyhccME3HodS ++jrgJp0u9egLgbUxZ40ornis4DJx1TysLHf2BudaryNi1WvQCzwXBidqnDtcKg8D +f8BFyX7dj94PBGj4CNpooCicBV686k0sHQcisVsC89ZS+GECQQDzKbqTP0o7X2KS +0qrwM+x7r5ZSePY3uu9Bise3vnbMfXvmUih3Di0uw7UsCw4wpie2kll6eafilevJ +7nIexjxbAkEAyVggFgvQB81Cicf4NUV52XUbgXTRvWsETnb4IMHMdyreeGAZV0sT +b5/hedGs4n7YtAftol+ligu22faZrPC02QJAcJIs8eYm832hIN+uiy0+mbQcH2oo +cnx0Lx+UfhgK33hoV6RJX3SMrk2kHhOwKg2B7R+rlOulMVy+n+lno5+aaQJAI5Ud +ZogD5b0Sq0LZzKBQnmuhxskcX/tPsYY456EYP18mHePt1o2AC9QXhu3VPdno9jgI +eQ+qM7FKSU7ZbcTEUQJBAIA4cJ42sdAWeMNIcyEOeCNCi+e3a2mf/cQ/3yZqmdUK +0JPjUWGMe7KrwoPtTZ430gCYBG0gGilykSEmyJqRvO4= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/canariecalgary/canariecalgary.cert b/server/slice/planetlab/canariecalgary/canariecalgary.cert new file mode 100644 index 00000000..17669433 --- /dev/null +++ b/server/slice/planetlab/canariecalgary/canariecalgary.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOY2FuYXJpZWNh +bGdhcnkwHhcNMDgwMzI4MDM0NTAyWhcNMTMwMzI3MDM0NTAyWjAZMRcwFQYDVQQD +Ew5jYW5hcmllY2FsZ2FyeTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1Cep +VkRrenTVTiAkTPcXEIs0nvdxWuREdxqlk4tNGQBbhMXZd2ETaq7lQ4vrHJ3zhpO0 +ZvSDQhtz6hfLlCvk28MooXJR9uuYMsg/3TAT1eK4cXjDey60R6N5ULrjoetUKb6U +KlTvPGKaawyA16f3HbVCFej5ybest9vRP5opknMCAwEAATANBgkqhkiG9w0BAQQF +AAOBgQBRGrPFJbNB27lwyKhxrm4gtNIzA2CV1elhpizdzI2ShTIGbw/BDDcB/VW0 +GAy/gcv1mrjuREF3hKX5zjMLrAygkA/Uflxu8v/CleW7hhL1KbeJSD7zMPHLB+RS +Q4SmWzRiWsP0odRYSdNO7V6myiqUkSKDnWgW5ChNQNnk0r2mYQ== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/canariecalgary/canariecalgary.pkey b/server/slice/planetlab/canariecalgary/canariecalgary.pkey new file mode 100644 index 00000000..f4d89b8f --- /dev/null +++ b/server/slice/planetlab/canariecalgary/canariecalgary.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDUJ6lWRGt6dNVOICRM9xcQizSe93Fa5ER3GqWTi00ZAFuExdl3 +YRNqruVDi+scnfOGk7Rm9INCG3PqF8uUK+TbwyihclH265gyyD/dMBPV4rhxeMN7 +LrRHo3lQuuOh61QpvpQqVO88YpprDIDXp/cdtUIV6PnJt6y329E/mimScwIDAQAB +AoGACybuktdT4wMDN3EfF2ChuL/oizasob+ADda7v27CJb9MEEWqMclLkP8SlCNl +v4JaC8f14reVssLoq/SGQgqwo/gx9qvfrBNAXHsD72m/igiIL1Qv7ADOKOKX7owu +B9L4qFsbI/X4x5JF5IYA5uO1vjjCGvdXTkNI5U6UoLNEC6ECQQDwaqChL26fQB26 +ZHYk1LfhErwB8PKHZ9JBikzUfYhM+RoBO7J83xIB3Ww4TEAu1T7twUjNhql8nxIP +3wjz/urDAkEA4egSqd+VFdeLeivGVWl9kIfFot6043pnzVN5AVSjBMtSCtCMkXzE +a3qTrkaCLMSwmF2sOpDOJdzuI8k/WfFekQJBAL1MF6ISiNWXVFD43RVu8EGl0Kbu +ouf+1UyJqqj9Fp8U3GbwLD+qHLGfOKCzWS4G9f+aWsqJJ1ZaoYwhnxkPNKUCQQDd +74JOc4JjB/RWHSVnihC66jhHDyaFCR9rf+M0ZHMXZax/RW2kDQBnWvA1Wb3Pv5iC +yBxJGTP9zLQEYlUjxtaRAkEAxyfFtWCzw9+NlrTQL7bUEEhwk0fFPWx/twF5BOPl +scLpbNpO9m1N0IeSQ6YT8Eom6qB/VO1bi/tmzWg+DxMLjA== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/canariehalifax/canariehalifax.cert b/server/slice/planetlab/canariehalifax/canariehalifax.cert new file mode 100644 index 00000000..50fe2e63 --- /dev/null +++ b/server/slice/planetlab/canariehalifax/canariehalifax.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOY2FuYXJpZWhh +bGlmYXgwHhcNMDgwMzI4MDM0NTAyWhcNMTMwMzI3MDM0NTAyWjAZMRcwFQYDVQQD +Ew5jYW5hcmllaGFsaWZheDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAw/Pe +dFh/pNc8k7ewRYdXe2i0aE1PjCKVbz/Lf+23aXbLUo1n+s1uIZ5J6zsN6CQD2LOP +NPgLeFegoR7MnVDX+F2J/Z589YG6aDR4t963D3EGnMEJ8zMR9jvGG/Mm+DWymQPt +pt3kmHDB3cC83FuXvqf4Z61aRlLxIy/K0g3z/dsCAwEAATANBgkqhkiG9w0BAQQF +AAOBgQBgNlJbh33dZq2esZRuURigaeU0K3dG93tL9NlvR64y+xOFOqw2dzUQ2ZT4 +usVjFY34CxQeOws114KDrMxLTUu/tCexNySfCV4htLe/iaUM6EiaBGiv3YZZjSiX +5En6oDXU8gjaL3Xxp8PC6bWhCm71hGEhHI1drt4RzAf9uoOrZg== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/canariehalifax/canariehalifax.pkey b/server/slice/planetlab/canariehalifax/canariehalifax.pkey new file mode 100644 index 00000000..75ec85e2 --- /dev/null +++ b/server/slice/planetlab/canariehalifax/canariehalifax.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDD8950WH+k1zyTt7BFh1d7aLRoTU+MIpVvP8t/7bdpdstSjWf6 +zW4hnknrOw3oJAPYs480+At4V6ChHsydUNf4XYn9nnz1gbpoNHi33rcPcQacwQnz +MxH2O8Yb8yb4NbKZA+2m3eSYcMHdwLzcW5e+p/hnrVpGUvEjL8rSDfP92wIDAQAB +AoGAe5Jh+fsJW/nEIN+ZEO+90nyAMLp4bMYueL7BZYaSwLaCmCfGp9o/FoJM2UQf +jAKSTmlF6UB3c0fHa3QR0y91UfXm1/XXkgWi3SQZy7P1LQnmgYYrpTRMgdaVQiJ2 +8PtnKDUBfTBAqAHu3BnIPhqsanzVsxgCJBVReLEk1rowhIkCQQD6TnRF5ID7U4J/ +r9/IGB+oiirDx3j1VCb8GhJqrxywOWKxZmZSV885mBlNWhB3bSkj7OhiACDu4eh8 +pjQACMNtAkEAyGjo7Ku1JD/YIPRHbjt5+BKgjZbyCY0JHUZpKSuEd0tKc9e1FZhE +t8rthT3eCnF5w6VRdYbnnpXEZ8ZiyCuxZwJARImg6tZjvu2h6QamVurMGGEkzpDa +/Qn61sLo0g964oIEFSE92UQz+Mg9/WEw6xKX1j9zbgos+lwfRapYyL2djQJAPmN6 +b4McxwYhEFE7k3Nsiu+xj6J4AsUnGzf6MNjdSg3kRZ/XPbvDWLwRqTMTVojw8Rkb +/MxceqABHpVB1zLS7QJBAIWbIo6qzu0NF43XJyA3uAQvP3heljxIJsj/I8egXpv5 +kwdoHvNKAAWuw5f9YmBe3AFThen/4JI1U0sV3Xp++J8= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/canariemontreal/canariemontreal.cert b/server/slice/planetlab/canariemontreal/canariemontreal.cert new file mode 100644 index 00000000..07590322 --- /dev/null +++ b/server/slice/planetlab/canariemontreal/canariemontreal.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPY2FuYXJpZW1v +bnRyZWFsMB4XDTA4MDMyODAzNDUwMloXDTEzMDMyNzAzNDUwMlowGjEYMBYGA1UE +AxMPY2FuYXJpZW1vbnRyZWFsMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCx +lqju+Bh+Z1noC3wW8tjH3lbxtjHJFzq0VGJ2sgcFt9F9u/CZ4I0TjB9WuCoyVRr2 +MoVOcqmYfCHOsy5mJX4FGD9yWjEndKybbg/pqkvBjYtVXWRjp//PO+nYJ8dzLqxr +nYJufiow15RQVFp4f32xBGxTVvgEHDQ01ccxcXiu1wIDAQABMA0GCSqGSIb3DQEB +BAUAA4GBAJCprpSaYJ8WHV6BK+KS6N1IOKNgYinS5goZatUiWajej8ttSzdZNNiT +A9qJFMR9BMr4p5PMyrymKJN8dhdZZzt0qPLOXO4T/c6MOqZiJ0JiUwarwI6nF8lp +iE7vyDzxKzQ9AOi7lMWk0WgEOruzy7BnQOh/9aQHKaIrOTFEm72P +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/canariemontreal/canariemontreal.pkey b/server/slice/planetlab/canariemontreal/canariemontreal.pkey new file mode 100644 index 00000000..a970d3a0 --- /dev/null +++ b/server/slice/planetlab/canariemontreal/canariemontreal.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCxlqju+Bh+Z1noC3wW8tjH3lbxtjHJFzq0VGJ2sgcFt9F9u/CZ +4I0TjB9WuCoyVRr2MoVOcqmYfCHOsy5mJX4FGD9yWjEndKybbg/pqkvBjYtVXWRj +p//PO+nYJ8dzLqxrnYJufiow15RQVFp4f32xBGxTVvgEHDQ01ccxcXiu1wIDAQAB +AoGBAI7cRUAgYwvktmW+P2/yokN+8HB4Aerj/fytWZxksNN/wU4lj3MqOjM8aMWJ +V6Cv6AWgNK8b/KTHTycJ68yOYqX8f/UPPw53yrWo/r/smJDE84Nw4ln6cUs++ytP +xOe3hj2UzLhYT//lNC2OVBZPLkH40q7Ovu1Uqnbz8fX4uQoxAkEA5j2piUHlPEx9 +qeyyubGLRIBfMC9t5BfkRrMezgJv8UKMieKm/A0YEWCz4b08OhJ8DXmeLF0qENw4 +Qsrv2U5aaQJBAMV0+sLrm8kHAtUvIYn0TcoctR4InjPYHmN9ndaZo4QzbZ8yRFM9 +S1OSUZ986FkSdSXGFIz6k975DID+yBhpFz8CQBJnxYDCcsfSOY127YaoqcBtHq7k +a717J3V7ZjADw90ee8ueAclOZqkk+NxH22OtDJurKDjVrcIxSJIWVPwjJlkCQHPn +T459CEu+/s2uRayZp9O8eB/yBRL/iA70XGLsekwOeAlbUzndH8sldx38DtLB/9u1 +YrjCGWxnmgxaAZA6l7cCQE8thdtJJgO25ob5Yy4xmaOQvr8RpJF3v83UjDAPrxKb +WGLB9/ZopLe6TrLH8UKe0s5/SiCsqyzFFBsHGYjuUMM= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/canarieottawa/canarieottawa.cert b/server/slice/planetlab/canarieottawa/canarieottawa.cert new file mode 100644 index 00000000..b11e1cfa --- /dev/null +++ b/server/slice/planetlab/canarieottawa/canarieottawa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBnzCCAQgCAQAwDQYJKoZIhvcNAQEEBQAwGDEWMBQGA1UEAxMNY2FuYXJpZW90 +dGF3YTAeFw0wODAzMjgwMzQ1MDJaFw0xMzAzMjcwMzQ1MDJaMBgxFjAUBgNVBAMT +DWNhbmFyaWVvdHRhd2EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKJyrS8w +AY2C/wn7AkQpMeYGxQ99QsIXPwMl6Wgd/t5kdUMheyhV3J+C4nHTIz05aRXrc+45 +LTmAnGODza4UEDuRewfAMJRNqOOdXygkJTcVm+kDBPgOKCzzvVYP2t/eCDovBTwy +AtdKVlofCcxb75QPd6Jp1vLEY65st1Z5v+8XAgMBAAEwDQYJKoZIhvcNAQEEBQAD +gYEAeT/8jTRrBu7SLjPlQ9tRUk04DPRorn3vPH+IwtwKr4oWXmIUO3yATvCBfk5x +/DrO9yuVDVXxANd3zriA2xsG+/G1bZLu54spee2Rg5YoaUwnURnS0xke6jd3atGl +0XstmhMrapDfLL3Xie9/3QbqQXlo9VdQPlm7/e2RJpVvXYc= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/canarieottawa/canarieottawa.pkey b/server/slice/planetlab/canarieottawa/canarieottawa.pkey new file mode 100644 index 00000000..3ec0524a --- /dev/null +++ b/server/slice/planetlab/canarieottawa/canarieottawa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCicq0vMAGNgv8J+wJEKTHmBsUPfULCFz8DJeloHf7eZHVDIXso +VdyfguJx0yM9OWkV63PuOS05gJxjg82uFBA7kXsHwDCUTajjnV8oJCU3FZvpAwT4 +Digs871WD9rf3gg6LwU8MgLXSlZaHwnMW++UD3eiadbyxGOubLdWeb/vFwIDAQAB +AoGASqOmLyg/jmXCCTPrtqW255n0sUk8gzFrImco903Q7R37Qvz/OWk6FZBtux7n +8hmOzyOAANUEkoclVBQbTQCq8/hbKKYBFD/HKMDLvW+fDpQkX6l6JZMFliE3UYbz +3Tc+bCHReMG9V2QD/hTZTG1xDdzuKFEs7SXG8Amc66QIngECQQDOMluHFrW6PuR9 +TPt+/YWXv8VVh0O3GDdHv32oE9ukp/ku6aK+hvWOY/QDsiPny0qMGYDlaAellh0o +F4/CbA+pAkEAya86OUpX5z6q/m87GnBYo8kzER1FOzffk+/PtuX+sEyjNXM+94NJ +Gh2jG2prL1WRfN9Pf+Zc82BKHz4zh0ZAvwJBAJ8va0/QLX3afgVqACLa0F8F0u+j +nJhmno7Ke9Tdd80XTJ12C4kxobNK4SBVT7jsTeH48nSoqnagfGPuRLLhP/kCQDBa +++m6gmLmKpdAUfpfz1DNr5m929h75/YPPE0Mzci1RzhMfl9XsdI6It4y4KoDqRM4 +c1YmBEkx3/OntTEMzf8CQQCiSJ+KjC1kwAMTMU5HsC1lT7kgNImJOOk4xmwLnXLy +YL5xVgqbdnEd+hOzvaC2vg/rrJ5pqIYbxL+gIpnk+igw +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/canarietoronto/canarietoronto.cert b/server/slice/planetlab/canarietoronto/canarietoronto.cert new file mode 100644 index 00000000..47111659 --- /dev/null +++ b/server/slice/planetlab/canarietoronto/canarietoronto.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOY2FuYXJpZXRv +cm9udG8wHhcNMDgwMzI4MDM0NTAyWhcNMTMwMzI3MDM0NTAyWjAZMRcwFQYDVQQD +Ew5jYW5hcmlldG9yb250bzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArG6o +uW/kYxKPFe6Np4vVO6x2NX7BkZPni+AzlDRywBps7kpkZhQLmqlDw6uzOZu+VyK7 +rLd5ZRquYmpa9JDWnmCsL2qUaULNusevjqxWDnSy2JfGRaSLa/WRw0pYMiMiNPhf +KhoG1CFiArPO2pVYRaboxeCnKX01nwRZ2OrJfhUCAwEAATANBgkqhkiG9w0BAQQF +AAOBgQCEEdCPjQ54BsxHOWkpmKFMWTvzD/GaXD41G8sNP/++FrIWiWJK3yCdsl2z +1mcT3zFJTgUs0EYVfHgMjQq4Pp2Xf7yPz59K4eqWdp2tH6efAKVi9X5QJ++gUwQe +MPgfPSfZ4Jg4oiFB++o7rBf8ie3QQFRjWn66QJo4sCILRlR3Ww== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/canarietoronto/canarietoronto.pkey b/server/slice/planetlab/canarietoronto/canarietoronto.pkey new file mode 100644 index 00000000..c2c9326d --- /dev/null +++ b/server/slice/planetlab/canarietoronto/canarietoronto.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQCsbqi5b+RjEo8V7o2ni9U7rHY1fsGRk+eL4DOUNHLAGmzuSmRm +FAuaqUPDq7M5m75XIrust3llGq5ialr0kNaeYKwvapRpQs26x6+OrFYOdLLYl8ZF +pItr9ZHDSlgyIyI0+F8qGgbUIWICs87alVhFpujF4KcpfTWfBFnY6sl+FQIDAQAB +AoGAFiiqWho8+VZbOPBNF+jqYB7LmhhN+81MBjerqTIMRQ+gTAcXW97bluaFpNGd +2JthHIWEJK/3U7zYCCGuypsKWV3gkbEY3J6S8/6wHx67TmnM6QQRFoiejNZ+Fr8y +E86sYOoIUkNjw8swGb8M5RDrz2lixNAem3OtN/NWwk7lLMECQQDiXBThZqgdxmFA +AFl1vS8OuNaGKXaggkDlmJl1aChv9oiA6iDhXjaViyjB1/qpK2ovH/A3jVPSeLip +0xwr84H5AkEAwwLZQQ+rpBly5ETTXwL7kp6M5AO2lfedkKTtXUWLGw96a95xP0jE ++Ng4oD0l5q1dKgZKWz4UlEjq9PrseoUj/QJBAM0J49AYkQgHfmfe6SoBZ/LJ82gr +fsz9r5NJmxgCdT6V7if37Di4gnELUKvl26QJM3HkWE+5sMfhmkQaelZFiOECQQCb +Zmy8RQGRblo4/4O1Bgp1x3Ucyry4ey8LsfIZTq7QbKAwz31NYe7dImjVgITwcxx3 +vbWJSkpZ9FWPzVmfNPP9AkEAkbJY46ht9kI4r/C1ZKW8JYBWUO1mcJr0qhBY0dES +WMZJl7U3VLqZ/C0dZBdga3no0z7SVWhIl591N0NhuW6MHA== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/canariewinnipeg/canariewinnipeg.cert b/server/slice/planetlab/canariewinnipeg/canariewinnipeg.cert new file mode 100644 index 00000000..16e0335d --- /dev/null +++ b/server/slice/planetlab/canariewinnipeg/canariewinnipeg.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPY2FuYXJpZXdp +bm5pcGVnMB4XDTA4MDMyODAzNDUwM1oXDTEzMDMyNzAzNDUwM1owGjEYMBYGA1UE +AxMPY2FuYXJpZXdpbm5pcGVnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDr +Pxqj5/UUVIe0ro/xVJfHzUOb4BlY59sZ+XPhtQ+kZQ7O1XVf5aya1hSCjTEqSCGH +hr+4wQlYxbCe6dNObjkgb0zhKE+12tLZ7zmUrjw3VDOGvhTWkZFtOdC2lKBCn5AT +hDLNdGkm1qF4t/Z18snCuvVnOWhAJm9t1VFgOhJ/iQIDAQABMA0GCSqGSIb3DQEB +BAUAA4GBAJg3lMom6NBliLg85zM0hhRnMYZoG6aQBe9HiAVyRdKshNbDUtrALqJd +XfDg+TdKGacWWlh1CM3muqlJP+lKGnJr8m0WvSfENeCdyLFbhP+UGjGwADOcWIdI +t/IcLZv2RIEKl8AEu+GWv9KEMKU3Y4bn+rOuDcJUJWNJvRrVNZDD +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/canariewinnipeg/canariewinnipeg.pkey b/server/slice/planetlab/canariewinnipeg/canariewinnipeg.pkey new file mode 100644 index 00000000..b8fb8eac --- /dev/null +++ b/server/slice/planetlab/canariewinnipeg/canariewinnipeg.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDrPxqj5/UUVIe0ro/xVJfHzUOb4BlY59sZ+XPhtQ+kZQ7O1XVf +5aya1hSCjTEqSCGHhr+4wQlYxbCe6dNObjkgb0zhKE+12tLZ7zmUrjw3VDOGvhTW +kZFtOdC2lKBCn5AThDLNdGkm1qF4t/Z18snCuvVnOWhAJm9t1VFgOhJ/iQIDAQAB +AoGAKj+pDyrHbyFHRgHbxCHHKJEKxWHX64moZd/RGgYkiwfDQw4/CDv9Zclw4Ylt +/QP7UZW3tPymKxVGBSRFWN6ez4ZHJM4NIHAjxbpjuyUw0zBTM7Ed3CdtQQeOXdrP +bzL4EW9ABLmvQrKKyXW5+WxN8EPkg+68R+kjddsmx0bKpmkCQQD3k4M0MGKOwOjU +ppl0ueRiu6GFdZziRgMbgn4lWgG1x0V8GaD/M8xqpG7e9ETfzGZdIU/IOemVmkHR +sbj6/isLAkEA80Ax3JcSR6wF795VjhMVzNUdzuz5+N3e2xxLdlZC8u93yP25tc6N +q2xbI4l/G53db5pp72ojHgx7m0u7Tzg8OwJBAIsctzenDGo8WVfL+SROo9caqSrN +qIa4Ylyd2XXxek6DFzchS4a6u10c4jOjO+Qo/UfNRQA0El1+nQdP/qoCEXsCQQDd +rq1CSXNhWgZ3GfqCZiZB7B8kS5dsFFda/ChRij+tQku6InEynTFC/pb4hgAO3QnH +AcR1ahbi9aFYX+YuRiOtAkEA32LWwPtnVx0EJ9jHvzpCw8PEyU7oAZkFGLLbs6iT +4cY3l9NhAvrKVmFyJrlhkBzZA3LAko/NL1UJsGpd00K/dQ== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/canterbury/canterbury.cert b/server/slice/planetlab/canterbury/canterbury.cert new file mode 100644 index 00000000..b89f2301 --- /dev/null +++ b/server/slice/planetlab/canterbury/canterbury.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKY2FudGVyYnVy +eTAeFw0wODAzMjgwMzQ1MDFaFw0xMzAzMjcwMzQ1MDFaMBUxEzARBgNVBAMTCmNh +bnRlcmJ1cnkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAO8qVycIcPftfVfY +8GUAQAOhsi+06ggwRmn37OzcEQ21+NjDiKMR9xPjRC1wxoSlPPTM4+Cia3V1c7MV +jEXc4UcGzMVnP7LrXG+vjTPOppOI8vTSkj07gKK+gGrti/jNpyY3sXn0hTuK/QU8 +G6fEsZyu9OyLTvD5749YDdpgC5dRAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAVL+m +DcbGwGm9IBg8CxTD8H5m4pPhyNLwVIpaBRRFhxdse3rq742LT/2s6JfdZHKirJZ8 +DfxDJ4yFY6fH9E7y4HOl0eMrAkCd9zSfZqtRWHqXwMrBcVDLGmaWji4lnnSNj+/S +ncxfnBE3P/Zh/1AhqD7fKK9VONfpArlesKgBVVg= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/canterbury/canterbury.pkey b/server/slice/planetlab/canterbury/canterbury.pkey new file mode 100644 index 00000000..4772f728 --- /dev/null +++ b/server/slice/planetlab/canterbury/canterbury.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDvKlcnCHD37X1X2PBlAEADobIvtOoIMEZp9+zs3BENtfjYw4ij +EfcT40QtcMaEpTz0zOPgomt1dXOzFYxF3OFHBszFZz+y61xvr40zzqaTiPL00pI9 +O4CivoBq7Yv4zacmN7F59IU7iv0FPBunxLGcrvTsi07w+e+PWA3aYAuXUQIDAQAB +AoGALvlZ9Mirp4Z1v/NUBAJwkEYKAWS/MqyIp/eSCVOP5el/3tNI2v6EUNuqYGJu +G095EXvMpipAgOl4uAvbaT1g4Xk5Rd3XdEIBI6W3RfyMbWpUaraIlD305l2aRDQ3 +gHXuGkIf1XzT7RUgmPziNthEIBF47VbDXQBaMLp20aKBViECQQD3vjlk93i29Ifi +cLmh7+eOzFr658snq/z6Svo113KvxK2qNe3TVl2ANfZOm8vLmyxLbXzLiiqaKCj0 +jgo/gkSfAkEA9yLuMb+sacIBcJz14eLdKlK7Wtyq6DaR/NZrLdi08ddUbmpfK1Zy +Tpo6adschTM6+i6FPAQGGfKnsDJoC8suDwJAKCwVXHTwgyJFwocq4sJnFvW2LwdV +Hvq5i9CKoB5uf2fyDS6vgNx5TufxJ7AFrN9doGGBofOmkta+RWGe8ctq2wJAY5NZ +cgYOzBX1SpCTqc4k2ra28qdS3XmPXNZwHOriDUd7p3mImwebyvvtaVV1ql2397Hi +0Qm2A6J32lCVB5t4FQJBALEBq6o6T5+bYeiDQRyOyhj8165bgOtlj4z0zlpX1lef +8Kr+YOdQ5gEo0MYb5GLb7SwpwE79KnZxJXTZLBaLJ5c= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/cernetbuaa/cernetbuaa.cert b/server/slice/planetlab/cernetbuaa/cernetbuaa.cert new file mode 100644 index 00000000..6476b0f4 --- /dev/null +++ b/server/slice/planetlab/cernetbuaa/cernetbuaa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKY2VybmV0YnVh +YTAeFw0wODAzMjgwMzQ1MDNaFw0xMzAzMjcwMzQ1MDNaMBUxEzARBgNVBAMTCmNl +cm5ldGJ1YWEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANJjdorIoXe6W0KI +4nKK06455u6cFfovDVpfct3xcxqCVs4rZVa2pZ3dVjYcxFfuw2Alf9a6l7i/c9ev +HQ60NoB3KNQ0KTRfKdJYFW/eeQ+GbS6JG0UQz7jdmnWbwir0SrKpjx/+gShj24a7 +CAzmf8wUfsDuKVlFU05pns5dd2MPAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEASx+n +VELi295pDGO88OkW78XhRlLDZyeMaLFvuJRsA6enkjQRGRLGghsD4RLrizL484/o +LoNN+pSOW3tdhcro+mY7jJKJhPBQNue37SDQzhRZkpxmTe4RQU7fsbFFnqGPeglZ +pxaoFBA/V5b2y2xj7M8RwT018I+v4hcroSkpanU= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/cernetbuaa/cernetbuaa.pkey b/server/slice/planetlab/cernetbuaa/cernetbuaa.pkey new file mode 100644 index 00000000..d4f87cf7 --- /dev/null +++ b/server/slice/planetlab/cernetbuaa/cernetbuaa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDSY3aKyKF3ultCiOJyitOuOebunBX6Lw1aX3Ld8XMaglbOK2VW +tqWd3VY2HMRX7sNgJX/Wupe4v3PXrx0OtDaAdyjUNCk0XynSWBVv3nkPhm0uiRtF +EM+43Zp1m8Iq9EqyqY8f/oEoY9uGuwgM5n/MFH7A7ilZRVNOaZ7OXXdjDwIDAQAB +AoGAEOooPK42tR6Jecbxlc3tiONk2qg36B5iT3K/FHL2ExqJihfZFOioVhHWfZFA +g+VRVeiN56Cm1BaoZJ3Skz0P6IzBmGyvjwGoz22WZh36DXB9JsJ8fXtZJMPOT2+G +rONzgebtbnSTwhkmORvCLnNWYyc7+UP7UcoU66xM8KHrSNECQQD5jZnUwThYJ51j +erm+7eBQsNWUU7p4pM3U2CiPOhIepOPHYH391C+DuEkBl23XNEIkWacS31H3h3WO +Ac401oFnAkEA19LZrDi5pfFLbndzyPR/sNL5/O4F6ehZhXnMf4eK3COUjyHiedbF +nymX5qjTQ7oxrPG4o1aTKee/VuUbCJ1AGQJAdP/EbZEhX4NDMQ6q4y8Xif0+RUp0 +FHf/4Jhve6cYM7HO8Pz2VPkURccyw0JBxzHDCNPXluuIvGqP3MJP8UnYZQJAUjeK +oKcDYgnn2G889oLd2filLwtlyVOwNr7Nfo+eAHq1b0lTQ2Lj6dwod8A8qwJVRjLX +SbIDYeVc6LdicwekkQJAfJCapdJmp1lrzm56Jp4zwNNEg15N6NX3O/Izf8SmkD0d +RhRV6PyCehD9b7VdUwvoOrv7ToPcBryzBEosP7L5dQ== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/cernetpku/cernetpku.cert b/server/slice/planetlab/cernetpku/cernetpku.cert new file mode 100644 index 00000000..3714b252 --- /dev/null +++ b/server/slice/planetlab/cernetpku/cernetpku.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0cGt1 +MB4XDTA4MDMyODAzNDUwM1oXDTEzMDMyNzAzNDUwM1owFDESMBAGA1UEAxMJY2Vy +bmV0cGt1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEhdci06ujwMqKSxSW +UxAUOoe0E/dXA17+1q7BrSX3rORAjpki35f3rfkiLrBKtLCWeTHDwEyuyvx37OZI +FtTSES1akZPGgFd4obraTaVn0DBHjBaXJAESeb+8AAdmixrnD8Qe0wifV+unh2sM +zjR85xpeY9KSC7OI0zXEgQiABwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABCLzSj7 +yljbFHVBmTWRM+Bydeekpr6w9iXPBkh5ncS95dxigPhy9aJ69FtLzC087S6MUeC9 +eJYOQIXaUGGpRV9rBAkRxvlmsxk68U2b+TKEOBv5LTjKug+S8EvhbLnGuXq4eXbh +tor9kBs/l7GNxalnjbWyXV/ndSeLi1GuymbP +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/cernetpku/cernetpku.pkey b/server/slice/planetlab/cernetpku/cernetpku.pkey new file mode 100644 index 00000000..16f5a176 --- /dev/null +++ b/server/slice/planetlab/cernetpku/cernetpku.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDEhdci06ujwMqKSxSWUxAUOoe0E/dXA17+1q7BrSX3rORAjpki +35f3rfkiLrBKtLCWeTHDwEyuyvx37OZIFtTSES1akZPGgFd4obraTaVn0DBHjBaX +JAESeb+8AAdmixrnD8Qe0wifV+unh2sMzjR85xpeY9KSC7OI0zXEgQiABwIDAQAB +AoGBAK/aZAySBIDfv13ImX96jGTNiykkxKtkJNk9GdvNKLBcUVNDRtzh34aOcuSX +isEOtwWvJUzZAsVWdlyJ6/aOF5jgZsJMRIaJpglNEFMczWR0bTHSdLvqsCy6bfJU +uv9dRkDnbMq7DHYVVCZFG6iGX5CgaX5guhJFTz3qhuUj99FhAkEA6fcbeT65TQsa +/OaSQgsW7WUYGXX2yUuXzYbpJWOMhctmAxlBOf0paFDZXIKIAfTi4/bBQgnxDub6 +ylwAtREBcwJBANcH/0c9B7DKRCv494JI9VQTSmjWhN9uiVioc0tP3MdH7xDVUnMR +6prAI6uJha3z5NEIjdf5DatV5CnU3BKp0h0CQQCgib9fRYvOcqVVDT0kdgmIYUrV +BZ2N6AHEtCK8Vf9xOuzHiYe5K55DBt7u3F5IwWkCNSnMj5fJuvIw8kpF8+JDAkA3 +1lHJs+VdWQieyoWrBTr/XAsEckAKrO9pYESgF9rivKEto9dHHi3nhWE91/Yol56h +UTFUFc4g4arf2fBTwFlZAkAmEzkMzLCHfT7ARAkYENw8XjWoyVWsYPcQHDjf7ce4 +qympaYbES7zJAhzmkMqDiSyP+bWgKg5+3O0XYlECoOW8 +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/cernetsdu/cernetsdu.cert b/server/slice/planetlab/cernetsdu/cernetsdu.cert new file mode 100644 index 00000000..3d5f0551 --- /dev/null +++ b/server/slice/planetlab/cernetsdu/cernetsdu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0c2R1 +MB4XDTA4MDMyODAzNDUwM1oXDTEzMDMyNzAzNDUwM1owFDESMBAGA1UEAxMJY2Vy +bmV0c2R1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC44c5N04HClzJ2lk/R +FU6cD6HwEulR2q9q4KyKLDii6oWCkk5iQVG69HD1VkOjlGj/M16S+8X6mQsaZ4fx +VW0BoNhG04AQqqP8yN6+WZD+odVUQ4UZ49w4C0UHhGx7fiTdwjke/cNkTujISZP/ +zo88XUOhs/5CxSqB16eBL1pS4wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAGCsddSo +VY+R+AqPytBtPXS+haM9peokGiou+CZ27otr1h6fCMMhBcoUDql4DGA72P88xHBS +gDiQ477rHKFydLejuK8IXQ8/5xhfyWcHnKlOmANVUF+UHEvEnUJA6PzPVi2eGths +2OfU1Vz53irEhEYV71zN88irx8BYajrHxbpb +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/cernetsdu/cernetsdu.pkey b/server/slice/planetlab/cernetsdu/cernetsdu.pkey new file mode 100644 index 00000000..d537c834 --- /dev/null +++ b/server/slice/planetlab/cernetsdu/cernetsdu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQC44c5N04HClzJ2lk/RFU6cD6HwEulR2q9q4KyKLDii6oWCkk5i +QVG69HD1VkOjlGj/M16S+8X6mQsaZ4fxVW0BoNhG04AQqqP8yN6+WZD+odVUQ4UZ +49w4C0UHhGx7fiTdwjke/cNkTujISZP/zo88XUOhs/5CxSqB16eBL1pS4wIDAQAB +AoGAJCPn2yjMRciekbXiVmHO4wzfP/nCaEDSZ5cRw1TPoXEsthB5iBVyr5QW/K5n +PHPHbpORGjRjSBBgrkGsvk1PqFvC6MZTgJ2AB26aXuvsW83chnO5G7u/1OVwqbV4 +PB0+ND1oWNsCoXCumLPu8TyNTmp9RZRa9JwoTtZsPAW9w6kCQQDdDhaFJRfnoGY3 +c6Fwrx7X9gZVQ5XGHIYV3ZgziXwLcNP18PKXK1MEfP5yck6XdqeM4HL+sup3BA7l +JfqhDK+1AkEA1hvT67bvEe7tYXvJwVnGzj3v05uMsRImwLfXvlqQO+yKQV6b4Lgm +pWbx5TTkcPm1XsBXTP5FmV4AWeVKfOwnNwJBAKg9q6gkRiBU9NbpW4qezdPB/Kny +KVDBrs9/evJmhhFTCw9ZFdk18RYuZ54FH4mplfXjccIlu8tfPFLs5+ag+C0CQQCA +VXm2xZWSmDWswrfxrtAc+r7vhULVN94Gkas9K6dcY7GS8RRZo8d2SLgg/I0YsnPl +8T/ipF4vSUrIl0kIi7wNAkEAjZ6fASbCmUab5/R245nh+xaWTdNDeEbPlhxo6BrX +5KcMly0BhpzPXCa4JIti59NvBffPRkqpBv4aDxPcGZYJpQ== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/cernetxjtu/cernetxjtu.cert b/server/slice/planetlab/cernetxjtu/cernetxjtu.cert new file mode 100644 index 00000000..3270525f --- /dev/null +++ b/server/slice/planetlab/cernetxjtu/cernetxjtu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKY2VybmV0eGp0 +dTAeFw0wODAzMjgwMzQ1MDNaFw0xMzAzMjcwMzQ1MDNaMBUxEzARBgNVBAMTCmNl +cm5ldHhqdHUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOExNZlI90LahaxC +XdPwAxFWHBJhNHcTPM0i5pxk+Z7+6wMT4FKVUmL84WbN3IBPMgv9UkTCBtlKR+4K +N5lpFyHN/TCcQu+Nl8+s1rT0P3cZxdlEMRGmDjQhr91f0rhWv0YQ1OEGjgu/PJLO +MWoAmNlkzlmyDUMWkR9VKmQkB/iNAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAdFkA +Z1i4TrfgAi55OXZGIuhDZIh6epp1T/ev6sgLc9WxpMxi+U5qtTsbabmPMnBlU1i/ +2sZcBVM8CatKbsPerHhCmqhDoEKDo4iX00uBKpzajcY5LJ/7fWBqP+gMAA9Ibz6o +T4mSELr8TcRdFeBiw1ZIb1K8f/E9sHUv41N0WHg= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/cernetxjtu/cernetxjtu.pkey b/server/slice/planetlab/cernetxjtu/cernetxjtu.pkey new file mode 100644 index 00000000..38d8b06c --- /dev/null +++ b/server/slice/planetlab/cernetxjtu/cernetxjtu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDhMTWZSPdC2oWsQl3T8AMRVhwSYTR3EzzNIuacZPme/usDE+BS +lVJi/OFmzdyATzIL/VJEwgbZSkfuCjeZaRchzf0wnELvjZfPrNa09D93GcXZRDER +pg40Ia/dX9K4Vr9GENThBo4LvzySzjFqAJjZZM5Zsg1DFpEfVSpkJAf4jQIDAQAB +AoGAW5iphYThVicOUifYhFlO1iFhX7R8I6cGhyYYCSslQZ/Mtb7C8rRcA3l6sVcw +xlvwLmJGsUL+iCmnolIzlUnipxEEK3bf1gsWETuSUGtRVLAJuoTacCBdXTrj1Xx0 +v5aYGi3bYI8wPWX14HFb4nrP3tsBYwIenEa00x+LDqmdtn0CQQD1aRKQ5Wn7RjDL +pIqwJQEqpnjGkT+qn+8WrBtRit1CPqyq+So+ZEIBpSGS/gKvYQm3254PF7W6F3nM +gm8S/b+3AkEA6ujL1pJ0+jyulbeJ0ImXlMTeTOMVTfBrgxsIg4SKLVSPUIr0TlNn +ZiY0K4jMniEBk5LNu/hmj2RRpNS6C/TB2wJAW/AJLI9FrQUWsrPp4SN71GaZSIqR +t3JDN9MySNIlIfQo68R8tvMIZ2VdtpvClcFcyqxUAoN3aUfyMVOMGSlG8QJBAK77 +biuNuRlV7m6T41K1y3YEF9uKJCqEdnGYx4TAS/VsUb0bZNSbiCAtQRtUsabwyy3U +YvAsHqmdfrubwmJ5lZUCQBfsf/SWv4UoRFszrctfe2dl0HMeWtGLxngo5Y8XmZh4 +7XeGEHo2+wYnOvDNGeQI4zY7fTnE16ezRBw/wJTLQbs= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/cernetxmu/cernetxmu.cert b/server/slice/planetlab/cernetxmu/cernetxmu.cert new file mode 100644 index 00000000..6a34eed5 --- /dev/null +++ b/server/slice/planetlab/cernetxmu/cernetxmu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0eG11 +MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJY2Vy +bmV0eG11MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDD8psPzBMWvcOOosJo +aOvXTeJDv3MbkAzzlnk639mC+1nulhSotMhR4cKxvo0LxnN7J+bKS5uVEdYPcsgc +c7oSEas0q1VXdAwtwNv/nE4YA2vvsLAxOjJ1RrBbyTz19PqVKJ2oyWTBLa4EiPU/ +T+nrph/FT60hRwuof2p1DL5SSwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAFAx1Ppt +Kw0wvgs2KwdZgtYU1tY6XFk5+rspMMUD2ztFMIwGFwMj/doPW7yW3zt9nKYEbL2F +/TM/cEIYQRLpTXNHwM6jmSMjte2VHMaRIwG5Wm2yINsKc8vqatsrcPsyvSR2nL3Z +axhpVU84FBvVvrca1ZrwC3aE+a9I3Cw+DqYb +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/cernetxmu/cernetxmu.pkey b/server/slice/planetlab/cernetxmu/cernetxmu.pkey new file mode 100644 index 00000000..6d2fa06a --- /dev/null +++ b/server/slice/planetlab/cernetxmu/cernetxmu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDD8psPzBMWvcOOosJoaOvXTeJDv3MbkAzzlnk639mC+1nulhSo +tMhR4cKxvo0LxnN7J+bKS5uVEdYPcsgcc7oSEas0q1VXdAwtwNv/nE4YA2vvsLAx +OjJ1RrBbyTz19PqVKJ2oyWTBLa4EiPU/T+nrph/FT60hRwuof2p1DL5SSwIDAQAB +AoGBAKT/25bXz5MsxEmNwIrPHxk0Gj3WLwWcrWtI4Fi1OqHTKg2AD3Fome5pXtrx +jC/IMmIYXX0nYaGLXWewzdU3lgw7xgG2xGS8D65rSuzwtPhV4EoHCq0qayZUULKd +h+O2VyQH99ksnUtABtwVy22xiVwuJgCcssclXXK0CZkj9AWhAkEA5c/kS2QOdDTZ +MnPve///yaUZP1tBYKOVT21uz9wYvzQHgzYNLWCSIKEuulXCbifAjoGSzR6p12fT +Imvc/Hy26QJBANpG0TX4OimGI4c/RI5ndH93z38uHjSbrxWFRCygSkJe62Rsla3H +71gUGV+p7XjEVzNnY+t7JEw+I91JDS2dZxMCQQCJOGT8jzYCNTwrYAZzaBx3btlw +dzDGX2bcEl/ERYuRP6PsuO2NVshqK1QXdvWtiJb1gHEDgXewYxIyz20YZe9hAkB2 +e3ZYq1M28v8aDPezrOiJwIk7adcvi0pwjhRBfQiSGl//9QkSebKrxs03JlAm+7yx +xG9yhTdgw2JIXbzvg79NAkEAhgM4QHRh37xGpSkJkKNqLm+FbmdMAqhFdHivrqY+ +Rkqcn/m5Kbvtk6tQEl+blHSsWUsBqUXS3SMvhw/ANnDSqw== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/cernetzju/cernetzju.cert b/server/slice/planetlab/cernetzju/cernetzju.cert new file mode 100644 index 00000000..346db906 --- /dev/null +++ b/server/slice/planetlab/cernetzju/cernetzju.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0emp1 +MB4XDTA4MDMyODAzNDUwNFoXDTEzMDMyNzAzNDUwNFowFDESMBAGA1UEAxMJY2Vy +bmV0emp1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFUVtL3Es5IfPJRRMc +D5fwwACWSahzbos9IPQCdRigrvoK94RSEllAKJModSetdgGR+4mLoVoNu9m75Aqn +HYz+2znyJ/wIAz6QlL9kw0CbvD7uZlgYpkR1vacMQAYHLlnFg9DU8XkuMbdolvb/ +LbkN5z0sXRxGHiklTncXZ3NsMwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAMNRJVJX +7e6kVq3VXIYLfsK7Fq37Dkz+e7QHII4lNL95My+6/+pFpFDJEM1usEU31Q5Urin9 +P3sAEURmDTC1zoQ0TJUXzBrodeXIs8RsKxwCD+gane1LVJaCrO6N0LRmXUhqv3Cd +xm4eQkW/5Dp5u6xCGejVQ4LxgJi9afWWitdE +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/cernetzju/cernetzju.pkey b/server/slice/planetlab/cernetzju/cernetzju.pkey new file mode 100644 index 00000000..546a58bf --- /dev/null +++ b/server/slice/planetlab/cernetzju/cernetzju.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDFUVtL3Es5IfPJRRMcD5fwwACWSahzbos9IPQCdRigrvoK94RS +EllAKJModSetdgGR+4mLoVoNu9m75AqnHYz+2znyJ/wIAz6QlL9kw0CbvD7uZlgY +pkR1vacMQAYHLlnFg9DU8XkuMbdolvb/LbkN5z0sXRxGHiklTncXZ3NsMwIDAQAB +AoGAGKGYSPb9+OrRGN3jjcwwhmAhcqFNQuOYxA+6BhiB84UEN5xAS1J5C7ZE8Hb3 +dgLWHVgOCn0g1bgObRMBdW0N7YYVWeRUCxipZLNFRp6nslXthV30K1wCi8YiAqOW +KibAqF08i+HfkSuIe2wG0odEiNcD0VmQf/UGYlg2678y5aECQQD6bm3FhAqPrZS6 +Y+VrI4/8VLp6QALprXgILoKZJSvYwTh/rjw9BXuR3JR/Mm0dCK/pi6r9uRg8Othc +oYTzjeeDAkEAybSUsqQRNLd2LxjRTNajnyAUFVn54ZR2kZXtlHQYCyB6zrjzcEir +fJl9/hnK64MVkGasuzv0OenQcj+XNJKZkQJBAJe1yj47rYI4776ywcrT8mg0k/t3 +R8x0UCD0vB02jYd0FlwTG18EMUW90R/1VnCeUKM0/1NRjEMAiw4isz4wmy0CQEas +ikmJqSmyequH45Yrwsr3n3HXw/FhZqYeRU912hLT/5O9RDb8j3GqCnZlLS+WD5E4 +GJ/GIw3DujC9zUozb7ECQQCKvqRHYuSvufmldVB5db8TPL0os+aRhZ++zE9xbvlq +sUfw5aLJe1FN9kuD9z2UYNg8mRJ8L5pkPOeYo7gz0xjw +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/cred_file b/server/slice/planetlab/cred_file new file mode 100644 index 00000000..c856f36e --- /dev/null +++ b/server/slice/planetlab/cred_file @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn +aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2 +JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6 +R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX +h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB +/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt +MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l +dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U +PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp +26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG +teVEYDdXpA== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/equinixsi/equinixsi.cert b/server/slice/planetlab/equinixsi/equinixsi.cert new file mode 100644 index 00000000..993ca31a --- /dev/null +++ b/server/slice/planetlab/equinixsi/equinixsi.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJZXF1aW5peHNp +MB4XDTA4MDMyODAzNDUwMloXDTEzMDMyNzAzNDUwMlowFDESMBAGA1UEAxMJZXF1 +aW5peHNpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5noA3K38D7wLVSLdi +8iXGec4zu8gyqBJ9JzI/2+YMMO4hUFAfRrRH7h/+C8PgSne+O8SwcsRQRGQ3tZl/ +69+VS/xZBz86oyBh1EohoJOLSYxZPDsbasBFtynNGAWCh8AZTy7HwqpUz0d1NzVR +WGRXz6z/GEryWz5s4SSfzkEKLwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAB/zQzz4 +5dzGskD++FopMQQXPDXhPW99XL6MzBn8lUy0+qRI3RJ408JAXW2wX9ZY/FHq+oEZ +kk8SXAbRO8XUaqc8FYbPlAZK4V84gHhX02D/bSV9Ovl21Ht6DHPQxOB/91AGJD0v +Yi8t9GJO5c+QgOHazsHTor8wJFcXddbcKZu+ +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/equinixsi/equinixsi.pkey b/server/slice/planetlab/equinixsi/equinixsi.pkey new file mode 100644 index 00000000..2e5bb5fd --- /dev/null +++ b/server/slice/planetlab/equinixsi/equinixsi.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQC5noA3K38D7wLVSLdi8iXGec4zu8gyqBJ9JzI/2+YMMO4hUFAf +RrRH7h/+C8PgSne+O8SwcsRQRGQ3tZl/69+VS/xZBz86oyBh1EohoJOLSYxZPDsb +asBFtynNGAWCh8AZTy7HwqpUz0d1NzVRWGRXz6z/GEryWz5s4SSfzkEKLwIDAQAB +AoGAcwqjWI4iuKNn1ByvXCnL88kGXdXibFLyspKaeC2n1KJ21DrcjaXakkIpneBY +1CgTMtoEO3/F4CGjI0vwCPJ9rRGYMEWKUtFYKT2ylktoDWx565v8dD5dcgcUy+Q7 +p5Pg/Fy0z9Q+5+kBe97XzJQAhmfSIIhD4CWjmQSPk/9THgECQQDoe9pjeZijCsWH +uAyvXdAxbhhtDOHVth1680qyyD7A/eKoslSdw/w19tsC0UAq1QyaMo33x1fX4jpN +u1xY9nKBAkEAzGUXeubrx+v/NqBACiQQznuBmdJ4ScNZ29cx54rqDiBCfRVFvvgX +4lQJvxapc1xUBI3QXqsBRjBAY+K5Yx7ErwJAUosvBiS1SiZX7hEuB9HSSsqhR47M +XFnV68KYIhQxG8rJAEaY/o8IbIyiRETReKO+Xr1WZMRVbyQ2uUStzDRsgQJAH5lx +a9rPkPT3W+aif+7belC11KYpWp4NAmPen0FmthBetx/WzJNmfeMoLpa+U8tuYdXa +5QfjBornKYofxyc2mQJAQbPkxWIwdL/D0t6W0AZ8/axatRZsBctyqbuwIwt77DE2 +gAmx4g3MwZfaKjDeuc38C9gI7qry4Cn6JyKZhPRoDA== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/aston/aston.cert b/server/slice/planetlab/eu/aston/aston.cert new file mode 100644 index 00000000..49b5be87 --- /dev/null +++ b/server/slice/planetlab/eu/aston/aston.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVhc3RvbjAeFw0w +ODAzMjgwMzQ0NTlaFw0xMzAzMjcwMzQ0NTlaMBAxDjAMBgNVBAMTBWFzdG9uMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDL1aMOqDQJSqqDNr6Bgy/Nv3rxgk1o +FSIS0TtlTAD2/p1QP0r1+/tZL5pyVWgnWr7trhtq3tBbG2DEcOWfewfmA7dseeMR +ZruBMis+NACyjl5HvWKOdoEk+J3KQNUQHZg2hlqoqEra55jzhEjOoQ6EEdB9TD/c +5ho8GmiaW4isTQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAA1jnFA5DJGUW1w1R32u +71vHaZ4QHnfCNO/iz9/0mbQj4HmxzZ0UasVsTZvQDrr9Hb90VyiPQfdxaXc2eyIK +d5SYw6MaJVr39O2tfnCJDD6kJbTmpw/0SJRT5jyCf3s9nSkaTBiZBPoHuhnztKbb +xtkHKzUBZZfpqItfz5UiD7pX +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/aston/aston.pkey b/server/slice/planetlab/eu/aston/aston.pkey new file mode 100644 index 00000000..c755dd6c --- /dev/null +++ b/server/slice/planetlab/eu/aston/aston.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDL1aMOqDQJSqqDNr6Bgy/Nv3rxgk1oFSIS0TtlTAD2/p1QP0r1 ++/tZL5pyVWgnWr7trhtq3tBbG2DEcOWfewfmA7dseeMRZruBMis+NACyjl5HvWKO +doEk+J3KQNUQHZg2hlqoqEra55jzhEjOoQ6EEdB9TD/c5ho8GmiaW4isTQIDAQAB +AoGBAMVAC/bXFuQW+ULY6ynxhYUZUyP68GVUbhC/oTa5ggWDB0DsvuGj4uu/gTo7 +I/tReYoP/kBBNmez6sSua8cVC+HzrKZ1iqUU0mfPZ1DFYPQKx/7Aw2hiswdlY7Lb +4mLVgUjnaMaxQ1/0+i/TcARDF32oXLE2CsbdSCQneMQKZ8UBAkEA8t9+txw4l9oD +tg7H5K9eB6VMi0iE09FjLLYoH5yet55bNSXYbnA9zty4uEJkGw+C74Z0iI2zVG1X +GcMyPe1wUQJBANbZ/KOPupm6q/69DYRyw3PdD+RpuzRL5lFbnIM1HzrpzCtN2Qy/ +uaAxvUj3SchC+jlSDXfXLqenj3oceL/tGT0CQFdu3+Y5kaIRCS78STfpbfdgqZqm +w7KheYt6FB21O2os5vbOJgkz/PxAd3tV40XeoqtqAv+5y2pEZovOuoKSvNECQHCY +Eo8A3rB7pHE+UBwuLIHGwvJX+pRghlXypaYZK8GrDqVPCcVloHj0OBdKCO+bMhji +CE7ahQe1hzpeO2WRcp0CQE5n0HV8AtxczrgCEkTYjLR4DGBFBYr8kH66Ug2D/jkU +U7p1X2dGe9mEU8Mld79ZtITFYjMb68u+KGsIRxkHYrs= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/bamberg/bamberg.cert b/server/slice/planetlab/eu/bamberg/bamberg.cert new file mode 100644 index 00000000..ed3beec3 --- /dev/null +++ b/server/slice/planetlab/eu/bamberg/bamberg.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdiYW1iZXJnMB4X +DTA4MDMyODAzNDQ1OFoXDTEzMDMyNzAzNDQ1OFowEjEQMA4GA1UEAxMHYmFtYmVy +ZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApTBVBhxkCS1GK9sHrS4ACcd/ +9DAmruOZIyiDRdQ64fXXEeWWKCmgyNVj0YEkxxYj7Gk3Pa9mpIIL/a6QJXQQp1lv +9cbJxwRzimJxdOjojqQaXInWGNVyy0oPVCbllC33RPeuyDndpJFmt8wqADRgsTIu +kZAa3P8zKMtcEjZGuhsCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBcfbxWo0sFATos +LYDKyoLQm/XgJM/FuxyMPPUody7N+wax13kp4rt9Xv8VpIbzaUBO3KHYv5+08t2O +SwY+gOe8pFCIKikP8T/799saKAIsMX6fMKEhvG4DKcA6LmDF8s2kHKwIIkNRNmez +AP5vH7OVXnmtp8FivsLZabmwpiS2JA== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/bamberg/bamberg.pkey b/server/slice/planetlab/eu/bamberg/bamberg.pkey new file mode 100644 index 00000000..6f04ae9c --- /dev/null +++ b/server/slice/planetlab/eu/bamberg/bamberg.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQClMFUGHGQJLUYr2wetLgAJx3/0MCau45kjKINF1Drh9dcR5ZYo +KaDI1WPRgSTHFiPsaTc9r2akggv9rpAldBCnWW/1xsnHBHOKYnF06OiOpBpcidYY +1XLLSg9UJuWULfdE967IOd2kkWa3zCoANGCxMi6RkBrc/zMoy1wSNka6GwIDAQAB +AoGAHxF2DE4uqmMvfXQWf4XVUAGLmTutKtt3o9ssxWdjI7h/GMibczZRHTS1L2Qg +rKkHXKF1WE6y+WHUK4Q3bDPmJaYaK6dKRbKP9IVTaMetTFspvw/yMP9ACcj0osfa +9UrLRedtq0DI0fD/lWMbBbsaS49f/jFqyxiiW3GdIIPzjLECQQDQdjAsxMmQB4bD +6L70iLyAEDGSND6Dp8mIMCfyGNLSNON9mthSzSthSAGOPjHI4XiIpvJEv77DtLO0 +V/akGBkNAkEAytvpNgne/WwTIMH9YLRPFAD7tAYF/N4NKOC3DuwiZZeU+D0BFwoa +XCkMAQSBErqwtuoTp7dnxFUKy1JSS8YFxwJBAKOiYqaBwobgoZTe+iYRv4X3MDJH ++Fp4NuZEhtavTa3b/kb2aaB1lPvD/hSeFY5ODsOV6M62hRQyoG2MLvsYP3ECQE8o +Mr9QaMAQvQIKUHm8wiK3I4Ci3RFIAHCUBzp+cAmedZXMEDHSUmjl53Y6MLeDO9OU +UWkfixE0cgrWq6A/vB8CQGOesDzuFtvxugDzlgdC4eZK4+Z5CfHcoIvMbidwsn6F +F+1Vl3IO1mBmmtNBWrSWZRhHigAm8oeiNxVLmJyrfTg= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/basel/basel.cert b/server/slice/planetlab/eu/basel/basel.cert new file mode 100644 index 00000000..be7da6eb --- /dev/null +++ b/server/slice/planetlab/eu/basel/basel.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwViYXNlbDAeFw0w +ODAzMjgwMzQ0NThaFw0xMzAzMjcwMzQ0NThaMBAxDjAMBgNVBAMTBWJhc2VsMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCltyyxGv6cYHb6LQIwPZ0oZjUhjava +sIPNa8b1PiS+UcBXeOihLyyjSlevwD9EmQvTXhIXQ7Y5IkvzBNy6lBtGlqraUFUA +fzzIcO/F2p0agcyt3b/7bGiYo5g2TEZFuloS8jH55SRYj1Obh0Kn7lCQbz0AqeJa +QJSDsgv26b8oJwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAFVAEyH6H5deeZz+LMpH +fmlB0o3hKzHA/8qN92Gq8NP8ZRmHWMUSPJcOrHoe7K0szUtlXuzzSa4+yay2NfGX +NPROycVS4lz3SCz++w6m8vqseQXlWDXjxfV5ktkqHhwqXeMD0qcGaiuEvKY8++fI +GYAlj9rmziZalMPY3Vq9zd/7 +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/basel/basel.pkey b/server/slice/planetlab/eu/basel/basel.pkey new file mode 100644 index 00000000..6f588e91 --- /dev/null +++ b/server/slice/planetlab/eu/basel/basel.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCltyyxGv6cYHb6LQIwPZ0oZjUhjavasIPNa8b1PiS+UcBXeOih +LyyjSlevwD9EmQvTXhIXQ7Y5IkvzBNy6lBtGlqraUFUAfzzIcO/F2p0agcyt3b/7 +bGiYo5g2TEZFuloS8jH55SRYj1Obh0Kn7lCQbz0AqeJaQJSDsgv26b8oJwIDAQAB +AoGASJz8I1rNyF3opHUGaXcGH0ax71Lxw/DmwCOC2cFyPkb6PhoH7WELcT3JMITP +9FIPwX2N9c3A0kY5+3Hc+pCdZlsh1ZjKoNfhTltkBAoMpvLXFxnn6eS0tsv2RSbN +g3guxNqNWmnJ1dXGR2PHRfGDGicFVZnb5kiBTizmdVONlwECQQDZ7UhitoTpyYpL +aYL4PE/XP2ocpetzMDM8Tbq2PoTWKtneGLd8JkxwHFmH6SrShfJSgGfHNM2ec/15 +mkLKkQCBAkEAwqrA9wEN9Of6IYuUVhMDEHsUVnKYSi1WaXu8G/BuNhkx2I5sjpeD +5I6Q1B3qQG4UD1oBXNR4GXPOobzOkj3UpwJADWCie+TGXe+QPLbaYlCZehYbdmy8 ++lIwIviGiJ9n2hnBS//qa4WSVaN3337xsQCl8miNdk4IfTyTh75vcS3bgQJBAJO1 +fTXvVue+Hc3WW3f0dR7MRWJTEbs3K5peiR2qEfZ6p5fqefS4gxuqEbrh+B1raU08 +vkvx7C9j8CZJXXUZ9YECQFy9MWpJY6jWssfPB9wwwfL1PfxIjdmNRKqWlRlQJ4R/ +3tVMxSBY9tfi6SQXm9tSkN7e10MG6QS5/mXkFdrTzkA= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/budapest/budapest.cert b/server/slice/planetlab/eu/budapest/budapest.cert new file mode 100644 index 00000000..dcb72ff6 --- /dev/null +++ b/server/slice/planetlab/eu/budapest/budapest.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhidWRhcGVzdDAe +Fw0wODAzMjgwMzQ0NTlaFw0xMzAzMjcwMzQ0NTlaMBMxETAPBgNVBAMTCGJ1ZGFw +ZXN0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZhnw8g1GWddbLgd1gCDKx +ouM1Poa5eoU/OiEwpLSOu5Qafz9QxutyGSsDINdTUBDfM/RQBigcg2moI+CEIEca +0qkyhnqG5/jnOmNXEQdyGY4cJ14SplGFVU4Qs+iIEri0bwCt5VwHjfVyx7xKaEsp +zmN82bjRfFA1zs38L3+eOwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAGAzf/1U4yne +APWE1uFt8mqHOE4tt2pLOAGmu3V3umABOSB/teJtvdi6u3s4tIV5O0tSugFnSDu4 +KuVuj33IiUTS9LkCQ/OM41RDq9wzaYWje0FVEHzeQSStRjR+1EqwAe7GY/r7kdrn +0XIR6C4O/UEyUsIkZPWYmpjtDUPGZiC7 +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/budapest/budapest.pkey b/server/slice/planetlab/eu/budapest/budapest.pkey new file mode 100644 index 00000000..99cb4056 --- /dev/null +++ b/server/slice/planetlab/eu/budapest/budapest.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDZhnw8g1GWddbLgd1gCDKxouM1Poa5eoU/OiEwpLSOu5Qafz9Q +xutyGSsDINdTUBDfM/RQBigcg2moI+CEIEca0qkyhnqG5/jnOmNXEQdyGY4cJ14S +plGFVU4Qs+iIEri0bwCt5VwHjfVyx7xKaEspzmN82bjRfFA1zs38L3+eOwIDAQAB +AoGAfml/bZNLKMtWhnHz+skI3N6yd9DcbpHbOcFIZIJzQ7eS/EsSupi/X1FtA6Zk +PFB9XZlN0+ugB+H+1u3ynhY7+zItQHu8NOUzFRmYG26MamSdn0KGCqkTA1pzpWvq +wfMrTJnIY5TTux42IhWC2bdU55jHSwzeSRPYgfqj5hf37JECQQDyZG7hosYLNtNc +VCBvWI/Fl7+uF8r+s2VK6mfWEbi1VW0KY10PZuGUPrLIaMUxSCUBms2dYeCdrNNG +f4eBXnIPAkEA5bysdgrLDmrsRcCrxZBxNZ7tVlqH62Mo/1UMM6VvDspE7PZ9Ow44 +a4Qe5U6ouxL/HZXbUKgm6SPj46QLSTKNFQJBALUEuiX5uKsBS8Fk9kARRHWNCVIL +ZMbn1JqpCdi9rVKGtIMQh5wL+iUK2dt/GtzeAvz6zdleEi/OtI2uidTcYpMCQFPg +5zbSCgFhmJJ/Hjgr3KmvNQhqVWXj9nwDGUliBYJo53F9LYv6TS80NfOTHJfw/6RV +qpVwT4Sfzfy3UEeRZWECQQDk0EkI0n/l/ihH9sINw7x/Hje09mTrQCKLnS2K5v/H +tK+5YDp3jC1V4BgUvlsSSvk+s1J/Smh8/9Gg5878RJoe +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/cesnet/cesnet.cert b/server/slice/planetlab/eu/cesnet/cesnet.cert new file mode 100644 index 00000000..63d65236 --- /dev/null +++ b/server/slice/planetlab/eu/cesnet/cesnet.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZjZXNuZXQwHhcN +MDgwMzI4MDM0NDU5WhcNMTMwMzI3MDM0NDU5WjARMQ8wDQYDVQQDEwZjZXNuZXQw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALHFa7oH+fRbvs0uBoV6+ibpNBD8 +tRm+04HNDXFynczRAnJreziC6DzMX8Hijh3amF6mKWLA0uxc71waCwhdXlKAmdN2 +s8Bmgt17tDJPXQ/ZoBgigLkQ0ZrHjHtZk6VK1sejRXO5ctJ+oldb9ShE7o1QjNRX +b68+uLqMhwKFFXpzAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAYnSsRh8ZUU//dhYK +Xrz5gXGVodC7GJahCp1aUxQi1GEHpTwMdVIHCZ1Q7rvZmtlmL9ZJVU0zYY3cp4/R +yhZJ93uTuGyzTtYJvFYpOD2PMqPZNhsqw77IlZoWiOtClVLGE8pMz2BraDlt6k0m +drXnMyCeW0qkkdL1tC0GXz53QZU= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/cesnet/cesnet.pkey b/server/slice/planetlab/eu/cesnet/cesnet.pkey new file mode 100644 index 00000000..f4ed8029 --- /dev/null +++ b/server/slice/planetlab/eu/cesnet/cesnet.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCxxWu6B/n0W77NLgaFevom6TQQ/LUZvtOBzQ1xcp3M0QJya3s4 +gug8zF/B4o4d2phepiliwNLsXO9cGgsIXV5SgJnTdrPAZoLde7QyT10P2aAYIoC5 +ENGax4x7WZOlStbHo0VzuXLSfqJXW/UoRO6NUIzUV2+vPri6jIcChRV6cwIDAQAB +AoGAU7KnrcbjoHExvFjXKTFlZbyWjwjsG1sFKi/pDGjycuRVSpngQhMgVL/Etfx8 +/QFWi/mfsqcmp7J539tDJoUPSu+6C5mtcC09Ui3v2Dl8iJNvfAjKqh33NC64uGLw +iSbtpAZuE+WpfSCybw2km+L16WeomlDysEvGf5+HVShuuoECQQDfToeHRmkawN6j +Bl8beGMwYFGwUbeW2bs971N7gxg9kB/sx3lAiAjAZhJwbkuk8/SU8kctR0EpllTE +XD+0LuLJAkEAy8w7PqrravlJ9BL+EYn999WERSCUJ7irHseCTaE1tayDTojpHjUJ +Pmet2tY7JLWqV38wfs7h+3VE4JnUih11WwJAUQQrtY99GIC7BYiNPukpi2aWnJK5 +OdiazziiICCKzeMZQg2I1znDexJNRE8v0JPVu6g+3JWKda0d6fPSBOwxyQJBAKr3 +SyA4fMRCG3NBV5jZHZCCs7LWMNPdzNhGYJ7FReyBq6n/myk3LukGS0gRfo4+RIeg +cMuAvP2ZlE2jXzT6n48CQQDW/VZAQCrOnJuSYg+uvSo/OeqQJ03nGDX/VlYLVUqf +sKiNjDhtvr3ogQZbRrx588LyiBcEqWPwTgdR4rG3OT3j +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/enst/enst.cert b/server/slice/planetlab/eu/enst/enst.cert new file mode 100644 index 00000000..1c28ef51 --- /dev/null +++ b/server/slice/planetlab/eu/enst/enst.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRlbnN0MB4XDTA4 +MDMyODAzNDQ1OFoXDTEzMDMyNzAzNDQ1OFowDzENMAsGA1UEAxMEZW5zdDCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA2kSO7US0A8vJIuGy287MD81Uez/FvlqR +wiVnQG6/1TnCxCbbegodLsl5sPV6bOwB6ynNCThtZFLqFrsouqCOmbC92l2K85Ts +1YeHJ+Xuh/qhhfaxq1Zv8FX/1bPvW+XE6TPqZte/vWp3+EvUhcdoiC3cBiYQVGqu +qQZi3f9KF38CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCFKXXBXHNDSPm7CFy61Z/7 +hCHo2Y+sFQIu+Fzll2of+PYDpEJZ/6h6XRheLaqo0QHORNHjXRrNN01GpQdyNnkJ +/yiCEcZc/aKv3LXGkcRCHsS5x65sLFywEHu/AWwTK3SZ9rYUB4Oa4kR1UwPaDbC2 +QEPbl+StEXXTWrvVYIvgAA== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/enst/enst.pkey b/server/slice/planetlab/eu/enst/enst.pkey new file mode 100644 index 00000000..1a1e8298 --- /dev/null +++ b/server/slice/planetlab/eu/enst/enst.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDaRI7tRLQDy8ki4bLbzswPzVR7P8W+WpHCJWdAbr/VOcLEJtt6 +Ch0uyXmw9Xps7AHrKc0JOG1kUuoWuyi6oI6ZsL3aXYrzlOzVh4cn5e6H+qGF9rGr +Vm/wVf/Vs+9b5cTpM+pm17+9anf4S9SFx2iILdwGJhBUaq6pBmLd/0oXfwIDAQAB +AoGAbVNNq7Zv3D7kfh5CcirAt2GHYTxuFYxT2cTWVMWkPG70CT/VSulp+Jdd5q7u +JUSJKXsEggvLbybAraYNHn1xLsiEtjgXgJKgsIdEWnK+cTcFsWtsBcvrwV8lESt1 +AjmXS5XPIzhyzYVatWMJgMO0sVw4QOpZCRF3Zmxfj28xfJECQQD/H1YfYVanQhQG +T8z9wOnyhr/pJx5xTqAoFGQZk3YlCQoWQxAUU6jPO1sGw6g7+yk3IhvolJ8A5KDr +D1CUosrjAkEA2wTEb3fUKGGgVFXtn4DEb8X7lw1bL8Rjs0Yj4Ie+hU/BwL/9iK6m +gNAg8ejEHIi0cirA1wo6ALS1/P1U3sTXtQJABI73x/nCRZzNpMs6O3J9+6JivXTA +e3/PJsgufbJ/0uuVbY5nNCXGh2VlG/rU/7VeKCkI3KADM03ifjC43N8HxwJBANUg +eH74Hm4FQl2PGKLkTUNvZ3oAN0HuXA6yLGtr7MwRZrvImFEPk1s6LTT6iwwxQ1bt +n6Yif3r8XzQG2TXGWxkCQQDTSE06QxWFSLwkhZpZSfpIaHwEF5ZXemvON8M9CGoR +dRbYSVa4GZ0jS0Uh7CZ3ZajxQBK/NwYrEX//1xCQJ2Tk +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/ethzcs/ethzcs.cert b/server/slice/planetlab/eu/ethzcs/ethzcs.cert new file mode 100644 index 00000000..34251bec --- /dev/null +++ b/server/slice/planetlab/eu/ethzcs/ethzcs.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZldGh6Y3MwHhcN +MDgwMzI4MDM0NDU4WhcNMTMwMzI3MDM0NDU4WjARMQ8wDQYDVQQDEwZldGh6Y3Mw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANhxGONDXLa26igiP+c9fFe9V9J5 +96SxoEZFJ/MSVq0Jrxm3TBqw/0ftQnVJtyqQyFZ70dwhXzNQ2M5S51V7wKwhvRSd +UxuaA6bEkWYUJLC4oQI2GnKUhTZcwYJGMXWSE9Lt9g/NVoeGm16bvv8Y17klKEXK +cf+V1fmekZ4SUN9LAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAdtCzm7FDQHnURZSE +Qo9HwUGXUSS9TU6RYO8zgXPH4Yl8qY765OnUdqFbDSp8EJJqsdoKYRMDkmmP34Jw +uzpRfZdgBt7yTtw/IbwpoBoF2iMVHBg5nXdY0nKM3/I/GytrwQKMZNjgk+GcwVM4 +dDN/Gn+4BNY5wpYYDXrZfZRKDd8= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/ethzcs/ethzcs.pkey b/server/slice/planetlab/eu/ethzcs/ethzcs.pkey new file mode 100644 index 00000000..f2a254b3 --- /dev/null +++ b/server/slice/planetlab/eu/ethzcs/ethzcs.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDYcRjjQ1y2tuooIj/nPXxXvVfSefeksaBGRSfzElatCa8Zt0wa +sP9H7UJ1SbcqkMhWe9HcIV8zUNjOUudVe8CsIb0UnVMbmgOmxJFmFCSwuKECNhpy +lIU2XMGCRjF1khPS7fYPzVaHhptem77/GNe5JShFynH/ldX5npGeElDfSwIDAQAB +AoGBALr8ag3cYjqPp5doj2CMo+GA+GAjcqhbtCVBFZRPIYZ4OUe0LRFaHBDdjm6Z +cp5ZWlosuk68nexNSiBlSul08iusWX/uwl/VO5ohY3hzevRKR2XI4quZ7rLwx8kD +M/I8cWPkmvhWNruGknkSKWxc4HCqRN+aHSfHrZmM18wopHbxAkEA8VWgM5CUi1he ++nxMKlZkwGRvij21zJmVNqZvtNMYdQSGFQ95vmVU1D5+0ym+JQ1Ett6AdwJd0CKw +rfwzqhnNNQJBAOWYOQISHOS/fEn2T3Gk8/KvgovZBw7TYY92kjcYsIHBhPD/H/EM +zsPX0PDlDm1oRsBIn3ea2WRx7NffNieACn8CQQCnCb4dkrfODveGZlwNfci0hY/S +Xk4j9DWcIuz0epvV+rCXiSOZzec+FJeRrrXGTX2/GRhPxxqJwkkJ06Mq3Dr1AkBQ +vJTfe4sZjZShVbJeHkmCv+FCWFE5D3AxSNrl8RKwrmKXdL/AvmY/TDc3XvUR2Cd5 +GpCpOJTV05Ib32xlu4r1AkArGG6VGcUrQORv4ehtiyngr4Vp6/VM+fWHMQuW8IYo +p5dg9aiNGFtFyf9otxur29kf+R3XCeWfpNCd2iFN3K4e +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/eu.cert b/server/slice/planetlab/eu/eu.cert new file mode 100644 index 00000000..58607512 --- /dev/null +++ b/server/slice/planetlab/eu/eu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJldTAeFw0wODAz +MjgwMzQ0NTdaFw0xMzAzMjcwMzQ0NTdaMA0xCzAJBgNVBAMTAmV1MIGfMA0GCSqG +SIb3DQEBAQUAA4GNADCBiQKBgQCkl7+FqFVS9Fl88LfbkkyhQwpzu5iqGLMq9YCy +5N158ZkMiE++uEnp8O5XfoZjLH6PL7X27ncRiyRGmqa06eFXhXY6VXSzYlpU/DKF +xaHJ67gzClzJ8ew4/w+3moZe9UW2TCKcqqVdEuH8Spf2AmhwcCozE3MhuEbHWiuY +GDc7tQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBACG0tupEZ1GIHU8kzzuyhsRsu52E +qAWqIv0jXbclpLbZkl0/4ET+/hB5qxzDAawnj8WrVt4MvlTYuaB9xJVbeqONItFZ +dX433tDuGF7Cqn7/9NbaDgoIc6TebaD6i+SQFet30FjLbatIXsGtD+NmEh94nDOf +92VdZ3HftCD4jVJS +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/eu.pkey b/server/slice/planetlab/eu/eu.pkey new file mode 100644 index 00000000..76abc0f8 --- /dev/null +++ b/server/slice/planetlab/eu/eu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQCkl7+FqFVS9Fl88LfbkkyhQwpzu5iqGLMq9YCy5N158ZkMiE++ +uEnp8O5XfoZjLH6PL7X27ncRiyRGmqa06eFXhXY6VXSzYlpU/DKFxaHJ67gzClzJ +8ew4/w+3moZe9UW2TCKcqqVdEuH8Spf2AmhwcCozE3MhuEbHWiuYGDc7tQIDAQAB +AoGAGRJggzycGrHL++MzLog/kgUDT5PQ8oAmsrGI9Dc2oX+y35zYAOZTpAYmWD+W +uv6pHKiY4E985bg7Q2IFaOODhrHOTfY+HRMFJxy4WrWVupFlF0QaVjkZoN+goLyr +vtUAWPzm2Zq0YB8iX3AwYhsty3kn00+6dy7EH7jwqLZvHdUCQQDadNSoIMGV4FUM +kOUjjxBKGL855oYAemswnEACE791p8aP/5p/DaI7L+3tomIN0/23/kK6qfBODBt0 +Vhg1UygvAkEAwOEku8NouvTHI4WjqR0ofETWLZwU0xyq+dO/4IuPtWMPHcQdPFam +n1F3t97TE1Q+1/zYYaoQYUwfStWV3Ed9WwJAXJfccw6/PsmBAvx/Qt0mqGFo3B/L +eHRq7oWr07WPF01vqiVK1MNwmemszWZgbUAHcG9C1V+mTU5wbJT5WdDPXQJACoS8 +shin/3oV2hQRpslWSeCfJYGbiR/JGzK3BhHWVnf+fQsS5RV8pLeWpcpbDHTNsI2z +ZzAVEJlMI5KeR5MGfQJATA+Xx3ti+EQcrKCJvRAJavajhoVjMYguuU7gNdiA977D +V/RXDBN3odnqUu6gGs19JRKu3eh8CvzwWOOjaxSrcg== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/eurecom/eurecom.cert b/server/slice/planetlab/eu/eurecom/eurecom.cert new file mode 100644 index 00000000..6ef28718 --- /dev/null +++ b/server/slice/planetlab/eu/eurecom/eurecom.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdldXJlY29tMB4X +DTA4MDMyODAzNDQ1N1oXDTEzMDMyNzAzNDQ1N1owEjEQMA4GA1UEAxMHZXVyZWNv +bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvS+nKJCU1LHS6y/9J5Y7ELnS +bdZCuY/mXmWPqCmjWPVq4VQcUWsCPQsaErgc9Q7hARSel/BEiodTU7FJykabl5rx +i+8ERVy/YAvLltKKmaBCWenKw+YgoHOw7JYf3M1MAfXqd270Xr5J1pw4E9OWCwn+ +nbAq4dcH6SqAqYyd75ECAwEAATANBgkqhkiG9w0BAQQFAAOBgQBAnkqFqpkx49w1 +HqwF70IHkPyuLAmzINEq+UvDVst32eHG3UvUI8E9oM8OqiRgjv9KlKknUmNV5xOD +rLCV7Wkcxqmu8Z6SRF8rg8HeyFOYJLPs145+hpMaDXD3UbyLCKwinZt9YznnRMWJ +APIkOoZnHvHow74qipxzk6e9d+hYXA== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/eurecom/eurecom.pkey b/server/slice/planetlab/eu/eurecom/eurecom.pkey new file mode 100644 index 00000000..9b99c478 --- /dev/null +++ b/server/slice/planetlab/eu/eurecom/eurecom.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC9L6cokJTUsdLrL/0nljsQudJt1kK5j+ZeZY+oKaNY9WrhVBxR +awI9CxoSuBz1DuEBFJ6X8ESKh1NTsUnKRpuXmvGL7wRFXL9gC8uW0oqZoEJZ6crD +5iCgc7Dslh/czUwB9ep3bvRevknWnDgT05YLCf6dsCrh1wfpKoCpjJ3vkQIDAQAB +AoGAK68+PQqtozNwjagmH6b7+o+9/GjWPXzx5+gxtNXwhxEcXe2LIG3CNZBDtADZ +huipohM9z73GReqbnh64+EE3mfNv1cUESPRT/riGywgO0U+ULkfS45ixCrnFLKqn +jxg7PztAqlhmdSfsCC53MOMMgJBt6OpPYz4J54auX/HthzECQQDquh3v6tuH1GTK +fJEihmMCGa01nq7FvP8Ub94X0nM1hTX+OztnqCmfJYTsuJ3PAeLteeH0qy/N5wDB +ckxbgnvNAkEAzlTyHkJEhSPFGJTg7h6/1tJIl0I8e1bePc/CHhOYdKKFArLyL6W0 +RyE0ZPTspoP1Ad3g3FzfINfeeGsKNd6m1QJBAK71/+6fLve2F1LfOwdzCEW+gd9f +4oI9+Bxxrigvk/Sm0LIp0IPZUvzvaH9StT5h95ZvrT9EgqOFtoh6+/OR9VkCQAXz +STA6NQOp7msxD/OOC3ZEhjdmf5wG+03JCg4X/pOOhEt5oaZiHvrWKE6pCZIbyBsP +rQZt3zlxQEc0vwyiqSkCQFlm2bZUIMR0IhJqMDWIA9wvFoo4psmzjFx6X5X3c+nW +oMlRPur+ZrASAIevrmKQmhTbHxQuiAnuUVnREC9NZRE= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/fokus/fokus.cert b/server/slice/planetlab/eu/fokus/fokus.cert new file mode 100644 index 00000000..f21f6a37 --- /dev/null +++ b/server/slice/planetlab/eu/fokus/fokus.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVmb2t1czAeFw0w +ODAzMjgwMzQ1MDBaFw0xMzAzMjcwMzQ1MDBaMBAxDjAMBgNVBAMTBWZva3VzMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4zWe1voNh2K26hwAdcWCngahsrHVe ++86lgpJsEpCoUg2tH7KvvLCCT3RCa1OnK9r3X9JpaqhFpC/PYdNXHG3V9WAHr05W +75aII9ibpb5a0NO8/xW7C9ynixYBCm5KHTbHtnCn1nRp6U30GGjcJ/t0+4usAZC6 +ZWa4ieDyNwMJmwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAAZWK4Wi+/9NWt/U2jyi +HVOwUPKU33KRAy5JA+FyBTYTIzuoXDLqc2apE7uHB8PrI+LEzK1uKGSG0hoebxjw +5q5jDSmWzsyS/qclkJNWXQK59IMYPFyUE4yZS17JMHfg6DfzcDzC2XyuHRslAOmv +Izl83ITgwAz2VWOSJ0NT65i9 +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/fokus/fokus.pkey b/server/slice/planetlab/eu/fokus/fokus.pkey new file mode 100644 index 00000000..0db33790 --- /dev/null +++ b/server/slice/planetlab/eu/fokus/fokus.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQC4zWe1voNh2K26hwAdcWCngahsrHVe+86lgpJsEpCoUg2tH7Kv +vLCCT3RCa1OnK9r3X9JpaqhFpC/PYdNXHG3V9WAHr05W75aII9ibpb5a0NO8/xW7 +C9ynixYBCm5KHTbHtnCn1nRp6U30GGjcJ/t0+4usAZC6ZWa4ieDyNwMJmwIDAQAB +AoGAF8PyjmDNrIuc69vom+C0uVXnPvJ+tZRUYtyDz/ojOEI1GAp3hDoTyO5G2TPM +MjdllWJxQLVCppISw+ykrRMu3JkYf9V61oswQdwvQ3DQHjrAV14BsD7kUx4jwxHA +n0urO3WCo7/rlJTN7ltcuV3L4fqgo+VaQl9x2eg4iC73v6ECQQDec61DE7K2ngIM +Dx3yRkdSmorVXVbU0nzl0p2GvLg4cYZMfcJzkV2G9OIwSNBmZ5DXXAvfzjC5EAFP +JTcPFj7/AkEA1KwsUHIqiitHYrfiiyT/2C05gM20/qWA9QBIvQ0HArRFpM/8wgqk +XmI1OVCfqpOIk2Z3fYxbc5dvHfw8NDLRZQJAdMwzyqZLDUtFM+O0C4MO67Ys8v5B +GxkxbtH418e6yhgBNaRKNre6baOiJ0vz7/CswgaYTXhLaL+YkF+v2wIJLQJAKT+H +jMbH12qTeuMdbk1rzdrfp0q+ixFAlMRMV1Z6gJzEUTYB2QTFYoT7u7UWcrgQqj4a +eOBLMH0zkQZGCv28PQJAYnZaTY4TNIFnwU20zxDriA7GvpI5Ebh4tCvlGEtbesj+ +HEf3t46eNq22jaDD+6M7XQfFk8y6IE/pymE9Mui/sQ== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/hawh/hawh.cert b/server/slice/planetlab/eu/hawh/hawh.cert new file mode 100644 index 00000000..fb1f2bb3 --- /dev/null +++ b/server/slice/planetlab/eu/hawh/hawh.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRoYXdoMB4XDTA4 +MDMyODAzNDQ1OFoXDTEzMDMyNzAzNDQ1OFowDzENMAsGA1UEAxMEaGF3aDCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsCqNvTgOpRBblD2oT5ZruAMBsp7Pf6I0 +Z7VpW1D70RUURwkruMzxc/8ys44LvaTn3llCp5h/YX/OkS9WaKOKX3nB55sXk/lO +I2vHUnV0Ve59eOc6vrpyIr914Pyzk+S6mQsUnG5AAG7Rn82YWRdMw7pLnHl1U9Ti +uLoK6fW6NGECAwEAATANBgkqhkiG9w0BAQQFAAOBgQAfMNCHGI8csV+1T/Olou5o +bfNvssgQDSHapulR3R5/jNFHGMj5LS/GANNhhSJU5bX1ukZqvunYzm/gKPytDiVC +FXyoWFla5I33+uCebxh+2El3ZtMPeC3imOFBSk1xmtrZ9wI8FC7eoc+MirxBhXEg +dSKddBndUlpshaYqmuArJw== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/hawh/hawh.pkey b/server/slice/planetlab/eu/hawh/hawh.pkey new file mode 100644 index 00000000..f0c6cf96 --- /dev/null +++ b/server/slice/planetlab/eu/hawh/hawh.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCwKo29OA6lEFuUPahPlmu4AwGyns9/ojRntWlbUPvRFRRHCSu4 +zPFz/zKzjgu9pOfeWUKnmH9hf86RL1Zoo4pfecHnmxeT+U4ja8dSdXRV7n145zq+ +unIiv3Xg/LOT5LqZCxScbkAAbtGfzZhZF0zDukuceXVT1OK4ugrp9bo0YQIDAQAB +AoGAbh77oSeUh/w0svLj7nRB+7HtcsGxRcCYb6fIJyv1bZp2pX0HFqsN2AvTnsgR +cMfPpX84mllKbyEceEcWBa0NRl3o0xLoZeiI8bzevp50fPeJmNNLL3XIVPDvwHV2 +bqGTbNI5iywgSOO6vnEs81tqMTcOmguKAa779NG/UYGfOAECQQDXPsCnGDkCbthi +uI81PgTYSG+Kb/zUTyzzTzzbQz7EZVOWpKVCHP5CFlaNtQ2qMw1ndrDV5cTqQovP +askCyFhBAkEA0YWW34d+5wHSsDhHDVOSVOlkF2XGtfozOQjEzhD0WVqvyFiCw1up +RWX+Tn7TxPNjytf2itvBoGv/g3xrtJHUIQJBAILOFN+2vbZ3zDI6PHU7qlARvQ8h +PUF8mDGIftA0zmkltqV+ixthaTaaQqE9XP+IpOWyYIasan1+UV6MY3m4bMECQGbs +mvrfksVkLd2HJ9AyF5ZCuHqN8pl+eR8xYYxg48fpNqTSZhoVswd2XQCuaNU9Qu5o +PKJl5a4qn3A19KrVYEECQAkyU45/68JCDgpIIcv7YbIFhbOGxM4GS8e9Mirqc0te +38LN/dt3H4HU5e3MehNM93dQF9HhTGNxWM2yDPozo5Q= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/inria/inria.cert b/server/slice/planetlab/eu/inria/inria.cert new file mode 100644 index 00000000..12b598b3 --- /dev/null +++ b/server/slice/planetlab/eu/inria/inria.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVpbnJpYTAeFw0w +ODAzMjgwMzQ0NThaFw0xMzAzMjcwMzQ0NThaMBAxDjAMBgNVBAMTBWlucmlhMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQChiGOPza8ZLsueB2NCNyOTZcQZ3dT2 +mw9SKp7q65Jdk29IRyqLuyUOBQqKhosT0HpFpeSjziKevp0qqBdIpWxtFM7fHs4g +zeaZ7Ms0IwKW28ybr7LsWry6PUlOQ/AUMledSwuokHuyYN3SNr5CdNgcC2SMdcMG ++B8qLy7B8Z8teQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABBN0recPeVOv7shRlDS +pGb9Fjs0nd/zf9OFkXKuHQbZUBk78xaS6JACZMoNPHRjmBtAKOzY/Ojs25w2cRdv +tPhJNBK40B7aexvP7y+IVac3bGlXCdqaXCunYha4CFOimN367hcb9TIkhBEXTFdT +b63jWjEPtMRIcBjD5QSzihaR +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/inria/inria.pkey b/server/slice/planetlab/eu/inria/inria.pkey new file mode 100644 index 00000000..8a66a71a --- /dev/null +++ b/server/slice/planetlab/eu/inria/inria.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQChiGOPza8ZLsueB2NCNyOTZcQZ3dT2mw9SKp7q65Jdk29IRyqL +uyUOBQqKhosT0HpFpeSjziKevp0qqBdIpWxtFM7fHs4gzeaZ7Ms0IwKW28ybr7Ls +Wry6PUlOQ/AUMledSwuokHuyYN3SNr5CdNgcC2SMdcMG+B8qLy7B8Z8teQIDAQAB +AoGAM92qMjtV1J0s7gHrQhCYULSlYbTTs5cYNUbQHhgjt/4mBiwrohAmFrlRqCcJ +MwSGriRVJK+EeDo2FsNALqhHBsCSkVrxt6yUexC6PmOBs9SQW5MwbDnB93Xw3HOj +o2ztXW7t0Rd8mEASw8TvL53jBGS3SovHvz5atKabStSnvoECQQDXJxawnr1Q0vnI +Mr0M31/XqusEaanKpkE0s+fmtbpgTfu6Pwi8lx657aGfLmjL6GGd6bRyMvE1mrfj +y0sRedbxAkEAwDM/9okv8521g+vSfUnMy5usLGABK7UVs+tkuleSXw0eRXFYiKcV +QYOESFo62Ye4rdbr+gu5Lbutle16NaaPCQJAQSBl7+S9LcAPOBiTvVfIbUIhjd5m +NR+KUWe75MxRtGEmt8Po4x1jgah66fJkaoTXN7PMmVzuQumojF23RXz6IQJASw24 +VJWN3Bwh3bohIDvJdVj9CvcSffbg2rl5RCseRW/h+kwgvnxAmKy642YYxQly3K+o +xqP9VBaN2pY5uumnwQJBAK5dC9mQc+t73dfsS7eYLWqf0TrN0DS/JlI7iAtzAjKI +Ic6rWLZX7lb/SMIwcypZeKbR+K9YvyRq6x+YMeiNlU8= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/irisa/irisa.cert b/server/slice/planetlab/eu/irisa/irisa.cert new file mode 100644 index 00000000..3a3587e7 --- /dev/null +++ b/server/slice/planetlab/eu/irisa/irisa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVpcmlzYTAeFw0w +ODAzMjgwMzQ0NTlaFw0xMzAzMjcwMzQ0NTlaMBAxDjAMBgNVBAMTBWlyaXNhMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCuvGoi2iSQx2tFic1NqbO7fX3Ps986 +aXKVEA4kfAZ2ZgqjuuEtJlZNWZ6hwG50MN+Cp/WczmrA4R+/wj5O8p1BhRApOu7A +CHoCkvvf0xMyTp7NKKGvo4QhecPkfD3zavN0ge8EJpJ3jioXNNgJ4caeZdqdIuA+ ++ufksPO0X0OvaQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJ0o4nDgJByUD2YzaOHK +McusOkn/DzwJaUQXuwfUtDZ9R87Avev2hcEfX41LSmrAqGDIzhUun2kw0R5G7Jq0 +EZb29flgcm3nMsVKPa7IIFAG3ZSVpdkHOyKqaI+zWqRgxTiyWfnvFFfKLzE7mFt9 +RZjwsRN4K8wln3kUcVC3yBDz +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/irisa/irisa.pkey b/server/slice/planetlab/eu/irisa/irisa.pkey new file mode 100644 index 00000000..c406364c --- /dev/null +++ b/server/slice/planetlab/eu/irisa/irisa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQCuvGoi2iSQx2tFic1NqbO7fX3Ps986aXKVEA4kfAZ2ZgqjuuEt +JlZNWZ6hwG50MN+Cp/WczmrA4R+/wj5O8p1BhRApOu7ACHoCkvvf0xMyTp7NKKGv +o4QhecPkfD3zavN0ge8EJpJ3jioXNNgJ4caeZdqdIuA++ufksPO0X0OvaQIDAQAB +AoGBAIhwPJvMI8Mcw6k/qZxbxyi+G0/kTojIr5yvNavNYCpxERu5n3vmtHqfYNtC +a7y0MMJPrdvr3bWP03+jB44TqS+lnAvGZff10MOr7SMgLhte03kXqYsyjAj7ZMN1 +cL4MUUsMJaa4oigLxqQF9h4syzFi/ZspL4OAAixZFyEjL1AVAkEA5DPYNPiU+nJ5 +ooXtq3OGzEOwWNT1z32+cYXbnKkChnpBqv13v9rDpvmepfynuJiI8NjUsqnHEXo5 +cv9h+h2vqwJBAMQFS9LFWHwebfd0ky7gWe+/11B8AQfC1WU2bm+XfCFvEkkGdIMg +0JVjRMrwHRrZwimG9mIztqmNJMt3dHJNmTsCQQCjv/wODq5AhLJ5h+cC13RL0OqS +48W7bTyiE26CHNjeDI5gl189gUpR398StpjXokTppn4B8kgRZ4Yf2dfBdVnfAkAt +jkmL539kATJvYzFdoJhmRsCEnP0kT5yGlDrgRmV747NtM0nau8KeJV70hw9MkTU1 +r38NXZVjHEFj5BQ1CGHHAkEAgTPnp9wBiwkJeJNxelmL+/im1P4sxe8ugUvDkZQJ +lfhFzJUBxgi2RkTD4j2RkSpVNmoiTSM3Rv0FZ3XTL/T7pA== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/konstanz/konstanz.cert b/server/slice/planetlab/eu/konstanz/konstanz.cert new file mode 100644 index 00000000..cab1f63e --- /dev/null +++ b/server/slice/planetlab/eu/konstanz/konstanz.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhrb25zdGFuejAe +Fw0wODAzMjgwMzQ1MDBaFw0xMzAzMjcwMzQ1MDBaMBMxETAPBgNVBAMTCGtvbnN0 +YW56MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDy/tU7QlXCIk/OaSTBnSM7 +LWwz7UPjXtiejzCy9hrOW0l7eVY7ryhBSR9WVT/p2Nmu/gm8lmpZyRhxT9KFIlm5 +zi+SLNgBpy0FkFzD0MbQmsSGHIXdIHZtYkEWK+4II/88bemPBHygeiBeKDm+v0WV +NuqsC3LsUongfzboHalHNQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBANy9Xnj4suOG +Gn1nKfIrL/yq/3xI/7Zks0JBLAWkevk3AfsldewWbp6HF14Ouai7Clbir6XRrkUs +9KlapvsjfGTCZV/uAYegyYCG8AbHTLZRl5zAfWCW9GWJcNHo9YVA9GuGRImIo5de +QYf0q/VuVapgvGg1OEgF4ELP+CIILWfn +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/konstanz/konstanz.pkey b/server/slice/planetlab/eu/konstanz/konstanz.pkey new file mode 100644 index 00000000..a26d440c --- /dev/null +++ b/server/slice/planetlab/eu/konstanz/konstanz.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDy/tU7QlXCIk/OaSTBnSM7LWwz7UPjXtiejzCy9hrOW0l7eVY7 +ryhBSR9WVT/p2Nmu/gm8lmpZyRhxT9KFIlm5zi+SLNgBpy0FkFzD0MbQmsSGHIXd +IHZtYkEWK+4II/88bemPBHygeiBeKDm+v0WVNuqsC3LsUongfzboHalHNQIDAQAB +AoGBAJO5fKRUBZLKDT5tCV1zTFHToW5IFfeKV6K9ZlvF5jIBqUCZWWVbbNuTuqtf +lEV0AZKy+fRedTU0Xdm1L0Skx2pQteU7LXoWW03UMvGN16o9aHEJL4cIxI1AP0os +V7JTuVrEa7Sw+lkvXCtxTiYnbApwPFgSg1tfWPX/vBKPrbLZAkEA/VIregPxrCrI +eRzU9JFtrXbmu7od/fBIFY32oXLk41Dw/pi3h0oaE0lc1ZzuOthCHGsPVBP9TlQr +U/fzaSFHzwJBAPWQtUy8xMqxnJ0cdCSqiI9Y0A8mwRlgfiubAzHMeo01i7c9C2BD +fKmntY7YwQJZs9EJ29Ikg8xLQzrIMznKvbsCQBSQPwdAmrWnI27xcDgKNiUGqeRD +T3v1rWRSidrBQONTBr0kGIHa+hLmuap9erk8JOG5rxzcIovhOUMvtYqrMPECQQCJ +zWgAJRpmCJ+zhukiPlSd5J/1MLFB9WU4QSfcxTusjHTYIjiFD7ogVo3LGJXPJNmE +n/ysg3M2rLGQhhJBByXLAkEA8bU+Z4YCjw/b7XhX3WIEsX160YFEv02dZ4ux7+Ov +v6FlGvTRkeX1ee/qpeUYnciXhEZW8Kv3CRE5bxs4pEFmdA== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/lisbon/lisbon.cert b/server/slice/planetlab/eu/lisbon/lisbon.cert new file mode 100644 index 00000000..60c19603 --- /dev/null +++ b/server/slice/planetlab/eu/lisbon/lisbon.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZsaXNib24wHhcN +MDgwMzI4MDM0NDU5WhcNMTMwMzI3MDM0NDU5WjARMQ8wDQYDVQQDEwZsaXNib24w +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMqgtDwJdJC/diRIdz6jRP5WvLle +tm/ccw3pd56nzTEfJI9pcUh78APIlJcQOtSRTHcxmrWeBSy3NUlv1J43AF/S7/jB +h1NQT4uzyS1DyV/4VyxTThPjtb+QX89uWBXytXiJmp8HRHFdH4kOvTlq+oMTMELp +sbD7iLMqxgvLQoFJAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEADnB7CGnaWOWD/eKD +tl0YdqW53ZfICn0SRWITwFMoPr7mVRXlJojepC3i8weCL1ZHRo4FiOy0qdcIKAYq +GCAjjfcvm8wqU9oL3K/YKWvayRMPZIad0z4mp0j9G5j6+jYXtEhGr2TKyzUB9ADP +CXJmzdFaWVS5FL1c7Drv2WvatfU= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/lisbon/lisbon.pkey b/server/slice/planetlab/eu/lisbon/lisbon.pkey new file mode 100644 index 00000000..1c536efa --- /dev/null +++ b/server/slice/planetlab/eu/lisbon/lisbon.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDKoLQ8CXSQv3YkSHc+o0T+Vry5XrZv3HMN6Xeep80xHySPaXFI +e/ADyJSXEDrUkUx3MZq1ngUstzVJb9SeNwBf0u/4wYdTUE+Ls8ktQ8lf+FcsU04T +47W/kF/PblgV8rV4iZqfB0RxXR+JDr05avqDEzBC6bGw+4izKsYLy0KBSQIDAQAB +AoGAXEjEzXMg+6u3it7WMFj72zp1yZcxT9D/NZ7XNBMIiQ69//Lt/S01KwP3aLWj +lZx3TvHwnDbT9IGca03bcBNsv2g947tAXlYTfkCHbUJxxmjCF1MTebjOc84wQ8gW +jWdtjzuUDkhTU8MFDRxTplAPubLZMUutnGvDSTcg5tOjwAECQQDnc39FaRL/Mk6Q +LqShhEdEzTQd03kzq/YA0iZ/J4BQR3vWW2hSuM9khXkAmfVzTvmXmwEml4LY0bU7 +SKGP/EBJAkEA4B6TetkTC3R6ptBqOL/XFZWiH0rgS2EplLuu5pfNTEsS6+Tmu2Sf +7UYCUg81HWy9ZtYy9+BE1cz5dHI/lUY5AQJALOeImsPfDqoI+gpCoJ+UYDHb2amM +y0yiptge5e6ZA3pK+XS0kdAPVLZcmpREPcHlxNcq6vzcQwq0ubLGvbO4GQJAcZON +MahoWlnA/mCINBIkMbAO5MTRPeITbGhgjkNHqu4wvJLXyweHdHsSGfvS8wJ0SXUr +hyqEN8UUdcqgJkncAQJAMavw8xmidrL3YuljFLaMs8FE7AIVtwExaS3I4B8C8RUc +Amo1MxsjIV0zUeh2FcO0HDs0oAEPiqLbLou8AVuTDw== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/moscowstate/moscowstate.cert b/server/slice/planetlab/eu/moscowstate/moscowstate.cert new file mode 100644 index 00000000..e8b6534f --- /dev/null +++ b/server/slice/planetlab/eu/moscowstate/moscowstate.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBmzCCAQQCAQAwDQYJKoZIhvcNAQEEBQAwFjEUMBIGA1UEAxMLbW9zY293c3Rh +dGUwHhcNMDgwMzI4MDM0NDU4WhcNMTMwMzI3MDM0NDU4WjAWMRQwEgYDVQQDEwtt +b3Njb3dzdGF0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtzP7wqSuKiJA +jHUxV52cJk2frihdDbj7LTm51yek0CuY75CkieeQtcLEs8VYIPVAYysW0V14Lhnx +WDByrJSdS5WexYbSFtXSfLec1I/QEZk6FpxRm9sKp5Zv/kH2InMp5J2ntMVLLgTU +Z8ittU7VyqBTt+4XzF8oMRkdZ28yFO8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQAq +UBthDf+O4NDOq6VcATWe7pXsQ4BaOxjw/Ygz1ADiSkXaEs6UFoN1PZl16607ghTW ++o6X2uu2heKOpYpMw2sLEy7hDLauTEj4x6+O6EZQTKM6V95Znz4E0nchgONu/IP0 +bs064lzjY+PPYGBkxSkw2jAGl1V/41HqWOSjMqbbHw== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/moscowstate/moscowstate.pkey b/server/slice/planetlab/eu/moscowstate/moscowstate.pkey new file mode 100644 index 00000000..47b1c97a --- /dev/null +++ b/server/slice/planetlab/eu/moscowstate/moscowstate.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC3M/vCpK4qIkCMdTFXnZwmTZ+uKF0NuPstObnXJ6TQK5jvkKSJ +55C1wsSzxVgg9UBjKxbRXXguGfFYMHKslJ1LlZ7FhtIW1dJ8t5zUj9ARmToWnFGb +2wqnlm/+QfYicynknae0xUsuBNRnyK21TtXKoFO37hfMXygxGR1nbzIU7wIDAQAB +AoGAKhIr/JTo0hAvlpHLFP3CwCEPTGVEiUQzmj0pajlWZd+9LTagMnMVDkh993KY +PGlVsfBROx8l3CBlBgWKMAuo2zCc+jiz0XIXKaA4SJN+GDpGbc12FRKwYIv61714 +/jbgRd9vccBUD7ZP6QMRJ0T8CCbxnilZKkLvAjUUy4swd1ECQQDxyRbYnsyW5NvU +f9w8g6Y01Y/2lawtl3Z4lpzXVA/ORLQlkuGjAwKHV5hPiYjjrjqloWJBHkeDSSAU ++EXnHOzjAkEAwfk4DvPOajD1b+xXjQ2OMDHnKfAC/Nyh9GOkbjFWCjLGrAqZPGDe +H1xd7pv8agJ+0Q9k990v4Bosd//4eENhhQJBANSaaK9juyx34uEQ6PyBGnXc0DEY +XQTd6TuR3CnvbdKHUQy1AhkPvXp6yKAvpKHngwQ/SyFNWb6UX1RxFy5ondcCQDpe +jUDqmr2Xt/OTEhFu98+G5MHY6H1AwzdwWIWUMQjmmKQimFPz7kNPnzBzHfSkhZbR +ZBe2JnbwSVte2l0OIaUCQQDPhp7VOGkIkKyubA7CVSMwXkGY3ZQPsrqiJoMT9LCg +DXk0b+Eu3WZPsyctdB6xnKe1SmohViIMtwtcYdjdkfqr +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/msuchem/msuchem.cert b/server/slice/planetlab/eu/msuchem/msuchem.cert new file mode 100644 index 00000000..28e231d3 --- /dev/null +++ b/server/slice/planetlab/eu/msuchem/msuchem.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdtc3VjaGVtMB4X +DTA4MDMyODAzNDQ1OFoXDTEzMDMyNzAzNDQ1OFowEjEQMA4GA1UEAxMHbXN1Y2hl +bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0gjX8EuAuU5NVl/ST8GBO3gy +TFHFk4rZVuzlymbxWgqna2XCjhzThGUVGK68UMKnJ7eWjFYvlKp9vSipOPIEnsM/ +bTW2G0jcqbjOMlEn6wtbrxcbWEp+qbwnTVV9Y46XL1CGIbznEeHF4Eh1zbgwnTeS +kSjK/qerFEJ95UPu3ucCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBpI1LHBaqPVhhQ +MsSeapeTJa9wkjpWVxAWCh2GyWpY7zGl0KYyVWHFzf1uYn6x1JTHXcmUsx9TtBWV +b2kILPkkn70ZsCv60xpqm2wZamNvY34gqas+akgnNng3eWvrORicpJeyq+EFxNyZ +tYTjSsNijaEegYC9nqub+bgudA1UiQ== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/msuchem/msuchem.pkey b/server/slice/planetlab/eu/msuchem/msuchem.pkey new file mode 100644 index 00000000..aebd1e58 --- /dev/null +++ b/server/slice/planetlab/eu/msuchem/msuchem.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDSCNfwS4C5Tk1WX9JPwYE7eDJMUcWTitlW7OXKZvFaCqdrZcKO +HNOEZRUYrrxQwqcnt5aMVi+Uqn29KKk48gSewz9tNbYbSNypuM4yUSfrC1uvFxtY +Sn6pvCdNVX1jjpcvUIYhvOcR4cXgSHXNuDCdN5KRKMr+p6sUQn3lQ+7e5wIDAQAB +AoGAZbsQ1HvNknOhs+dfl2/TZ3mVay/kMc177cV6m6l21zT32GYGcQz3SlYnfLgN +0FQn4G3kxn5sN2bI1lkedc2LfHXUTbQJPeOZdJkm+XuXReFfsq6DbR/PoUBPGti9 +v3yQQIwq9ZxExxqm5wfzXA6Y1YdPBu5YD7YJp0xHxEcIHqkCQQDqDSBJklUbPfF7 +qI72Ug+g2ty3ahoWHAZBVLqBlSqYpoOIpaFdl/5tbAbDAEnbWKCzCqTBbDDPlDqk +gOJyTIrtAkEA5bsls2FdigHZqZTQXBhvoAph0fYSFqLn/6Fcbp/8CXNuq62t1vJW +EOd8Waf33d5pustXzrI70pP9B7NoTKzSowJAXvMiRRaLVjjj7XGtRbp2wp/naLUv +jgaidwCDhSxZkoIC3H2tIAYYXpWzjIpibAzhbKEFw747cwrEW5Y5x3rL5QJAeiiO +/pjapYUgWgWQ2jgAO2jp5TzlF3ZeyVbjkMuvuNLR2aaMFw1b6Lc/L2ma6zbWoAZ6 +1aV/HBWnag3je0o24wJALIOKxRuVL9KhCA048lsBgerb19ytew4Jby4enARC5GJg ++xgPNTwOLKNvaojgsg6FNBUGfvHUxWOYlx9fN4a+GQ== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/tcd/tcd.cert b/server/slice/planetlab/eu/tcd/tcd.cert new file mode 100644 index 00000000..0d5bdabc --- /dev/null +++ b/server/slice/planetlab/eu/tcd/tcd.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN0Y2QwHhcNMDgw +MzI4MDM0NDU5WhcNMTMwMzI3MDM0NDU5WjAOMQwwCgYDVQQDEwN0Y2QwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAO6ZhHilEnbdr2oRdnXA649Ddej2EWTdqpJh +LvUs0cwpJ7i+4KNGmQuhdHFIUPyD+K+wd07/F5agKzTjSOL83nV/xkal0vYd7j6f +BVxqT92jA2nzSet3IGJjc9UI5jvlev39FthcPewYnYBDWNdxYj9mVRyVyM2QGBVi +qD6+WROnAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA0hBff/5C2kXj46OuEMHEnBV1 +kseS+eQPVoKXRddNtxZyBClajLnX3UR+67R6MbB2830Quy9YyU6h4bclaWm7rwQS +8XIs1MKldsHCmBYnJcsWU4q51C3CGc1fWQNwWm0HhBS5W4Z1ilXsNz2r++H3G4Wp +W/pqUIMc+WijLpZeS+M= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/tcd/tcd.pkey b/server/slice/planetlab/eu/tcd/tcd.pkey new file mode 100644 index 00000000..12e4df0b --- /dev/null +++ b/server/slice/planetlab/eu/tcd/tcd.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDumYR4pRJ23a9qEXZ1wOuPQ3Xo9hFk3aqSYS71LNHMKSe4vuCj +RpkLoXRxSFD8g/ivsHdO/xeWoCs040ji/N51f8ZGpdL2He4+nwVcak/dowNp80nr +dyBiY3PVCOY75Xr9/RbYXD3sGJ2AQ1jXcWI/ZlUclcjNkBgVYqg+vlkTpwIDAQAB +AoGAB0gIEuZ2ucnqIIKH6vAIQEb+wi1AOqPJIM52cGT9wg0/eRPaJyFwajpzI0Hh +ttMQM8xe17pRLfeVWffVsZel8kDtTE1WaqvR0PzjtaWmYAYN16US9AkKRk/uofwq +QVowvQ++6kSqQlJEtT7KWZuVIEIZz2Jd09VuvmUWRp2zeoECQQD846Gqi/4zSvz3 +Z+U7vV5W2Kqv1MSRynjAhcO61i6xzhXNbj1VCmbkXL/Xi/9zjtQyuK4MS7ZKDk9c +4gAFb1aVAkEA8YjjG7J8wBROG7/09bzHb0GR1Y6cJQo4M7R6azdIBloPCUL4xyI9 +9/YP2GVeZm+ZYW0jQB4W2zZW8LJQpTBeSwJBAPrCWPc886Y28Fn/Cp5PK3GgTLgn +mXcbNttoiGoGoayrtpDKhESEGPzOP2hjqL0UXrOgzuzgUnRidi2a5/x7p3UCQQDq +jAxGhDACcnVbGy/sRdLBJkJQyHi2u1LSWusaHIezq1a4nrFo5saYePjwIZfnD245 +nrrBc7asTvtkJzSLBQo7AkAfp3LCRZ0//8U4sz/YX5RQCVZfn8EkHu0U9c8MTPlX +fuLorzCqabl7UVYw6XPMVga8wszZKFNrd4RKMzIKxy/e +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/univie/univie.cert b/server/slice/planetlab/eu/univie/univie.cert new file mode 100644 index 00000000..c9b90865 --- /dev/null +++ b/server/slice/planetlab/eu/univie/univie.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ1bml2aWUwHhcN +MDgwMzI4MDM0NDU5WhcNMTMwMzI3MDM0NDU5WjARMQ8wDQYDVQQDEwZ1bml2aWUw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOvbZE9P7fc22RA3ONSpj+8dRPf9 +JbQVcQ8oGzEGAOyr/d0zVM7CpXnDBbEb0q2myq+WI718ODl/LFBv5gMqNCVZ1svR +pFw3HBT0P6haQmIAQijoXIRhrfEVryGkXbMCEqeXkZUY/wDzMh+NTldBkVmYqQNP +Wmrw57UEZlsSbFV7AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAS2nrGFt05PM+b/On +WGgeN5fhSdaThYlV27sMAPdMitwQ24K2JlRsGY5XJHmUTJWkUD5Sh0pocz7HKBhS +ZRLhaJmoJFk8uJyay4pOG/kIyo0Lbh37OeDdlqWw9A5Ojs+wDAapeWli9ZMP+0Ui +DMLSo54iVJu2eBBLi68IPKEgqrI= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/univie/univie.pkey b/server/slice/planetlab/eu/univie/univie.pkey new file mode 100644 index 00000000..aad72477 --- /dev/null +++ b/server/slice/planetlab/eu/univie/univie.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDr22RPT+33NtkQNzjUqY/vHUT3/SW0FXEPKBsxBgDsq/3dM1TO +wqV5wwWxG9KtpsqvliO9fDg5fyxQb+YDKjQlWdbL0aRcNxwU9D+oWkJiAEIo6FyE +Ya3xFa8hpF2zAhKnl5GVGP8A8zIfjU5XQZFZmKkDT1pq8Oe1BGZbEmxVewIDAQAB +AoGAToI17qylgo/QSzSGh0t17NsqVP3/6eTlQG1SN8xOzHknxNTMWxKxsEk5gM3J +ICKP/0iT1wQdVw48+v10bANFXbHmLWQARTx3M6JHBhh8EI6P0GcEppJPy6yVQhlX +whgIYBlkYZbR6DHHG4zdB/slYx17XBSgVBzPcf/r9CuwulkCQQD2ygaU5E327UPt +CjHwYooYvxMGRJmSbnBklSeKsrT6LjzyMqGzv72dVDDwbspIel4XWxzCju3LmVBA +N07OJxk3AkEA9Kjp3zzU5JXxY0Y3P+VwxPixzATpSNGdrER2J/aAj+tcuB4sbOqA +KW87RzZbS+ZQa+HcdT/kTo9icEFafyV33QJADooGaz0sDrEZwFxKZuQXSK/xGfxu +o77X5kUXSEeQ+/A/bPFor2NLc3pjS7brOevjoTKf9iJfhhApNy9K+EA7bwJAFtq4 +jhv2nyvKksV6X8OlFyFMKozC5gR+wBrdFrqWI9uOm7xl1f7J3hT/6pUPTjXDiXBd +0a4YO6Z1QZs5QutTGQJBAJ0tkHhzyJQFbp5XuuU23ztSIgcB04IPVx1rjNW0mTU5 +CMHHdspxDDhzHrLn+7L41zOug51+wv0ZbprFpOy1Yo4= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/unizh/unizh.cert b/server/slice/planetlab/eu/unizh/unizh.cert new file mode 100644 index 00000000..8443e6af --- /dev/null +++ b/server/slice/planetlab/eu/unizh/unizh.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwV1bml6aDAeFw0w +ODAzMjgwMzQ0NThaFw0xMzAzMjcwMzQ0NThaMBAxDjAMBgNVBAMTBXVuaXpoMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIZZjIN1u1BTi+4SD4Z6iHn3fPz9mY +yzK5D6jfUAUrrwo6jmbRuCxhZFJ7mhvgt/H+jUJTWrtD+1lxNba29ICnpk5hrBNg +t+45LqXqOhhNmWM6q//eaXcEpZu3nFr4hcOxnWSC9vt1szTj1oAy6sJv1nExhH2/ +3bSdTxxUqTyT9wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAAVVwnB854XwKk9Tg+qW +9L80d5VKxFFBJmS5oj986e4x6tvdRCYj+pXYYx+UKpGwbfc6mh814Y3sPXPgYjwG +r2/W2tQ0OaHkeTSri2iQh46Ls30BleN1eWD3dyoJPxkoAJ0/9XeGtOZ+olNvfkbr +2LmKN7rd3sribMHXYIl2iuWO +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/unizh/unizh.pkey b/server/slice/planetlab/eu/unizh/unizh.pkey new file mode 100644 index 00000000..162d1f57 --- /dev/null +++ b/server/slice/planetlab/eu/unizh/unizh.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDIZZjIN1u1BTi+4SD4Z6iHn3fPz9mYyzK5D6jfUAUrrwo6jmbR +uCxhZFJ7mhvgt/H+jUJTWrtD+1lxNba29ICnpk5hrBNgt+45LqXqOhhNmWM6q//e +aXcEpZu3nFr4hcOxnWSC9vt1szTj1oAy6sJv1nExhH2/3bSdTxxUqTyT9wIDAQAB +AoGAW0fL3Ac7Qq1qN6gceIne/kfpL0Oh/jMwm5NCfNXaRReqNRoAQ678qDAmUh7U +a/vdwvFdMNK3UjP/fc3VuGiO4P/soff0l3wmC7MVBCJIUJbClNc1uEUj0ZZyRpU8 +6s5P4Tg+8AtYV16EIx45Kfm5lu60bIF5GlQnvSdNl68kqkECQQDwiP+eCFB3t3uC +BFWi30Hk3ruui7ryq+JLHM0KYvgbBTyNAL6aPsPsAm6g6ZjEOvuUB9zb14BkocNx +051uFjSJAkEA1Uf05ilkSSdXImK+r5us3dMwhlVOE904+UiSfEJwFBKbAGdDbwRd +D4LZWkFbzEhmgGbVWIE8t8uX6KYhW1tkfwJBAI59KafNVxXEPMcFmFFWnitdgqLg +pYtyJSjH0/MOM9mV3YvN4BtxiRB7VFvAZb4BDt1fVwdofueeKDB64my/fLkCQGcT +TJdDn9T+70yN/mwuR2A5ZbU2WvKcsqE/YpQtI69/wmtyfJOVv0f0zAijl7LltqwN +hsQsSWTmPzdPusVFKQ8CQHEmO/yxBQK7NTPS7M5uIMSwsKFOuFzMS466kK8RYASQ +ISstxVyI3QdAwGkg2jk10+hmAp+SLJIVog53SGCpKD8= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/eu/upb/upb.cert b/server/slice/planetlab/eu/upb/upb.cert new file mode 100644 index 00000000..2b2a3c4b --- /dev/null +++ b/server/slice/planetlab/eu/upb/upb.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1cGIwHhcNMDgw +MzI4MDM0NDU5WhcNMTMwMzI3MDM0NDU5WjAOMQwwCgYDVQQDEwN1cGIwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBALojSE8A1PqbRYVSIs03YY6iZNSJDxRjvbey +Rd1xitTxHqRFbB4M3HKprI7DpcQU8MHRfxcnNrUQV7uTczU1TnBi2LbYIhoJXwlP +mOTvrjv14QuTdYx5AI9gCZ1kXbLjWTsKVdHwOtXPb1coHt79P8Ca/G5VTVeaXJJS +4F17nGGPAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAlDysbeM8dckd2vSBzRTUioai +2pR3rCiyhJ+Ym1pFY95yjAnpi3a3aGPYYPBBiPdCHc+6lnPIrudVMToXgjVIc9UD +6bnRwlAMyIw7b5YOcD16/xT3rHP28MzITs1a4nXWvbUQuLwf7sg2NiKGihSgofJG +9c8znI9ldw7MPGFWOlQ= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/eu/upb/upb.pkey b/server/slice/planetlab/eu/upb/upb.pkey new file mode 100644 index 00000000..f78f05fb --- /dev/null +++ b/server/slice/planetlab/eu/upb/upb.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC6I0hPANT6m0WFUiLNN2GOomTUiQ8UY723skXdcYrU8R6kRWwe +DNxyqayOw6XEFPDB0X8XJza1EFe7k3M1NU5wYti22CIaCV8JT5jk76479eELk3WM +eQCPYAmdZF2y41k7ClXR8DrVz29XKB7e/T/AmvxuVU1XmlySUuBde5xhjwIDAQAB +AoGAKUbLsSFJGW23Q/JL32AplRyz6WGfY3Ee0A6LaajVFZWGqvzuFdfaRt8TcfE2 +4D2YihJv8W1zt0Exg1oWUTVJ+EbWDtYeHJFjS1JbXXQ8XwqFU1zudmkGLF4My4Ze +GTJWjNpMqccYSQu1oiW2/HcBudHKJDCpkTr9eCqu9TZCz3kCQQDxS6Kb6JnSz2t4 +2OvE+P/kazx8mGCd/PNnOMFC1iQSgPThvDFQncMPEZqW7vVHI+8i3Jg2hieF6Szm +Y9z/ykJ9AkEAxXsnFI5tvmSxl23fa6zqWo5rVKAhCAKmshIhmhyEyP4yKwodseEZ +qBklXulO+wh63UnZRttOXjXdKx1UVh/F+wJBANOEUsnKrzTdwD8SIDLtdxtbaY1q +4Z78gr2kQb1+C+bwhjlvB+e8M6X873+Jfxdah6EOsJtzJCg9y682MR9ExN0CQAW+ +SSqt4b8xyoBu75qAEujDT5fMeGl1Okffgx6qSapWyjq6NpbfxxE+efnCq0tducUJ +ysnmwua2hlIkrjk6/1UCQFqB6e21EZ+wcLD7nWZ3bciSQJXo/IoYrZhETSdZgf5X +GONX5XYvUzXkYdUFb7qrYeXleiLa/pse+uFQaMnEbjI= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/fing/fing.cert b/server/slice/planetlab/fing/fing.cert new file mode 100644 index 00000000..5eb0f636 --- /dev/null +++ b/server/slice/planetlab/fing/fing.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRmaW5nMB4XDTA4 +MDMyODAzNDUwMVoXDTEzMDMyNzAzNDUwMVowDzENMAsGA1UEAxMEZmluZzCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu6PNOmV8HdqW1brodQvKu3m6230IE79/ +8/SdotU5ip5hIvuULLzyr6iyxprBUpcqRrh4SAKZqRMW4f2NynUsaZD/z85M92C3 +JtHZ1/3N6d6XqRvcpTPvmGfk3Mv59WurhxvjPdlf1oBC2ynIZMr0BElefbX9paxY +pR1Lp/4TpD8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQBH/GMSgx8MtwXXwfsxET6n +yINs3yw18V4dioTo/YcaxyW47ZkkqFAK3UnawmVDyPmjWcGMFTvIQeP1e4NYXrOF +rZSUuVGhQ6icX+MgyOxvvVn3mTP6QibWWhpfHFEycJgR+UIjWg7SVxa46jDYLn2X +fuGHOf3mrtmIH3/lyTaJ2A== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/fing/fing.pkey b/server/slice/planetlab/fing/fing.pkey new file mode 100644 index 00000000..d50a13c6 --- /dev/null +++ b/server/slice/planetlab/fing/fing.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC7o806ZXwd2pbVuuh1C8q7ebrbfQgTv3/z9J2i1TmKnmEi+5Qs +vPKvqLLGmsFSlypGuHhIApmpExbh/Y3KdSxpkP/Pzkz3YLcm0dnX/c3p3pepG9yl +M++YZ+Tcy/n1a6uHG+M92V/WgELbKchkyvQESV59tf2lrFilHUun/hOkPwIDAQAB +AoGACG6O7V3cGvdUqdwRUBksjgolVHGk6EZFuK+4WbXdNRZy5QCLIwuGmFArYHNZ +1p1GYBEwDoRXZVqfP56GPZ/QVAZIYFkCw3kPFCb//qnVi4h1Rnstq9/fRpKlhHFh +ng5vhIA0kT5AOn+bdf2eTAmTOQcKsgKlL/VrQlt4f5LkLPECQQD0bO8p20NGtW7U +zDrcUERAnZ2eRL9k3R+g5/B470ghvOtBiYDB6w1l2SJLGhl5nKsUUrCPqI9wA6vS +THOHVlypAkEAxIZ6pLH8ybmjSwOPPMSMJa+6QueEqgc4MoJC6ZgRr1NzG7a2Jzxk +SDofAI6uxfmAeafUrspixAGLF883pXDipwJAE7Mb64GygGZrEleLfuoxNgv+Ah2E +V3rC69MFvJl8dMunIlcUu4xYPhcr/mWSHA0WdMLdXBa3yM1i8cYboZLCUQJBAJw6 +l9bDk8S9qb1heAYD7bGr7/Nt3z3XfWpRuWW/uRdazKAUcNviG4p7gdfMlc3WWbbc +n6vQQhG1dGCaH4+KnPMCQQDvUdeGhJQsjO0TW1DqPvQueXaAaksNU95sUf1FukLz +lw6HAl1xCbmHA5Wjlj078+yOLhSpkYGhXNBzb6cjgOQN +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/haifa/haifa.cert b/server/slice/planetlab/haifa/haifa.cert new file mode 100644 index 00000000..11a81a82 --- /dev/null +++ b/server/slice/planetlab/haifa/haifa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVoYWlmYTAeFw0w +ODAzMjgwMzQ1MDFaFw0xMzAzMjcwMzQ1MDFaMBAxDjAMBgNVBAMTBWhhaWZhMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/jqO9ZClR4gL/rO0XZ6fFU5ap3a+W +Ev/r8rQ5vi8l505tdfaqsyfE8hjx0oyefrvGeeS/v7yVpQwzDejJxQ/0+5ZV57JF +Q73SpuoD0+lwHSpTRcdX/iFBW4to6VqK7EdRZIyCd7Kft50bYenhjVgAWBPvsMTZ +Zs7auQiO0+3+PQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBADfvl0z0Xx41nxTtQCKD +rmcS06V04dZu7zVCkIiRor1X+et9/1RwKkwZ0Qrd6+GSluYFjnwUe9MUNAXkNKPB +nw5JK+PvoTVlRnsPOR+zMCbTG1Oc8fa7A0EQmOsLz7XkJh3+HVzi6UHKfqw5OTG/ +ZkbmNfGKozeGldv9me/AmFzP +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/haifa/haifa.pkey b/server/slice/planetlab/haifa/haifa.pkey new file mode 100644 index 00000000..2962e599 --- /dev/null +++ b/server/slice/planetlab/haifa/haifa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC/jqO9ZClR4gL/rO0XZ6fFU5ap3a+WEv/r8rQ5vi8l505tdfaq +syfE8hjx0oyefrvGeeS/v7yVpQwzDejJxQ/0+5ZV57JFQ73SpuoD0+lwHSpTRcdX +/iFBW4to6VqK7EdRZIyCd7Kft50bYenhjVgAWBPvsMTZZs7auQiO0+3+PQIDAQAB +AoGAZI8Y3f+KwXWIZXf+Lt83b5tl6F58IqhuuQp8GiQA1EENJuFaUFokcns1JR2G +vF2Dbbnnn9GjylsOgG642dMdgHFRS8bCaFJdyaFvElpTZoxdSMOAVc+FXpoq2lAp +kfV8u+NBuK9wYZ2mQ5fYDng/f5t7i89XSiCdwnEVb7ya0gECQQDiuWDTuJDViKJ7 +LvIEJMgfN40e3oJ3BYEXeQDlWG1VnT+mjpIU/xS+rfrGAKHaslOc+C4jp7REbXZY +Y5he7B7dAkEA2ErHPbfQbsHxKpCRdXsh925nvBuw4640K5hXNNJymfpVILyjI67c +sG4Pvza8rK4CfQ6LzkYef2TKzdHPmZF24QJAek56t3xHVYoB7OXkVOvqsTxseoya +YM6tVxZFr3NGd/r+TUF3+K+qZzq/n3TT24B7rqALc9ySWJ+cSg5gMkS6WQJASnOb +F7yRK77oo+01lMn4zDId1Rt3DThmzubWheE2/5ey+9zTDzJe1wBbvUc7NPmE88Ux +DKUIVHO+d5CUNFllIQJBAI4uhZds5oIaiML4iAhJMI0VQenFXv/Ec0MpRKzk6viH +K1WQPtuGcBY86SfabXf5CJW9CwJkV/nbpXLidJCX0Mk= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/icavite/icavite.cert b/server/slice/planetlab/icavite/icavite.cert new file mode 100644 index 00000000..6356558c --- /dev/null +++ b/server/slice/planetlab/icavite/icavite.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdpY2F2aXRlMB4X +DTA4MDMyODAzNDUwMloXDTEzMDMyNzAzNDUwMlowEjEQMA4GA1UEAxMHaWNhdml0 +ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwGXkSiG9iU9wBaw0jtYSUrNy +EGjMYb2N2H7EjZtkgMWzgntjVQB1qg4Sf0hU/N5kfZlAU6U5AyS6yvLibS+Geaoc +frrTXYpJvBibfU0cfrijItUosDKBzhvl1Nby9CmoHBKrMW0OWyqjVCPNJCdoQd4q +LRLzps2QWkWXO7y8k30CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCItGCr8qo1voWt +loYa+DkNsmsdz9VfzjyiLAKSAd/U603+jM1RY30e8gSeAFsFv2Fc5Ll/edHvSYQD +3s1ZOCVKCyBKa2XT90EPQwRPYRnqTHlcqRuaDb8dPRC1hme+yqEpgla0bIGPvjGD +p3RXbbVhvxXa9GfcEumqFkZWnpAg9A== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/icavite/icavite.pkey b/server/slice/planetlab/icavite/icavite.pkey new file mode 100644 index 00000000..6e7ccacc --- /dev/null +++ b/server/slice/planetlab/icavite/icavite.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDAZeRKIb2JT3AFrDSO1hJSs3IQaMxhvY3YfsSNm2SAxbOCe2NV +AHWqDhJ/SFT83mR9mUBTpTkDJLrK8uJtL4Z5qhx+utNdikm8GJt9TRx+uKMi1Siw +MoHOG+XU1vL0KagcEqsxbQ5bKqNUI80kJ2hB3iotEvOmzZBaRZc7vLyTfQIDAQAB +AoGBALVwYXW3k/Klw1LWL0p0fxsWtv7alcOm6tm70shoPsNhrgPjMK28nTodwzvd +jqhZYhNALvWy3q0kOjOiEf49z2XSaItCq0/wujBe7z9kkJbAnHgEudDPW4GFHvTv +qRQTjKFDNNl8SNS16/Sg3Ti0ESnA8Kf5SXJzmVgNGjxKBNdRAkEA4jlshJnrzsnu +RnTv0cxnweoI1pq0Yjfritalm8cOhkL6bl4QsZTbFQewNtLx4lnXz2x0CPJsrJHg +4zD1JnjIjwJBANm4stSGnAxYQBsWNNuGuAmuPx6S7mej/1wv7pHqc9fZF03BViT9 +ZelND9l8L7Z+PoG/7DHQIrrVXoAH9kdC8TMCQQCRvokpTLjc+r9l6QRwV44pIgwb +poO8G2bGhc8f8zhqS1BoNnXu0oXqoI9oYrKvL06YNbjz4qsc6sbF1864wGwFAkEA +maaydjAlcsTZQQRz+zVhLlvNadtR6syfS8T7/fhTFtK7koFONT6rrHFZLShqV8VS +gakbnLABwo8QaRS1ZudEZwJAFiEA027lNDD/iBtmbLJciIG/Kd/9ETOcNx6DR9nL +7Gb7I499XIVHrGAddmibCxCgzp9q9dlfrofG48GfT3G1tA== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/ihaifa/ihaifa.cert b/server/slice/planetlab/ihaifa/ihaifa.cert new file mode 100644 index 00000000..26824acb --- /dev/null +++ b/server/slice/planetlab/ihaifa/ihaifa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZpaGFpZmEwHhcN +MDgwMzI4MDM0NTAyWhcNMTMwMzI3MDM0NTAyWjARMQ8wDQYDVQQDEwZpaGFpZmEw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJuzYT/8+aKR7NmtIz62ikp72h95 +xsaFNaQqY15P5XelRfLVU6Eb04kZsqTgGvdDycgg7aTfvIhKWjV6NFDF8KT4xixT +volqyixr49Wx1OJSVBQVTNmNjJ4+78NWahXTNVRswcHy6Wgb+I4MJGyw1tDxVrKr +Rg8MCxf2MQ2ki1LZAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAm6Zr32vuFVtY1TtG +aWGL64GSx9zROdG9+um1SUk2DIUA/zfK+/Xfneto/YGpJEnMVg5lWD84BFgHP8FK +4nfuKWF7dn8Gmwk6xQ9xsd8jEbvv746QqXIhOiS3r2xec5eIUD/u8b4lX10ANkzM +wOHTt01SerhCI2WQGPZUIQFfnlE= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/ihaifa/ihaifa.pkey b/server/slice/planetlab/ihaifa/ihaifa.pkey new file mode 100644 index 00000000..12cb468e --- /dev/null +++ b/server/slice/planetlab/ihaifa/ihaifa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCbs2E//PmikezZrSM+topKe9ofecbGhTWkKmNeT+V3pUXy1VOh +G9OJGbKk4Br3Q8nIIO2k37yISlo1ejRQxfCk+MYsU76Jasosa+PVsdTiUlQUFUzZ +jYyePu/DVmoV0zVUbMHB8uloG/iODCRssNbQ8Vayq0YPDAsX9jENpItS2QIDAQAB +AoGAU6pAR7IYMlNXgmCW38wW449J1kAJoANUn7JnUvZ7x573x1T6a0gYk0NLy2zh +EJ1MgE2xZTcUh+fsMXBJTF4QwL6F5pSEIDXO3vlpmeX6xgFITKsDq2f1U02ar7ao +dJqUglMGrvsd5N7KWsi6dA7bI5DyPr7u+RTwjmYwiGSY1QECQQDNh3u0FOY4ZZLA +FLsoujSC4TdLAYpNrKG5t1XoMUABn/aKEKGcwLzLyaLSriER/ZYOHheuWJ7TLxB7 +X6ADBokdAkEAwe9x+Qcd8uTbNc67DCcJfe1aQ/Pp27ne9MbtepueFXFVOUcnEcp1 +IvGrdrhEV3CIYQbxZfkC3I4TpLKdvw1/7QJAScXr3UPzLyMmfdPzKjdMSf5VPpMa +9a6VjngEWgfzlaG5eO1nVUDJg8yoqT7fl/mSNxcOIQKmX99w5xf3854Q8QJAOwYP +IAWkfcpdVTEICJjQ8LyOXmQb5r3ZN5JbsJcwM8J8d6RKJcYChJIc51MJqbscJrug +OLLixhGPtO6PyBfpuQJBAMF/lG+3boZsV+HpMdzgFw9ZVpUQuqC8Lr5yqhwyUlN2 +xS+E/IPRviuJaJ0v4232y2SnROIbVeBCiMH/6SBIPrg= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/iitr/iitr.cert b/server/slice/planetlab/iitr/iitr.cert new file mode 100644 index 00000000..81de0065 --- /dev/null +++ b/server/slice/planetlab/iitr/iitr.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRpaXRyMB4XDTA4 +MDMyODAzNDUwMVoXDTEzMDMyNzAzNDUwMVowDzENMAsGA1UEAxMEaWl0cjCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApXTL9Lwok5Aq4ic8V81gk6CY5MzH6e8K +tFF1e4In0AS/TsMYCLt1DubJk4aEnXuKRg1PIDvGm5FGtDmbh9Ebr0eyKO/S2s8v +VU+dDX99UKRliWhbXfm5aHrSTepRn4tTr6OiM+Qlm0w1XemeircfVLEY4/2PBKlj ++q8IIsCKYRsCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAiuVMafQ5+9T9AxP3zNbt3 +kR+S0gykiAa9VkwTzNB73ba2BuIQTL+VNyK3oZNH2h2QCQBT5H7i17+0BFfaMOkM +9l81MMYCy2S8Q5jaMCSqsN3ZzkwSNegKuyAAewfobzDXDj3F5Wbvz/4xebhoYy+R +tmqqmlRrKBBxnXGJrH8cGg== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/iitr/iitr.pkey b/server/slice/planetlab/iitr/iitr.pkey new file mode 100644 index 00000000..6e295393 --- /dev/null +++ b/server/slice/planetlab/iitr/iitr.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCldMv0vCiTkCriJzxXzWCToJjkzMfp7wq0UXV7gifQBL9OwxgI +u3UO5smThoSde4pGDU8gO8abkUa0OZuH0RuvR7Io79Lazy9VT50Nf31QpGWJaFtd ++bloetJN6lGfi1Ovo6Iz5CWbTDVd6Z6Ktx9UsRjj/Y8EqWP6rwgiwIphGwIDAQAB +AoGAGIWL6NSuKtiWEniAL/8nThniLx7OjjQ4YOslv01V+zWI6PJvMHQf8DpyK6Qn +KXPy1VkJnhxd3haU5QcYrvNl58JUn/WcNuQRn1n7+tG0/K4pT+5YhEXhuLAZFV3Q +6/FSVuWIyUr+SaozGksRNaMx9FWYcd7y7ur3dWf4YfPKBfECQQDbwdUuFW66aTsq +cchIaPW9N73apPQz3ITTCfvZFlOfyBkfqaE1+TI4AZ6nkr1RiSPmYzwpHVF1NM+l +RycG+a/zAkEAwL5fxOXrN5PAEbxQosAplhSR0M3hZOyObGhRdrj/KexqbK4ln46E +oohxlMQD5Ck4GrvIypeNJdYgU3p0ngX8OQJBANWBwBXy+s6f2L0HKTi4yTAajRl1 +tFECygWkKI0k9QBDT62EiD1BLHpfkH5swgUKwddfyJ6FfpPqSGfi9lb/leMCQQCE +RKCYEGgAdcZC5YY4icKAGZGPRxm8FpIOVvBAlueUL4dBGaj7++ONXjEDtBgvhRHZ +VrCORr44Dt+UKd7JarYRAkBhJK5sPrgLqyCNSeXzebKqUXK2Q5WEXj7tbFbwjPuQ +eW6AgJROKvkhjR2ZrH174N4Ec8nh3TXXJAEzYGWvCCoa +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/ileixlip/ileixlip.cert b/server/slice/planetlab/ileixlip/ileixlip.cert new file mode 100644 index 00000000..7fb7e5fc --- /dev/null +++ b/server/slice/planetlab/ileixlip/ileixlip.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhpbGVpeGxpcDAe +Fw0wODAzMjgwMzQ1MDJaFw0xMzAzMjcwMzQ1MDJaMBMxETAPBgNVBAMTCGlsZWl4 +bGlwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDX7vy/EztpCoO8hPVsvYpk +9+JWskkWb5O/CrZf6B/ZfVnpQmHs/M2O3Rfxs5DHTS1xsyZqOnj09eGNKu0egEeP +ZZfAVrl6KhnFn2R320LDFI6psqXg3cXDOi1c1g/0NHrnMmz2uZ9Xo7Qk9fe+nzcu +9DFWoljqEaVH3txfu/kELQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAD/arbc8YGH5 +kjlmsIn5r1Th++GfeuNoc6507sPVGu5NvdkFBz6qa/E5zA6GonzsOf1zTslCtkzW +ctLYqdm3kgdKHJoUSBIq9KMV0nrMZSd52at3onn/8I36DnHCOYsWh92Es/SskEyE +fdYjXjNQXD2tPt1GipPlHgoVvb7Kjquc +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/ileixlip/ileixlip.pkey b/server/slice/planetlab/ileixlip/ileixlip.pkey new file mode 100644 index 00000000..e4e2c8ca --- /dev/null +++ b/server/slice/planetlab/ileixlip/ileixlip.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDX7vy/EztpCoO8hPVsvYpk9+JWskkWb5O/CrZf6B/ZfVnpQmHs +/M2O3Rfxs5DHTS1xsyZqOnj09eGNKu0egEePZZfAVrl6KhnFn2R320LDFI6psqXg +3cXDOi1c1g/0NHrnMmz2uZ9Xo7Qk9fe+nzcu9DFWoljqEaVH3txfu/kELQIDAQAB +AoGBAKcTDxR4uPspW4y+A3dDoJVHByW1hL+LTXH/w+SpIhuR1cOZzVMkt5fWkfQ9 +z8Olf4f96bc/zt8acI5drGJxNuvcRgHps0qYscz+VPrj9xEKKqXPLk6DVFqs/m3L +8LD5rC0rCGQTu0QI4LMltxb6mZGebgzdxqNgL43vweijZ/SBAkEA+qvTh7zAFL4m +LFzMP90lWT/Wr6uEYTwBpPuXlVaQwIqnsttGQE8h9lbzMVRAqFRSKKp7brieNgaY +/n8XrFf9aQJBANyGHaOlCvXvF2vpZK5EvDLB3rHbngxdqZXgHKQGpXSPBQAJKW+F +w/a5rturM+JTbEtBfkT+2/f1H4W2zLq1xCUCQDyycIT0mlordNjXG4n3RXzn7Vca +I/LbcdZ+KUU68c/9gv/XApq9zo50nWx7ZzCbQk2ggkTcJUsVq+Qr6BKON8kCQCD3 +N5UQBgxvunuaPz/B7LRVwPmrj/vfQIu0HfPzPmanPqMbu4L9ZycJ6PbTqATsXaL+ +XmboBnARx62QfxhmNbUCQDxUykVvfZBDLdSPUPoo7ky9JCwR1B+drWSKUGdPb4Zs +mipEqn62I2FBYiVBenD652u8GEqV74x7XEaRLWnTY/Y= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/acc_file b/server/slice/planetlab/jp/acc_file new file mode 100644 index 00000000..5a4ef59b --- /dev/null +++ b/server/slice/planetlab/jp/acc_file @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE----- +MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO +SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf +iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK +2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ +Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG +hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3 +NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+ +GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX +n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4 +gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO +SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz +8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG +O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL +m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE +hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3 +MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69 +KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n +fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3 +si0AZRHgngrWmhf85bKAqS210OWHWOM= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/cred_file b/server/slice/planetlab/jp/cred_file new file mode 100644 index 00000000..6bd14043 --- /dev/null +++ b/server/slice/planetlab/jp/cred_file @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIICTjCCAbcCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODA0MjY0NVoXDTA4MDUwODIwMjY0NVowHzEdMBsGA1UEAxMUUmVn +aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOAP +5nv145+K6sfR0G7BMWBN9Zp9tVBdyxjohCzej6VX2fu40AjLb6m5ffRNk9WNroCx +hstcmwrbExRha6pzISsD0MIPUuf48sQmeyTHkpCdWbkbD/FtU7ENI5ZA5dQozFFt +EK2UW1kCv+IzjSVKmBRMfMcEY6UfuU15jdRm8sRlAgMBAAGjgakwgaYwgaMGA1Ud +EQEB/wSBmDCBlYaBkmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDItMCkoNC0wKSg2 +LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEpKDMtMSkoNC0xKSg1LTEp +KDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBsYW5ldGxhYiMxOnJlZzpz +bGM6cGxhbmV0bGFiLmpwMA0GCSqGSIb3DQEBBAUAA4GBAGR3d1rIelq++rJjlerk ++Xlbg+siLcDfNrOE4BgPWqZz9G6QDg+oxpmyP7SkqtO/u/D0PLyndcdKqpXsEisw +28KZtudxBTS5cRpTBCZnoUAGBKLJ3pwRqozwKxxCG8rmsUeGl0xdAjLVw9tzLppO +7LyVz7tZQkIyNF23gv+z9IQU +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn +aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2 +JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6 +R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX +h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB +/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt +MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l +dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U +PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp +26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG +teVEYDdXpA== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/jaist/jaist.cert b/server/slice/planetlab/jp/jaist/jaist.cert new file mode 100644 index 00000000..0a236714 --- /dev/null +++ b/server/slice/planetlab/jp/jaist/jaist.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVqYWlzdDAeFw0w +ODAzMjgwMzQ0NTJaFw0xMzAzMjcwMzQ0NTJaMBAxDjAMBgNVBAMTBWphaXN0MIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJIO5ADHk+/l1Mw9wdIvEyAJuyGHrL +wtK3CxKTCnJKD+5nB1RQzAKCvayEM69MUxIwjLI3wZrd6sEWsx5aBl16eojLajJY +AODLWJ9KtaRdZQo45MUquAuJVsFeVtVn9ofnsG2edvXpJ6iHnylvbfcUDQNvUu/r +SBHpGqHM41HxOwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBACLg8PuRj+tR7EefmcuN +St0uAC13wj5fbbX2oFWZVCgmOUZolvsXqomi/PGIg4pra9gc3JNUaTkBF9Yn10f4 +bYWAZnItREGnPs9Gtj7mzlPoplixZt6FOpZCvyau/gkOfBX0wM5UYT3Ky2HGAgI2 +U52fVa1c66pTspuFdy/mRmdC +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/jaist/jaist.pkey b/server/slice/planetlab/jp/jaist/jaist.pkey new file mode 100644 index 00000000..e6bb6219 --- /dev/null +++ b/server/slice/planetlab/jp/jaist/jaist.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDJIO5ADHk+/l1Mw9wdIvEyAJuyGHrLwtK3CxKTCnJKD+5nB1RQ +zAKCvayEM69MUxIwjLI3wZrd6sEWsx5aBl16eojLajJYAODLWJ9KtaRdZQo45MUq +uAuJVsFeVtVn9ofnsG2edvXpJ6iHnylvbfcUDQNvUu/rSBHpGqHM41HxOwIDAQAB +AoGAQy0FhkzkPh71CIuuO+kMyBed6Pj2IpI6kLpZBNWLYKM7jBvNlILfH828Dhe5 +J/Pi8mY7rBW05QPgY/WFYKoZlBQNwHx6ici0L8omYSSpiXLcDdau8tvNPvTDRokO +lXHE37dmY/OGTfMm6fg4pd7xf++Pmqdt11EZJZTTSJcpJGECQQDur3tXH0GS21EI +icH5L3irT6XY+TaBdsi8BcahSjPKqt/Zz6bt0YOF5a9TKxujZQIaIrh4SLGv8Wo1 +iFgdx01rAkEA17f/gJz2FtgtA6EmaaU6qJDZTaHnGwmIkmEsFZ6usxrevNPX6ZRH +9JPf96mg21xdyuKPQ8/thzu/6Ono2s6PcQJAWmbQemD2Px8eA/PZKf4W4Bucnx9U +y5gn0z8EylYGY75wZljFytFN1Ur3KrLrFunM8AUyhSxTUGZJadkoNq8j3QJBAL7V +prGnqcjR2xif4nSJWFgxNBwKg4GWsHwWfMJvi8sklTFlE1gu9mz2uKbHKGeG0e6e ++PCbrFz7Ta4F6BpRq/ECQQDIP89td2HTH+zlHT1xqbAiTxg49f4PWBzHFPxq85Xa +XiX/cmdz74eIU3vEb4kpZ1dKXgh5kEnFFEx5f6YaThYx +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/jp.cert b/server/slice/planetlab/jp/jp.cert new file mode 100644 index 00000000..eb8b77d2 --- /dev/null +++ b/server/slice/planetlab/jp/jp.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJqcDAeFw0wODAz +MjgwMzQ0NDlaFw0xMzAzMjcwMzQ0NDlaMA0xCzAJBgNVBAMTAmpwMIGfMA0GCSqG +SIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOfiurH0dBuwTFgTfWafbVQXcsY6IQs +3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK2xMUYWuqcyErA9DCD1Ln+PLEJnsk +x5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZAr/iM40lSpgUTHzHBGOlH7lNeY3U +ZvLEZQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALJUkagbTvwjkNswagnzmFOwvrgr +27VE+lze9XYu97FwLeG/ziU2zZHvjO1UVIzbisNGm6NUpKLwvXT4OYXmOQy/pwRj +W+XxBXA51DNI275W3zEhm/ChH70rG9KlaJodGld4CK7lw6ZYYl8mvxV76T1V3oZ5 +SYElO96gZAMA3T9K +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/jp.pkey b/server/slice/planetlab/jp/jp.pkey new file mode 100644 index 00000000..dd128a1d --- /dev/null +++ b/server/slice/planetlab/jp/jp.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDgD+Z79eOfiurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAI +y2+puX30TZPVja6AsYbLXJsK2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/x +bVOxDSOWQOXUKMxRbRCtlFtZAr/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQAB +AoGACPpaH+lwX3ovgiY0FdwD4Hn/N1uGIlw/wRXABhQ86UEl6OI048VTChf2pg1d +uRbeQSXb4tYpGDxC/XQR3liSoZVgJe4It5otzn8D6EjVlbvf482G3VbYkLCx5yda +wCV8NRjeazXcvvXJeMpvBLzh/cckVB2hiIHzt9nw1QrbkJkCQQD/N4vA03NpSJQa +CBuK3aXBJE6yKVuEjxZGBQ45X/IXImro/WOAet3NF8NPaFSHzSxXRez8r5fAcMuV +JNMZCG5/AkEA4L/ic0jl8sTVTk+eg7CSlweg3TwYLf4qvYH7hqepgPV+S5SMiUFN +iKxaj+8VZrGwq4EDkDgJIgoilWEcPaxjGwJAQzP0J9VGGZ4T6XrjDcDpiZ8u3bkI +MTKgUdW49iCularpbepzDfzMdNniAwHc6Fl9aImwKqVuFy1cXixxLbFLrwJAAWfx +6Lq6BYzJsNW6riQ6pos7rGal2BPQ/KKFilAeNVpT0fE599navFIntuLOBXhzHH+Q +ICTZmcbqdHjJDnG3pQJBAI5UOdMLQi7APvItfyodK5wynS1FximUrn9pF4CTJVCx +QKlRhnCTy4O1Sprl70xbKA4XKpTTHJ3pICoLvFM8ueo= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/keio/acc_file b/server/slice/planetlab/jp/keio/acc_file new file mode 100644 index 00000000..603f9db8 --- /dev/null +++ b/server/slice/planetlab/jp/keio/acc_file @@ -0,0 +1,39 @@ +-----BEGIN CERTIFICATE----- +MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw +MzI4MDQyNjQ0WhcNMDgwNzIxMjIxMzI0WjAaMRgwFgYDVQQDEw9HRU5JIEFjY291 +bnRpbmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOVoqTRxh/259AB1p3+G +HcUxSKpdVkKgJJGXvsCtav2Rxu9jlEq1AHt6Ff08YlqjVLPbSLTxVDDYUva+fmWl +SzWRRZdVkPrT5PipoQ38HM/RlgsMaSsB1otJd+sbVP2Opwbqcc3DZ4+NbRAV051Z +mzR4C10QIOkYBaa+D48ocjC9AgMBAAGjWzBZMFcGA1UdEQEB/wRNMEuGSWh0dHA6 +Ly8jaHJuOnBsYW5ldGxhYi5qcC5rZWlvI3V1aWQ6NjU5MTQzMzc2OTc1MDYxNDM3 +ODc5MDUwMjkzMDIyOTMxMDY2MzAwDQYJKoZIhvcNAQEEBQADgYEA0NDOfUAk1Puw +ghgHzdXzTBZLJkhj9B80D678aSGX/dSOIIJGUo/AXRNfwtVRVUfQ+PQs/LgygGJ6 +u1NUTuhVDJrJROd+bguDp5DSqR/om9uupSvGxGjcGGLpcrGES7hWuTU1VIRgdC8Z +1BK3qYToeIsiaDzIjrkZplq5brgBHoE= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO +SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf +iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK +2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ +Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG +hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3 +NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+ +GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX +n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4 +gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO +SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz +8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG +O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL +m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE +hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3 +MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69 +KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n +fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3 +si0AZRHgngrWmhf85bKAqS210OWHWOM= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/keio/cred_file b/server/slice/planetlab/jp/keio/cred_file new file mode 100644 index 00000000..f26e76fe --- /dev/null +++ b/server/slice/planetlab/jp/keio/cred_file @@ -0,0 +1,44 @@ +-----BEGIN CERTIFICATE----- +MIICTzCCAbgCAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw +MzI4MDQyNjQ2WhcNMDgwNTA4MjAyNjQ2WjAfMR0wGwYDVQQDExRSZWdpc3RyeSBj +cmVkZW50aWFsczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5WipNHGH/bn0 +AHWnf4YdxTFIql1WQqAkkZe+wK1q/ZHG72OUSrUAe3oV/TxiWqNUs9tItPFUMNhS +9r5+ZaVLNZFFl1WQ+tPk+KmhDfwcz9GWCwxpKwHWi0l36xtU/Y6nBupxzcNnj41t +EBXTnVmbNHgLXRAg6RgFpr4PjyhyML0CAwEAAaOBsTCBrjCBqwYDVR0RAQH/BIGg +MIGdhoGaaHR0cDovLyNjcmVkZW50aWFsX3NldDooMi0wKSg0LTApKDYtMCkoNy0w +KSg4LTApKDktMCkoMC0xKSgxLTEpKDItMSkoMy0xKSg0LTEpKDUtMSkoNi0xKSg3 +LTEpKDgtMSkoOS0xKSMwOnJlZzpzbGM6cGxhbmV0bGFiLmpwIzE6cmVnOnNsYzpw +bGFuZXRsYWIuanAua2VpbzANBgkqhkiG9w0BAQQFAAOBgQCQ9r5c/zYcsPuBV4iY +s1KD1E6B1xTu+TtvQw8GMK4JwTLaiBCdX6tiUkOHw40mej3huXD0KSDiBTt34Bg9 +9/E5XwqE0L604WATE4zVzz3s/lP1MroMzjoSphFzXdyHHQRYAOMLWr8e6JLH8qvA +CKI2ZD423aSCNB3FVxqlMyChwg== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICTjCCAbcCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODA0MjY0NVoXDTA4MDUwODIwMjY0NVowHzEdMBsGA1UEAxMUUmVn +aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOAP +5nv145+K6sfR0G7BMWBN9Zp9tVBdyxjohCzej6VX2fu40AjLb6m5ffRNk9WNroCx +hstcmwrbExRha6pzISsD0MIPUuf48sQmeyTHkpCdWbkbD/FtU7ENI5ZA5dQozFFt +EK2UW1kCv+IzjSVKmBRMfMcEY6UfuU15jdRm8sRlAgMBAAGjgakwgaYwgaMGA1Ud +EQEB/wSBmDCBlYaBkmh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDItMCkoNC0wKSg2 +LTApKDctMCkoOC0wKSg5LTApKDAtMSkoMS0xKSgyLTEpKDMtMSkoNC0xKSg1LTEp +KDYtMSkoNy0xKSg4LTEpKDktMSkjMDpyZWc6c2xjOnBsYW5ldGxhYiMxOnJlZzpz +bGM6cGxhbmV0bGFiLmpwMA0GCSqGSIb3DQEBBAUAA4GBAGR3d1rIelq++rJjlerk ++Xlbg+siLcDfNrOE4BgPWqZz9G6QDg+oxpmyP7SkqtO/u/D0PLyndcdKqpXsEisw +28KZtudxBTS5cRpTBCZnoUAGBKLJ3pwRqozwKxxCG8rmsUeGl0xdAjLVw9tzLppO +7LyVz7tZQkIyNF23gv+z9IQU +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICEzCCAXwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDUwODE5NDQ0OFowHzEdMBsGA1UEAxMUUmVn +aXN0cnkgY3JlZGVudGlhbHMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALU2 +JnMnIjPy5lUdqFlCpyaGzFE5jxiONEX9YajD23yG9qKZJw7TIfdVQQ+iVuVIzUm6 +R7oze8Y7tpPtskJqlvuS6geWtLfmTQr+9w44xdLzSClPyiW0pt8muW3ySa0RebsX +h+HxSIubqf8YRj048W69S1CogWobwN0F3dISGLpRAgMBAAGjbzBtMGsGA1UdEQEB +/wRhMF+GXWh0dHA6Ly8jY3JlZGVudGlhbF9zZXQ6KDAtMCkoMS0wKSgyLTApKDMt +MCkoNC0wKSg1LTApKDYtMCkoNy0wKSg4LTApKDktMCkjMDpyZWc6c2xjOnBsYW5l +dGxhYjANBgkqhkiG9w0BAQQFAAOBgQBCYwXvYXbMiAi8hiZNFboYE812F0CT1T7U +PRQemorQcU/7SNZh8wOqGSsHSdA9XW5sC01skkxdOrkxTjGA+Nb1BL+vIFLe7wdp +26lQIA3239E9TUSXQlU9TqdALAC1OsmKgN+kbVfqIQ8U2eqAcUawm4h9/8TEV9xG +teVEYDdXpA== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/keio/keio.cert b/server/slice/planetlab/jp/keio/keio.cert new file mode 100644 index 00000000..f6afda52 --- /dev/null +++ b/server/slice/planetlab/jp/keio/keio.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRrZWlvMB4XDTA4 +MDMyODAzNDQ1MloXDTEzMDMyNzAzNDQ1MlowDzENMAsGA1UEAxMEa2VpbzCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5WipNHGH/bn0AHWnf4YdxTFIql1WQqAk +kZe+wK1q/ZHG72OUSrUAe3oV/TxiWqNUs9tItPFUMNhS9r5+ZaVLNZFFl1WQ+tPk ++KmhDfwcz9GWCwxpKwHWi0l36xtU/Y6nBupxzcNnj41tEBXTnVmbNHgLXRAg6RgF +pr4PjyhyML0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCNEVlU0eBkj63NJBzt/pdo +GBbu29BdYVxFzJ/t6cn80GdaIPBhxVC3yhhIqc5IytJNCKU7361rvUzkIZ7QmHhJ +I/+2zNDKFKTTVzgizyY6OLRXf4uFTjkQtKFttdZ0xa3P4Iu0pGN+qxFUzn86XpHF +rBp3xJGBIQK1aGfReoNaKw== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/keio/keio.pkey b/server/slice/planetlab/jp/keio/keio.pkey new file mode 100644 index 00000000..74098d13 --- /dev/null +++ b/server/slice/planetlab/jp/keio/keio.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDlaKk0cYf9ufQAdad/hh3FMUiqXVZCoCSRl77ArWr9kcbvY5RK +tQB7ehX9PGJao1Sz20i08VQw2FL2vn5lpUs1kUWXVZD60+T4qaEN/BzP0ZYLDGkr +AdaLSXfrG1T9jqcG6nHNw2ePjW0QFdOdWZs0eAtdECDpGAWmvg+PKHIwvQIDAQAB +AoGATq33olnxxy6YpfO0L8OCwFfn0S5T4GPmRtzhelm/4Rm3PfFMMdckRDUaB5FH +NkjgSxNBO3WtZ1c6FRA+b4QiZ6WLbGRFLqYksOpiqryRXg6Hvlu4KIYrIUgOo0E9 +alL/bfNy3yoqs4zU5tqo+ETuoZsaAF3d05xbKgbvdlFpks0CQQD6MQOTJvL/aGBd +iTleoJk+zc3NpFwYqUoUKti6eE52Elh0/IQEEIbbPr7/c7SeRDIETbyMhCeK6gUu +8spkvuDfAkEA6rwgryjWpZTJDfIeZ5EGou9FpTMIQ6WaAmcU6ICd6oNtVeOCBajn +gzeaSs1Z0YcRGhldC3C7AvfdK41IJJGV4wJBAJFRutPUAbycMazisbHm8lvqSimx +19RzMBX6tRvKGTi3ey2oJj3+I3ZhQas616Q91Bdv155+fEFRoGUenLRbsl0CQGMQ +JhMF/yA+HGOgTKiUkeJtbEz9rn0uBEMDUdWVgg+Yi6n1q8fLsni0HI94/nDouZT0 +I0pStvnXtSVOKKYWMtUCQGy/CrH6cfKZ3LIccJKSR4Ub6LIsjFqNIg3RdgcQtDpf +9HXhuYNn/QQP26bg6CviPh1DcV70sjixyvgQ/leyLVI= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/naist/naist.cert b/server/slice/planetlab/jp/naist/naist.cert new file mode 100644 index 00000000..45a8a3b6 --- /dev/null +++ b/server/slice/planetlab/jp/naist/naist.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVuYWlzdDAeFw0w +ODAzMjgwMzQ0NDlaFw0xMzAzMjcwMzQ0NDlaMBAxDjAMBgNVBAMTBW5haXN0MIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDO79i5Hcn2bpOv6himzZJrnnZf18A8 +LSPu2VTtNeg0jFg7P8U4yPW9z52owGUsWVCJuvdD+wmSG+BU66LpOHhIJVpEo5OV +2tKCqMJ93MmWYuL9L+jH/v3jtJiNzXcP926FXQ7rdkx8CU0r9eRBW/hradI0+3rt +9S+WHH83uD6kRwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJv1n/CkDDvUdrg/ysfi +4tPEshjvXNeR+HJY6Kd7Y6QQXmrZIm4aSCpEbfnTk1xbY7JWzPRRoik0Vp5lkCyT +Y438xLOEmOsGedaNs3y2Ko9ztQmXQ5TGKi2vOA7aREWIRtVz0uX9LlTBkBBc22WB +bKoRLfruXogBrRcj8gp85uPo +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/naist/naist.pkey b/server/slice/planetlab/jp/naist/naist.pkey new file mode 100644 index 00000000..763d8a18 --- /dev/null +++ b/server/slice/planetlab/jp/naist/naist.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDO79i5Hcn2bpOv6himzZJrnnZf18A8LSPu2VTtNeg0jFg7P8U4 +yPW9z52owGUsWVCJuvdD+wmSG+BU66LpOHhIJVpEo5OV2tKCqMJ93MmWYuL9L+jH +/v3jtJiNzXcP926FXQ7rdkx8CU0r9eRBW/hradI0+3rt9S+WHH83uD6kRwIDAQAB +AoGBAJPkyqkSZyLeSGKzFccwqHKNn+BDm7nmMQYlARM/MaNMokpF+zfoN+jeFrli +N2yIsIyeuNU29tIbZiqK9bVkjGEJCD6dzV7TgAs5nHprd94y9lH/wv9MwrEorK4H +ru24pWiLuP7xuxgDsmYiRMiTghDaQzNcxkkz/GIRusRHYZwxAkEA/Qr5ebzHHB1I +LXccIX24QVjuq5kRp1cxfTeLKixYtCC2UbdcJ3MXKknKYcof5LKDbJ6g6+gp1rk3 +DvUo9SsfqwJBANFa7/agRJcqKBNAhBEulabov8+iLBLh5oaqHW2ww0SOC6QnMjPC +4H/xBHvlKfrT5A1QXM2jPVtDtyL7XxWY4dUCQEWqTtLYSU0RNrzlrQX/ccnz7Qmr +Q7P5inN55kN/IBC/bNKEk8d8pSUMWb6ggjVZfFtcNNud+F7YcTMaBeOxsq8CQALw +W94CcfQNS3K5vSDgnokxS0AG7sd1FF9fk/ouOQ+FTvSG+FVxruUc5Qs4NFapEtJ9 +BlB8sifN04xSKwuKkeECQA3FzuEJpvi4l4QwhM5EFonrOByFBkBc4VSXx/qc5L4n +S7RUj+DFn0KnkPmhz/NT/Hyt0ytTeq+/i4F+VWnzWio= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/nict/nict.cert b/server/slice/planetlab/jp/nict/nict.cert new file mode 100644 index 00000000..217428e7 --- /dev/null +++ b/server/slice/planetlab/jp/nict/nict.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRuaWN0MB4XDTA4 +MDMyODAzNDQ1MFoXDTEzMDMyNzAzNDQ1MFowDzENMAsGA1UEAxMEbmljdDCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA30SL5+u3hbtXEUfWoAKocJvggCB5gQDd +4YcvFVi7JpgncVxm0WteQmc5Yzs7OISzcEZ74CX5fylid/FF7dueRPMNXLQfB2PF +k3StYMgek/suPEDQtiV6iS0VPwuhMhIc0aOZYo/0ROWLNECjnBWb6x08or+dHwE0 +t9ekxSDCzqECAwEAATANBgkqhkiG9w0BAQQFAAOBgQA/Pq5O3G2PUXGjLth+UQDH +3zL8kaf/nG809S0grsgDKJpHAIH1xPmuUlKaR1JTH4FssrqE7z+f2ujtA1lOqBIK +TclcIvOU391NWhCW7BBwOn529wAXScEu/9wRlZwuPn81q4F1u1vGuqNeV9BYRZv6 +sRHMZaScPE/VtkbZtcIjnw== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/nict/nict.pkey b/server/slice/planetlab/jp/nict/nict.pkey new file mode 100644 index 00000000..f6699f28 --- /dev/null +++ b/server/slice/planetlab/jp/nict/nict.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDfRIvn67eFu1cRR9agAqhwm+CAIHmBAN3hhy8VWLsmmCdxXGbR +a15CZzljOzs4hLNwRnvgJfl/KWJ38UXt255E8w1ctB8HY8WTdK1gyB6T+y48QNC2 +JXqJLRU/C6EyEhzRo5lij/RE5Ys0QKOcFZvrHTyiv50fATS316TFIMLOoQIDAQAB +AoGAPk1yfRVZ8QeGFFxnl98mAcZ9r0NgpI8JW5XNnbdVAkATQZ73UhkUBJOpf/dX +Xz4olHwWtUXjiYiS4cWCLg3K7Az9eU1ZUXOM/lzT4jugXqTmPl1T1IwaP+RBahpm +T8WKqvtoxvllca2FocPe2bUMi18scSSfLI31yFH2mURLxMECQQD9pExDLZL1Rqva +YBPs8ksx97t2PDCd8XS25+nCnqCWfnE0GC16aXexwlgGq67Xxg8W7cDK6ZRPJ93B +/x0Gp1FLAkEA4Vf0Sw4j2HTMlq/cbdaVT4cWWsmTo/8rU+QeBdAIPwAFavj/v5ZL +CHSoIcVXzDGunkaXW7lZPOFQO7zK45yYQwJAI4BcoEZ/vE8A/NbX0yFyvvKyzXDN +ST4jnPpG8NOtHINkKut7ahfbBglysrRTC6aQNCBhDMW22YF1+5JOqMDAkwJBALXU +lOkjRcVZqeRFj2aJ6f08Ecu8MAf61Gli/t7N2HmNeNGyjht4GJ+AElL9vDSmOjK4 +31VCIEHBxU4OruAu8aUCQAFJuuUR5zm+JaQQTCnAv39NxTugHP1HXodajvnnt3xI +D6BHb0aT0ZanWVw5Q4Rzm/ZMi/apyfkYw1BApfaEh5k= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/osaka/acc_file b/server/slice/planetlab/jp/osaka/acc_file new file mode 100644 index 00000000..e969bdbc --- /dev/null +++ b/server/slice/planetlab/jp/osaka/acc_file @@ -0,0 +1,39 @@ +-----BEGIN CERTIFICATE----- +MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwDTELMAkGA1UEAxMCanAwHhcNMDgw +MzI4MDQwMDIzWhcNMDgwNzIxMjE0NzAzWjAaMRgwFgYDVQQDEw9HRU5JIEFjY291 +bnRpbmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANAGdic1KHHvvlTE7id6 +fmQU4HZ5iZwp9RqFiflTlvc/fJelxS8cV51rE878eZymgbVYwLIcO/Tyvfkg+axM +nBzzWgzSX4wk/zuuNPV0ZwzG0Vf9EN/hzqzu1KWRMxT0/vz6Kri33eTgbyURWp4D +OGYRqR7E573fDd8SWGfWW7AXAgMBAAGjXTBbMFkGA1UdEQEB/wRPME2GS2h0dHA6 +Ly8jaHJuOnBsYW5ldGxhYi5qcC5vc2FrYSN1dWlkOjE1MTI4NTYzNzgzNjk1MTc5 +NTEyOTg5MzAyMTMzNDQ0OTQyMjMyOTANBgkqhkiG9w0BAQQFAAOBgQBlo8xLJmkz +rulFxopVFoKm0bSWtX83yg8YvTauCoxlcN+s1tgu9zT3L4nUsrzmTtrERAKD0XVK +kM8s3PZ8bEq4cez4IMLGGMDBjC8t0QoCjftTTfHNLAT/4Bjv5q6NlCo31wKfD+02 +1H7ebavHehNV3+TJfX971Fvf87UDL1wFJw== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB9TCCAV4CAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODA0MDAyMloXDTA4MDcyMTIxNDcwMlowGjEYMBYGA1UEAxMPR0VO +SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgD+Z79eOf +iurH0dBuwTFgTfWafbVQXcsY6IQs3o+lV9n7uNAIy2+puX30TZPVja6AsYbLXJsK +2xMUYWuqcyErA9DCD1Ln+PLEJnskx5KQnVm5Gw/xbVOxDSOWQOXUKMxRbRCtlFtZ +Ar/iM40lSpgUTHzHBGOlH7lNeY3UZvLEZQIDAQABo1YwVDBSBgNVHREBAf8ESDBG +hkRodHRwOi8vI2hybjpwbGFuZXRsYWIuanAjdXVpZDoxOTUzNTQ1Nzg5NjI5MDI3 +NTY4NTk3NzE3OTI3NzU0NzI4MTY0MTANBgkqhkiG9w0BAQQFAAOBgQBFnESK6zc+ +GxI/XET7boZ8GSMbKwSQoGf33Sz1qwRp31nf4HvoHXl6j6DmpFtcEqeK8rTP+AiX +n6b14cfXdQ0Px+00/zDNcDyVzh01V6KMrDeVhZrpiejIqW+vPSjMMoO1/nYrY5r4 +gf8HYww8uY1RciEeLPZkcJtR0Gq2jnkT4Q== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB8zCCAVwCAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTA4MDcyMTIxMzEyOFowGjEYMBYGA1UEAxMPR0VO +SSBBY2NvdW50aW5nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz +8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vG +O7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiL +m6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABo1QwUjBQBgNVHREBAf8ERjBE +hkJodHRwOi8vI2hybjpwbGFuZXRsYWIjdXVpZDoxNjQyMTQ0ODk4NTIwNjUyMzY3 +MjM5NzIxNzQ2MjkyMjIyNjk3MTgwDQYJKoZIhvcNAQEEBQADgYEAUrjefqbA5c69 +KfNh/ENOp0xFnvWn3UReOo2mhYZI2LWyX41g/q/InVogh8aJ7LXHI6wjHL+PGz3n +fU+Bl2fL7GAL0i6Wr1JRbT2YHMJd97C11hWPLg+1Tt3MHwMRf0X8v7I3pRSJOIq3 +si0AZRHgngrWmhf85bKAqS210OWHWOM= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/osaka/osaka.cert b/server/slice/planetlab/jp/osaka/osaka.cert new file mode 100644 index 00000000..ce4da44a --- /dev/null +++ b/server/slice/planetlab/jp/osaka/osaka.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVvc2FrYTAeFw0w +ODAzMjgwMzQ0NTBaFw0xMzAzMjcwMzQ0NTBaMBAxDjAMBgNVBAMTBW9zYWthMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQBnYnNShx775UxO4nen5kFOB2eYmc +KfUahYn5U5b3P3yXpcUvHFedaxPO/HmcpoG1WMCyHDv08r35IPmsTJwc81oM0l+M +JP87rjT1dGcMxtFX/RDf4c6s7tSlkTMU9P78+iq4t93k4G8lEVqeAzhmEakexOe9 +3w3fElhn1luwFwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABOBGbnYsv2xjOXidUtp +e1woERQGJRe7HJrbo9NyI5ozjSLt9yphY11ZmNex2IhKIrmbRSPfDnKNYaMHFOpz +qbJMCmC4uUIUd9HY8bg4mQ4wjwdWkLA9uWlmpAFRoIY3eNEvv5tpUnD3sV1dEDsQ +uQQcjxVTSgQQgjpE1KJ/KQ6q +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/osaka/osaka.pkey b/server/slice/planetlab/jp/osaka/osaka.pkey new file mode 100644 index 00000000..25155f25 --- /dev/null +++ b/server/slice/planetlab/jp/osaka/osaka.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDQBnYnNShx775UxO4nen5kFOB2eYmcKfUahYn5U5b3P3yXpcUv +HFedaxPO/HmcpoG1WMCyHDv08r35IPmsTJwc81oM0l+MJP87rjT1dGcMxtFX/RDf +4c6s7tSlkTMU9P78+iq4t93k4G8lEVqeAzhmEakexOe93w3fElhn1luwFwIDAQAB +AoGAflTuPDFUNp1aATD3UJJbX3wuNMTqhSQV7d1bRUc2T0EG8TGC5nFX5Am7JeC+ +GhwkeXVE0OXEo6UnKbyU48ZCp1lL70bjiPvhS/wceTbjuxJq2wS2hjIwf9NKyZ1j +ppO0gpvxOVNbIgyS3Yj2T98sYkJCVBnBN2huUsfzmHSeKIECQQD3SOiKRGfla+Du +dfBY7tKNxxXYTZwV2eYKhMZFW6rMcGboqoAXFMVUTEdHB2Ozk2wHsKcDb3WFpqQI +0QFqdNefAkEA11tW5cDIjiLeppSi57knZr9aYfysJcHslez9wgFGgK72s8XB8CfS +QqzPTmQm4F3NVM+5Y5PbMp55ntEiwPg0iQJAMnGsBjCoJRPZoatraSjmyMc4/JPw +aEC3/aNSMundMLEpPQMy+AJjsquQyruGKibDndn6Z+f/yFDTG31PVaEaLwJAV8AQ +GG4FSmVK8/V8q472TxeJbIPYYUozbKO0gmiioaypOXdLHuAa/LANiJOmg6W1FOnP +UJPerTGFvQDaeGaqgQJBAItAXexGSQEA1AKVzP31zorlb6zBh6dTxxrMhfeROwZx +drr47bhcwuiJ011xXzea9iy1dWJOtC8JrQ/YVw14Sjc= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.cert b/server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.cert new file mode 100644 index 00000000..3adcfe94 --- /dev/null +++ b/server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBmzCCAQQCAQAwDQYJKoZIhvcNAQEEBQAwFjEUMBIGA1UEAxMLdG9reW9icmFu +Y2gwHhcNMDgwNDA1MDYwNTIyWhcNMTMwNDA0MDYwNTIyWjAWMRQwEgYDVQQDEwt0 +b2t5b2JyYW5jaDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxU+FKE6oEaHQ +lb7fZqVY1yJ1bJYULM3Q5N2Tlx3nPyjOViQ0QohRplSKsA8DEVVgFkaq5xHBXdQv +itTRDY9XIJk4GCqrBSL6c45Mt4TgGcPHhBmHjW+vG3OMhZp9D7Hd7lgo7ZXAWUBw +eAG0U8koajPvgl+RTrkbMQjeh3TKq1UCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCm +qF+VWD1nVwOZpsN42juCb/OYQuDKC//ZMR6QVjOZvyrO1ZolqVM4JHfUkbWLBE4O +8qLXIeXi86P0Ox8ur7oIHmLa7AzRfFwduwWzqJxM5/gihScA/Ym8jqHJZ8AdK5dK +QVJ5vhIhNVjQkoHsCw89+dn1jXlXGXORdZMrZCKe7A== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.pkey b/server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.pkey new file mode 100644 index 00000000..569e9608 --- /dev/null +++ b/server/slice/planetlab/jp/osaka/tokyobranch/tokyobranch.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDFT4UoTqgRodCVvt9mpVjXInVslhQszdDk3ZOXHec/KM5WJDRC +iFGmVIqwDwMRVWAWRqrnEcFd1C+K1NENj1cgmTgYKqsFIvpzjky3hOAZw8eEGYeN +b68bc4yFmn0Psd3uWCjtlcBZQHB4AbRTyShqM++CX5FOuRsxCN6HdMqrVQIDAQAB +AoGAf5bjaWQrpHM52Yt7FPo5D6z1t8j4tNxGh6iMxvyMS7hMbUGuFZPnEKK8qAqd +FjlaEC2UWCWQH+eU8raZlKYrVQNyCdo02JIACxppy8zGbdScrvJ4zcNVsqenKJYn +YlqtLouaZlo9LcUGrsjBm/Ob8nDXaaMm8DFaArgYlKqxV2UCQQDimOTTmFQeZCC6 +339YGp7KhhN4SlzHbGK9yDbfc3u1IH/+FebuDQV/lDWFDm4KgRxTpGRvEz0AiDjl +faOggGz/AkEA3unImuNW7WxgSCiEVsb5jQI7gbneiGGEaEPyWQ6WvEUkBaGeHc47 +hdPh4xDyarfeGYxfPginTLvaPfMn0OUjqwJBAJ3OTuYRWtvDbYvXJG9uMpHmZ97J +Iu37TJTQv25Ela2hkaGZDTdRuDeONuuQDhCgs+KIRS2Z30zkkYM5SV/4sG8CQB12 +XNNL9PNQfbFL2aH2jok6oE7XGDiCWxPE10U6DmY35TjxUYqy9V8M0DBIzyGXx70s +tnHmhuY3dfL2Lm8Huh0CQEq+/+sgUHe6fIYsTtOSQ1nxxfU+jM6HazzRoz+T0e+c +6ZfMyw/RQ/0+sLiTAImI8YRWFaRKPxU/uqHTOaRPeHg= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.cert b/server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.cert new file mode 100644 index 00000000..f545b685 --- /dev/null +++ b/server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBnTCCAQYCAQAwDQYJKoZIhvcNAQEEBQAwFzEVMBMGA1UEAxMMdG9reW9icmFu +Y2gyMB4XDTA4MDMyODIyMzQzNloXDTEzMDMyNzIyMzQzNlowFzEVMBMGA1UEAxMM +dG9reW9icmFuY2gyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD2+WE/yzWe +vPV7Wj2dRL5V+fEAvBT11W2B406gzUjkYdWqN1XxgJSBSMwPOP+BGuVqfWm0C5/I +d+lURsqYucKGQ6kZBONKXL79qZzes8BV48m56PaqIG5aldGmO+6ci1kyAgAJXRfb +XI73lXlKSyb2SwzDYyid7y6+ifVxBx2F2QIDAQABMA0GCSqGSIb3DQEBBAUAA4GB +AAaOJT47A7aMrZdJqOA5bBgEIB/BhrpyIEaS+dn+57e2pPI5qjKFd7j4w+UlbfNf +c0h399UUOR7DkLyo7jKuQDBffyeR53da6XRzprolwLfT9Z8KTzFg4z0kn5FX5giY +Ca5zhgoA1NoMQupayYBhkOvcnOIqSRytPEgnWUcBDV8s +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.pkey b/server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.pkey new file mode 100644 index 00000000..5fc9fe03 --- /dev/null +++ b/server/slice/planetlab/jp/osaka/tokyobranch2/tokyobranch2.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQD2+WE/yzWevPV7Wj2dRL5V+fEAvBT11W2B406gzUjkYdWqN1Xx +gJSBSMwPOP+BGuVqfWm0C5/Id+lURsqYucKGQ6kZBONKXL79qZzes8BV48m56Paq +IG5aldGmO+6ci1kyAgAJXRfbXI73lXlKSyb2SwzDYyid7y6+ifVxBx2F2QIDAQAB +AoGBAKuY49/uMihDxBBbx9mgrNqR2ciX5bxU+Uw5AiWp3I6KB2nIHte4bfZR/S5K +fQRYCrRtxObK+M7RufXLZfKthqBjr7+Sj6oFVkd3r7joSHnrFXB43Y3PmS9npzV7 +Xai36AZZ7EK6MXpuzqbZ90zbZn+SDY7Lp871qDXjxe9ud3wBAkEA/VtUxgYrxvXa +c3GWRDqkqLNBhdxx9K6nZ/aQal8NH9JdkD/d0dU0XxMzLSSoZjOVdXM1eSUXu/BN +lSKmkDwQWQJBAPmNAH7NTpd+PHAb3Swq/Zvbq/e7fV3AWLACJu87sKYWXt13NviX +WE7YZHPa3Y00k8uO4QG9tMa3BRYP2z5ycYECQBi157bIs0xcfkn0MivFbHnnweRE +c/jhcAJ70eoOC0GnSuje0cu9d7YuMTed867EKTejXPvL2lzCO07oakZ3FUECQCxI +12OpL1826abDaxZhcqvr6bKGtRKkBZkGaL5fi1ON+Lu4YirvQJ6NTBY7KsHaKLgg +3NEgRypUZDSsD64fRQECQQD1TYyFfJ4CyA0bOTOaHvDIC5Hz542jiDISLiaool4k +eAWBdX2gYkM4GLFG3CnxmK3YDLWpQCytTR1x/5jLO5/R +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.cert b/server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.cert new file mode 100644 index 00000000..fb48fb28 --- /dev/null +++ b/server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBnzCCAQgCAQAwDQYJKoZIhvcNAQEEBQAwGDEWMBQGA1UEAxMNdG9reW9icmFu +Y2h0eTAeFw0wODAzMjgyMjM1NTNaFw0xMzAzMjcyMjM1NTNaMBgxFjAUBgNVBAMT +DXRva3lvYnJhbmNodHkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKK+rNrP +EemVhmGvtOMFFdCSkegZ48XQ9Z4//McGuxAyDgrKk96T6lDzFzza38vZx8jqAzXm +LEbI/Dq/+iH0znZM4OX70Qxea9QcZdlNO9Ceo+XGfgEozwHC1Tv0GyE2jCDNFC3x +eRCnur7Q/Q8j4PIOcTBmcOP66Ive1By4zyxxAgMBAAEwDQYJKoZIhvcNAQEEBQAD +gYEAPC4+9kfbGbALxxIazogV/sFz0sCP2Qu+HBKPX9AB5tQRMzBJ2q1drGgHNgwu +mWdGCtSH4f5pIubj/gA4Ss0dONuCe06QNaqAK7Mc9S5m6a9jmd7VNJ3SrwBn+Pje +K2Cnmzt4+Lh53GmRY/QqmQ83IoLyUCELusLx9wMslHdB+ew= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.pkey b/server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.pkey new file mode 100644 index 00000000..5c9b9ca7 --- /dev/null +++ b/server/slice/planetlab/jp/osaka/tokyobranchty/tokyobranchty.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQCivqzazxHplYZhr7TjBRXQkpHoGePF0PWeP/zHBrsQMg4KypPe +k+pQ8xc82t/L2cfI6gM15ixGyPw6v/oh9M52TODl+9EMXmvUHGXZTTvQnqPlxn4B +KM8BwtU79BshNowgzRQt8XkQp7q+0P0PI+DyDnEwZnDj+uiL3tQcuM8scQIDAQAB +AoGAYHlr+qH52mBbMxl3v4RKNERO3ipKzf9bOx5veIRS6/zgOiFwmudQZgBU7CxL +soo9VqrykEcMREHs097uJqb6pFAi1Sl1eL5Wp0A6irPsGKotlEbcjtgOw4SshBZP +98heo9S3tlflIoHF22gp012cyfzSbT1P2cKPgB4wLMwxVOkCQQDU+AuwUoI9ypFl +Q90kCYaJpKgQomeh40XoYYXzKQuJymt5L6h6/CMfHAEkjZdHI7aHJev850GIdeZ+ +PaV5YTvDAkEAw6DBcAWik1fN3ZBTY5LcRg95deiHt+IM1AHd3Uh/f8Y6M5gdxh5J +ny4RGIikm7oIXt8iTpfBWU6wg/idn04XuwJBAIRjfcCqSdRnrGKrATl5wmymMuPE +UW/NfJOsrDwwc7/AWXcILU/mlV6tZfh3HGdYyArThBO/HnnZ8OLhJ5CA5UkCQQCi +WSKvSL3m8ZNTMJdDp3lOW0E9bMBVBjAHMZViMuw8qdFbR/5NkI0goSZm6d9RrU2N +Djh2aNJ4vykWHJkSv8hJAkEAw+0Q+agSCgG4a5Fm3K/a8Wg1zE83Mwozq8omYWUg +g1ByDA1aKANmpd7+3xQEe7vRSO1DpPCuIWEf60eMuLPpgQ== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert b/server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert new file mode 100644 index 00000000..17d80881 --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBpTCCAQ4CAQAwDQYJKoZIhvcNAQEEBQAwGzEZMBcGA1UEAxMQcGxjb2xvamdu +ZnVrdW9rYTAeFw0wODAzMjgwMzQ0NTFaFw0xMzAzMjcwMzQ0NTFaMBsxGTAXBgNV +BAMTEHBsY29sb2pnbmZ1a3Vva2EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB +AJ0qH3RG7sJScOAgSHRWzYhlIyV76N3SPg0H7RJ4P/0JBd0UvoiTKBRThiruzaLe +QTcxkw77OHvfsdoYa7ob+qtAYIzK3AtPT9T9b8iRZK5eDamoL7gaZnH8XFD+QgsE +YD9ZlJNhU05H/KjnywjB1zOZSAgLCmseLrbnrY19G1bfAgMBAAEwDQYJKoZIhvcN +AQEEBQADgYEAQxwyaY8MTRQoH9GK6JelQG3mymTVuJFHIfcvB7/SeTmfT6lkX+jf +OffVNSSQsl59wjmgwaojypUguIXaK9z5TfC6Owr+2I1sKQyNWZHpdJJoy6vKiun5 +h2/apDEHl9Sj8wwAh4ePKmj5IZVd2uzw+mhSkMQgduIsYCqpo4JgYv4= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey b/server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey new file mode 100644 index 00000000..ab2b474b --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnfukuoka/plcolojgnfukuoka.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCdKh90Ru7CUnDgIEh0Vs2IZSMle+jd0j4NB+0SeD/9CQXdFL6I +kygUU4Yq7s2i3kE3MZMO+zh737HaGGu6G/qrQGCMytwLT0/U/W/IkWSuXg2pqC+4 +GmZx/FxQ/kILBGA/WZSTYVNOR/yo58sIwdczmUgICwprHi62562NfRtW3wIDAQAB +AoGAeRIYBQUXrM7BcYatCiJMVwRCXP/lVew+LN+sO4wzDwRCZhsy5Bcoyu/E7ZHl +C9BXQOOJvAK/cn3SjoY9hrNDGDB7iAXcfZprzQVEqvww0GdwTEvMAAzLcYFyd4In +D5d+F3sqmBdstEiYWKWH/pO9UpHxZkb8T+qPQFl2p6zGXRECQQDL/1fPVTGRYUKV +/Zcxyycz505PDqAPbmn/tGx9cfMhInTqKg1ZQx1SFd8aEDQ1Lo4IJVzaf3M2FRBw +ghXR+s9rAkEAxTqDzgUDOdKVmnWCAOkGCvDsSfdiDQpQjfEo19VjcD/Vmsz9jFBE +KW1JqD5sw3F5z3b7wEtoUeZXFb8E+Mo3XQJAaP9wbuLmtHFfGFyCKbrq3qg7gi2A +7PBj1p1DCf5QqclWbABhBoSo3ssrHfshJA5mRIMWm8/luPx2jbInEQELKQJBAL7T +2QeTDgX6XMmv/HNJA5G+fcErXHFlk39i4LPEQYwwF0rKIGCMoQa8OVJR5AZOWx+C +7h6mV282wPfHdNYLQfkCQQCKm35zZTQNvVWZUy2ah/NCzwDHSd09WxsiQwmX/TCU +6nBSAr280D/oD5v3QghqCpSrWBWMpw9OmHlEykB4KNwu +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert b/server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert new file mode 100644 index 00000000..c9d6f259 --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBqTCCARICAQAwDQYJKoZIhvcNAQEEBQAwHTEbMBkGA1UEAxMScGxjb2xvamdu +aGlyb3NoaW1hMB4XDTA4MDMyODAzNDQ1MVoXDTEzMDMyNzAzNDQ1MVowHTEbMBkG +A1UEAxMScGxjb2xvamduaGlyb3NoaW1hMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB +iQKBgQCbhgXoF+JSqsc+t0M0aBbX6f83PTFj+HH15QBdhE9lFYHy6aGGpu+YkBeu +mZOCZjkc2k8JiAaKA5mheQxhSP06BxU2z1rz7C52437PV7DylvZqr3R38SI78sdu +uzqlz4uqfBvTFniyWSvU3RigXFobQ4xgIzUGBnkDu6vqarVMKQIDAQABMA0GCSqG +SIb3DQEBBAUAA4GBAAi72cMggGITIUQzH5tn46OOq3m0yPvJ4WX7PpZdvktqhQw9 +r4zfzvvAu31TTK9wwCaIesvkr/qEi8+kmw1BzJWmtlvtViyBZFjFm0Ko959fXj0W +Cj19r+JOfCsnymzaUGTIm51KP99Def1sbORe7WjcqhmcVs912Jz5uwaun5Nw +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey b/server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey new file mode 100644 index 00000000..1011b5f7 --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnhiroshima/plcolojgnhiroshima.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXwIBAAKBgQCbhgXoF+JSqsc+t0M0aBbX6f83PTFj+HH15QBdhE9lFYHy6aGG +pu+YkBeumZOCZjkc2k8JiAaKA5mheQxhSP06BxU2z1rz7C52437PV7DylvZqr3R3 +8SI78sduuzqlz4uqfBvTFniyWSvU3RigXFobQ4xgIzUGBnkDu6vqarVMKQIDAQAB +AoGBAJeDVyfIdPYCaH/B/FgG/BI3ZisDk6WIOkXLZrK0nsCk1me3kmRjJ9Kitl+k +QJ/uRL/GMu/fNDeq0DYOfrAcco1b5l9umueOh0jLiFNISxRXQs2HrJbJbVpHdQLU +yylttBYCzROWCIbiI5VCwf8Y4WbBkzgYQjV1rwFA1MJrpGdNAkEAx4tKjcx05it+ +s27cnBhgAL3QbXJNjYRImjn3ztNPc4E7+f9V3XEiSm27a0YrG861v5POYnL21p2D +Ffk4G7Ug5wJBAMeGYY58uJZdhlD14Otz9FvzAEKBUt+0gGyG9bgnn8eTZXBjeSol +QAHvIIMcQ1ZYvaucHh5dVvR3MOOlZU2KuG8CQQCGqQ6IANlG10Vqy77fLGflODNn +GMMTZJkmU0ZTcjDk7urNvC1zAj004zaenzzKSEZI4fNeZt0DWkqzUns135czAkEA +pyD5NtFiDRHqIIbVEGTgmuTBovOQ57HaoQ2rZcZLIHFm1u174MGzC+ux4CEchodu +2QC8edLVs5DjcsxoPrukIQJBALB4rBr9rZdN/nCl3Z/r6fGgyDlMGQbm5fcq7S/W +GTnQzZ0TWcaltoga9VRPpziuGP81KheLd0+VUsjhiJxjLjA= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert b/server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert new file mode 100644 index 00000000..dbe69078 --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvamdu +a29jaGkwHhcNMDgwMzI4MDM0NDUxWhcNMTMwMzI3MDM0NDUxWjAZMRcwFQYDVQQD +Ew5wbGNvbG9qZ25rb2NoaTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzxZe +Qb9euARCd19rdgnqIeYeZPUuoYkIjbl1HsY0Ti3TGuUfC0A/a0pCNEtfuxLG3nn8 +hDoNsMjr0yTKsCXpGR3/iqS1/eHFvfOJNptyby0imjG7sIijGE+ebe8QGI0HfIaQ +WsEn291G9C8T4CvzJiogFEZEy2D8jQoz14/DQRkCAwEAATANBgkqhkiG9w0BAQQF +AAOBgQBLVp1/VW3H9iayq3sCWCLxNTlWIv/uUm2H2Ydc8vYziHy8h3JAHiupdeFg +IUt5cg53Jv5Bpz/oojEmNw+P3EgOFBKBZQalkIjX+ztKQdDivksNB6YKK+gYumlU +SmL+gyQwxU+bSQd1ZbcPE6kYe9jTnUo8M8wtz8h+qO0yfaSEBQ== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey b/server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey new file mode 100644 index 00000000..c7a5d94f --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnkochi/plcolojgnkochi.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDPFl5Bv164BEJ3X2t2Ceoh5h5k9S6hiQiNuXUexjROLdMa5R8L +QD9rSkI0S1+7EsbeefyEOg2wyOvTJMqwJekZHf+KpLX94cW984k2m3JvLSKaMbuw +iKMYT55t7xAYjQd8hpBawSfb3Ub0LxPgK/MmKiAURkTLYPyNCjPXj8NBGQIDAQAB +AoGAa0/TDk0F32PNsaBPxn5CxshBzd1ECc9CEHcfWxAowK58a755hNIJSybTAdhh +RkbnqRgbo8WVnJuxoNu68ObkUAGJ8jK5Vg/p8wTFN1HV4zmfzmScd2F9yoV9D5XV +gf1cgQak+pU1iiIY4UyXIZ8sZhKmGqIljx9b92zxErrAyNUCQQD2q04Qt+LFkXE0 +B0p54YonyHqw/Vnp3RU1kX2pCbEDAfgoaweUXb/PpEa4JUTSHzDmDkosHGd7+eFc +phqOBdVPAkEA1uvC2TXneumRaCWtsWfZdCN+n105wd6QP/KP9eb8tfUJM8oXDroO ++E16vra3088EzxuOgSBOsM0ZaP+xkLm5FwJBALW5eqfCcWUQQ5ALFwk36eppPkqK +O+WZJPj0GNmh9DC9EK/mOg1KC/fTlO4xNsR+ii3StT5OJsclTqxNCx86mO0CQFRq ++nfzEl9XCwRLeHQshF936a6TIbKixyo3DpDaD/0wqFKtWG0ya9rgJAxxHLeXox3u +hwT1ObN8fDSf6pEcQjUCQD+6xj33DI/Pk3zWwlTtgjNm/N0IjgO/odjy0W/mKMX9 +2hRp6VCKOLqe0O7o0fbje+pFch3HDlVhPP5ZeGqp5ng= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert b/server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert new file mode 100644 index 00000000..1fff5f45 --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPcGxjb2xvamdu +bmFnb3lhMB4XDTA4MDMyODAzNDQ1MVoXDTEzMDMyNzAzNDQ1MVowGjEYMBYGA1UE +AxMPcGxjb2xvamdubmFnb3lhMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQ +ZKU5Ee3fDeXV6vsH+AWcOWrxFo6hpCmJPfQveh/ELirAGdkBA1QqTtCEOWWtbsmR +n16lOIPEt+iDvuyf30L1DuO+Cfy0y2rPj3HcfSIRTZaaNghuo3PdyFKf0Z+H2y5/ +Sj8IUtXRlVDGPxpVi5510NTcXhuafY4wXPpt1CNeqQIDAQABMA0GCSqGSIb3DQEB +BAUAA4GBAAFsNbW2k0Rfm0x8XmJkl4cpS1izZVnlSIyEs7ogxB4ZJOH38yromxSr +WDzlHOLhoUCqFDWE/g+Peqr/eQTx7JhQe3fWpa6fEHKZ4UFkuxngP8klvt1uRheI +nfyAZVufbJ4qkaOV435xQu4g0YBxrd4zi3lA9v3iUYoe5FwAOzO6 +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey b/server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey new file mode 100644 index 00000000..f560b43f --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnnagoya/plcolojgnnagoya.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDQZKU5Ee3fDeXV6vsH+AWcOWrxFo6hpCmJPfQveh/ELirAGdkB +A1QqTtCEOWWtbsmRn16lOIPEt+iDvuyf30L1DuO+Cfy0y2rPj3HcfSIRTZaaNghu +o3PdyFKf0Z+H2y5/Sj8IUtXRlVDGPxpVi5510NTcXhuafY4wXPpt1CNeqQIDAQAB +AoGAOWoBO1/9MV8a230J/IAQy6HmHNYiJdacuvses5Xp+prdnF+CsgzAu4dLW6KU +qNvFHSHTaaHQa/pfTSzk9IcGYw4cC0ihZiHyI1MgmN+9lPlZj44xOaZ/31g8qC1g +B/c0iJIlHZ1iGm6tVZpYi75Si6LPRKgJS5YWu28pXM/h3AECQQD8JeXmjUi4qHTe +M1waXqjRg/VBK1e9qlUicCOSpHPFmJ2x+EwNv4OnkrDLWeABNl9U4XpG7J9SXa/t +HxXxPPbZAkEA05OhZr5FHwFYAkmPd220m6AvkLLIwHLoYIZ96yglVfJwal89Fcr+ +Lg7IGdUEIb1bB8MvZkUMMPD2ULXbVADkUQJBAKKDyqnOZhCegrS0ZaiZWjWv12Mp +jGOyZSzNGiBp3jR9KSaL4nj59uEKquhmBPrDEK6kpSsRV56+w6URZBMYOAECQQDQ +aN/YARy9SemTdzpm/h2mHsg71KCDUa0tR83JUiZU3xd08JOPYAG5BL5/E6GaSpfc +sZuDNgioPPOk1T5TJP3BAkAuz6jfl5o70NZ9JG/xm1x+Gf4AIOkgYLwPWNW+c6Bp +tL85SeQaDSskvwGjtNX4OIBdJiOgMEki54uRCnYFpC8u +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert b/server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert new file mode 100644 index 00000000..141b4542 --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBpTCCAQ4CAQAwDQYJKoZIhvcNAQEEBQAwGzEZMBcGA1UEAxMQcGxjb2xvamdu +b2theWFtYTAeFw0wODAzMjgwMzQ0NTFaFw0xMzAzMjcwMzQ0NTFaMBsxGTAXBgNV +BAMTEHBsY29sb2pnbm9rYXlhbWEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB +AMpkSA0hJMOgrUx+v0yuSBdsUB4xBDayrSfQnUIw9keCDvrUH0nqghA1l+bf26yv +rXSIcnxLqzxyCnk696vlVZHHNFWXCmQxTjwrDr5h9i6LcszIcdTOMH0tj5i0roCS +oV6JoYe0tA5srrio/OKqhgovRCyUBhhGqJ3IEqwsWpEZAgMBAAEwDQYJKoZIhvcN +AQEEBQADgYEATT+5d5N5qrgI12LsnhwHkAw9IGpdztPkmhDd8ffL5nw2mKbUAnop +C4miPqcQj3JmNSQLSJGZGTTd8XQ6MVIoCFNjBJrCSyx2KinuaKV9LqF357zz0M3N +plvAGXc0TzUNluDBDcL//Go6QQGqW4PPDrjseTjp4WJB4fcf9MVBNrw= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey b/server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey new file mode 100644 index 00000000..af834711 --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnokayama/plcolojgnokayama.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDKZEgNISTDoK1Mfr9MrkgXbFAeMQQ2sq0n0J1CMPZHgg761B9J +6oIQNZfm39usr610iHJ8S6s8cgp5Over5VWRxzRVlwpkMU48Kw6+YfYui3LMyHHU +zjB9LY+YtK6AkqFeiaGHtLQObK64qPziqoYKL0QslAYYRqidyBKsLFqRGQIDAQAB +AoGAYHgoN8nigjSmJd4MRPqVdkS0c4+dmIzWKDIxowk/epotlbViLJNQ53UEMJHn +XYpnPTKEj2Zp+mfJQjuvLgokHH083MoFkg+rbcg7sICcowy/1yazgy7Gyo4mTSWz +Sy3dUmrWJpUj5EnFAyM7fRe2S8zydNF2OY2Jiz+6uLwZPFkCQQDlVDohCQ+Zzalf +KuwnvoNFKi1bNKY66b3SelHM1RQyKgfL3AWtKg6GRHOFBgweayoiqYM90zb58Nxe +khdUzoIzAkEA4e4OIN79+a8s7vxiXHa93b01Li4ak6dO5O9SpB75/vCXh+RXw8Ll +HwAJgrYcMjnCLQnWuNwZ/uM/uL/ksFNLgwJAVANUPE/+eCEA4I1v8Gt52bfG3/fc +wg5pbRdEql6RRINjUcqsBbE3mvauv1fkzqwBxqsFGnwrUstrX/XzOC1jQwJAIRdc +DGZ87phAzZQ71+0wbAztgCESlXPY82E2SoGa/kNA/o9sZ2jhZEP+IJ4JzTV2gmBB +ifv69sFUMPwyQ70/fwJAfr3BzU3QEcrObEXrTmFj6nndShMVQAv2xaS0oVprbMx8 +3HLdTpb2DxMiqT5bLg5pBLcoUGhTZi8mXt2EOhQ57A== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert b/server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert new file mode 100644 index 00000000..d21ec330 --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvamdu +b3Nha2EwHhcNMDgwMzI4MDM0NDUxWhcNMTMwMzI3MDM0NDUxWjAZMRcwFQYDVQQD +Ew5wbGNvbG9qZ25vc2FrYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvsQh +G/Yg2RA8m9eVAK4sdLQBEMsEgi4Ngd5n59Rgj//O1K+cv/9PwsS4kQwwaD+gdaO2 +iFJLdGUR19ykJFgIOAuF4rc/ieH5Fncwhsi6+WjDCpK5qCZTFhL8eCc1jebAFF/u +7Y3/tT4HqGcskuTIQAUzXBSdS8I+ck2fc2U6B0UCAwEAATANBgkqhkiG9w0BAQQF +AAOBgQBrcjxgxY8UGDofGEQ9MCQH5WRT0JAobaAmi2JhSrH5gE+q9k1erflRpqtU +kmvJregmzfsdCKiKHKwzwSfEQxJLYtg4Aq8UNGUR3qOFs6G2cMq9UOF8+wGCIQz+ +pOgxaS7dtB+hZsdTQZbUe6pjQ61jCWikc6s+JyGT4bRklnvtOw== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey b/server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey new file mode 100644 index 00000000..aaaf18e6 --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnosaka/plcolojgnosaka.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC+xCEb9iDZEDyb15UArix0tAEQywSCLg2B3mfn1GCP/87Ur5y/ +/0/CxLiRDDBoP6B1o7aIUkt0ZRHX3KQkWAg4C4Xitz+J4fkWdzCGyLr5aMMKkrmo +JlMWEvx4JzWN5sAUX+7tjf+1PgeoZyyS5MhABTNcFJ1Lwj5yTZ9zZToHRQIDAQAB +AoGAL/8WuXtGrnZoWWl3QtGPu9kiP4Bk5QADQ/6aM/j6RqC9AEQi8yeggMeQDGZ9 +s2z2yUJkhY33EBTx1VbdMYu4nTmlafWTczSS/LTxFfNLEJzPvZ5TYpZKOfWXiStg +KbebJszaW3H7MKfLfKxMIvC6d31erBM5iJoBOJvNfQE3uE0CQQDwrChGwcdBGm1B +dZbT1qBsOkPbpPtyv65Jy6hx65dFRx0r/tPi2lua3s+D5laH9AbVJljV0C2XNJCl +eBHxg0SnAkEAyupQzdb5I1fVSbMBZsF6ke5Cf7t3aE+h+nIFrRoQ12UGSylehNWp +06i1Pp0k0/scg78NXpqB5UUOHxvVKwsWMwJBAKFMkHXTm4pLftv3Rk3Vs5C1gBMu +QIPIabP1tYAcSDbbEXcSA8ovVGO4XtXkwyu85fNnDvTF4DhNt3/euA/oTVMCQQCX +5KKsEvnYDQ2p54drBfXcez/oIcqWmNWlhejd1R86PXNinAsW4GIKAMX7ouJIlDaa +IE+/u2T03KZffxQo7lmlAkBExI+VF9b8FTJIo53k/+NsnXkUXGrd+Li9ejQKlPaT +AifkfZv5Lc58flFfd6aRbKYXROjq7LUA+MM2kE/2D1AF +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert b/server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert new file mode 100644 index 00000000..07dd5888 --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBozCCAQwCAQAwDQYJKoZIhvcNAQEEBQAwGjEYMBYGA1UEAxMPcGxjb2xvamdu +c2VuZGFpMB4XDTA4MDMyODAzNDQ1MVoXDTEzMDMyNzAzNDQ1MVowGjEYMBYGA1UE +AxMPcGxjb2xvamduc2VuZGFpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+ +mqfgH+XFeueopeeRKg6VGo7j/ikyexu0FN23ep57Nva9+i1M9vC2oMBiwl//hmGx +5jXfuWYgm92nYxD4syYLwHWwd1PhTP4lka1TAB0MaL6TR9zLMicHjs8CPVsxNGt+ +F7QmKixhg5xTd1OYjI4uJYvGfJpgWmRR1I0EHM3qnwIDAQABMA0GCSqGSIb3DQEB +BAUAA4GBAFonC4Ej5gxizDbXM/G/8a2mWJx+MBtL6X2QY65vMEGN8LCoFM42Egq0 +0uHXwOV/8NrWanXTTU+iInvdnnSUJwLFAlaRhAUuCQgHnBFhuWsJtj6YQK7sQ3Fi +yiJk1ZKK4JwyIjj95sVPjHgM5lPFawhl/MFUHeSjoUjBGILrHaVh +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey b/server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey new file mode 100644 index 00000000..92f5693a --- /dev/null +++ b/server/slice/planetlab/jp/plcolojgnsendai/plcolojgnsendai.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQC+mqfgH+XFeueopeeRKg6VGo7j/ikyexu0FN23ep57Nva9+i1M +9vC2oMBiwl//hmGx5jXfuWYgm92nYxD4syYLwHWwd1PhTP4lka1TAB0MaL6TR9zL +MicHjs8CPVsxNGt+F7QmKixhg5xTd1OYjI4uJYvGfJpgWmRR1I0EHM3qnwIDAQAB +AoGARfaO2H3c4XgTwJvlPCur3p85BAcvKBB4QsnF+KtRsPij6WgDaNTb1q168MVY +Z3r0MVDHRa/QBPgxjFeYyzE3LUb0rKcxJVZBc1FsNJnRdgs6+y2LnGcIcmS8QD7A +/+ZLo8WVl/wlRl0l6ygFoonn2mwG+ndNK+NCd4Vb+gm5RUECQQDePslNfTDdQeQ1 +kRUG0D1nGqnXoKAtkMKvUbR4Q9M9Hg+eZC/Iicy2LNr8rHK+yBk3R7iH6WJiZh2Y +nZO0pfaLAkEA242d6A2NiaEUoi5llR38axx6wfoq/WJSWrGbznFeZjH/BQD7ufLr +9GGs8amsqXsd/7QbmH6O8tE5LH0cEBdyvQJAaaFz8jWXfQItYlxjnwpotNGSeh8p +Ip8UOVnfKe4qv3jDOagqoekE+G1XZBLestjOS1z2UvrVPSmF1ZzHsGvVQwJAYUCb +37yRI5PMtgJjUOhVdYTKA76y6EZzQGVIJOwm6pHe6vKCjt3CEyBpISsNpo04vpmj +V6tH2ts+viw1EBOy6QJAOVYn6aZi9R2A+oFABeZKGiejo8J/cQr2H2TFbcyrQ0wR +NbcnLkpApr/jYeg41wi8VljgNU0suJq+L0tblCZudQ== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert b/server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert new file mode 100644 index 00000000..bdc4e2af --- /dev/null +++ b/server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvdHBn +ZGFuc2swHhcNMDgwMzI4MDM0NDUyWhcNMTMwMzI3MDM0NDUyWjAZMRcwFQYDVQQD +Ew5wbGNvbG90cGdkYW5zazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAx3oY ++bW9XfqQnNQLmnrAsj+bPAKtzRQUHl8RzOIH/ECagTPQ3/RpC2Io2avzAoaP8WpR +RE0GQYZIgc5HRAMqB9MyvBJ/WU/2G7uLS4w3sLKJPy5UHM8YNeoPiJ+6+UyOOjt8 +pf+PMwV70oFlf51xR6/8Zxn8u5zJKul2EypPQVsCAwEAATANBgkqhkiG9w0BAQQF +AAOBgQBxf6a0UIk2eaxbC0r/Ch4yg2/2DBlIWQtnulSPRA72+VFxM4VZa4ScoHFj +o4jwEdVynH0Ov+tffMa6EZD3x6M+u6yXVXiv/+CUJqgm5HcsTNiSgCtvbHG/f90t +WsZcG5wMNNaVwBpOoKfsV8IklKS6rysgX5vUOLv0Tys1qU3XaQ== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey b/server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey new file mode 100644 index 00000000..825ece36 --- /dev/null +++ b/server/slice/planetlab/jp/plcolotpgdansk/plcolotpgdansk.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDHehj5tb1d+pCc1AuaesCyP5s8Aq3NFBQeXxHM4gf8QJqBM9Df +9GkLYijZq/MCho/xalFETQZBhkiBzkdEAyoH0zK8En9ZT/Ybu4tLjDewsok/LlQc +zxg16g+In7r5TI46O3yl/48zBXvSgWV/nXFHr/xnGfy7nMkq6XYTKk9BWwIDAQAB +AoGAc4AcFAKKWm8p6tTQvyrShqNTxCSc9ADrQUa07Nf33bSega86A2Lmq+OzWY45 +kD3P/O4djhm3RJt3Qknpc9UNMSE8fnhmle5febWMlGCr+NgYbliBWX156Twkr5kN +pHUygZDcDR37CImPwiAAnpZEIV4zMVZTkuvA9/P0YyU8KbECQQD96utkFkLJVzFg +yeka0QKQc4xa+2SdpG5wCs2kqgBsP3QKaqfNJaBSEQhqM4rFdHAUttufe4O/VfzM +/nS3n9wJAkEAyRziTZ8kuhy2VYE/mM24DnHPEpMRX3/dGtDfqyl9yQGjnxWATFSa +KjkvtEpCWibYyqkI8Rq9sekNd3Of3gQTQwJAIOPSE8fSZNQXgEsHF8MlCuL8tjhE +AytuZrLvijm/DkZ12HeSPr918ctlBKSigAsiDXzWG+Va3mjb8w2uvq5FSQJBAJn6 +TGYDv7ni+9MxdwDGGPKuPk3JXhbRLfc3DtjclprMb3sAmk9WwwYq7JRL+stNTNS1 +YMxAnhZWCeJ4G2F/m0MCQEXwcw9Q4p3SSQBvu4suYtGLyGVKTj+8bUWPTXOURu/l +nxwL8K54Y9ngFMPvnX7hMbz1LguFkGzkHqXFoCZbx5E= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert b/server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert new file mode 100644 index 00000000..0ec933d1 --- /dev/null +++ b/server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBpTCCAQ4CAQAwDQYJKoZIhvcNAQEEBQAwGzEZMBcGA1UEAxMQcGxjb2xvdHBw +aW90cmtvdzAeFw0wODAzMjgwMzQ0NTJaFw0xMzAzMjcwMzQ0NTJaMBsxGTAXBgNV +BAMTEHBsY29sb3RwcGlvdHJrb3cwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB +AL1cxMtqidWckqjyaQzwYWI1M7uKsVexHllVOiso0idC78y+n0gTrRwjuCalrHZq +noG48L7qZpfN43qMKyo4sMEFB41XfTugIMGE0OsgjUl7J3Ywoe4OYE67QGl1/VMD +KCLJR3jYTLCNUWLRSplktrrB7G3X4ZEBwg9frPICxTvhAgMBAAEwDQYJKoZIhvcN +AQEEBQADgYEAjeCwqfRhzeTO+UQbeXld78LiH+ykZFG+H4Qzi98S3N/TaGbGtt9O +WFhmfCM5yqugAkWtcJZJwAnPqEmZZr7zbTr/rZSuo5hJnB+RHBn7om7ICSXU6ikk +HZo0mVLVCCZQdHzS1GMkWBj30PtpIL0NmKsLJSSHX6uHE4Yiao8zU/4= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey b/server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey new file mode 100644 index 00000000..eba8e5ad --- /dev/null +++ b/server/slice/planetlab/jp/plcolotppiotrkow/plcolotppiotrkow.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQC9XMTLaonVnJKo8mkM8GFiNTO7irFXsR5ZVTorKNInQu/Mvp9I +E60cI7gmpax2ap6BuPC+6maXzeN6jCsqOLDBBQeNV307oCDBhNDrII1Jeyd2MKHu +DmBOu0Bpdf1TAygiyUd42EywjVFi0UqZZLa6wext1+GRAcIPX6zyAsU74QIDAQAB +AoGALg0bhuS39I0JVbDuP0lORZXuqNNH4a2fVdZWORzKTuYGb2KEVgEC/m7pX+y2 +jm3LcnzJf4R9wrk9cxYXgUMcKMmzMxDnOqr8Nz1ZCv4PGdIm7tYCHjeSQGGpFXmV +ulXviX9UTjyq6QtwVI740wz/NkEAMGRAsRqwINhD7IE9lwkCQQDhjYZO+pcnusF7 +7nvQNpPHTneFmERK+2SBO6S+MHGivUgh5xrUbmbwQ+1kmf4KhMKNVOJyVT9YUWBC +8YpxZ7D3AkEA1uyaazEmSCpXY1/oV1chG0743t8P/QSbRB1C3C2Ti16wI6MYxW6Y +aMOSimH/dIA8oI4kTVdKs2k9GJuWxamb5wJBAN+3Cu9NOB3M69ormhzT9VGrL3uP +orUokfBooyeNTzjWOzR9UCxB8NIA3fZ5kvMF6R5bglta2ICV/j+H6gQ/j9MCQQCu +xi00qf1FhhkWWLGqBNKJUIkVRDPOP2a710e9oNpw5Yk7EbBdLPiHiTKrkdGYvYeP +0Mc4lZnLl/L1BeFvz+NVAkEAq1dj+z+4g8TPxPsbi21qBAcNcfTWZ7sar03G3W6o +9umHwhP7ee/cDP0BxhnIYPM8km/abL/JWYE06/zInWH/EQ== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.cert b/server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.cert new file mode 100644 index 00000000..48b2da78 --- /dev/null +++ b/server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcGxjb2xvdHBw +b3puYW4wHhcNMDgwMzI4MDM0NDUyWhcNMTMwMzI3MDM0NDUyWjAZMRcwFQYDVQQD +Ew5wbGNvbG90cHBvem5hbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7SMf +JoTdggcJ46fszrXh5biNTcaygwLeN1OOKtHmHrNX674Na9/ZJKKVuzvMX2xgKk9b +pQhJ8fEvnnjp/Bkp6oIk5kFRmruqC0thbz8ppsgIBTg/0WDE2B/zExJAQPtJjXuB +xr6mjSw6M4PB0WIOD+0lXTRQJDtoCi3wVjfTEeUCAwEAATANBgkqhkiG9w0BAQQF +AAOBgQCcNgVPr5GW3w3c4HYb7WyWMMbIkMf92zX0yiTW7Gxmn+kHjjfu4AvRnc/7 +yfZMfV9KfhjP5sbdYu+YbyuoV2XgjT7lSKDF4FT+7yN4GVpvgmSWIdifWrG5BnnJ +wB9mIN8qHA8NmjFX0HD+Yng498eoP5NTaNuR68jxeB5lvIj8+w== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey b/server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey new file mode 100644 index 00000000..21cbe02d --- /dev/null +++ b/server/slice/planetlab/jp/plcolotppoznan/plcolotppoznan.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDtIx8mhN2CBwnjp+zOteHluI1NxrKDAt43U44q0eYes1frvg1r +39kkopW7O8xfbGAqT1ulCEnx8S+eeOn8GSnqgiTmQVGau6oLS2FvPymmyAgFOD/R +YMTYH/MTEkBA+0mNe4HGvqaNLDozg8HRYg4P7SVdNFAkO2gKLfBWN9MR5QIDAQAB +AoGAA2XMbXXb4qANMTjXuMJ8YRk61RFyv1PMMUi+MbjeLjRtnxATCyei6dZ2hL8/ +l2JrIlAOxReQT6of/4pF9/m4Uv/IU1Rr/XnEb8paAbHNu2Vqp08xGGX+uD99tOII +w9lT2hA4MWety0GE7WvFceZzSZSxvDqOkvfxYfBC69yEw4UCQQD8jXHvthxd3vf0 +Uvb3Avn/yvMBih1iqmFo/40cg4lWS3TTbcmptek4RiIXGrMi+aJOXO+pzYcbVvta +3KJwXdBrAkEA8F/OoNsLYegYTh1zsufqWyw+Jj3bf9fgKklMxzadcl1pECcs07oh +0qR57I2UmLlccxNsGSZSSJfFCen00V/67wJAfTriAVxLCp0SVJuDDI70SktnXh8P +XSphLQBzB22N/zVhU6m/8qBaaeYU52H8693fBn589LUORpdGAhMflRpfywJAeN0j +r5wUYBlsxzJl76pPG6LmaSInUWQBsiGDOpQKnOu9HUMldhycTycmqzwRYK2rf61f +aFHtg9TUXYTG9dRV/wJBALLNSeW8yvdVBK+OYxHv7iU3uovifiOnTffRa7OBNCR4 +WdrZPruOnx/n9a/UwASpKvefu8PCWIaJjjYE/TdROwk= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/utokyo/utokyo.cert b/server/slice/planetlab/jp/utokyo/utokyo.cert new file mode 100644 index 00000000..e65d0f82 --- /dev/null +++ b/server/slice/planetlab/jp/utokyo/utokyo.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ1dG9reW8wHhcN +MDgwMzI4MDM0NDUyWhcNMTMwMzI3MDM0NDUyWjARMQ8wDQYDVQQDEwZ1dG9reW8w +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMtqtRmi6Mg2OmAjNVYUEa3mnICc +uBZiBWaPK+zXeSwh1swYfb6WkboBhdUUxtD5ZhLFD2FO8KrGXfo1/Qy4k1SBTczW +GLWdklzs8pAGGi5dRFuGXmSKy4tgwXmw0d28AbL8FaozLeKsDAHLjROTMXy7djW+ +pSwWz4+VLPGPydlFAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEArf0G5erePEbKXa/5 +JNJ8bYu0VYein+YJqg8AXF7qObESE1GFXrdmwbbaUZnRhDsA9Luc4+uMG3FQlBRs +iGA9hYnvUcPfFehGSL5jgJFBX7Js7+IyXkA2U5X8RHO04gyai8HhlWmCozWQSLCb +in7UJQr0S/UDdVOsnr8AE1+aBgU= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/utokyo/utokyo.pkey b/server/slice/planetlab/jp/utokyo/utokyo.pkey new file mode 100644 index 00000000..53bc125a --- /dev/null +++ b/server/slice/planetlab/jp/utokyo/utokyo.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDLarUZoujINjpgIzVWFBGt5pyAnLgWYgVmjyvs13ksIdbMGH2+ +lpG6AYXVFMbQ+WYSxQ9hTvCqxl36Nf0MuJNUgU3M1hi1nZJc7PKQBhouXURbhl5k +isuLYMF5sNHdvAGy/BWqMy3irAwBy40TkzF8u3Y1vqUsFs+PlSzxj8nZRQIDAQAB +AoGAJdxYlMrzlMAzIU2sUbcuizWPD4kb4l6gLrSbMlvwm7w4pIgyb1TLDtnVtRFG +6AJjcz7mW/A7by24tCd0T/fSw+RX3OosWdxODQmHczbO3eZ3xYTG7rEfNXXqSfkH +Esj2Za7++fUnj+8AVWLlHP69tAkDGXHUiTq9gtVQFzi/YgECQQD9xBmVgxThicl8 +hoPXrGDhQlVo5OXE2ERFfGSAM8Gnp+656Lkxsl/cBX34QJJsFsmAAZAoy66+hSto +y1/MDPuFAkEAzTUjUoXYS2B7xkpz5Ni84Gq1IrY+LIl9pjWYwEXiUogM7ar4OPt3 +l/wDZp4P/l/w602krzPLrwkWrAFFBLNywQJASvi+nj9l0eRFVLbhCLzyulpApYbK +o0dJlEXV41JnKkMg8mfhHt+WFojA2LErESgCTAEqOANFEyCA3KsJGF3ViQJAFBe8 +4qqqWA8Vb4AAwwqZy9uG6uQvSEsaG3kqAMGW/H/HzEmuTl4JAr+xUY3ugPjB7ThI +BMOskPHx31usd15ewQJBAO5aLhZNfJGos+0zFMN7fZy7j2pfDAHcLUVlMFTPatix +dXZCuDMGOXFzx9wTaqPS3sPKE90NaeNH32Z0LlKYKoo= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/waseda/waseda.cert b/server/slice/planetlab/jp/waseda/waseda.cert new file mode 100644 index 00000000..fc1f3f8f --- /dev/null +++ b/server/slice/planetlab/jp/waseda/waseda.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ3YXNlZGEwHhcN +MDgwMzI4MDM0NDUyWhcNMTMwMzI3MDM0NDUyWjARMQ8wDQYDVQQDEwZ3YXNlZGEw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOOiMWExTF/RJdYQvlUcW9XDJkGt +/08ok4V4wEseTm4y7vIdMIABItI04iBu5HH72NOq5tZmMjzcm+JDA8aCI77+cYJe +DQftIWvZXmLo7M5PVUBhTHGA0FUR5VAtcDd5D6o99dIZBuaeQ8fOx9KNP4xXg6SB +OYVy4aNGlhQ6WPbTAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAfeAwdyD3mMzfSRwi +Zx+fn+t+DfocVuEUUOmf9fQAnWP94hMQ1rPgmQeSzXUdO2WYAKTAB9rVgZdyReeS +5kuN5T2ehG1ukFiPsAGqXmQwIMash0z3Zdzjd0OdtliLBeuyWc6jDm4s5u+zsFEe +juSCyOaiN5igPDVGyIRVijdpUv4= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/waseda/waseda.pkey b/server/slice/planetlab/jp/waseda/waseda.pkey new file mode 100644 index 00000000..d2b1edf8 --- /dev/null +++ b/server/slice/planetlab/jp/waseda/waseda.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDjojFhMUxf0SXWEL5VHFvVwyZBrf9PKJOFeMBLHk5uMu7yHTCA +ASLSNOIgbuRx+9jTqubWZjI83JviQwPGgiO+/nGCXg0H7SFr2V5i6OzOT1VAYUxx +gNBVEeVQLXA3eQ+qPfXSGQbmnkPHzsfSjT+MV4OkgTmFcuGjRpYUOlj20wIDAQAB +AoGALJrZpjvsxVHMYjgBs9fMvwRweKpJvw8qaRsSQyX7JGjinZrOqCaQ1jP6o3RX +W2aIRGHWvehkq7xm511OXhWePy4skIXRsa0v5OpgFGrhzkCws58RzOnfth0b5yXF +/HGZCsVkkB9j2x1s/pw2HfUXzNeF1QGCtcUqFHP7V3qzG1ECQQDzgRLmARE0Dm+4 +pZZMb2euJWA8UMcKtEPpGrTEJDNnEk3zURvPnSn5OgS5/rRuULxnov2tAw6cfIJS +MvKO/GSvAkEA71CgOKaBuq1vn5sKgkqVvsA8U5oGzgxwRVZiIDGyqmt4yhQdv4u8 +OG6rkv83fk4FakMyn5dSHtcfUZr/vWkhHQJAd9RN84gU6jQsgIZkN0sfj5BvEl+C +A9+AB+ePi3JxJUjZuWJxuDKUZERL7SfNrPfoL2wDQC/f8dxH2aGewgSsmwJBALrr +Cnm089bO6ESNYGPrxZI7q+LQh0ggxwAhPHtQ1e/uCWYs2B9oERcyuagS11E7t1cM +LVohYu7br4aZve4/UrECQQCAx/gadct+1c8DthO1Hzi3jSyodRdNp1xbkmjY8Ndf +QTaX+D/XdfQkL3SgemTmaLYBoLzeutR4hRlCwfr3ZHoQ +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/jp/wide/wide.cert b/server/slice/planetlab/jp/wide/wide.cert new file mode 100644 index 00000000..addc5743 --- /dev/null +++ b/server/slice/planetlab/jp/wide/wide.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR3aWRlMB4XDTA4 +MDMyODAzNDQ1MFoXDTEzMDMyNzAzNDQ1MFowDzENMAsGA1UEAxMEd2lkZTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyOYm22T4B+dj1AP8jXDhJxkre/hrJsV5 +bVJbX9EXRgC57cSHaIPIohsnSagcLR0i1DjIxQK8wj4+9Yq7WKECI3UxwDCa7G3k +voMd7RBDhhPGxuByjBlG8i9ZglfiMvx5csTJMBZ704zda89IGCY+86jTIAFPX2VB +Mk8pmuishbsCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCicD1Hn0RKQIBdbRPsHAvQ +juJ0zx6PQDH+FnHRJ5zNqG3ng0hb7TKWNT4c9/yfZ2uavIchmX/v4NV8bIBEmm1V +N/xv8NOQaZCIgH+32cvylR/uHSWjCkntmmlTMNx0hOmGOeVSmg6N/T3FDGOJA3qZ +R861Ht0Kvt1MlXhuQyjNSQ== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/jp/wide/wide.pkey b/server/slice/planetlab/jp/wide/wide.pkey new file mode 100644 index 00000000..6160783b --- /dev/null +++ b/server/slice/planetlab/jp/wide/wide.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDI5ibbZPgH52PUA/yNcOEnGSt7+GsmxXltUltf0RdGALntxIdo +g8iiGydJqBwtHSLUOMjFArzCPj71irtYoQIjdTHAMJrsbeS+gx3tEEOGE8bG4HKM +GUbyL1mCV+Iy/HlyxMkwFnvTjN1rz0gYJj7zqNMgAU9fZUEyTyma6KyFuwIDAQAB +AoGBAJqeyHlDFMLAjEy5ZL9XiXKWJKmdYJrOkc5Z/ImaW9c859zfzXfbNafOTkaa +ZFU0f4Hm0l8O5Eh7r+k7hUWJZiKWw0EF6a01bDrYB8R8ymRwJm6o49aIF9+Gwe/U +kcSLhy6rXePj/HcWl16GXQ6i0+aMDZ7bFYfpZIPsWpYe35fBAkEA7IFKR3ykF4M6 +LxJyDWUq6QuRIncFpatP7L/hYZ+Jm924WuiTqOQyY+VOZIjVM7HopHoDmiq7V+T4 +aJ1cIqWDPwJBANl1ga3yS0Pwo9rfhoTsuSY1tty0wfSHk/mWyzJDWKHg523VU8fE +4syQtugcLPtjs9fd8r2vkWvHl+QzUBAZKoUCQFyTGzUyR7TgbAUC7lvp7sr7+RqJ +hk9b6FQeo6Un4qB9QG1tPmdMs6DAoFff67xpdkvzareM5Ho6KTYh6m+xY9cCQQC7 +aQLvB68ICX8dpaCINH/Ix2gmQ/4YITRNWUEbu2DKekrZpI2E0FDqHhoUZhv6N84J +z3VhNsssSSLFf9eTWC0FAkBKjDOAZurdqAwytyRmZMBMnDaaP7irBhyZ8jZjmU6X ++rAXKv2GM28jktMZiuquUA9utLwBAm7aIwfmST+3GIXm +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/ntu/ntu.cert b/server/slice/planetlab/ntu/ntu.cert new file mode 100644 index 00000000..cccdbf4d --- /dev/null +++ b/server/slice/planetlab/ntu/ntu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNudHUwHhcNMDgw +MzI4MDM0NTAyWhcNMTMwMzI3MDM0NTAyWjAOMQwwCgYDVQQDEwNudHUwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBANqAs+Z926Fk2gRdSW/zw+l/I1eaozavqEsy +dFz8uiWsSaWgh79ABkb6hzIAI09kAKmD7UyuHh59mzoynINdZ8uB8+S5z+kVhWpr +8V+Rt6gpQkDgc6NdsTCJAmhLXTqAJv//SM8Y8nXY04lND0w1opt3FqG1Hn0NC87y +30Wdt7v7AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA1xeD547F7TimLmtDU5VBuy1u +vMvkuHmyhdtzaiaia7vXFDBpS4G2lI12FeFpyey8m9cmYufmLvhBCy36jLr6AUpn +uHccguZDxBIRiVn1iCnO2KhcM2yS6/FPpneilS+hyNdMnwCngSRlv85xEkt8nzad +ZYKZ6CKgKFtdBO+/diA= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/ntu/ntu.pkey b/server/slice/planetlab/ntu/ntu.pkey new file mode 100644 index 00000000..526e97aa --- /dev/null +++ b/server/slice/planetlab/ntu/ntu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDagLPmfduhZNoEXUlv88PpfyNXmqM2r6hLMnRc/LolrEmloIe/ +QAZG+ocyACNPZACpg+1Mrh4efZs6MpyDXWfLgfPkuc/pFYVqa/FfkbeoKUJA4HOj +XbEwiQJoS106gCb//0jPGPJ12NOJTQ9MNaKbdxahtR59DQvO8t9Fnbe7+wIDAQAB +AoGAJM0Uf7em7DHuPlnv6nkmAAe3ziNvZeCD+dZPnvG58GpqJQk6k82WwRGk/5ji +WZbAPczIhOe2jvAc2tp3XfC3cFF1ADWBxclGw4s5QjqyFRlrpwsL0GhPNnpaDcvu +AgTGpEktGVWH0uZ/hNUUOrdku+/pnMH8NmcSmXuonM0cH/ECQQD5YO0+aH2i9tlq +1mKUDf4txh0qZMrapAsi4zhx5nmXDRHGgtiAHcsCUr60YfagT/I3wwmr7m4KYpJm +Q2Y26AQHAkEA4E3oKcQ038gEyDfx/6Zr+hNv88beWoT8uqtzzd9CuX6nlNDaGhRY +ICcw0MdQlRqM7/jNb0JTTlaob24sLPKTbQJBAL4+Hz7Y39+OiVZjrlhcRGgPFvjc +Y5RgSM6YoNrjhCajpcfW0esKz3A6R5m8kjTCSHoZpCsxfWkWwbCaAkQow8kCQQDP +Gj/VaIslYEpCD53K3X9vHElO/XzKeWXceXfoS08RdIcI2bm3QLeJoIXrD00xDp24 +6LHOG6BNgaftkv0I10UVAkA34bml71517zxX9Fu/ZvtmeH5F2yZZfDfbpTWtEJ91 +c1IT8aug8SBUXAiTICdEmb7IxP60pWaHoaqX4IPJs/9N +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/planetlab.cert b/server/slice/planetlab/planetlab.cert new file mode 100644 index 00000000..9f5b851d --- /dev/null +++ b/server/slice/planetlab/planetlab.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTEzMDMyNzAzNDQ0OFowFDESMBAGA1UEAxMJcGxh +bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz8uZVHahZ +QqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vGO7aT7bJC +apb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9 +OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABRIUVzW +JbwQKnqM3rVHJoSgtYWpgDvJosLCrLZhsXrukOsC8Gs8V6vPTPO7kofdUbHQKRnL +xp1nI5hlWIlq/XOnh+NEPZaB2SAKwfl3FZwUqjaEVd/VYOfsRryZtiUz4sL3CtXN +C8i/I4HwCnrl/pmzbprqpGq+RJTa5yLmBw6r +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/planetlab.pkey b/server/slice/planetlab/planetlab.pkey new file mode 100644 index 00000000..93360c8f --- /dev/null +++ b/server/slice/planetlab/planetlab.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC1NiZzJyIz8uZVHahZQqcmhsxROY8YjjRF/WGow9t8hvaimScO +0yH3VUEPolblSM1Juke6M3vGO7aT7bJCapb7kuoHlrS35k0K/vcOOMXS80gpT8ol +tKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQAB +AoGAHN02PKtkGFA9fhtOQIGMbGeWTe3ULD4id2+HycEAyhIZYQbyILtisqnixiG+ +o6D4CiFg4Xjn40iJqYB4H3oo+D7s9yitW8dz7/e3/7uUJvqypO9qxY4lpOesy9Is +oXTzI3feD7muC6FXUhaEjXGNeovjLfrkpN6XfU7HSdz1WL0CQQDZs4kSDVdgHWuB +1nsfwG+9moPX9RfgPevrM0ydLBIN7wBNg8psFFd7swW64DS2XDFTFTsk/4PqRy7A +XBLJ1seHAkEA1Rc/0g/DFqLMmIVORVZywt5utK6aGw6axMnzJ9WW2uqhaECsuifW +EWxuRZ6iXhHKvADrpoL1oyHwO6I/4IS1ZwJADBg+YENffFaGF4OL+ZqeWqFP+9qB +BhNKnRmPgxfktON3V9cfktuadKPgiJ5WL1912hDO5WJQuN5ViZhT7uTA1wJAHFEj +nQGVNjvaHmaQmSw8weKXKZGOTwwoyv/fPSroCh1l55m4mmBS1Svol33WK9QHceZZ +al460DvhVbtg67AW/wJBAMNV87DOw5Kcr2C4DJ822uzt4tfdfrFO6nL7UQlxZeoz +osbIYKGeVxm66r6dUmK/0qjqpujWnFCFKPxrMq8qXrI= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/qub/qub.cert b/server/slice/planetlab/qub/qub.cert new file mode 100644 index 00000000..e6edef6c --- /dev/null +++ b/server/slice/planetlab/qub/qub.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNxdWIwHhcNMDgw +MzI4MDM0NTAxWhcNMTMwMzI3MDM0NTAxWjAOMQwwCgYDVQQDEwNxdWIwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBALmCUYQmYfmm7+u2PFKJmK08mBJV7fwVnk02 +Q417ydokFsINqmLlJWGss4uwELwuU+9z7kKnALW6zTDRCO2OiozYIh+iE7Co1qXX +t61LEn7PLnVqfx+QQJa9f7TFziGWyGkC+gZSsowtDMjbtzhZihfevW7j5/SOtH0d +0Wtzc4BxAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEArH3c4h00MS5B6pjuX0Y4DnZc +uU9xwMTlJMIjUTkpUX/62p7jwWQIKNr09jbyPJPonV4nBlf/TnKNDwmmAzop8yBB +84A+Drbs4PcP8jtAjyAjqz5unLahsnr5tnOM2xvOqbPCq+d3fnqLDs18ncS86AEJ +501I0AMdgWt4WJOxxmM= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/qub/qub.pkey b/server/slice/planetlab/qub/qub.pkey new file mode 100644 index 00000000..1ecd1675 --- /dev/null +++ b/server/slice/planetlab/qub/qub.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQC5glGEJmH5pu/rtjxSiZitPJgSVe38FZ5NNkONe8naJBbCDapi +5SVhrLOLsBC8LlPvc+5CpwC1us0w0QjtjoqM2CIfohOwqNal17etSxJ+zy51an8f +kECWvX+0xc4hlshpAvoGUrKMLQzI27c4WYoX3r1u4+f0jrR9HdFrc3OAcQIDAQAB +AoGBAJPtW1tp0A7oE8F+nDOlDV53Rzy30QKHqqgfcVbNM3UD+jHb+9bIqzpsIPBv +AalNuBjl9USpL2O7Bgy7Y8crN0cinK4VK3XNnhuCd871cWqfSY9UC3GCbWob8zi+ +IiQSBn5F76Dm21taRSBBN0ZjMRgIDU/w5Kol0e93uFP56tgRAkEA9jj9d8UW8TkF +u0XhDFyc7oFOTrkpzj42XTFIYTx4yx8SUBG6Zz57FF+zSPaAPTerqlb5YYu4ci2D +v4RcJfAPbwJBAMDgIuGVu6E4Rytq/doIbtX6G0QBqASYmoaHQ2ARWEgXsUgH1FzO +K5l8p4AZ7yOYEJNyHiCU4wD6KbMRLlRHfh8CQQDimJYj2F0ByIGO1IOFVeIS2StQ +5bUkmjp7z3QWEIn2HPVEfNw4UdcBbAVaG4jvTcGNNReyftxTL7H02gHX5DK/AkAB +p2plKNWNEmB53NcEcaIRr61gLet07qIUmUBYqI1rQNjCV17Y1OPG0yzUimRkl788 +pHPhr6Uqsvp8kJ8nFd3dAkEAnXdfpZHTwovZnvMWZp95tNGOTUczTl1fcrR800vy +EUXTDpAZSIAaVTE+DUIlXKbrH5sgg4vZ2KpLaI31gaUeRQ== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/snummlab/snummlab.cert b/server/slice/planetlab/snummlab/snummlab.cert new file mode 100644 index 00000000..7f14c3fd --- /dev/null +++ b/server/slice/planetlab/snummlab/snummlab.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhzbnVtbWxhYjAe +Fw0wODAzMjgwMzQ1MDBaFw0xMzAzMjcwMzQ1MDBaMBMxETAPBgNVBAMTCHNudW1t +bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC43rIuNr6Wa8Vk5nBiCcDh +/1aHa8XryNn+/4ZVZrcd1V8lSriHqPqHn6ZX1GqsEEaSVEgZfeEmMvWqpqmO4Vwc +icISLZ7qw1L2TT+aFSo6RRiAv+xQMYv1T8VpeJgcy/minU+GDfl6yL9N6PdeY+rE +bPitgUQe034C3/Xj9tKSCwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJ0Hu8NhJwPJ +xFixK3yZfUYC7nWYE9c3NdCnpfUvCpq0fzKt97+6w8kjSCIJKRmLkj2W2UljZEaE +L0c9l3fJul5EqmuSITacgbma2WCmYfVzDJfhGB6iZdpupI1j8hycOpr1kt02udMG +PDZcIzTeRmtQZE0vleGkFAzNMAcjOTDE +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/snummlab/snummlab.pkey b/server/slice/planetlab/snummlab/snummlab.pkey new file mode 100644 index 00000000..039ec42c --- /dev/null +++ b/server/slice/planetlab/snummlab/snummlab.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC43rIuNr6Wa8Vk5nBiCcDh/1aHa8XryNn+/4ZVZrcd1V8lSriH +qPqHn6ZX1GqsEEaSVEgZfeEmMvWqpqmO4VwcicISLZ7qw1L2TT+aFSo6RRiAv+xQ +MYv1T8VpeJgcy/minU+GDfl6yL9N6PdeY+rEbPitgUQe034C3/Xj9tKSCwIDAQAB +AoGAUFOTIDlxPnK9ZkYqdq6+PHRx6I2Phg/TiNUGTX0/+5qGqPF6lJd7pApegLMv +VmwL/fDZExp7BdoGnIumCQsqtg6IYRtNwF7LOS5VRyek2JSGFBpqvhbCfPA7mlVk +0hj88fEjpeElCzKBYlvnlZJppPuEB2xZjKUrS9YzzrftB8ECQQDhjO1NzLDF9Ll1 +u6NFZuxejK+RJr4+W/W05Ql9TgdZigPsiQw967UxmnUVxmC0cJ0MVQoYWmN703Ii +Ci2IyaQzAkEA0dPW1/3+LuOKwN/dYSZM6tZkivKo19ERBWvgh69shrCubBz3/VZW +FQj4WbNeeNxdxlNG6sGXZNQEsyLLk6bCyQJBAMsNjDWWKS6Nesk6+2nnlrQoA4ax +UmPhdfo8l6ZvML6zOYUgfBzirmTRoMbRqQ3ItBn+FPCHrzgyy3VJpGSY43ECQHlx +PVi3xeUHh2hIaU3wJ/aHbZvKBJUciNh1bne5vXtbSSiDv7hdvubf0TXBjf0vtgqy +ako3D9OorquriN4FV5kCQQC5dO+YcuzPzFDWST9G5Rd9vuniehMMpPkoSyzHaKpa +/9rYvcGiKH9oRAj87cTJPkVdrlf9+H+xo0cId3s+3cw1 +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/sydney/sydney.cert b/server/slice/planetlab/sydney/sydney.cert new file mode 100644 index 00000000..fe31e7c2 --- /dev/null +++ b/server/slice/planetlab/sydney/sydney.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZzeWRuZXkwHhcN +MDgwMzI4MDM0NTAxWhcNMTMwMzI3MDM0NTAxWjARMQ8wDQYDVQQDEwZzeWRuZXkw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALRNsTAX5KRMoT2eEa16ahL7dZbg +5QqFGBMwpdCyjF1C5WGRPKRR4teOiDua/8VkA8XzCAiYJA/xIWi6bQLNZXNOizCZ +yNhxOH3zU6Xn+1HEK54ljqfj85GJxgyAB19v4Ao68pBx94OoYFX5SugM6RpMkPyR +Rdrk2DBzQpAw29wJAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAiNF5iXzOsAn3qQei +MD0Bzban1KIPgvrqWnHT2IXzmNwir7vSPDKGRZhbZZZDikCwJ4i6sjHnCBTDipwx +sXvCtxGpYgBjxBH80uYMjyVhro0E6me9lC/RyhlwsF03bm4hkmUmu6lYr7ls7d0P +IbFQWJwJlrZSW9KrFLTh9x6BXKE= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/sydney/sydney.pkey b/server/slice/planetlab/sydney/sydney.pkey new file mode 100644 index 00000000..b57dbf32 --- /dev/null +++ b/server/slice/planetlab/sydney/sydney.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC0TbEwF+SkTKE9nhGtemoS+3WW4OUKhRgTMKXQsoxdQuVhkTyk +UeLXjog7mv/FZAPF8wgImCQP8SFoum0CzWVzToswmcjYcTh981Ol5/tRxCueJY6n +4/ORicYMgAdfb+AKOvKQcfeDqGBV+UroDOkaTJD8kUXa5Ngwc0KQMNvcCQIDAQAB +AoGBAIFIdBSYDUoB6FvWS7aoYAbcZ6SX/aNda7XW3A6Y+CynGvKqwWDRlmYZvXV/ +3oYbANmfOdNvw+vqapo9koy/2k1vUobGxpFhf6M1CHbUfWiTTo7bgfpyTRhnWiif +smHXVNLKBanSz0jtFbcLCGNBebgv3A8gbaAKEMOMZvABhYABAkEA4C1FJnfGafoS +pXFFLjYz2ettDX94Uy8T4tHSNLGFEOnatf8jAr6PTUn/VHyRtFlil0fqKHEr0tAt +6SRS6shfCQJBAM3mCUwFMYmiocGS/oI5PCgvcc1ErAMV1+36gO4vOygvvuj4BrWZ +52NgDnfVJTgQ13iCWBKObWTrbuZHv7Y51QECQBOcQjFURvocUyc/2mJpgW2tx5Nn +tDnqo12zJyVO5ioNmwFSuVhTHSwQrhJQ91oEe7hqJRS2mbPOXEXJ1KsPLikCQQCR +95vtrdzho08jiU8vCN5x6ri1+hIsGcc76hSPRyKcKcUhKfyvr80PcWCwaYX6Sk5H +G7jOZvR80D+Nt53c1QEBAkBFg7ZtmMxOhibXXOokIXj3v1Tuk3LXiSoyrm0JNovN +ww+uNNbS1b0wi9G+RT7mDwg6eisfphVMz0EHY6UTQrij +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/tau/tau.cert b/server/slice/planetlab/tau/tau.cert new file mode 100644 index 00000000..4252c740 --- /dev/null +++ b/server/slice/planetlab/tau/tau.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN0YXUwHhcNMDgw +MzI4MDM0NTAxWhcNMTMwMzI3MDM0NTAxWjAOMQwwCgYDVQQDEwN0YXUwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAJpF8y1XoUb/Wr1/yDkAXfGRlp3Lp0Z48wSS +T4z/Fo5NLYW8fU/fq6Bvfa0W28sptq+uivXkTP6+SJZdaLtmVJ88MsM/1wvIwfVo +4B0Vi1rnh1YckDc0Gwj1lwiL8HV0DJNBFSZDhXWN3T6Sd7SklD/oIDipVmnHu/0J +y/LN3J5zAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEADKcOxoRdxnYssCOskOIpExk0 +3Ju7n9FASc4SCiiu7WcOov97YQTRW4K+sWWqmpvOPcAA+ndb5s0G23MizavfbYdi +HLpckuaBa7cE9iB1mJMFhKFLgzSudQ3xJUyU4uDmH5B/xntJ0z/mZzG0oYz70jZt +3aJK6i2h8/+l7ArcV+g= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/tau/tau.pkey b/server/slice/planetlab/tau/tau.pkey new file mode 100644 index 00000000..fb10b3de --- /dev/null +++ b/server/slice/planetlab/tau/tau.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCaRfMtV6FG/1q9f8g5AF3xkZady6dGePMEkk+M/xaOTS2FvH1P +36ugb32tFtvLKbavror15Ez+vkiWXWi7ZlSfPDLDP9cLyMH1aOAdFYta54dWHJA3 +NBsI9ZcIi/B1dAyTQRUmQ4V1jd0+kne0pJQ/6CA4qVZpx7v9CcvyzdyecwIDAQAB +AoGAD49SkZYvDAwhSM+kkCs7TmwStuOdgXwddq6TG3N3AO9D0iNKuE2k78+O63BM +xtb0OA/wsBBQu7jRdWkCcTRHAIhkW8Y+tvA6IXIFubDgtNzIQCnY2OEXLI/0czsC +eqy32WGQR32S7NzHTeSpsCIUspcdNlRoYFrFwBwrlH8fziECQQDM8XOvP/TCNB6m +iuRWByVmrdp0Th0W4zwQgUDLptpjfwLO3pEf4RSMy+iqY9imK6eHB+G2AIZOvanD +IMj/Hm/7AkEAwLTzIjFrL7h0Jg3Q7jVdzS4vlt5Otfa/rucG5pAuu0BBxWqr1xjc +BQL60RaxybRmqIT1NnbvDAFjs0b72PSp6QJBAJQ9Idxlenjuki0M0dSYHqmCnzz5 +M3lWrB+UHnYwHk9Rk4pm2rogaGjfJU/6IL8xXGADh3PKNVvHPH/zuu8t6PkCQDx7 +Tmfn7MVAdivPYEizNSqFmWgXg8q2k/i4B8FrdU9N3pawYRiUc9Ga2s+u+MPeu+2e +NTwP3fz9nqYQ3FB+kakCQQC5YPA/4aK/ZNVTHNFDdCWrRwIS+BSg2/VN/JpEiOoY +TuzQqXHpZ0uGMCyE4nxkMOur9EUj/KAQ6udq1b90RTfR +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/ula/ula.cert b/server/slice/planetlab/ula/ula.cert new file mode 100644 index 00000000..02fcc430 --- /dev/null +++ b/server/slice/planetlab/ula/ula.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1bGEwHhcNMDgw +MzI4MDM0NTAyWhcNMTMwMzI3MDM0NTAyWjAOMQwwCgYDVQQDEwN1bGEwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAJ+mTuFd/vkl67wlVFoioHJnhhjRWcUoMUi2 +UR3l4bCzNQuOvRoxj/FwmYMJiWvjbVq1old0pfcAL+x9Kd2NS+ZePJ9OaA6Lv7KS +0XO9UJWt6P8EhlCmMZPtnnFK3Vf17FQJA9+IuYm+TFjBPqEZvPm3aOIhF59llSpl +w+dTHhmpAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEACe+BOrpATA9RELoAFS/Cv6KJ +JdaRgZ72jkfbDeOyaR88EIy7KssQ2UwavgPgoFNuqtHr1AsAMvso0CFM3pMmGZaX +G1lCWhsbXt+mvtuG6K4DY9fAvwj6ougBIy+SUe1iIWQk+AfBnFtpAy9LrsNxrj/N +pNDZDkHM0MYlAoPTox0= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/ula/ula.pkey b/server/slice/planetlab/ula/ula.pkey new file mode 100644 index 00000000..d3c62d30 --- /dev/null +++ b/server/slice/planetlab/ula/ula.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCfpk7hXf75Jeu8JVRaIqByZ4YY0VnFKDFItlEd5eGwszULjr0a +MY/xcJmDCYlr421ataJXdKX3AC/sfSndjUvmXjyfTmgOi7+yktFzvVCVrej/BIZQ +pjGT7Z5xSt1X9exUCQPfiLmJvkxYwT6hGbz5t2jiIRefZZUqZcPnUx4ZqQIDAQAB +AoGALh8IiLjz8RxQZvFN1iBMw+A+cCsCyR9cZYouEvoXYknTWDxrSwboc7K41o9J +wP5Z2CvC84sCa0IFlkducc/hDf5oFdkehX4LYUQFjgeggKsK8KNbvEw2j5vMemM0 +1lvb4ZOq2JguO10QYKxv6cmEVfkX/xmvR4TbbyaeukNaMZECQQDRZicY21P4Ee2q +gyhB2ykWsolHtGJ4QwCpHw98E7Ysa3rGUUX/SHb2gK79eTNWdtlmDKgR44T1Etaa +mNbVxOxVAkEAwy3XV72BcQMA79b0YAsuzd8TXZj4Mw72Gpf9CYxmTBbjrZeDTrGX +B2dPpbgDNWf2rgJSE+B1FbovGI15d+uMBQJBALHq3eVc1ee9M/bhId9y22KRp9rp +BZGxPGp2Ha4LAYqUd+jxPUw+wfWIOSbdSCV7LhRrRJKOgnXI39bTbhaMD1ECQAZs +gtLrdNAwZh5+t6pVk+PIvM1u1HRxwJ3ddMGUsmU8t5+mBfdYFv1yZAezR7/BPTg6 +8VKgJ5pgd15aga31vbUCQQCNFJFqbAIbIF6DiAea0UBFn/tR2umn50svdstMuBLe +lc7a4l+ooptrvHwUHt4pDk5N7+NgnoFDztgIJDBuUHDw +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/unioslo/unioslo.cert b/server/slice/planetlab/unioslo/unioslo.cert new file mode 100644 index 00000000..26fe655b --- /dev/null +++ b/server/slice/planetlab/unioslo/unioslo.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwd1bmlvc2xvMB4X +DTA4MDMyODAzNDUwM1oXDTEzMDMyNzAzNDUwM1owEjEQMA4GA1UEAxMHdW5pb3Ns +bzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jHiJeG/dqPZRUNSQ5S7aEF/ +aT+sQOVS1wxZbpSsqhMnxtyunoJ8ZxUMr7I3owAu35vR7cW0k17aJbLyIrRi50UD +i74aF9I0mFn4MFhz0TeoZvP7H1s5jbNjUouK6peFJFI0V+z7tHx/hYCaNXLYzs8I +n+cul98aKoVeKXsJcRUCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCBGU4uF81f38bj +2tQml38Ri4eQH/Pxv1tfB1kko447ImJ+B4QUK23D4VRzFDqDqUc5jIjxuy/dLVO1 +2FXdUaIeV2BOtRh7b2uvWESqqpVu2RrpPBcNNv6uc3oOGwdIfY6LyKcOEei/fzvh +nHYySDrIReffb0uZKjUtjlBdATEu/Q== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/unioslo/unioslo.pkey b/server/slice/planetlab/unioslo/unioslo.pkey new file mode 100644 index 00000000..5583b278 --- /dev/null +++ b/server/slice/planetlab/unioslo/unioslo.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDSMeIl4b92o9lFQ1JDlLtoQX9pP6xA5VLXDFlulKyqEyfG3K6e +gnxnFQyvsjejAC7fm9HtxbSTXtolsvIitGLnRQOLvhoX0jSYWfgwWHPRN6hm8/sf +WzmNs2NSi4rql4UkUjRX7Pu0fH+FgJo1ctjOzwif5y6X3xoqhV4pewlxFQIDAQAB +AoGAGo5i3BZhckPRN4cB5bfs1Ycw6cM5qBlRFgphYi82gWZaKC3Jgg1KWlu2dpw1 +m0pyoZ22MCxCXDwno4uwO+I+fG7Tg7risu0IxqihveyL4tNORPN2B9XfP8cP+S7z +n6qihdaElhSjJWUZw2yDqv3lUFqwY6qbzWbETV4BEg63byECQQD71fGnfvgDWL2p +H0YK5LICk04pbyS+fzU4pBV1mLk6A+lpcNJnRDkXbwSBVMRUmLEWGguo2bxYibst +uCcoJqprAkEA1auq9QQQunZUVwynksJXYRNbhTLVY94JInQJ60EjUg8wvGoWrMJN +YaCwSvx9ry8agcBgdMNrZltgLuKbMDYyfwJAH2MCw0Vn08LzoGhtal4mcXu6eh+I +DNX95BlPM2DddQWXybRuBMDT/L+xaA0Qixqct4x3d4vrlX1U/tW8y5xGEQJANSca +RQ841hm/i1QTj5eWwwhcuPrXSJugbBivqv0uOyiaOBSwBVPkige+MzkyTtUJ5AMm +O4Wtfu32NFOcxVaGIwJAVIun2AZznhn8Ezkg9Row7nQSFhUvjY61aqRbStnjXruI +X8dWmeCfg4PDdaGgLmkTJK+tbzBtTozNGymUVxet7g== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/att/att.cert b/server/slice/planetlab/us/att/att.cert new file mode 100644 index 00000000..bbfcf609 --- /dev/null +++ b/server/slice/planetlab/us/att/att.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNhdHQwHhcNMDgw +MzI4MDM0NDUzWhcNMTMwMzI3MDM0NDUzWjAOMQwwCgYDVQQDEwNhdHQwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAN0mIxSymiZpB88JCyPYdfJ7TuEzMoSemFGc +I9Pv6vcgPIrPkrTNUcJ0mphguzY75YJaXBxzW+jUfBCxjAT3hbon3rcW+XMM5REm +V53dh1hGKUDfF2JiqVqnEM+2FFmquSHd7auY8sVh8k7phQkWrytBnBfK//Gb/U/F +4CQjCO7xAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAHPYkaMYAn7yZ9O+a3eqKdaDK +bzMvAN3ZZsFDtQ5cNk4IHVkAleJWFlHTQ494FzUHWj1cvnEk5Hs+F7ZXZh8Zw06t +67aqq3f6AGbdVn3aJqFEIK5OC1TXit4lOLKSUeWaPJPOjW1YrtJgELuuecm8+bzu +S5OYVxz62lwZOXDogkQ= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/att/att.pkey b/server/slice/planetlab/us/att/att.pkey new file mode 100644 index 00000000..ea0010af --- /dev/null +++ b/server/slice/planetlab/us/att/att.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDdJiMUspomaQfPCQsj2HXye07hMzKEnphRnCPT7+r3IDyKz5K0 +zVHCdJqYYLs2O+WCWlwcc1vo1HwQsYwE94W6J963FvlzDOURJled3YdYRilA3xdi +YqlapxDPthRZqrkh3e2rmPLFYfJO6YUJFq8rQZwXyv/xm/1PxeAkIwju8QIDAQAB +AoGALJRSgAqczl9fxplhGIG7DP1UYksqxNcfh1v9UOzNJbHm4miDf1TgRV2yCEN/ +magrVMKYTNfoUB/9PnQ78Ihg+Uy+VLf5CaXyOAta0ci6/oFYJOxVh7V8/y7AVDlI +U51cDM3jc6cDzJhDcL3uY4RlJDPJIBaUPKTXQhEBZoK6L9ECQQDxG4qzAZxMXIww +hNO3xGjRM173iL+VTNOBkeMDjEBfuRPfVcssM8cdsjE9JJ+uErpwzpbXlQzbwm5z +Mldzu/mVAkEA6s8BGDmdTBg+oItcQ8gupCvsAq1jPiBiuJohqhd1K039LP+EmpDX +x/XrEhuD2BkgDOgD1YzR2yXMhoZbEf9g7QJASpGXEwfjfCZ/YR4jkMlZFaKKs4oC +nr1VCNTC3j0JR9Go2MDjBne5FHEhE2T5UdAPA4aRVnmNsYXvvQcLzwqLBQJAaFQn +mVroEAppsS2ahidoydsWFy5w/QaotnsNYCTiE6aoShkSExcuOROEKdx93UN0oSdp +pLXX/HY0BMWnqzx8FQJABPrwEb5H0l0VzQ1RF8StfiCAnlZE7+TZDKSe4IhWzH/o +r9d1m8bTTAfTb6kbAJrMv0KE/jL33rKdeF+rYGkWfA== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/aub/aub.cert b/server/slice/planetlab/us/aub/aub.cert new file mode 100644 index 00000000..9f55b841 --- /dev/null +++ b/server/slice/planetlab/us/aub/aub.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNhdWIwHhcNMDgw +MzI4MDM0NDU2WhcNMTMwMzI3MDM0NDU2WjAOMQwwCgYDVQQDEwNhdWIwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBALzIi+myvkm0ndYKqwHVcjNBGnGQN4cfL+p/ +W9Zf0tEjb/2Wo/JnJN80uvFUJcNbsJ61gGKgol8jSKf1bjZq3MdNYPkIWcmay3xk +a02UbEFOVdotRX3GIEY1fGkDHMvdF1Q0JYB/vsrYCn8JYI0wVsWAIRJ6Mfei0r41 +xctymawfAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEACZvYezSxSKx2k8OmnyfCEz/R +DW6vvpicdppWDwhz1nEvlyupuY+Iy+f1mCO+p/PYFwWIqB1Yalx3LEAmc9TH9La1 +A6UIVYKxT1/BvqkMYHoRVXF6A1mqd6qtyp96juQx63zgpzdauPJQfNUFLLXxHhRX +iz2ewh74GuvnaUzS5sE= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/aub/aub.pkey b/server/slice/planetlab/us/aub/aub.pkey new file mode 100644 index 00000000..399e464e --- /dev/null +++ b/server/slice/planetlab/us/aub/aub.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC8yIvpsr5JtJ3WCqsB1XIzQRpxkDeHHy/qf1vWX9LRI2/9lqPy +ZyTfNLrxVCXDW7CetYBioKJfI0in9W42atzHTWD5CFnJmst8ZGtNlGxBTlXaLUV9 +xiBGNXxpAxzL3RdUNCWAf77K2Ap/CWCNMFbFgCESejH3otK+NcXLcpmsHwIDAQAB +AoGADvP3mRguWFo1EkogB3InrIWgmZQpwcsnmXRjCtTmNuiOq1BuRfoDgqaDlC/t +Gc8+ayPHOoiss8pwq9UV2LuYJxIF/fxq4v0igw4aBiPETUhLsHceP9UjR6705yY2 +WZ6rVxE+vlmtFVxwSB/9eW8xfRBsRdPJy1rrirRDmOOMGGECQQD7pYsPHPx9PDdX +jJRXMHjA4cvoMGEOPTVfL+3E6o6yaLnZ2m4d9uox7OZYYV3qdYZzsBzE9lxlJ7Uy +t6SdbBJPAkEAwAyafGAXbw30F531qWlMvVc3tHPNM52Wkh1tuYLhCxKHx+6sYCHH +bC/QzLtz41mdPyvBxmnbnM3SVHYaP/9lMQJAMfCibjdkbD4dBYTik4MNE8o7uzKO +sFK5WtCaMTATbZiW+YL9w3iS9aF7/SIljzgPnLngm74AjBqbPRtw0cT2xQJBALR0 +41DNRhe/J8ZtUeHPJSGg66HvUjkW8d34MxsmxOmPjvCp72UhOG8K+wr1dO6DTUOH +jTwwSgCsUd+1XfMWu3ECQQDt1R9o+TwuCzQBF5m0XQ98qEHuD6ySfWCoejkChpjl +o20dvRlUBa01Ne65P7y5a0OHWqdWZuLBJ6tU+srFupwe +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/brown/brown.cert b/server/slice/planetlab/us/brown/brown.cert new file mode 100644 index 00000000..87dedaf3 --- /dev/null +++ b/server/slice/planetlab/us/brown/brown.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVicm93bjAeFw0w +ODAzMjgwMzQ0NTVaFw0xMzAzMjcwMzQ0NTVaMBAxDjAMBgNVBAMTBWJyb3duMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0oZ502M9kE+18RU9R8kffP3aV/4XM +DfzE3VEC6L6g1ytzQg/GjClN88Pe7oVa4Lcrj/0ItjjAoLhawWlH8wSHMtDUuqEH +dj9vnwHURvf+1MddbYV04i6EvmQXBvj1CjoOY5rvSSV7o7tuqNOYrY4/VPRVw0r8 +PfoleRFU3zkxrQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAK1Qfrnxie8bmHauvhlO +wFr845uiJnAuXMuSN/oRAvNOSaf16rR19Kwo2mCKsrIL78Hhb9uNgMHETMYViLbo +K5qTueKcmjaGDRaYLzyKGo+28jmogBdqMiZ6rAUCCEAWRCKgv+4RF5ygKeY5LMkJ +C95qLAqN+BWm1Nlpb5F+gge4 +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/brown/brown.pkey b/server/slice/planetlab/us/brown/brown.pkey new file mode 100644 index 00000000..8aaca926 --- /dev/null +++ b/server/slice/planetlab/us/brown/brown.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC0oZ502M9kE+18RU9R8kffP3aV/4XMDfzE3VEC6L6g1ytzQg/G +jClN88Pe7oVa4Lcrj/0ItjjAoLhawWlH8wSHMtDUuqEHdj9vnwHURvf+1MddbYV0 +4i6EvmQXBvj1CjoOY5rvSSV7o7tuqNOYrY4/VPRVw0r8PfoleRFU3zkxrQIDAQAB +AoGBAK9Jf6nIlEl8BSRpZjYRtalxvrSFSOPiVv77/peiIQuYgvPQkdqNPbAF9Hgs +Y4DzPQ2rJ1QC8UQNM5nuwyotLKAbxF0SftBkmk8ero4Sfz3JjVHBLNZBFsx3Kf2b +smJvOfIgoQrqZOAAz6cU6JEXhWA9JDq7Njt7TpvXxb6KqC8BAkEA6oL4OWbXmWoY +9mIsDKbIgY6AlGWAikKej3kVanaN2mM45N9PtimdxS0vjA8q0JwJarjL8fPoyqOa +91JqD19SYQJBAMUuwjVLd8v7DnkquDhU3bOEwAh98nfMKFW+eboisHkGfvUKEeT8 +3xQFVslt4rNa4pLLIPgqBa+Yn582Zwnies0CQCzM6G7O3tFIG4y2JIQmOJfHiXjQ +C0Zeg7wU/aphC6h03CGdJ7U9Lg7FGxg+rYc8x+/DbfLDDe3oY2psLCbTpwECQQCQ +eEbgp2+Za1NaYXtiAoQBMKVGU4kgTtvKnukvAJWNxr2kKYGc5c1ILPU+Vh2ATXmu +FdgNGzTZSBjDnSd3bZGNAkA1xdRqY/qKQlaPYUL3YMuNBNY+5pvTFLoyQsuEYYDR +bzjL2N6z4BCB6e043398T81MtegDp+stu0esW4nDM++X +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/bu/bu.cert b/server/slice/planetlab/us/bu/bu.cert new file mode 100644 index 00000000..15c732fa --- /dev/null +++ b/server/slice/planetlab/us/bu/bu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJidTAeFw0wODAz +MjgwMzQ0NTZaFw0xMzAzMjcwMzQ0NTZaMA0xCzAJBgNVBAMTAmJ1MIGfMA0GCSqG +SIb3DQEBAQUAA4GNADCBiQKBgQCkufr83FOXkeY4LT1a/HzAeeDYGzVyZ4Csbs9Y +pdbfWydSyDgy08Z5V3boF/fObHpRPw+QpDc3/ZvXb3gbTBn6E39/DnJR5mNBsf0K +dKbyGjfkPWPHGo0YeSZRRhiF1GWiRlyD5YnOyV5od7rHBeMggsC6weR7LDXa4+si +SIjCgQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAGcPcDOXXHmGS5C9OLnU8N/OpVHt +kG+fdv5I9XsYNKlRLAs+i6lWSzxH5n1zJdJc/FQs9DgFEeAe+nN8V4OvpKCs2gRu +kiZx0G3VRGOygcREBAor+dtup0AQQkM/OgltnpzawaN5Z2YaeBpa+W1zQW1Kh1NE +aagGgB0yQaCoP+il +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/bu/bu.pkey b/server/slice/planetlab/us/bu/bu.pkey new file mode 100644 index 00000000..a3906f8a --- /dev/null +++ b/server/slice/planetlab/us/bu/bu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCkufr83FOXkeY4LT1a/HzAeeDYGzVyZ4Csbs9YpdbfWydSyDgy +08Z5V3boF/fObHpRPw+QpDc3/ZvXb3gbTBn6E39/DnJR5mNBsf0KdKbyGjfkPWPH +Go0YeSZRRhiF1GWiRlyD5YnOyV5od7rHBeMggsC6weR7LDXa4+siSIjCgQIDAQAB +AoGBAKHag3y02AXTu4tzGBgwgjt1BbIRegCBJnNHJcCKoogwPoEebemzIA7WG+WM +t1ZCTCVMevS6Be+j5t5VjoPz0IjNI0qODJHHZDe/U9ZvHHvi0RPaUjpR5aaeXAle +RvH6kYuBOWCsgPwIfokSJD/IIonW6pDoIkSm5DRErOCEZtvhAkEA2dOpaw7y98OL +4WBX7I0z2LdMdD2+TOGOZ0V6H3iRROH9YSjh5QGBHIhV9PlPHYTyUc2aH/+RaBVe +KDoxgPF7TQJBAMGYFdh5DdTg3VNSMm2xBBOrKwqmJapLxFG29JOTq4AVSIJNkc5n +BKeeOdFtF5ZNxwtdDVUZKAi9tvSJYRtlwgUCQB6D3V8HGBiHh2gKVCbqXRIGE6rR +H4CrtIRZIlOYU1mAAzwCOysWu9ygaNJJvsCW6E93axkCd39KRweBp3+11J0CQQCu +N1AJc77XwNhL4B+TiQYzMQlV1vj0TKTKKIvmtrBSXlTXNjktdpXAxeogJj1gvHOQ +LVgPKclWPGwFmg+yWRuFAkBqUa39GWIFMT43HDoOYOedIWQ7UJNpgzJisv38QIOd +yNdcyJe8cv7h6RqaXIAV9uF9NUFiJrB/frIb4hhTlDz6 +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/ccny/ccny.cert b/server/slice/planetlab/us/ccny/ccny.cert new file mode 100644 index 00000000..1d9759a6 --- /dev/null +++ b/server/slice/planetlab/us/ccny/ccny.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRjY255MB4XDTA4 +MDMyODAzNDQ1NFoXDTEzMDMyNzAzNDQ1NFowDzENMAsGA1UEAxMEY2NueTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5647f58g/6eXx1ARYB8ENVWL+OM1kqR/ +VjqoFxS3qNnacoTW9RWlR0fSM/WZC+yRhzHakYIXgyaj4zblDubtrrRRiutWnRaa ++if5idUCbq8YIK205KZpvuTQFbQ0FhJVBWpdWB5/T0b2ZheORF1WX5A+YvEEmUqq +cUyU09J8PJcCAwEAATANBgkqhkiG9w0BAQQFAAOBgQDTHPJjsT9KV028qx4rfhyR +sBYDfUsCOmloHf1mVPLeBNJZ2SXgKk0rED8Px1DkYmyeda1j0m1uSF9CQIHoSD3S +Oynkw/wiH2I5v4abdNtn3nF3HBbVJ7PmbEeGnM35c8KUzH3/gbR7Sv4MzuO4GsaR +EZfIhQ9KM0FCFNzPxffxqw== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/ccny/ccny.pkey b/server/slice/planetlab/us/ccny/ccny.pkey new file mode 100644 index 00000000..b7e7e2e5 --- /dev/null +++ b/server/slice/planetlab/us/ccny/ccny.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDnrjt/nyD/p5fHUBFgHwQ1VYv44zWSpH9WOqgXFLeo2dpyhNb1 +FaVHR9Iz9ZkL7JGHMdqRgheDJqPjNuUO5u2utFGK61adFpr6J/mJ1QJurxggrbTk +pmm+5NAVtDQWElUFal1YHn9PRvZmF45EXVZfkD5i8QSZSqpxTJTT0nw8lwIDAQAB +AoGAR6Vm+vmP79+5HUcSiIIu//tblPVWvOmoA1eSYcjjXxE379BK1XIDMb7xL2ZV +FQ3slz2AlR0A/mr1pa91OJ2LhLPJppG5mC+IsL+O9aoHutR5rNj2hmxkAyUznHKr +TmDKIe6yqRhsdB2wpkwXjPXvw3kkPddz1UnSPbEB2+zTwuECQQD6S94muSSBDmOm +LqDg3GAPSCCHC/lbBPuSWrWdBsV4Ts/42roGS2CLFsgkWp+94aaQbx+7ce3cYLAT +gxxKQo6HAkEA7PXEeO0GSAG6Sd1WGfy93ovP94cJclffSQaj+wmUgbcNLT4oe5eZ +kkTLYCyrfPnNNe0PZjUzZjXAuielVZPVcQJAdAavWGwCzACLmQGMejAuJ2dcDL40 +PUk2BUYfYkc9SuPd7JIYIcrXWiKZbKDF5BOyTsn0f8P0a3A2rxTcDGCGCQJBANzR +1wrdzzmxKnoFImTLS+ElJ2PDWoFM9A5oes3JSrRq8oOT5kPurbVKGMCCQDkRzTOQ +vAYCU+jO9NBFe+S5BHECQQC+RXO5aC5o/C+vYvydi9qMjOXdHsgARxvb8jPjsrzq +yWGnzoG7+j/m75UTzLS0TEwHULpnofJ5JiuoNQ0eXoVR +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/cernetneu/cernetneu.cert b/server/slice/planetlab/us/cernetneu/cernetneu.cert new file mode 100644 index 00000000..a6cb533f --- /dev/null +++ b/server/slice/planetlab/us/cernetneu/cernetneu.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJY2VybmV0bmV1 +MB4XDTA4MDMyODAzNDQ1M1oXDTEzMDMyNzAzNDQ1M1owFDESMBAGA1UEAxMJY2Vy +bmV0bmV1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZl6ra3CMGqYfSFIW5 +TTPdYoPXrYVosGRFmJJ1Y2feEGS4WJcI9yN/qknqs3PeZN05bh5aHbU1bwjzL8h2 +uI29aRlAXc9rwr2Im3TLLtU4VLuM5fSZkoQJokirsa4oOUjrD1pq616j51vHU1tO +7GZV1UH2bZvsHqCCQhXn3W7BCQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAMx3GxB+ +7PTb2+evwhqFWVRWpTbosAbTr+G66kXBsJz1VAMOd0hHBjftZdHCOSpU1LZlB0fq +wzoam+6Cxi8jaShTiYID/FFa+NrUj2Iga7RxnUX8/mRNItdZO1BF04hNo1bnZSeu +XJMHSvQArZfbHSpNmSoXhuxHbK1ez5CKvCI3 +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/cernetneu/cernetneu.pkey b/server/slice/planetlab/us/cernetneu/cernetneu.pkey new file mode 100644 index 00000000..8be5f6b7 --- /dev/null +++ b/server/slice/planetlab/us/cernetneu/cernetneu.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDZl6ra3CMGqYfSFIW5TTPdYoPXrYVosGRFmJJ1Y2feEGS4WJcI +9yN/qknqs3PeZN05bh5aHbU1bwjzL8h2uI29aRlAXc9rwr2Im3TLLtU4VLuM5fSZ +koQJokirsa4oOUjrD1pq616j51vHU1tO7GZV1UH2bZvsHqCCQhXn3W7BCQIDAQAB +AoGBAKu+mozE1KCdjyayLBpmZVmIOKgzvekz0PFdy7v8Ci+soNMgmZXp+4r4zf8C +RaJz2mlKEYrvh+f1DAtm28NZSAWUI46GJTfBWCcbnsu31pvcGbhP0fvljnZwAPTZ +8hUroyzd6urkZHHP/29IH8VtVbbjYWAShl2VwddBd73NGc0BAkEA7vP/rqRP5Enn +CDBO+aZrxO6VIGftUKatG0fhYsV/4eqI0tPPizEw52iXv7wgo6ILqy2u70Z+qLYT +swXnE2vHFQJBAOkdjwcfZm1g0qZ62Q6b5UDoBtk3GMfKsag5OVk/XihfIivwHWX2 +Eb2Wi3if/BiltDmjMDG7QcVCqDAgZc2dzyUCQQCbTRXmCYCrHKT9G3iYpOLyESX2 +89S3UDy9uE/yA+6DhAz9CRCgpI3mOII36StFbnIrBPvnI2f6eqv+9F0ksC2pAkAU +R0r63qNlXmfUrZkWKT+PHuABo0ZXku1Tae7wMY/6SRRK6C9WgEpYyLDHRHuElV2R +Kf32RYjaJQtGbHsOoOy1AkEA4e7rSt/fOBVnjAjH9wm7Uut8aYYk8kl7zh99rWac +htse4vU2Kf5vOI7Ppv/bllG+h6cBLZUJVEQ8av7OYanNTQ== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/colorado/colorado.cert b/server/slice/planetlab/us/colorado/colorado.cert new file mode 100644 index 00000000..f303f2ea --- /dev/null +++ b/server/slice/planetlab/us/colorado/colorado.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhjb2xvcmFkbzAe +Fw0wODAzMjgwMzQ0NTZaFw0xMzAzMjcwMzQ0NTZaMBMxETAPBgNVBAMTCGNvbG9y +YWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXNdc4YX49Sz5cu4Uh3dk6 +sAU1mdZS6Ygzpe21oDbdjHt9Rajk1JWnXOZj/T+H/CpIBOB+WtSxGiVO3Sb26uy1 +rxfdD0Rmg6MWxlzqdc0RUWzfDfcp03IFEArP1QAytzlsLMG9Rtc/NUWvLdjcLUGk +TtLAhNeKelBl99ySv9uD6wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAF7z9Nu2iryC +D8Raa/Ff6LGNv4AAKlDReXwHxMnVd6Fj8AP/EYT5JZsWalcKRb99rpq2tWiQI3Bt +D6CUg1t4ZGXiJ10y+hxi+pLC32GEcS0w+dFcAAgIrqpv/RD3NLxT9muskse8EN7N +76ZmzakprDHn1atjr9vbtyAXyx7UO8P/ +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/colorado/colorado.pkey b/server/slice/planetlab/us/colorado/colorado.pkey new file mode 100644 index 00000000..dc8f4e33 --- /dev/null +++ b/server/slice/planetlab/us/colorado/colorado.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDXNdc4YX49Sz5cu4Uh3dk6sAU1mdZS6Ygzpe21oDbdjHt9Rajk +1JWnXOZj/T+H/CpIBOB+WtSxGiVO3Sb26uy1rxfdD0Rmg6MWxlzqdc0RUWzfDfcp +03IFEArP1QAytzlsLMG9Rtc/NUWvLdjcLUGkTtLAhNeKelBl99ySv9uD6wIDAQAB +AoGATAomBTHNXPLdEf7fx1uPiYDwFkRIyfrhuP4Dw4zcVeNxLo4SYugKCJx2exXc +ALxEZDX07DBDvl+ylu7k+ZGAGPvTiLQmNKysHWKByrpfAiyH5LfVUzwemuQtO89T +vXwcZmiMRKPF3KqJC3/rLTEYEmigPIoJ1ifZMlo5Na+t5GECQQDyiDZn126+QGll +lTp3wU2sIgVWKJkjqmKp2ICBwKlC0xVPq4gYp7zjOnEjjEbB4kpBkNB3VnASTbGw +Dqx7JX1PAkEA4yk6OcSEle0+4gyo6kJ16KneioufqW+ONAww2aSpyE/YxtuZyNiF +GiDuyLucwds491aqM42SUTMDqj8yXUJApQJBAMdEbx8GfDDIj1AtOeqm4gBpu2S8 +2oXZOlM+VOdGukrzT3E0CA/p0WII5GhGmuQ13rjcGMvUMyR2vWVfyQstFDUCQFpl +raYPbjO7laqfHxkaGZHdB5Javc7PdeeAcnAp9uaf38RC34/tmgor0NpQzrDWbHUB +J/ob/H4TrwGw5Hn4Q4ECQH283+PKpErNiMgkPadO7dWrW0gwWXWc9+11LZvfoWiB +QMw8NyvbeqOtP3nqY8NLrFkMO9PRsx51DYK4s/fBWGI= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/columbia/columbia.cert b/server/slice/planetlab/us/columbia/columbia.cert new file mode 100644 index 00000000..9dbc097f --- /dev/null +++ b/server/slice/planetlab/us/columbia/columbia.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhjb2x1bWJpYTAe +Fw0wODAzMjgwMzQ0NTRaFw0xMzAzMjcwMzQ0NTRaMBMxETAPBgNVBAMTCGNvbHVt +YmlhMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDqi6dUknFKC1w8HR+e/w6Q ++XaWA29YQm7icXVMjK0r+EN0CEgkWnyQsq13opXPzF8rejaoT7p/e4cdrCRmrowO +EdQwh5Yaj5HMyY04el+kr6xFxF+1rR0WrpEeWSwKTI23DWPxLvr/b8zjBSWcxjut +kiHYGbGCcl6Fo+Q8HV0wQQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABp1qk6HHNCi +iEGf/56sOzpA4OOO0HWXur0zKFpr9Vg35JrKmK98Tc2eMxeOrLvR4DcwhCFZcEiV +XRCnqSPPMrKEdDgeQpg8T5bgTp++XSNjNHUJfJzwSF/NZU6UceRWhrrs2xOOpoOu +SG0sducdgvjylTLEntv+vlVS5/K11UDV +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/columbia/columbia.pkey b/server/slice/planetlab/us/columbia/columbia.pkey new file mode 100644 index 00000000..99d20240 --- /dev/null +++ b/server/slice/planetlab/us/columbia/columbia.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDqi6dUknFKC1w8HR+e/w6Q+XaWA29YQm7icXVMjK0r+EN0CEgk +WnyQsq13opXPzF8rejaoT7p/e4cdrCRmrowOEdQwh5Yaj5HMyY04el+kr6xFxF+1 +rR0WrpEeWSwKTI23DWPxLvr/b8zjBSWcxjutkiHYGbGCcl6Fo+Q8HV0wQQIDAQAB +AoGAeUH+HnEfdOJuqv17jZ3bkAQI1QGtnPmrjhKOTCcmmGbfqKtncLP/Vmep2wIJ +ZccJJNcoTtf5WVMpxaNrplJzQQ1pGu1QBbYNJEPZ4jZNOv9WjlbKOErh9QyZZGYg +CLg0JW8PXNMgjMifvxx1w7jgAA8Rr1KphxqJWlauovDAPYECQQD8PDA7FyFa8Fxi +bpnmdLg0bqV7wJQHAAwos4HnfIx4GmFGRovfnpTXDwO7GAzglRyIYodNtHXhmnKZ +h1OR/lzpAkEA7gvfL9Z9fTQfLBgHy9GG6g4Wp7pLFzwI6rrkmqI/Z0e6CC2M8XL+ +SQp1SDumbFMKHdjlYiCrCXDpE4NS9mzBmQJBALGzSZtnqUUjD0L9folAc8Hkrcso +mmDwJKDMDlnigiffFebnroVFeMCmQE+gGvphsq9XEtGosF/XaqNFFphFJnkCQBqb +LxXstlfxJG7MPMrWH2s3qeaTVuNA7Yo222hBLC8CAFP7q14tSSimx5cMO7ytx1qw +rGq8VgGXIiXxLqumWjkCQDxbkoi14s3PIFlo5TSQH2OL00KsE6EYx+ceeY4l12eI +nogNVh8T7gKeZaaObvZZFYfLqWi2UhmeECsHZQvwky8= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/irp/irp.cert b/server/slice/planetlab/us/irp/irp.cert new file mode 100644 index 00000000..db016c97 --- /dev/null +++ b/server/slice/planetlab/us/irp/irp.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNpcnAwHhcNMDgw +MzI4MDM0NDUzWhcNMTMwMzI3MDM0NDUzWjAOMQwwCgYDVQQDEwNpcnAwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBANfWdYVtEE6fPiRbnX2Vlgr3yVy5kEryMRKk +8X8/ZEHPMNtsQW8aMk05D9AONXv5vVng2m7V4lijBw3PdkBUOkYXKiQc+wt9tkk8 +t7xzAzYEi1KYpkwYuGYtP03WXXSGSxqKl2hIN5NqfsY9KYwdUu+2CCT+AY+SxGuO +sza204qpAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAhN0H0VVo1rFF3DUDPQrIQbRQ +DTf+QUkCNMg/OaRdHAnXAh1cVuorTmYPINq4DBUbC+TDzk98U5hTVs7M5JiRoILp +IV12aMKEGFK8YUCPLhiunBX4r2DH0S5mu07sq1U7UHFKPJis5Wn68KwMczGKvl71 +6gL3+IRw7vCjz9BMzxE= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/irp/irp.pkey b/server/slice/planetlab/us/irp/irp.pkey new file mode 100644 index 00000000..8667a379 --- /dev/null +++ b/server/slice/planetlab/us/irp/irp.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDX1nWFbRBOnz4kW519lZYK98lcuZBK8jESpPF/P2RBzzDbbEFv +GjJNOQ/QDjV7+b1Z4Npu1eJYowcNz3ZAVDpGFyokHPsLfbZJPLe8cwM2BItSmKZM +GLhmLT9N1l10hksaipdoSDeTan7GPSmMHVLvtggk/gGPksRrjrM2ttOKqQIDAQAB +AoGAaqz1Qq/H2oP8C644JaS0FtGm9SxFs7UGKgfZ0CF9pMUJibl0kbvp1p74QMV1 +C8RAINbwPs15ZIOW7e12rY6ziZ5x0Mjzx2T2ri/EQmeB9UUp3neRVhBaYaGl0Rip +SM5Y954mDTxxd056fy+Sfh6Q4qq8J5ISWcy7GrVVKEBmk/ECQQDuXySH2YcDqsGf +l+YNbLW/O+aBwTQcBedVGi0JQe82J3o5sIoA3zhwzGDMA0EWt4vpDYb0yipTeyCB +YNepuUINAkEA58y0JWlXU5QVgieCp2egqHUp/VY142MO6GYasCV1pr8qf6lABj83 +byCo355NGpxMAaggduqnejD6j1+vF7vwDQJBAOIjxOZUifACqRoc4xVNUscPrsje +X+9N8n8cDCnCMYxwu1XLk8DsBAGPAy3I0JEapFL+kE/fE3SLVPUoyLCtnmkCQQDP +bwjnUdWsHaEB0InDdaD4H6Fr7HJdApCcuIK5j0wx5HELvVJmRLw+3mNBelBVt/js +oqAqyuMFHj+bfm0aOD0hAkBjB85gGzjDwY0K514D6emnDKLiDuj9wEGiaRQDp4d/ +OWWIn1ea65MXFyPYFQbuPVwa5m9Vxl9A6+Qry1uFWvqc +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/jhuis/jhuis.cert b/server/slice/planetlab/us/jhuis/jhuis.cert new file mode 100644 index 00000000..7e3ecd8c --- /dev/null +++ b/server/slice/planetlab/us/jhuis/jhuis.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVqaHVpczAeFw0w +ODAzMjgwMzQ0NTZaFw0xMzAzMjcwMzQ0NTZaMBAxDjAMBgNVBAMTBWpodWlzMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4ipJ/Rah4jVV6N+vAEcjrW0YBLyWN +gK4VuDv2zkH9hgGmLwXZ8zo01FPR6H/6u5MeQ1PNg7YVdws0SvYygBOR9uYgKPRa +BoKmX9U+vGayhPT32haYc3qqnkAq1NUPMSkKZtb6PcBSJOGMc+RsW8/VMJk7pyVt +zEVs4cOaaLLULwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAIBauOrbC0d4jIEuX1Z+ +UWHND/xpAY96tGMIC89NPMPhxpFsluTBQqBDsjPdYNT8LGGdF50STBNO0u81MUoc +DI283D7Hy3WdhsExk83XdHujLqSB1bIR0koJJzgIXTa6kMk6DuraKixr+yeNVEiH +ttbyJ3G4SMJzFYRw26yxr78Q +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/jhuis/jhuis.pkey b/server/slice/planetlab/us/jhuis/jhuis.pkey new file mode 100644 index 00000000..2f2a449c --- /dev/null +++ b/server/slice/planetlab/us/jhuis/jhuis.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC4ipJ/Rah4jVV6N+vAEcjrW0YBLyWNgK4VuDv2zkH9hgGmLwXZ +8zo01FPR6H/6u5MeQ1PNg7YVdws0SvYygBOR9uYgKPRaBoKmX9U+vGayhPT32haY +c3qqnkAq1NUPMSkKZtb6PcBSJOGMc+RsW8/VMJk7pyVtzEVs4cOaaLLULwIDAQAB +AoGAdFeAdlaPGLlZyzyYFzXfKmoXn0V+8k/O8Ih+3WE5f0DNp1x73uUVrBq0YWCn +1oYNAQZHPgiscankWWps/nd6XfhvuY1PaCot2x1jb2qtShg60YW3k6WDmmmKHbdh +IgJE4aCUt9oVE3mAJHbefA+CM76A9S2gczYerMLqTnZvs7kCQQDZsrgiqpP5Ato3 +0lekzlWNiZPaiYOsbhDdriJk+l3tU2zUkwQLBa9YDWMdE0GoN0UfUv4Xf6xUEovK +eEh9IOs7AkEA2QJyFi5g0aO564KdpOWN5jUiQWIJCrB6ndBWm9cwdcmIsbVAuY+C +Iy9K3AGrZHcaUhFY41bQRKrXN5TFbXSjnQJADSd3aODVwB4kAWt8UEEHel3tyS61 +/h1Id5ymB2P5ePWphc68V84oIjHs4zzeosN0MchaAiF80DeuqrVJ7AWpMQJAGTp6 +ju+XW+ff3mxR7XCufXvh3p4KFQ8NQjmNSBLNVHQ4iwhaXPg9FeASoN8k0Moz6iSQ +I+Xc0o7V9GU8SoxL1QJBAMkJPnO5OTrAdDAJOrBW+cD0FBs0TCyKo6cByT1J9saa +hVz5teUHQMelehOGiOChv0xASHgn2xVFHvSTfsCU5Rs= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/michigan/michigan.cert b/server/slice/planetlab/us/michigan/michigan.cert new file mode 100644 index 00000000..b6bea7da --- /dev/null +++ b/server/slice/planetlab/us/michigan/michigan.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlDCB/gIBADANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhtaWNoaWdhbjAe +Fw0wODAzMjgwMzQ0NTRaFw0xMzAzMjcwMzQ0NTRaMBMxETAPBgNVBAMTCG1pY2hp +Z2FuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+IB5wVi7z9TmbSpW9zxKe +t+X8t4j3+eHgKj2wbWzcH6AopKz+64SUDjGnGLCj+WuJ/VEzGjT3mut5Nq550EJQ +GUcXsTxB2WLt9wQXHxCG2a9B3VLm1cjB3DgLbvEF0kswvDusvJz6c5uRgfese5P1 +UvBhlOACnrFZvbd2rq6w7wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAA/K1ATWBswm +BfRzU/yGJhemoFfPk8vLwzgPHemDj7VAgfi+50UScx0p0aSoeIHADMDwZj2CNOA6 +nHFdPm0GnyT0r4espnSXLiyF1vDR9WzH8P7iHswniO64b+uwMegjZcHl4Xxw0UCm +Wwz551w5jY035GqWytd4tlQwXqlbl9bO +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/michigan/michigan.pkey b/server/slice/planetlab/us/michigan/michigan.pkey new file mode 100644 index 00000000..5ea3d7b9 --- /dev/null +++ b/server/slice/planetlab/us/michigan/michigan.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQC+IB5wVi7z9TmbSpW9zxKet+X8t4j3+eHgKj2wbWzcH6AopKz+ +64SUDjGnGLCj+WuJ/VEzGjT3mut5Nq550EJQGUcXsTxB2WLt9wQXHxCG2a9B3VLm +1cjB3DgLbvEF0kswvDusvJz6c5uRgfese5P1UvBhlOACnrFZvbd2rq6w7wIDAQAB +AoGATijqGohzmPsRCZQp5vP/1ZwIQlI5Tqg9gWgcIDF79SpTLyIztECiKjODmgv+ +YgqheQLYpMd7Suc3MoeWRqGlAI9cloGDPV04QoQXRz+QIsu7geQdl9tBt6gJv10Y +++rm8JOjBv3SFpiG2gLyRPW5WagH3cGHv17FoZR9cnx7e3ECQQDe9G5wvGkDTg26 +QOUOCqvKdHmKS5I1TLJEPYxNnoOy7IKEnuF6sQWN7dDMrH3PStiisl9Bl1BCFv6J +o2TtRFYDAkEA2k4LYvSnq0nhR3uJ3/+7qp7l5dZ42+nbKh+PRn2KzvALomYE40+D +dS56sz0VGA2ZHLOMrbpK9Qq0C4O58JBrpQJBAMPOnjPqdLvPUCUUm1ZCru9mbdu0 +VRr0Wdeuykrc/UMljdcVhmdvkrY8d1VZ5EAqtqnkx93eG0F/2lpdIuVyT6sCQQDI +pNCsW+c7dMT82VvoqHiJIlB1BcHBhlgsiCM8i6in+FMJKTE2518Qte6KjQq1N9JR +Yelbx4ybWgIPTzv4EhUNAkEAmaAQj5RXRTKca+6jXptK021RxIKis1qRwLj999cM +gAA57Yk3oeiZWSWGoD0BxFs3hR0EcUTRTo856qX5LbYOXA== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/northwestern/northwestern.cert b/server/slice/planetlab/us/northwestern/northwestern.cert new file mode 100644 index 00000000..69ab82db --- /dev/null +++ b/server/slice/planetlab/us/northwestern/northwestern.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBnTCCAQYCAQAwDQYJKoZIhvcNAQEEBQAwFzEVMBMGA1UEAxMMbm9ydGh3ZXN0 +ZXJuMB4XDTA4MDMyODAzNDQ1NFoXDTEzMDMyNzAzNDQ1NFowFzEVMBMGA1UEAxMM +bm9ydGh3ZXN0ZXJuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDaRVqvAQ9o +0PmOLe10t9nEFXaQhHKP4LAX+YhfKuwn54si3SMC6/1YKOgIP4h86bwJUXKWl/f/ +eXpYadyAM1m9XUBNI+8K9Qybf+NGwvUe9BHQbadZElP/hWwfGkB4ubw4DFSdjkAp +qmBsezOyDaT8w/FrDyqCYCCWjscjWlVw3wIDAQABMA0GCSqGSIb3DQEBBAUAA4GB +ACdQjSPsRDBjpCfK+HTtosMymSpd6H+c+WQ2EpbDhrbMwalQXukvWpx0zBgVdM0T +fFfdpKMw88YeEtLafDtZCKyYEn5k/s3ikZqidLdYz87h0GRYHc+9ahu3x9od46sI +DDI8XBAcGRlm7vwYCwpD91hcp6vs87Nq62x57ErMRZ17 +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/northwestern/northwestern.pkey b/server/slice/planetlab/us/northwestern/northwestern.pkey new file mode 100644 index 00000000..fe12573b --- /dev/null +++ b/server/slice/planetlab/us/northwestern/northwestern.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDaRVqvAQ9o0PmOLe10t9nEFXaQhHKP4LAX+YhfKuwn54si3SMC +6/1YKOgIP4h86bwJUXKWl/f/eXpYadyAM1m9XUBNI+8K9Qybf+NGwvUe9BHQbadZ +ElP/hWwfGkB4ubw4DFSdjkApqmBsezOyDaT8w/FrDyqCYCCWjscjWlVw3wIDAQAB +AoGAQvdiUi0GGEd9OVT39IZvpoxbOw2XxHLQNBrX7zLRD5EnjAPCuSPEL6clQVqU +upZPnaBCgtePO+9+TN/1ydN3ZWPFgEWJMSlUhwVgiNEKj4Dbffrx6OeDZj3r6xI/ +cSSMxvNzi/9snlBEyYKesi25rja33m5bv6BP0aaXUYgrVZkCQQDvw9nERXUHytMB +3HfLTdg/wPjp0fVKPuvQwVwz3xnRDWw0HHucqi8zftNSUH6t/RlxsPTYKa5LTSn1 +HwwQ2ZbTAkEA6QzrN+uatRM7HmCq6oWk9ANyYUsZFAYvDLs/zC8wfRLtGO3ZXA4E +lnE6v2NzloGuLF+W3obu/uvesrngNybORQJALjp41lr+AY6duJIlltFfjItMcujE +fpg7J3jgqi+t7pzD7BhBzScTCr69R/W1Nx7BtSYFT1hZ/rLWECj4TpdleQJAM8PP +13r4wTHFVukH7dHDowPE+0FwD5eUCdLpx9PPhGiYy4nBVwYyFKyP7QUNHqgtZOPS +ohj8qxj/PVm2KOnwtQJAY8yca3rwxNCFU01RKPZQak+PbpxMyY819NkT4zhCcsw7 +wCR6ytm6SbYjIX8HiJZD7u6K7lNmblVASqQipdDaWA== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/orbit/orbit.cert b/server/slice/planetlab/us/orbit/orbit.cert new file mode 100644 index 00000000..bae41f81 --- /dev/null +++ b/server/slice/planetlab/us/orbit/orbit.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwVvcmJpdDAeFw0w +ODAzMjgwMzQ0NTZaFw0xMzAzMjcwMzQ0NTZaMBAxDjAMBgNVBAMTBW9yYml0MIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+kK4ZvtSRC8JkC7Gfk0biDjxJhhgN +06EmZjpNrS2D4yUi98Muv2OKq4T4ALmlVJ6/n2IUkjKJNPkeZYeGeo/IbO59guxi +nfIJRNqDT0vUv5H+sx/KMliU5OfnRJYcHw9jeIBT/5rMH2cS6YmsF4+Fq12ygOOp +x9wTNlkU3ZWZAQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALN6eKbNLKdzVhtCHZ1Z +ZagKhl7yLQlEhKaztcWI3zMfhsL3vC5FXJrKGKACMnPOkmNVtDa3e3+LlIU2Lnpb +NySYbgHt9uDlOy5mQjw5vkDmUXjX0w+K/Ris1wqLu4EIXbcxdJDbk+6TIbUGb2nl +hNbf4VRpL7Wc2G9Sc1We7tnm +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/orbit/orbit.pkey b/server/slice/planetlab/us/orbit/orbit.pkey new file mode 100644 index 00000000..37090adb --- /dev/null +++ b/server/slice/planetlab/us/orbit/orbit.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC+kK4ZvtSRC8JkC7Gfk0biDjxJhhgN06EmZjpNrS2D4yUi98Mu +v2OKq4T4ALmlVJ6/n2IUkjKJNPkeZYeGeo/IbO59guxinfIJRNqDT0vUv5H+sx/K +MliU5OfnRJYcHw9jeIBT/5rMH2cS6YmsF4+Fq12ygOOpx9wTNlkU3ZWZAQIDAQAB +AoGBALMDPkk5Fn3ayhUpVwZMV33rWX7H1LjIYM2ton9teyA1tKEQle3IJD4Tuakv +JTXGNApWMtCYNZjmhk6jmZgecgl6HyagvehrxXJNOgp5cSELHamhNss66k880XaP +g6cnfIqyYummvoAK5Z8Poa+1/wSgJhXUkTJ91oeCVUwbVldBAkEA4RTsntVczJkF +zIW3dtsM9USiacf6uKbXlwiJyAVdC7XWW+5JubuhVD+mp8eoGGlBtJNlyGCMETke +bD1W2g1nJQJBANi99/M5THfal+jJQzCqBW51qM2slmZtQIa8+HP9e4P5SVHOawmT +fdp7mEeLB4Hw2IBEpP+KH102eDQ5Y490wa0CQC99vr90vXPeBb81p5RIe990b+Bp +9Zjoeyy+/HNbzloeL/CNwriRwmSIWZ2lHu6nptl3EE7LMEKiDq0/9AdmNJECQQCG +aB/X6+N4u8zSZeTNy9G8cyhwCyPldsC6DXvBaiLrb27BVVFZSeaU02pWi2fnc7S+ +rlLnyP60LjASqrgL4SqtAkB4RAlTGWrl0IQgapxo4w4pr/sk7reBKtSGpxzo/ewU +dinaGu8FSzqTRUcWGnhHH7wZ2rtSRWltNO5qZZAKfaJl +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/rice/rice.cert b/server/slice/planetlab/us/rice/rice.cert new file mode 100644 index 00000000..61cd5737 --- /dev/null +++ b/server/slice/planetlab/us/rice/rice.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRyaWNlMB4XDTA4 +MDMyODAzNDQ1NFoXDTEzMDMyNzAzNDQ1NFowDzENMAsGA1UEAxMEcmljZTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwn8WNNIDcwNTK6D1vdvJj1Yj8idOB6gr +Ntm4rEutcIfqaMAPc/Wka2l818HUH4lIj7l4IL7yiJZCk2SBGfPzR6G1hs0mjhZ4 +MFTiMnvhXyaGGyBNWalZwChWqcPtOPPP9lIgj2uAy3MWwUGR84jVj7Ql2Ed7f3HT +LpFg0ySy+p0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCJnHY+9YAjtDyZ8IwVmWip +IRMjlktgsnSXkqDeZ2/QPej1XrcoY28k/FtbM4OTH+K2xImZi+AXhPKwUlmnGGnt +ipJAwroZ+dvUVtWokjrlrKlF86pz3/+MHrO3mZ4Cn8hN0hbCgs/RvpIkUcUaSZvI +Z8MMeTA3srLHGUIczW+Xtw== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/rice/rice.pkey b/server/slice/planetlab/us/rice/rice.pkey new file mode 100644 index 00000000..b90927ca --- /dev/null +++ b/server/slice/planetlab/us/rice/rice.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDCfxY00gNzA1MroPW928mPViPyJ04HqCs22bisS61wh+powA9z +9aRraXzXwdQfiUiPuXggvvKIlkKTZIEZ8/NHobWGzSaOFngwVOIye+FfJoYbIE1Z +qVnAKFapw+0488/2UiCPa4DLcxbBQZHziNWPtCXYR3t/cdMukWDTJLL6nQIDAQAB +AoGANi9Vrm17zIT2nMcA713V73reFM5ibLurHmLVkhqbPSiAY6JuK64ZmlsPDsTP +JeIHNxNCpkzMIMVL0uhDF0nhUm0d/h8hiElTU0RhCN5QC49OdWtnAyrPgbBAtzRq +isVDNsbnU2XnhEAj5WcThJyCtfH2zfwNgGu7dGgpSj2gRgECQQDjhOx3zHAFPQ7i +g18+nqGGLgA3w+ZDO5x7xVavw79A2Mlw74qBkroVcl+5Vz3EU0481K9xwVObkzTr +4aT52lxdAkEA2tfqRE6Zo3pi38KOCiBcxtF2f0JiEjSCoR7kA7uPaB7MfvUINJ9S +g2nOfd5mA6uHJGmyiiHA6+2yT82cDZczQQJACOFhUXO7U5kEgbba+ti6OUCGZabR +0AH9o58aORYM2v0bL7tJzrDpbnjeX5+WG5mczicHCguftczTHfnatJ3fSQJAPpnC +9rUxN9VbkTx7GyR0xZ7HcdHQcfq5X1OR0AuIEzW0M6DuLvdgSB0tJ05GCki3yM+/ +dcoAAL0m47MiL7UPwQJBAMP5wBoh3DSrZCnn2PJYftpGCdWr+0eKgm54yl8knvYK +5Pn2zkSXK8kL32MUnKAIEGypkw/4vJdPe9TxnOotRi4= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/rpi/rpi.cert b/server/slice/planetlab/us/rpi/rpi.cert new file mode 100644 index 00000000..d99ce0b6 --- /dev/null +++ b/server/slice/planetlab/us/rpi/rpi.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwNycGkwHhcNMDgw +MzI4MDM0NDU0WhcNMTMwMzI3MDM0NDU0WjAOMQwwCgYDVQQDEwNycGkwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAMktbvEQKoMOn0qI5wM246CHJUtSU46DSYff +Qt5g4FJAAG7WjWTV3P4GO5rzfiIVYZmS5Jq/ijWmJHl1G27eRu7b0U+OIRSQqFaR +FOU9UeUnPc4RiVL98l1W7QqqdBs6qhErmjNt1GuJ3lJwAiGEnAYIFGVjeFAp6gps +WJvkG/rNAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAaAtzTqBZ6M0/RLBKxYBxQ2WY +krURmp+h70dB6WyEC6jkI6S0C+fj/kLai7JM6okVYg99B5YlgY59SMSNFOdXvXyJ +VRzWqhOj2+mmb+hoW7lYQT5jLa23JcaUqmyeuGXa/fHlR1/zLgHTBWIL8wLxXQgw +YbrHq7cFnuBZMDI1uS4= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/rpi/rpi.pkey b/server/slice/planetlab/us/rpi/rpi.pkey new file mode 100644 index 00000000..23dceab5 --- /dev/null +++ b/server/slice/planetlab/us/rpi/rpi.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDJLW7xECqDDp9KiOcDNuOghyVLUlOOg0mH30LeYOBSQABu1o1k +1dz+Bjua834iFWGZkuSav4o1piR5dRtu3kbu29FPjiEUkKhWkRTlPVHlJz3OEYlS +/fJdVu0KqnQbOqoRK5ozbdRrid5ScAIhhJwGCBRlY3hQKeoKbFib5Bv6zQIDAQAB +AoGBALPT7vWA899OtMjVc1qGOBcIdyfLIXGknZfc1FMf2aTsHPb2xlE6cl6Hh8RM +n5Ur86Bpk/tX991Y9AW1zp3eBxxqPVpWArWEXeDNPwfOllrxtyEaI4pWisSkATYX +4JPW9d7LS62mT97XyvUoP+rbeYQXnyUDbnShy+7/5Gbr0OqpAkEA7PHSJAXc6u2R +3c78L3WKPN5iJOZvsZmV35INRAwCxtE8ECXXx7fVO48nH49hUSmO3ZFtzHi6GP7t +zF1igSKZ1wJBANlbPoHvd7KCiiEgHU/EfRIYXxjvmsG+rlpo2dLtRm9h1wieNY0/ +sLFt3kaPCXYax7U3h8llF0jBS/X+QNu3Y/sCQEmVvB5F19r51sAc5QLULQ9EPRSa +n/t26C2bjRUh6cbW+iFFr2Kt+8HYbl0FyUJMdrrmzEOhBqJ2oWFDazERjtcCQGUw +E0OOZh0WpJOTTdIK2WcJLYyAT32O9cBlO7L0f2vvEpqSfL/LPMj9KxOSF4eCJCL7 +PR3HEDXwtxpISY2ALO0CQQCrr3VuHI9HGwTN70jzV5ZtlufUek1xMuO18cswCgGE +4tV+neTrKUlkJNgo1Qa95dMlb9cCLRahwOBF4TI5rI4u +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/stevens/stevens.cert b/server/slice/planetlab/us/stevens/stevens.cert new file mode 100644 index 00000000..e64478e0 --- /dev/null +++ b/server/slice/planetlab/us/stevens/stevens.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkjCB/AIBADANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDEwdzdGV2ZW5zMB4X +DTA4MDMyODAzNDQ1NloXDTEzMDMyNzAzNDQ1NlowEjEQMA4GA1UEAxMHc3RldmVu +czCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1MnzZ36Guii0B5AKJKpu95r8 +WP8o06UhBOou3ansEGXAhn3ZPzLWWapm2giBXkceNRJkZUC3tXaNd7fT2xBqgn1D +9QGJvZ/+f18EKdjg+GRJJSV5ge10LF3lqb4SAFmgvcX9Nu3oihM2cg8kt/lF753x +q/ERin9fALiAFUrf+zMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBoE7fcJaySaOiH +qi73Wej1a/jn+Ul8Vyc9O7ELYvB5mnqpPOH76Skppuz5vzerIvcb2OLdFNAewDiX +xKq4kYs7/S5YWipUvBoL/vYRg3QCPPIc+sybYbgtr912vTjKmRbrzB0RM0cS4LRY +uck1s1KfdlK8cFZIuDSKt0qJBSiv2g== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/stevens/stevens.pkey b/server/slice/planetlab/us/stevens/stevens.pkey new file mode 100644 index 00000000..c53b25bb --- /dev/null +++ b/server/slice/planetlab/us/stevens/stevens.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDUyfNnfoa6KLQHkAokqm73mvxY/yjTpSEE6i7dqewQZcCGfdk/ +MtZZqmbaCIFeRx41EmRlQLe1do13t9PbEGqCfUP1AYm9n/5/XwQp2OD4ZEklJXmB +7XQsXeWpvhIAWaC9xf027eiKEzZyDyS3+UXvnfGr8RGKf18AuIAVSt/7MwIDAQAB +AoGANnJKHqQoUv/RONIpVkJpzF9SzG7VgnoRHdHSFhPBfFycy4zuBpa6dAz+7jEY +8QefehLvr1zE5OClyAk4YygrKCrCw9juiXtSkPo0vwqdCfLNWLgeudEPpTA1QbkR +JrWgGkQSAiuqRWr+Lm9y/k4ULGjX3KpOeCwEnI29P16jkeECQQD3XZljIi5Mz5W/ +lnBoxDtLv9L2Xk3brUktKbAcCjaUvZ18uDAeZ0tMIgY6T8sa8afjrqZ8WsCi1rbu +9JJ+cC1jAkEA3DdhxpRYQvwptspLk48uZ4zTBi+VtznDJhJWYsTZWBZgaspIO0M/ +ZkhR6jaWWnuBzNoakQvQdtzDVPmMawYL8QJAKuZ6wayd5whhajbHDARsXDjKd5vn +WN/2vvRp7JMA4E76TzUKc1tqvatw9Q/9o5Chk2UozoxWuGcQluSnu3HtDQJAIqgs +oR3zjgc1YWkQ39YmzXEiPNT8UOusRK+aHM0yD2TmI6hWGc2JisVS7vNMUk0hrmWc +zLr5QduYeiUT7jvzYQJAYPN0sadE6qDkoqCREMsNWMVynpVOZoB8WalH8TfYh1Zo +4IZWPsx1sv600J7GINtsgGB+gwQSbUe+hWbanxfLlQ== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/tky/tky.cert b/server/slice/planetlab/us/tky/tky.cert new file mode 100644 index 00000000..bc59b4ab --- /dev/null +++ b/server/slice/planetlab/us/tky/tky.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN0a3kwHhcNMDgw +MzI4MDM0NDU3WhcNMTMwMzI3MDM0NDU3WjAOMQwwCgYDVQQDEwN0a3kwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBANUk7u6wn8t38ziGyCjmlZ5dBlCluZ81NzC3 +k+YvWMSLH27baxXLJqJjLZV9hXeSY6kNzWlGSOxP9675cW1NEAlk8bbZYd5i09Xh +TA+WZWFCxNcFfCpcUHbwGC0sOblj1OF2zScL4Bt9Y4CpP2j8+XNqNAKGxPBY2m6Y +ftLL+7KrAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAYILsZMR/+d1UcZg2TGVwBaEt +azdip7aLJavRqebC9RcFhMA5SnCq2cyHcADI3YfKuSXvXpLr5xXZWYUEMHyGmpv+ +YtK316I4mmGwRXPA4eQea1xVDRbfYp2nKRXeKEQAPIb+DQYy/kXsnwOpgXVrcSvh +Qq2GuvO7KB8tuKWwZxk= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/tky/tky.pkey b/server/slice/planetlab/us/tky/tky.pkey new file mode 100644 index 00000000..19c2e94c --- /dev/null +++ b/server/slice/planetlab/us/tky/tky.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDVJO7usJ/Ld/M4hsgo5pWeXQZQpbmfNTcwt5PmL1jEix9u22sV +yyaiYy2VfYV3kmOpDc1pRkjsT/eu+XFtTRAJZPG22WHeYtPV4UwPlmVhQsTXBXwq +XFB28BgtLDm5Y9Thds0nC+AbfWOAqT9o/PlzajQChsTwWNpumH7Sy/uyqwIDAQAB +AoGASFwehYgO57uUJceUIlaNytKX9z8b8lHVp8NbAZVnVGpKxI7XHvH17sEu04Zm +jj5zeQwHhUroLNnFI3Dpsgqse3VPvqWqL5NL0aseHR2nFPgABfUm56O8QF7ibvRk +Mi7dbfd0HGlh5ZhKva+WVpvS0V7CD438cJ5kPae6uNrRUdECQQDwOvzcshjJdzNt +Hb6W0R50Gks02GvrrIyZeaQOWeHcHDfX41ERQg6Ag1gO7PlZ1Ra0psYufs7axDjv +/C9YBadzAkEA4yLFBEhXKFsGLaC4HniJGOpWLtGk717AM4oRa56eWA5N/63bHdWI +mJWTesKqJ9ZfD7KDEo7vSBzzn/fp7u/J6QJBAJM3cvJEahA8blV2HvAJoyH/Yws1 +fZ1llpwPAUySJGlhGY/BjFKJKp3y36n16zDz9wAqG9UufNFv4nyfDNxiSqUCQECo +RS1S6nyybK/QcJk79ssA6keppin97vi89PiNzsWCTPHbq+RyRNAqxDDN+WIdxDHT +vzwpNDRzCWcgS5eY6wECQCnjhw4iZ0VCTKjKSrXHnHO+1LR7HOtFyBpZk7SDB7/3 +BCtAsGYjrtHQKOv/laZw2+qRsceYkrJDrCJ9194O0ck= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/ucd/ucd.cert b/server/slice/planetlab/us/ucd/ucd.cert new file mode 100644 index 00000000..0d563518 --- /dev/null +++ b/server/slice/planetlab/us/ucd/ucd.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1Y2QwHhcNMDgw +MzI4MDM0NDU3WhcNMTMwMzI3MDM0NDU3WjAOMQwwCgYDVQQDEwN1Y2QwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAKC/zUm0FA02ANkYAbBrg2PJ3NYduJNFd7l6 +BQMOHnFKZpkOxuLrwbV3tHdjiY/UArD7BULwS30Mhu4EuHAFKVf5UUc26sWiUd/H +Xg2U1R+yj8wj+/PLS+UXdHnXGDAj6fSEjWYuVa0XHxDNxFn+AQHy1s9B7U1rAuBl +CLNuqjvBAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAPI+KZDyVFwqW8WBtklpHgqcf +VZBbEA5o99wz8OB4Y9N70yUjpkblcHBlZIuwWoyy1boe+yVl8XHhBZwGCgrq/xCq +v/WaRUl1hG0sBUX6Z9Ot/6YiAkTDjt/isuvfS/a7dj5Mx53ZUpSGtMcxnUsAh3SZ +k4iYkCgy6JBUuJAQ7Zo= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/ucd/ucd.pkey b/server/slice/planetlab/us/ucd/ucd.pkey new file mode 100644 index 00000000..7f0f21ff --- /dev/null +++ b/server/slice/planetlab/us/ucd/ucd.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCgv81JtBQNNgDZGAGwa4NjydzWHbiTRXe5egUDDh5xSmaZDsbi +68G1d7R3Y4mP1AKw+wVC8Et9DIbuBLhwBSlX+VFHNurFolHfx14NlNUfso/MI/vz +y0vlF3R51xgwI+n0hI1mLlWtFx8QzcRZ/gEB8tbPQe1NawLgZQizbqo7wQIDAQAB +AoGBAIlBnLE9IQ3yuaCk3fRcqPDQ0U7GS+78FvF5XcQxDw9fHuG7+1iRQ3KGhsKW +bEQyHCYwAFsawOpCgwfDYhTMY3KPTJ6QTA8mljBhds2VWBY8b4Rx5z/N1qJmVTkh +QttwT+MeENaZq+2AZcvtjl/AsoprOhHGdMuGBK+wFOFix+UNAkEAzUcL80gSvG5R +haHGQB4ttDCThgNIgdaaq9QOMdFBVx0HWK6fjdmFyQlbt5aCs4vDij6S6PrYhUX9 +K70Iwr3zYwJBAMh4F0GqYLkPIEMs+TdF2qfCQan/9m6Nk72TjK2I3H7bx17E922k +nwjcyoNmh7wx3IE7cOCRf7aJ9Tsv2r6xJ4sCQBqPttwj10jKfYHtDNn/DarjHjOY ++SjTu++/4JZRnULIXsr6zWptWwJIU7XNo9vXmdWpgxjiXGHiTH/8VcXdDkECQGRh +PcPzvFrt6Am7C09R+xrlelvVf1/8JG5Y46hBT6d2BW6+0eZk9/1IEV+ah30EupU7 +XloUgQ62JcVtQOsbaeECQFy+XESBh7QsFyItVJb6iq9cvc3yFisSm/sLHewUuYWe +uza8M6sLgjhcAybA2uoN/c7grjp9IsoCddSGnCxuDNY= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/uci/uci.cert b/server/slice/planetlab/us/uci/uci.cert new file mode 100644 index 00000000..6f48dce7 --- /dev/null +++ b/server/slice/planetlab/us/uci/uci.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBijCB9AIBADANBgkqhkiG9w0BAQQFADAOMQwwCgYDVQQDEwN1Y2kwHhcNMDgw +MzI4MDM0NDUzWhcNMTMwMzI3MDM0NDUzWjAOMQwwCgYDVQQDEwN1Y2kwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBALAUn8PKeVF7TuuxcmRpX8JIoNpIK5qW3QMS +kvgqxd40Xq2XKexw7qe6Gt3tRxgnADTAIUf/wW9/V7KPojRNZrfL6mdraO5epFpR +EQOmntswu0B8MaPa4wSOHOsa1+vw00ys4VZVzhSs4vIgBxAIXQIc9YbMNEEQklCc +L3k7+yITAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAHPqygZiW2Qim98dUhZUilF9D +76O2ZEnwRu7gku8PCsph88zgvhyivCC3EhYKxCS9/pO4TbV8ixvTX5Z7Sr1EajFY +lli9vVxqP88tuAW+PEuU5BMKJ1+mRBOfUsTBPfF2t4VzRxXfMjyd9E/9x0VVTGig +DvhAmtTpZ2/LuMR+LpE= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/uci/uci.pkey b/server/slice/planetlab/us/uci/uci.pkey new file mode 100644 index 00000000..4bf782b8 --- /dev/null +++ b/server/slice/planetlab/us/uci/uci.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQCwFJ/DynlRe07rsXJkaV/CSKDaSCualt0DEpL4KsXeNF6tlyns +cO6nuhrd7UcYJwA0wCFH/8Fvf1eyj6I0TWa3y+pna2juXqRaUREDpp7bMLtAfDGj +2uMEjhzrGtfr8NNMrOFWVc4UrOLyIAcQCF0CHPWGzDRBEJJQnC95O/siEwIDAQAB +AoGAKGczGbwWBmpi+5YmB4BeZrg/oJa62qgPYqsaajN2X7xolTCAgC6RtI7xp0bQ +72vTkkcb2+eFvU3dE639rD6ueNCt0xdUkv2eHy4CqNiprBehwvZOPGCcV1e+LseN +7nUFfDHDaJnenumQIhEv24nGWydK4LAbGVzX1a3XjY4Ue8ECQQDZLYPys5lVmEdT +PsOtSQoaXN5V3XlT0YWFBJPxNujHM1k4iv+L9sCC5SjRYGAlnVLlB0sbBVM/tW+Z +gimAcbgRAkEAz45rD7Z7+2AWvALSDCeIrlt6sk9alnIFP2iDMKFrtHhD9FxtX7rI +tD0exugc+pVh1d/dmnGIuyeJCc5QNyk74wJBAIoMDoVleCAabawSh1tMxClBwuod +n5OR6SdGY6u+VXTZxOrWH94d+Py7IZkFg9glCp4eZrVES0iB0fBn9m1426ECQQCY +Y+KreLpzCEvo4tFB50ztZ3Egti62wySjN6MK85nWuW57XdlYLhXqb+3G8OlF+qQI +mgNkv/M6Jn7xWi9/MKEtAkEAyZ0dIgoO9+woS4OK8KwAOvo7PDfV7by4p2RC6/F7 +9QHwfpGnvR1MYwWe4HCY0qfnau6UnapcJH/q45gnSu4WTg== +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/ucla/ucla.cert b/server/slice/planetlab/us/ucla/ucla.cert new file mode 100644 index 00000000..e17fce1a --- /dev/null +++ b/server/slice/planetlab/us/ucla/ucla.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR1Y2xhMB4XDTA4 +MDMyODAzNDQ1M1oXDTEzMDMyNzAzNDQ1M1owDzENMAsGA1UEAxMEdWNsYTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApn5VAuYIzXVVDfk7EzHHJy7kOCA7y3zK +LxOBqiBxr1rpeJdpZAdpIan/yC4UdbpgeOgBwkSF+nxDXc6h+BxCQBnJSGr5NmYG +mR1qA96Sdv4YahkhEc/W9Vrz/JEcJHvk5enScqKiwM77vq1EO7bDDGsFdYq7v5B+ +euyOoZz2eKUCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBuGbgzK0LFWHfw84W0hTTH +JyDhbT8oqZVmb6N6IiVdAspLOM+bzlSQs1Pr3GX6tXBYu0Mcr/N9lOjQJwz1uy6e +BW1/5MsHHvMQRyaLXoesIw7v8mceeOUaMyPKOjrtcosNU2O0vKtuof1RW0RaVdzo +XZB+n1w+oEbmKQyNb8YHAw== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/ucla/ucla.pkey b/server/slice/planetlab/us/ucla/ucla.pkey new file mode 100644 index 00000000..8dd9763d --- /dev/null +++ b/server/slice/planetlab/us/ucla/ucla.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCmflUC5gjNdVUN+TsTMccnLuQ4IDvLfMovE4GqIHGvWul4l2lk +B2khqf/ILhR1umB46AHCRIX6fENdzqH4HEJAGclIavk2ZgaZHWoD3pJ2/hhqGSER +z9b1WvP8kRwke+Tl6dJyoqLAzvu+rUQ7tsMMawV1iru/kH567I6hnPZ4pQIDAQAB +AoGBAJP9JPk/mUFu8pxKFV15WIkWoBrXY+76zAhOMWoUDpkMmQvsoewcvjEDF21K +sDr44Dl4F+Ai4mgEviiKu+N60tMR1yIQHUbXj1tF8HAxNgN4i2iHmJHK40XwF1TN +XcByQ9lAv7haT185zxbx458fjL/iVNdyajhJQCWI5zRzyEFhAkEA2WCnUzabti8V +swKab5K7Xa8lfNXumYCurdSoCSfvZ/4pODcXh8OwyaYauCoaf6bZ9tbdjBlRZdUh +LrUrR3TgfQJBAMQTO74v/bLOrk5NNeUd4sV+WmPn2R3ssi4qOHWkvFyb67WP6E3Y +hWIC6Io+iyWcfwegkbsv8WNWSwl26UejWUkCQD8547FKcuP8sf0NRsopDaJkLS0w +NGQlj6kz72QqX3IJ9QdKzudIPgWI8MCcTnTOnRs0x9/WBVzvLuWdAGeaUSkCQHqx +1mayvTyQ3L4ezqTqyKbw5Ds0L8bsAKumu+HSDhSddSgOPz3HSeAFFeK8NHJ6tXre +XZMW8yRIMXhgsqWjcBECQQDOil5v2Alo5+1+v9V00bF3+T/B4PXMNl4nexJ2nyit +an+te6SnyWZRWe8xG+bC+JmSZ2JK9Bq9oqiTMDCJepOv +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/uclaee/uclaee.cert b/server/slice/planetlab/us/uclaee/uclaee.cert new file mode 100644 index 00000000..86d7e23c --- /dev/null +++ b/server/slice/planetlab/us/uclaee/uclaee.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBkDCB+gIBADANBgkqhkiG9w0BAQQFADARMQ8wDQYDVQQDEwZ1Y2xhZWUwHhcN +MDgwMzI4MDM0NDUzWhcNMTMwMzI3MDM0NDUzWjARMQ8wDQYDVQQDEwZ1Y2xhZWUw +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANNEGYUpWj9uzmNwI053jzSyrymH +qIyvlJMEwwRqiFONmfCJOox8NsKtlxadv6X+3vmWl79KmsO7ouYGrV4YZ8HJWOwi +CxEUpoMUPjyKhH82dTROR96sdGb0oRjJ8uOitDfnAqIj4PXngVP1MVgkPkRATeG2 +EZo9Pydjeqb+GOL9AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAzFsDWC+Q9W4jjgoB +jAs4jpzqyXVMj7QUHZn9zGkSc3fJsdi981Csnlg0qrHPgHu+1O46O8nvTHva6abj +XQTlqRFg0UgeWqWDvM88VTMs6IlxeG0I788FO6mXBBbxPCe55tvMM/OI6sw41zgK +4iFCp5ljmddk4I4tnu/uyrN2pLE= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/uclaee/uclaee.pkey b/server/slice/planetlab/us/uclaee/uclaee.pkey new file mode 100644 index 00000000..e87299e1 --- /dev/null +++ b/server/slice/planetlab/us/uclaee/uclaee.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDTRBmFKVo/bs5jcCNOd480sq8ph6iMr5STBMMEaohTjZnwiTqM +fDbCrZcWnb+l/t75lpe/SprDu6LmBq1eGGfByVjsIgsRFKaDFD48ioR/NnU0Tkfe +rHRm9KEYyfLjorQ35wKiI+D154FT9TFYJD5EQE3hthGaPT8nY3qm/hji/QIDAQAB +AoGAN39sNM7oJkG1dem/XJ2LwQwvd3lrjYmSPgzCLibOKSTJi6aA+uame/2d8xL9 +hV2utWIZ+uZeQYzI/iRC5rUCjCtd3pVlXFPrYUiac5lM9w86l8yTITH9fiMrDFv8 +ulvadfLJ0HplxIEkKjzHgItbcu/oPIwFasLKNvGoaPlhGwECQQDu4tH92XnjfFHx +r6giDNBxXbGAtpCu/os5XdLTCYSbYWtzZAMx7gl6JtgnBV87uOL9+6wHeHrt6pAf +9G4E1FfbAkEA4ma6NjeDTo1TkuryzknCVfWfPyFHQJKlAB9ay/OB3/7JZky6eyKG +BQQwIiGLL3rv11RnV/d5mMXu4QkoSvY0BwJBANI4pwVWgc4wVEh1BWfZkQGCqzcS +8iYdeNWl/GadJKY8R/vG0oz45jwpvOQx9QmwfYl3FX+JhdyjI+wLBVqYpysCQB18 +89QL9vZMQg5ou6dSxBUeINfAJd+rOgKCEvlthgT+0oyYgdF39azBluNbKx3MDWEm +hS9X9GaJoUt+PdlFqBECQQCWahQ7yOXDweinIuYobmWMZiwEg7XlvijApB7SxXjf +Nqs8d6+3shUakmg2eo8UsGQwccVs6bIQjtKuaPtufhDz +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/us.cert b/server/slice/planetlab/us/us.cert new file mode 100644 index 00000000..dcca3e2e --- /dev/null +++ b/server/slice/planetlab/us/us.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBiDCB8gIBADANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDEwJ1czAeFw0wODAz +MjgwMzQ0NTJaFw0xMzAzMjcwMzQ0NTJaMA0xCzAJBgNVBAMTAnVzMIGfMA0GCSqG +SIb3DQEBAQUAA4GNADCBiQKBgQCgMlKVmVUDNLOYgxbb0N/vS2rxY0TxHf6FqHKC +BeHkEefaCgAZ+i/4H4qhMPyMwIH+3RBo3OR+1c4DVORK9vtE19UsBy/VhMgxZNsc +g8ZtFaoMc77ZhfQWYyvlmKPYQPdTXV1SfjfcCNf2FP/NNoMO0rUHp76csnfQUS72 +ypAnFQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAD2n9MD1bJU6r1+oNC4PwwGQj0Zw +S+16X5KoP+wKY4WJoXB5dJhHZ3nKjnHR6d7Gf8NtY7NBdu0Gmmnj09QJ7Ve4tNh2 +JaMPyVrwk0b2K5+rgLpxbht5lOOllHTn8E/XyIbCV1CoPAW9j5jW53g0xUlevBqT +lJcGvGF1RTBXl8CA +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/us.pkey b/server/slice/planetlab/us/us.pkey new file mode 100644 index 00000000..51edd5d3 --- /dev/null +++ b/server/slice/planetlab/us/us.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCgMlKVmVUDNLOYgxbb0N/vS2rxY0TxHf6FqHKCBeHkEefaCgAZ ++i/4H4qhMPyMwIH+3RBo3OR+1c4DVORK9vtE19UsBy/VhMgxZNscg8ZtFaoMc77Z +hfQWYyvlmKPYQPdTXV1SfjfcCNf2FP/NNoMO0rUHp76csnfQUS72ypAnFQIDAQAB +AoGBAIQ4hMlNAUngGcvrhtZvlCUiDmamFKUeqJEQ81I2ILfpv3/LeUH3qdgV0Ioy +sIBL8/+z3nNuvnmhZqSBUNw+9iwRuPYaqNAKKBpeOGpdbocuWLHIEmV38YdTeZhr +yIXQl1/PT8DF/3xrPKw7rZpn03xGOU3htha6QKUdbBOom8mRAkEA0H3fNYyM4cm8 +1FBJiPEHb35/GEgpZ2Xj86+CaWW15cTf0Vx7GqpCEER0h9pHr8ZVyUIzA3yrqrrB +xDGpjPnH5wJBAMSzNaFtKr/+wXgW7XSEFjYyEFD5pLFstkh7+LFZWVg8/m3F5Aa8 +EJ2lll+cCXKa2vPhBpq8TrxSTz8CGuGzSaMCQEa9/uevifnutqifmWPizLATDtLR +YWMZGnCL48cZYM/Wrk7ef1K75HCamaOi9+H3fRIt6RtMyP7EIY0NgMc51Y8CQDWJ +BQa7fJAm2SdDLjuxG46Cj7hKSc3UZcRSoXw7cjq21xSvcIF4vBj8EXJSOKwNg5wu +2apRqChPSqw+eWyGbHsCQB0LSeYGtQMH0l0zVgWg3j5CmyzRQ9yrrtCPXX+8WgLO +5rWDmCglKeDTGHZ3TnYmRcfRe2nBrCjHQAIvNyFk2P0= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/utah/utah.cert b/server/slice/planetlab/us/utah/utah.cert new file mode 100644 index 00000000..5d64f2a5 --- /dev/null +++ b/server/slice/planetlab/us/utah/utah.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR1dGFoMB4XDTA4 +MDMyODAzNDQ1N1oXDTEzMDMyNzAzNDQ1N1owDzENMAsGA1UEAxMEdXRhaDCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwe1it1/G1NSMFj9URIqWdNMWc0G/Cv/r +gngSveqqvDLRbQ1zyotNXECh9jl+pTBkpNvDVXtH5GvCgn0MGc0+wP2+zB3lwatl +F9iuCwo+vMjURCT3u9ZpJEjzRSxzdc4DY94wiZFNXy8TziOTt5R5boHp/qucX7DK +/MDloQHfVBMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCx8D3dYaWTUJVLRhRnu1cV +q1HF8ThmOmwqgQ7RKi7+5ezoP68KqFmCAiMCeRu7WeHSZwkTfpO1mbqZqk4DlhQW +DVAt9q1qrUn4oOLpFU5RPb60wysH9DnSiZ4go5e0Cea3zet7Nz090Ey4RK6cgcjZ +4IsU/pItFWT4om6FA0Lk4w== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/utah/utah.pkey b/server/slice/planetlab/us/utah/utah.pkey new file mode 100644 index 00000000..9c172bf0 --- /dev/null +++ b/server/slice/planetlab/us/utah/utah.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDB7WK3X8bU1IwWP1REipZ00xZzQb8K/+uCeBK96qq8MtFtDXPK +i01cQKH2OX6lMGSk28NVe0fka8KCfQwZzT7A/b7MHeXBq2UX2K4LCj68yNREJPe7 +1mkkSPNFLHN1zgNj3jCJkU1fLxPOI5O3lHlugen+q5xfsMr8wOWhAd9UEwIDAQAB +AoGACA00GQr39WQxwMa2V/YtEwKknvpu1SUVASC9Hnd8yT2O5mk1koZAGwFv+Aoh +EPi2ZQXe0VDCBmDW/ZX1h6i23zfM+X/9YnQKxPgN95d7YPOzkmzmYCggeyb2RQTy +fUYGSZCVmi1teK+ZQ4w7O0FJaz0oB01onXmOyr/muHPynekCQQD4jf0w9qImX2kS +J7TXtsewh9ZVGnH6ehMeBEDXLZo2G0+Ee1+LuMidviYTJiF5edUeav2rw51RSgLx +dnHHZC3NAkEAx7x+TLizkPMltolhcfIi5+P8HYBsVx9mRWzm3Vz7QEMwxovKPhAz +3jSGhiWRKhUYQKkEECF/FmBM0gY/oU6pXwJBAIp5kLXWsj/up/sVZAtKKbaP9zky +oo2JtVzjwbwgC+pZDNQiZ/jP2fUIGu5QMBYdaj6oHOu079B6C2m7M2iCx4ECQQCw +SMroB/RkMFXOv33DxcPNCskPeLMmSc5H5A/2vAP8+dBozCQZls9QhOdeKnXuwGOB +Xir52baDF0d17pHmWrjdAkAc4mG6A7/iux3KO9JykXge8/ShmXA6ovhYL7mDCa71 +8/LSNuJEQj2/CSueDIl9rVOlCljWplFivl0E9/KItnmQ +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/utxsa/utxsa.cert b/server/slice/planetlab/us/utxsa/utxsa.cert new file mode 100644 index 00000000..b14009c4 --- /dev/null +++ b/server/slice/planetlab/us/utxsa/utxsa.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCB+AIBADANBgkqhkiG9w0BAQQFADAQMQ4wDAYDVQQDEwV1dHhzYTAeFw0w +ODAzMjgwMzQ0NTNaFw0xMzAzMjcwMzQ0NTNaMBAxDjAMBgNVBAMTBXV0eHNhMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJNKDEqpoW+rvTrXP3/O9+xfVq/+Be +EtqWBu6Rr5zY/LATVRdqUd+xsrel/UH5dqWicg+5Js+GRbLxWqOMOn/Xwm4mgi2P +xwHNR1rAN507wNaaBT+ntemF92ffCPqi9d+iN3wMHQWsgL1+5VP9c/Lj2TMBGpbV +Fmmy9O1d+gqYkQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJum3WhwYv3LTH/002T+ +SarCRHyGwhhuhmTj1/ZYC82aZ+TgsGkPwlq7AadBHyE7tccfz2Og4RrnXcixoKpV +dAXHEh92Xan8NwU79uGsxe5gC4hOVoRs6RDu1FYDI8V9+XHe16i5rRCiSPyO8R1I +CCbNzVpCFunSHxS4K5+4ZY0i +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/utxsa/utxsa.pkey b/server/slice/planetlab/us/utxsa/utxsa.pkey new file mode 100644 index 00000000..346f0acf --- /dev/null +++ b/server/slice/planetlab/us/utxsa/utxsa.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDJNKDEqpoW+rvTrXP3/O9+xfVq/+BeEtqWBu6Rr5zY/LATVRdq +Ud+xsrel/UH5dqWicg+5Js+GRbLxWqOMOn/Xwm4mgi2PxwHNR1rAN507wNaaBT+n +temF92ffCPqi9d+iN3wMHQWsgL1+5VP9c/Lj2TMBGpbVFmmy9O1d+gqYkQIDAQAB +AoGACoiVzhX8YS2ZPbi79ISqaSGl+ocQ0Pv9s5MDVF80P+vir/BpfGhy5JOtp6P9 +mzjJ7Ro5loDgpm/psVcEbuf1H1fLYQg7djyU+NC02MJAwZO/3C7Oa/pNezW98LTE +n9WPd+GKHqHtePfzUpCVt5SaLr5Z7dRGQvFGreUZn64n4u0CQQDmRD6klh5UOeKx +E35gdXimqb2v1pILfynthV2WPQS06bKwG0oK2cjfQtXdbuv4EcyobSO25qCWbVzV +q9+hdfbzAkEA37D4PCo/h0i+qdo2MXlm/bb51LstClWnO5D+crdOQQNCM0nDomRh +LJy4aH+n4auREdUlrM2WNDTOaoCiGjxbawJADqT4du81LpYf3LMormnKKo9RCQXU +c/a6a+i3cv6edgMG4jxaESaYp9pQT6zmRPic03lddBxmyipaZRxxNIuUEQJAOlXJ +ds9BwAMNjfgVN/PEExhbsMmbZl2N/i/C26HIK5Yw9nUfKsNowByizsWzv1thurfO +WnFG4Zh/2DBxlcv1vwJBAIDOK58oF6bCuF1h96J1Iut45ePM5BEuaBBhUSJvbBvI +AVVAAOMU9Qeopjh2leXN6ZZ2QxVX+gFA5bQMDdDvks0= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/uvic/uvic.cert b/server/slice/planetlab/us/uvic/uvic.cert new file mode 100644 index 00000000..f93e8620 --- /dev/null +++ b/server/slice/planetlab/us/uvic/uvic.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwR1dmljMB4XDTA4 +MDMyODAzNDQ1NVoXDTEzMDMyNzAzNDQ1NVowDzENMAsGA1UEAxMEdXZpYzCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA4MT5TfugtASY8ZCRJW2Ng+OyG8ct9Aux +aaEmnPwHGAu0ci4Qc5ol8/m5o5VjbwM7O6fsOHDQObcrs+MEETit1NrWa/HjYN8k +aWbR7iNoQCpBY5skb3aF2Wx7HEtdleLYeXfH3cFjuGwAK0sJIk1mzbfyNhKfwBIR +MfFtTUfM56cCAwEAATANBgkqhkiG9w0BAQQFAAOBgQAatIOy9CWFZu7MdHk7Di7j +Tfp+t8N9cJiszAaL7TenSbgb17Hc5YoN7hbZ3j5ZUE5K7RzeHa4YD845J6GTScO7 +oAROOwHkVRYn3y6rrIkdwctxPKedAgfEUvwFXL//8lJ/Nl/KAenzIjTR3N+6LC5j +CQUo6wmMR1dFU/qKbniEqw== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/uvic/uvic.pkey b/server/slice/planetlab/us/uvic/uvic.pkey new file mode 100644 index 00000000..7b1be641 --- /dev/null +++ b/server/slice/planetlab/us/uvic/uvic.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDgxPlN+6C0BJjxkJElbY2D47Ibxy30C7FpoSac/AcYC7RyLhBz +miXz+bmjlWNvAzs7p+w4cNA5tyuz4wQROK3U2tZr8eNg3yRpZtHuI2hAKkFjmyRv +doXZbHscS12V4th5d8fdwWO4bAArSwkiTWbNt/I2Ep/AEhEx8W1NR8znpwIDAQAB +AoGAMVNImpJzy82OesSM9be67IyVU388WGgQgOu6e4zbSa2X5c6yEYxsc8QDtyBb +d8svvoG1VxV6vI+z6YASLm1PyBL+X+lMB283R0Fm5gFZ8XD8Zk7waFDrYYR72ZdM +Yz47fCvrUt0qOlQEPu47wKBaXJW5kP9yTx1jfHbCgLvLnvECQQD4HDbpkY3Psz5n +hYkrplgXq7DLRHPSXPwkz40RGVe2crmUKJC21Rs6UjYU+RuCTP3C7kK3Cj6aijuf +J1yQ8f4LAkEA5+q/4OlTRQHozf1WVOx4V9RnGjsPqRPse8zF44uTY5CInOTZeYnj +ZJzslmJaqkur22qSnUdITHDAGR4vHalqVQJATxEGutZEv/zaFTlr5jojdp+jPpO4 +6T/ypnRx+xH9bsoOs9VdkLZG8AYE8BgWmSaZ88XkAtrD6pHEwEpV6GcF0wJBAMMd +Q/tUMgNPvO544gYmwIScJXXzFJTaN05clGyBBCpy8gyVmMXhFVeTkpRfAQpfCaJb +AiiiTRhKj8NSGq+o1dUCQEJJZhs3JcGVjM+3ZntSJQVqBoym2iYsVW/YHMp5UB44 +BsJlYLtav913XwHhU3lhhsa8NyjpFB0cE+zdbMsDids= +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert b/server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert new file mode 100644 index 00000000..b8405381 --- /dev/null +++ b/server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOdXdhY2NyZXRp +dmVkc2wwHhcNMDgwMzI4MDM0NDUzWhcNMTMwMzI3MDM0NDUzWjAZMRcwFQYDVQQD +Ew51d2FjY3JldGl2ZWRzbDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA6YIS +13t7BOCpBgrw3j7G4pgJDZmupyGmB2z7IflKrQtfnJRxG1n9jxL+WA+yjPGsN7XD +sb/BgUl1YTCY95nS4FNnyjgGmu+fNYBCu89pQfXfAPWnXha68Je2Y2pjVv78CAAb +8zkWo8d6SfoLTinExxvlRCi25KrB/i+UQ+tjq+kCAwEAATANBgkqhkiG9w0BAQQF +AAOBgQAIEgjRZkHH/y/++BzH2rMyO8Vv36hbFI15ByaP+bggAtSZNh9GW3vyl/mr +7g8E4J3yDXkCv58KzG6+3Ji7e5nPrhNIYVtSSk0N0myNdUTw9OhFs/qKU82ZcCHh +pKkup8G6NCdIeVifh7P1P4LB5YrCiOq4CLk+G9FkMC3jTLpI6g== +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey b/server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey new file mode 100644 index 00000000..f28ff819 --- /dev/null +++ b/server/slice/planetlab/us/uwaccretivedsl/uwaccretivedsl.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDpghLXe3sE4KkGCvDePsbimAkNma6nIaYHbPsh+UqtC1+clHEb +Wf2PEv5YD7KM8aw3tcOxv8GBSXVhMJj3mdLgU2fKOAaa7581gEK7z2lB9d8A9ade +Frrwl7ZjamNW/vwIABvzORajx3pJ+gtOKcTHG+VEKLbkqsH+L5RD62Or6QIDAQAB +AoGAOU+Qeky3O9I8Cdyjk5iKzdCM4Eao5CJREp9/363E00XoWJDiVdk3b2c0/74S +j589Kos1Fao/vxCde5Ym5RZe9/HPXcuEbIhhIoCjJ/kL1GCNEcI+D1GKeh+jSZsn +3vcWbW5AXVv/W+l8bGq1A1RVMoTbs/KJg4JkKTvqPtVd4pECQQD7sF0jKwdTcRdK +2F6w3SNrIkso+WV5NZGMUKPrMtq/rl5seIoZXcA4vtmDkqFJ00wWU6W7miHqFMQo +vQNM7x5lAkEA7YH9AblPUeyIRdh9K3lM7e5Yc1E0/S0T49M5/bGW7BdVsQWA9aFe +B4ZtLp9JHHouQrp2A1jLB7p9fbi7B+ZNNQJBANJva//6ev6WIL5wWAOScYmiu6q/ +ksscMdxalCMTevgnB0W0Jur8ironP+AVWgtKwmQsffZz8YUw5a2WE0tg5k0CQQCa +AMKMXptXNLc8Ct9G1DWUxgqmY46nZ5ZREMK2hHOnDI5s5XO0UfkFih27sF8YzwS2 +Ee+5xdaIYV1DqwfjXGrNAkAGWrSEGIz7wx9obSrO2H3YoYW0VfIeldHdrZKchKN7 +P1XA0TSJwkVVixxYErZV8PUI+pDyWXvWbjmWgQus1Dxi +-----END RSA PRIVATE KEY----- diff --git a/server/slice/planetlab/us/vanderbilt/vanderbilt.cert b/server/slice/planetlab/us/vanderbilt/vanderbilt.cert new file mode 100644 index 00000000..d91ca8e2 --- /dev/null +++ b/server/slice/planetlab/us/vanderbilt/vanderbilt.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBmTCCAQICAQAwDQYJKoZIhvcNAQEEBQAwFTETMBEGA1UEAxMKdmFuZGVyYmls +dDAeFw0wODAzMjgwMzQ0NTNaFw0xMzAzMjcwMzQ0NTNaMBUxEzARBgNVBAMTCnZh +bmRlcmJpbHQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALswqzfxhgzB2Yfj +Z4Kv6RqSL8c7PsRogJtzRccmyNUlXMBuPmSpn2+V2xRh5z4Id66JIYGJxgMRDC5t +Brr+233w47ylqTfoGmrjGa3wYZfApFpxznglQtLByrSpTNWvWyIp+RJyXpFAjbxB +u+FhaIkfLzFrhKKGwpgCan5C6DaLAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAlLIT +7/OzFKmbz00h9Et+gw1xA3v5CMYKGwEK9BIcU/MTLGK+Fs9qUuHpVBvRKHFI8Zqr +pwWOgUc0QC0kR/teCu3Vy6a1G24514drUtLBug3PmmewWPatPNvoaHZLKnMz3G5j +Qq/6TwIViScp+YLfefom346HlJ9LW4lDocFuXB0= +-----END CERTIFICATE----- diff --git a/server/slice/planetlab/us/vanderbilt/vanderbilt.pkey b/server/slice/planetlab/us/vanderbilt/vanderbilt.pkey new file mode 100644 index 00000000..9e806ace --- /dev/null +++ b/server/slice/planetlab/us/vanderbilt/vanderbilt.pkey @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC7MKs38YYMwdmH42eCr+kaki/HOz7EaICbc0XHJsjVJVzAbj5k +qZ9vldsUYec+CHeuiSGBicYDEQwubQa6/tt98OO8pak36Bpq4xmt8GGXwKRacc54 +JULSwcq0qUzVr1siKfkScl6RQI28QbvhYWiJHy8xa4SihsKYAmp+Qug2iwIDAQAB +AoGAPe0m55YGY9gJj/QCPXDWrAyqs7180VtFGKg08GJ7VFBM8/hEueaHsVGhLYgK +CTKh7WK+a+1ZTZBpOD6nWFuR3vIj9KH7e6DB9+N21xaGw4m5HW3cLfTlx5j4ohN3 +XADS8q58Dz+OlhOV8f6aWIGKMd0omiw2qjh/KajaYLg8feECQQDolnLFRwvXCbVr +2jzX6Tbn4RZcBSr4QQUdKMxu4LJDkdy2wnUACy4S4+3mbEt0quUQNCrT86OK3Idj +7IsSgxX7AkEAzghe1e6y2+yU9FcoG9BC5aAT3P8cWb/B9+WQYPIE1ladIMOcxzBP +urFVHCv5A+kop0Tm3gYrVNEm4E6VQKbMsQJAYr/lsK6ubzlXBpic9oq03hRp+t3S +1Z49fpjg2z6ZUSjvzcSYClG02R5e1lMqYjlgkdWkTWMHD6D79sfqcAyp2wJACVl7 +5D1mxHAh+kySN2DmCEGRZS/2e2QmSzeRq7SP36Iik0ANN0TL+W7eq96a+EB2ZdDM +oTqqcLjlCLzILRzkoQJBALq8SMNS/I5J7Mwe8gk9MoaVEnVbP0xI81Za7ikx3yrm +mMamdtJV/jSWLg258wNzRaUPlaZPnJEY7NcVT4hussg= +-----END RSA PRIVATE KEY----- diff --git a/server/trusted_certs/geni_mng.cert b/server/trusted_certs/geni_mng.cert new file mode 100644 index 00000000..9f9b5c30 --- /dev/null +++ b/server/trusted_certs/geni_mng.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 +MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 +cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c +LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS +4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc +6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x +k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q +rBwyf1+Su4n1IPiqGi9yyA== +-----END CERTIFICATE----- diff --git a/server/trusted_certs/geni_slc.cert b/server/trusted_certs/geni_slc.cert new file mode 100644 index 00000000..9f9b5c30 --- /dev/null +++ b/server/trusted_certs/geni_slc.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjDCB9gIBADANBgkqhkiG9w0BAQQFADAPMQ0wCwYDVQQDEwRnZW5pMB4XDTA4 +MDMwMjA4MDMzN1oXDTEzMDMwMTA4MDMzN1owDzENMAsGA1UEAxMEZ2VuaTCBnzAN +BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+WJeTXaRH+mnoOa7FWdq2mZAMMFvO/o4 +cvG1ALMt1YuPFotCtyYwSgB1njbJasIUqpDaj9dPUBuJv03EjLA3N+g/QVJg+26c +LW85VA5tWNWuT6a59kWXlXI2uhjbTzjMOluN5cdmxTOFpaQ9+mnN3j58mHfIC8eS +4Q8FkcNWAR0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA7qB8a1Pkbve0r8Fmknicc +6gxWhAmMUTSFtAhS1HFMZU+pmKEbTudh2L6DrAUVV5JCbQQg0XuTbFZfDGBSgx3x +k+NgAqOlNVGixGDH7Gg164jVt4Lh+tu+FO3AaP8qk1LYqzVhofeXPcVxNwlTGD9q +rBwyf1+Su4n1IPiqGi9yyA== +-----END CERTIFICATE----- diff --git a/server/trusted_certs/planetlab_mng.cert b/server/trusted_certs/planetlab_mng.cert new file mode 100644 index 00000000..c1b42112 --- /dev/null +++ b/server/trusted_certs/planetlab_mng.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDUwNVoXDTEzMDMyNzAzNDUwNVowFDESMBAGA1UEAxMJcGxh +bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1li/h52QbJtucIQUE +YZMZkA8tWcS9f0VkAPNS5/OeRhaQ/iLERQI2EV/rmPCuARQhlZLhm5Y5vxvHG/ba +6Rb9vYKEMDujZwdc3QjhAbYS72V28rbdIeHysJ7JeGz9J1ODLSzbcCt5amLZcMPm +u/G64ieWI8QMUxYgCE1ut3bI1QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAJH5KqIU +2lrA9calI3oklbWpduiZspbwCUkhr8PNVDnkXSI1K+egDqFTaANVp1DxXU8qaDS6 +X5+s9Qf9FQ5+9mfSaocma6YW4Qfb3Zm/mYmpt+nknTlnVuEaTENyBIPfr0pDqzld +GGcYPul25KknFmdPOrqAUzma9n568u2KYlfz +-----END CERTIFICATE----- diff --git a/server/trusted_certs/planetlab_slc.cert b/server/trusted_certs/planetlab_slc.cert new file mode 100644 index 00000000..9f5b851d --- /dev/null +++ b/server/trusted_certs/planetlab_slc.cert @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBlzCCAQACAQAwDQYJKoZIhvcNAQEEBQAwFDESMBAGA1UEAxMJcGxhbmV0bGFi +MB4XDTA4MDMyODAzNDQ0OFoXDTEzMDMyNzAzNDQ0OFowFDESMBAGA1UEAxMJcGxh +bmV0bGFiMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1NiZzJyIz8uZVHahZ +QqcmhsxROY8YjjRF/WGow9t8hvaimScO0yH3VUEPolblSM1Juke6M3vGO7aT7bJC +apb7kuoHlrS35k0K/vcOOMXS80gpT8oltKbfJrlt8kmtEXm7F4fh8UiLm6n/GEY9 +OPFuvUtQqIFqG8DdBd3SEhi6UQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABRIUVzW +JbwQKnqM3rVHJoSgtYWpgDvJosLCrLZhsXrukOsC8Gs8V6vPTPO7kofdUbHQKRnL +xp1nI5hlWIlq/XOnh+NEPZaB2SAKwfl3FZwUqjaEVd/VYOfsRryZtiUz4sL3CtXN +C8i/I4HwCnrl/pmzbprqpGq+RJTa5yLmBw6r +-----END CERTIFICATE----- diff --git a/util/db.py b/util/db.py new file mode 100644 index 00000000..590a0020 --- /dev/null +++ b/util/db.py @@ -0,0 +1,81 @@ +import os +from pg import DB +from excep import * +from tree import * +from util import * + +#planetlab authentication structure +pl_auth = {'Username': 'ssevinc@princeton.edu', # User account +'AuthMethod': 'password', # Type of auth this is. Can be password, session ... +'AuthString': 'Ss3928Ee' # the password for this account +} + +def get_plDB_conn(): + dbname = 'plDB' + address = 'localhost' + port = 5433 + user = 'postgres' + password = '111' + cnx = DB(dbname, address, port=port, user=user, passwd=password) + return cnx + +#copy the pl db info to requester +def get_plDB_info(dst): + dst.db_name = 'plDB' + dst.address = 'localhost' + dst.port = 5433 + dst.user = 'postgres' + dst.password = '111' + + +#determines the database info of a given hrn +#if the hrn does not exist in the tree hierarchy None is returned +def determine_dbinfo(hrn, tree): + info = tree.tree_lookup(hrn) + if info == None: + return None + else: + db_info = info.node_data['db_info'] + cnx = DB(db_info.db_name, db_info.address, port = db_info.port, user = db_info.user, passwd = db_info.password) + tablename = db_info.table_name + return [cnx, tablename] + +#convert the parameter list to query string suitable for supplying to database queries +#input: query type, table name and field-value pairs +def generate_querystr(type, table, dict): + querystr = "" + if type == 'INSERT': + keys = dict.keys() + str1 = keys[0] + for i in range(1, len(keys)): + str1 = str1 + ','+ keys[i] + str2 = "" + for i in range(len(keys)-1): + if isinstance(dict[keys[i]],str): + str2 = str2 + "'" + dict[keys[i]] + "', " + else: + str2 = str2 + str(dict[keys[i]]) + ", " + if isinstance(dict[keys[len(keys)-1]],str): + str2 = str2 + "'" + dict[keys[len(keys)-1]] + "'" + else: + str2 = str2 + str(dict[keys[len(keys)-1]]) + querystr = "INSERT INTO "+table+ "(" + str1 + ") VALUES(" + str2 + ")" + elif type == 'UPDATE': + str1 = "" + keys = dict.keys() + for i in range(len(keys)-1): + if keys[i] != 'hrn': + if isinstance(dict[keys[i]],str): + str1 = str1 + keys[i] + " = '" + dict[keys[i]] + "', " + else: + str1 = str1 + keys[i] + " = " + dict[keys[i]] + ", " + if keys[len(keys)-1] != 'hrn': + if isinstance(dict[keys[len(keys)-1]],str): + str1 = str1 + keys[len(keys)-1] + " = '" + dict[keys[len(keys)-1]] + "'" + else: + str1 = str1 + keys[len(keys)-1] + " = '" + dict[keys[len(keys)-1]] + querystr = "UPDATE "+table+ " SET " + str1 + " WHERE hrn = '"+get_leaf(dict["hrn"])+"'" + elif type == 'DELETE': + querystr = "DELETE FROM "+table+" WHERE hrn = '"+get_leaf(dict["hrn"])+"'" + return querystr + diff --git a/util/db.pyc b/util/db.pyc new file mode 100644 index 0000000000000000000000000000000000000000..533d7915826596aa4fad5125f177d0dc47c6451f GIT binary patch literal 2659 zcma)8-EJFI5dLP@>%YYPZ#SV*wGE|ptB{g{5UpBhOI)bbrm#*4id0#S&uOxayX)*Z zhD7XMpzs86(Ygyz=qvnV&QB&72wk_E)3+=dXW%(Zj)~ z2H-9Lvj;!{im(N&6|{pbLf^rf17eU?&)c?>|bzrVk~+#~?j0kCwxpn2n(Im_-E{aqCI z?heu@?rEFE3tA0r6~I%Y)42Om%gdl^%=byEY#qS8q1}9}?Pj8c*ES#Cyzxm(k9lpI zM)8IqQw9W?&-o}`6d?zcgPa(K+<__~ccDDwC0HN>GJ+~2bD%27T&OCt680Q7_mFvL zHyP?>TLLiXFWtBN+E04j{$^rqbn`4wxSSZfk!oXI0E>%@g+h{AA%;e$mc5h6l)w^l zDx1719JMatR{(UCO0_ZJ6o7D=7d9%Ed+|2Q*O!JCGbllI%U= zBH&~LFB~LQxgqWNYf$DOa=2nVJ+2^rEprhuQQo_&2 z>NMyBs!@+m=8E9>q`uyBi|goe`6x%we?o#fum`@6S&8wT%{}Z~hb6|?I&vEcdk&VK z%^)u`yvl>mK$kJ==N`5{!z$nO3U&spH&#+5%9FD+!B^E0e|2ni;?%MI<`MfxqL3TF;adS&9YawYoKY9?4M;Z5NH#8k)Y(Gu zKNSd+xo9`fNzdS}CWGPOa=R6-MEoAfXys*I)+>gu*_HXgaMzm;3=fM!K6tpi@+1(c zrr|4oHTdS8D>U-CJpe@9-Vw0TX)ss6>O$4D~P3~)}z)+OU^II;6eE0aZq$2Hoc{Hjb$@wH{Q_FnEE=FrWKheHnz)u z2sj*LQ<exl zyPcHL8SAubb!TMmeRgQ+V0<=cn(A~8WjaS?@=>N4y5IyfM@?sr=BPnsnwI^OG((r2 zYjmFG=$7*_%~OLeQB(Rnrz$b>GuV)xE-~qyo*snfN8a;Hm$@_?D1y#jvM(SahV|p%vP|~kUYa4@k%7r1%ygDr*xULX zUVQ-H$Vc$zP5zb4baD_k2@Elz8>Z;)s`^!Rb^Z9&Y5)BG`~3j(UlqU`0NFPH8Zf}n zgZA(hxCTC-dC-+yS}mj%=vpqV7t$(pBbPP{X$^WOm$nLN9lD)McME9)dM}rD3TYF1 zAASE80DB+6r!XFl(~;31(&Xr3U?w&iCxuHMfVXt%5yT(50G>sw#j&$0g1%n?FyNGr z9yfIWTzR+xlmO}bJnvX$TL*9+##1AkZH*gDJPf$RCsCQQ+W@-V!>NtpLqq$zlS{h; zK&dE+tWu<&Q7yay_j2&Fu)u;AL>{ia!U8T3m8qGeGnL#IQ2sCFO;MiNR4Mu}*X`4R zxnW5-GD_LDEF6vXG&V{FG&JB2r{M1{26TwlWIVUwwJMf0Pg7&cjM5AZ?GQ9K36A*L za$r^qNL3cbK!|#9Ty~jgl{c8H`h1!VOuMJ+Jm! z7h+xZ1hjYy)@IMF*HDlfTv63*=~GH&cis;!Ab8V zOv6#O#Yz9tkthfKfm65{dUi7}7SSL3e0DA0fTF{ZE=Znac^jlo$#s#)$r(3krZS%V QYSxIomZpk=0 and alg_count>=0: + if alg_count == 0: + login_base = login_base+hrn_arr[j] + j = j-1 + alg_count = alg_count-1 + if len(login_base) > 20: + return login_base[0:20] + else: + return login_base + + +#given an email or person_id (which are ids of a person in Planetlab), determined the last portion of hierarchical name of it in GENI +def person_to_user(email, algorithm = 0): + hrn_suffix = '' + if algorithm == 0: + hrn_suffix = email.split('@')[0].replace('.','-') + elif algorithm == 1: + hrn_suffix = email.split('@')[0].replace('.','-')+'-'+email.split('@')[1].split('.')[0] + elif algorithm == 2: + hrn_suffix = email.replace('@','-') + hrn_suffix = hrn_suffix.replace('.','-') + return hrn_suffix + +def plslice_to_slice(slice_name): + i = 0 + while slice_name[i]!='_': + i = i+1 + return slice_name[i+1:len(slice_name)] + +def plnode_to_node(hostname, algorithm = 0): + hrn_suffix = '' + if algorithm == 0: + hrn_suffix = hostname.split('.')[0] + elif algorithm == 1: + hrn_suffix = hostname.split('.')[0]+'-'+hostname.split('.')[1] + elif algorithm == 2: + hrn_suffix = hrn_suffix.replace('.','-') + return hrn_suffix + +def check_exists_pl(cnx, pointer, type): + exists = True + if type == 'SA' or type == 'MA': + res = cnx.query("SELECT deleted FROM sites WHERE site_id = "+str(pointer)).dictresult() + if len(res)==0 or res[0]['deleted'] == 't': + exists = False + elif type == 'slice': + res = cnx.query("SELECT is_deleted FROM slices WHERE slice_id = "+str(pointer)).dictresult() + if len(res)==0 or res[0]['is_deleted'] == 't': + exists = False + elif type == 'user': + res = cnx.query("SELECT deleted FROM persons WHERE person_id = "+str(pointer)).dictresult() + if len(res)==0 or res[0]['deleted'] == 't': + exists = False + elif type == 'node': + res = cnx.query("SELECT deleted FROM nodes WHERE node_id = "+str(pointer)).dictresult() + if len(res)==0 or res[0]['deleted'] == 't': + exists = False + return exists + +def check_exists_geni(record, dbinfo): + cnx = dbinfo[0] + table = dbinfo[1] + try: + #lookup in GENI tables + geni_res = cnx.query("SELECT * FROM "+table+" WHERE hrn = '"+get_leaf(record['g_params']["hrn"])+"' ").dictresult() + if geni_res: + return geni_res[0] + else: + return None + except: + return None + +#fill the geni table with the records in PL database +#login_base: indicates the site in PL +#tablename: the GENI table name +#type: 'slice' or 'component' indicating the registry type of the GENI table +def populate_pl_data(login_base, tablename, type): + cnx = get_plDB_conn() + site_id = cnx.query("SELECT site_id FROM sites WHERE login_base='"+login_base+"';").dictresult()[0]['site_id'] + + if type == 'slice': #slice registry + #populate user records + querystr = "SELECT p.person_id, p.email FROM persons as p, person_site as ps WHERE p.person_id = ps.person_id AND ps.site_id = "+str(site_id) + users = cnx.query(querystr).dictresult() + for user in users: + new_hrn = person_to_user(user['email']) + existing = cnx.query("SELECT * FROM "+tablename+" WHERE hrn = '"+new_hrn+"'; ").dictresult() + if len(existing) > 0: + new_hrn = person_to_user(user['email'], 1) + existing = cnx.query("SELECT * FROM "+tablename+" WHERE hrn = '"+new_hrn+"'; ").dictresult() + if len(existing) > 0: + new_hrn = person_to_user(user['email'], 2) + cnx.query("INSERT INTO "+tablename+"(hrn,type,wrapperurl,pointer) VALUES('"+new_hrn+"','user','local',"+str(user['person_id'])+")") + #populate slice records + querystr = "SELECT slice_id, name FROM slices WHERE site_id = "+str(site_id) + slices = cnx.query(querystr).dictresult() + for slice in slices: + slcname = slice['name'].split('_') + if slcname[len(slcname)-1] != 'deleted': + new_hrn = plslice_to_slice(slice['name']) + existing = cnx.query("SELECT * FROM "+tablename+" WHERE hrn = '"+new_hrn+"'; ").dictresult() + if len(existing) > 0: + new_hrn = new_hrn+'-'+str(slice['slice_id']) + cnx.query("INSERT INTO "+tablename+"(hrn,type,wrapperurl,pointer) VALUES('"+new_hrn+"','slice','local',"+str(slice['slice_id'])+")") + + if type == 'component': #component registry + #populate node records + querystr = "SELECT node_id, hostname FROM nodes WHERE site_id = "+str(site_id) + nodes = cnx.query(querystr).dictresult() + for node in nodes: + new_hrn = plnode_to_node(node['hostname'], 0) + existing = cnx.query("SELECT * FROM "+tablename+" WHERE hrn = '"+new_hrn+"'; ").dictresult() + if len(existing) > 0: + new_hrn = plnode_to_node(node['hostname'], 1) + existing = cnx.query("SELECT * FROM "+tablename+" WHERE hrn = '"+new_hrn+"'; ").dictresult() + if len(existing) > 0: + new_hrn = plnode_to_node(node['hostname'], 2) + cnx.query("INSERT INTO "+tablename+"(hrn,type,wrapperurl,pointer) VALUES('"+new_hrn+"','node','local',"+str(node['node_id'])+")") + diff --git a/util/pl_to_geni.pyc b/util/pl_to_geni.pyc new file mode 100644 index 0000000000000000000000000000000000000000..002a7a7af84b582c8fbeb093b7a2af7a71a462f1 GIT binary patch literal 5987 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: + for c in self.children: + children.append(c.serial()) + if self.info: + return {'children':children, 'info':self.info.serial()} + else: + return {'children':children, 'info':None} + +class InterfaceTree: + def __init__(self, type, filename, auth_addr): + #the tree for keeping the site names managed by this interface instance + self.my_tree = None + self.type = type + self.filename = filename + self.auth_addr = auth_addr + self.tree_init() + + #check a hrn if exists in the tree, return the info of it, if not found return None + #hrn:string + def tree_lookup(self, hrn) : + tree= self.my_tree + if not tree: #tree empty + return None + found = True + hrn_arr = geni_to_arr(hrn) + tmp_tree = tree + if tmp_tree.info.name != hrn_arr[0] : + found = False + else : + cur_name = hrn_arr[0] + '' + for i in range(1, len(hrn_arr)): + cur_name = cur_name + '.' + hrn_arr[i] + child_found = False + child = {} + for j in range(len(tmp_tree.children)) : + if tmp_tree.children[j].info.name == cur_name : + child_found = True + child = tmp_tree.children[j] + break + if child_found == False: + found = False + break + else: + tmp_tree = child + if found == True: + return tmp_tree.info + else: + return None + + def is_leaf(self, hrn): + tree= self.my_tree + if not tree: #tree empty + return None + found = True + hrn_arr = geni_to_arr(hrn) + tmp_tree = tree + if tmp_tree.info.name != hrn_arr[0] : + found = False + else : + cur_name = hrn_arr[0] + '' + for i in range(1, len(hrn_arr)): + cur_name = cur_name + '.' + hrn_arr[i] + child_found = False + child = {} + for j in range(len(tmp_tree.children)) : + if tmp_tree.children[j].info.name == cur_name : + child_found = True + child = tmp_tree.children[j] + break + if child_found == False: + found = False + break + else: + tmp_tree = child + if found == True: + return tmp_tree.children == [] + else: + return None + + #add a new branch into the tree, branch is indicated by info + #info: TreeNodeInfo + def tree_add(self, info): + tree= self.my_tree + inserted = False + hrn_arr = geni_to_arr(info.name) + tmp_tree = tree + + if hrn_arr == []: + raise TreeException("Wrong input hrn: "+info.name) + else: + if tree == None: + if len(hrn_arr) == 1: + #insert the node + tree = TreeNode() + tree.info = info + inserted = True + else: + cur_name = hrn_arr[0] + '' + if tmp_tree.info.name == cur_name: + for i in range(1, len(hrn_arr)): + cur_name = cur_name + '.' + hrn_arr[i] + child_found = False + child = {} + for j in range(len(tmp_tree.children)) : + if tmp_tree.children[j].info.name == cur_name : + child_found = True + child = tmp_tree.children[j] + break + if child_found == False: + if len(hrn_arr) - i == 1: + #insert the remaining of hrn + new_child = TreeNode() + new_child.info = info + tmp_tree.children.append(new_child) + inserted = True + break + else: + tmp_tree = child + if inserted == False: + print "The hrn '"+info.name+"' should be at leaf position to be inserted.\n" + return inserted + + #remove the branch indicated by hrn from the tree + #hrn: string + def tree_remove(self, hrn): + tree= self.my_tree + removed = False + hrn_arr = geni_to_arr(hrn) + tmp_tree = tree + if tmp_tree.info.name == hrn_arr[0] : + cur_name = hrn_arr[0] + '' + for i in range(1, len(hrn_arr)): + cur_name = cur_name + '.' + hrn_arr[i] + child_found = False + child = {} + for j in range(len(tmp_tree.children)) : + if tmp_tree.children[j].info.name == cur_name : + child_found = True + child = tmp_tree.children[j] + break + if child_found == False: + break + else: + if i == len(hrn_arr)-1: + tmp_tree.children.remove(child) + removed = True + else: + tmp_tree = child + return removed + + #initialize the tree with the file data + def tree_init(self): + filename = self.filename + type = self.type + try: + #check if dict file exists + if not os.path.exists(filename+'_dict'): + if not os.path.exists(filename): + print 'Error: File not found.\n' + raise NonExistingFile(filename) + else: + self.__file_to_treedict(filename) + self.my_tree = self.__deserialize_tree(eval(open(filename+'_dict').read())) + else: + self.my_tree = self.__deserialize_tree(eval(open(filename+'_dict').read())) + #create the tables and key folders if they do not exist already + self.__sync_with_db_rec(type, self.my_tree) + except: + print 'Error in initialzing the tree.\n' + os._exit(1) + + def save_tree(self): + open(self.filename+'_dict', 'w').write(str(self.my_tree.serial())) + + def __sync_with_db_rec(self, type, treenode): + self.__sync_with_db(type, treenode) + for child in treenode.children: + self.__sync_with_db_rec(type, child) + + #if do not exist, creates the (key folder, private key and self signed cert) and the db table for the node, fills the table with the children info + #type: 'slice' or 'component' indicating the registry type + #hierarchy:hrn so far + #treenode: node to be synched + def __sync_with_db(self, type, treenode): + curdir = os.getcwd() + key_req = False + table_req = False + if not treenode.info.node_data: + treenode.info.node_data = {} + #create key folder, private key and self signed cert + hrn = treenode.info.name + dirname = type+'/'+(hrn).replace('.','/') + hrn_suffix = get_leaf(hrn) + if os.path.exists(dirname): + os.system('rm -rf '+dirname) + os.makedirs(dirname) + os.chdir(dirname) + create_self_cert(hrn_suffix) + k = KeyInfo() + k.folder = dirname + k.id_file = hrn_suffix+'.cert' + k.id_key_file = hrn_suffix +'.pkey' + #for the top authority create the acc and cred files + if obtain_authority(hrn) == '': + id_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open(k.id_file).read()) + id_pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, open(k.id_key_file).read()) + uu_id = str(uuid.uuid4().int) + regtype = '' + if type == 'slice': + regtype = 'slc' + else: + regtype = 'comp' + rights = '(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)' + rights = rights + '#0:reg:'+regtype+':'+hrn + k.acc_file = 'acc_file' + k.cred_file = 'cred_file' + acc = create_acc(id_cert, id_pkey, id_cert.get_pubkey(), hrn, uu_id) + cred = create_cred(id_cert, id_pkey, id_cert.get_pubkey(), 'Registry credentials', rights) + open(k.acc_file, 'w').write(crypto.dump_certificate(crypto.FILETYPE_PEM, acc)) + open(k.cred_file, 'w').write(crypto.dump_certificate(crypto.FILETYPE_PEM, cred)) + treenode.info.node_data['key_info'] = k + os.chdir(curdir) + #create the table and set in the treenode data structure + suffix = '' + if type == 'slice': + suffix = SR_SUFFIX + else: + suffix = CR_SUFFIX + tablename = hrn.replace('.','$') + suffix + cnx = get_plDB_conn() + querystr = "CREATE TABLE "+tablename+" ( \ + hrn text, \ + type text, \ + uuid text, \ + userlist text, \ + rights text, \ + description text, \ + pubkey text, \ + wrapperURL text, \ + disabled text, \ + pointer integer);" + + cnx.query('DROP TABLE IF EXISTS '+tablename) #drop the table if it exists + cnx.query(querystr) + d = DbInfo() + d.table_name = tablename + get_plDB_info(d) + treenode.info.node_data['db_info'] = d + #if the authority resides in PL as site, then fill it with the PL data + if treenode.children == []: + populate_pl_data(hrn_suffix, tablename, type) + treenode.info.login_base = hrn_suffix + #insert the record into parent's table + if obtain_authority(hrn) != '': + rectype = '' + regtype = '' + if type == 'slice': + rectype = 'SA' + regtype = 'slc' + else: + rectype = 'MA' + regtype = 'comp' + uu_id = '' + if treenode.children != []: + uu_id = str(uuid.uuid4().int) + rights = '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)' + rights = rights + '#0:reg:'+regtype+':'+obtain_authority(hrn)+'#1:reg:'+regtype+':'+hrn + id_file = treenode.info.node_data['key_info'].folder+'/'+ treenode.info.node_data['key_info'].id_file + pubkey = X509.load_cert(id_file).get_pubkey().as_pem(cipher=None) + wrapper = 'local' + pointer = -1 + if treenode.children == []: #get pointer if authority resides in PL as site + pointer = cnx.query("SELECT site_id FROM sites WHERE login_base='"+hrn_suffix+"'").dictresult()[0]['site_id'] + disabled = 'f' + record = {'hrn':get_leaf(hrn), 'type':rectype, 'uuid':uu_id, 'rights':rights, 'pubkey':pubkey, 'wrapperURL':wrapper, 'pointer':pointer, 'disabled':disabled} + querystr = generate_querystr('INSERT', obtain_authority(hrn).replace('.','$')+suffix, record) + cnx.query(querystr) + + #gets a tree in the form of a dictionary, + # ex: {'info':{'name':'planetlab', 'node_data':{'key_info':{...}, 'db_info':{...}}}, 'children':[x1, x2, ..]} + #returns the tree in the TreeNode class format + def __deserialize_tree(self, treenode_dict): + node = TreeNode() + node.info = TreeNodeInfo() + node.info.name = treenode_dict['info']['name'] + node.info.login_base = treenode_dict['info']['login_base'] + if treenode_dict['info']['node_data']: + node.info.node_data = {} + if treenode_dict['info']['node_data'].has_key('key_info'): + node.info.node_data['key_info'] = KeyInfo() + keyinf = treenode_dict['info']['node_data']['key_info'] + node.info.node_data['key_info'].folder = keyinf['folder'] + node.info.node_data['key_info'].id_file = keyinf['id_file'] + node.info.node_data['key_info'].id_key_file = keyinf['id_key_file'] + node.info.node_data['key_info'].acc_file = keyinf['acc_file'] + node.info.node_data['key_info'].cred_file = keyinf['cred_file'] + node.info.node_data['key_info'].last_update = keyinf['last_update'] + if treenode_dict['info']['node_data'].has_key('db_info'): + node.info.node_data['db_info'] = DbInfo() + dbinf = treenode_dict['info']['node_data']['db_info'] + node.info.node_data['db_info'].table_name = dbinf['table_name'] + node.info.node_data['db_info'].db_name = dbinf['db_name'] + node.info.node_data['db_info'].address = dbinf['address'] + node.info.node_data['db_info'].port = dbinf['port'] + node.info.node_data['db_info'].user = dbinf['user'] + node.info.node_data['db_info'].password = dbinf['password'] + for child in treenode_dict['children']: + node.children.append(self.__deserialize_tree(child)) + return node + + #gets a file name for tree and constructs an output file which contains the tree in dictionary format + #write to file: ex: {'info':{'name':'planetlab', 'node_data':{'key_info':{...}, 'db_info':{...}}}, 'children':[x1, x2, ..]} + def __file_to_treedict(self, filename): + lines = open(filename).readlines() + hierarchy = '' + (node, line) = self.__file_to_treedict_rec(lines, 0, hierarchy, 0) + open(filename+'_dict', 'w').write(str(node)) + + #helper function + #return: (node, line) + def __file_to_treedict_rec(self, lines, indent, hierarchy, line): + node = {'info':{'name':'', 'login_base':'', 'node_data':None}, 'children':[]} + #count #tabs + j = 0 + while lines[line][j] == '\t': + j = j+1 + if indent != j: + print 'Error in file to dictionary conversion.\n' + return None + name = lines[line].split(' ')[0] + name = name[j:len(name)] + if hierarchy == '': + node['info']['name'] = name + else: + node['info']['name'] = hierarchy + '.' + name + node['info']['login_base'] = name + #next indent count + j = 0 + if line+1 != len(lines): + while lines[line+1][j] == '\t': + j = j+1 + if j > indent+1: + print 'Error in file to dictionary conversion.\n' + return None + indent2 = j + line = line+1 + while indent2 > indent: + (child, line) = self.__file_to_treedict_rec(lines, indent2, node['info']['name'], line) + node['children'].append(child) + j = 0 + if line != len(lines): + while lines[line][j] == '\t': + j = j+1 + indent2 = j + return (node, line) + + + #determines the key info of a given hrn within the tree, performs calls back to 'server' to obtain updated certs + #if the hrn does not exist in the tree hierarchy None is returned + #server: the server instance is passed for calls to getCredential/getAccounting if necessary + #type is credential or accounting; one of them at a time is determined by the function + #returns an array containing the self-signed certificate, private key, and acc or cred chain in string + def determine_keyinfo(self, hrn, server, type): + tree = self + reg_type = self.type + info = tree.tree_lookup(hrn) + if info == None: + return None + else: + keyinfo = info.node_data['key_info'] + folder = keyinfo.folder + id_file = folder+'/'+keyinfo.id_file + id_key_file = folder+'/'+keyinfo.id_key_file + #check the id file + if not os.path.exists(folder) or not os.path.exists(id_file): + print 'Id file for '+hrn+' does not exist.\n' + return None + else: + #check acc or cred + acc_str = None + cred_str = None + renew_res = renew_cert(type, folder, reg_type, hrn, server, tree, tree.auth_addr, server.sec) + if renew_res == None: + return None + if type == 'accounting': + keyinfo.acc_file = 'acc_file' + acc_str = open(keyinfo.folder+'/'+keyinfo.acc_file).read() + else: + keyinfo.cred_file = 'cred_file' + cred_str = open(keyinfo.folder+'/'+keyinfo.cred_file).read() + id = crypto.load_certificate(crypto.FILETYPE_PEM, open(id_file).read()) + id_key = crypto.load_privatekey(crypto.FILETYPE_PEM, open(id_key_file).read()) + return [id, id_key, acc_str, cred_str] diff --git a/util/tree.pyc b/util/tree.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a5846745a08a8c5f44f15be47df3498d96038ba GIT binary patch literal 13636 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 CPT8jb literal 0 HcmV?d00001 diff --git a/util/util.py b/util/util.py new file mode 100644 index 00000000..f18fdac4 --- /dev/null +++ b/util/util.py @@ -0,0 +1,69 @@ +from excep import * +SR_SUFFIX = '_srr' +CR_SUFFIX = '_crr' + +global_sr_tree = None +global_cr_tree = None + +def set_tree_globals(tree1, tree2): + global global_sr_tree + global global_cr_tree + global_sr_tree = tree1 + global_cr_tree = tree2 + +def get_tree_globals(): + return (global_sr_tree, global_cr_tree) + +#function converts a hierarchical name from geni format to array of strings +def geni_to_arr(name): + arrayName = [] + try: + parts = name.split(".") + for i in range(len(parts)): + arrayName.append(parts[i]) + return arrayName + except: + raise MalformedHrnException(name) + +#used to parse the function name and the parameters specified in "operation_request" +def msg_to_params(str): + try: + return eval(str) + except: + raise InvalidRPCParams(str) + +#returns the authority hrn of a given 'hrn' +def obtain_authority(hrn): + parts = hrn.split(".") + auth_str = '' + if len(parts) > 1: + auth_str = parts[0]+'' + for i in range(1, len(parts)-1): + auth_str = auth_str + '.' + parts[i] + return auth_str + +#returns the last element of an hrn +def get_leaf(hrn): + parts = hrn.split(".") + return parts[len(parts)-1] + +#checks whether the 'hrn_auth' is an authority of 'hrn' +def check_authority(hrn, hrn_auth): + arr = geni_to_arr(hrn) + arr_auth = geni_to_arr(hrn_auth) + try: + for i in range(len(arr_auth)): + if arr[i] != arr_auth[i]: + return False + except: + return False + return True + +def hrn_to_tablename(hrn,type): + hrn = hrn.replace(".","$") + if type == 'slc': + hrn = hrn + SR_SUFFIX + else: + hrn = hrn + CR_SUFFIX + return hrn + diff --git a/util/util.pyc b/util/util.pyc new file mode 100644 index 0000000000000000000000000000000000000000..72417b355eacc184e23344fb888aa0fe1d7b8f10 GIT binary patch literal 2136 zcma)7U2hvz5IwW&IQ~eS(oiKS@Bma`sAL2@@BoUC(uVc{D_R%1id0!Q-kW6G&8~Cz zrmCg&3+BJ@1NdjW@f37slQ@Bh5NXG=ckjJ3bIzH`AAhd4R)7ENr!g-60sub(C^7&s z5DVS_FX90Ef;hx}fOrL_rgjN&4Zi{Vb;L{REF-R~(?GneP7`rMofhJzI&H))byg6! z)mi0jgYGJTOpy=2?=aPS07}3BrN9W&9_SVQF8BEk zfTJ`&FzKjpBk!!ezBI0us;x`h@2vg$%KN5EWYiRE0D8Tz&U})p=}o4d!3*p4+EEpy zXmE{*Bdp5}Xf@v!gJ^+=!HrC#5J1F(i=h7<`RE^!S!%(eA!FjhyOu9;vcv(H38qg8 zSfcdK1+xI}9usgMpbWS&7d&~jfmujMlaQ-rh^@ImP9I}f3I@Y$9U|guylO7^Rgei@ zD)`KxuLSnG3Mox7NfWQ0Gue^#EH<^7uLCfXiOpjF0Km^CJASI=_$1G| zEJP)cnG@@qJmQ?0_W8!kC&u|gBPI*%ZY8Wu6l|7^d_FSH-DhSrkh+AjChMrn18GQD zAxIP%K$+v!(+I_lX|CSgl*TBkW$#vTXBF5isCye zA`Wlt+?)q^@@iAH5pX_il%nF`iPJp{Gl7&8Heu^W?Mj~b#QDzm98}vS)`H