Changeset 997 for CMESS/mediaplayer/branches
- Timestamp:
- 03.05.2010 10:11:16 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
CMESS/mediaplayer/branches/zmsgraphic_extedit/zmsgraphic_extedit.metaobj.xml
r992 r997 7 7 <item type="dictionary"><dictionary> 8 8 <item key="custom"> 9 <data content_type="application/x-javascript" filename="handleEdit.js" type="file">7661722074656d705f6163745f6865696768740909090909093d20303b0d0a7661722074656d705f6163745f77696474680909090909093d20303b0d0a7661722074656d705f6163745f7468756d625f6865696768740909093d20303b0d0a7661722074656d705f6163745f7468756d625f77696474680909093d20303b0d0a7661722074656d705f63726f705f617069090909090909093d206e756c6c3b0d0a766172202474656d705f627574746f6e735f63726f70090909093d206e756c6c3b0d0a766172202474656d705f627574746f6e735f64696d09090909093d206e756c6c3b0d0a766172202474656d705f627574746f6e735f6d61696e090909093d206e756c6c3b0d0a766172202474656d705f627574746f6e735f726573697a650909093d206e756c6c3b0d0a766172202474656d705f616374696f6e5f6c69737409090909093d206e756c6c3b0d0a766172202474656d705f666f726d2009090909090909093d206e756c6c3b0d0a766172202474656d705f696d675f636f6e7461696e6572090909093d206e756c6c3b0d0a766172202474656d705f696e707574735f64696d09090909093d206e756c6c3b0d0a766172202474656d705f6c6162656c5f686972657309090909093d206e756c6c3b0d0a766172202474656d705f6c6162656c5f68697265735f726573697a65093d206e756c6c3b0d0a766172202474656d705f6c6162656c5f7468756d6209090909093d206e756c6c3b0d0a766172202474656d705f6c6162656c5f7468756d625f63726f7009093d206e756c6c3b0d0a766172202474656d705f7069706509090909090909093d206e756c6c3b0d0a766172202474656d705f7468756d625f636f6e7461696e65720909093d206e756c6c3b0d0a766172202474656d705f7468756d625f776964746809090909093d206e756c6c3b0d0a766172202474656d705f7468756d625f686569676874090909093d206e756c6c3b0d0a766172202474656d705f776f726b73706163655f64696d090909093d206e756c6c3b0d0a0d0a66756e6374696f6e206368616e6765427574746f6e417661696c6162696c69747928617661696c61626c652c2024627574746f6e73290d0a7b0d0a0969662028617661696c61626c65290d0a097b0d0a090924627574746f6e732e636c69636b28636c69636b6564416374696f6e293b0d0a097d0d0a09656c73650d0a097b0d0a090924627574746f6e732e756e62696e642827636c69636b272c20636c69636b6564416374696f6e293b0d0a097d0d0a7d0d0a0d0a66756e6374696f6e206368616e6765427574746f6e5669736962696c6974792876697369626c652c2024627574746f6e73290d0a7b0d0a096368616e6765427574746f6e417661696c6162696c6974792876697369626c652c2024627574746f6e73293b0d0a090d0a096966202876697369626c65290d0a090924627574746f6e732e73686f7728293b0d0a09656c73650d0a090d0a090924627574746f6e732e6869646528293b0d0a7d0d0a0d0a66756e6374696f6e206368616e67654a63726f70417661696c6162696c69747928617661696c61626c652c2063726f7070696e67290d0a7b0d0a096966202874656d705f63726f705f61706920213d206e756c6c290d0a090974656d705f63726f705f6170692e64657374726f7928293b0d0a0909090d0a0969662028617661696c61626c65290d0a097b0d0a09097661722074656d705f686569676874093d2063726f7070696e67203f207061727365496e74282474656d705f7468756d625f6865696768742e76616c282929203a2074656d705f6163745f6865696768743b0d0a09097661722074656d705f7769647468093d2063726f7070696e67203f207061727365496e74282474656d705f7468756d625f77696474682e76616c282929203a2074656d705f6163745f77696474683b0d0a09090d0a090974656d705f63726f705f617069203d20242e4a63726f70282474656d705f696d675f636f6e7461696e65722e66696e642827696d6727292e65712830292c200d0a0909097b200d0a09090909616c6c6f7753656c656374093a2066616c73652c0d0a09090909617370656374526174696f093a2074656d705f77696474682f74656d705f6865696768742c0d0a090909096d696e53697a650909093a205b32352c2032355d2c0d0a090909096d617853697a650909093a205b 7a6d73677261706869635f657874656469745f776f726b73706163655f77696474682c207a6d73677261706869635f657874656469745f776f726b73706163655f77696474685d2c0d0a0909090968616e646c65730909093a20747275652c0d0a090909096f6e4368616e676509093a206368616e67656453656c656374696f6e0d0a0909097d293b0d0a090974656d705f63726f705f6170692e73657453656c656374285b302c20302c2074656d705f77696474682c2074656d705f6865696768745d293b0d0a090974656d705f63726f705f6170692e7365744f7074696f6e73287b20616c6c6f77526573697a653a20747275652c20616c6c6f774d6f76653a2063726f7070696e677d293b0d0a090974656d705f63726f705f6170692e666f63757328293b0d0a097d0d0a7d0d0a0d0a66756e6374696f6e206368616e67656453656c656374696f6e2864696d656e73696f6e73290d0a7b0d0a09696620282474656d705f6c6162656c5f68697265735f726573697a6520213d206e756c6c290d0a09092474656d705f6c6162656c5f68697265735f726573697a652e746578742827202827202b2064696d656e73696f6e732e77202b202720782027202b2064696d656e73696f6e732e68202b20272927293b0d0a09656c736520696620282474656d705f6c6162656c5f7468756d625f63726f7020213d206e756c6c290d0a09092474656d705f6c6162656c5f7468756d625f63726f702e746578742827202827202b2064696d656e73696f6e732e77202b202720782027202b2064696d656e73696f6e732e68202b20272927293b0d0a7d0d0a0d0a66756e6374696f6e206368616e676544696d656e73696f6e732872657365745f64696d73290d0a7b0d0a097661722074656d705f6368616e67655f776f726b73706163653b0d0a090d0a09696620282172657365745f64696d73290d0a097b0d0a09097661722074656d705f68656967687420090909093d097061727365496e74282474656d705f7468756d625f6865696768742e76616c2829293b0d0a09097661722074656d705f776964746809090909093d207061727365496e74282474656d705f7468756d625f77696474682e76616c2829293b0d0a09097661722074656d705f776f726b73706163655f64696d093d207061727365496e74282474656d705f776f726b73706163655f64696d2e76616c2829293b0d0a09090d0a090974656d705f68656967687420090909093d202874656d705f686569676874203d3d204e614e29203f2074656d705f6163745f7468756d625f686569676874203a2074656d705f6865696768743b0d0a090974656d705f776964746809090909093d202874656d705f7769647468203d3d204e614e29203f2074656d705f6163745f7468756d625f7769647468203a2074656d705f77696474683b0d0a090974656d705f776f726b73706163655f64696d093d202874656d705f776f726b73706163655f64696d203d3d204e614e29203f207a6d73677261706869635f657874656469745f776f726b73706163655f7769647468203a2074656d705f776f726b73706163655f64696d3b0d0a09090d0a09097661722074656d705f6368616e67655f7468756d62093d202874656d705f68656967687420213d2074656d705f6163745f7468756d625f68656967687429207c7c202874656d705f776964746820213d2074656d705f6163745f7468756d625f7769647468293b0d0a090974656d705f6368616e67655f776f726b7370616365093d2074656d705f776f726b73706163655f64696d20213d207a6d73677261706869635f657874656469745f776f726b73706163655f77696474683b0d0a0d0a090969662028636f6e6669726d44696d656e73696f6e4368616e6765732874656d705f6368616e67655f7468756d622c2074656d705f6368616e67655f776f726b737061636529290d0a09097b0d0a0909096966202874656d705f6368616e67655f7468756d62290d0a0909097b0d0a090909097661722074656d705f7374796c65203d202474656d705f7468756d625f636f6e7461696e65722e6174747228277374796c6527293b0d0a090909090d0a0909090974656d705f6163745f7468756d625f686569676874203d204d6174682e6d61782832352c204d6174682e6d696e2874656d705f6865696768742c2074656d705f6163745f68656967687429293b0d0a0909090974656d705f6163745f7468756d625f7769647468093d204d6174682e6d61782832352c204d6174682e6d696e2874656d705f77696474682c2074656d705f6163745f776964746829293b0d0a090909090d0a0909090974656d705f7374796c65203d2074656d705f7374796c652e7265706c616365282f6d696e2d6865696768745b3a5c735c645c775d2a3b2f672c20276d696e2d6865696768743a2027202b2074656d705f6163745f7468756d625f686569676874202b202770783b2027293b0d0a0909090974656d705f7374796c65203d2074656d705f7374796c652e7265706c616365282f77696474685b3a5c735c645c775d2a3b2f672c202777696474683a2027202b2074656d705f6163745f7468756d625f7769647468202b202770783b2027293b0d0a090909090d0a090909092474656d705f7468756d625f636f6e7461696e65722e656d70747928293b0d0a090909092474656d705f7468756d625f636f6e7461696e65722e6174747228277374796c65272c2074656d705f7374796c65293b0d0a0909097d0d0a0909090d0a0909096966202874656d705f6368616e67655f776f726b7370616365290d0a0909097b0d0a090909097661722074656d705f7374796c65203d202474656d705f696d675f636f6e7461696e65722e6174747228277374796c6527293b0d0a090909090d0a090909097a6d73677261706869635f657874656469745f776f726b73706163655f7769647468203d204d6174682e6d696e287a6d73677261706869635f657874656469745f776f726b73706163655f77696474685f6d61782c2074656d705f776f726b73706163655f64696d290d0a090909090d0a0909090974656d705f7374796c65203d2074656d705f7374796c652e7265706c616365282f6d696e2d6865696768745b3a5c735c645c775d2a3b2f672c20276d696e2d6865696768743a2027202b207a6d73677261706869635f657874656469745f776f726b73706163655f7769647468202b202770783b2027293b0d0a0909090974656d705f7374796c65203d2074656d705f7374796c652e7265706c616365282f77696474685b3a5c735c645c775d2a3b2f672c202777696474683a2027202b207a6d73677261706869635f657874656469745f776f726b73706163655f7769647468202b202770783b2027293b0d0a090909090d0a090909092474656d705f616374696f6e5f6c6973742e656d70747928293b0d0a090909092474656d705f696d675f636f6e7461696e65722e656d70747928293b0d0a090909092474656d705f696d675f636f6e7461696e65722e6174747228277374796c65272c2074656d705f7374796c65293b0d0a090909092474656d705f7468756d625f636f6e7461696e65722e656d70747928293b0d0a0909097d0d0a09097d0d0a0909656c73650d0a09090974656d705f6368616e67655f776f726b7370616365203d2066616c73653b0d0a097d0d0a09656c73650d0a090974656d705f6368616e67655f776f726b7370616365203d2066616c73653b0d0a0d0a092474656d705f7468756d625f6865696768742e76616c2874656d705f6163745f7468756d625f686569676874293b0d0a092474656d705f7468756d625f77696474682e76616c2874656d705f6163745f7468756d625f7769647468293b0d0a092474656d705f776f726b73706163655f64696d2e76616c287a6d73677261706869635f657874656469745f776f726b73706163655f7769647468293b0d0a090d0a0972657475726e2074656d705f6368616e67655f776f726b73706163653b0d0a7d0d0a0d0a66756e6374696f6e20636c69636b6564416374696f6e28290d0a7b0d0a097661722074656d705f616374696f6e090909093d20242874686973292e617474722827696427292e746f4c6f7765724361736528292e7265706c616365282f7a6d73677261706869635f657874656469745f2f672c202727293b0d0a097661722074656d705f616a61785f72657175657374203d2066616c73653b0d0a090d0a09696620282874656d705f616374696f6e203d3d202763616e63656c2729207c7c202874656d705f616374696f6e203d3d20276f6b2729290d0a097b0d0a09092474656d705f666f726d2e66696e642827696e7075745b6e616d653d22616374696f6e225d27292e76616c2874656d705f616374696f6e293b0d0a09090d0a09096966202874656d705f616374696f6e203d3d20276f6b27290d0a0909092474656d705f666f726d2e66696e642827696e7075745b6e616d653d22696d675f696e666f225d27292e76616c2867657445646974506970654173584d4c28696d675f696e666f29293b0d0a09090d0a09092474656d705f666f726d2e7375626d697428293b0d0a097d0d0a09656c736520696620282874656d705f616374696f6e203d3d2027726f746174655f702729207c7c202874656d705f616374696f6e203d3d2027726f746174655f6d2729290d0a097b0d0a090969662028636f6e6669726d5468756d6252657365742829290d0a09097b0d0a090909696d675f696e666f5b277175657565275d2e707573682863726561746551756575654f626a6563742827726f74617465272c202874656d705f616374696f6e2e7265706c616365282f726f746174655f2f672c20272729203d3d20276d2729203f20202d31203a203129293b0d0a0909090d0a0909092474656d705f616374696f6e5f6c6973742e617070656e6428273c6f7074696f6e3e27202b20242874686973292e617474722827616c742729202b20273c2f6f7074696f6e3e27293b0d0a090909090d0a09090974656d705f616a61785f72657175657374203d20747275653b0d0a09097d0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d2027666c69705f6827290d0a097b0d0a090969662028636f6e6669726d5468756d6252657365742829290d0a09097b0d0a090909696d675f696e666f5b277175657565275d2e707573682863726561746551756575654f626a656374282766686f72697a6f6e74616c272c203129293b0d0a0909090d0a0909092474656d705f616374696f6e5f6c6973742e617070656e6428273c6f7074696f6e3e27202b20242874686973292e617474722827616c742729202b20273c2f6f7074696f6e3e27293b0d0a0909090d0a09090974656d705f616a61785f72657175657374203d20747275653b0d0a09097d0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d2027666c69705f7627290d0a097b0d0a090969662028636f6e6669726d5468756d6252657365742829290d0a09097b0d0a090909696d675f696e666f5b277175657565275d2e707573682863726561746551756575654f626a656374282766766572746963616c272c203129293b0d0a0909090d0a0909092474656d705f616374696f6e5f6c6973742e617070656e6428273c6f7074696f6e3e27202b20242874686973292e617474722827616c742729202b20273c2f6f7074696f6e3e27293b0d0a0909090d0a09090974656d705f616a61785f72657175657374203d20747275653b0d0a09097d0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d2027726573697a6527290d0a097b0d0a09092474656d705f6c6162656c5f68697265735f726573697a65203d202428273c6c6162656c3e202827202b2074656d705f6163745f7769647468202b202720782027202b2074656d705f6163745f686569676874202b2027293c2f6c6162656c3e27293b0d0a09092474656d705f6c6162656c5f68697265735f726573697a652e696e736572744166746572282474656d705f6c6162656c5f6869726573293b0d0a09090d0a09096368616e6765427574746f6e417661696c6162696c6974792866616c73652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c69747928747275652c202474656d705f627574746f6e735f726573697a65293b0d0a09096368616e67654a63726f70417661696c6162696c69747928747275652c2066616c7365293b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d2027726573697a655f6f6b27290d0a097b0d0a090964656c6574654c6162656c7328293b0d0a09096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f726573697a65293b0d0a09090d0a090969662028636f6e6669726d5468756d6252657365742829290d0a09097b0d0a0909097661722074656d705f61726561203d2074656d705f63726f705f6170692e74656c6c53656c65637428293b200d0a090909696d675f696e666f5b277175657565275d2e707573682863726561746551756575654f626a6563742827726573697a65272c202874656d705f617265612e7832202d2074656d705f617265612e7829202b20272c27202b202874656d705f617265612e7932202d2074656d705f617265612e792929293b0d0a0909090d0a0909092474656d705f616374696f6e5f6c6973742e617070656e6428273c6f7074696f6e3e726573697a6520746f2027202b202874656d705f617265612e7832202d2074656d705f617265612e7829202b202720782027202b202874656d705f617265612e7932202d2074656d705f617265612e7929202b20273c2f6f7074696f6e3e27293b0d0a0909090d0a09090974656d705f616a61785f72657175657374203d20747275653b0d0a09097d0d0a09090d0a09096368616e67654a63726f70417661696c6162696c6974792866616c7365293b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d2027726573697a655f63616e63656c27290d0a097b0d0a090964656c6574654c6162656c7328293b0d0a09096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f726573697a65293b0d0a09096368616e67654a63726f70417661696c6162696c6974792866616c7365293b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d202763726f7027290d0a097b0d0a09092f2f206765742061637475616c207468756d622064696d656e73696f6e730d0a090974656d705f6163745f7468756d625f686569676874203d207061727365496e74282474656d705f7468756d625f6865696768742e76616c2829293b0d0a090974656d705f6163745f7468756d625f7769647468093d207061727365496e74282474656d705f7468756d625f77696474682e76616c2829293b0d0a09090d0a09092474656d705f6c6162656c5f7468756d625f63726f70203d202428273c6c6162656c3e202827202b2074656d705f6163745f7468756d625f7769647468202b202720782027202b2074656d705f6163745f7468756d625f686569676874202b2027293c2f6c6162656c3e27293b0d0a09092474656d705f6c6162656c5f7468756d625f63726f702e696e736572744166746572282474656d705f6c6162656c5f7468756d62293b0d0a09090d0a09096368616e6765427574746f6e417661696c6162696c6974792866616c73652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c69747928747275652c202474656d705f627574746f6e735f63726f70293b0d0a09096368616e67654a63726f70417661696c6162696c69747928747275652c2074727565293b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d202763726f705f6f6b27290d0a097b0d0a090964656c6574654c6162656c7328293b0d0a09096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f63726f70293b0d0a09090d0a09097661722074656d705f61726561203d2074656d705f63726f705f6170692e74656c6c53656c65637428293b200d0a0909696d675f696e666f5b277175657565275d2e707573682863726561746551756575654f626a656374282763726f70272c2074656d705f617265612e78202b20272c27202b2074656d705f617265612e79202b20272c27202b2074656d705f617265612e7832202b20272c27202b2074656d705f617265612e7932202b20272c27202b202474656d705f7468756d625f77696474682e76616c2829202b20272c27202b202474656d705f7468756d625f6865696768742e76616c282929293b0d0a09090d0a09096368616e67654a63726f70417661696c6162696c6974792866616c7365293b0d0a09090d0a090974656d705f616a61785f72657175657374203d20747275653b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d202763726f705f63616e63656c27290d0a097b0d0a090964656c6574654c6162656c7328293b0d0a09096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f63726f70293b0d0a09096368616e67654a63726f70417661696c6162696c6974792866616c7365293b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d202764696d656e73696f6e27290d0a097b0d0a09092f2f206765742061637475616c207468756d622064696d656e73696f6e730d0a090974656d705f6163745f7468756d625f686569676874203d207061727365496e74282474656d705f7468756d625f6865696768742e76616c2829293b0d0a090974656d705f6163745f7468756d625f7769647468093d207061727365496e74282474656d705f7468756d625f77696474682e76616c2829293b0d0a09092f2f206765742061637475616c20776f726b73706163652064696d656e73696f6e0d0a09097a6d73677261706869635f657874656469745f776f726b73706163655f7769647468093d207061727365496e74282474656d705f776f726b73706163655f64696d2e76616c2829293b0d0a09090d0a09096368616e6765427574746f6e417661696c6162696c6974792866616c73652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c69747928747275652c202474656d705f627574746f6e735f64696d293b0d0a09096368616e6765427574746f6e5669736962696c69747928747275652c202474656d705f696e707574735f64696d293b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d202764696d656e73696f6e5f6f6b27290d0a097b0d0a09097661722074656d705f776f726b73706163655f6368616e676564203d206368616e676544696d656e73696f6e7328293b0d0a09096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f64696d293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f696e707574735f64696d293b0d0a09090d0a09096966202874656d705f776f726b73706163655f6368616e676564290d0a09097b0d0a090909696d675f696e666f5b277175657565275d2e707573682863726561746551756575654f626a6563742827776f726b7370616365272c207a6d73677261706869635f657874656469745f776f726b73706163655f776964746829293b0d0a0909090d0a09090974656d705f616a61785f72657175657374203d20747275653b0d0a09097d0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d202764696d656e73696f6e5f63616e63656c27290d0a097b0d0a09096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f64696d293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f696e707574735f64696d293b0d0a09096368616e676544696d656e73696f6e732874727565293b0d0a097d0d0a090d0a096966202874656d705f616a61785f72657175657374290d0a097b0d0a09096a51756572792e706f7374287a6d73677261706869635f657874656469745f726571756573745f75726c2c207b616374696f6e203a202772657175657374272c20696d675f696e666f203a2067657445646974506970654173584d4c28696d675f696e666f297d2c2072656365697665446174612c20276a736f6e27293b0d0a097d0d0a7d0d0a0d0a66756e6374696f6e20636f6e6669726d44696d656e73696f6e4368616e676573287468756d625f64696d5f6368616e6765642c20776f726b73706163655f64696d5f6368616e676564290d0a7b0d0a097661722074656d705f7465787409093d2027417474656e74696f6e21273b0d0a097661722074656d705f726573756c74093d20747275653b0d0a090d0a09696620287468756d625f64696d5f6368616e67656420262620776f726b73706163655f64696d5f6368616e676564290d0a090974656d705f74657874202b3d2027205468756d622d44696d656e73696f6e7320616e6420576f726b73706163652d44696d656e73696f6e2077657265206368616e6765642e2050726576696f7573206368616e67657320616e64205468756d622d496d6167652077696c6c206265206c6f73742e273b0d0a09656c736520696620287468756d625f64696d5f6368616e676564290d0a090974656d705f74657874202b3d2027205468756d622d44696d656e73696f6e732077657265206368616e6765642e20205468756d622d696d6167652077696c6c206265206c6f7374273b0d0a09656c73652069662028776f726b73706163655f64696d5f6368616e676564290d0a090974656d705f74657874202b3d202720576f726b73706163652d44696d656e73696f6e20776173206368616e6765642e2050726576696f7573206368616e67657320616e64205468756d622d496d6167652077696c6c206265206c6f73742e273b0d0a0974656d705f74657874202b3d20275c6e446f20796f752077616e7420746f20636f6e74696e75653f273b0d0a090d0a09696620287468756d625f64696d5f6368616e676564207c7c20776f726b73706163655f64696d5f6368616e676564290d0a090974656d705f726573756c74203d20636f6e6669726d2874656d705f74657874293b0d0a09090d0a0972657475726e2074656d705f726573756c743b0d0a7d0d0a0d0a66756e6374696f6e20636f6e6669726d5468756d62526573657428290d0a7b0d0a097661722074656d705f726573756c74203d20747275653b0d0a090d0a09696620282474656d705f7468756d625f636f6e7461696e65722e66696e642827696d6727292e6c656e677468203e2030290d0a097b0d0a090974656d705f726573756c74203d20636f6e6669726d2827417474656e74696f6e21205468756d622d696d6167652077696c6c206265206c6f73742e5c6e446f20796f752077616e7420746f20636f6e74696e75653f27293b0d0a090d0a09096966202874656d705f726573756c74290d0a0909092474656d705f7468756d625f636f6e7461696e65722e656d70747928293b0d0a097d0d0a090d0a0972657475726e2074656d705f726573756c743b0d0a7d0d0a0d0a66756e6374696f6e2063726561746551756575654f626a65637428616374696f6e2c2076616c7565290d0a7b0d0a097661722074656d705f6f626a203d206e6577204f626a65637428293b0d0a090d0a0974656d705f6f626a5b27616374696f6e275d09093d20616374696f6e3b0d0a0974656d705f6f626a5b2776616c7565275d0909093d2076616c75653b0d0a0974656d705f6f626a5b2766696c656e616d65275d093d206e756c6c3b0d0a0974656d705f6f626a5b2775726c275d090909093d206e756c6c3b0d0a0974656d705f6f626a5b277769647468275d0909093d206e756c6c3b0d0a0974656d705f6f626a5b27686569676874275d09093d206e756c6c3b0d0a090d0a0972657475726e2074656d705f6f626a3b0d0a7d0d0a0d0a66756e6374696f6e2064656c6574654c6162656c7328290d0a7b0d0a09696620282474656d705f6c6162656c5f68697265735f726573697a6520213d206e756c6c290d0a097b0d0a09092474656d705f6c6162656c5f68697265735f726573697a652e72656d6f766528293b0d0a09092474656d705f6c6162656c5f68697265735f726573697a65203d206e756c6c3b0d0a097d0d0a09696620282474656d705f6c6162656c5f7468756d625f63726f7020213d206e756c6c290d0a097b0d0a09092474656d705f6c6162656c5f7468756d625f63726f702e72656d6f766528293b0d0a09092474656d705f6c6162656c5f7468756d625f63726f70203d206e756c6c3b0d0a097d0d0a7d0d0a0d0a66756e6374696f6e2067657441637444696d46726f6d517565756528696d675f696e666f290d0a7b0d0a097661722074656d705f706f73203d20696d675f696e666f5b277175657565275d2e6c656e677468202d20313b0d0a090d0a0974656d705f6163745f686569676874093d20696d675f696e666f5b277175657565275d5b74656d705f706f735d5b27686569676874275d3b0d0a0974656d705f6163745f7769647468093d20696d675f696e666f5b277175657565275d5b74656d705f706f735d5b277769647468275d3b0d0a7d0d0a0d0a66756e6374696f6e2067657445646974506970654173584d4c28696d675f696e666f290d0a7b0d0a097661722074656d705f786d6c203d2027273b0d0a090d0a0974656d705f786d6c202b3d20273c64696374696f6e6172793e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d2271756575652220747970653d226c697374223e3c6c6973743e5c6e273b0d0a090d0a09666f7220287661722069203d20303b2069203c20696d675f696e666f5b277175657565275d2e6c656e6774683b20692b2b290d0a097b0d0a090974656d705f786d6c202b3d20273c6974656d20747970653d2264696374696f6e617279223e3c64696374696f6e6172793e5c6e273b0d0a090974656d705f786d6c202b3d20273c6974656d206b65793d22616374696f6e223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277175657565275d5b695d5b27616374696f6e275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a090974656d705f786d6c202b3d20273c6974656d206b65793d2276616c7565223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277175657565275d5b695d5b2776616c7565275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a090974656d705f786d6c202b3d20273c6974656d206b65793d2266696c656e616d65223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277175657565275d5b695d5b2766696c656e616d65275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a090974656d705f786d6c202b3d20273c6974656d206b65793d2275726c223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277175657565275d5b695d5b2775726c275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a090974656d705f786d6c202b3d20273c6974656d206b65793d227769647468223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277175657565275d5b695d5b277769647468275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a090974656d705f786d6c202b3d20273c6974656d206b65793d22686569676874223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277175657565275d5b695d5b27686569676874275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a090974656d705f786d6c202b3d20273c2f64696374696f6e6172793e3c2f6974656d3e5c6e273b0d0a097d0d0a090d0a0974656d705f786d6c202b3d20273c2f6c6973743e3c2f6974656d3e5c6e273b0d0a090d0a0974656d705f786d6c202b3d20273c6974656d206b65793d227468756d622220747970653d2264696374696f6e617279223e3c64696374696f6e6172793e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d2266696c656e616d65223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277468756d62275d5b2766696c656e616d65275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d2275726c223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277468756d62275d5b2775726c275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d2263726f705f626f78223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277468756d62275d5b2763726f705f626f78275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d227769647468223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277468756d62275d5b277769647468275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d22686569676874223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277468756d62275d5b27686569676874275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a0974656d705f786d6c202b3d20273c2f64696374696f6e6172793e3c2f6974656d3e5c6e273b0d0a090d0a0974656d705f786d6c202b3d20273c2f64696374696f6e6172793e5c6e273b0d0a090d0a0972657475726e2074656d705f786d6c3b0d0a7d0d0a0d0a66756e6374696f6e20726563656976654461746128646174612c2074657874537461747573290d0a7b0d0a09696620282874657874537461747573203d3d20277375636365737327292026262028646174615b27726573756c74275d203e203029290d0a097b0d0a0909696d675f696e666f203d20646174615b27696d675f696e666f275d3b0d0a09090d0a09097661722074656d705f71756575655f706f73203d20696d675f696e666f5b277175657565275d2e6c656e677468202d20313b0d0a09090d0a0909696620282474656d705f696d675f636f6e7461696e65722e66696e642827696d6727292e6c656e677468203e2030290d0a09097b0d0a090909696620282474656d705f696d675f636f6e7461696e65722e66696e642827696d6727292e617474722827737263272920213d20696d675f696e666f5b277175657565275d5b74656d705f71756575655f706f735d5b2775726c275d290d0a090909092474656d705f696d675f636f6e7461696e65722e66696e642827696d6727292e617474722827737263272c20696d675f696e666f5b277175657565275d5b74656d705f71756575655f706f735d5b2775726c275d293b0d0a09097d0d0a0909656c73650d0a0909092474656d705f696d675f636f6e7461696e65722e617070656e6428273c696d67207372633d2227202b20696d675f696e666f5b277175657565275d5b74656d705f71756575655f706f735d5b2775726c275d202b202722202f3e27293b0d0a09090d0a090969662028696d675f696e666f5b277468756d62275d5b2775726c275d20213d20276e756c6c27290d0a09097b0d0a090909696620282474656d705f7468756d625f636f6e7461696e65722e66696e642827696d6727292e6c656e677468203e2030290d0a090909092474656d705f7468756d625f636f6e7461696e65722e66696e642827696d6727292e617474722827737263272c20696d675f696e666f5b277468756d62275d5b2775726c275d293b0d0a090909656c73650d0a090909092474656d705f7468756d625f636f6e7461696e65722e617070656e6428273c696d67207372633d2227202b20696d675f696e666f5b277468756d62275d5b2775726c275d202b202722202f3e27293b0d0a09097d0d0a0909090d0a090967657441637444696d46726f6d517565756528696d675f696e666f290d0a090972656e646572496d67496e666f28696d675f696e666f290d0a097d0d0a7d0d0a0d0a66756e6374696f6e2072656e646572496d67496e666f28696d675f696e666f290d0a7b0d0a092474656d705f6c6162656c5f68697265732e746578742874656d705f6163745f7769647468202b202720782027202b2074656d705f6163745f686569676874293b0d0a0969662028696d675f696e666f5b277468756d62275d5b2775726c275d203d3d20276e756c6c27290d0a09092474656d705f6c6162656c5f7468756d622e7465787428274e6f6e6527293b0d0a09656c73650d0a09092474656d705f6c6162656c5f7468756d622e746578742874656d705f6163745f7468756d625f7769647468202b202720782027202b2074656d705f6163745f7468756d625f686569676874293b0d0a7d0d0a0d0a242827646f63756d656e7427292e72656164792866756e6374696f6e28290d0a7b0d0a092474656d705f666f726d0909090909093d20242827235a4d53477261706869635f657874456469745f666f726d27293b0d0a092474656d705f706970650909090909093d202474656d705f666f726d2e66696e642827696e7075745b6e616d653d2270697065225d27293b0d0a092474656d705f616374696f6e5f6c6973740909093d20242827235a4d53477261706869635f657874456469745f616374696f6e4c69737427293b0d0a092474656d705f696d675f636f6e7461696e657220093d20242827235a4d53477261706869635f657874456469745f696d61676527293b0d0a092474656d705f6c6162656c5f68697265730909093d20242827235a4d53477261706869635f657874456469745f696e666f5f686972657327293b0d0a092474656d705f6c6162656c5f7468756d620909093d20242827235a4d53477261706869635f657874456469745f696e666f5f7468756d6227293b0d0a092474656d705f7468756d625f636f6e7461696e6572093d20242827235a4d53477261706869635f657874456469745f7468756d625f696d6727293b0d0a092474656d705f7468756d625f68656967687409093d20242827235a4d53477261706869635f657874456469745f7468756d625f68656967687427293b0d0a092474656d705f7468756d625f77696474680909093d20242827235a4d53477261706869635f657874456469745f7468756d625f776964746827293b0d0a092474656d705f776f726b73706163655f64696d09093d20242827235a4d53477261706869635f657874456469745f776f726b737061636527293b0d0a090d0a092474656d705f627574746f6e735f63726f7009093d20242827235a4d53477261706869635f657874456469745f63726f705f63616e63656c2c20235a4d53477261706869635f657874456469745f63726f705f6f6b27293b0d0a092474656d705f627574746f6e735f64696d0909093d20242827235a4d53477261706869635f657874456469745f64696d656e73696f6e5f63616e63656c2c20235a4d53477261706869635f657874456469745f64696d656e73696f6e5f6f6b27293b0d0a092474656d705f627574746f6e735f6d61696e09093d20242827235a4d53477261706869635f657874456469745f63726f702c20235a4d53477261706869635f657874456469745f64696d656e73696f6e2c20235a4d53477261706869635f657874456469745f666c69705f682c20235a4d53477261706869635f657874456469745f666c69705f762c2027202b0d0a090909090909090909090909090927235a4d53477261706869635f657874456469745f726573697a652c20235a4d53477261706869635f657874456469745f726f746174655f6d2c20235a4d53477261706869635f657874456469745f726f746174655f702c2027202b0d0a090909090909090909090909090927235a4d53477261706869635f657874456469745f63616e63656c2c20235a4d53477261706869635f657874456469745f6f6b27293b0d0a092474656d705f627574746f6e735f726573697a65093d20242827235a4d53477261706869635f657874456469745f726573697a655f63616e63656c2c20235a4d53477261706869635f657874456469745f726573697a655f6f6b27293b0d0a092474656d705f696e707574735f64696d0909093d20242827235a4d53477261706869635f657874456469745f7468756d625f64696d27293b0d0a090d0a096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f63726f70293b0d0a096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f64696d293b0d0a096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f726573697a65293b0d0a096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f696e707574735f64696d293b0d0a090d0a0967657441637444696d46726f6d517565756528696d675f696e666f293b0d0a090d0a092f2f242827235a4d53477261706869635f657874456469745f616374696f6e7327292e66696e642827696d6727292e636c69636b28636c69636b6564416374696f6e293b0d0a092f2f242827235a4d53477261706869635f657874456469745f666f6f74657227292e66696e642827696e7075745b747970653d22627574746f6e225d27292e636c69636b28636c69636b6564416374696f6e293b0d0a7d293b</data></item>9 <data content_type="application/x-javascript" filename="handleEdit.js" type="file">7661722074656d705f6163745f6865696768740909090909093d20303b0d0a7661722074656d705f6163745f77696474680909090909093d20303b0d0a7661722074656d705f6163745f7468756d625f6865696768740909093d20303b0d0a7661722074656d705f6163745f7468756d625f77696474680909093d20303b0d0a7661722074656d705f63726f705f617069090909090909093d206e756c6c3b0d0a766172202474656d705f627574746f6e735f63726f70090909093d206e756c6c3b0d0a766172202474656d705f627574746f6e735f64696d09090909093d206e756c6c3b0d0a766172202474656d705f627574746f6e735f6d61696e090909093d206e756c6c3b0d0a766172202474656d705f627574746f6e735f726573697a650909093d206e756c6c3b0d0a766172202474656d705f616374696f6e5f6c69737409090909093d206e756c6c3b0d0a766172202474656d705f666f726d2009090909090909093d206e756c6c3b0d0a766172202474656d705f696d675f636f6e7461696e6572090909093d206e756c6c3b0d0a766172202474656d705f696e707574735f64696d09090909093d206e756c6c3b0d0a766172202474656d705f6c6162656c5f686972657309090909093d206e756c6c3b0d0a766172202474656d705f6c6162656c5f68697265735f726573697a65093d206e756c6c3b0d0a766172202474656d705f6c6162656c5f7468756d6209090909093d206e756c6c3b0d0a766172202474656d705f6c6162656c5f7468756d625f63726f7009093d206e756c6c3b0d0a766172202474656d705f7069706509090909090909093d206e756c6c3b0d0a766172202474656d705f7468756d625f636f6e7461696e65720909093d206e756c6c3b0d0a766172202474656d705f7468756d625f776964746809090909093d206e756c6c3b0d0a766172202474656d705f7468756d625f686569676874090909093d206e756c6c3b0d0a766172202474656d705f776f726b73706163655f64696d090909093d206e756c6c3b0d0a0d0a66756e6374696f6e206368616e6765427574746f6e417661696c6162696c69747928617661696c61626c652c2024627574746f6e73290d0a7b0d0a0969662028617661696c61626c65290d0a097b0d0a090924627574746f6e732e636c69636b28636c69636b6564416374696f6e293b0d0a097d0d0a09656c73650d0a097b0d0a090924627574746f6e732e756e62696e642827636c69636b272c20636c69636b6564416374696f6e293b0d0a097d0d0a7d0d0a0d0a66756e6374696f6e206368616e6765427574746f6e5669736962696c6974792876697369626c652c2024627574746f6e73290d0a7b0d0a096368616e6765427574746f6e417661696c6162696c6974792876697369626c652c2024627574746f6e73293b0d0a090d0a096966202876697369626c65290d0a090924627574746f6e732e73686f7728293b0d0a09656c73650d0a090d0a090924627574746f6e732e6869646528293b0d0a7d0d0a0d0a66756e6374696f6e206368616e67654a63726f70417661696c6162696c69747928617661696c61626c652c2063726f7070696e67290d0a7b0d0a096966202874656d705f63726f705f61706920213d206e756c6c290d0a090974656d705f63726f705f6170692e64657374726f7928293b0d0a0909090d0a0969662028617661696c61626c65290d0a097b0d0a09097661722074656d705f686569676874093d2063726f7070696e67203f207061727365496e74282474656d705f7468756d625f6865696768742e76616c282929203a2074656d705f6163745f6865696768743b0d0a09097661722074656d705f7769647468093d2063726f7070696e67203f207061727365496e74282474656d705f7468756d625f77696474682e76616c282929203a2074656d705f6163745f77696474683b0d0a09090d0a090974656d705f63726f705f617069203d20242e4a63726f70282474656d705f696d675f636f6e7461696e65722e66696e642827696d6727292e65712830292c200d0a0909097b200d0a09090909616c6c6f7753656c656374093a2066616c73652c0d0a09090909617370656374526174696f093a2074656d705f77696474682f74656d705f6865696768742c0d0a090909096d696e53697a650909093a205b32352c2032355d2c0d0a090909096d617853697a650909093a205b696d675f696e666f5b27776f726b7370616365275d5b277769647468275d2c20696d675f696e666f5b27776f726b7370616365275d5b277769647468275d5d2c0d0a0909090968616e646c65730909093a20747275652c0d0a090909096f6e4368616e676509093a206368616e67656453656c656374696f6e0d0a0909097d293b0d0a090974656d705f63726f705f6170692e73657453656c656374285b302c20302c2074656d705f77696474682c2074656d705f6865696768745d293b0d0a090974656d705f63726f705f6170692e7365744f7074696f6e73287b20616c6c6f77526573697a653a20747275652c20616c6c6f774d6f76653a2063726f7070696e677d293b0d0a090974656d705f63726f705f6170692e666f63757328293b0d0a097d0d0a7d0d0a0d0a66756e6374696f6e206368616e67656453656c656374696f6e2864696d656e73696f6e73290d0a7b0d0a09696620282474656d705f6c6162656c5f68697265735f726573697a6520213d206e756c6c290d0a09092474656d705f6c6162656c5f68697265735f726573697a652e746578742827202827202b2064696d656e73696f6e732e77202b202720782027202b2064696d656e73696f6e732e68202b20272927293b0d0a09656c736520696620282474656d705f6c6162656c5f7468756d625f63726f7020213d206e756c6c290d0a09092474656d705f6c6162656c5f7468756d625f63726f702e746578742827202827202b2064696d656e73696f6e732e77202b202720782027202b2064696d656e73696f6e732e68202b20272927293b0d0a7d0d0a0d0a66756e6374696f6e206368616e676544696d656e73696f6e732872657365745f64696d73290d0a7b0d0a097661722074656d705f6368616e67655f776f726b73706163653b0d0a090d0a09696620282172657365745f64696d73290d0a097b0d0a09097661722074656d705f68656967687420090909093d097061727365496e74282474656d705f7468756d625f6865696768742e76616c2829293b0d0a09097661722074656d705f776964746809090909093d207061727365496e74282474656d705f7468756d625f77696474682e76616c2829293b0d0a09097661722074656d705f776f726b73706163655f64696d093d207061727365496e74282474656d705f776f726b73706163655f64696d2e76616c2829293b0d0a09090d0a090974656d705f68656967687420090909093d202874656d705f686569676874203d3d204e614e29203f2074656d705f6163745f7468756d625f686569676874203a2074656d705f6865696768743b0d0a090974656d705f776964746809090909093d202874656d705f7769647468203d3d204e614e29203f2074656d705f6163745f7468756d625f7769647468203a2074656d705f77696474683b0d0a090974656d705f776f726b73706163655f64696d093d202874656d705f776f726b73706163655f64696d203d3d204e614e29203f20696d675f696e666f5b27776f726b7370616365275d5b277769647468275d203a2074656d705f776f726b73706163655f64696d3b0d0a09090d0a09097661722074656d705f6368616e67655f7468756d62093d202874656d705f68656967687420213d2074656d705f6163745f7468756d625f68656967687429207c7c202874656d705f776964746820213d2074656d705f6163745f7468756d625f7769647468293b0d0a090974656d705f6368616e67655f776f726b7370616365093d2074656d705f776f726b73706163655f64696d20213d20696d675f696e666f5b27776f726b7370616365275d5b277769647468275d3b0d0a0d0a090969662028636f6e6669726d44696d656e73696f6e4368616e6765732874656d705f6368616e67655f7468756d622c2074656d705f6368616e67655f776f726b737061636529290d0a09097b0d0a0909096966202874656d705f6368616e67655f7468756d62290d0a0909097b0d0a090909097661722074656d705f7374796c65203d202474656d705f7468756d625f636f6e7461696e65722e6174747228277374796c6527293b0d0a090909090d0a0909090974656d705f6163745f7468756d625f686569676874203d204d6174682e6d61782832352c204d6174682e6d696e2874656d705f6865696768742c2074656d705f6163745f68656967687429293b0d0a0909090974656d705f6163745f7468756d625f7769647468093d204d6174682e6d61782832352c204d6174682e6d696e2874656d705f77696474682c2074656d705f6163745f776964746829293b0d0a090909090d0a0909090974656d705f7374796c65203d2074656d705f7374796c652e7265706c616365282f6d696e2d6865696768745b3a5c735c645c775d2a3b2f672c20276d696e2d6865696768743a2027202b2074656d705f6163745f7468756d625f686569676874202b202770783b2027293b0d0a0909090974656d705f7374796c65203d2074656d705f7374796c652e7265706c616365282f77696474685b3a5c735c645c775d2a3b2f672c202777696474683a2027202b2074656d705f6163745f7468756d625f7769647468202b202770783b2027293b0d0a090909090d0a090909092474656d705f7468756d625f636f6e7461696e65722e656d70747928293b0d0a090909092474656d705f7468756d625f636f6e7461696e65722e6174747228277374796c65272c2074656d705f7374796c65293b0d0a0909097d0d0a0909090d0a0909096966202874656d705f6368616e67655f776f726b7370616365290d0a0909097b0d0a090909097661722074656d705f7374796c65203d202474656d705f696d675f636f6e7461696e65722e6174747228277374796c6527293b0d0a090909090d0a09090909696d675f696e666f5b27776f726b7370616365275d5b277769647468275d203d204d6174682e6d696e28696d675f696e666f5b27776f726b7370616365275d5b2777696474685f6d6178275d2c2074656d705f776f726b73706163655f64696d290d0a090909090d0a0909090974656d705f7374796c65203d2074656d705f7374796c652e7265706c616365282f6d696e2d6865696768745b3a5c735c645c775d2a3b2f672c20276d696e2d6865696768743a2027202b20696d675f696e666f5b27776f726b7370616365275d5b277769647468275d202b202770783b2027293b0d0a0909090974656d705f7374796c65203d2074656d705f7374796c652e7265706c616365282f77696474685b3a5c735c645c775d2a3b2f672c202777696474683a2027202b20696d675f696e666f5b27776f726b7370616365275d5b277769647468275d202b202770783b2027293b0d0a090909090d0a090909092474656d705f616374696f6e5f6c6973742e656d70747928293b0d0a090909092474656d705f696d675f636f6e7461696e65722e656d70747928293b0d0a090909092474656d705f696d675f636f6e7461696e65722e6174747228277374796c65272c2074656d705f7374796c65293b0d0a090909092474656d705f7468756d625f636f6e7461696e65722e656d70747928293b0d0a0909097d0d0a09097d0d0a0909656c73650d0a09090974656d705f6368616e67655f776f726b7370616365203d2066616c73653b0d0a097d0d0a09656c73650d0a090974656d705f6368616e67655f776f726b7370616365203d2066616c73653b0d0a0d0a092474656d705f7468756d625f6865696768742e76616c2874656d705f6163745f7468756d625f686569676874293b0d0a092474656d705f7468756d625f77696474682e76616c2874656d705f6163745f7468756d625f7769647468293b0d0a092474656d705f776f726b73706163655f64696d2e76616c28696d675f696e666f5b27776f726b7370616365275d5b277769647468275d293b0d0a090d0a0972657475726e2074656d705f6368616e67655f776f726b73706163653b0d0a7d0d0a0d0a66756e6374696f6e20636c69636b6564416374696f6e28290d0a7b0d0a097661722074656d705f616374696f6e090909093d20242874686973292e617474722827696427292e746f4c6f7765724361736528292e7265706c616365282f7a6d73677261706869635f657874656469745f2f672c202727293b0d0a097661722074656d705f616a61785f72657175657374203d2066616c73653b0d0a090d0a09696620282874656d705f616374696f6e203d3d202763616e63656c2729207c7c202874656d705f616374696f6e203d3d20276f6b2729290d0a097b0d0a09092474656d705f666f726d2e66696e642827696e7075745b6e616d653d22616374696f6e225d27292e76616c2874656d705f616374696f6e293b0d0a09090d0a09096966202874656d705f616374696f6e203d3d20276f6b27290d0a0909092474656d705f666f726d2e66696e642827696e7075745b6e616d653d22696d675f696e666f225d27292e76616c2867657445646974506970654173584d4c28696d675f696e666f29293b0d0a09090d0a09092474656d705f666f726d2e7375626d697428293b0d0a097d0d0a09656c736520696620282874656d705f616374696f6e203d3d2027726f746174655f702729207c7c202874656d705f616374696f6e203d3d2027726f746174655f6d2729290d0a097b0d0a090969662028636f6e6669726d5468756d6252657365742829290d0a09097b0d0a090909696d675f696e666f5b277175657565275d2e707573682863726561746551756575654f626a6563742827726f74617465272c202874656d705f616374696f6e2e7265706c616365282f726f746174655f2f672c20272729203d3d20276d2729203f20202d31203a203129293b0d0a0909090d0a0909092474656d705f616374696f6e5f6c6973742e617070656e6428273c6f7074696f6e3e27202b20242874686973292e617474722827616c742729202b20273c2f6f7074696f6e3e27293b0d0a090909090d0a09090974656d705f616a61785f72657175657374203d20747275653b0d0a09097d0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d2027666c69705f6827290d0a097b0d0a090969662028636f6e6669726d5468756d6252657365742829290d0a09097b0d0a090909696d675f696e666f5b277175657565275d2e707573682863726561746551756575654f626a656374282766686f72697a6f6e74616c272c203129293b0d0a0909090d0a0909092474656d705f616374696f6e5f6c6973742e617070656e6428273c6f7074696f6e3e27202b20242874686973292e617474722827616c742729202b20273c2f6f7074696f6e3e27293b0d0a0909090d0a09090974656d705f616a61785f72657175657374203d20747275653b0d0a09097d0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d2027666c69705f7627290d0a097b0d0a090969662028636f6e6669726d5468756d6252657365742829290d0a09097b0d0a090909696d675f696e666f5b277175657565275d2e707573682863726561746551756575654f626a656374282766766572746963616c272c203129293b0d0a0909090d0a0909092474656d705f616374696f6e5f6c6973742e617070656e6428273c6f7074696f6e3e27202b20242874686973292e617474722827616c742729202b20273c2f6f7074696f6e3e27293b0d0a0909090d0a09090974656d705f616a61785f72657175657374203d20747275653b0d0a09097d0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d2027726573697a6527290d0a097b0d0a09092474656d705f6c6162656c5f68697265735f726573697a65203d202428273c6c6162656c3e202827202b2074656d705f6163745f7769647468202b202720782027202b2074656d705f6163745f686569676874202b2027293c2f6c6162656c3e27293b0d0a09092474656d705f6c6162656c5f68697265735f726573697a652e696e736572744166746572282474656d705f6c6162656c5f6869726573293b0d0a09090d0a09096368616e6765427574746f6e417661696c6162696c6974792866616c73652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c69747928747275652c202474656d705f627574746f6e735f726573697a65293b0d0a09096368616e67654a63726f70417661696c6162696c69747928747275652c2066616c7365293b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d2027726573697a655f6f6b27290d0a097b0d0a090964656c6574654c6162656c7328293b0d0a09096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f726573697a65293b0d0a09090d0a090969662028636f6e6669726d5468756d6252657365742829290d0a09097b0d0a0909097661722074656d705f61726561203d2074656d705f63726f705f6170692e74656c6c53656c65637428293b200d0a090909696d675f696e666f5b277175657565275d2e707573682863726561746551756575654f626a6563742827726573697a65272c202874656d705f617265612e7832202d2074656d705f617265612e7829202b20272c27202b202874656d705f617265612e7932202d2074656d705f617265612e792929293b0d0a0909090d0a0909092474656d705f616374696f6e5f6c6973742e617070656e6428273c6f7074696f6e3e726573697a6520746f2027202b202874656d705f617265612e7832202d2074656d705f617265612e7829202b202720782027202b202874656d705f617265612e7932202d2074656d705f617265612e7929202b20273c2f6f7074696f6e3e27293b0d0a0909090d0a09090974656d705f616a61785f72657175657374203d20747275653b0d0a09097d0d0a09090d0a09096368616e67654a63726f70417661696c6162696c6974792866616c7365293b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d2027726573697a655f63616e63656c27290d0a097b0d0a090964656c6574654c6162656c7328293b0d0a09096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f726573697a65293b0d0a09096368616e67654a63726f70417661696c6162696c6974792866616c7365293b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d202763726f7027290d0a097b0d0a09092f2f206765742061637475616c207468756d622064696d656e73696f6e730d0a090974656d705f6163745f7468756d625f686569676874203d207061727365496e74282474656d705f7468756d625f6865696768742e76616c2829293b0d0a090974656d705f6163745f7468756d625f7769647468093d207061727365496e74282474656d705f7468756d625f77696474682e76616c2829293b0d0a09090d0a09092474656d705f6c6162656c5f7468756d625f63726f70203d202428273c6c6162656c3e202827202b2074656d705f6163745f7468756d625f7769647468202b202720782027202b2074656d705f6163745f7468756d625f686569676874202b2027293c2f6c6162656c3e27293b0d0a09092474656d705f6c6162656c5f7468756d625f63726f702e696e736572744166746572282474656d705f6c6162656c5f7468756d62293b0d0a09090d0a09096368616e6765427574746f6e417661696c6162696c6974792866616c73652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c69747928747275652c202474656d705f627574746f6e735f63726f70293b0d0a09096368616e67654a63726f70417661696c6162696c69747928747275652c2074727565293b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d202763726f705f6f6b27290d0a097b0d0a090964656c6574654c6162656c7328293b0d0a09096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f63726f70293b0d0a09090d0a09097661722074656d705f61726561203d2074656d705f63726f705f6170692e74656c6c53656c65637428293b200d0a0909696d675f696e666f5b277175657565275d2e707573682863726561746551756575654f626a656374282763726f70272c2074656d705f617265612e78202b20272c27202b2074656d705f617265612e79202b20272c27202b2074656d705f617265612e7832202b20272c27202b2074656d705f617265612e7932202b20272c27202b202474656d705f7468756d625f77696474682e76616c2829202b20272c27202b202474656d705f7468756d625f6865696768742e76616c282929293b0d0a09090d0a09096368616e67654a63726f70417661696c6162696c6974792866616c7365293b0d0a09090d0a090974656d705f616a61785f72657175657374203d20747275653b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d202763726f705f63616e63656c27290d0a097b0d0a090964656c6574654c6162656c7328293b0d0a09096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f63726f70293b0d0a09096368616e67654a63726f70417661696c6162696c6974792866616c7365293b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d202764696d656e73696f6e27290d0a097b0d0a09092f2f206765742061637475616c207468756d622064696d656e73696f6e730d0a090974656d705f6163745f7468756d625f686569676874203d207061727365496e74282474656d705f7468756d625f6865696768742e76616c2829293b0d0a090974656d705f6163745f7468756d625f7769647468093d207061727365496e74282474656d705f7468756d625f77696474682e76616c2829293b0d0a09092f2f206765742061637475616c20776f726b73706163652064696d656e73696f6e0d0a0909696d675f696e666f5b27776f726b7370616365275d5b277769647468275d093d207061727365496e74282474656d705f776f726b73706163655f64696d2e76616c2829293b0d0a09090d0a09096368616e6765427574746f6e417661696c6162696c6974792866616c73652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c69747928747275652c202474656d705f627574746f6e735f64696d293b0d0a09096368616e6765427574746f6e5669736962696c69747928747275652c202474656d705f696e707574735f64696d293b0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d202764696d656e73696f6e5f6f6b27290d0a097b0d0a09097661722074656d705f776f726b73706163655f6368616e676564203d206368616e676544696d656e73696f6e7328293b0d0a09096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f64696d293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f696e707574735f64696d293b0d0a09090d0a09096966202874656d705f776f726b73706163655f6368616e676564290d0a09097b0d0a090909696d675f696e666f5b277175657565275d2e707573682863726561746551756575654f626a6563742827776f726b7370616365272c20696d675f696e666f5b27776f726b7370616365275d5b277769647468275d29293b0d0a0909090d0a09090974656d705f616a61785f72657175657374203d20747275653b0d0a09097d0d0a097d0d0a09656c7365206966202874656d705f616374696f6e203d3d202764696d656e73696f6e5f63616e63656c27290d0a097b0d0a09096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f64696d293b0d0a09096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f696e707574735f64696d293b0d0a09096368616e676544696d656e73696f6e732874727565293b0d0a097d0d0a090d0a096966202874656d705f616a61785f72657175657374290d0a097b0d0a09096a51756572792e706f7374287a6d73677261706869635f657874656469745f726571756573745f75726c2c207b616374696f6e203a202772657175657374272c20696d675f696e666f203a2067657445646974506970654173584d4c28696d675f696e666f297d2c2072656365697665446174612c20276a736f6e27293b0d0a097d0d0a7d0d0a0d0a66756e6374696f6e20636f6e6669726d44696d656e73696f6e4368616e676573287468756d625f64696d5f6368616e6765642c20776f726b73706163655f64696d5f6368616e676564290d0a7b0d0a097661722074656d705f7465787409093d2027417474656e74696f6e21273b0d0a097661722074656d705f726573756c74093d20747275653b0d0a090d0a09696620287468756d625f64696d5f6368616e67656420262620776f726b73706163655f64696d5f6368616e676564290d0a090974656d705f74657874202b3d2027205468756d622d44696d656e73696f6e7320616e6420576f726b73706163652d44696d656e73696f6e2077657265206368616e6765642e2050726576696f7573206368616e67657320616e64205468756d622d496d6167652077696c6c206265206c6f73742e273b0d0a09656c736520696620287468756d625f64696d5f6368616e676564290d0a090974656d705f74657874202b3d2027205468756d622d44696d656e73696f6e732077657265206368616e6765642e20205468756d622d696d6167652077696c6c206265206c6f7374273b0d0a09656c73652069662028776f726b73706163655f64696d5f6368616e676564290d0a090974656d705f74657874202b3d202720576f726b73706163652d44696d656e73696f6e20776173206368616e6765642e2050726576696f7573206368616e67657320616e64205468756d622d496d6167652077696c6c206265206c6f73742e273b0d0a0974656d705f74657874202b3d20275c6e446f20796f752077616e7420746f20636f6e74696e75653f273b0d0a090d0a09696620287468756d625f64696d5f6368616e676564207c7c20776f726b73706163655f64696d5f6368616e676564290d0a090974656d705f726573756c74203d20636f6e6669726d2874656d705f74657874293b0d0a09090d0a0972657475726e2074656d705f726573756c743b0d0a7d0d0a0d0a66756e6374696f6e20636f6e6669726d5468756d62526573657428290d0a7b0d0a097661722074656d705f726573756c74203d20747275653b0d0a090d0a09696620282474656d705f7468756d625f636f6e7461696e65722e66696e642827696d6727292e6c656e677468203e2030290d0a097b0d0a090974656d705f726573756c74203d20636f6e6669726d2827417474656e74696f6e21205468756d622d696d6167652077696c6c206265206c6f73742e5c6e446f20796f752077616e7420746f20636f6e74696e75653f27293b0d0a090d0a09096966202874656d705f726573756c74290d0a0909092474656d705f7468756d625f636f6e7461696e65722e656d70747928293b0d0a097d0d0a090d0a0972657475726e2074656d705f726573756c743b0d0a7d0d0a0d0a66756e6374696f6e2063726561746551756575654f626a65637428616374696f6e2c2076616c7565290d0a7b0d0a097661722074656d705f6f626a203d206e6577204f626a65637428293b0d0a090d0a0974656d705f6f626a5b27616374696f6e275d09093d20616374696f6e3b0d0a0974656d705f6f626a5b2776616c7565275d0909093d2076616c75653b0d0a0974656d705f6f626a5b2766696c656e616d65275d093d206e756c6c3b0d0a0974656d705f6f626a5b2775726c275d090909093d206e756c6c3b0d0a0974656d705f6f626a5b277769647468275d0909093d206e756c6c3b0d0a0974656d705f6f626a5b27686569676874275d09093d206e756c6c3b0d0a090d0a0972657475726e2074656d705f6f626a3b0d0a7d0d0a0d0a66756e6374696f6e2064656c6574654c6162656c7328290d0a7b0d0a09696620282474656d705f6c6162656c5f68697265735f726573697a6520213d206e756c6c290d0a097b0d0a09092474656d705f6c6162656c5f68697265735f726573697a652e72656d6f766528293b0d0a09092474656d705f6c6162656c5f68697265735f726573697a65203d206e756c6c3b0d0a097d0d0a09696620282474656d705f6c6162656c5f7468756d625f63726f7020213d206e756c6c290d0a097b0d0a09092474656d705f6c6162656c5f7468756d625f63726f702e72656d6f766528293b0d0a09092474656d705f6c6162656c5f7468756d625f63726f70203d206e756c6c3b0d0a097d0d0a7d0d0a0d0a66756e6374696f6e2067657441637444696d46726f6d517565756528696d675f696e666f290d0a7b0d0a097661722074656d705f706f73203d20696d675f696e666f5b277175657565275d2e6c656e677468202d20313b0d0a090d0a0974656d705f6163745f686569676874093d20696d675f696e666f5b277175657565275d5b74656d705f706f735d5b27686569676874275d3b0d0a0974656d705f6163745f7769647468093d20696d675f696e666f5b277175657565275d5b74656d705f706f735d5b277769647468275d3b0d0a7d0d0a0d0a66756e6374696f6e2067657445646974506970654173584d4c28696d675f696e666f290d0a7b0d0a097661722074656d705f786d6c203d2027273b0d0a090d0a0974656d705f786d6c202b3d20273c64696374696f6e6172793e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d2271756575652220747970653d226c697374223e3c6c6973743e5c6e273b0d0a090d0a09666f7220287661722069203d20303b2069203c20696d675f696e666f5b277175657565275d2e6c656e6774683b20692b2b290d0a097b0d0a090974656d705f786d6c202b3d20273c6974656d20747970653d2264696374696f6e617279223e3c64696374696f6e6172793e5c6e273b0d0a090974656d705f786d6c202b3d20273c6974656d206b65793d22616374696f6e223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277175657565275d5b695d5b27616374696f6e275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a090974656d705f786d6c202b3d20273c6974656d206b65793d2276616c7565223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277175657565275d5b695d5b2776616c7565275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a090974656d705f786d6c202b3d20273c6974656d206b65793d2266696c656e616d65223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277175657565275d5b695d5b2766696c656e616d65275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a090974656d705f786d6c202b3d20273c6974656d206b65793d2275726c223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277175657565275d5b695d5b2775726c275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a090974656d705f786d6c202b3d20273c6974656d206b65793d227769647468223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277175657565275d5b695d5b277769647468275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a090974656d705f786d6c202b3d20273c6974656d206b65793d22686569676874223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277175657565275d5b695d5b27686569676874275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a090974656d705f786d6c202b3d20273c2f64696374696f6e6172793e3c2f6974656d3e5c6e273b0d0a097d0d0a090d0a0974656d705f786d6c202b3d20273c2f6c6973743e3c2f6974656d3e5c6e273b0d0a090d0a0974656d705f786d6c202b3d20273c6974656d206b65793d227468756d622220747970653d2264696374696f6e617279223e3c64696374696f6e6172793e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d2266696c656e616d65223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277468756d62275d5b2766696c656e616d65275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d2275726c223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277468756d62275d5b2775726c275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d2263726f705f626f78223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277468756d62275d5b2763726f705f626f78275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d227769647468223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277468756d62275d5b277769647468275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d22686569676874223e3c215b434441544127202b20275b27202b20696d675f696e666f5b277468756d62275d5b27686569676874275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a0974656d705f786d6c202b3d20273c2f64696374696f6e6172793e3c2f6974656d3e5c6e273b0d0a090d0a0974656d705f786d6c202b3d20273c6974656d206b65793d22776f726b73706163652220747970653d2264696374696f6e617279223e3c64696374696f6e6172793e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d227769647468223e3c215b434441544127202b20275b27202b20696d675f696e666f5b27776f726b7370616365275d5b277769647468275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a0974656d705f786d6c202b3d20273c6974656d206b65793d2277696474685f6d6178223e3c215b434441544127202b20275b27202b20696d675f696e666f5b27776f726b7370616365275d5b2777696474685f6d6178275d202b20275d27202b20275d3e3c2f6974656d3e5c6e273b0d0a0974656d705f786d6c202b3d20273c2f64696374696f6e6172793e3c2f6974656d3e5c6e270d0a090d0a0974656d705f786d6c202b3d20273c2f64696374696f6e6172793e5c6e273b0d0a090d0a0972657475726e2074656d705f786d6c3b0d0a7d0d0a0d0a66756e6374696f6e20726563656976654461746128646174612c2074657874537461747573290d0a7b0d0a09696620282874657874537461747573203d3d20277375636365737327292026262028646174615b27726573756c74275d203e203029290d0a097b0d0a0909696d675f696e666f203d20646174615b27696d675f696e666f275d3b0d0a09090d0a09097661722074656d705f71756575655f706f73203d20696d675f696e666f5b277175657565275d2e6c656e677468202d20313b0d0a09090d0a0909696620282474656d705f696d675f636f6e7461696e65722e66696e642827696d6727292e6c656e677468203e2030290d0a09097b0d0a090909696620282474656d705f696d675f636f6e7461696e65722e66696e642827696d6727292e617474722827737263272920213d20696d675f696e666f5b277175657565275d5b74656d705f71756575655f706f735d5b2775726c275d290d0a090909092474656d705f696d675f636f6e7461696e65722e66696e642827696d6727292e617474722827737263272c20696d675f696e666f5b277175657565275d5b74656d705f71756575655f706f735d5b2775726c275d293b0d0a09097d0d0a0909656c73650d0a0909092474656d705f696d675f636f6e7461696e65722e617070656e6428273c696d67207372633d2227202b20696d675f696e666f5b277175657565275d5b74656d705f71756575655f706f735d5b2775726c275d202b202722202f3e27293b0d0a09090d0a090969662028696d675f696e666f5b277468756d62275d5b2775726c275d20213d20276e756c6c27290d0a09097b0d0a090909696620282474656d705f7468756d625f636f6e7461696e65722e66696e642827696d6727292e6c656e677468203e2030290d0a090909092474656d705f7468756d625f636f6e7461696e65722e66696e642827696d6727292e617474722827737263272c20696d675f696e666f5b277468756d62275d5b2775726c275d293b0d0a090909656c73650d0a090909092474656d705f7468756d625f636f6e7461696e65722e617070656e6428273c696d67207372633d2227202b20696d675f696e666f5b277468756d62275d5b2775726c275d202b202722202f3e27293b0d0a09097d0d0a0909090d0a090967657441637444696d46726f6d517565756528696d675f696e666f290d0a090972656e646572496d67496e666f28696d675f696e666f290d0a097d0d0a7d0d0a0d0a66756e6374696f6e2072656e646572496d67496e666f28696d675f696e666f290d0a7b0d0a092474656d705f6c6162656c5f68697265732e746578742874656d705f6163745f7769647468202b202720782027202b2074656d705f6163745f686569676874293b0d0a0969662028696d675f696e666f5b277468756d62275d5b2775726c275d203d3d20276e756c6c27290d0a09092474656d705f6c6162656c5f7468756d622e7465787428274e6f6e6527293b0d0a09656c73650d0a09092474656d705f6c6162656c5f7468756d622e746578742874656d705f6163745f7468756d625f7769647468202b202720782027202b2074656d705f6163745f7468756d625f686569676874293b0d0a7d0d0a0d0a242827646f63756d656e7427292e72656164792866756e6374696f6e28290d0a7b0d0a092474656d705f666f726d0909090909093d20242827235a4d53477261706869635f657874456469745f666f726d27293b0d0a092474656d705f706970650909090909093d202474656d705f666f726d2e66696e642827696e7075745b6e616d653d2270697065225d27293b0d0a092474656d705f616374696f6e5f6c6973740909093d20242827235a4d53477261706869635f657874456469745f616374696f6e4c69737427293b0d0a092474656d705f696d675f636f6e7461696e657220093d20242827235a4d53477261706869635f657874456469745f696d61676527293b0d0a092474656d705f6c6162656c5f68697265730909093d20242827235a4d53477261706869635f657874456469745f696e666f5f686972657327293b0d0a092474656d705f6c6162656c5f7468756d620909093d20242827235a4d53477261706869635f657874456469745f696e666f5f7468756d6227293b0d0a092474656d705f7468756d625f636f6e7461696e6572093d20242827235a4d53477261706869635f657874456469745f7468756d625f696d6727293b0d0a092474656d705f7468756d625f68656967687409093d20242827235a4d53477261706869635f657874456469745f7468756d625f68656967687427293b0d0a092474656d705f7468756d625f77696474680909093d20242827235a4d53477261706869635f657874456469745f7468756d625f776964746827293b0d0a092474656d705f776f726b73706163655f64696d09093d20242827235a4d53477261706869635f657874456469745f776f726b737061636527293b0d0a090d0a092474656d705f627574746f6e735f63726f7009093d20242827235a4d53477261706869635f657874456469745f63726f705f63616e63656c2c20235a4d53477261706869635f657874456469745f63726f705f6f6b27293b0d0a092474656d705f627574746f6e735f64696d0909093d20242827235a4d53477261706869635f657874456469745f64696d656e73696f6e5f63616e63656c2c20235a4d53477261706869635f657874456469745f64696d656e73696f6e5f6f6b27293b0d0a092474656d705f627574746f6e735f6d61696e09093d20242827235a4d53477261706869635f657874456469745f63726f702c20235a4d53477261706869635f657874456469745f64696d656e73696f6e2c20235a4d53477261706869635f657874456469745f666c69705f682c20235a4d53477261706869635f657874456469745f666c69705f762c2027202b0d0a090909090909090909090909090927235a4d53477261706869635f657874456469745f726573697a652c20235a4d53477261706869635f657874456469745f726f746174655f6d2c20235a4d53477261706869635f657874456469745f726f746174655f702c2027202b0d0a090909090909090909090909090927235a4d53477261706869635f657874456469745f63616e63656c2c20235a4d53477261706869635f657874456469745f6f6b27293b0d0a092474656d705f627574746f6e735f726573697a65093d20242827235a4d53477261706869635f657874456469745f726573697a655f63616e63656c2c20235a4d53477261706869635f657874456469745f726573697a655f6f6b27293b0d0a092474656d705f696e707574735f64696d0909093d20242827235a4d53477261706869635f657874456469745f7468756d625f64696d27293b0d0a090d0a096368616e6765427574746f6e417661696c6162696c69747928747275652c202474656d705f627574746f6e735f6d61696e293b0d0a096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f63726f70293b0d0a096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f64696d293b0d0a096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f627574746f6e735f726573697a65293b0d0a096368616e6765427574746f6e5669736962696c6974792866616c73652c202474656d705f696e707574735f64696d293b0d0a090d0a0967657441637444696d46726f6d517565756528696d675f696e666f293b0d0a7d293b</data></item> 10 10 <item key="id"><![CDATA[handleEdit.js]]></item> 11 11 <item key="mandatory" type="int">0</item> … … 1295 1295 img_info['queue'] = new Array(); 1296 1296 img_info['queue'].push(new Object()); 1297 img_info['queue'][0]['action'] = 'create'; 1298 img_info['queue'][0]['value'] = null; 1299 img_info['queue'][0]['filename'] = '&dtml-filename;'; 1300 img_info['queue'][0]['url'] = '<dtml-var "ZMSGraphic_extEdit_getTempFolder().absolute_url()">/&dtml-filename;'; 1301 img_info['queue'][0]['width'] = &dtml-width; 1302 img_info['queue'][0]['height'] = &dtml-height; 1303 img_info['thumb'] = new Object(); 1304 img_info['thumb']['filename'] = '&dtml-thumb_filename;'; 1305 img_info['thumb']['url'] = '<dtml-var "ZMSGraphic_extEdit_getTempFolder().absolute_url()">/&dtml-thumb_filename;'; 1306 img_info['thumb']['width'] = &dtml-thumb_width; 1307 img_info['thumb']['height'] = &dtml-thumb_height; 1308 img_info['thumb']['crop_box'] = null; 1297 img_info['queue'][0]['action'] = 'create'; 1298 img_info['queue'][0]['value'] = null; 1299 img_info['queue'][0]['filename'] = '<dtml-var "img_info['act']['filename']">'; 1300 img_info['queue'][0]['url'] = '<dtml-var "ZMSGraphic_extEdit_getTempFolder().absolute_url()">/<dtml-var "img_info['act']['filename']">'; 1301 img_info['queue'][0]['width'] = <dtml-var "img_info['act']['width']">; 1302 img_info['queue'][0]['height'] = <dtml-var "img_info['act']['height']">; 1303 img_info['thumb'] = new Object(); 1304 img_info['thumb']['filename'] = '<dtml-var "img_info['img']['filename']">'; 1305 img_info['thumb']['url'] = '<dtml-var "ZMSGraphic_extEdit_getTempFolder().absolute_url()">/<dtml-var "img_info['img']['filename']">'; 1306 img_info['thumb']['width'] = <dtml-var "img_info['img']['width']">; 1307 img_info['thumb']['height'] = <dtml-var "img_info['img']['height']">; 1308 img_info['thumb']['crop_box'] = null; 1309 img_info['workspace'] = new Object(); 1310 img_info['workspace']['width'] = &dtml-workspace_width;; 1311 img_info['workspace']['width_max'] = &dtml-workspace_width_max;; 1309 1312 </script> 1310 1313 <script type="text/javascript" src="<dtml-var "getDocumentElement().absolute_url()">/metaobj_manager/ZMSGraphic_extEdit.jquery.Jcrop.js"></script> … … 1316 1319 <dtml-var f_bo_area> 1317 1320 1318 <dtml-let filename="REQUEST.get('filename', None)"> 1319 <dtml-if "((filename is not None) and (len(filename) > 0))"> 1320 <div id="ZMSGraphic_extEdit_main" style="text-align:left;"> 1321 <div id="ZMSGraphic_extEdit_actions"> 1322 <img src="" id="ZMSGraphic_extEdit_rotate_p" alt="rotate 90" /> 1323 <img src="" id="ZMSGraphic_extEdit_rotate_m" alt="rotate -90" /> 1324 <img src="" id="ZMSGraphic_extEdit_flip_h" alt="flip horizontal" /> 1325 <img src="" id="ZMSGraphic_extEdit_flip_v" alt="flip vertical" /> 1326 <img src="" id="ZMSGraphic_extEdit_resize" alt="resize image" /> 1327 1328 <img src="" id="ZMSGraphic_extEdit_resize_ok" alt="accept resized image" /> 1329 <img src="" id="ZMSGraphic_extEdit_resize_cancel" alt="cancel resized image" /> 1330 1331 <img src="" id="ZMSGraphic_extEdit_crop" alt="crop thumb" /> 1332 1333 <img src="" id="ZMSGraphic_extEdit_crop_ok" alt="accept cropped image" /> 1334 <img src="" id="ZMSGraphic_extEdit_crop_cancel" alt="cancel cropped image" /> 1335 1336 <img src="" id="ZMSGraphic_extEdit_dimension" alt="change dimensions" /> 1337 <div id="ZMSGraphic_extEdit_thumb_dim"> 1338 <label>Thumb-Breite (px): </label><input type="text" id="ZMSGraphic_extEdit_thumb_width" max-length="3" size="3" value="&dtml-thumb_width;" /><br /> 1339 <label>Thumb-Höhe (px): </label><input type="text" id="ZMSGraphic_extEdit_thumb_height" max-length="3" size="3" value="&dtml-thumb_height;" /><br /> 1340 <label>ArbeitsflÀche (px): </label><input type="text" id="ZMSGraphic_extEdit_workspace" max-length="4" size="3" value="&dtml-workspace_width;" /> 1341 </div> 1342 <img src="" id="ZMSGraphic_extEdit_dimension_ok" alt="accept new dimensions" /> 1343 <img src="" id="ZMSGraphic_extEdit_dimension_cancel" alt="cancel new dimensions" /> 1321 <dtml-if "((img_info['act'].has_key('filename')) and (len(img_info['act']['filename']) > 0))"> 1322 <div id="ZMSGraphic_extEdit_main" style="text-align:left;"> 1323 <div id="ZMSGraphic_extEdit_actions"> 1324 <img src="" id="ZMSGraphic_extEdit_rotate_p" alt="rotate 90" /> 1325 <img src="" id="ZMSGraphic_extEdit_rotate_m" alt="rotate -90" /> 1326 <img src="" id="ZMSGraphic_extEdit_flip_h" alt="flip horizontal" /> 1327 <img src="" id="ZMSGraphic_extEdit_flip_v" alt="flip vertical" /> 1328 <img src="" id="ZMSGraphic_extEdit_resize" alt="resize image" /> 1329 1330 <img src="" id="ZMSGraphic_extEdit_resize_ok" alt="accept resized image" /> 1331 <img src="" id="ZMSGraphic_extEdit_resize_cancel" alt="cancel resized image" /> 1332 1333 <img src="" id="ZMSGraphic_extEdit_crop" alt="crop thumb" /> 1334 1335 <img src="" id="ZMSGraphic_extEdit_crop_ok" alt="accept cropped image" /> 1336 <img src="" id="ZMSGraphic_extEdit_crop_cancel" alt="cancel cropped image" /> 1337 1338 <img src="" id="ZMSGraphic_extEdit_dimension" alt="change dimensions" /> 1339 <div id="ZMSGraphic_extEdit_thumb_dim"> 1340 <label>Thumb-Breite (px): </label><input type="text" id="ZMSGraphic_extEdit_thumb_width" max-length="3" size="3" value="<dtml-var "img_info['img']['width']">" /><br /> 1341 <label>Thumb-Höhe (px): </label><input type="text" id="ZMSGraphic_extEdit_thumb_height" max-length="3" size="3" value="<dtml-var "img_info['img']['height']">" /><br /> 1342 <label>ArbeitsflÀche (px): </label><input type="text" id="ZMSGraphic_extEdit_workspace" max-length="4" size="3" value="&dtml-workspace_width;" /> 1344 1343 </div> 1345 <div id="ZMSGraphic_extEdit_image" style="border: 1px solid #000; min-height: <dtml-var "workspace_width">px; width: <dtml-var "workspace_width">px;"> 1346 <img src="<dtml-var "ZMSGraphic_extEdit_getTempFolder().absolute_url()">/<dtml-var "filename">" /> 1344 <img src="" id="ZMSGraphic_extEdit_dimension_ok" alt="accept new dimensions" /> 1345 <img src="" id="ZMSGraphic_extEdit_dimension_cancel" alt="cancel new dimensions" /> 1346 </div> 1347 <div id="ZMSGraphic_extEdit_image" style="border: 1px solid #000; min-height: <dtml-var "workspace_width">px; width: <dtml-var "workspace_width">px;"> 1348 <img src="<dtml-var "ZMSGraphic_extEdit_getTempFolder().absolute_url()">/<dtml-var "img_info['act']['filename']">" /> 1349 </div> 1350 <div id="ZMSGraphic_extEdit_thumb"> 1351 <div id="ZMSGraphic_extEdit_thumb_img" style="border: 1px solid #000; min-height: <dtml-var "img_info['img']['height']">px; width: <dtml-var "img_info['img']['width']">px;"> 1352 <dtml-if "thumb_filename is not None"> 1353 <img src="<dtml-var "ZMSGraphic_extEdit_getTempFolder().absolute_url()">/<dtml-var "img_info['img']['filename']">" /> 1354 </dtml-if> 1347 1355 </div> 1348 <div id="ZMSGraphic_extEdit_thumb"> 1349 <div id="ZMSGraphic_extEdit_thumb_img" style="border: 1px solid #000; min-height: &dtml-thumb_height;px; width: &dtml-thumb_width;px;"> 1350 <dtml-if "thumb_filename is not None"> 1351 <img src="<dtml-var "ZMSGraphic_extEdit_getTempFolder().absolute_url()">/&dtml-thumb_filename;" /> 1352 </dtml-if> 1353 </div> 1354 1355 </div> 1356 <div id="ZMSGraphic_extEdit_actions"> 1357 <label>Actions:</label> 1358 <select id="ZMSGraphic_extEdit_actionList" size="5" style="width: 150px;"> 1359 </select> 1360 </div> 1361 <div id="ZMSGraphic_extEdit_info"> 1362 <label>Superres: </label><label id="ZMSGraphic_extEdit_info_superres"><dtml-if "img_info.has_key('superres_width')"><dtml-var "img_info['superres_width']"> x <dtml-var "img_info['superres_height']"><dtml-else>None</dtml-if></label><br /> 1363 <label>Hires: </label><label id="ZMSGraphic_extEdit_info_hires"><dtml-var "img_info['width']"> x <dtml-var "img_info['height']"></label><br /> 1364 <label>Thumb: </label><label id="ZMSGraphic_extEdit_info_thumb"><dtml-if "img_info['thumb_filename'] is not None"><dtml-var "img_info['thumb_width']"> x <dtml-var "img_info['thumb_height']"><dtml-else>None</dtml-if></label><br /> 1365 </div> 1356 1366 1357 </div> 1367 1368 <div id="ZMSGraphic_extEdit_footer"> 1369 <form action="<dtml-var "absolute_url()">/ZMSGallery_extEdit?lang=<dtml-var "lang">" method="POST" id="ZMSGraphic_extEdit_form"> 1370 <input type="hidden" name="action" value="cancel" /> 1371 <input type="hidden" name="img_info" value="" /> 1372 </form> 1373 <input type="button" id="ZMSGraphic_extEdit_ok" value="OK" /> 1374 <input type="button" id="ZMSGraphic_extEdit_cancel" value="Cancel" /> 1358 <div id="ZMSGraphic_extEdit_actions"> 1359 <label>Actions:</label> 1360 <select id="ZMSGraphic_extEdit_actionList" size="5" style="width: 150px;"> 1361 </select> 1375 1362 </div> 1376 </dtml-if> 1377 </dtml-let> 1363 <div id="ZMSGraphic_extEdit_info"> 1364 <label>Superres: </label><label id="ZMSGraphic_extEdit_info_superres"><dtml-if "img_info['imgsuperres'] is not None"><dtml-var "img_info['imgsuperres']['width']"> x <dtml-var "img_info['imgsuperres']['height']"><dtml-else>None</dtml-if></label><br /> 1365 <label>Hires: </label><label id="ZMSGraphic_extEdit_info_hires"><dtml-var "img_info['act']['width']"> x <dtml-var "img_info['act']['height']"></label><br /> 1366 <label>Thumb: </label><label id="ZMSGraphic_extEdit_info_thumb"><dtml-if "img_info['img'] is not None"><dtml-var "img_info['img']['width']"> x <dtml-var "img_info['img']['height']"><dtml-else>None</dtml-if></label><br /> 1367 </div> 1368 </div> 1369 1370 <div id="ZMSGraphic_extEdit_footer"> 1371 <form action="<dtml-var "absolute_url()">/ZMSGallery_extEdit?lang=<dtml-var "lang">" method="POST" id="ZMSGraphic_extEdit_form"> 1372 <input type="hidden" name="action" value="cancel" /> 1373 <input type="hidden" name="img_info" value="" /> 1374 </form> 1375 <input type="button" id="ZMSGraphic_extEdit_ok" value="OK" /> 1376 <input type="button" id="ZMSGraphic_extEdit_cancel" value="Cancel" /> 1377 </div> 1378 </dtml-if> 1378 1379 1379 1380 <dtml-var f_eo_area> … … 1702 1703 1703 1704 def createTempImage(dest_folder, image_dict, conf_dimensions): 1704 if (image_dict is not None): 1705 temp_image_dict = (image_dict['imgsuperres'] is not None) and image_dict['imgsuperres'] or image_dict['imghires'] 1706 1707 if (temp_image_dict is not None): 1705 1708 # delete old image 1706 if ( image_dict['filename'] in dest_folder.objectIds()):1707 dest_folder.manage_delObjects( image_dict['filename'])1709 if (temp_image_dict['filename'] in dest_folder.objectIds()): 1710 dest_folder.manage_delObjects(temp_image_dict['filename']) 1708 1711 # create image 1709 temp_parts = image_dict['filename'].rsplit('.')1710 image_dict[' filename'] = '%s_%s%s'%(temp_parts[0], DateTime().strftime('%Y%m%d%H%M%S'), (len(temp_parts) > 1) and '.%s'%temp_parts[1] or '')1711 1712 dest_folder.manage_addImage(image_dict[' filename'],image_dict['data'])1712 temp_parts = temp_image_dict['filename'].rsplit('.') 1713 image_dict['act']['filename'] = '%s_%s%s'%(temp_parts[0], DateTime().strftime('%Y%m%d%H%M%S'), (len(temp_parts) > 1) and '.%s'%temp_parts[1] or '') 1714 1715 dest_folder.manage_addImage(image_dict['act']['filename'], temp_image_dict['data']) 1713 1716 1714 1717 # resize image if its greater than workspace width 1715 if (max(image_dict['height'], image_dict['width']) > conf_dimensions['workspace']): 1716 temp_size = calcResizeDim(image_dict['width'], image_dict['height'], conf_dimensions['workspace']) 1717 temp_info = context.ZMSGraphic_extEdit_resize(dest_folder, image_dict['filename'], temp_size[0], temp_size[1], replace_source = True) 1718 1719 image_dict['filename'] = temp_info[0] 1720 image_dict['width'] = temp_info[1] 1721 image_dict['height'] = temp_info[2] 1722 1723 if (image_dict['thumb_filename'] is not None): 1718 if (max(temp_image_dict['height'], temp_image_dict['width']) > conf_dimensions['workspace']): 1719 temp_size = calcResizeDim(temp_image_dict['width'], temp_image_dict['height'], conf_dimensions['workspace']) 1720 temp_info = context.ZMSGraphic_extEdit_resize(dest_folder, image_dict['act']['filename'], temp_size[0], temp_size[1], replace_source = True) 1721 1722 image_dict['act']['width'] = temp_info[1] 1723 image_dict['act']['height'] = temp_info[2] 1724 else: 1725 image_dict['act']['height'] = temp_image_dict['height'] 1726 image_dict['act']['width'] = temp_image_dict['width'] 1727 1728 if ((image_dict['img'] is not None) and (image_dict['img'].has_key('filename')) and (image_dict['img']['filename'] is not None)): 1724 1729 # delete old thumb 1725 if (image_dict[' thumb_filename'] in dest_folder.objectIds()):1726 dest_folder.manage_delObjects(image_dict[' thumb_filename'])1730 if (image_dict['img']['filename'] in dest_folder.objectIds()): 1731 dest_folder.manage_delObjects(image_dict['img']['filename']) 1727 1732 # create thumb 1728 dest_folder.manage_addImage(image_dict[' thumb_filename'], image_dict['thumb_data'])1733 dest_folder.manage_addImage(image_dict['img']['filename'], image_dict['img']['data']) 1729 1734 1730 1735 return image_dict … … 1748 1753 return temp_info 1749 1754 1750 def getConfDimensions( ):1755 def getConfDimensions(is_gallery): 1751 1756 temp_result = {} 1752 1757 1753 if ( context.aq_parent.meta_id in ['ZMSGallery']):1758 if (is_gallery): 1754 1759 temp_result['thumb_height'] = int (context.aq_parent.getObjProperty('galleryThumbsMaxHeight', REQUEST)) 1755 1760 temp_result['thumb_width'] = int (context.aq_parent.getObjProperty('galleryThumbsMaxWidth', REQUEST)) … … 1785 1790 return temp_data 1786 1791 1787 def getSourceImageData(conf_dimensions, get_thumb = True): 1788 temp_result = {} 1789 temp_image = context.getObjProperty('imgsuperres', REQUEST) 1792 def getSourceImageData(attr_name, create_it = False, dest_folder = None): 1793 temp_image = context.getObjProperty(attr_name, REQUEST) 1790 1794 1791 1795 if (temp_image is None): 1792 temp_ image = context.getObjProperty('imghires', REQUEST)1796 temp_result = None 1793 1797 else: 1794 temp_result['superres_height'] = temp_image.getHeight() 1795 temp_result['superres_width'] = temp_image.getWidth() 1796 1797 if (temp_image is not None): 1798 temp_result['filename'] = temp_image.getFilename() 1798 temp_result = {} 1799 temp_result['data'] = temp_image.getData() 1800 temp_result['filename'] = temp_image.getFilename() 1799 1801 temp_result['height'] = temp_image.getHeight() 1800 1802 temp_result['width'] = temp_image.getWidth() 1801 temp_result['data'] = temp_image.getData() 1802 1803 temp_image = context.getObjProperty('img', REQUEST) 1804 if ((temp_image is not None) and (get_thumb)): 1805 temp_result['thumb_filename'] = temp_image.getFilename() 1806 temp_result['thumb_height'] = temp_image.getHeight() 1807 temp_result['thumb_width'] = temp_image.getWidth() 1808 temp_result['thumb_data'] = temp_image.getData() 1809 else: 1810 temp_result['thumb_filename'] = None 1811 temp_result['thumb_height'] = conf_dimensions['thumb_height'] 1812 temp_result['thumb_width'] = conf_dimensions['thumb_width'] 1813 temp_result['thumb_data'] = None 1814 else: 1815 temp_result = None 1803 1804 # create image 1805 if (create_it): 1806 dest_folder.manage_addImage(temp_image.getFilename(), temp_image.getData()) 1816 1807 1817 1808 return temp_result … … 1852 1843 elif (temp_action == 'workspace'): 1853 1844 temp_dims = {'thumb_height' : 0, 'thumb_width' : 0, 'workspace' : int (img_info['queue'][-1]['value'])} 1854 temp_source_dict = getSourceImageData(temp_dims, False) 1855 temp_source_dict = createTempImage(dest_folder, temp_source_dict, temp_dims) 1845 1846 temp_source_dict = {} 1847 temp_source_dict['act'] = {} 1848 temp_source_dict['img'] = None 1849 temp_source_dict['imghires'] = getSourceImageData('imghires') 1850 temp_source_dict['imgsuperres'] = getSourceImageData('imgsuperres') 1851 temp_source_dict = createTempImage(dest_folder, temp_source_dict, temp_dims) 1856 1852 1857 1853 img_info['queue'] = [{'action' : 'create', 1858 1854 'value' : 'null', 1859 'filename' : temp_source_dict[' filename'],1860 'url' : '%s/%s'%(dest_folder.absolute_url(), temp_source_dict[' filename']),1861 'width' : temp_source_dict[' width'],1862 'height' : temp_source_dict[' height']}]1855 'filename' : temp_source_dict['act']['filename'], 1856 'url' : '%s/%s'%(dest_folder.absolute_url(), temp_source_dict['act']['filename']), 1857 'width' : temp_source_dict['act']['width'], 1858 'height' : temp_source_dict['act']['height']}] 1863 1859 1864 1860 img_info = setThumbInfo(img_info) … … 1917 1913 return img_info 1918 1914 1919 def recreateImages(dest_folder, img_info): 1920 def createImage(attr_name): 1921 temp_image = context.getObjProperty(attr_name, REQUEST) 1922 1923 if (temp_image is not None): 1924 # create image 1925 dest_folder.manage_addImage(temp_image.getFilename(), temp_image.getData()) 1926 1927 temp_result = {'filename' : temp_image.getFilename(), 1928 'height' : temp_image.getHeight(), 1929 'width' : temp_image.getWidth()} 1930 else: 1931 temp_result = None 1932 1933 return temp_result 1934 1915 def recreateImages(dest_folder, img_info, is_gallery = False): 1935 1916 def doTranspose(image_dict, action_list): 1936 1917 if (len(action_list) > 0): … … 1940 1921 context.ZMSGraphic_extEdit_transpose(dest_folder, temp_image_dict['imghires']['filename'], action_list, replace_source = True) 1941 1922 1942 temp_image_dict = {}1943 1923 # delete temp-images 1944 1924 clearGarbage(dest_folder) … … 1946 1926 dest_folder = context.ZMSGraphic_extEdit_getTempFolder(True) 1947 1927 1948 temp_image_dict['imgsuperres'] = createImage('imgsuperres') 1949 temp_image_dict['imghires'] = createImage('imghires') 1928 temp_image_dict = {} 1950 1929 temp_image_dict['img'] = None 1930 temp_image_dict['imgsuperres'] = getSourceImageData('imgsuperres', True, dest_folder) 1931 1932 # create hires from superres 1933 if (temp_image_dict['imgsuperres'] is not None): 1934 temp_size = calcResizeDim(temp_image_dict['imgsuperres']['width'], temp_image_dict['imgsuperres']['height'], img_info['workspace']['width']) 1935 temp_info = context.ZMSGraphic_extEdit_resize(dest_folder, temp_image_dict['imgsuperres']['filename'], temp_size[0], temp_size[1]) 1936 1937 temp_image_dict['imghires'] = {} 1938 temp_image_dict['imghires']['filename'] = temp_info[0] 1939 temp_image_dict['imghires']['height'] = temp_info[2] 1940 temp_image_dict['imghires']['width'] = temp_info[1] 1941 else: 1942 temp_image_dict['imghires'] = getSourceImageData('imghires', True, dest_folder) 1951 1943 1952 1944 if ((temp_image_dict['imghires'] is not None or temp_image_dict['imgsuperres'] is not None) and (img_info is not None)): 1945 if (temp_image_dict['imghires'] is not None): 1946 img_info['workspace']['width'] = int (img_info['workspace']['width']) 1947 temp_hires_max_dim = max(temp_image_dict['imghires']['height'], temp_image_dict['imghires']['width']) 1948 # resize hires if its greater than workspace width 1949 if (((temp_is_gallery) and (temp_hires_max_dim <> img_info['workspace']['width'])) or 1950 ((not temp_is_gallery) and (temp_hires_max_dim > img_info['workspace']['width']))): 1951 temp_size = calcResizeDim(temp_image_dict['imghires']['width'], temp_image_dict['imghires']['height'], img_info['workspace']['width']) 1952 temp_info = context.ZMSGraphic_extEdit_resize(dest_folder, temp_image_dict['imghires']['filename'], temp_size[0], temp_size[1], replace_source = True) 1953 1954 temp_image_dict['imghires']['width'] = temp_info[1] 1955 temp_image_dict['imghires']['height'] = temp_info[2] 1956 1953 1957 # apply edit-actions to hires and/or superres 1954 1958 if (len(img_info['queue']) > 1): … … 1970 1974 # resize image 1971 1975 temp_size = img_info['queue'][i]['value'].split(',') 1972 context.ZMSGraphic_extEdit_resize(dest_folder, temp_image_dict['imghires']['filename'], int (temp_size[0]), int (temp_size[1]) )1976 context.ZMSGraphic_extEdit_resize(dest_folder, temp_image_dict['imghires']['filename'], int (temp_size[0]), int (temp_size[1]), replace_source = True) 1973 1977 # reset action-list 1974 1978 temp_action_list = [] … … 1984 1988 temp_image_dict['img']['width'] = temp_info[1] 1985 1989 1986 if (temp_image_dict['img'] is not None): 1990 if (temp_image_dict['img'] is None): 1991 context.setObjProperty('img', None) 1992 else: 1987 1993 context.setObjProperty('img', getFileData(dest_folder, temp_image_dict['img']['filename'])) 1988 1994 if (temp_image_dict['imghires'] is not None): … … 2011 2017 temp_result = '' 2012 2018 2013 temp_folder = context.ZMSGraphic_extEdit_getTempFolder(True) 2019 temp_folder = context.ZMSGraphic_extEdit_getTempFolder(True) 2020 temp_is_gallery = context.aq_parent.meta_id in ['ZMSGallery'] 2014 2021 2015 2022 if (temp_action is not None): 2016 2023 # button ok pressed 2017 2024 if (temp_action == 'ok'): 2018 recreateImages(temp_folder, optimizeQueue(context.parseXmlString(REQUEST.get('img_info', None))) )2025 recreateImages(temp_folder, optimizeQueue(context.parseXmlString(REQUEST.get('img_info', None))), temp_is_gallery) 2019 2026 2020 2027 clearGarbage(temp_folder) … … 2040 2047 # show edit-form 2041 2048 else: 2042 temp_conf_dims = getConfDimensions() 2043 temp_source_dict = getSourceImageData(temp_conf_dims) 2044 2045 if (temp_source_dict is not None): 2046 temp_max_workspace_width = max(temp_source_dict['height'], temp_source_dict['width']) 2047 temp_source_dict = createTempImage(temp_folder, temp_source_dict, temp_conf_dims) 2048 2049 REQUEST.set('filename', temp_source_dict['filename']) 2050 REQUEST.set('height', temp_source_dict['height']) 2051 REQUEST.set('width', temp_source_dict['width']) 2052 REQUEST.set('thumb_filename', temp_source_dict['thumb_filename']) 2053 REQUEST.set('thumb_height', temp_source_dict['thumb_height']) 2054 REQUEST.set('thumb_width', temp_source_dict['thumb_width']) 2049 temp_conf_dims = getConfDimensions(temp_is_gallery) 2050 2051 temp_source_dict = {} 2052 temp_source_dict['act'] = {} 2053 temp_source_dict['img'] = getSourceImageData('img') 2054 temp_source_dict['imghires'] = getSourceImageData('imghires') 2055 temp_source_dict['imgsuperres'] = getSourceImageData('imgsuperres') 2056 2057 if (temp_source_dict['img'] is None): 2058 temp_source_dict['img'] = {} 2059 temp_source_dict['img']['filename'] = None 2060 temp_source_dict['img']['height'] = temp_conf_dims['thumb_height'] 2061 temp_source_dict['img']['width'] = temp_conf_dims['thumb_width'] 2062 temp_source_dict['img']['data'] = None 2063 2064 if ((temp_source_dict['imghires'] is not None) or (temp_source_dict['imgsuperres'] is not None)): 2065 if (temp_source_dict['imgsuperres'] is not None): 2066 temp_max_workspace_width = max(temp_source_dict['imgsuperres']['height'], temp_source_dict['imgsuperres']['width']) 2067 else: 2068 temp_max_workspace_width = max(temp_source_dict['imghires']['height'], temp_source_dict['imghires']['width']) 2069 2070 if (not temp_is_gallery): 2071 temp_conf_dims['workspace'] = temp_max_workspace_width 2072 2073 temp_source_dict = createTempImage(temp_folder, temp_source_dict, temp_conf_dims) 2074 2075 REQUEST.set('filename', temp_source_dict['act']['filename']) 2076 REQUEST.set('height', temp_source_dict['act']['height']) 2077 REQUEST.set('width', temp_source_dict['act']['width']) 2078 REQUEST.set('thumb_filename', temp_source_dict['img']['filename']) 2079 REQUEST.set('thumb_height', temp_source_dict['img']['height']) 2080 REQUEST.set('thumb_width', temp_source_dict['img']['width']) 2055 2081 2056 2082 REQUEST.set('img_info', temp_source_dict) … … 2094 2120 <item key="name"><![CDATA[ZMSGraphic_extEdit]]></item> 2095 2121 <item key="package"><![CDATA[com.zms.zmsgraphic_extedit]]></item> 2096 <item key="revision"><![CDATA[0.2. 0]]></item>2122 <item key="revision"><![CDATA[0.2.1]]></item> 2097 2123 <item key="type"><![CDATA[ZMSLibrary]]></item> 2098 2124 </dictionary> … … 2125 2151 <item key="name"><![CDATA[com.zms.zmsgraphic_extedit]]></item> 2126 2152 <item key="package"/> 2127 <item key="revision"><![CDATA[0.2. 0]]></item>2153 <item key="revision"><![CDATA[0.2.1]]></item> 2128 2154 <item key="type"><![CDATA[ZMSPackage]]></item> 2129 2155 </dictionary>
Note: See TracChangeset
for help on using the changeset viewer.
