[targetObject]","statusMessages":[],"prevScroll":[0,0],"__LivelyClassName__":"lively.morphic.World"},"1":{"submorphs":[{"__isSmartRef__":true,"id":2},{"__isSmartRef__":true,"id":149},{"__isSmartRef__":true,"id":184}],"scripts":[],"id":550,"shape":{"__isSmartRef__":true,"id":1574},"droppingEnabled":true,"halosEnabled":true,"__layered_draggingEnabled__":true,"layout":{"__isSmartRef__":true,"id":1578},"_Position":{"__isSmartRef__":true,"id":1579},"priorExtent":{"__isSmartRef__":true,"id":1580},"targetMorph":{"__isSmartRef__":true,"id":184},"titleBar":{"__isSmartRef__":true,"id":2},"contentOffset":{"__isSmartRef__":true,"id":1581},"collapsedTransform":null,"collapsedExtent":null,"expandedTransform":null,"expandedExtent":null,"ignoreEventsOnExpand":false,"highlighted":true,"prevDragPos":{"__isSmartRef__":true,"id":1582},"showsHalos":false,"name":"MethodFinder","partsBinMetaInfo":{"__isSmartRef__":true,"id":1583},"__SourceModuleName__":"Global.lively.morphic.Widgets","renderContextTable":{"__isSmartRef__":true,"id":1584},"eventHandler":{"__isSmartRef__":true,"id":1585},"isBeingDragged":false,"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_Rotation":0,"_Scale":1,"prevScroll":[0,0],"owner":{"__isSmartRef__":true,"id":0},"__LivelyClassName__":"lively.morphic.Window","withoutLayers":["Global.lively.morphic.GrabbingLayer"]},"2":{"submorphs":[{"__isSmartRef__":true,"id":3},{"__isSmartRef__":true,"id":17},{"__isSmartRef__":true,"id":63},{"__isSmartRef__":true,"id":97}],"scripts":[],"id":551,"shape":{"__isSmartRef__":true,"id":132},"droppingEnabled":true,"halosEnabled":true,"layout":{"__isSmartRef__":true,"id":144},"_Position":{"__isSmartRef__":true,"id":145},"eventsAreIgnored":true,"windowMorph":{"__isSmartRef__":true,"id":1},"label":{"__isSmartRef__":true,"id":3},"closeButton":{"__isSmartRef__":true,"id":17},"menuButton":{"__isSmartRef__":true,"id":63},"collapseButton":{"__isSmartRef__":true,"id":97},"priorExtent":{"__isSmartRef__":true,"id":146},"owner":{"__isSmartRef__":true,"id":1},"__SourceModuleName__":"Global.lively.morphic.Widgets","renderContextTable":{"__isSmartRef__":true,"id":147},"eventHandler":{"__isSmartRef__":true,"id":148},"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"__LivelyClassName__":"lively.morphic.TitleBar"},"3":{"submorphs":[],"scripts":[],"id":552,"shape":{"__isSmartRef__":true,"id":4},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Padding":{"__isSmartRef__":true,"id":10},"_ClipMode":"hidden","fixedWidth":false,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_Position":{"__isSmartRef__":true,"id":11},"priorExtent":{"__isSmartRef__":true,"id":12},"_MaxTextWidth":null,"_MaxTextHeight":null,"textChunks":[{"__isSmartRef__":true,"id":13}],"evalEnabled":false,"isLabel":true,"eventsAreIgnored":true,"_FontSize":10,"owner":{"__isSmartRef__":true,"id":2},"__SourceModuleName__":"Global.lively.morphic.TextCore","renderContextTable":{"__isSmartRef__":true,"id":15},"eventHandler":{"__isSmartRef__":true,"id":16},"_HandStyle":"default","_PointerEvents":"none","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_MinTextWidth":null,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"4":{"_Position":{"__isSmartRef__":true,"id":5},"_Extent":{"__isSmartRef__":true,"id":6},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":7},"_Fill":null,"_BorderRadius":0,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":8},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":9},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"5":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"6":{"x":837.4170420843768,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"7":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"8":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"9":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"10":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"11":{"x":20,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"12":{"x":837.4170420843768,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"13":{"style":{"__isSmartRef__":true,"id":14},"morph":{"__isSmartRef__":true,"id":3},"__SourceModuleName__":"Global.lively.morphic.TextCore","chunkOwner":{"__isSmartRef__":true,"id":3},"storedString":"MethodFinder","__LivelyClassName__":"lively.morphic.TextChunk"},"14":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"15":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"16":{"morph":{"__isSmartRef__":true,"id":3},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"17":{"submorphs":[{"__isSmartRef__":true,"id":18}],"scripts":[],"id":553,"shape":{"__isSmartRef__":true,"id":31},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":47},"priorExtent":{"__isSmartRef__":true,"id":48},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":35},"lighterFill":{"__isSmartRef__":true,"id":49},"label":{"__isSmartRef__":true,"id":18},"owner":{"__isSmartRef__":true,"id":2},"layout":{"__isSmartRef__":true,"id":58},"attributeConnections":[{"__isSmartRef__":true,"id":59},{"__isSmartRef__":true,"id":60}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","renderContextTable":{"__isSmartRef__":true,"id":61},"eventHandler":{"__isSmartRef__":true,"id":62},"__LivelyClassName__":"lively.morphic.WindowControl"},"18":{"submorphs":[],"scripts":[],"id":554,"shape":{"__isSmartRef__":true,"id":19},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Padding":{"__isSmartRef__":true,"id":24},"_ClipMode":"hidden","fixedWidth":false,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_Position":{"__isSmartRef__":true,"id":25},"priorExtent":{"__isSmartRef__":true,"id":26},"_MaxTextWidth":null,"_MaxTextHeight":null,"textChunks":[{"__isSmartRef__":true,"id":27}],"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":17},"isLabel":true,"eventsAreIgnored":true,"_FontSize":8,"__SourceModuleName__":"Global.lively.morphic.TextCore","renderContextTable":{"__isSmartRef__":true,"id":29},"eventHandler":{"__isSmartRef__":true,"id":30},"_HandStyle":"default","_PointerEvents":"none","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_MinTextWidth":null,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"19":{"_Position":{"__isSmartRef__":true,"id":20},"_Extent":{"__isSmartRef__":true,"id":21},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":7},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":22},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":23},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"20":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"21":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"22":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"23":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"24":{"x":5,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"25":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"26":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"27":{"style":{"__isSmartRef__":true,"id":28},"morph":{"__isSmartRef__":true,"id":18},"__SourceModuleName__":"Global.lively.morphic.TextCore","chunkOwner":{"__isSmartRef__":true,"id":18},"storedString":"X","__LivelyClassName__":"lively.morphic.TextChunk"},"28":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"29":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"30":{"morph":{"__isSmartRef__":true,"id":18},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"31":{"_Position":{"__isSmartRef__":true,"id":32},"_Extent":{"__isSmartRef__":true,"id":33},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":34},"_Fill":{"__isSmartRef__":true,"id":35},"_StrokeOpacity":0,"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":45},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":46},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"32":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"33":{"x":17,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"34":{"r":0.8392156862745098,"g":0.8392156862745098,"b":0.8392156862745098,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"35":{"stops":[{"__isSmartRef__":true,"id":36},{"__isSmartRef__":true,"id":38},{"__isSmartRef__":true,"id":40},{"__isSmartRef__":true,"id":42}],"vector":{"__isSmartRef__":true,"id":44},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"36":{"offset":0,"color":{"__isSmartRef__":true,"id":37}},"37":{"r":0.9600000000000001,"g":0.9600000000000001,"b":0.9600000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"38":{"offset":0.4,"color":{"__isSmartRef__":true,"id":39}},"39":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"40":{"offset":0.6,"color":{"__isSmartRef__":true,"id":41}},"41":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"42":{"offset":1,"color":{"__isSmartRef__":true,"id":43}},"43":{"r":0.94,"g":0.94,"b":0.94,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"44":{"x":0,"y":0,"width":0,"height":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"45":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"46":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"47":{"x":876.4170420843768,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"48":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"49":{"stops":[{"__isSmartRef__":true,"id":50},{"__isSmartRef__":true,"id":52},{"__isSmartRef__":true,"id":54},{"__isSmartRef__":true,"id":56}],"vector":{"__isSmartRef__":true,"id":44},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"50":{"offset":0,"color":{"__isSmartRef__":true,"id":51}},"51":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"52":{"offset":0.4,"color":{"__isSmartRef__":true,"id":53}},"53":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"54":{"offset":0.6,"color":{"__isSmartRef__":true,"id":55}},"55":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"56":{"offset":1,"color":{"__isSmartRef__":true,"id":57}},"57":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"58":{"moveHorizontal":true},"59":{"sourceObj":{"__isSmartRef__":true,"id":17},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":1},"targetMethodName":"getCloseHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"60":{"sourceObj":{"__isSmartRef__":true,"id":17},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1},"targetMethodName":"initiateShutdown","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"61":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"62":{"morph":{"__isSmartRef__":true,"id":17},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"63":{"submorphs":[{"__isSmartRef__":true,"id":64}],"scripts":[],"id":555,"shape":{"__isSmartRef__":true,"id":77},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":82},"priorExtent":{"__isSmartRef__":true,"id":83},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":35},"lighterFill":{"__isSmartRef__":true,"id":84},"label":{"__isSmartRef__":true,"id":64},"owner":{"__isSmartRef__":true,"id":2},"attributeConnections":[{"__isSmartRef__":true,"id":93},{"__isSmartRef__":true,"id":94}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","renderContextTable":{"__isSmartRef__":true,"id":95},"eventHandler":{"__isSmartRef__":true,"id":96},"__LivelyClassName__":"lively.morphic.WindowControl"},"64":{"submorphs":[],"scripts":[],"id":556,"shape":{"__isSmartRef__":true,"id":65},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Padding":{"__isSmartRef__":true,"id":70},"_ClipMode":"hidden","fixedWidth":false,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_Position":{"__isSmartRef__":true,"id":71},"priorExtent":{"__isSmartRef__":true,"id":72},"_MaxTextWidth":null,"_MaxTextHeight":null,"textChunks":[{"__isSmartRef__":true,"id":73}],"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":63},"isLabel":true,"eventsAreIgnored":true,"_FontSize":8,"__SourceModuleName__":"Global.lively.morphic.TextCore","renderContextTable":{"__isSmartRef__":true,"id":75},"eventHandler":{"__isSmartRef__":true,"id":76},"_HandStyle":"default","_PointerEvents":"none","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_MinTextWidth":null,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"65":{"_Position":{"__isSmartRef__":true,"id":66},"_Extent":{"__isSmartRef__":true,"id":67},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":7},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":68},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":69},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"66":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"67":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"68":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"69":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"70":{"x":5,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"71":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"72":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"73":{"style":{"__isSmartRef__":true,"id":74},"morph":{"__isSmartRef__":true,"id":64},"__SourceModuleName__":"Global.lively.morphic.TextCore","chunkOwner":{"__isSmartRef__":true,"id":64},"storedString":"M","__LivelyClassName__":"lively.morphic.TextChunk"},"74":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"75":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"76":{"morph":{"__isSmartRef__":true,"id":64},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"77":{"_Position":{"__isSmartRef__":true,"id":78},"_Extent":{"__isSmartRef__":true,"id":79},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":34},"_Fill":{"__isSmartRef__":true,"id":35},"_StrokeOpacity":0,"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":80},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":81},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"78":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"79":{"x":17,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"80":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"81":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"82":{"x":3,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"83":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"84":{"stops":[{"__isSmartRef__":true,"id":85},{"__isSmartRef__":true,"id":87},{"__isSmartRef__":true,"id":89},{"__isSmartRef__":true,"id":91}],"vector":{"__isSmartRef__":true,"id":44},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"85":{"offset":0,"color":{"__isSmartRef__":true,"id":86}},"86":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"87":{"offset":0.4,"color":{"__isSmartRef__":true,"id":88}},"88":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"89":{"offset":0.6,"color":{"__isSmartRef__":true,"id":90}},"90":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"91":{"offset":1,"color":{"__isSmartRef__":true,"id":92}},"92":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"93":{"sourceObj":{"__isSmartRef__":true,"id":63},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":1},"targetMethodName":"getMenuHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"94":{"sourceObj":{"__isSmartRef__":true,"id":63},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1},"targetMethodName":"showTargetMorphMenu","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"95":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"96":{"morph":{"__isSmartRef__":true,"id":63},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"97":{"submorphs":[{"__isSmartRef__":true,"id":98}],"scripts":[],"id":557,"shape":{"__isSmartRef__":true,"id":111},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":116},"priorExtent":{"__isSmartRef__":true,"id":117},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":35},"lighterFill":{"__isSmartRef__":true,"id":118},"label":{"__isSmartRef__":true,"id":98},"owner":{"__isSmartRef__":true,"id":2},"layout":{"__isSmartRef__":true,"id":127},"attributeConnections":[{"__isSmartRef__":true,"id":128},{"__isSmartRef__":true,"id":129}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","renderContextTable":{"__isSmartRef__":true,"id":130},"eventHandler":{"__isSmartRef__":true,"id":131},"__LivelyClassName__":"lively.morphic.WindowControl"},"98":{"submorphs":[],"scripts":[],"id":558,"shape":{"__isSmartRef__":true,"id":99},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Padding":{"__isSmartRef__":true,"id":104},"_ClipMode":"hidden","fixedWidth":false,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_Position":{"__isSmartRef__":true,"id":105},"priorExtent":{"__isSmartRef__":true,"id":106},"_MaxTextWidth":null,"_MaxTextHeight":null,"textChunks":[{"__isSmartRef__":true,"id":107}],"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":97},"isLabel":true,"eventsAreIgnored":true,"_FontSize":8,"__SourceModuleName__":"Global.lively.morphic.TextCore","renderContextTable":{"__isSmartRef__":true,"id":109},"eventHandler":{"__isSmartRef__":true,"id":110},"_HandStyle":"default","_PointerEvents":"none","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_MinTextWidth":null,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"99":{"_Position":{"__isSmartRef__":true,"id":100},"_Extent":{"__isSmartRef__":true,"id":101},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":7},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":102},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":103},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"100":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"101":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"102":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"103":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"104":{"x":5,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"105":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"106":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"107":{"style":{"__isSmartRef__":true,"id":108},"morph":{"__isSmartRef__":true,"id":98},"__SourceModuleName__":"Global.lively.morphic.TextCore","chunkOwner":{"__isSmartRef__":true,"id":98},"storedString":"–","__LivelyClassName__":"lively.morphic.TextChunk"},"108":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"109":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"110":{"morph":{"__isSmartRef__":true,"id":98},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"111":{"_Position":{"__isSmartRef__":true,"id":112},"_Extent":{"__isSmartRef__":true,"id":113},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":34},"_Fill":{"__isSmartRef__":true,"id":35},"_StrokeOpacity":0,"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":114},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":115},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"112":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"113":{"x":17,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"114":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"115":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"116":{"x":857.4170420843768,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"117":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"118":{"stops":[{"__isSmartRef__":true,"id":119},{"__isSmartRef__":true,"id":121},{"__isSmartRef__":true,"id":123},{"__isSmartRef__":true,"id":125}],"vector":{"__isSmartRef__":true,"id":44},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"119":{"offset":0,"color":{"__isSmartRef__":true,"id":120}},"120":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"121":{"offset":0.4,"color":{"__isSmartRef__":true,"id":122}},"122":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"123":{"offset":0.6,"color":{"__isSmartRef__":true,"id":124}},"124":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"125":{"offset":1,"color":{"__isSmartRef__":true,"id":126}},"126":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"127":{"moveHorizontal":true},"128":{"sourceObj":{"__isSmartRef__":true,"id":97},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":1},"targetMethodName":"getCollapseHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"129":{"sourceObj":{"__isSmartRef__":true,"id":97},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1},"targetMethodName":"toggleCollapse","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"130":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"131":{"morph":{"__isSmartRef__":true,"id":97},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"132":{"_Position":{"__isSmartRef__":true,"id":133},"_Extent":{"__isSmartRef__":true,"id":134},"_BorderWidth":2,"_BorderColor":{"__isSmartRef__":true,"id":135},"_Fill":{"__isSmartRef__":true,"id":136},"_StrokeOpacity":1,"_BorderRadius":"8px 8px 0px 0px","__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":142},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":143},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"133":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"134":{"x":896.4170420843768,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"135":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"136":{"stops":[{"__isSmartRef__":true,"id":137},{"__isSmartRef__":true,"id":139}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"137":{"offset":0,"color":{"__isSmartRef__":true,"id":138}},"138":{"r":1,"g":1,"b":1,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"139":{"offset":1,"color":{"__isSmartRef__":true,"id":140}},"140":{"r":0.6400000000000001,"g":0.6400000000000001,"b":0.6400000000000001,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"141":{"x":0,"y":0,"width":0,"height":1,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"142":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"143":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"144":{"resizeWidth":true,"adjustForNewBounds":true},"145":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"146":{"x":896.4170420843768,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"147":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"148":{"morph":{"__isSmartRef__":true,"id":2},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"149":{"submorphs":[],"scripts":[],"id":559,"shape":{"__isSmartRef__":true,"id":150},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":157},"showsHalos":false,"name":"ResizeCorner2","partsBinMetaInfo":{"__isSmartRef__":true,"id":158},"__SourceModuleName__":"Global.lively.morphic.Core","__layered_draggingEnabled__":true,"dragStartPoint":null,"originalExtent":{"__isSmartRef__":true,"id":159},"originalTargetExtent":null,"owner":{"__isSmartRef__":true,"id":1},"renderContextTable":{"__isSmartRef__":true,"id":160},"eventHandler":{"__isSmartRef__":true,"id":161},"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_Rotation":0,"_Scale":1.0000000000000002,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":162},"__LivelyClassName__":"lively.morphic.Box"},"150":{"position":{"__isSmartRef__":true,"id":151},"_Extent":{"__isSmartRef__":true,"id":152},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":153},"_Fill":{"__isSmartRef__":true,"id":154},"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":155},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":156},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"151":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"152":{"x":13,"y":15,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"153":{"r":0.568,"g":0.568,"b":0.568,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"154":{"r":0.258,"g":0.258,"b":0.258,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"155":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"156":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"157":{"x":883.4170420843768,"y":492.002005010021,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"158":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","migrationLevel":2,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"159":{"x":239,"y":138,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"160":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"161":{"morph":{"__isSmartRef__":true,"id":149},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"162":{"onDrag":{"__isSmartRef__":true,"id":163},"onDragEnd":{"__isSmartRef__":true,"id":170},"onDragStart":{"__isSmartRef__":true,"id":177}},"163":{"varMapping":{"__isSmartRef__":true,"id":164},"source":"function onDrag(evt) {\n\t// alert(\"onDrag\")\n\t\tvar moveDelta = evt.mousePoint.subPt(this.dragStartPoint)\n\t\tif (evt.isShiftDown()) {\n\t\t\tvar maxDelta = Math.max(moveDelta.x, moveDelta.y);\n\t\t\tmoveDelta = pt(maxDelta, maxDelta);\n\t\t}\n\t\tthis.owner.setExtent(this.originalTargetExtent.addPt(moveDelta));\n\t\tthis.align(this.bounds().bottomRight(), this.owner.getExtent())\n}","funcProperties":{"__isSmartRef__":true,"id":169},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"164":{"this":{"__isSmartRef__":true,"id":149},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":165}},"165":{"$super":{"__isSmartRef__":true,"id":166}},"166":{"varMapping":{"__isSmartRef__":true,"id":167},"source":"function () {\n\t\t\t\ttry {\n\t\t\t\t\treturn obj.constructor.prototype[name].apply(obj, arguments)\n\t\t\t\t} catch(e) {\n\t\t\t\t\talert('Error in $super call: ' + e + '\\n' + e.stack);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}","funcProperties":{"__isSmartRef__":true,"id":168},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"167":{"obj":{"__isSmartRef__":true,"id":149},"name":"onDrag"},"168":{},"169":{},"170":{"varMapping":{"__isSmartRef__":true,"id":171},"source":"function onDragEnd(evt) {\n\tthis.dragStartPoint = null;\n\tthis.originalTargetExtent = null;\n}","funcProperties":{"__isSmartRef__":true,"id":176},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"171":{"this":{"__isSmartRef__":true,"id":149},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":172}},"172":{"$super":{"__isSmartRef__":true,"id":173}},"173":{"varMapping":{"__isSmartRef__":true,"id":174},"source":"function () {\n\t\t\t\ttry {\n\t\t\t\t\treturn obj.constructor.prototype[name].apply(obj, arguments)\n\t\t\t\t} catch(e) {\n\t\t\t\t\talert('Error in $super call: ' + e + '\\n' + e.stack);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}","funcProperties":{"__isSmartRef__":true,"id":175},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"174":{"obj":{"__isSmartRef__":true,"id":149},"name":"onDragEnd"},"175":{},"176":{},"177":{"varMapping":{"__isSmartRef__":true,"id":178},"source":"function onDragStart(evt) {\n\tthis.dragStartPoint = evt.mousePoint;\n\tthis.originalTargetExtent = this.owner.getExtent();\n}","funcProperties":{"__isSmartRef__":true,"id":183},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"178":{"this":{"__isSmartRef__":true,"id":149},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":179}},"179":{"$super":{"__isSmartRef__":true,"id":180}},"180":{"varMapping":{"__isSmartRef__":true,"id":181},"source":"function () {\n\t\t\t\ttry {\n\t\t\t\t\treturn obj.constructor.prototype[name].apply(obj, arguments)\n\t\t\t\t} catch(e) {\n\t\t\t\t\talert('Error in $super call: ' + e + '\\n' + e.stack);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}","funcProperties":{"__isSmartRef__":true,"id":182},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"181":{"obj":{"__isSmartRef__":true,"id":149},"name":"onDragStart"},"182":{},"183":{},"184":{"submorphs":[{"__isSmartRef__":true,"id":185},{"__isSmartRef__":true,"id":200},{"__isSmartRef__":true,"id":247},{"__isSmartRef__":true,"id":1378},{"__isSmartRef__":true,"id":1463},{"__isSmartRef__":true,"id":1478}],"scripts":[],"id":560,"shape":{"__isSmartRef__":true,"id":1525},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":1531},"showsHalos":false,"name":"MethodFinderPane","partsBinMetaInfo":{"__isSmartRef__":true,"id":1532},"__SourceModuleName__":"Global.lively.morphic.Core","owner":{"__isSmartRef__":true,"id":1},"isCopyMorphRef":true,"morphRefId":1,"layout":{"__isSmartRef__":true,"id":1533},"priorExtent":{"__isSmartRef__":true,"id":1534},"renderContextTable":{"__isSmartRef__":true,"id":1535},"eventHandler":{"__isSmartRef__":true,"id":1536},"scriptAnnotations":{"__isSmartRef__":true,"id":1537},"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_Rotation":0,"_Scale":1,"prevScroll":[0,0],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1546},"__LivelyClassName__":"lively.morphic.Box"},"185":{"submorphs":[],"scripts":[],"id":561,"shape":{"__isSmartRef__":true,"id":186},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":192},"_MaxTextWidth":290,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":189},"showsHalos":false,"_FontSize":14,"__SourceModuleName__":"Global.lively.morphic.TextCore","name":"searchText","partsBinMetaInfo":{"__isSmartRef__":true,"id":193},"owner":{"__isSmartRef__":true,"id":184},"charsReplaced":"selection","lastFindLoc":9,"attributeConnections":[{"__isSmartRef__":true,"id":194}],"doNotSerialize":["$$savedTextString"],"doNotCopyProperties":["$$savedTextString"],"isInputLine":true,"_WhiteSpaceHandling":"pre-wrap","allowInput":true,"textChunks":[{"__isSmartRef__":true,"id":195}],"priorSelectionRange":[1,1],"prevScroll":[0,0],"_ClipMode":"hidden","priorExtent":{"__isSmartRef__":true,"id":197},"lastSearchString":"prev","renderContextTable":{"__isSmartRef__":true,"id":198},"eventHandler":{"__isSmartRef__":true,"id":199},"_Rotation":0,"_MinTextWidth":290,"_MinTextHeight":null,"previousSelection":[3,3],"savedTextString":"WebResource","__LivelyClassName__":"lively.morphic.Text"},"186":{"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":187},"_Extent":{"__isSmartRef__":true,"id":188},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":189},"renderContextTable":{"__isSmartRef__":true,"id":190},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":191},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"187":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"188":{"x":292,"y":25,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"189":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"190":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"191":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"192":{"x":17,"y":24,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"193":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"194":{"sourceObj":{"__isSmartRef__":true,"id":185},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":184},"targetMethodName":"search","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"195":{"style":{"__isSmartRef__":true,"id":196},"chunkOwner":{"__isSmartRef__":true,"id":185},"storedString":"WebResource","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"196":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"197":{"x":292,"y":25,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"198":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"199":{"morph":{"__isSmartRef__":true,"id":185},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"200":{"submorphs":[{"__isSmartRef__":true,"id":201}],"scripts":[],"id":562,"shape":{"__isSmartRef__":true,"id":216},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":232},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":220},"lighterFill":{"__isSmartRef__":true,"id":233},"label":{"__isSmartRef__":true,"id":201},"showsHalos":false,"name":"searchButton","partsBinMetaInfo":{"__isSmartRef__":true,"id":242},"__SourceModuleName__":"Global.lively.morphic.Widgets","owner":{"__isSmartRef__":true,"id":184},"attributeConnections":[{"__isSmartRef__":true,"id":243}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"priorExtent":{"__isSmartRef__":true,"id":244},"renderContextTable":{"__isSmartRef__":true,"id":245},"eventHandler":{"__isSmartRef__":true,"id":246},"_Rotation":0,"__LivelyClassName__":"lively.morphic.Button"},"201":{"submorphs":[],"scripts":[],"id":563,"shape":{"__isSmartRef__":true,"id":202},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":208},"_MaxTextWidth":77,"_MaxTextHeight":null,"padding":{"__isSmartRef__":true,"id":209},"_Padding":{"__isSmartRef__":true,"id":210},"owner":{"__isSmartRef__":true,"id":200},"isLabel":true,"eventsAreIgnored":true,"__SourceModuleName__":"Global.lively.morphic.TextCore","textStyle":null,"textChunks":[{"__isSmartRef__":true,"id":211}],"prevScroll":[0,0],"_ClipMode":"hidden","priorExtent":{"__isSmartRef__":true,"id":213},"_Align":"center","renderContextTable":{"__isSmartRef__":true,"id":214},"eventHandler":{"__isSmartRef__":true,"id":215},"_HandStyle":"default","_PointerEvents":"none","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_MinTextWidth":77,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"202":{"position":{"__isSmartRef__":true,"id":203},"_Extent":{"__isSmartRef__":true,"id":204},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":205},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":206},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":207},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"203":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"204":{"x":77,"y":20,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"205":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"206":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"207":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"208":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"209":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"210":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"211":{"style":{"__isSmartRef__":true,"id":212},"morph":{"__isSmartRef__":true,"id":201},"__SourceModuleName__":"Global.lively.morphic.TextCore","chunkOwner":{"__isSmartRef__":true,"id":201},"storedString":"search","__LivelyClassName__":"lively.morphic.TextChunk"},"212":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"213":{"x":77,"y":20,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"214":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"215":{"morph":{"__isSmartRef__":true,"id":201},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"216":{"position":{"__isSmartRef__":true,"id":217},"_Extent":{"__isSmartRef__":true,"id":218},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":219},"_Fill":{"__isSmartRef__":true,"id":220},"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":230},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":231},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"217":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"218":{"x":77,"y":20,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"219":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"220":{"stops":[{"__isSmartRef__":true,"id":221},{"__isSmartRef__":true,"id":223},{"__isSmartRef__":true,"id":225},{"__isSmartRef__":true,"id":227}],"vector":{"__isSmartRef__":true,"id":229},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"221":{"offset":0,"color":{"__isSmartRef__":true,"id":222}},"222":{"r":0.9600000000000001,"g":0.9600000000000001,"b":0.9600000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"223":{"offset":0.4,"color":{"__isSmartRef__":true,"id":224}},"224":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"225":{"offset":0.6,"color":{"__isSmartRef__":true,"id":226}},"226":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"227":{"offset":1,"color":{"__isSmartRef__":true,"id":228}},"228":{"r":0.94,"g":0.94,"b":0.94,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"229":{"x":0,"y":0,"width":0,"height":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"230":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"231":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"232":{"x":315,"y":26,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"233":{"stops":[{"__isSmartRef__":true,"id":234},{"__isSmartRef__":true,"id":236},{"__isSmartRef__":true,"id":238},{"__isSmartRef__":true,"id":240}],"vector":{"__isSmartRef__":true,"id":229},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"234":{"offset":0,"color":{"__isSmartRef__":true,"id":235}},"235":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"236":{"offset":0.4,"color":{"__isSmartRef__":true,"id":237}},"237":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"238":{"offset":0.6,"color":{"__isSmartRef__":true,"id":239}},"239":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"240":{"offset":1,"color":{"__isSmartRef__":true,"id":241}},"241":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"242":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"243":{"sourceObj":{"__isSmartRef__":true,"id":200},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":185},"targetMethodName":"doSave","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"244":{"x":77,"y":21,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"245":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"246":{"morph":{"__isSmartRef__":true,"id":200},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"247":{"submorphs":[],"scripts":[],"id":564,"shape":{"__isSmartRef__":true,"id":248},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":255},"itemList":[{"__isSmartRef__":true,"id":256},{"__isSmartRef__":true,"id":259},{"__isSmartRef__":true,"id":261},{"__isSmartRef__":true,"id":264},{"__isSmartRef__":true,"id":268},{"__isSmartRef__":true,"id":270},{"__isSmartRef__":true,"id":273},{"__isSmartRef__":true,"id":275},{"__isSmartRef__":true,"id":278},{"__isSmartRef__":true,"id":280},{"__isSmartRef__":true,"id":283},{"__isSmartRef__":true,"id":286},{"__isSmartRef__":true,"id":290},{"__isSmartRef__":true,"id":292},{"__isSmartRef__":true,"id":294},{"__isSmartRef__":true,"id":296},{"__isSmartRef__":true,"id":299},{"__isSmartRef__":true,"id":302},{"__isSmartRef__":true,"id":305},{"__isSmartRef__":true,"id":307},{"__isSmartRef__":true,"id":309},{"__isSmartRef__":true,"id":311},{"__isSmartRef__":true,"id":329},{"__isSmartRef__":true,"id":332},{"__isSmartRef__":true,"id":334},{"__isSmartRef__":true,"id":336},{"__isSmartRef__":true,"id":338},{"__isSmartRef__":true,"id":340},{"__isSmartRef__":true,"id":342},{"__isSmartRef__":true,"id":344},{"__isSmartRef__":true,"id":349},{"__isSmartRef__":true,"id":352},{"__isSmartRef__":true,"id":354},{"__isSmartRef__":true,"id":357},{"__isSmartRef__":true,"id":361},{"__isSmartRef__":true,"id":363},{"__isSmartRef__":true,"id":365},{"__isSmartRef__":true,"id":368},{"__isSmartRef__":true,"id":370},{"__isSmartRef__":true,"id":372},{"__isSmartRef__":true,"id":374},{"__isSmartRef__":true,"id":376},{"__isSmartRef__":true,"id":378},{"__isSmartRef__":true,"id":382},{"__isSmartRef__":true,"id":384},{"__isSmartRef__":true,"id":386},{"__isSmartRef__":true,"id":388},{"__isSmartRef__":true,"id":390},{"__isSmartRef__":true,"id":392},{"__isSmartRef__":true,"id":394},{"__isSmartRef__":true,"id":396},{"__isSmartRef__":true,"id":398},{"__isSmartRef__":true,"id":400},{"__isSmartRef__":true,"id":1366},{"__isSmartRef__":true,"id":1368},{"__isSmartRef__":true,"id":1370}],"showsHalos":false,"name":"searchResultList","partsBinMetaInfo":{"__isSmartRef__":true,"id":1372},"__SourceModuleName__":"Global.lively.morphic.Core","owner":{"__isSmartRef__":true,"id":184},"attributeConnections":[{"__isSmartRef__":true,"id":1373}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"prevScroll":[0,576],"resizeHeight":true,"resizeWidth":true,"layout":{"__isSmartRef__":true,"id":1374},"priorExtent":{"__isSmartRef__":true,"id":1375},"renderContextTable":{"__isSmartRef__":true,"id":1376},"eventHandler":{"__isSmartRef__":true,"id":1377},"_Rotation":0,"selection":{"__isSmartRef__":true,"id":1371},"selectedLineNo":55,"__LivelyClassName__":"lively.morphic.List"},"248":{"position":{"__isSmartRef__":true,"id":249},"_Extent":{"__isSmartRef__":true,"id":250},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":251},"_Fill":{"__isSmartRef__":true,"id":252},"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":253},"_Padding":{"__isSmartRef__":true,"id":254},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"249":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"250":{"x":875.3800299912526,"y":145.98799096394293,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"251":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"252":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"253":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"254":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"255":{"x":8,"y":60,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"256":{"isListItem":true,"value":{"__isSmartRef__":true,"id":257},"string":"class full: AddNewFileCommand: createModuleFile"},"257":{"object":{"__isSmartRef__":true,"id":258},"method":"createModuleFile","string":"AddNewFileCommand: createModuleFile","type":"class","search":"sender"},"258":{"__LivelyClassName__":"lively.ide.AddNewFileCommand","__SourceModuleName__":"Global.lively.ide.BrowserCommands"},"259":{"isListItem":true,"value":{"__isSmartRef__":true,"id":260},"string":"class full: AddNewFileCommand: createNamespaceDir"},"260":{"object":{"__isSmartRef__":true,"id":258},"method":"createNamespaceDir","string":"AddNewFileCommand: createNamespaceDir","type":"class","search":"sender"},"261":{"isListItem":true,"value":{"__isSmartRef__":true,"id":262},"string":"class full: AnotherCodeMarkupParser: getDocumentOf"},"262":{"object":{"__isSmartRef__":true,"id":263},"method":"getDocumentOf","string":"AnotherCodeMarkupParser: getDocumentOf","type":"class","search":"sender"},"263":{"changeClasses":[],"__LivelyClassName__":"AnotherCodeMarkupParser","__SourceModuleName__":"Global.lively.ChangeSet"},"264":{"isListItem":true,"value":{"__isSmartRef__":true,"id":265},"string":"class full: AnotherSourceDatabase: interestingLKFileNames"},"265":{"object":{"__isSmartRef__":true,"id":266},"method":"interestingLKFileNames","string":"AnotherSourceDatabase: interestingLKFileNames","type":"class","search":"sender"},"266":{"codeBaseURL":{"__isSmartRef__":true,"id":267},"doNotSerialize":["registeredBrowsers","modules"],"__LivelyClassName__":"AnotherSourceDatabase","__SourceModuleName__":"Global.lively.ide.SourceDatabase"},"267":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"268":{"isListItem":true,"value":{"__isSmartRef__":true,"id":269},"string":"class full: AnotherSourceDatabase: switchCodeBase"},"269":{"object":{"__isSmartRef__":true,"id":266},"method":"switchCodeBase","string":"AnotherSourceDatabase: switchCodeBase","type":"class","search":"sender"},"270":{"isListItem":true,"value":{"__isSmartRef__":true,"id":271},"string":"class full: ChangeSet: initializeFromFile"},"271":{"object":{"__isSmartRef__":true,"id":272},"method":"initializeFromFile","string":"ChangeSet: initializeFromFile","type":"class","search":"sender"},"272":{"__LivelyClassName__":"ChangeSet","__SourceModuleName__":"Global.lively.ChangeSet"},"273":{"isListItem":true,"value":{"__isSmartRef__":true,"id":274},"string":"class full: ChangeSet: moduleNamesInNamespace"},"274":{"object":{"__isSmartRef__":true,"id":272},"method":"moduleNamesInNamespace","string":"ChangeSet: moduleNamesInNamespace","type":"class","search":"sender"},"275":{"isListItem":true,"value":{"__isSmartRef__":true,"id":276},"string":"class full: CombinedModulesFileParser: getCombinedModulesContent"},"276":{"object":{"__isSmartRef__":true,"id":277},"method":"getCombinedModulesContent","string":"CombinedModulesFileParser: getCombinedModulesContent","type":"class","search":"sender"},"277":{"combinedModulesFile":"generated/combinedModules.js","__LivelyClassName__":"lively.ide.CombinedModulesFileParser","__SourceModuleName__":"Global.lively.ide"},"278":{"isListItem":true,"value":{"__isSmartRef__":true,"id":279},"string":"class full: CombinedModulesFileParser: transformFileLineAndCharPosReference"},"279":{"object":{"__isSmartRef__":true,"id":277},"method":"transformFileLineAndCharPosReference","string":"CombinedModulesFileParser: transformFileLineAndCharPosReference","type":"class","search":"sender"},"280":{"isListItem":true,"value":{"__isSmartRef__":true,"id":281},"string":"class full: Examples: showSlideWorld"},"281":{"object":{"__isSmartRef__":true,"id":282},"method":"showSlideWorld","string":"Examples: showSlideWorld","type":"class","search":"sender"},"282":{"__LivelyClassName__":"lively.Main.Examples","__SourceModuleName__":"Global.lively.Main"},"283":{"isListItem":true,"value":{"__isSmartRef__":true,"id":284},"string":"class full: FileUploader: uploadBinary"},"284":{"object":{"__isSmartRef__":true,"id":285},"method":"uploadBinary","string":"FileUploader: uploadBinary","type":"class","search":"sender"},"285":{"__LivelyClassName__":"lively.FileUploader","__SourceModuleName__":"Global.lively.morphic.Events"},"286":{"isListItem":true,"value":{"__isSmartRef__":true,"id":287},"string":"class full: FileVersionViewer: fetchSelectedVersionAndDo"},"287":{"object":{"__isSmartRef__":true,"id":288},"method":"fetchSelectedVersionAndDo","string":"FileVersionViewer: fetchSelectedVersionAndDo","type":"class","search":"sender"},"288":{"viewTitle":"Version Viewer","initialViewExtent":{"__isSmartRef__":true,"id":289},"__LivelyClassName__":"lively.ide.FileVersionViewer","__SourceModuleName__":"Global.lively.ide.VersionTools"},"289":{"x":450,"y":250,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"290":{"isListItem":true,"value":{"__isSmartRef__":true,"id":291},"string":"class full: FileVersionViewer: revert"},"291":{"object":{"__isSmartRef__":true,"id":288},"method":"revert","string":"FileVersionViewer: revert","type":"class","search":"sender"},"292":{"isListItem":true,"value":{"__isSmartRef__":true,"id":293},"string":"class full: FileVersionViewer: selectedURL"},"293":{"object":{"__isSmartRef__":true,"id":288},"method":"selectedURL","string":"FileVersionViewer: selectedURL","type":"class","search":"sender"},"294":{"isListItem":true,"value":{"__isSmartRef__":true,"id":295},"string":"class full: FileVersionViewer: setTarget"},"295":{"object":{"__isSmartRef__":true,"id":288},"method":"setTarget","string":"FileVersionViewer: setTarget","type":"class","search":"sender"},"296":{"isListItem":true,"value":{"__isSmartRef__":true,"id":297},"string":"class full: Image: convertToBase64"},"297":{"object":{"__isSmartRef__":true,"id":298},"method":"convertToBase64","string":"Image: convertToBase64","type":"class","search":"sender"},"298":{"doNotSerialize":["isLoaded"],"__LivelyClassName__":"lively.morphic.Image","__SourceModuleName__":"Global.lively.morphic.Widgets"},"299":{"isListItem":true,"value":{"__isSmartRef__":true,"id":300},"string":"class full: Importer: getBaseDocument"},"300":{"object":{"__isSmartRef__":true,"id":301},"method":"getBaseDocument","string":"Importer: getBaseDocument","type":"class","search":"sender"},"301":{"isImporter":true,"__LivelyClassName__":"Importer","__SourceModuleName__":"Global.lively.DOMAbstraction"},"302":{"isListItem":true,"value":{"__isSmartRef__":true,"id":303},"string":"class full: ModuleWrapper: getSourceUncached"},"303":{"object":{"__isSmartRef__":true,"id":304},"method":"getSourceUncached","string":"ModuleWrapper: getSourceUncached","type":"class","search":"sender"},"304":{"documentation":"Compatibility layer around normal modules for SourceCodeDatabase and other tools. Will probably merged with normal modules in the future.","forceUncached":true,"doNotSerialize":["_cachedSource"],"__LivelyClassName__":"lively.ide.ModuleWrapper","__SourceModuleName__":"Global.lively.ide.SourceDatabase"},"305":{"isListItem":true,"value":{"__isSmartRef__":true,"id":306},"string":"class full: ModuleWrapper: remove"},"306":{"object":{"__isSmartRef__":true,"id":304},"method":"remove","string":"ModuleWrapper: remove","type":"class","search":"sender"},"307":{"isListItem":true,"value":{"__isSmartRef__":true,"id":308},"string":"class full: ModuleWrapper: setSource"},"308":{"object":{"__isSmartRef__":true,"id":304},"method":"setSource","string":"ModuleWrapper: setSource","type":"class","search":"sender"},"309":{"isListItem":true,"value":{"__isSmartRef__":true,"id":310},"string":"class full: ModuleWrapper: updateFileRevision"},"310":{"object":{"__isSmartRef__":true,"id":304},"method":"updateFileRevision","string":"ModuleWrapper: updateFileRevision","type":"class","search":"sender"},"311":{"isListItem":true,"value":{"__isSmartRef__":true,"id":312},"string":"class full: Morph: copyToMyPartsBin / Trait('lively.PartsBin.PartTrait')"},"312":{"object":{"__isSmartRef__":true,"id":313},"method":"copyToMyPartsBin","string":"Morph: copyToMyPartsBin","type":"class","search":"sender"},"313":{"style":{"__isSmartRef__":true,"id":314},"isMorph":true,"idCounter":882,"htmlDispatchTable":{"__isSmartRef__":true,"id":315},"svgDispatchTable":{"__isSmartRef__":true,"id":316},"canvasDispatchTable":{"__isSmartRef__":true,"id":317},"dragTriggerDistance":5,"_layer_object_id":2,"connections":{"__isSmartRef__":true,"id":318},"doNotSerialize":["_renderContext","halos","magnets"],"lookupLayersIn":["owner"],"draggingEnabled":true,"_focusedMorph":{"__isSmartRef__":true,"id":0},"__LivelyClassName__":"lively.morphic.Morph","__SourceModuleName__":"Global.lively.morphic.Core"},"314":{"enableDropping":true,"enableHalos":true},"315":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"316":{"replaceRenderContext":"replaceRenderContextSVG","init":"initSVG","append":"appendSVG","remove":"removeSVG","setPosition":"setPositionSVG","setRotation":"setRotationSVG","setPointerEvents":"setPointerEventsSVG","setHandStyle":"setHandStyleSVG"},"317":{"init":"initCANVAS","append":"appendCANVAS","remove":"removeCANVAS","setPosition":"attributeChangedCANVAS"},"318":{"name":{"__isSmartRef__":true,"id":319},"position":{"__isSmartRef__":true,"id":320},"rotation":{"__isSmartRef__":true,"id":321},"scale":{"__isSmartRef__":true,"id":322},"setScale":{"__isSmartRef__":true,"id":323},"borderWidth":{"__isSmartRef__":true,"id":324},"borderColor":{"__isSmartRef__":true,"id":325},"fill":{"__isSmartRef__":true,"id":326},"extent":{"__isSmartRef__":true,"id":327},"globalTransform":{"__isSmartRef__":true,"id":328}},"319":{},"320":{"map":"_Position"},"321":{"map":"_Rotation"},"322":{"map":"_Scale"},"323":{},"324":{"map":"shape._BorderWidth"},"325":{"map":"shape._BorderColor"},"326":{"map":"shape._Fill"},"327":{"map":"shape._Extent"},"328":{"connectionClassType":"lively.morphic.GeometryTransformConnection"},"329":{"isListItem":true,"value":{"__isSmartRef__":true,"id":330},"string":"class full: PartItem: copyFilesFrom"},"330":{"object":{"__isSmartRef__":true,"id":331},"method":"copyFilesFrom","string":"PartItem: copyFilesFrom","type":"class","search":"sender"},"331":{"__LivelyClassName__":"lively.PartsBin.PartItem","__SourceModuleName__":"Global.lively.PartsBin"},"332":{"isListItem":true,"value":{"__isSmartRef__":true,"id":333},"string":"class full: PartItem: del"},"333":{"object":{"__isSmartRef__":true,"id":331},"method":"del","string":"PartItem: del","type":"class","search":"sender"},"334":{"isListItem":true,"value":{"__isSmartRef__":true,"id":335},"string":"class full: PartItem: load"},"335":{"object":{"__isSmartRef__":true,"id":331},"method":"load","string":"PartItem: load","type":"class","search":"sender"},"336":{"isListItem":true,"value":{"__isSmartRef__":true,"id":337},"string":"class full: PartItem: loadPartMetaInfo"},"337":{"object":{"__isSmartRef__":true,"id":331},"method":"loadPartMetaInfo","string":"PartItem: loadPartMetaInfo","type":"class","search":"sender"},"338":{"isListItem":true,"value":{"__isSmartRef__":true,"id":339},"string":"class full: PartItem: loadPartVersions"},"339":{"object":{"__isSmartRef__":true,"id":331},"method":"loadPartVersions","string":"PartItem: loadPartVersions","type":"class","search":"sender"},"340":{"isListItem":true,"value":{"__isSmartRef__":true,"id":341},"string":"class full: PartItem: uploadMetaInfoOnly"},"341":{"object":{"__isSmartRef__":true,"id":331},"method":"uploadMetaInfoOnly","string":"PartItem: uploadMetaInfoOnly","type":"class","search":"sender"},"342":{"isListItem":true,"value":{"__isSmartRef__":true,"id":343},"string":"class full: PartItem: uploadPart"},"343":{"object":{"__isSmartRef__":true,"id":331},"method":"uploadPart","string":"PartItem: uploadPart","type":"class","search":"sender"},"344":{"isListItem":true,"value":{"__isSmartRef__":true,"id":345},"string":"class full: PartsBinItem: setupHTMLLogo"},"345":{"object":{"__isSmartRef__":true,"id":346},"method":"setupHTMLLogo","string":"PartsBinItem: setupHTMLLogo","type":"class","search":"sender"},"346":{"defaultExtent":{"__isSmartRef__":true,"id":347},"style":{"__isSmartRef__":true,"id":348},"__LivelyClassName__":"lively.morphic.PartsBinItem","__SourceModuleName__":"Global.lively.morphic.ScriptingSupport"},"347":{"x":100,"y":100,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"348":{"enableDragging":true,"accessibleInInactiveWindow":true},"349":{"isListItem":true,"value":{"__isSmartRef__":true,"id":350},"string":"class full: PartsSpace: ensureExistance"},"350":{"object":{"__isSmartRef__":true,"id":351},"method":"ensureExistance","string":"PartsSpace: ensureExistance","type":"class","search":"sender"},"351":{"documentation":"A Namespace for parts of the parts bin. Usually points to a URL (directory) with serialized parts. Parts are morphs or might also be real objects. PartItems are wrapper for Parts used here in the PartsSpace.","__LivelyClassName__":"lively.PartsBin.PartsSpace","__SourceModuleName__":"Global.lively.PartsBin"},"352":{"isListItem":true,"value":{"__isSmartRef__":true,"id":353},"string":"class full: PartsSpace: load"},"353":{"object":{"__isSmartRef__":true,"id":351},"method":"load","string":"PartsSpace: load","type":"class","search":"sender"},"354":{"isListItem":true,"value":{"__isSmartRef__":true,"id":355},"string":"class full: SourceControlNode: pathsToSubNamespaces"},"355":{"object":{"__isSmartRef__":true,"id":356},"method":"pathsToSubNamespaces","string":"SourceControlNode: pathsToSubNamespaces","type":"class","search":"sender"},"356":{"documentation":"The root node of the SystemBrowser. Represents a URL","__LivelyClassName__":"lively.ide.SourceControlNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"357":{"isListItem":true,"value":{"__isSmartRef__":true,"id":358},"string":"class full: TextEditor: loadFile"},"358":{"object":{"__isSmartRef__":true,"id":359},"method":"loadFile","string":"TextEditor: loadFile","type":"class","search":"sender"},"359":{"defaultTitle":"TextEditor","initialViewExtent":{"__isSmartRef__":true,"id":360},"__LivelyClassName__":"lively.morphic.TextEditor","__SourceModuleName__":"Global.lively.morphic.Widgets"},"360":{"x":900,"y":800,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"361":{"isListItem":true,"value":{"__isSmartRef__":true,"id":362},"string":"class full: TextEditor: removeFile"},"362":{"object":{"__isSmartRef__":true,"id":359},"method":"removeFile","string":"TextEditor: removeFile","type":"class","search":"sender"},"363":{"isListItem":true,"value":{"__isSmartRef__":true,"id":364},"string":"class full: TextEditor: saveFile"},"364":{"object":{"__isSmartRef__":true,"id":359},"method":"saveFile","string":"TextEditor: saveFile","type":"class","search":"sender"},"365":{"isListItem":true,"value":{"__isSmartRef__":true,"id":366},"string":"class full: WebResource: constructor"},"366":{"object":{"__isSmartRef__":true,"id":367},"method":"constructor","string":"WebResource: constructor","type":"class","search":"sender"},"367":{"connections":["status","content","contentDocument","isExisting","subCollections","subDocuments","progress","readystate","versions","headRevision"],"__LivelyClassName__":"WebResource","__SourceModuleName__":"Global.lively.Network"},"368":{"isListItem":true,"value":{"__isSmartRef__":true,"id":369},"string":"class full: WebResource: ensureExistance"},"369":{"object":{"__isSmartRef__":true,"id":367},"method":"ensureExistance","string":"WebResource: ensureExistance","type":"class","search":"sender"},"370":{"isListItem":true,"value":{"__isSmartRef__":true,"id":371},"string":"class full: WebResource: get"},"371":{"object":{"__isSmartRef__":true,"id":367},"method":"get","string":"WebResource: get","type":"class","search":"sender"},"372":{"isListItem":true,"value":{"__isSmartRef__":true,"id":373},"string":"class full: WebResource: get2"},"373":{"object":{"__isSmartRef__":true,"id":367},"method":"get2","string":"WebResource: get2","type":"class","search":"sender"},"374":{"isListItem":true,"value":{"__isSmartRef__":true,"id":375},"string":"class full: WebResource: pvtProcessPropfindForSubElements"},"375":{"object":{"__isSmartRef__":true,"id":367},"method":"pvtProcessPropfindForSubElements","string":"WebResource: pvtProcessPropfindForSubElements","type":"class","search":"sender"},"376":{"isListItem":true,"value":{"__isSmartRef__":true,"id":377},"string":"class full: WebResource: toString"},"377":{"object":{"__isSmartRef__":true,"id":367},"method":"toString","string":"WebResource: toString","type":"class","search":"sender"},"378":{"isListItem":true,"value":{"__isSmartRef__":true,"id":379},"string":"class full: World: checkIfPathExistsAndStoreDoc"},"379":{"object":{"__isSmartRef__":true,"id":380},"method":"checkIfPathExistsAndStoreDoc","string":"World: checkIfPathExistsAndStoreDoc","type":"class","search":"sender"},"380":{"style":{"__isSmartRef__":true,"id":381},"isWorld":true,"doNotSerialize":["revisionOnLoad","clickedOnMorph","draggedMorph"],"_layer_object_id":6,"__LivelyClassName__":"lively.morphic.World","__SourceModuleName__":"Global.lively.morphic.Core"},"381":{"fill":{"__isSmartRef__":true,"id":138},"enableGrabbing":false,"enableHalos":true,"enableMorphMenu":true,"enableDragging":true},"382":{"isListItem":true,"value":{"__isSmartRef__":true,"id":383},"string":"class full: World: ensureUserDir"},"383":{"object":{"__isSmartRef__":true,"id":380},"method":"ensureUserDir","string":"World: ensureUserDir","type":"class","search":"sender"},"384":{"isListItem":true,"value":{"__isSmartRef__":true,"id":385},"string":"class full: World: getServerRevision"},"385":{"object":{"__isSmartRef__":true,"id":380},"method":"getServerRevision","string":"World: getServerRevision","type":"class","search":"sender"},"386":{"isListItem":true,"value":{"__isSmartRef__":true,"id":387},"string":"class full: World: interactiveDeleteWorldOnServer"},"387":{"object":{"__isSmartRef__":true,"id":380},"method":"interactiveDeleteWorldOnServer","string":"World: interactiveDeleteWorldOnServer","type":"class","search":"sender"},"388":{"isListItem":true,"value":{"__isSmartRef__":true,"id":389},"string":"class full: World: interactiveSaveWorldAs"},"389":{"object":{"__isSmartRef__":true,"id":380},"method":"interactiveSaveWorldAs","string":"World: interactiveSaveWorldAs","type":"class","search":"sender"},"390":{"isListItem":true,"value":{"__isSmartRef__":true,"id":391},"string":"class full: World: morphMenuItems"},"391":{"object":{"__isSmartRef__":true,"id":380},"method":"morphMenuItems","string":"World: morphMenuItems","type":"class","search":"sender"},"392":{"isListItem":true,"value":{"__isSmartRef__":true,"id":393},"string":"class full: World: requestUserName"},"393":{"object":{"__isSmartRef__":true,"id":380},"method":"requestUserName","string":"World: requestUserName","type":"class","search":"sender"},"394":{"isListItem":true,"value":{"__isSmartRef__":true,"id":395},"string":"class full: World: storeDoc"},"395":{"object":{"__isSmartRef__":true,"id":380},"method":"storeDoc","string":"World: storeDoc","type":"class","search":"sender"},"396":{"isListItem":true,"value":{"__isSmartRef__":true,"id":397},"string":"class full: World: tryToGetWorldRevision"},"397":{"object":{"__isSmartRef__":true,"id":380},"method":"tryToGetWorldRevision","string":"World: tryToGetWorldRevision","type":"class","search":"sender"},"398":{"isListItem":true,"value":{"__isSmartRef__":true,"id":399},"string":"class name: TextEditor: createWebResource"},"399":{"object":{"__isSmartRef__":true,"id":359},"method":"createWebResource","string":"TextEditor: createWebResource","type":"class","search":"implementor"},"400":{"isListItem":true,"value":{"__isSmartRef__":true,"id":401},"string":"extend full: Global.lively.PartsBin(object): leftOverMetaInfos"},"401":{"object":{"__isSmartRef__":true,"id":402},"method":"leftOverMetaInfos","string":"Global.lively.PartsBin(object): leftOverMetaInfos","type":"extend","search":"sender"},"402":{"namespaceIdentifier":"Global.lively.PartsBin","createTime":{"__isSmartRef__":true,"id":403},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":404}],"callbacks":[],"partSpaces":{"__isSmartRef__":true,"id":406},"_isLoaded":true,"__LivelyClassName__":"Namespace"},"403":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"404":{"namespaceIdentifier":"Global.lively.Traits","createTime":{"__isSmartRef__":true,"id":405},"wasDefined":true,"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"405":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"406":{"PartsBin/Tools":{"__isSmartRef__":true,"id":407}},"407":{"name":"PartsBin/Tools","partItems":{"__isSmartRef__":true,"id":408},"__LivelyClassName__":"lively.PartsBin.PartsSpace","__SourceModuleName__":"Global.lively.PartsBin"},"408":{"MethodFinder":{"__isSmartRef__":true,"id":409}},"409":{"partsSpaceName":"PartsBin/Tools","name":"MethodFinder","part":{"__isSmartRef__":true,"id":410},"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"json":"{\"id\":0,\"registry\":{\"0\":{\"submorphs\":[{\"__isSmartRef__\":true,\"id\":1},{\"__isSmartRef__\":true,\"id\":148},{\"__isSmartRef__\":true,\"id\":183}],\"scripts\":[],\"id\":1431,\"shape\":{\"__isSmartRef__\":true,\"id\":402},\"droppingEnabled\":true,\"halosEnabled\":true,\"__layered_draggingEnabled__\":true,\"layout\":{\"__isSmartRef__\":true,\"id\":406},\"_Position\":{\"__isSmartRef__\":true,\"id\":407},\"priorExtent\":{\"__isSmartRef__\":true,\"id\":408},\"targetMorph\":{\"__isSmartRef__\":true,\"id\":183},\"titleBar\":{\"__isSmartRef__\":true,\"id\":1},\"contentOffset\":{\"__isSmartRef__\":true,\"id\":409},\"collapsedTransform\":null,\"collapsedExtent\":null,\"expandedTransform\":null,\"expandedExtent\":null,\"ignoreEventsOnExpand\":false,\"highlighted\":true,\"prevDragPos\":{\"__isSmartRef__\":true,\"id\":410},\"showsHalos\":false,\"name\":\"MethodFinder\",\"partsBinMetaInfo\":{\"__isSmartRef__\":true,\"id\":411},\"__SourceModuleName__\":\"Global.lively.morphic.Widgets\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":412},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":413},\"isBeingDragged\":false,\"attributeConnections\":[],\"doNotSerialize\":[],\"doNotCopyProperties\":[],\"_Rotation\":0,\"_Scale\":1,\"prevScroll\":[0,0],\"__LivelyClassName__\":\"lively.morphic.Window\",\"withoutLayers\":[\"Global.lively.morphic.GrabbingLayer\"]},\"1\":{\"submorphs\":[{\"__isSmartRef__\":true,\"id\":2},{\"__isSmartRef__\":true,\"id\":16},{\"__isSmartRef__\":true,\"id\":62},{\"__isSmartRef__\":true,\"id\":96}],\"scripts\":[],\"id\":1441,\"shape\":{\"__isSmartRef__\":true,\"id\":131},\"droppingEnabled\":true,\"halosEnabled\":true,\"layout\":{\"__isSmartRef__\":true,\"id\":143},\"_Position\":{\"__isSmartRef__\":true,\"id\":144},\"eventsAreIgnored\":true,\"windowMorph\":{\"__isSmartRef__\":true,\"id\":0},\"label\":{\"__isSmartRef__\":true,\"id\":2},\"closeButton\":{\"__isSmartRef__\":true,\"id\":16},\"menuButton\":{\"__isSmartRef__\":true,\"id\":62},\"collapseButton\":{\"__isSmartRef__\":true,\"id\":96},\"priorExtent\":{\"__isSmartRef__\":true,\"id\":145},\"owner\":{\"__isSmartRef__\":true,\"id\":0},\"__SourceModuleName__\":\"Global.lively.morphic.Widgets\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":146},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":147},\"attributeConnections\":[],\"doNotSerialize\":[],\"doNotCopyProperties\":[],\"__LivelyClassName__\":\"lively.morphic.TitleBar\"},\"2\":{\"submorphs\":[],\"scripts\":[],\"id\":1442,\"shape\":{\"__isSmartRef__\":true,\"id\":3},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"_Padding\":{\"__isSmartRef__\":true,\"id\":9},\"_ClipMode\":\"hidden\",\"fixedWidth\":false,\"_WhiteSpaceHandling\":\"pre-wrap\",\"fixedHeight\":true,\"allowInput\":false,\"_FontFamily\":\"Helvetica\",\"_Position\":{\"__isSmartRef__\":true,\"id\":10},\"priorExtent\":{\"__isSmartRef__\":true,\"id\":11},\"_MaxTextWidth\":null,\"_MaxTextHeight\":null,\"textChunks\":[{\"__isSmartRef__\":true,\"id\":12}],\"evalEnabled\":false,\"isLabel\":true,\"eventsAreIgnored\":true,\"_FontSize\":10,\"owner\":{\"__isSmartRef__\":true,\"id\":1},\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":14},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":15},\"_HandStyle\":\"default\",\"_PointerEvents\":\"none\",\"attributeConnections\":[],\"doNotSerialize\":[],\"doNotCopyProperties\":[],\"_MinTextWidth\":null,\"_MinTextHeight\":null,\"__LivelyClassName__\":\"lively.morphic.Text\"},\"3\":{\"_Position\":{\"__isSmartRef__\":true,\"id\":4},\"_Extent\":{\"__isSmartRef__\":true,\"id\":5},\"_BorderWidth\":0,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":6},\"_Fill\":null,\"_BorderRadius\":0,\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":7},\"_ClipMode\":\"hidden\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":8},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"4\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"5\":{\"x\":837.4170420843768,\"y\":17,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"6\":{\"r\":0,\"g\":0,\"b\":0,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"7\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"8\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"9\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"10\":{\"x\":20,\"y\":3,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"11\":{\"x\":837.4170420843768,\"y\":17,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"12\":{\"style\":{\"__isSmartRef__\":true,\"id\":13},\"morph\":{\"__isSmartRef__\":true,\"id\":2},\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"chunkOwner\":{\"__isSmartRef__\":true,\"id\":2},\"storedString\":\"MethodFinder\",\"__LivelyClassName__\":\"lively.morphic.TextChunk\"},\"13\":{\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"__LivelyClassName__\":\"lively.morphic.TextEmphasis\"},\"14\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\",\"updateText\":\"updateTextHTML\",\"setTextExtent\":\"setTextExtentHTML\",\"setMaxTextWidth\":\"setMaxTextWidthHTML\",\"setMaxTextHeight\":\"setMaxTextHeightHTML\",\"setMinTextWidth\":\"setMinTextWidthHTML\",\"setMinTextHeight\":\"setMinTextHeightHTML\",\"getTextExtent\":\"getTextExtentHTML\",\"getTextString\":\"getTextStringHTML\",\"ignoreTextEvents\":\"ignoreTextEventsHTML\",\"enableTextEvents\":\"enableTextEventsHTML\",\"setFontFamily\":\"setFontFamilyHTML\",\"setFontSize\":\"setFontSizeHTML\",\"setTextColor\":\"setTextColorHTML\",\"setPadding\":\"setPaddingHTML\",\"setAlign\":\"setAlignHTML\",\"setVerticalAlign\":\"setVerticalAlignHTML\",\"setDisplay\":\"setDisplayHTML\",\"setWhiteSpaceHandling\":\"setWhiteSpaceHandlingHTML\",\"focusMorph\":\"focusMorphHTML\"},\"15\":{\"morph\":{\"__isSmartRef__\":true,\"id\":2},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"16\":{\"submorphs\":[{\"__isSmartRef__\":true,\"id\":17}],\"scripts\":[],\"id\":1443,\"shape\":{\"__isSmartRef__\":true,\"id\":30},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":46},\"priorExtent\":{\"__isSmartRef__\":true,\"id\":47},\"value\":false,\"toggle\":false,\"isActive\":true,\"normalFill\":{\"__isSmartRef__\":true,\"id\":34},\"lighterFill\":{\"__isSmartRef__\":true,\"id\":48},\"label\":{\"__isSmartRef__\":true,\"id\":17},\"owner\":{\"__isSmartRef__\":true,\"id\":1},\"layout\":{\"__isSmartRef__\":true,\"id\":57},\"attributeConnections\":[{\"__isSmartRef__\":true,\"id\":58},{\"__isSmartRef__\":true,\"id\":59}],\"doNotSerialize\":[\"$$getHelpText\",\"$$fire\"],\"doNotCopyProperties\":[\"$$getHelpText\",\"$$fire\"],\"__SourceModuleName__\":\"Global.lively.morphic.Widgets\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":60},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":61},\"__LivelyClassName__\":\"lively.morphic.WindowControl\"},\"17\":{\"submorphs\":[],\"scripts\":[],\"id\":1444,\"shape\":{\"__isSmartRef__\":true,\"id\":18},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"_Padding\":{\"__isSmartRef__\":true,\"id\":23},\"_ClipMode\":\"hidden\",\"fixedWidth\":false,\"_WhiteSpaceHandling\":\"pre-wrap\",\"fixedHeight\":true,\"allowInput\":false,\"_FontFamily\":\"Helvetica\",\"_Position\":{\"__isSmartRef__\":true,\"id\":24},\"priorExtent\":{\"__isSmartRef__\":true,\"id\":25},\"_MaxTextWidth\":null,\"_MaxTextHeight\":null,\"textChunks\":[{\"__isSmartRef__\":true,\"id\":26}],\"evalEnabled\":false,\"owner\":{\"__isSmartRef__\":true,\"id\":16},\"isLabel\":true,\"eventsAreIgnored\":true,\"_FontSize\":8,\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":28},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":29},\"_HandStyle\":\"default\",\"_PointerEvents\":\"none\",\"attributeConnections\":[],\"doNotSerialize\":[],\"doNotCopyProperties\":[],\"_MinTextWidth\":null,\"_MinTextHeight\":null,\"__LivelyClassName__\":\"lively.morphic.Text\"},\"18\":{\"_Position\":{\"__isSmartRef__\":true,\"id\":19},\"_Extent\":{\"__isSmartRef__\":true,\"id\":20},\"_BorderWidth\":0,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":6},\"_Fill\":null,\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":21},\"_ClipMode\":\"hidden\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":22},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"19\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"20\":{\"x\":17,\"y\":17,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"21\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"22\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"23\":{\"x\":5,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"24\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"25\":{\"x\":17,\"y\":17,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"26\":{\"style\":{\"__isSmartRef__\":true,\"id\":27},\"morph\":{\"__isSmartRef__\":true,\"id\":17},\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"chunkOwner\":{\"__isSmartRef__\":true,\"id\":17},\"storedString\":\"X\",\"__LivelyClassName__\":\"lively.morphic.TextChunk\"},\"27\":{\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"__LivelyClassName__\":\"lively.morphic.TextEmphasis\"},\"28\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\",\"updateText\":\"updateTextHTML\",\"setTextExtent\":\"setTextExtentHTML\",\"setMaxTextWidth\":\"setMaxTextWidthHTML\",\"setMaxTextHeight\":\"setMaxTextHeightHTML\",\"setMinTextWidth\":\"setMinTextWidthHTML\",\"setMinTextHeight\":\"setMinTextHeightHTML\",\"getTextExtent\":\"getTextExtentHTML\",\"getTextString\":\"getTextStringHTML\",\"ignoreTextEvents\":\"ignoreTextEventsHTML\",\"enableTextEvents\":\"enableTextEventsHTML\",\"setFontFamily\":\"setFontFamilyHTML\",\"setFontSize\":\"setFontSizeHTML\",\"setTextColor\":\"setTextColorHTML\",\"setPadding\":\"setPaddingHTML\",\"setAlign\":\"setAlignHTML\",\"setVerticalAlign\":\"setVerticalAlignHTML\",\"setDisplay\":\"setDisplayHTML\",\"setWhiteSpaceHandling\":\"setWhiteSpaceHandlingHTML\",\"focusMorph\":\"focusMorphHTML\"},\"29\":{\"morph\":{\"__isSmartRef__\":true,\"id\":17},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"30\":{\"_Position\":{\"__isSmartRef__\":true,\"id\":31},\"_Extent\":{\"__isSmartRef__\":true,\"id\":32},\"_BorderWidth\":0,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":33},\"_Fill\":{\"__isSmartRef__\":true,\"id\":34},\"_StrokeOpacity\":0,\"_BorderRadius\":5,\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":44},\"_ClipMode\":\"visible\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":45},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"31\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"32\":{\"x\":17,\"y\":17,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"33\":{\"r\":0.8392156862745098,\"g\":0.8392156862745098,\"b\":0.8392156862745098,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"34\":{\"stops\":[{\"__isSmartRef__\":true,\"id\":35},{\"__isSmartRef__\":true,\"id\":37},{\"__isSmartRef__\":true,\"id\":39},{\"__isSmartRef__\":true,\"id\":41}],\"vector\":{\"__isSmartRef__\":true,\"id\":43},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"__LivelyClassName__\":\"lively.morphic.LinearGradient\"},\"35\":{\"offset\":0,\"color\":{\"__isSmartRef__\":true,\"id\":36}},\"36\":{\"r\":0.9600000000000001,\"g\":0.9600000000000001,\"b\":0.9600000000000001,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"37\":{\"offset\":0.4,\"color\":{\"__isSmartRef__\":true,\"id\":38}},\"38\":{\"r\":0.8200000000000001,\"g\":0.8200000000000001,\"b\":0.8200000000000001,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"39\":{\"offset\":0.6,\"color\":{\"__isSmartRef__\":true,\"id\":40}},\"40\":{\"r\":0.8200000000000001,\"g\":0.8200000000000001,\"b\":0.8200000000000001,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"41\":{\"offset\":1,\"color\":{\"__isSmartRef__\":true,\"id\":42}},\"42\":{\"r\":0.94,\"g\":0.94,\"b\":0.94,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"43\":{\"x\":0,\"y\":0,\"width\":0,\"height\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"44\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"45\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"46\":{\"x\":876.4170420843768,\"y\":3,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"47\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"48\":{\"stops\":[{\"__isSmartRef__\":true,\"id\":49},{\"__isSmartRef__\":true,\"id\":51},{\"__isSmartRef__\":true,\"id\":53},{\"__isSmartRef__\":true,\"id\":55}],\"vector\":{\"__isSmartRef__\":true,\"id\":43},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"__LivelyClassName__\":\"lively.morphic.LinearGradient\"},\"49\":{\"offset\":0,\"color\":{\"__isSmartRef__\":true,\"id\":50}},\"50\":{\"r\":0.98,\"g\":0.98,\"b\":0.98,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"51\":{\"offset\":0.4,\"color\":{\"__isSmartRef__\":true,\"id\":52}},\"52\":{\"r\":0.91,\"g\":0.91,\"b\":0.91,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"53\":{\"offset\":0.6,\"color\":{\"__isSmartRef__\":true,\"id\":54}},\"54\":{\"r\":0.91,\"g\":0.91,\"b\":0.91,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"55\":{\"offset\":1,\"color\":{\"__isSmartRef__\":true,\"id\":56}},\"56\":{\"r\":0.97,\"g\":0.97,\"b\":0.97,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"57\":{\"moveHorizontal\":true},\"58\":{\"sourceObj\":{\"__isSmartRef__\":true,\"id\":16},\"sourceAttrName\":\"getHelpText\",\"targetObj\":{\"__isSmartRef__\":true,\"id\":0},\"targetMethodName\":\"getCloseHelp\",\"converter\":null,\"converterString\":null,\"updater\":null,\"updaterString\":null,\"__SourceModuleName__\":\"Global.lively.bindings\",\"__LivelyClassName__\":\"AttributeConnection\"},\"59\":{\"sourceObj\":{\"__isSmartRef__\":true,\"id\":16},\"sourceAttrName\":\"fire\",\"targetObj\":{\"__isSmartRef__\":true,\"id\":0},\"targetMethodName\":\"initiateShutdown\",\"converter\":null,\"converterString\":null,\"updater\":null,\"updaterString\":null,\"__SourceModuleName__\":\"Global.lively.bindings\",\"__LivelyClassName__\":\"AttributeConnection\"},\"60\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\"},\"61\":{\"morph\":{\"__isSmartRef__\":true,\"id\":16},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"62\":{\"submorphs\":[{\"__isSmartRef__\":true,\"id\":63}],\"scripts\":[],\"id\":1445,\"shape\":{\"__isSmartRef__\":true,\"id\":76},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":81},\"priorExtent\":{\"__isSmartRef__\":true,\"id\":82},\"value\":false,\"toggle\":false,\"isActive\":true,\"normalFill\":{\"__isSmartRef__\":true,\"id\":34},\"lighterFill\":{\"__isSmartRef__\":true,\"id\":83},\"label\":{\"__isSmartRef__\":true,\"id\":63},\"owner\":{\"__isSmartRef__\":true,\"id\":1},\"attributeConnections\":[{\"__isSmartRef__\":true,\"id\":92},{\"__isSmartRef__\":true,\"id\":93}],\"doNotSerialize\":[\"$$getHelpText\",\"$$fire\"],\"doNotCopyProperties\":[\"$$getHelpText\",\"$$fire\"],\"__SourceModuleName__\":\"Global.lively.morphic.Widgets\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":94},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":95},\"__LivelyClassName__\":\"lively.morphic.WindowControl\"},\"63\":{\"submorphs\":[],\"scripts\":[],\"id\":1446,\"shape\":{\"__isSmartRef__\":true,\"id\":64},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"_Padding\":{\"__isSmartRef__\":true,\"id\":69},\"_ClipMode\":\"hidden\",\"fixedWidth\":false,\"_WhiteSpaceHandling\":\"pre-wrap\",\"fixedHeight\":true,\"allowInput\":false,\"_FontFamily\":\"Helvetica\",\"_Position\":{\"__isSmartRef__\":true,\"id\":70},\"priorExtent\":{\"__isSmartRef__\":true,\"id\":71},\"_MaxTextWidth\":null,\"_MaxTextHeight\":null,\"textChunks\":[{\"__isSmartRef__\":true,\"id\":72}],\"evalEnabled\":false,\"owner\":{\"__isSmartRef__\":true,\"id\":62},\"isLabel\":true,\"eventsAreIgnored\":true,\"_FontSize\":8,\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":74},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":75},\"_HandStyle\":\"default\",\"_PointerEvents\":\"none\",\"attributeConnections\":[],\"doNotSerialize\":[],\"doNotCopyProperties\":[],\"_MinTextWidth\":null,\"_MinTextHeight\":null,\"__LivelyClassName__\":\"lively.morphic.Text\"},\"64\":{\"_Position\":{\"__isSmartRef__\":true,\"id\":65},\"_Extent\":{\"__isSmartRef__\":true,\"id\":66},\"_BorderWidth\":0,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":6},\"_Fill\":null,\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":67},\"_ClipMode\":\"hidden\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":68},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"65\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"66\":{\"x\":17,\"y\":17,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"67\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"68\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"69\":{\"x\":5,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"70\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"71\":{\"x\":17,\"y\":17,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"72\":{\"style\":{\"__isSmartRef__\":true,\"id\":73},\"morph\":{\"__isSmartRef__\":true,\"id\":63},\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"chunkOwner\":{\"__isSmartRef__\":true,\"id\":63},\"storedString\":\"M\",\"__LivelyClassName__\":\"lively.morphic.TextChunk\"},\"73\":{\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"__LivelyClassName__\":\"lively.morphic.TextEmphasis\"},\"74\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\",\"updateText\":\"updateTextHTML\",\"setTextExtent\":\"setTextExtentHTML\",\"setMaxTextWidth\":\"setMaxTextWidthHTML\",\"setMaxTextHeight\":\"setMaxTextHeightHTML\",\"setMinTextWidth\":\"setMinTextWidthHTML\",\"setMinTextHeight\":\"setMinTextHeightHTML\",\"getTextExtent\":\"getTextExtentHTML\",\"getTextString\":\"getTextStringHTML\",\"ignoreTextEvents\":\"ignoreTextEventsHTML\",\"enableTextEvents\":\"enableTextEventsHTML\",\"setFontFamily\":\"setFontFamilyHTML\",\"setFontSize\":\"setFontSizeHTML\",\"setTextColor\":\"setTextColorHTML\",\"setPadding\":\"setPaddingHTML\",\"setAlign\":\"setAlignHTML\",\"setVerticalAlign\":\"setVerticalAlignHTML\",\"setDisplay\":\"setDisplayHTML\",\"setWhiteSpaceHandling\":\"setWhiteSpaceHandlingHTML\",\"focusMorph\":\"focusMorphHTML\"},\"75\":{\"morph\":{\"__isSmartRef__\":true,\"id\":63},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"76\":{\"_Position\":{\"__isSmartRef__\":true,\"id\":77},\"_Extent\":{\"__isSmartRef__\":true,\"id\":78},\"_BorderWidth\":0,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":33},\"_Fill\":{\"__isSmartRef__\":true,\"id\":34},\"_StrokeOpacity\":0,\"_BorderRadius\":5,\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":79},\"_ClipMode\":\"visible\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":80},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"77\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"78\":{\"x\":17,\"y\":17,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"79\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"80\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"81\":{\"x\":3,\"y\":3,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"82\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"83\":{\"stops\":[{\"__isSmartRef__\":true,\"id\":84},{\"__isSmartRef__\":true,\"id\":86},{\"__isSmartRef__\":true,\"id\":88},{\"__isSmartRef__\":true,\"id\":90}],\"vector\":{\"__isSmartRef__\":true,\"id\":43},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"__LivelyClassName__\":\"lively.morphic.LinearGradient\"},\"84\":{\"offset\":0,\"color\":{\"__isSmartRef__\":true,\"id\":85}},\"85\":{\"r\":0.98,\"g\":0.98,\"b\":0.98,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"86\":{\"offset\":0.4,\"color\":{\"__isSmartRef__\":true,\"id\":87}},\"87\":{\"r\":0.91,\"g\":0.91,\"b\":0.91,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"88\":{\"offset\":0.6,\"color\":{\"__isSmartRef__\":true,\"id\":89}},\"89\":{\"r\":0.91,\"g\":0.91,\"b\":0.91,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"90\":{\"offset\":1,\"color\":{\"__isSmartRef__\":true,\"id\":91}},\"91\":{\"r\":0.97,\"g\":0.97,\"b\":0.97,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"92\":{\"sourceObj\":{\"__isSmartRef__\":true,\"id\":62},\"sourceAttrName\":\"getHelpText\",\"targetObj\":{\"__isSmartRef__\":true,\"id\":0},\"targetMethodName\":\"getMenuHelp\",\"converter\":null,\"converterString\":null,\"updater\":null,\"updaterString\":null,\"__SourceModuleName__\":\"Global.lively.bindings\",\"__LivelyClassName__\":\"AttributeConnection\"},\"93\":{\"sourceObj\":{\"__isSmartRef__\":true,\"id\":62},\"sourceAttrName\":\"fire\",\"targetObj\":{\"__isSmartRef__\":true,\"id\":0},\"targetMethodName\":\"showTargetMorphMenu\",\"converter\":null,\"converterString\":null,\"updater\":null,\"updaterString\":null,\"__SourceModuleName__\":\"Global.lively.bindings\",\"__LivelyClassName__\":\"AttributeConnection\"},\"94\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\"},\"95\":{\"morph\":{\"__isSmartRef__\":true,\"id\":62},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"96\":{\"submorphs\":[{\"__isSmartRef__\":true,\"id\":97}],\"scripts\":[],\"id\":1447,\"shape\":{\"__isSmartRef__\":true,\"id\":110},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":115},\"priorExtent\":{\"__isSmartRef__\":true,\"id\":116},\"value\":false,\"toggle\":false,\"isActive\":true,\"normalFill\":{\"__isSmartRef__\":true,\"id\":34},\"lighterFill\":{\"__isSmartRef__\":true,\"id\":117},\"label\":{\"__isSmartRef__\":true,\"id\":97},\"owner\":{\"__isSmartRef__\":true,\"id\":1},\"layout\":{\"__isSmartRef__\":true,\"id\":126},\"attributeConnections\":[{\"__isSmartRef__\":true,\"id\":127},{\"__isSmartRef__\":true,\"id\":128}],\"doNotSerialize\":[\"$$getHelpText\",\"$$fire\"],\"doNotCopyProperties\":[\"$$getHelpText\",\"$$fire\"],\"__SourceModuleName__\":\"Global.lively.morphic.Widgets\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":129},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":130},\"__LivelyClassName__\":\"lively.morphic.WindowControl\"},\"97\":{\"submorphs\":[],\"scripts\":[],\"id\":1448,\"shape\":{\"__isSmartRef__\":true,\"id\":98},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"_Padding\":{\"__isSmartRef__\":true,\"id\":103},\"_ClipMode\":\"hidden\",\"fixedWidth\":false,\"_WhiteSpaceHandling\":\"pre-wrap\",\"fixedHeight\":true,\"allowInput\":false,\"_FontFamily\":\"Helvetica\",\"_Position\":{\"__isSmartRef__\":true,\"id\":104},\"priorExtent\":{\"__isSmartRef__\":true,\"id\":105},\"_MaxTextWidth\":null,\"_MaxTextHeight\":null,\"textChunks\":[{\"__isSmartRef__\":true,\"id\":106}],\"evalEnabled\":false,\"owner\":{\"__isSmartRef__\":true,\"id\":96},\"isLabel\":true,\"eventsAreIgnored\":true,\"_FontSize\":8,\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":108},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":109},\"_HandStyle\":\"default\",\"_PointerEvents\":\"none\",\"attributeConnections\":[],\"doNotSerialize\":[],\"doNotCopyProperties\":[],\"_MinTextWidth\":null,\"_MinTextHeight\":null,\"__LivelyClassName__\":\"lively.morphic.Text\"},\"98\":{\"_Position\":{\"__isSmartRef__\":true,\"id\":99},\"_Extent\":{\"__isSmartRef__\":true,\"id\":100},\"_BorderWidth\":0,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":6},\"_Fill\":null,\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":101},\"_ClipMode\":\"hidden\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":102},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"99\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"100\":{\"x\":17,\"y\":17,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"101\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"102\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"103\":{\"x\":5,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"104\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"105\":{\"x\":17,\"y\":17,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"106\":{\"style\":{\"__isSmartRef__\":true,\"id\":107},\"morph\":{\"__isSmartRef__\":true,\"id\":97},\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"chunkOwner\":{\"__isSmartRef__\":true,\"id\":97},\"storedString\":\"–\",\"__LivelyClassName__\":\"lively.morphic.TextChunk\"},\"107\":{\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"__LivelyClassName__\":\"lively.morphic.TextEmphasis\"},\"108\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\",\"updateText\":\"updateTextHTML\",\"setTextExtent\":\"setTextExtentHTML\",\"setMaxTextWidth\":\"setMaxTextWidthHTML\",\"setMaxTextHeight\":\"setMaxTextHeightHTML\",\"setMinTextWidth\":\"setMinTextWidthHTML\",\"setMinTextHeight\":\"setMinTextHeightHTML\",\"getTextExtent\":\"getTextExtentHTML\",\"getTextString\":\"getTextStringHTML\",\"ignoreTextEvents\":\"ignoreTextEventsHTML\",\"enableTextEvents\":\"enableTextEventsHTML\",\"setFontFamily\":\"setFontFamilyHTML\",\"setFontSize\":\"setFontSizeHTML\",\"setTextColor\":\"setTextColorHTML\",\"setPadding\":\"setPaddingHTML\",\"setAlign\":\"setAlignHTML\",\"setVerticalAlign\":\"setVerticalAlignHTML\",\"setDisplay\":\"setDisplayHTML\",\"setWhiteSpaceHandling\":\"setWhiteSpaceHandlingHTML\",\"focusMorph\":\"focusMorphHTML\"},\"109\":{\"morph\":{\"__isSmartRef__\":true,\"id\":97},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"110\":{\"_Position\":{\"__isSmartRef__\":true,\"id\":111},\"_Extent\":{\"__isSmartRef__\":true,\"id\":112},\"_BorderWidth\":0,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":33},\"_Fill\":{\"__isSmartRef__\":true,\"id\":34},\"_StrokeOpacity\":0,\"_BorderRadius\":5,\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":113},\"_ClipMode\":\"visible\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":114},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"111\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"112\":{\"x\":17,\"y\":17,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"113\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"114\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"115\":{\"x\":857.4170420843768,\"y\":3,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"116\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"117\":{\"stops\":[{\"__isSmartRef__\":true,\"id\":118},{\"__isSmartRef__\":true,\"id\":120},{\"__isSmartRef__\":true,\"id\":122},{\"__isSmartRef__\":true,\"id\":124}],\"vector\":{\"__isSmartRef__\":true,\"id\":43},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"__LivelyClassName__\":\"lively.morphic.LinearGradient\"},\"118\":{\"offset\":0,\"color\":{\"__isSmartRef__\":true,\"id\":119}},\"119\":{\"r\":0.98,\"g\":0.98,\"b\":0.98,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"120\":{\"offset\":0.4,\"color\":{\"__isSmartRef__\":true,\"id\":121}},\"121\":{\"r\":0.91,\"g\":0.91,\"b\":0.91,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"122\":{\"offset\":0.6,\"color\":{\"__isSmartRef__\":true,\"id\":123}},\"123\":{\"r\":0.91,\"g\":0.91,\"b\":0.91,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"124\":{\"offset\":1,\"color\":{\"__isSmartRef__\":true,\"id\":125}},\"125\":{\"r\":0.97,\"g\":0.97,\"b\":0.97,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"126\":{\"moveHorizontal\":true},\"127\":{\"sourceObj\":{\"__isSmartRef__\":true,\"id\":96},\"sourceAttrName\":\"getHelpText\",\"targetObj\":{\"__isSmartRef__\":true,\"id\":0},\"targetMethodName\":\"getCollapseHelp\",\"converter\":null,\"converterString\":null,\"updater\":null,\"updaterString\":null,\"__SourceModuleName__\":\"Global.lively.bindings\",\"__LivelyClassName__\":\"AttributeConnection\"},\"128\":{\"sourceObj\":{\"__isSmartRef__\":true,\"id\":96},\"sourceAttrName\":\"fire\",\"targetObj\":{\"__isSmartRef__\":true,\"id\":0},\"targetMethodName\":\"toggleCollapse\",\"converter\":null,\"converterString\":null,\"updater\":null,\"updaterString\":null,\"__SourceModuleName__\":\"Global.lively.bindings\",\"__LivelyClassName__\":\"AttributeConnection\"},\"129\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\"},\"130\":{\"morph\":{\"__isSmartRef__\":true,\"id\":96},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"131\":{\"_Position\":{\"__isSmartRef__\":true,\"id\":132},\"_Extent\":{\"__isSmartRef__\":true,\"id\":133},\"_BorderWidth\":2,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":134},\"_Fill\":{\"__isSmartRef__\":true,\"id\":135},\"_StrokeOpacity\":1,\"_BorderRadius\":\"8px 8px 0px 0px\",\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":141},\"_ClipMode\":\"visible\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":142},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"132\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"133\":{\"x\":896.4170420843768,\"y\":22,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"134\":{\"r\":0.4,\"g\":0.4,\"b\":0.4,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"135\":{\"stops\":[{\"__isSmartRef__\":true,\"id\":136},{\"__isSmartRef__\":true,\"id\":138}],\"vector\":{\"__isSmartRef__\":true,\"id\":140},\"__LivelyClassName__\":\"lively.morphic.LinearGradient\",\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\"},\"136\":{\"offset\":0,\"color\":{\"__isSmartRef__\":true,\"id\":137}},\"137\":{\"r\":1,\"g\":1,\"b\":1,\"a\":1,\"__LivelyClassName__\":\"Color\",\"__SourceModuleName__\":\"Global\"},\"138\":{\"offset\":1,\"color\":{\"__isSmartRef__\":true,\"id\":139}},\"139\":{\"r\":0.91,\"g\":0.91,\"b\":0.91,\"a\":1,\"__LivelyClassName__\":\"Color\",\"__SourceModuleName__\":\"Global\"},\"140\":{\"x\":0,\"y\":0,\"width\":0,\"height\":1,\"__LivelyClassName__\":\"Rectangle\",\"__SourceModuleName__\":\"Global\"},\"141\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"142\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"143\":{\"resizeWidth\":true,\"adjustForNewBounds\":true},\"144\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"145\":{\"x\":896.4170420843768,\"y\":22,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"146\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\"},\"147\":{\"morph\":{\"__isSmartRef__\":true,\"id\":1},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"148\":{\"submorphs\":[],\"scripts\":[],\"id\":1449,\"shape\":{\"__isSmartRef__\":true,\"id\":149},\"droppingEnabled\":true,\"halosEnabled\":true,\"registeredForMouseEvents\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":156},\"showsHalos\":false,\"name\":\"ResizeCorner2\",\"partsBinMetaInfo\":{\"__isSmartRef__\":true,\"id\":157},\"__SourceModuleName__\":\"Global.lively.morphic.Core\",\"__layered_draggingEnabled__\":true,\"dragStartPoint\":null,\"originalExtent\":{\"__isSmartRef__\":true,\"id\":158},\"originalTargetExtent\":null,\"owner\":{\"__isSmartRef__\":true,\"id\":0},\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":159},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":160},\"attributeConnections\":[],\"doNotSerialize\":[],\"doNotCopyProperties\":[],\"_Rotation\":0,\"_Scale\":1.0000000000000002,\"__serializedLivelyClosures__\":{\"__isSmartRef__\":true,\"id\":161},\"__LivelyClassName__\":\"lively.morphic.Box\"},\"149\":{\"position\":{\"__isSmartRef__\":true,\"id\":150},\"_Extent\":{\"__isSmartRef__\":true,\"id\":151},\"_BorderWidth\":0,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":152},\"_Fill\":{\"__isSmartRef__\":true,\"id\":153},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":154},\"_ClipMode\":\"visible\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":155},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"150\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"151\":{\"x\":13,\"y\":15,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"152\":{\"r\":0.568,\"g\":0.568,\"b\":0.568,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"153\":{\"r\":0.258,\"g\":0.258,\"b\":0.258,\"a\":1,\"__LivelyClassName__\":\"Color\",\"__SourceModuleName__\":\"Global\"},\"154\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"155\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"156\":{\"x\":883.4170420843768,\"y\":492.002005010021,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"157\":{\"partsSpaceName\":\"PartsBin/NewWorld\",\"__SourceModuleName__\":\"Global.lively.PartsBin\",\"migrationLevel\":2,\"__LivelyClassName__\":\"lively.PartsBin.PartsBinMetaInfo\"},\"158\":{\"x\":239,\"y\":138,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"159\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\"},\"160\":{\"morph\":{\"__isSmartRef__\":true,\"id\":148},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"161\":{\"onDrag\":{\"__isSmartRef__\":true,\"id\":162},\"onDragEnd\":{\"__isSmartRef__\":true,\"id\":169},\"onDragStart\":{\"__isSmartRef__\":true,\"id\":176}},\"162\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":163},\"source\":\"function onDrag(evt) {\\n\\t// alert(\\\"onDrag\\\")\\n\\t\\tvar moveDelta = evt.mousePoint.subPt(this.dragStartPoint)\\n\\t\\tif (evt.isShiftDown()) {\\n\\t\\t\\tvar maxDelta = Math.max(moveDelta.x, moveDelta.y);\\n\\t\\t\\tmoveDelta = pt(maxDelta, maxDelta);\\n\\t\\t}\\n\\t\\tthis.owner.setExtent(this.originalTargetExtent.addPt(moveDelta));\\n\\t\\tthis.align(this.bounds().bottomRight(), this.owner.getExtent())\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":168},\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"lively.Closure\"},\"163\":{\"this\":{\"__isSmartRef__\":true,\"id\":148},\"__serializedLivelyClosures__\":{\"__isSmartRef__\":true,\"id\":164}},\"164\":{\"$super\":{\"__isSmartRef__\":true,\"id\":165}},\"165\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":166},\"source\":\"function () {\\n\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\treturn obj.constructor.prototype[name].apply(obj, arguments)\\n\\t\\t\\t\\t} catch(e) {\\n\\t\\t\\t\\t\\talert('Error in $super call: ' + e + '\\\\n' + e.stack);\\n\\t\\t\\t\\t\\treturn null;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":167},\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"lively.Closure\"},\"166\":{\"obj\":{\"__isSmartRef__\":true,\"id\":148},\"name\":\"onDrag\"},\"167\":{},\"168\":{},\"169\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":170},\"source\":\"function onDragEnd(evt) {\\n\\tthis.dragStartPoint = null;\\n\\tthis.originalTargetExtent = null;\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":175},\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"lively.Closure\"},\"170\":{\"this\":{\"__isSmartRef__\":true,\"id\":148},\"__serializedLivelyClosures__\":{\"__isSmartRef__\":true,\"id\":171}},\"171\":{\"$super\":{\"__isSmartRef__\":true,\"id\":172}},\"172\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":173},\"source\":\"function () {\\n\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\treturn obj.constructor.prototype[name].apply(obj, arguments)\\n\\t\\t\\t\\t} catch(e) {\\n\\t\\t\\t\\t\\talert('Error in $super call: ' + e + '\\\\n' + e.stack);\\n\\t\\t\\t\\t\\treturn null;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":174},\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"lively.Closure\"},\"173\":{\"obj\":{\"__isSmartRef__\":true,\"id\":148},\"name\":\"onDragEnd\"},\"174\":{},\"175\":{},\"176\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":177},\"source\":\"function onDragStart(evt) {\\n\\tthis.dragStartPoint = evt.mousePoint;\\n\\tthis.originalTargetExtent = this.owner.getExtent();\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":182},\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"lively.Closure\"},\"177\":{\"this\":{\"__isSmartRef__\":true,\"id\":148},\"__serializedLivelyClosures__\":{\"__isSmartRef__\":true,\"id\":178}},\"178\":{\"$super\":{\"__isSmartRef__\":true,\"id\":179}},\"179\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":180},\"source\":\"function () {\\n\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\treturn obj.constructor.prototype[name].apply(obj, arguments)\\n\\t\\t\\t\\t} catch(e) {\\n\\t\\t\\t\\t\\talert('Error in $super call: ' + e + '\\\\n' + e.stack);\\n\\t\\t\\t\\t\\treturn null;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":181},\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"lively.Closure\"},\"180\":{\"obj\":{\"__isSmartRef__\":true,\"id\":148},\"name\":\"onDragStart\"},\"181\":{},\"182\":{},\"183\":{\"submorphs\":[{\"__isSmartRef__\":true,\"id\":184},{\"__isSmartRef__\":true,\"id\":199},{\"__isSmartRef__\":true,\"id\":246},{\"__isSmartRef__\":true,\"id\":261},{\"__isSmartRef__\":true,\"id\":291},{\"__isSmartRef__\":true,\"id\":306}],\"scripts\":[],\"id\":1432,\"shape\":{\"__isSmartRef__\":true,\"id\":353},\"droppingEnabled\":true,\"halosEnabled\":true,\"registeredForMouseEvents\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":359},\"showsHalos\":false,\"name\":\"MethodFinderPane\",\"partsBinMetaInfo\":{\"__isSmartRef__\":true,\"id\":360},\"__SourceModuleName__\":\"Global.lively.morphic.Core\",\"owner\":{\"__isSmartRef__\":true,\"id\":0},\"isCopyMorphRef\":true,\"morphRefId\":1,\"layout\":{\"__isSmartRef__\":true,\"id\":361},\"priorExtent\":{\"__isSmartRef__\":true,\"id\":362},\"targetFunction\":null,\"targetObject\":null,\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":363},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":364},\"scriptAnnotations\":{\"__isSmartRef__\":true,\"id\":365},\"attributeConnections\":[],\"doNotSerialize\":[],\"doNotCopyProperties\":[],\"_Rotation\":0,\"_Scale\":1,\"prevScroll\":[0,0],\"__serializedLivelyClosures__\":{\"__isSmartRef__\":true,\"id\":374},\"__LivelyClassName__\":\"lively.morphic.Box\"},\"184\":{\"submorphs\":[],\"scripts\":[],\"id\":1433,\"shape\":{\"__isSmartRef__\":true,\"id\":185},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"fixedWidth\":true,\"fixedHeight\":true,\"allowsInput\":true,\"_FontFamily\":\"Arial, sans-serif\",\"registeredForMouseEvents\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":191},\"_MaxTextWidth\":290,\"_MaxTextHeight\":null,\"textColor\":{\"__isSmartRef__\":true,\"id\":188},\"showsHalos\":false,\"_FontSize\":14,\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"name\":\"searchText\",\"partsBinMetaInfo\":{\"__isSmartRef__\":true,\"id\":192},\"owner\":{\"__isSmartRef__\":true,\"id\":183},\"charsReplaced\":\"selection\",\"lastFindLoc\":9,\"attributeConnections\":[{\"__isSmartRef__\":true,\"id\":193}],\"doNotSerialize\":[\"$$savedTextString\"],\"doNotCopyProperties\":[\"$$savedTextString\"],\"isInputLine\":true,\"_WhiteSpaceHandling\":\"pre-wrap\",\"allowInput\":true,\"textChunks\":[{\"__isSmartRef__\":true,\"id\":194}],\"priorSelectionRange\":[3,3],\"prevScroll\":[0,0],\"_ClipMode\":\"hidden\",\"priorExtent\":{\"__isSmartRef__\":true,\"id\":196},\"lastSearchString\":\"prev\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":197},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":198},\"_Rotation\":0,\"_MinTextWidth\":290,\"_MinTextHeight\":null,\"previousSelection\":[3,3],\"savedTextString\":\"onDrag\",\"__LivelyClassName__\":\"lively.morphic.Text\"},\"185\":{\"fill\":null,\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"_Position\":{\"__isSmartRef__\":true,\"id\":186},\"_Extent\":{\"__isSmartRef__\":true,\"id\":187},\"_BorderWidth\":1,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":188},\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":189},\"_ClipMode\":\"hidden\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":190},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"186\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"187\":{\"x\":292,\"y\":25,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"188\":{\"r\":0,\"g\":0,\"b\":0,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"189\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"190\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"191\":{\"x\":17,\"y\":24,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"192\":{\"partsSpaceName\":\"PartsBin/NewWorld\",\"__SourceModuleName__\":\"Global.lively.PartsBin\",\"__LivelyClassName__\":\"lively.PartsBin.PartsBinMetaInfo\"},\"193\":{\"sourceObj\":{\"__isSmartRef__\":true,\"id\":184},\"sourceAttrName\":\"savedTextString\",\"targetObj\":{\"__isSmartRef__\":true,\"id\":183},\"targetMethodName\":\"search\",\"__SourceModuleName__\":\"Global.lively.bindings\",\"__LivelyClassName__\":\"AttributeConnection\"},\"194\":{\"style\":{\"__isSmartRef__\":true,\"id\":195},\"chunkOwner\":{\"__isSmartRef__\":true,\"id\":184},\"storedString\":\"enter method name her\",\"__LivelyClassName__\":\"lively.morphic.TextChunk\",\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\"},\"195\":{\"__LivelyClassName__\":\"lively.morphic.TextEmphasis\",\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\"},\"196\":{\"x\":292,\"y\":25,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"197\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\",\"updateText\":\"updateTextHTML\",\"setTextExtent\":\"setTextExtentHTML\",\"setMaxTextWidth\":\"setMaxTextWidthHTML\",\"setMaxTextHeight\":\"setMaxTextHeightHTML\",\"setMinTextWidth\":\"setMinTextWidthHTML\",\"setMinTextHeight\":\"setMinTextHeightHTML\",\"getTextExtent\":\"getTextExtentHTML\",\"getTextString\":\"getTextStringHTML\",\"ignoreTextEvents\":\"ignoreTextEventsHTML\",\"enableTextEvents\":\"enableTextEventsHTML\",\"setFontFamily\":\"setFontFamilyHTML\",\"setFontSize\":\"setFontSizeHTML\",\"setTextColor\":\"setTextColorHTML\",\"setPadding\":\"setPaddingHTML\",\"setAlign\":\"setAlignHTML\",\"setVerticalAlign\":\"setVerticalAlignHTML\",\"setDisplay\":\"setDisplayHTML\",\"setWhiteSpaceHandling\":\"setWhiteSpaceHandlingHTML\",\"focusMorph\":\"focusMorphHTML\"},\"198\":{\"morph\":{\"__isSmartRef__\":true,\"id\":184},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"199\":{\"submorphs\":[{\"__isSmartRef__\":true,\"id\":200}],\"scripts\":[],\"id\":1434,\"shape\":{\"__isSmartRef__\":true,\"id\":215},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"registeredForMouseEvents\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":231},\"value\":false,\"toggle\":false,\"isActive\":true,\"normalFill\":{\"__isSmartRef__\":true,\"id\":219},\"lighterFill\":{\"__isSmartRef__\":true,\"id\":232},\"label\":{\"__isSmartRef__\":true,\"id\":200},\"showsHalos\":false,\"name\":\"searchButton\",\"partsBinMetaInfo\":{\"__isSmartRef__\":true,\"id\":241},\"__SourceModuleName__\":\"Global.lively.morphic.Widgets\",\"owner\":{\"__isSmartRef__\":true,\"id\":183},\"attributeConnections\":[{\"__isSmartRef__\":true,\"id\":242}],\"doNotSerialize\":[\"$$fire\"],\"doNotCopyProperties\":[\"$$fire\"],\"priorExtent\":{\"__isSmartRef__\":true,\"id\":243},\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":244},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":245},\"_Rotation\":0,\"__LivelyClassName__\":\"lively.morphic.Button\"},\"200\":{\"submorphs\":[],\"scripts\":[],\"id\":1435,\"shape\":{\"__isSmartRef__\":true,\"id\":201},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"fixedWidth\":true,\"_WhiteSpaceHandling\":\"pre-wrap\",\"fixedHeight\":true,\"allowInput\":false,\"_FontFamily\":\"Helvetica\",\"registeredForMouseEvents\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":207},\"_MaxTextWidth\":77,\"_MaxTextHeight\":null,\"padding\":{\"__isSmartRef__\":true,\"id\":208},\"_Padding\":{\"__isSmartRef__\":true,\"id\":209},\"owner\":{\"__isSmartRef__\":true,\"id\":199},\"isLabel\":true,\"eventsAreIgnored\":true,\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"textStyle\":null,\"textChunks\":[{\"__isSmartRef__\":true,\"id\":210}],\"prevScroll\":[0,0],\"_ClipMode\":\"hidden\",\"priorExtent\":{\"__isSmartRef__\":true,\"id\":212},\"_Align\":\"center\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":213},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":214},\"_HandStyle\":\"default\",\"_PointerEvents\":\"none\",\"attributeConnections\":[],\"doNotSerialize\":[],\"doNotCopyProperties\":[],\"_MinTextWidth\":77,\"_MinTextHeight\":null,\"__LivelyClassName__\":\"lively.morphic.Text\"},\"201\":{\"position\":{\"__isSmartRef__\":true,\"id\":202},\"_Extent\":{\"__isSmartRef__\":true,\"id\":203},\"_BorderWidth\":0,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":204},\"_Fill\":null,\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":205},\"_ClipMode\":\"hidden\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":206},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"202\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"203\":{\"x\":77,\"y\":20,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"204\":{\"r\":0,\"g\":0,\"b\":0,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"205\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"206\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"207\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"208\":{\"x\":5,\"y\":5,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"209\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"210\":{\"style\":{\"__isSmartRef__\":true,\"id\":211},\"morph\":{\"__isSmartRef__\":true,\"id\":200},\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"chunkOwner\":{\"__isSmartRef__\":true,\"id\":200},\"storedString\":\"search\",\"__LivelyClassName__\":\"lively.morphic.TextChunk\"},\"211\":{\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"__LivelyClassName__\":\"lively.morphic.TextEmphasis\"},\"212\":{\"x\":77,\"y\":20,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"213\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\",\"updateText\":\"updateTextHTML\",\"setTextExtent\":\"setTextExtentHTML\",\"setMaxTextWidth\":\"setMaxTextWidthHTML\",\"setMaxTextHeight\":\"setMaxTextHeightHTML\",\"setMinTextWidth\":\"setMinTextWidthHTML\",\"setMinTextHeight\":\"setMinTextHeightHTML\",\"getTextExtent\":\"getTextExtentHTML\",\"getTextString\":\"getTextStringHTML\",\"ignoreTextEvents\":\"ignoreTextEventsHTML\",\"enableTextEvents\":\"enableTextEventsHTML\",\"setFontFamily\":\"setFontFamilyHTML\",\"setFontSize\":\"setFontSizeHTML\",\"setTextColor\":\"setTextColorHTML\",\"setPadding\":\"setPaddingHTML\",\"setAlign\":\"setAlignHTML\",\"setVerticalAlign\":\"setVerticalAlignHTML\",\"setDisplay\":\"setDisplayHTML\",\"setWhiteSpaceHandling\":\"setWhiteSpaceHandlingHTML\",\"focusMorph\":\"focusMorphHTML\"},\"214\":{\"morph\":{\"__isSmartRef__\":true,\"id\":200},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"215\":{\"position\":{\"__isSmartRef__\":true,\"id\":216},\"_Extent\":{\"__isSmartRef__\":true,\"id\":217},\"_BorderWidth\":1,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":218},\"_Fill\":{\"__isSmartRef__\":true,\"id\":219},\"_BorderRadius\":5,\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":229},\"_ClipMode\":\"visible\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":230},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"216\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"217\":{\"x\":77,\"y\":20,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"218\":{\"r\":0.4,\"g\":0.4,\"b\":0.4,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"219\":{\"stops\":[{\"__isSmartRef__\":true,\"id\":220},{\"__isSmartRef__\":true,\"id\":222},{\"__isSmartRef__\":true,\"id\":224},{\"__isSmartRef__\":true,\"id\":226}],\"vector\":{\"__isSmartRef__\":true,\"id\":228},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"__LivelyClassName__\":\"lively.morphic.LinearGradient\"},\"220\":{\"offset\":0,\"color\":{\"__isSmartRef__\":true,\"id\":221}},\"221\":{\"r\":0.9600000000000001,\"g\":0.9600000000000001,\"b\":0.9600000000000001,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"222\":{\"offset\":0.4,\"color\":{\"__isSmartRef__\":true,\"id\":223}},\"223\":{\"r\":0.8200000000000001,\"g\":0.8200000000000001,\"b\":0.8200000000000001,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"224\":{\"offset\":0.6,\"color\":{\"__isSmartRef__\":true,\"id\":225}},\"225\":{\"r\":0.8200000000000001,\"g\":0.8200000000000001,\"b\":0.8200000000000001,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"226\":{\"offset\":1,\"color\":{\"__isSmartRef__\":true,\"id\":227}},\"227\":{\"r\":0.94,\"g\":0.94,\"b\":0.94,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"228\":{\"x\":0,\"y\":0,\"width\":0,\"height\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"229\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"230\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"231\":{\"x\":315,\"y\":26,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"232\":{\"stops\":[{\"__isSmartRef__\":true,\"id\":233},{\"__isSmartRef__\":true,\"id\":235},{\"__isSmartRef__\":true,\"id\":237},{\"__isSmartRef__\":true,\"id\":239}],\"vector\":{\"__isSmartRef__\":true,\"id\":228},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"__LivelyClassName__\":\"lively.morphic.LinearGradient\"},\"233\":{\"offset\":0,\"color\":{\"__isSmartRef__\":true,\"id\":234}},\"234\":{\"r\":0.98,\"g\":0.98,\"b\":0.98,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"235\":{\"offset\":0.4,\"color\":{\"__isSmartRef__\":true,\"id\":236}},\"236\":{\"r\":0.91,\"g\":0.91,\"b\":0.91,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"237\":{\"offset\":0.6,\"color\":{\"__isSmartRef__\":true,\"id\":238}},\"238\":{\"r\":0.91,\"g\":0.91,\"b\":0.91,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"239\":{\"offset\":1,\"color\":{\"__isSmartRef__\":true,\"id\":240}},\"240\":{\"r\":0.97,\"g\":0.97,\"b\":0.97,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"241\":{\"partsSpaceName\":\"PartsBin/NewWorld\",\"__SourceModuleName__\":\"Global.lively.PartsBin\",\"__LivelyClassName__\":\"lively.PartsBin.PartsBinMetaInfo\"},\"242\":{\"sourceObj\":{\"__isSmartRef__\":true,\"id\":199},\"sourceAttrName\":\"fire\",\"targetObj\":{\"__isSmartRef__\":true,\"id\":184},\"targetMethodName\":\"doSave\",\"__SourceModuleName__\":\"Global.lively.bindings\",\"__LivelyClassName__\":\"AttributeConnection\"},\"243\":{\"x\":77,\"y\":21,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"244\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\"},\"245\":{\"morph\":{\"__isSmartRef__\":true,\"id\":199},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"246\":{\"submorphs\":[],\"scripts\":[],\"id\":1436,\"shape\":{\"__isSmartRef__\":true,\"id\":247},\"droppingEnabled\":true,\"halosEnabled\":true,\"registeredForMouseEvents\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":254},\"itemList\":[],\"showsHalos\":false,\"name\":\"searchResultList\",\"partsBinMetaInfo\":{\"__isSmartRef__\":true,\"id\":255},\"__SourceModuleName__\":\"Global.lively.morphic.Core\",\"owner\":{\"__isSmartRef__\":true,\"id\":183},\"attributeConnections\":[{\"__isSmartRef__\":true,\"id\":256}],\"doNotSerialize\":[\"$$selection\"],\"doNotCopyProperties\":[\"$$selection\"],\"prevScroll\":[0,48],\"resizeHeight\":true,\"resizeWidth\":true,\"layout\":{\"__isSmartRef__\":true,\"id\":257},\"priorExtent\":{\"__isSmartRef__\":true,\"id\":258},\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":259},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":260},\"_Rotation\":0,\"__LivelyClassName__\":\"lively.morphic.List\"},\"247\":{\"position\":{\"__isSmartRef__\":true,\"id\":248},\"_Extent\":{\"__isSmartRef__\":true,\"id\":249},\"_BorderWidth\":0,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":250},\"_Fill\":{\"__isSmartRef__\":true,\"id\":251},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":252},\"_Padding\":{\"__isSmartRef__\":true,\"id\":253},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"248\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"249\":{\"x\":875.3800299912526,\"y\":145.98799096394293,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"250\":{\"r\":0,\"g\":0,\"b\":0,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"251\":{\"r\":0.95,\"g\":0.95,\"b\":0.95,\"a\":1,\"__LivelyClassName__\":\"Color\",\"__SourceModuleName__\":\"Global\"},\"252\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"253\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"254\":{\"x\":8,\"y\":60,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"255\":{\"partsSpaceName\":\"PartsBin/NewWorld\",\"__SourceModuleName__\":\"Global.lively.PartsBin\",\"__LivelyClassName__\":\"lively.PartsBin.PartsBinMetaInfo\"},\"256\":{\"sourceObj\":{\"__isSmartRef__\":true,\"id\":246},\"sourceAttrName\":\"selection\",\"targetObj\":{\"__isSmartRef__\":true,\"id\":183},\"targetMethodName\":\"browse\",\"__SourceModuleName__\":\"Global.lively.bindings\",\"__LivelyClassName__\":\"AttributeConnection\"},\"257\":{\"resizeWidth\":true},\"258\":{\"x\":874.3800299912526,\"y\":145.98799096394293,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"259\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\",\"updateListContent\":\"updateListContentHTML\",\"resizeList\":\"resizeListHTML\",\"getItemIndexFromEvent\":\"getItemIndexFromEventHTML\",\"getListExtent\":\"getListExtentHTML\",\"setSize\":\"setSizeHTML\",\"renderAsDropDownList\":\"renderAsDropDownListHTML\",\"setFontSize\":\"setFontSizeHTML\",\"setFontFamily\":\"setFontFamilyHTML\",\"getSelectedIndexes\":\"getSelectedIndexesHTML\",\"enableMultipleSelections\":\"enableMultipleSelectionsHTML\",\"selectAllAt\":\"selectAllAtHTML\",\"clearSelections\":\"clearSelectionsHTML\",\"deselectAt\":\"deselectAtHTML\"},\"260\":{\"morph\":{\"__isSmartRef__\":true,\"id\":246},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"261\":{\"submorphs\":[],\"scripts\":[],\"id\":1437,\"shape\":{\"__isSmartRef__\":true,\"id\":262},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"fixedWidth\":true,\"_WhiteSpaceHandling\":\"pre-wrap\",\"fixedHeight\":true,\"allowInput\":true,\"_FontFamily\":\"Monaco, Courier\",\"registeredForMouseEvents\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":269},\"_MaxTextWidth\":872.0469590469621,\"_MaxTextHeight\":null,\"textStyle\":null,\"layout\":{\"__isSmartRef__\":true,\"id\":270},\"doitContext\":{\"__isSmartRef__\":true,\"id\":183},\"charsReplaced\":\"\",\"lastFindLoc\":127,\"showsHalos\":false,\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"name\":\"sourceText\",\"savedTextString\":\"// changes here only affect runtime\\nObject.extend(lively.morphic.Morph,{\\n\\tmakeLine:function (verts, lineWidth, lineColor) {\\n\\t\\tif (verts.length < 2) return null;\\n\\t\\tif (verts.length > 2) {\\n\\t\\t\\t// Polylines become a mere blob for now...\\n\\t\\t\\tvar morph = this.makeRectangle(Rectangle.unionPts(verts));\\n\\t\\t\\tmorph.setBorderWidth(lineWidth);\\n\\t\\t\\tmorph.setBorderColor(lineColor);\\n\\t\\t\\tmorph.setFill(null);\\n\\t\\t\\treturn morph;\\n\\t\\t} \\n\\t\\t// Okay, it's a simple line...\\n\\t\\tvar p1 = verts[0]; var p2 = verts[1];\\n\\t\\tvar v = p2.subPt(p1);\\n \\n\\t\\t// First make a horizontal line of the same length with origin at (0, 0)\\n\\t\\tvar morph = this.makeRectangle(Rectangle.unionPts([pt(0, -lineWidth/2), Point.polar(v.r(), 0).addXY(0, lineWidth/2)]));\\n\\n\\t\\t// *** Not right, but we want to make position and center of rot = (0, 0):\\n\\t\\t// morph._Position = pt(0, 0);\\n\\n\\t\\tmorph.setBorderWidth(0);\\n\\t\\tmorph.setFill(lineColor);\\n\\n\\t\\t// Then move and rotate, with first vertex being the rotation center\\n\\t\\tmorph.moveBy(p1);\\n\\t\\tmorph.setOrigin(pt(0, lineWidth/2));\\n\\t\\tmorph.isLine = true;\\n\\t\\treturn morph.rotateBy(v.theta());\\n\\t}\\n});\",\"textChunks\":[{\"__isSmartRef__\":true,\"id\":271}],\"priorSelectionRange\":[0,0],\"_ClipMode\":\"auto\",\"prevScroll\":[0,0],\"_FontSize\":9,\"owner\":{\"__isSmartRef__\":true,\"id\":183},\"priorExtent\":{\"__isSmartRef__\":true,\"id\":273},\"lastSyntaxHighlightTime\":1317994960034,\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":274},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":275},\"attributeConnections\":[],\"doNotSerialize\":[],\"doNotCopyProperties\":[],\"_Rotation\":0,\"_Scale\":0.9979990019999998,\"_MinTextWidth\":872.0469590469621,\"_MinTextHeight\":null,\"__serializedLivelyClosures__\":{\"__isSmartRef__\":true,\"id\":276},\"__LivelyClassName__\":\"lively.morphic.Text\"},\"262\":{\"position\":{\"__isSmartRef__\":true,\"id\":263},\"_Extent\":{\"__isSmartRef__\":true,\"id\":264},\"_BorderWidth\":1,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":265},\"_Fill\":{\"__isSmartRef__\":true,\"id\":266},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":267},\"_ClipMode\":\"auto\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":268},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"263\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"264\":{\"x\":874.0469590469621,\"y\":227.48209598213498,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"265\":{\"r\":0.4,\"g\":0.4,\"b\":0.4,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"266\":{\"r\":0.95,\"g\":0.95,\"b\":0.95,\"a\":1,\"__LivelyClassName__\":\"Color\",\"__SourceModuleName__\":\"Global\"},\"267\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"268\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"269\":{\"x\":10.701682800375693,\"y\":247.98173452400079,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"270\":{\"resizeWidth\":true,\"resizeHeight\":true,\"moveVertical\":false,\"moveHorizontal\":false},\"271\":{\"style\":{\"__isSmartRef__\":true,\"id\":272},\"chunkOwner\":{\"__isSmartRef__\":true,\"id\":261},\"storedString\":\"no code\",\"__LivelyClassName__\":\"lively.morphic.TextChunk\",\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\"},\"272\":{\"__LivelyClassName__\":\"lively.morphic.TextEmphasis\",\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\"},\"273\":{\"x\":874.0469590469621,\"y\":227.48209598213498,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"274\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\",\"updateText\":\"updateTextHTML\",\"setTextExtent\":\"setTextExtentHTML\",\"setMaxTextWidth\":\"setMaxTextWidthHTML\",\"setMaxTextHeight\":\"setMaxTextHeightHTML\",\"setMinTextWidth\":\"setMinTextWidthHTML\",\"setMinTextHeight\":\"setMinTextHeightHTML\",\"getTextExtent\":\"getTextExtentHTML\",\"getTextString\":\"getTextStringHTML\",\"ignoreTextEvents\":\"ignoreTextEventsHTML\",\"enableTextEvents\":\"enableTextEventsHTML\",\"setFontFamily\":\"setFontFamilyHTML\",\"setFontSize\":\"setFontSizeHTML\",\"setTextColor\":\"setTextColorHTML\",\"setPadding\":\"setPaddingHTML\",\"setAlign\":\"setAlignHTML\",\"setVerticalAlign\":\"setVerticalAlignHTML\",\"setDisplay\":\"setDisplayHTML\",\"setWhiteSpaceHandling\":\"setWhiteSpaceHandlingHTML\",\"focusMorph\":\"focusMorphHTML\"},\"275\":{\"morph\":{\"__isSmartRef__\":true,\"id\":261},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"276\":{\"doSave\":{\"__isSmartRef__\":true,\"id\":277},\"getDoitContext\":{\"__isSmartRef__\":true,\"id\":284}},\"277\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":278},\"source\":\"function doSave() {\\n\\t$super()\\n\\talertOK(\\\"eval all for \\\" + this.getDoitContext())\\n\\tthis.boundEval(this.textString)\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":283},\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"lively.Closure\"},\"278\":{\"this\":{\"__isSmartRef__\":true,\"id\":261},\"__serializedLivelyClosures__\":{\"__isSmartRef__\":true,\"id\":279}},\"279\":{\"$super\":{\"__isSmartRef__\":true,\"id\":280}},\"280\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":281},\"source\":\"function () {\\n\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\treturn obj.constructor.prototype[name].apply(obj, arguments)\\n\\t\\t\\t\\t} catch(e) {\\n\\t\\t\\t\\t\\talert('Error in $super call: ' + e + '\\\\n' + e.stack);\\n\\t\\t\\t\\t\\treturn null;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":282},\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"lively.Closure\"},\"281\":{\"obj\":{\"__isSmartRef__\":true,\"id\":261},\"name\":\"doSave\"},\"282\":{},\"283\":{},\"284\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":285},\"source\":\"function getDoitContext() {\\n\\treturn this.owner.targetObject\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":290},\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"lively.Closure\"},\"285\":{\"this\":{\"__isSmartRef__\":true,\"id\":261},\"__serializedLivelyClosures__\":{\"__isSmartRef__\":true,\"id\":286}},\"286\":{\"$super\":{\"__isSmartRef__\":true,\"id\":287}},\"287\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":288},\"source\":\"function () {\\n\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\treturn obj.constructor.prototype[name].apply(obj, arguments)\\n\\t\\t\\t\\t} catch(e) {\\n\\t\\t\\t\\t\\talert('Error in $super call: ' + e + '\\\\n' + e.stack);\\n\\t\\t\\t\\t\\treturn null;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":289},\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"lively.Closure\"},\"288\":{\"obj\":{\"__isSmartRef__\":true,\"id\":261},\"name\":\"getDoitContext\"},\"289\":{},\"290\":{},\"291\":{\"submorphs\":[],\"scripts\":[],\"id\":1438,\"shape\":{\"__isSmartRef__\":true,\"id\":292},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"fixedWidth\":true,\"_WhiteSpaceHandling\":\"pre-wrap\",\"fixedHeight\":true,\"allowInput\":true,\"_FontFamily\":\"Monaco, Courier\",\"registeredForMouseEvents\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":299},\"_MaxTextWidth\":872.0469590469621,\"_MaxTextHeight\":null,\"textStyle\":null,\"layout\":{\"__isSmartRef__\":true,\"id\":300},\"charsReplaced\":\"\",\"lastFindLoc\":697,\"showsHalos\":false,\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"name\":\"infoText\",\"savedTextString\":\"// MethodFinder (this)\\n\\n// ** MethodFinder's Scripts **\\nthis.addScript(function browse(fileFragment) {\\n\\tfileFragment && fileFragment.browseIt()\\n});\\n\\nthis.addScript(function reset() {\\n\\tthis.get('searchResultList').updateList([]);\\n\\tthis.get('searchResultList').setSelection(null);\\n\\tthis.get('searchText').setTextString('enter search term here');\\n});\\n\\n\\nthis.addScript(function search(searchString) {\\n\\tvar finds = [];\\n\\tvar re = new RegExp(searchString)\\n\\tvar i=0;\\n\\tvar time = Functions.timeToRun(function() {\\n\\tGlobal.classes(true).forEach(function(eaClass) {\\n\\t\\tFunctions.own(eaClass.prototype)\\n\\t\\t\\t.forEach(function(eaMethod) {\\n\\t\\t\\t\\ti++;\\n\\t\\t\\t\\tif (eaMethod.match(re)){\\n\\t\\t\\t\\t\\tfinds.push([eaClass, eaMethod])\\n\\t\\t\\t\\t}\\t\\n\\t\\t\\t})\\t\\n\\t})})\\n\\talert(\\\"search \\\" + i + \\\" methods, found \\\" + finds.length + \\\" methods in \\\" + time + \\\"ms\\\")\\n\\n\\tvar items = finds.collect(function(ea) {\\n\\t\\treturn {\\n\\t\\t\\tisListItem: true,\\n\\t\\t\\tvalue: ea,\\n\\t\\t\\tstring: ea[0].name + \\\": \\\" + ea[1],\\n\\t\\t}\\n\\t})\\n\\tthis.get('searchResultList').updateList(items);\\n});\",\"textChunks\":[{\"__isSmartRef__\":true,\"id\":301}],\"priorSelectionRange\":[37,37],\"_ClipMode\":\"hidden\",\"prevScroll\":[0,0],\"_FontSize\":10,\"priorExtent\":{\"__isSmartRef__\":true,\"id\":303},\"owner\":{\"__isSmartRef__\":true,\"id\":183},\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":304},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":305},\"attributeConnections\":[],\"doNotSerialize\":[],\"doNotCopyProperties\":[],\"_Rotation\":0,\"_Scale\":0.9979990019999998,\"_MinTextWidth\":872.0469590469621,\"_MinTextHeight\":null,\"__LivelyClassName__\":\"lively.morphic.Text\"},\"292\":{\"position\":{\"__isSmartRef__\":true,\"id\":293},\"_Extent\":{\"__isSmartRef__\":true,\"id\":294},\"_BorderWidth\":1,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":295},\"_Fill\":{\"__isSmartRef__\":true,\"id\":296},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":297},\"_ClipMode\":\"hidden\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":298},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"293\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"294\":{\"x\":874.0469590469621,\"y\":20.48209598213498,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"295\":{\"r\":0.4,\"g\":0.4,\"b\":0.4,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"296\":{\"r\":0.95,\"g\":0.95,\"b\":0.95,\"a\":1,\"__LivelyClassName__\":\"Color\",\"__SourceModuleName__\":\"Global\"},\"297\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"298\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"299\":{\"x\":6.701682800375693,\"y\":215.98173452400079,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"300\":{\"resizeWidth\":true,\"resizeHeight\":false,\"moveVertical\":false,\"moveHorizontal\":false},\"301\":{\"style\":{\"__isSmartRef__\":true,\"id\":302},\"chunkOwner\":{\"__isSmartRef__\":true,\"id\":291},\"storedString\":\"\",\"__LivelyClassName__\":\"lively.morphic.TextChunk\",\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\"},\"302\":{\"__LivelyClassName__\":\"lively.morphic.TextEmphasis\",\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\"},\"303\":{\"x\":874.0469590469621,\"y\":20.48209598213498,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"304\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\",\"updateText\":\"updateTextHTML\",\"setTextExtent\":\"setTextExtentHTML\",\"setMaxTextWidth\":\"setMaxTextWidthHTML\",\"setMaxTextHeight\":\"setMaxTextHeightHTML\",\"setMinTextWidth\":\"setMinTextWidthHTML\",\"setMinTextHeight\":\"setMinTextHeightHTML\",\"getTextExtent\":\"getTextExtentHTML\",\"getTextString\":\"getTextStringHTML\",\"ignoreTextEvents\":\"ignoreTextEventsHTML\",\"enableTextEvents\":\"enableTextEventsHTML\",\"setFontFamily\":\"setFontFamilyHTML\",\"setFontSize\":\"setFontSizeHTML\",\"setTextColor\":\"setTextColorHTML\",\"setPadding\":\"setPaddingHTML\",\"setAlign\":\"setAlignHTML\",\"setVerticalAlign\":\"setVerticalAlignHTML\",\"setDisplay\":\"setDisplayHTML\",\"setWhiteSpaceHandling\":\"setWhiteSpaceHandlingHTML\",\"focusMorph\":\"focusMorphHTML\"},\"305\":{\"morph\":{\"__isSmartRef__\":true,\"id\":291},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"306\":{\"submorphs\":[{\"__isSmartRef__\":true,\"id\":307}],\"scripts\":[],\"id\":1439,\"shape\":{\"__isSmartRef__\":true,\"id\":322},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"registeredForMouseEvents\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":338},\"value\":false,\"toggle\":false,\"isActive\":true,\"normalFill\":{\"__isSmartRef__\":true,\"id\":326},\"lighterFill\":{\"__isSmartRef__\":true,\"id\":339},\"label\":{\"__isSmartRef__\":true,\"id\":307},\"showsHalos\":false,\"name\":\"browse\",\"partsBinMetaInfo\":{\"__isSmartRef__\":true,\"id\":348},\"__SourceModuleName__\":\"Global.lively.morphic.Widgets\",\"attributeConnections\":[{\"__isSmartRef__\":true,\"id\":349}],\"doNotSerialize\":[\"$$fire\"],\"doNotCopyProperties\":[\"$$fire\"],\"priorExtent\":{\"__isSmartRef__\":true,\"id\":350},\"owner\":{\"__isSmartRef__\":true,\"id\":183},\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":351},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":352},\"_Rotation\":0,\"_Scale\":1,\"__LivelyClassName__\":\"lively.morphic.Button\"},\"307\":{\"submorphs\":[],\"scripts\":[],\"id\":1440,\"shape\":{\"__isSmartRef__\":true,\"id\":308},\"grabbingEnabled\":false,\"droppingEnabled\":false,\"halosEnabled\":true,\"fixedWidth\":true,\"_WhiteSpaceHandling\":\"pre-wrap\",\"fixedHeight\":true,\"allowInput\":false,\"_FontFamily\":\"Helvetica\",\"registeredForMouseEvents\":true,\"_Position\":{\"__isSmartRef__\":true,\"id\":314},\"_MaxTextWidth\":78,\"_MaxTextHeight\":null,\"padding\":{\"__isSmartRef__\":true,\"id\":315},\"_Padding\":{\"__isSmartRef__\":true,\"id\":316},\"owner\":{\"__isSmartRef__\":true,\"id\":306},\"isLabel\":true,\"eventsAreIgnored\":true,\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"textStyle\":null,\"textChunks\":[{\"__isSmartRef__\":true,\"id\":317}],\"prevScroll\":[0,0],\"_ClipMode\":\"hidden\",\"priorExtent\":{\"__isSmartRef__\":true,\"id\":319},\"_Align\":\"center\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":320},\"eventHandler\":{\"__isSmartRef__\":true,\"id\":321},\"_HandStyle\":\"default\",\"_PointerEvents\":\"none\",\"attributeConnections\":[],\"doNotSerialize\":[],\"doNotCopyProperties\":[],\"_MinTextWidth\":78,\"_MinTextHeight\":null,\"__LivelyClassName__\":\"lively.morphic.Text\"},\"308\":{\"position\":{\"__isSmartRef__\":true,\"id\":309},\"_Extent\":{\"__isSmartRef__\":true,\"id\":310},\"_BorderWidth\":0,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":311},\"_Fill\":null,\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":312},\"_ClipMode\":\"hidden\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":313},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"309\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"310\":{\"x\":78,\"y\":20,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"311\":{\"r\":0,\"g\":0,\"b\":0,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"312\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"313\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"314\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"315\":{\"x\":5,\"y\":5,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"316\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"317\":{\"style\":{\"__isSmartRef__\":true,\"id\":318},\"morph\":{\"__isSmartRef__\":true,\"id\":307},\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"chunkOwner\":{\"__isSmartRef__\":true,\"id\":307},\"storedString\":\"browse\",\"__LivelyClassName__\":\"lively.morphic.TextChunk\"},\"318\":{\"__SourceModuleName__\":\"Global.lively.morphic.TextCore\",\"__LivelyClassName__\":\"lively.morphic.TextEmphasis\"},\"319\":{\"x\":78,\"y\":20,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"320\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\",\"updateText\":\"updateTextHTML\",\"setTextExtent\":\"setTextExtentHTML\",\"setMaxTextWidth\":\"setMaxTextWidthHTML\",\"setMaxTextHeight\":\"setMaxTextHeightHTML\",\"setMinTextWidth\":\"setMinTextWidthHTML\",\"setMinTextHeight\":\"setMinTextHeightHTML\",\"getTextExtent\":\"getTextExtentHTML\",\"getTextString\":\"getTextStringHTML\",\"ignoreTextEvents\":\"ignoreTextEventsHTML\",\"enableTextEvents\":\"enableTextEventsHTML\",\"setFontFamily\":\"setFontFamilyHTML\",\"setFontSize\":\"setFontSizeHTML\",\"setTextColor\":\"setTextColorHTML\",\"setPadding\":\"setPaddingHTML\",\"setAlign\":\"setAlignHTML\",\"setVerticalAlign\":\"setVerticalAlignHTML\",\"setDisplay\":\"setDisplayHTML\",\"setWhiteSpaceHandling\":\"setWhiteSpaceHandlingHTML\",\"focusMorph\":\"focusMorphHTML\"},\"321\":{\"morph\":{\"__isSmartRef__\":true,\"id\":307},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"322\":{\"position\":{\"__isSmartRef__\":true,\"id\":323},\"_Extent\":{\"__isSmartRef__\":true,\"id\":324},\"_BorderWidth\":1,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":325},\"_Fill\":{\"__isSmartRef__\":true,\"id\":326},\"_BorderRadius\":5,\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":336},\"_ClipMode\":\"visible\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":337},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"323\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"324\":{\"x\":78,\"y\":20,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"325\":{\"r\":0.4,\"g\":0.4,\"b\":0.4,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"326\":{\"stops\":[{\"__isSmartRef__\":true,\"id\":327},{\"__isSmartRef__\":true,\"id\":329},{\"__isSmartRef__\":true,\"id\":331},{\"__isSmartRef__\":true,\"id\":333}],\"vector\":{\"__isSmartRef__\":true,\"id\":335},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"__LivelyClassName__\":\"lively.morphic.LinearGradient\"},\"327\":{\"offset\":0,\"color\":{\"__isSmartRef__\":true,\"id\":328}},\"328\":{\"r\":0.9600000000000001,\"g\":0.9600000000000001,\"b\":0.9600000000000001,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"329\":{\"offset\":0.4,\"color\":{\"__isSmartRef__\":true,\"id\":330}},\"330\":{\"r\":0.8200000000000001,\"g\":0.8200000000000001,\"b\":0.8200000000000001,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"331\":{\"offset\":0.6,\"color\":{\"__isSmartRef__\":true,\"id\":332}},\"332\":{\"r\":0.8200000000000001,\"g\":0.8200000000000001,\"b\":0.8200000000000001,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"333\":{\"offset\":1,\"color\":{\"__isSmartRef__\":true,\"id\":334}},\"334\":{\"r\":0.94,\"g\":0.94,\"b\":0.94,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"335\":{\"x\":0,\"y\":0,\"width\":0,\"height\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"336\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"337\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"338\":{\"x\":401.0439335888881,\"y\":26.725910952184506,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"339\":{\"stops\":[{\"__isSmartRef__\":true,\"id\":340},{\"__isSmartRef__\":true,\"id\":342},{\"__isSmartRef__\":true,\"id\":344},{\"__isSmartRef__\":true,\"id\":346}],\"vector\":{\"__isSmartRef__\":true,\"id\":335},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"__LivelyClassName__\":\"lively.morphic.LinearGradient\"},\"340\":{\"offset\":0,\"color\":{\"__isSmartRef__\":true,\"id\":341}},\"341\":{\"r\":0.98,\"g\":0.98,\"b\":0.98,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"342\":{\"offset\":0.4,\"color\":{\"__isSmartRef__\":true,\"id\":343}},\"343\":{\"r\":0.91,\"g\":0.91,\"b\":0.91,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"344\":{\"offset\":0.6,\"color\":{\"__isSmartRef__\":true,\"id\":345}},\"345\":{\"r\":0.91,\"g\":0.91,\"b\":0.91,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"346\":{\"offset\":1,\"color\":{\"__isSmartRef__\":true,\"id\":347}},\"347\":{\"r\":0.97,\"g\":0.97,\"b\":0.97,\"a\":1,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Color\"},\"348\":{\"partsSpaceName\":\"PartsBin/NewWorld\",\"__SourceModuleName__\":\"Global.lively.PartsBin\",\"__LivelyClassName__\":\"lively.PartsBin.PartsBinMetaInfo\"},\"349\":{\"sourceObj\":{\"__isSmartRef__\":true,\"id\":306},\"sourceAttrName\":\"fire\",\"targetObj\":{\"__isSmartRef__\":true,\"id\":183},\"targetMethodName\":\"browseMethod\",\"__SourceModuleName__\":\"Global.lively.bindings\",\"__LivelyClassName__\":\"AttributeConnection\"},\"350\":{\"x\":77,\"y\":20,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"351\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\"},\"352\":{\"morph\":{\"__isSmartRef__\":true,\"id\":306},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"353\":{\"position\":{\"__isSmartRef__\":true,\"id\":354},\"_Extent\":{\"__isSmartRef__\":true,\"id\":355},\"_BorderWidth\":2,\"_BorderColor\":{\"__isSmartRef__\":true,\"id\":6},\"_Fill\":{\"__isSmartRef__\":true,\"id\":356},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":357},\"_ClipMode\":\"visible\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":358},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"354\":{\"x\":0,\"y\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"355\":{\"x\":896.4170420843768,\"y\":485.002005010021,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"356\":{\"r\":1,\"g\":1,\"b\":1,\"a\":1,\"__LivelyClassName__\":\"Color\",\"__SourceModuleName__\":\"Global\"},\"357\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"358\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"359\":{\"x\":0,\"y\":22,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"360\":{\"partsSpaceName\":\"PartsBin/NewWorld\",\"__SourceModuleName__\":\"Global.lively.PartsBin\",\"migrationLevel\":4,\"requiredModules\":[\"lively.ide\"],\"partName\":\"MethodFinderPane\",\"__LivelyClassName__\":\"lively.PartsBin.PartsBinMetaInfo\"},\"361\":{\"resizeWidth\":true,\"resizeHeight\":true,\"adjustForNewBounds\":true},\"362\":{\"x\":896.4170420843768,\"y\":485.002005010021,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"363\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\"},\"364\":{\"morph\":{\"__isSmartRef__\":true,\"id\":183},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"365\":{\"browseMethod\":{\"__isSmartRef__\":true,\"id\":366},\"openMethodInSystemBrowser\":{\"__isSmartRef__\":true,\"id\":368},\"browse\":{\"__isSmartRef__\":true,\"id\":370},\"itemsFromFinds\":{\"__isSmartRef__\":true,\"id\":372}},\"366\":{\"time\":{\"__isSmartRef__\":true,\"id\":367},\"user\":\"jenslincke\"},\"367\":{\"isSerializedDate\":true,\"string\":\"Fri Oct 07 2011 15:42:47 GMT+0200 (CEST)\"},\"368\":{\"time\":{\"__isSmartRef__\":true,\"id\":369},\"user\":\"jenslincke\"},\"369\":{\"isSerializedDate\":true,\"string\":\"Fri Oct 07 2011 15:42:47 GMT+0200 (CEST)\"},\"370\":{\"time\":{\"__isSmartRef__\":true,\"id\":371},\"user\":\"jenslincke\"},\"371\":{\"isSerializedDate\":true,\"string\":\"Fri Oct 07 2011 15:26:25 GMT+0200 (CEST)\"},\"372\":{\"time\":{\"__isSmartRef__\":true,\"id\":373},\"user\":\"jenslincke\"},\"373\":{\"isSerializedDate\":true,\"string\":\"Fri Oct 07 2011 15:42:47 GMT+0200 (CEST)\"},\"374\":{\"search\":{\"__isSmartRef__\":true,\"id\":375},\"browse\":{\"__isSmartRef__\":true,\"id\":378},\"reset\":{\"__isSmartRef__\":true,\"id\":381},\"setSearch\":{\"__isSmartRef__\":true,\"id\":384},\"emphasizeStringIn\":{\"__isSmartRef__\":true,\"id\":387},\"withAllMethodsDo\":{\"__isSmartRef__\":true,\"id\":390},\"itemsFromFinds\":{\"__isSmartRef__\":true,\"id\":393},\"browseMethod\":{\"__isSmartRef__\":true,\"id\":396},\"openMethodInSystemBrowser\":{\"__isSmartRef__\":true,\"id\":399}},\"375\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":376},\"source\":\"function search(searchString) { \\n this.get('searchResultList').updateList([]);\\n this.get('sourceText').setTextString('');\\n if (!searchString || (searchString.length < 2)) {\\n this.get('sourceText').setTextString('\\\"' + searchString + '\\\" is to short');\\n return;\\n }\\n var finds = [];\\n var i=0;\\n var matches = function(s) {\\n return s.include(searchString)\\n } \\n\\n // var re = new RegExp(searchString)\\n var time = Functions.timeToRun(function() {\\n this.withAllMethodsDo(function(object, eaMethod, type) {\\n i++;\\n var name;\\n if (!object) return;\\n\\n if (object.constructor.prototype == object)\\n name = object.constructor.name\\n\\n if (object.name) name = object.name;\\n if (object.namespaceIdentifier)\\n name = object.namespaceIdentifier\\n\\n if (object.constructor.prototype != object)\\n name = name + \\\"(object)\\\"\\n\\n if ((object.constructor.prototype != object) && (object instanceof Morph))\\n name = object.name + \\\"(\\\" + object.id + \\\")\\\"\\n\\n if (object === Global)\\n name = \\\" \\\";\\n\\n var string = name + \\\": \\\" + eaMethod; \\n var item = {object: object, method: eaMethod, string: string, type: type};\\n\\n if (matches(eaMethod)) {\\n item.search= 'implementor',\\n finds.push(item)\\n return;\\n } \\n\\n var f = object[eaMethod];\\n if (!f || !f.getOriginal) return;\\n var source = String(f.getOriginal())\\n if (matches(source)){\\n item.search = 'sender'\\n finds.push(item)\\n } \\n })\\n }.bind(this))\\n this.get('sourceText').setTextString(\\\"search \\\" + i + \\\" methods, found \\\" \\n + finds.length + \\\" methods in \\\" + time + \\\"ms\\\");\\n var items = this.itemsFromFinds(finds)\\n this.get('searchResultList').updateList(items);\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":377},\"__LivelyClassName__\":\"lively.Closure\",\"__SourceModuleName__\":\"Global\"},\"376\":{\"this\":{\"__isSmartRef__\":true,\"id\":183}},\"377\":{},\"378\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":379},\"source\":\"function browse(methodItem) {\\n if (! methodItem) return;\\n var methodName = methodItem.method;\\n var object = methodItem.object;\\n var orgFunc = object[methodName];\\n if (!orgFunc) {\\n this.get('sourceText').setTextString('no source');\\n return\\n }\\n orgFunc = orgFunc.getOriginal()\\n \\n this.targetFunction = orgFunc;\\n this.targetObject = object;\\n\\n var source = \\\"// changes here only affect runtime\\\\n\\\", tab = lively.morphic.Text.prototype.tab;\\n if (orgFunc.declaredClass) {\\n source += orgFunc.declaredClass + \\\".addMethods({\\\\n\\\" + tab + methodName + \\\": \\\" +\\n orgFunc + \\\"\\\\n});\\\"\\n } else if(methodItem.type == 'extend') {\\n // perhaps it is a an class object\\n source += \\\"Object.extend(\\\" + (object.type || object.namespaceIdentifier) + \\\",{\\\\n\\\" + tab + methodName + \\\": \\\" +\\n orgFunc + \\\"\\\\n});\\\"\\n } else if(object.isMorph && (object.constructor.prototype !== object) ) {\\n // display as script\\n source = \\\"this.addScript(\\\" + orgFunc + \\\");\\\"\\n } else if(object === Global) {\\n // display as script\\n source += \\\"Object.extend(Global, {\\\\n\\\" + tab + methodName + \\\": \\\" +\\n orgFunc + \\\"\\\\n});\\\"\\n }\\n\\n this.get('sourceText').setTextString(source)\\n\\n module('lively.ide.SyntaxHighlighting').load(true)\\n this.get('sourceText').highlightJavaScriptSyntax()\\n\\n this.get('sourceText').emphasizeRegex(new RegExp(this.get('searchText').textString, \\\"g\\\"), {color: Color.red});\\n\\n var info = '' + orgFunc.sourceModule ;\\n if (orgFunc.belongsToTrait)\\n info += ' ' + orgFunc.belongsToTrait;\\n\\n this.get('infoText').setTextString(info)\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":380},\"__LivelyClassName__\":\"lively.Closure\",\"__SourceModuleName__\":\"Global\"},\"379\":{\"this\":{\"__isSmartRef__\":true,\"id\":183}},\"380\":{},\"381\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":382},\"source\":\"function reset() {\\n this.get('searchResultList').updateList([]);\\n this.get('searchResultList').setSelection(null);\\n this.get('searchText').setTextString('enter method name her');\\n this.get('sourceText').setTextString('no code');\\n this.get('infoText').setTextString('');\\n this.targetFunction = null;\\n this.targetObject = null;\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":383},\"__LivelyClassName__\":\"lively.Closure\",\"__SourceModuleName__\":\"Global\"},\"382\":{\"this\":{\"__isSmartRef__\":true,\"id\":183}},\"383\":{},\"384\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":385},\"source\":\"function setSearch(searchString) {\\n this.get('searchText').setTextString(searchString);\\n this.search(searchString)\\n var list = this.get('searchResultList').getList();\\n if (list.length > 0) this.get('searchResultList').setSelection(list[0])\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":386},\"__LivelyClassName__\":\"lively.Closure\",\"__SourceModuleName__\":\"Global\"},\"385\":{\"this\":{\"__isSmartRef__\":true,\"id\":183}},\"386\":{},\"387\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":388},\"source\":\"function emphasizeStringIn(morph, string, style) {\\n var m;\\n var re = new RegExp(string, \\\"g\\\");\\n while(m = re.exec(morph.textString)) {\\n var from = m.index,\\n to = m.index + m[0].length;\\n morph.emphasize(style, from, to)\\n }\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":389},\"__LivelyClassName__\":\"lively.Closure\",\"__SourceModuleName__\":\"Global\"},\"388\":{\"this\":{\"__isSmartRef__\":true,\"id\":183}},\"389\":{},\"390\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":391},\"source\":\"function withAllMethodsDo(func) {\\n var visited = [];\\n\\n Functions.own(Global).forEach(function(eaMethod) {\\n func(Global, eaMethod, 'global')\\n }); \\n\\n this.world().withAllSubmorphsDo(function(ea) {\\n Functions.own(ea).forEach(function(eaMethod) {\\n func(ea, eaMethod, 'script')\\n }); \\n });\\n\\n Global.subNamespaces(true).forEach(function(ea) {\\n Functions.own(ea).forEach(function(eaMethod) {\\n func(ea, eaMethod, 'extend')\\n }); \\n });\\n\\n Global.classes(true).uniq().forEach(function(eaClass) {\\n Functions.own(eaClass).forEach(function(eaMethod) {\\n func(eaClass, eaMethod, 'extend')\\n }); \\n\\n Functions.own(eaClass.prototype).forEach(function(eaMethod) {\\n func(eaClass.prototype, eaMethod, 'class')\\n }) \\n })\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":392},\"__LivelyClassName__\":\"lively.Closure\",\"__SourceModuleName__\":\"Global\"},\"391\":{\"this\":{\"__isSmartRef__\":true,\"id\":183}},\"392\":{},\"393\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":394},\"source\":\"function itemsFromFinds(finds) {\\n var items = finds.collect(function(ea) {\\n var pref = \\\"\\\" + ea.type + \\\" \\\";\\n if (ea.search == \\\"sender\\\") pref += \\\"full: \\\"\\n if (ea.search == \\\"implementor\\\") pref += \\\"name: \\\"\\n var string = pref + ea.string;\\n var func = ea.object[ea.method];\\n if (func.belongsToTrait) \\n string += ' / ' + func.belongsToTrait + '' \\n return {\\n isListItem: true,\\n value: ea,\\n string: string,\\n }\\n })\\n items = items.sortBy(function(ea) {return ea.string})\\n return items\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":395},\"__LivelyClassName__\":\"lively.Closure\",\"__SourceModuleName__\":\"Global\"},\"394\":{\"this\":{\"__isSmartRef__\":true,\"id\":183}},\"395\":{},\"396\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":397},\"source\":\"function browseMethod() {\\n alertOK('browseMethod')\\n if (!this.targetFunction) return;\\n var methodName = this.targetFunction.methodName || this.targetFunction.displayName; \\n if(this.targetFunction.declaredClass) {\\n var classObj = eval(this.targetFunction.declaredClass)\\n this.openMethodInSystemBrowser(classObj.type, methodName);\\n return;\\n }\\n if(this.targetFunction.belongsToTrait) {\\n this.openMethodInSystemBrowser(this.targetFunction.belongsToTrait.name, methodName);\\n return;\\n }\\n if(Class.isClass(this.targetObject)) {\\n this.openMethodInSystemBrowser(this.targetObject.type, methodName);\\n return;\\n }\\n if(this.targetObject.namespaceIdentifier) {\\n this.openMethodInSystemBrowser(this.targetObject.namespaceIdentifier, methodName);\\n return;\\n }\\n if(this.targetObject instanceof lively.morphic.Morph) {\\n var editor = this.world().openScriptEditorFor(this.targetObject);\\n editor.align(editor.bounds().center(), this.world().visibleBounds().center());\\n return;\\n }\\n if (Class.isClass(this.targetFunction)) {\\n // constructor\\n this.openMethodInSystemBrowser(this.targetFunction.displayName);\\n return;\\n }\\n alert('not implemented yet for ' + this.targetFunction)\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":398},\"__LivelyClassName__\":\"lively.Closure\",\"__SourceModuleName__\":\"Global\"},\"397\":{\"this\":{\"__isSmartRef__\":true,\"id\":183}},\"398\":{},\"399\":{\"varMapping\":{\"__isSmartRef__\":true,\"id\":400},\"source\":\"function openMethodInSystemBrowser(objectName, methodName) {\\n alert(\\\"browse \\\" + objectName + \\\":\\\" + methodName)\\n // objectName = 'SelectionMorphTrait', methodName = 'onDrag'\\n var uri = new URL(this.targetFunction.sourceModule.uri()),\\n relative = uri.relativePathFrom(new URL(Config.codeBase)),\\n moduleNode = lively.ide.startSourceControl().addModule(relative),\\n rootNode = moduleNode.ast();\\n\\n var fileFragments = rootNode.subElements(10).select(function(ea) {\\n var path = ea.getOwnerNamePath()\\n return path.include(objectName) && (!methodName || path.include(methodName)) \\n });\\n\\n alertOK(\\\"found following places to browse: \\\" + fileFragments)\\n if (fileFragments.length > 0) {\\n fileFragments[0].browseIt()\\n }\\n\\n}\",\"funcProperties\":{\"__isSmartRef__\":true,\"id\":401},\"__LivelyClassName__\":\"lively.Closure\",\"__SourceModuleName__\":\"Global\"},\"400\":{\"this\":{\"__isSmartRef__\":true,\"id\":183}},\"401\":{},\"402\":{\"_BorderWidth\":0,\"_Fill\":null,\"_StrokeOpacity\":0,\"_BorderRadius\":0,\"_Extent\":{\"__isSmartRef__\":true,\"id\":403},\"__SourceModuleName__\":\"Global.lively.morphic.Shapes\",\"renderContextTable\":{\"__isSmartRef__\":true,\"id\":404},\"_ClipMode\":\"visible\",\"_Padding\":{\"__isSmartRef__\":true,\"id\":405},\"__LivelyClassName__\":\"lively.morphic.Shapes.Rectangle\"},\"403\":{\"x\":896.4170420843768,\"y\":507.002005010021,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"404\":{\"init\":\"initHTML\",\"appendShape\":\"renderHTML\",\"setPosition\":\"setPositionHTML\",\"setExtent\":\"setExtentHTML\",\"setPadding\":\"setPaddingHTML\",\"setFill\":\"setFillHTML\",\"setBorderColor\":\"setBorderColorHTML\",\"setBorderWidth\":\"setBorderWidthHTML\",\"setStrokeOpacity\":\"setStrokeOpacityHTML\",\"setBorderRadius\":\"setBorderRadiusHTML\",\"setBorderStyle\":\"setBorderStyleHTML\",\"setOpacity\":\"setOpacityHTML\",\"setClipMode\":\"setClipModeHTML\"},\"405\":{\"x\":0,\"y\":0,\"width\":0,\"height\":0,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Rectangle\"},\"406\":{\"adjustForNewBounds\":true},\"407\":{\"x\":0,\"y\":0,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"408\":{\"x\":896.4170420843768,\"y\":507.002005010021,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"409\":{\"x\":0,\"y\":22,\"__SourceModuleName__\":\"Global\",\"__LivelyClassName__\":\"Point\"},\"410\":{\"x\":360,\"y\":111,\"__LivelyClassName__\":\"Point\",\"__SourceModuleName__\":\"Global\"},\"411\":{\"requiredModules\":[\"lively.ide\"],\"migrationLevel\":4,\"partsSpaceName\":\"PartsBin/Tools\",\"__SourceModuleName__\":\"Global.lively.PartsBin\",\"comment\":\"A method finder that searches all loaded classes and methods for matches in the source. \",\"partName\":\"MethodFinder\",\"__LivelyClassName__\":\"lively.PartsBin.PartsBinMetaInfo\"},\"412\":{\"replaceRenderContext\":\"replaceRenderContextHTML\",\"init\":\"initHTML\",\"append\":\"appendHTML\",\"remove\":\"removeHTML\",\"triggerEvent\":\"triggerEventHTML\",\"setTransform\":\"setTransformHTML\",\"setPosition\":\"setPositionHTML\",\"setRotation\":\"setRotationHTML\",\"setExtent\":\"setExtentHTML\",\"setScale\":\"setScaleHTML\",\"setVisible\":\"setVisibleHTML\",\"setOrigin\":\"setOriginHTML\",\"setPivotPoint\":\"setPivotPointHTML\",\"setClipMode\":\"setClipModeHTML\",\"showsVerticalScrollBar\":\"showsVerticalScrollBarHTML\",\"showsHorizontalScrollBar\":\"showsHorizontalScrollBarHTML\",\"getScrollBarExtent\":\"getScrollBarExtentHTML\",\"setHandStyle\":\"setHandStyleHTML\",\"setPointerEvents\":\"setPointerEventsHTML\",\"setToolTip\":\"setToolTipHTML\",\"focus\":\"focusHTML\",\"blur\":\"blurHTML\",\"setFocusable\":\"setFocusableHTML\"},\"413\":{\"morph\":{\"__isSmartRef__\":true,\"id\":0},\"__SourceModuleName__\":\"Global.lively.morphic.Events\",\"__LivelyClassName__\":\"lively.morphic.EventHandler\"},\"isSimplifiedRegistry\":true}}","loadedMetaInfo":{"__isSmartRef__":true,"id":1363},"__LivelyClassName__":"lively.PartsBin.PartItem","__SourceModuleName__":"Global.lively.PartsBin"},"410":{"submorphs":[{"__isSmartRef__":true,"id":411},{"__isSmartRef__":true,"id":552},{"__isSmartRef__":true,"id":587}],"scripts":[],"id":724,"shape":{"__isSmartRef__":true,"id":1354},"droppingEnabled":true,"halosEnabled":true,"__layered_draggingEnabled__":true,"layout":{"__isSmartRef__":true,"id":1358},"_Position":{"__isSmartRef__":true,"id":1359},"priorExtent":{"__isSmartRef__":true,"id":1360},"targetMorph":{"__isSmartRef__":true,"id":587},"titleBar":{"__isSmartRef__":true,"id":411},"contentOffset":{"__isSmartRef__":true,"id":1361},"collapsedTransform":null,"collapsedExtent":null,"expandedTransform":null,"expandedExtent":null,"ignoreEventsOnExpand":false,"highlighted":true,"prevDragPos":{"__isSmartRef__":true,"id":1362},"showsHalos":false,"name":"MethodFinder1","partsBinMetaInfo":{"__isSmartRef__":true,"id":1363},"__SourceModuleName__":"Global.lively.morphic.Widgets","renderContextTable":{"__isSmartRef__":true,"id":1364},"eventHandler":{"__isSmartRef__":true,"id":1365},"isBeingDragged":false,"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_Rotation":0,"_Scale":1,"prevScroll":[0,0],"owner":{"__isSmartRef__":true,"id":0},"__LivelyClassName__":"lively.morphic.Window","withoutLayers":["Global.lively.morphic.GrabbingLayer"]},"411":{"submorphs":[{"__isSmartRef__":true,"id":412},{"__isSmartRef__":true,"id":426},{"__isSmartRef__":true,"id":472},{"__isSmartRef__":true,"id":506}],"scripts":[],"id":725,"shape":{"__isSmartRef__":true,"id":541},"droppingEnabled":true,"halosEnabled":true,"layout":{"__isSmartRef__":true,"id":547},"_Position":{"__isSmartRef__":true,"id":548},"eventsAreIgnored":true,"windowMorph":{"__isSmartRef__":true,"id":410},"label":{"__isSmartRef__":true,"id":412},"closeButton":{"__isSmartRef__":true,"id":426},"menuButton":{"__isSmartRef__":true,"id":472},"collapseButton":{"__isSmartRef__":true,"id":506},"priorExtent":{"__isSmartRef__":true,"id":549},"owner":{"__isSmartRef__":true,"id":410},"__SourceModuleName__":"Global.lively.morphic.Widgets","renderContextTable":{"__isSmartRef__":true,"id":550},"eventHandler":{"__isSmartRef__":true,"id":551},"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"__LivelyClassName__":"lively.morphic.TitleBar"},"412":{"submorphs":[],"scripts":[],"id":726,"shape":{"__isSmartRef__":true,"id":413},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Padding":{"__isSmartRef__":true,"id":419},"_ClipMode":"hidden","fixedWidth":false,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_Position":{"__isSmartRef__":true,"id":420},"priorExtent":{"__isSmartRef__":true,"id":421},"_MaxTextWidth":null,"_MaxTextHeight":null,"textChunks":[{"__isSmartRef__":true,"id":422}],"evalEnabled":false,"isLabel":true,"eventsAreIgnored":true,"_FontSize":10,"owner":{"__isSmartRef__":true,"id":411},"__SourceModuleName__":"Global.lively.morphic.TextCore","renderContextTable":{"__isSmartRef__":true,"id":424},"eventHandler":{"__isSmartRef__":true,"id":425},"_HandStyle":"default","_PointerEvents":"none","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_MinTextWidth":null,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"413":{"_Position":{"__isSmartRef__":true,"id":414},"_Extent":{"__isSmartRef__":true,"id":415},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":416},"_Fill":null,"_BorderRadius":0,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":417},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":418},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"414":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"415":{"x":837.4170420843768,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"416":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"417":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"418":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"419":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"420":{"x":20,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"421":{"x":837.4170420843768,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"422":{"style":{"__isSmartRef__":true,"id":423},"morph":{"__isSmartRef__":true,"id":412},"__SourceModuleName__":"Global.lively.morphic.TextCore","chunkOwner":{"__isSmartRef__":true,"id":412},"storedString":"MethodFinder","__LivelyClassName__":"lively.morphic.TextChunk"},"423":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"424":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"425":{"morph":{"__isSmartRef__":true,"id":412},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"426":{"submorphs":[{"__isSmartRef__":true,"id":427}],"scripts":[],"id":727,"shape":{"__isSmartRef__":true,"id":440},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":456},"priorExtent":{"__isSmartRef__":true,"id":457},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":444},"lighterFill":{"__isSmartRef__":true,"id":458},"label":{"__isSmartRef__":true,"id":427},"owner":{"__isSmartRef__":true,"id":411},"layout":{"__isSmartRef__":true,"id":467},"attributeConnections":[{"__isSmartRef__":true,"id":468},{"__isSmartRef__":true,"id":469}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","renderContextTable":{"__isSmartRef__":true,"id":470},"eventHandler":{"__isSmartRef__":true,"id":471},"__LivelyClassName__":"lively.morphic.WindowControl"},"427":{"submorphs":[],"scripts":[],"id":728,"shape":{"__isSmartRef__":true,"id":428},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Padding":{"__isSmartRef__":true,"id":433},"_ClipMode":"hidden","fixedWidth":false,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_Position":{"__isSmartRef__":true,"id":434},"priorExtent":{"__isSmartRef__":true,"id":435},"_MaxTextWidth":null,"_MaxTextHeight":null,"textChunks":[{"__isSmartRef__":true,"id":436}],"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":426},"isLabel":true,"eventsAreIgnored":true,"_FontSize":8,"__SourceModuleName__":"Global.lively.morphic.TextCore","renderContextTable":{"__isSmartRef__":true,"id":438},"eventHandler":{"__isSmartRef__":true,"id":439},"_HandStyle":"default","_PointerEvents":"none","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_MinTextWidth":null,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"428":{"_Position":{"__isSmartRef__":true,"id":429},"_Extent":{"__isSmartRef__":true,"id":430},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":416},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":431},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":432},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"429":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"430":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"431":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"432":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"433":{"x":5,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"434":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"435":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"436":{"style":{"__isSmartRef__":true,"id":437},"morph":{"__isSmartRef__":true,"id":427},"__SourceModuleName__":"Global.lively.morphic.TextCore","chunkOwner":{"__isSmartRef__":true,"id":427},"storedString":"X","__LivelyClassName__":"lively.morphic.TextChunk"},"437":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"438":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"439":{"morph":{"__isSmartRef__":true,"id":427},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"440":{"_Position":{"__isSmartRef__":true,"id":441},"_Extent":{"__isSmartRef__":true,"id":442},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":443},"_Fill":{"__isSmartRef__":true,"id":444},"_StrokeOpacity":0,"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":454},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":455},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"441":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"442":{"x":17,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"443":{"r":0.8392156862745098,"g":0.8392156862745098,"b":0.8392156862745098,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"444":{"stops":[{"__isSmartRef__":true,"id":445},{"__isSmartRef__":true,"id":447},{"__isSmartRef__":true,"id":449},{"__isSmartRef__":true,"id":451}],"vector":{"__isSmartRef__":true,"id":453},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"445":{"offset":0,"color":{"__isSmartRef__":true,"id":446}},"446":{"r":0.9600000000000001,"g":0.9600000000000001,"b":0.9600000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"447":{"offset":0.4,"color":{"__isSmartRef__":true,"id":448}},"448":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"449":{"offset":0.6,"color":{"__isSmartRef__":true,"id":450}},"450":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"451":{"offset":1,"color":{"__isSmartRef__":true,"id":452}},"452":{"r":0.94,"g":0.94,"b":0.94,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"453":{"x":0,"y":0,"width":0,"height":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"454":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"455":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"456":{"x":876.4170420843768,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"457":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"458":{"stops":[{"__isSmartRef__":true,"id":459},{"__isSmartRef__":true,"id":461},{"__isSmartRef__":true,"id":463},{"__isSmartRef__":true,"id":465}],"vector":{"__isSmartRef__":true,"id":453},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"459":{"offset":0,"color":{"__isSmartRef__":true,"id":460}},"460":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"461":{"offset":0.4,"color":{"__isSmartRef__":true,"id":462}},"462":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"463":{"offset":0.6,"color":{"__isSmartRef__":true,"id":464}},"464":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"465":{"offset":1,"color":{"__isSmartRef__":true,"id":466}},"466":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"467":{"moveHorizontal":true},"468":{"sourceObj":{"__isSmartRef__":true,"id":426},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":410},"targetMethodName":"getCloseHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"469":{"sourceObj":{"__isSmartRef__":true,"id":426},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":410},"targetMethodName":"initiateShutdown","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"470":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"471":{"morph":{"__isSmartRef__":true,"id":426},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"472":{"submorphs":[{"__isSmartRef__":true,"id":473}],"scripts":[],"id":729,"shape":{"__isSmartRef__":true,"id":486},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":491},"priorExtent":{"__isSmartRef__":true,"id":492},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":444},"lighterFill":{"__isSmartRef__":true,"id":493},"label":{"__isSmartRef__":true,"id":473},"owner":{"__isSmartRef__":true,"id":411},"attributeConnections":[{"__isSmartRef__":true,"id":502},{"__isSmartRef__":true,"id":503}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","renderContextTable":{"__isSmartRef__":true,"id":504},"eventHandler":{"__isSmartRef__":true,"id":505},"__LivelyClassName__":"lively.morphic.WindowControl"},"473":{"submorphs":[],"scripts":[],"id":730,"shape":{"__isSmartRef__":true,"id":474},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Padding":{"__isSmartRef__":true,"id":479},"_ClipMode":"hidden","fixedWidth":false,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_Position":{"__isSmartRef__":true,"id":480},"priorExtent":{"__isSmartRef__":true,"id":481},"_MaxTextWidth":null,"_MaxTextHeight":null,"textChunks":[{"__isSmartRef__":true,"id":482}],"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":472},"isLabel":true,"eventsAreIgnored":true,"_FontSize":8,"__SourceModuleName__":"Global.lively.morphic.TextCore","renderContextTable":{"__isSmartRef__":true,"id":484},"eventHandler":{"__isSmartRef__":true,"id":485},"_HandStyle":"default","_PointerEvents":"none","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_MinTextWidth":null,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"474":{"_Position":{"__isSmartRef__":true,"id":475},"_Extent":{"__isSmartRef__":true,"id":476},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":416},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":477},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":478},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"475":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"476":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"477":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"478":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"479":{"x":5,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"480":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"481":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"482":{"style":{"__isSmartRef__":true,"id":483},"morph":{"__isSmartRef__":true,"id":473},"__SourceModuleName__":"Global.lively.morphic.TextCore","chunkOwner":{"__isSmartRef__":true,"id":473},"storedString":"M","__LivelyClassName__":"lively.morphic.TextChunk"},"483":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"484":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"485":{"morph":{"__isSmartRef__":true,"id":473},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"486":{"_Position":{"__isSmartRef__":true,"id":487},"_Extent":{"__isSmartRef__":true,"id":488},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":443},"_Fill":{"__isSmartRef__":true,"id":444},"_StrokeOpacity":0,"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":489},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":490},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"487":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"488":{"x":17,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"489":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"490":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"491":{"x":3,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"492":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"493":{"stops":[{"__isSmartRef__":true,"id":494},{"__isSmartRef__":true,"id":496},{"__isSmartRef__":true,"id":498},{"__isSmartRef__":true,"id":500}],"vector":{"__isSmartRef__":true,"id":453},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"494":{"offset":0,"color":{"__isSmartRef__":true,"id":495}},"495":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"496":{"offset":0.4,"color":{"__isSmartRef__":true,"id":497}},"497":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"498":{"offset":0.6,"color":{"__isSmartRef__":true,"id":499}},"499":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"500":{"offset":1,"color":{"__isSmartRef__":true,"id":501}},"501":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"502":{"sourceObj":{"__isSmartRef__":true,"id":472},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":410},"targetMethodName":"getMenuHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"503":{"sourceObj":{"__isSmartRef__":true,"id":472},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":410},"targetMethodName":"showTargetMorphMenu","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"504":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"505":{"morph":{"__isSmartRef__":true,"id":472},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"506":{"submorphs":[{"__isSmartRef__":true,"id":507}],"scripts":[],"id":731,"shape":{"__isSmartRef__":true,"id":520},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":525},"priorExtent":{"__isSmartRef__":true,"id":526},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":444},"lighterFill":{"__isSmartRef__":true,"id":527},"label":{"__isSmartRef__":true,"id":507},"owner":{"__isSmartRef__":true,"id":411},"layout":{"__isSmartRef__":true,"id":536},"attributeConnections":[{"__isSmartRef__":true,"id":537},{"__isSmartRef__":true,"id":538}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","renderContextTable":{"__isSmartRef__":true,"id":539},"eventHandler":{"__isSmartRef__":true,"id":540},"__LivelyClassName__":"lively.morphic.WindowControl"},"507":{"submorphs":[],"scripts":[],"id":732,"shape":{"__isSmartRef__":true,"id":508},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Padding":{"__isSmartRef__":true,"id":513},"_ClipMode":"hidden","fixedWidth":false,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_Position":{"__isSmartRef__":true,"id":514},"priorExtent":{"__isSmartRef__":true,"id":515},"_MaxTextWidth":null,"_MaxTextHeight":null,"textChunks":[{"__isSmartRef__":true,"id":516}],"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":506},"isLabel":true,"eventsAreIgnored":true,"_FontSize":8,"__SourceModuleName__":"Global.lively.morphic.TextCore","renderContextTable":{"__isSmartRef__":true,"id":518},"eventHandler":{"__isSmartRef__":true,"id":519},"_HandStyle":"default","_PointerEvents":"none","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_MinTextWidth":null,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"508":{"_Position":{"__isSmartRef__":true,"id":509},"_Extent":{"__isSmartRef__":true,"id":510},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":416},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":511},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":512},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"509":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"510":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"511":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"512":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"513":{"x":5,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"514":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"515":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"516":{"style":{"__isSmartRef__":true,"id":517},"morph":{"__isSmartRef__":true,"id":507},"__SourceModuleName__":"Global.lively.morphic.TextCore","chunkOwner":{"__isSmartRef__":true,"id":507},"storedString":"–","__LivelyClassName__":"lively.morphic.TextChunk"},"517":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"518":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"519":{"morph":{"__isSmartRef__":true,"id":507},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"520":{"_Position":{"__isSmartRef__":true,"id":521},"_Extent":{"__isSmartRef__":true,"id":522},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":443},"_Fill":{"__isSmartRef__":true,"id":444},"_StrokeOpacity":0,"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":523},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":524},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"521":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"522":{"x":17,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"523":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"524":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"525":{"x":857.4170420843768,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"526":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"527":{"stops":[{"__isSmartRef__":true,"id":528},{"__isSmartRef__":true,"id":530},{"__isSmartRef__":true,"id":532},{"__isSmartRef__":true,"id":534}],"vector":{"__isSmartRef__":true,"id":453},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"528":{"offset":0,"color":{"__isSmartRef__":true,"id":529}},"529":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"530":{"offset":0.4,"color":{"__isSmartRef__":true,"id":531}},"531":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"532":{"offset":0.6,"color":{"__isSmartRef__":true,"id":533}},"533":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"534":{"offset":1,"color":{"__isSmartRef__":true,"id":535}},"535":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"536":{"moveHorizontal":true},"537":{"sourceObj":{"__isSmartRef__":true,"id":506},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":410},"targetMethodName":"getCollapseHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"538":{"sourceObj":{"__isSmartRef__":true,"id":506},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":410},"targetMethodName":"toggleCollapse","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"539":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"540":{"morph":{"__isSmartRef__":true,"id":506},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"541":{"_Position":{"__isSmartRef__":true,"id":542},"_Extent":{"__isSmartRef__":true,"id":543},"_BorderWidth":2,"_BorderColor":{"__isSmartRef__":true,"id":544},"_Fill":{"__isSmartRef__":true,"id":136},"_StrokeOpacity":1,"_BorderRadius":"8px 8px 0px 0px","__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":545},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":546},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"542":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"543":{"x":896.4170420843768,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"544":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"545":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"546":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"547":{"resizeWidth":true,"adjustForNewBounds":true},"548":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"549":{"x":896.4170420843768,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"550":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"551":{"morph":{"__isSmartRef__":true,"id":411},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"552":{"submorphs":[],"scripts":[],"id":733,"shape":{"__isSmartRef__":true,"id":553},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":560},"showsHalos":false,"name":"ResizeCorner2","partsBinMetaInfo":{"__isSmartRef__":true,"id":561},"__SourceModuleName__":"Global.lively.morphic.Core","__layered_draggingEnabled__":true,"dragStartPoint":null,"originalExtent":{"__isSmartRef__":true,"id":562},"originalTargetExtent":null,"owner":{"__isSmartRef__":true,"id":410},"renderContextTable":{"__isSmartRef__":true,"id":563},"eventHandler":{"__isSmartRef__":true,"id":564},"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_Rotation":0,"_Scale":1.0000000000000002,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":565},"__LivelyClassName__":"lively.morphic.Box"},"553":{"position":{"__isSmartRef__":true,"id":554},"_Extent":{"__isSmartRef__":true,"id":555},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":556},"_Fill":{"__isSmartRef__":true,"id":557},"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":558},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":559},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"554":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"555":{"x":13,"y":15,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"556":{"r":0.568,"g":0.568,"b":0.568,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"557":{"r":0.258,"g":0.258,"b":0.258,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"558":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"559":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"560":{"x":883.4170420843768,"y":492.002005010021,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"561":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","migrationLevel":2,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"562":{"x":239,"y":138,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"563":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"564":{"morph":{"__isSmartRef__":true,"id":552},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"565":{"onDrag":{"__isSmartRef__":true,"id":566},"onDragEnd":{"__isSmartRef__":true,"id":573},"onDragStart":{"__isSmartRef__":true,"id":580}},"566":{"varMapping":{"__isSmartRef__":true,"id":567},"source":"function onDrag(evt) {\n\t// alert(\"onDrag\")\n\t\tvar moveDelta = evt.mousePoint.subPt(this.dragStartPoint)\n\t\tif (evt.isShiftDown()) {\n\t\t\tvar maxDelta = Math.max(moveDelta.x, moveDelta.y);\n\t\t\tmoveDelta = pt(maxDelta, maxDelta);\n\t\t}\n\t\tthis.owner.setExtent(this.originalTargetExtent.addPt(moveDelta));\n\t\tthis.align(this.bounds().bottomRight(), this.owner.getExtent())\n}","funcProperties":{"__isSmartRef__":true,"id":572},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"567":{"this":{"__isSmartRef__":true,"id":552},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":568}},"568":{"$super":{"__isSmartRef__":true,"id":569}},"569":{"varMapping":{"__isSmartRef__":true,"id":570},"source":"function () {\n\t\t\t\ttry {\n\t\t\t\t\treturn obj.constructor.prototype[name].apply(obj, arguments)\n\t\t\t\t} catch(e) {\n\t\t\t\t\talert('Error in $super call: ' + e + '\\n' + e.stack);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}","funcProperties":{"__isSmartRef__":true,"id":571},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"570":{"obj":{"__isSmartRef__":true,"id":552},"name":"onDrag"},"571":{},"572":{},"573":{"varMapping":{"__isSmartRef__":true,"id":574},"source":"function onDragEnd(evt) {\n\tthis.dragStartPoint = null;\n\tthis.originalTargetExtent = null;\n}","funcProperties":{"__isSmartRef__":true,"id":579},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"574":{"this":{"__isSmartRef__":true,"id":552},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":575}},"575":{"$super":{"__isSmartRef__":true,"id":576}},"576":{"varMapping":{"__isSmartRef__":true,"id":577},"source":"function () {\n\t\t\t\ttry {\n\t\t\t\t\treturn obj.constructor.prototype[name].apply(obj, arguments)\n\t\t\t\t} catch(e) {\n\t\t\t\t\talert('Error in $super call: ' + e + '\\n' + e.stack);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}","funcProperties":{"__isSmartRef__":true,"id":578},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"577":{"obj":{"__isSmartRef__":true,"id":552},"name":"onDragEnd"},"578":{},"579":{},"580":{"varMapping":{"__isSmartRef__":true,"id":581},"source":"function onDragStart(evt) {\n\tthis.dragStartPoint = evt.mousePoint;\n\tthis.originalTargetExtent = this.owner.getExtent();\n}","funcProperties":{"__isSmartRef__":true,"id":586},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"581":{"this":{"__isSmartRef__":true,"id":552},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":582}},"582":{"$super":{"__isSmartRef__":true,"id":583}},"583":{"varMapping":{"__isSmartRef__":true,"id":584},"source":"function () {\n\t\t\t\ttry {\n\t\t\t\t\treturn obj.constructor.prototype[name].apply(obj, arguments)\n\t\t\t\t} catch(e) {\n\t\t\t\t\talert('Error in $super call: ' + e + '\\n' + e.stack);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}","funcProperties":{"__isSmartRef__":true,"id":585},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"584":{"obj":{"__isSmartRef__":true,"id":552},"name":"onDragStart"},"585":{},"586":{},"587":{"submorphs":[{"__isSmartRef__":true,"id":588},{"__isSmartRef__":true,"id":603},{"__isSmartRef__":true,"id":650},{"__isSmartRef__":true,"id":1213},{"__isSmartRef__":true,"id":1243},{"__isSmartRef__":true,"id":1258}],"scripts":[],"id":734,"shape":{"__isSmartRef__":true,"id":1305},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":1311},"showsHalos":false,"name":"MethodFinderPane","partsBinMetaInfo":{"__isSmartRef__":true,"id":1312},"__SourceModuleName__":"Global.lively.morphic.Core","owner":{"__isSmartRef__":true,"id":410},"isCopyMorphRef":true,"morphRefId":1,"layout":{"__isSmartRef__":true,"id":1313},"priorExtent":{"__isSmartRef__":true,"id":1314},"targetObject":{"__isSmartRef__":true,"id":883},"renderContextTable":{"__isSmartRef__":true,"id":1315},"eventHandler":{"__isSmartRef__":true,"id":1316},"scriptAnnotations":{"__isSmartRef__":true,"id":1317},"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_Rotation":0,"_Scale":1,"prevScroll":[0,0],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1326},"__LivelyClassName__":"lively.morphic.Box"},"588":{"submorphs":[],"scripts":[],"id":735,"shape":{"__isSmartRef__":true,"id":589},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":595},"_MaxTextWidth":290,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":592},"showsHalos":false,"_FontSize":14,"__SourceModuleName__":"Global.lively.morphic.TextCore","name":"searchText","partsBinMetaInfo":{"__isSmartRef__":true,"id":596},"owner":{"__isSmartRef__":true,"id":587},"charsReplaced":"Loader","lastFindLoc":6,"attributeConnections":[{"__isSmartRef__":true,"id":597}],"doNotSerialize":["$$savedTextString"],"doNotCopyProperties":["$$savedTextString"],"isInputLine":true,"_WhiteSpaceHandling":"pre-wrap","allowInput":true,"textChunks":[{"__isSmartRef__":true,"id":598}],"priorSelectionRange":[6,6],"prevScroll":[0,0],"_ClipMode":"hidden","priorExtent":{"__isSmartRef__":true,"id":600},"lastSearchString":"prev","renderContextTable":{"__isSmartRef__":true,"id":601},"eventHandler":{"__isSmartRef__":true,"id":602},"_Rotation":0,"_MinTextWidth":290,"_MinTextHeight":null,"previousSelection":[3,3],"savedTextString":"load","isBeingDragged":false,"__LivelyClassName__":"lively.morphic.Text"},"589":{"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":590},"_Extent":{"__isSmartRef__":true,"id":591},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":592},"renderContextTable":{"__isSmartRef__":true,"id":593},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":594},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"590":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"591":{"x":292,"y":25,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"592":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"593":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"594":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"595":{"x":17,"y":24,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"596":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"597":{"sourceObj":{"__isSmartRef__":true,"id":588},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":587},"targetMethodName":"search","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"598":{"style":{"__isSmartRef__":true,"id":599},"chunkOwner":{"__isSmartRef__":true,"id":588},"storedString":"load","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"599":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"600":{"x":292,"y":25,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"601":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"602":{"morph":{"__isSmartRef__":true,"id":588},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"603":{"submorphs":[{"__isSmartRef__":true,"id":604}],"scripts":[],"id":736,"shape":{"__isSmartRef__":true,"id":619},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":635},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":623},"lighterFill":{"__isSmartRef__":true,"id":636},"label":{"__isSmartRef__":true,"id":604},"showsHalos":false,"name":"searchButton","partsBinMetaInfo":{"__isSmartRef__":true,"id":645},"__SourceModuleName__":"Global.lively.morphic.Widgets","owner":{"__isSmartRef__":true,"id":587},"attributeConnections":[{"__isSmartRef__":true,"id":646}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"priorExtent":{"__isSmartRef__":true,"id":647},"renderContextTable":{"__isSmartRef__":true,"id":648},"eventHandler":{"__isSmartRef__":true,"id":649},"_Rotation":0,"__LivelyClassName__":"lively.morphic.Button"},"604":{"submorphs":[],"scripts":[],"id":737,"shape":{"__isSmartRef__":true,"id":605},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":611},"_MaxTextWidth":77,"_MaxTextHeight":null,"padding":{"__isSmartRef__":true,"id":612},"_Padding":{"__isSmartRef__":true,"id":613},"owner":{"__isSmartRef__":true,"id":603},"isLabel":true,"eventsAreIgnored":true,"__SourceModuleName__":"Global.lively.morphic.TextCore","textStyle":null,"textChunks":[{"__isSmartRef__":true,"id":614}],"prevScroll":[0,0],"_ClipMode":"hidden","priorExtent":{"__isSmartRef__":true,"id":616},"_Align":"center","renderContextTable":{"__isSmartRef__":true,"id":617},"eventHandler":{"__isSmartRef__":true,"id":618},"_HandStyle":"default","_PointerEvents":"none","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_MinTextWidth":77,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"605":{"position":{"__isSmartRef__":true,"id":606},"_Extent":{"__isSmartRef__":true,"id":607},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":608},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":609},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":610},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"606":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"607":{"x":77,"y":20,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"608":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"609":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"610":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"611":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"612":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"613":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"614":{"style":{"__isSmartRef__":true,"id":615},"morph":{"__isSmartRef__":true,"id":604},"__SourceModuleName__":"Global.lively.morphic.TextCore","chunkOwner":{"__isSmartRef__":true,"id":604},"storedString":"search","__LivelyClassName__":"lively.morphic.TextChunk"},"615":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"616":{"x":77,"y":20,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"617":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"618":{"morph":{"__isSmartRef__":true,"id":604},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"619":{"position":{"__isSmartRef__":true,"id":620},"_Extent":{"__isSmartRef__":true,"id":621},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":622},"_Fill":{"__isSmartRef__":true,"id":623},"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":633},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":634},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"620":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"621":{"x":77,"y":20,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"622":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"623":{"stops":[{"__isSmartRef__":true,"id":624},{"__isSmartRef__":true,"id":626},{"__isSmartRef__":true,"id":628},{"__isSmartRef__":true,"id":630}],"vector":{"__isSmartRef__":true,"id":632},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"624":{"offset":0,"color":{"__isSmartRef__":true,"id":625}},"625":{"r":0.9600000000000001,"g":0.9600000000000001,"b":0.9600000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"626":{"offset":0.4,"color":{"__isSmartRef__":true,"id":627}},"627":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"628":{"offset":0.6,"color":{"__isSmartRef__":true,"id":629}},"629":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"630":{"offset":1,"color":{"__isSmartRef__":true,"id":631}},"631":{"r":0.94,"g":0.94,"b":0.94,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"632":{"x":0,"y":0,"width":0,"height":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"633":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"634":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"635":{"x":315,"y":26,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"636":{"stops":[{"__isSmartRef__":true,"id":637},{"__isSmartRef__":true,"id":639},{"__isSmartRef__":true,"id":641},{"__isSmartRef__":true,"id":643}],"vector":{"__isSmartRef__":true,"id":632},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"637":{"offset":0,"color":{"__isSmartRef__":true,"id":638}},"638":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"639":{"offset":0.4,"color":{"__isSmartRef__":true,"id":640}},"640":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"641":{"offset":0.6,"color":{"__isSmartRef__":true,"id":642}},"642":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"643":{"offset":1,"color":{"__isSmartRef__":true,"id":644}},"644":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"645":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"646":{"sourceObj":{"__isSmartRef__":true,"id":603},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":588},"targetMethodName":"doSave","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"647":{"x":77,"y":21,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"648":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"649":{"morph":{"__isSmartRef__":true,"id":603},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"650":{"submorphs":[],"scripts":[],"id":738,"shape":{"__isSmartRef__":true,"id":651},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":658},"itemList":[{"__isSmartRef__":true,"id":659},{"__isSmartRef__":true,"id":661},{"__isSmartRef__":true,"id":663},{"__isSmartRef__":true,"id":665},{"__isSmartRef__":true,"id":668},{"__isSmartRef__":true,"id":671},{"__isSmartRef__":true,"id":674},{"__isSmartRef__":true,"id":676},{"__isSmartRef__":true,"id":678},{"__isSmartRef__":true,"id":680},{"__isSmartRef__":true,"id":682},{"__isSmartRef__":true,"id":684},{"__isSmartRef__":true,"id":687},{"__isSmartRef__":true,"id":689},{"__isSmartRef__":true,"id":691},{"__isSmartRef__":true,"id":693},{"__isSmartRef__":true,"id":695},{"__isSmartRef__":true,"id":697},{"__isSmartRef__":true,"id":699},{"__isSmartRef__":true,"id":701},{"__isSmartRef__":true,"id":703},{"__isSmartRef__":true,"id":705},{"__isSmartRef__":true,"id":707},{"__isSmartRef__":true,"id":709},{"__isSmartRef__":true,"id":711},{"__isSmartRef__":true,"id":714},{"__isSmartRef__":true,"id":717},{"__isSmartRef__":true,"id":719},{"__isSmartRef__":true,"id":723},{"__isSmartRef__":true,"id":725},{"__isSmartRef__":true,"id":727},{"__isSmartRef__":true,"id":730},{"__isSmartRef__":true,"id":733},{"__isSmartRef__":true,"id":742},{"__isSmartRef__":true,"id":745},{"__isSmartRef__":true,"id":747},{"__isSmartRef__":true,"id":750},{"__isSmartRef__":true,"id":752},{"__isSmartRef__":true,"id":754},{"__isSmartRef__":true,"id":756},{"__isSmartRef__":true,"id":759},{"__isSmartRef__":true,"id":761},{"__isSmartRef__":true,"id":763},{"__isSmartRef__":true,"id":765},{"__isSmartRef__":true,"id":767},{"__isSmartRef__":true,"id":770},{"__isSmartRef__":true,"id":773},{"__isSmartRef__":true,"id":775},{"__isSmartRef__":true,"id":777},{"__isSmartRef__":true,"id":779},{"__isSmartRef__":true,"id":781},{"__isSmartRef__":true,"id":783},{"__isSmartRef__":true,"id":785},{"__isSmartRef__":true,"id":787},{"__isSmartRef__":true,"id":789},{"__isSmartRef__":true,"id":791},{"__isSmartRef__":true,"id":793},{"__isSmartRef__":true,"id":795},{"__isSmartRef__":true,"id":797},{"__isSmartRef__":true,"id":799},{"__isSmartRef__":true,"id":802},{"__isSmartRef__":true,"id":805},{"__isSmartRef__":true,"id":807},{"__isSmartRef__":true,"id":809},{"__isSmartRef__":true,"id":811},{"__isSmartRef__":true,"id":813},{"__isSmartRef__":true,"id":815},{"__isSmartRef__":true,"id":817},{"__isSmartRef__":true,"id":819},{"__isSmartRef__":true,"id":821},{"__isSmartRef__":true,"id":823},{"__isSmartRef__":true,"id":825},{"__isSmartRef__":true,"id":827},{"__isSmartRef__":true,"id":829},{"__isSmartRef__":true,"id":831},{"__isSmartRef__":true,"id":833},{"__isSmartRef__":true,"id":835},{"__isSmartRef__":true,"id":837},{"__isSmartRef__":true,"id":960},{"__isSmartRef__":true,"id":964},{"__isSmartRef__":true,"id":968},{"__isSmartRef__":true,"id":972},{"__isSmartRef__":true,"id":976},{"__isSmartRef__":true,"id":980},{"__isSmartRef__":true,"id":984},{"__isSmartRef__":true,"id":1018},{"__isSmartRef__":true,"id":1022},{"__isSmartRef__":true,"id":1026},{"__isSmartRef__":true,"id":1030},{"__isSmartRef__":true,"id":1043},{"__isSmartRef__":true,"id":1045},{"__isSmartRef__":true,"id":1047},{"__isSmartRef__":true,"id":1049},{"__isSmartRef__":true,"id":1051},{"__isSmartRef__":true,"id":1053},{"__isSmartRef__":true,"id":1055},{"__isSmartRef__":true,"id":1057},{"__isSmartRef__":true,"id":1059},{"__isSmartRef__":true,"id":1061},{"__isSmartRef__":true,"id":1063},{"__isSmartRef__":true,"id":1065},{"__isSmartRef__":true,"id":1067},{"__isSmartRef__":true,"id":1069},{"__isSmartRef__":true,"id":1071},{"__isSmartRef__":true,"id":1073},{"__isSmartRef__":true,"id":1075},{"__isSmartRef__":true,"id":1077},{"__isSmartRef__":true,"id":1079},{"__isSmartRef__":true,"id":1081},{"__isSmartRef__":true,"id":1083},{"__isSmartRef__":true,"id":1085},{"__isSmartRef__":true,"id":1087},{"__isSmartRef__":true,"id":1089},{"__isSmartRef__":true,"id":1091},{"__isSmartRef__":true,"id":1093},{"__isSmartRef__":true,"id":1095},{"__isSmartRef__":true,"id":1097},{"__isSmartRef__":true,"id":1099},{"__isSmartRef__":true,"id":1101},{"__isSmartRef__":true,"id":1103},{"__isSmartRef__":true,"id":1105},{"__isSmartRef__":true,"id":1107},{"__isSmartRef__":true,"id":1109},{"__isSmartRef__":true,"id":1111},{"__isSmartRef__":true,"id":1113},{"__isSmartRef__":true,"id":1115},{"__isSmartRef__":true,"id":1117},{"__isSmartRef__":true,"id":1119},{"__isSmartRef__":true,"id":1121},{"__isSmartRef__":true,"id":1123},{"__isSmartRef__":true,"id":1125},{"__isSmartRef__":true,"id":1127},{"__isSmartRef__":true,"id":1129},{"__isSmartRef__":true,"id":1131},{"__isSmartRef__":true,"id":1133},{"__isSmartRef__":true,"id":1135},{"__isSmartRef__":true,"id":1137},{"__isSmartRef__":true,"id":1139},{"__isSmartRef__":true,"id":1141},{"__isSmartRef__":true,"id":1143},{"__isSmartRef__":true,"id":1145},{"__isSmartRef__":true,"id":1147},{"__isSmartRef__":true,"id":1149},{"__isSmartRef__":true,"id":1151},{"__isSmartRef__":true,"id":1153},{"__isSmartRef__":true,"id":1155},{"__isSmartRef__":true,"id":1157},{"__isSmartRef__":true,"id":1159},{"__isSmartRef__":true,"id":1161},{"__isSmartRef__":true,"id":1163},{"__isSmartRef__":true,"id":1165},{"__isSmartRef__":true,"id":1167},{"__isSmartRef__":true,"id":1169},{"__isSmartRef__":true,"id":1171},{"__isSmartRef__":true,"id":1173},{"__isSmartRef__":true,"id":1175},{"__isSmartRef__":true,"id":1177},{"__isSmartRef__":true,"id":1179},{"__isSmartRef__":true,"id":1194},{"__isSmartRef__":true,"id":1196},{"__isSmartRef__":true,"id":1198},{"__isSmartRef__":true,"id":1200},{"__isSmartRef__":true,"id":1202},{"__isSmartRef__":true,"id":1204}],"showsHalos":false,"name":"searchResultList","partsBinMetaInfo":{"__isSmartRef__":true,"id":1206},"__SourceModuleName__":"Global.lively.morphic.Core","owner":{"__isSmartRef__":true,"id":587},"attributeConnections":[{"__isSmartRef__":true,"id":1207}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"prevScroll":[0,2096],"resizeHeight":true,"resizeWidth":true,"layout":{"__isSmartRef__":true,"id":1208},"priorExtent":{"__isSmartRef__":true,"id":1209},"renderContextTable":{"__isSmartRef__":true,"id":1210},"eventHandler":{"__isSmartRef__":true,"id":1211},"_Rotation":0,"selection":{"__isSmartRef__":true,"id":1212},"selectedLineNo":5,"__LivelyClassName__":"lively.morphic.List"},"651":{"position":{"__isSmartRef__":true,"id":652},"_Extent":{"__isSmartRef__":true,"id":653},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":654},"_Fill":{"__isSmartRef__":true,"id":655},"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":656},"_Padding":{"__isSmartRef__":true,"id":657},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"652":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"653":{"x":875.3800299912526,"y":145.98799096394293,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"654":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"655":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"656":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"657":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"658":{"x":8,"y":60,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"659":{"isListItem":true,"value":{"__isSmartRef__":true,"id":660},"string":"class full: AnotherSourceDatabase: createSymbolList"},"660":{"object":{"__isSmartRef__":true,"id":266},"method":"createSymbolList","string":"AnotherSourceDatabase: createSymbolList","type":"class","search":"sender"},"661":{"isListItem":true,"value":{"__isSmartRef__":true,"id":662},"string":"class full: ChangeSet: ensureHasInitializeScript"},"662":{"object":{"__isSmartRef__":true,"id":272},"method":"ensureHasInitializeScript","string":"ChangeSet: ensureHasInitializeScript","type":"class","search":"sender"},"663":{"isListItem":true,"value":{"__isSmartRef__":true,"id":664},"string":"class full: ChangeSet: ensureHasWorldRequirements"},"664":{"object":{"__isSmartRef__":true,"id":272},"method":"ensureHasWorldRequirements","string":"ChangeSet: ensureHasWorldRequirements","type":"class","search":"sender"},"665":{"isListItem":true,"value":{"__isSmartRef__":true,"id":666},"string":"class full: ChangeSetDoitNode: evalSource"},"666":{"object":{"__isSmartRef__":true,"id":667},"method":"evalSource","string":"ChangeSetDoitNode: evalSource","type":"class","search":"sender"},"667":{"__LivelyClassName__":"lively.ide.ChangeSetDoitNode","__SourceModuleName__":"Global.lively.ide.LocalBrowser"},"668":{"isListItem":true,"value":{"__isSmartRef__":true,"id":669},"string":"class full: ClassElemFragmentNode: sourceString"},"669":{"object":{"__isSmartRef__":true,"id":670},"method":"sourceString","string":"ClassElemFragmentNode: sourceString","type":"class","search":"sender"},"670":{"isMemberNode":true,"__LivelyClassName__":"lively.ide.ClassElemFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"671":{"isListItem":true,"value":{"__isSmartRef__":true,"id":672},"string":"class full: CompleteFileFragmentNode: menuSpec"},"672":{"object":{"__isSmartRef__":true,"id":673},"method":"menuSpec","string":"CompleteFileFragmentNode: menuSpec","type":"class","search":"sender"},"673":{"isModuleNode":true,"maxStringLength":10000,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"674":{"isListItem":true,"value":{"__isSmartRef__":true,"id":675},"string":"class full: CompleteFileFragmentNode: sourceString"},"675":{"object":{"__isSmartRef__":true,"id":673},"method":"sourceString","string":"CompleteFileFragmentNode: sourceString","type":"class","search":"sender"},"676":{"isListItem":true,"value":{"__isSmartRef__":true,"id":677},"string":"class full: Empty: logCompletion"},"677":{"method":"logCompletion","string":"Empty: logCompletion","type":"class","search":"sender"},"678":{"isListItem":true,"value":{"__isSmartRef__":true,"id":679},"string":"class full: Examples: populateWorldWithExamples"},"679":{"object":{"__isSmartRef__":true,"id":282},"method":"populateWorldWithExamples","string":"Examples: populateWorldWithExamples","type":"class","search":"sender"},"680":{"isListItem":true,"value":{"__isSmartRef__":true,"id":681},"string":"class full: Examples: showSlideWorld"},"681":{"object":{"__isSmartRef__":true,"id":282},"method":"showSlideWorld","string":"Examples: showSlideWorld","type":"class","search":"sender"},"682":{"isListItem":true,"value":{"__isSmartRef__":true,"id":683},"string":"class full: Examples: showTesterRunnerForDevelopment"},"683":{"object":{"__isSmartRef__":true,"id":282},"method":"showTesterRunnerForDevelopment","string":"Examples: showTesterRunnerForDevelopment","type":"class","search":"sender"},"684":{"isListItem":true,"value":{"__isSmartRef__":true,"id":685},"string":"class full: FileFragmentNode: sourceString"},"685":{"object":{"__isSmartRef__":true,"id":686},"method":"sourceString","string":"FileFragmentNode: sourceString","type":"class","search":"sender"},"686":{"doNotSerialize":["savedSource"],"__LivelyClassName__":"lively.ide.FileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"687":{"isListItem":true,"value":{"__isSmartRef__":true,"id":688},"string":"class full: FileUploader: constructor"},"688":{"object":{"__isSmartRef__":true,"id":285},"method":"constructor","string":"FileUploader: constructor","type":"class","search":"sender"},"689":{"isListItem":true,"value":{"__isSmartRef__":true,"id":690},"string":"class full: FileUploader: getFileReader"},"690":{"object":{"__isSmartRef__":true,"id":285},"method":"getFileReader","string":"FileUploader: getFileReader","type":"class","search":"sender"},"691":{"isListItem":true,"value":{"__isSmartRef__":true,"id":692},"string":"class full: FileUploader: handleDroppedFiles"},"692":{"object":{"__isSmartRef__":true,"id":285},"method":"handleDroppedFiles","string":"FileUploader: handleDroppedFiles","type":"class","search":"sender"},"693":{"isListItem":true,"value":{"__isSmartRef__":true,"id":694},"string":"class full: FileUploader: onError"},"694":{"object":{"__isSmartRef__":true,"id":285},"method":"onError","string":"FileUploader: onError","type":"class","search":"sender"},"695":{"isListItem":true,"value":{"__isSmartRef__":true,"id":696},"string":"class full: FileUploader: onLoad"},"696":{"object":{"__isSmartRef__":true,"id":285},"method":"onLoad","string":"FileUploader: onLoad","type":"class","search":"sender"},"697":{"isListItem":true,"value":{"__isSmartRef__":true,"id":698},"string":"class full: FileUploader: onLoadEnd"},"698":{"object":{"__isSmartRef__":true,"id":285},"method":"onLoadEnd","string":"FileUploader: onLoadEnd","type":"class","search":"sender"},"699":{"isListItem":true,"value":{"__isSmartRef__":true,"id":700},"string":"class full: FileUploader: onLoadPDF"},"700":{"object":{"__isSmartRef__":true,"id":285},"method":"onLoadPDF","string":"FileUploader: onLoadPDF","type":"class","search":"sender"},"701":{"isListItem":true,"value":{"__isSmartRef__":true,"id":702},"string":"class full: FileUploader: onLoadStart"},"702":{"object":{"__isSmartRef__":true,"id":285},"method":"onLoadStart","string":"FileUploader: onLoadStart","type":"class","search":"sender"},"703":{"isListItem":true,"value":{"__isSmartRef__":true,"id":704},"string":"class full: FileUploader: onLoadVideo"},"704":{"object":{"__isSmartRef__":true,"id":285},"method":"onLoadVideo","string":"FileUploader: onLoadVideo","type":"class","search":"sender"},"705":{"isListItem":true,"value":{"__isSmartRef__":true,"id":706},"string":"class full: FileUploader: onProgress"},"706":{"object":{"__isSmartRef__":true,"id":285},"method":"onProgress","string":"FileUploader: onProgress","type":"class","search":"sender"},"707":{"isListItem":true,"value":{"__isSmartRef__":true,"id":708},"string":"class full: FileUploader: openVideo"},"708":{"object":{"__isSmartRef__":true,"id":285},"method":"openVideo","string":"FileUploader: openVideo","type":"class","search":"sender"},"709":{"isListItem":true,"value":{"__isSmartRef__":true,"id":710},"string":"class full: FileVersionViewer: setTarget"},"710":{"object":{"__isSmartRef__":true,"id":288},"method":"setTarget","string":"FileVersionViewer: setTarget","type":"class","search":"sender"},"711":{"isListItem":true,"value":{"__isSmartRef__":true,"id":712},"string":"class full: HTMLExamples: populateWorldWithExamples"},"712":{"object":{"__isSmartRef__":true,"id":713},"method":"populateWorldWithExamples","string":"HTMLExamples: populateWorldWithExamples","type":"class","search":"sender"},"713":{"__LivelyClassName__":"lively.Main.HTMLExamples","__SourceModuleName__":"Global.lively.Main"},"714":{"isListItem":true,"value":{"__isSmartRef__":true,"id":715},"string":"class full: HTMLLoader: systemStart"},"715":{"object":{"__isSmartRef__":true,"id":716},"method":"systemStart","string":"HTMLLoader: systemStart","type":"class","search":"sender"},"716":{"__LivelyClassName__":"lively.Main.HTMLLoader","__SourceModuleName__":"Global.lively.Main"},"717":{"isListItem":true,"value":{"__isSmartRef__":true,"id":718},"string":"class full: Image: convertToBase64"},"718":{"object":{"__isSmartRef__":true,"id":298},"method":"convertToBase64","string":"Image: convertToBase64","type":"class","search":"sender"},"719":{"isListItem":true,"value":{"__isSmartRef__":true,"id":720},"string":"class full: Image: initialize"},"720":{"object":{"__isSmartRef__":true,"id":721},"method":"initialize","string":"Image: initialize","type":"class","search":"sender"},"721":{"htmlDispatchTable":{"__isSmartRef__":true,"id":722},"__LivelyClassName__":"lively.morphic.Shapes.Image","__SourceModuleName__":"Global.lively.morphic.Shapes"},"722":{"setImageURL":"setImageURLHTML","getNativeExtent":"getNativeExtentHTML"},"723":{"isListItem":true,"value":{"__isSmartRef__":true,"id":724},"string":"class full: Image: setImageURLHTML"},"724":{"object":{"__isSmartRef__":true,"id":721},"method":"setImageURLHTML","string":"Image: setImageURLHTML","type":"class","search":"sender"},"725":{"isListItem":true,"value":{"__isSmartRef__":true,"id":726},"string":"class full: Importer: getBaseDocument"},"726":{"object":{"__isSmartRef__":true,"id":301},"method":"getBaseDocument","string":"Importer: getBaseDocument","type":"class","search":"sender"},"727":{"isListItem":true,"value":{"__isSmartRef__":true,"id":728},"string":"class full: JSONWorldData: modulesBeforeChanges"},"728":{"object":{"__isSmartRef__":true,"id":729},"method":"modulesBeforeChanges","string":"JSONWorldData: modulesBeforeChanges","type":"class","search":"sender"},"729":{"__LivelyClassName__":"lively.Main.JSONWorldData","__SourceModuleName__":"Global.lively.Main"},"730":{"isListItem":true,"value":{"__isSmartRef__":true,"id":731},"string":"class full: LayerPlugin: deserializeLayerArray"},"731":{"object":{"__isSmartRef__":true,"id":732},"method":"deserializeLayerArray","string":"LayerPlugin: deserializeLayerArray","type":"class","search":"sender"},"732":{"withLayersPropName":"withLayers","withoutLayersPropName":"withoutLayers","__LivelyClassName__":"LayerPlugin","__SourceModuleName__":"Global.lively.persistence.Serializer"},"733":{"isListItem":true,"value":{"__isSmartRef__":true,"id":734},"string":"class full: LinearGradient: toCSSStringIE / Trait('LinearGradientCSSTrait')"},"734":{"object":{"__isSmartRef__":true,"id":735},"method":"toCSSStringIE","string":"LinearGradient: toCSSStringIE","type":"class","search":"sender"},"735":{"vectors":{"__isSmartRef__":true,"id":736},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"736":{"northsouth":{"__isSmartRef__":true,"id":141},"southnorth":{"__isSmartRef__":true,"id":737},"eastwest":{"__isSmartRef__":true,"id":738},"westeast":{"__isSmartRef__":true,"id":739},"southwest":{"__isSmartRef__":true,"id":740},"southeast":{"__isSmartRef__":true,"id":741}},"737":{"x":0,"y":1,"width":0,"height":-1,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"738":{"x":0,"y":0,"width":1,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"739":{"x":1,"y":0,"width":-1,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"740":{"x":1,"y":0,"width":-1,"height":1,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"741":{"x":0,"y":0,"width":1,"height":1,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"742":{"isListItem":true,"value":{"__isSmartRef__":true,"id":743},"string":"class full: Loader: onFinishLoading"},"743":{"object":{"__isSmartRef__":true,"id":744},"method":"onFinishLoading","string":"Loader: onFinishLoading","type":"class","search":"sender"},"744":{"connections":["finishLoading"],"__LivelyClassName__":"lively.Main.Loader","__SourceModuleName__":"Global.lively.Main"},"745":{"isListItem":true,"value":{"__isSmartRef__":true,"id":746},"string":"class full: Loader: systemStart"},"746":{"object":{"__isSmartRef__":true,"id":744},"method":"systemStart","string":"Loader: systemStart","type":"class","search":"sender"},"747":{"isListItem":true,"value":{"__isSmartRef__":true,"id":748},"string":"class full: MethodCategoryFragmentNode: sourceString"},"748":{"object":{"__isSmartRef__":true,"id":749},"method":"sourceString","string":"MethodCategoryFragmentNode: sourceString","type":"class","search":"sender"},"749":{"__LivelyClassName__":"lively.ide.MethodCategoryFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"750":{"isListItem":true,"value":{"__isSmartRef__":true,"id":751},"string":"class full: ModuleWrapper: askToOverwrite"},"751":{"object":{"__isSmartRef__":true,"id":304},"method":"askToOverwrite","string":"ModuleWrapper: askToOverwrite","type":"class","search":"sender"},"752":{"isListItem":true,"value":{"__isSmartRef__":true,"id":753},"string":"class full: Morph: copyToPartsBin / Trait('lively.PartsBin.PartTrait')"},"753":{"object":{"__isSmartRef__":true,"id":313},"method":"copyToPartsBin","string":"Morph: copyToPartsBin","type":"class","search":"sender"},"754":{"isListItem":true,"value":{"__isSmartRef__":true,"id":755},"string":"class full: Morph: copyToPartsSpace / Trait('lively.PartsBin.PartTrait')"},"755":{"object":{"__isSmartRef__":true,"id":313},"method":"copyToPartsSpace","string":"Morph: copyToPartsSpace","type":"class","search":"sender"},"756":{"isListItem":true,"value":{"__isSmartRef__":true,"id":757},"string":"class full: NetRequest: enableProgress"},"757":{"object":{"__isSmartRef__":true,"id":758},"method":"enableProgress","string":"NetRequest: enableProgress","type":"class","search":"sender"},"758":{"documentation":"a view that writes the contents of an http request into the model","Unsent":0,"Opened":1,"HeadersReceived":2,"Loading":3,"Done":4,"formals":["+Status","+ReadyState","+ResponseXML","+ResponseText","+ResponseHeaders","StreamContent","Progress"],"__LivelyClassName__":"NetRequest","__SourceModuleName__":"Global.lively.Network"},"759":{"isListItem":true,"value":{"__isSmartRef__":true,"id":760},"string":"class full: PartItem: deserializePart"},"760":{"object":{"__isSmartRef__":true,"id":331},"method":"deserializePart","string":"PartItem: deserializePart","type":"class","search":"sender"},"761":{"isListItem":true,"value":{"__isSmartRef__":true,"id":762},"string":"class full: PartItem: getMetaInfo"},"762":{"object":{"__isSmartRef__":true,"id":331},"method":"getMetaInfo","string":"PartItem: getMetaInfo","type":"class","search":"sender"},"763":{"isListItem":true,"value":{"__isSmartRef__":true,"id":764},"string":"class full: PartsBinItem: onDragStart"},"764":{"object":{"__isSmartRef__":true,"id":346},"method":"onDragStart","string":"PartsBinItem: onDragStart","type":"class","search":"sender"},"765":{"isListItem":true,"value":{"__isSmartRef__":true,"id":766},"string":"class full: PartsBinItem: startLoadingPart"},"766":{"object":{"__isSmartRef__":true,"id":346},"method":"startLoadingPart","string":"PartsBinItem: startLoadingPart","type":"class","search":"sender"},"767":{"isListItem":true,"value":{"__isSmartRef__":true,"id":768},"string":"class full: RadialGradient: toCSSStringIE / Trait('RadialGradientCSSTrait')"},"768":{"object":{"__isSmartRef__":true,"id":769},"method":"toCSSStringIE","string":"RadialGradient: toCSSStringIE","type":"class","search":"sender"},"769":{"__LivelyClassName__":"lively.morphic.RadialGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"770":{"isListItem":true,"value":{"__isSmartRef__":true,"id":771},"string":"class full: RemoteChangeSetNode: asString"},"771":{"object":{"__isSmartRef__":true,"id":772},"method":"asString","string":"RemoteChangeSetNode: asString","type":"class","search":"sender"},"772":{"__LivelyClassName__":"lively.ide.RemoteChangeSetNode","__SourceModuleName__":"Global.lively.ide.LocalBrowser"},"773":{"isListItem":true,"value":{"__isSmartRef__":true,"id":774},"string":"class full: RemoteChangeSetNode: initialize"},"774":{"object":{"__isSmartRef__":true,"id":772},"method":"initialize","string":"RemoteChangeSetNode: initialize","type":"class","search":"sender"},"775":{"isListItem":true,"value":{"__isSmartRef__":true,"id":776},"string":"class full: SetImageURLHalo: clickAction"},"776":{"method":"clickAction","string":"SetImageURLHalo: clickAction","type":"class","search":"sender"},"777":{"isListItem":true,"value":{"__isSmartRef__":true,"id":778},"string":"class full: TextEditor: askToCreateFile"},"778":{"object":{"__isSmartRef__":true,"id":359},"method":"askToCreateFile","string":"TextEditor: askToCreateFile","type":"class","search":"sender"},"779":{"isListItem":true,"value":{"__isSmartRef__":true,"id":780},"string":"class full: TextEditor: buildView"},"780":{"object":{"__isSmartRef__":true,"id":359},"method":"buildView","string":"TextEditor: buildView","type":"class","search":"sender"},"781":{"isListItem":true,"value":{"__isSmartRef__":true,"id":782},"string":"class full: TextEditor: onrestore"},"782":{"object":{"__isSmartRef__":true,"id":359},"method":"onrestore","string":"TextEditor: onrestore","type":"class","search":"sender"},"783":{"isListItem":true,"value":{"__isSmartRef__":true,"id":784},"string":"class full: TextEditor: showAsLoading"},"784":{"object":{"__isSmartRef__":true,"id":359},"method":"showAsLoading","string":"TextEditor: showAsLoading","type":"class","search":"sender"},"785":{"isListItem":true,"value":{"__isSmartRef__":true,"id":786},"string":"class full: WebResource: createProgressBar"},"786":{"object":{"__isSmartRef__":true,"id":367},"method":"createProgressBar","string":"WebResource: createProgressBar","type":"class","search":"sender"},"787":{"isListItem":true,"value":{"__isSmartRef__":true,"id":788},"string":"class full: WebResource: createXMLHTTPRequest"},"788":{"object":{"__isSmartRef__":true,"id":367},"method":"createXMLHTTPRequest","string":"WebResource: createXMLHTTPRequest","type":"class","search":"sender"},"789":{"isListItem":true,"value":{"__isSmartRef__":true,"id":790},"string":"class full: World: askToOverwrite"},"790":{"object":{"__isSmartRef__":true,"id":380},"method":"askToOverwrite","string":"World: askToOverwrite","type":"class","search":"sender"},"791":{"isListItem":true,"value":{"__isSmartRef__":true,"id":792},"string":"class full: World: morphMenuItems"},"792":{"object":{"__isSmartRef__":true,"id":380},"method":"morphMenuItems","string":"World: morphMenuItems","type":"class","search":"sender"},"793":{"isListItem":true,"value":{"__isSmartRef__":true,"id":794},"string":"class full: World: morphMenuPartsBinItems"},"794":{"object":{"__isSmartRef__":true,"id":380},"method":"morphMenuPartsBinItems","string":"World: morphMenuPartsBinItems","type":"class","search":"sender"},"795":{"isListItem":true,"value":{"__isSmartRef__":true,"id":796},"string":"class full: World: onHTML5Drop"},"796":{"object":{"__isSmartRef__":true,"id":380},"method":"onHTML5Drop","string":"World: onHTML5Drop","type":"class","search":"sender"},"797":{"isListItem":true,"value":{"__isSmartRef__":true,"id":798},"string":"class full: World: processCommandKeys"},"798":{"object":{"__isSmartRef__":true,"id":380},"method":"processCommandKeys","string":"World: processCommandKeys","type":"class","search":"sender"},"799":{"isListItem":true,"value":{"__isSmartRef__":true,"id":800},"string":"class full: XMLWorldData: getWorld"},"800":{"object":{"__isSmartRef__":true,"id":801},"method":"getWorld","string":"XMLWorldData: getWorld","type":"class","search":"sender"},"801":{"__LivelyClassName__":"lively.Main.XMLWorldData","__SourceModuleName__":"Global.lively.Main"},"802":{"isListItem":true,"value":{"__isSmartRef__":true,"id":803},"string":"class full: XPathEmulator: evaluate"},"803":{"object":{"__isSmartRef__":true,"id":804},"method":"evaluate","string":"XPathEmulator: evaluate","type":"class","search":"sender"},"804":{"__LivelyClassName__":"XPathEmulator","__SourceModuleName__":"Global.lively.Data"},"805":{"isListItem":true,"value":{"__isSmartRef__":true,"id":806},"string":"class name: CompleteFileFragmentNode: loadModule"},"806":{"object":{"__isSmartRef__":true,"id":673},"method":"loadModule","string":"CompleteFileFragmentNode: loadModule","type":"class","search":"implementor"},"807":{"isListItem":true,"value":{"__isSmartRef__":true,"id":808},"string":"class name: FileUploader: loadAndOpenDroppedFiles"},"808":{"object":{"__isSmartRef__":true,"id":285},"method":"loadAndOpenDroppedFiles","string":"FileUploader: loadAndOpenDroppedFiles","type":"class","search":"implementor"},"809":{"isListItem":true,"value":{"__isSmartRef__":true,"id":810},"string":"class name: FileUploader: uploadAndOpenPDFTo"},"810":{"object":{"__isSmartRef__":true,"id":285},"method":"uploadAndOpenPDFTo","string":"FileUploader: uploadAndOpenPDFTo","type":"class","search":"implementor"},"811":{"isListItem":true,"value":{"__isSmartRef__":true,"id":812},"string":"class name: FileUploader: uploadAndOpenVideoTo"},"812":{"object":{"__isSmartRef__":true,"id":285},"method":"uploadAndOpenVideoTo","string":"FileUploader: uploadAndOpenVideoTo","type":"class","search":"implementor"},"813":{"isListItem":true,"value":{"__isSmartRef__":true,"id":814},"string":"class name: FileUploader: uploadBinary"},"814":{"object":{"__isSmartRef__":true,"id":285},"method":"uploadBinary","string":"FileUploader: uploadBinary","type":"class","search":"implementor"},"815":{"isListItem":true,"value":{"__isSmartRef__":true,"id":816},"string":"class name: Loader: loadWorld"},"816":{"object":{"__isSmartRef__":true,"id":744},"method":"loadWorld","string":"Loader: loadWorld","type":"class","search":"implementor"},"817":{"isListItem":true,"value":{"__isSmartRef__":true,"id":818},"string":"class name: PartItem: load"},"818":{"object":{"__isSmartRef__":true,"id":331},"method":"load","string":"PartItem: load","type":"class","search":"implementor"},"819":{"isListItem":true,"value":{"__isSmartRef__":true,"id":820},"string":"class name: PartItem: loadPart"},"820":{"object":{"__isSmartRef__":true,"id":331},"method":"loadPart","string":"PartItem: loadPart","type":"class","search":"implementor"},"821":{"isListItem":true,"value":{"__isSmartRef__":true,"id":822},"string":"class name: PartItem: loadPartMetaInfo"},"822":{"object":{"__isSmartRef__":true,"id":331},"method":"loadPartMetaInfo","string":"PartItem: loadPartMetaInfo","type":"class","search":"implementor"},"823":{"isListItem":true,"value":{"__isSmartRef__":true,"id":824},"string":"class name: PartItem: loadPartVersions"},"824":{"object":{"__isSmartRef__":true,"id":331},"method":"loadPartVersions","string":"PartItem: loadPartVersions","type":"class","search":"implementor"},"825":{"isListItem":true,"value":{"__isSmartRef__":true,"id":826},"string":"class name: PartItem: loadRevision"},"826":{"object":{"__isSmartRef__":true,"id":331},"method":"loadRevision","string":"PartItem: loadRevision","type":"class","search":"implementor"},"827":{"isListItem":true,"value":{"__isSmartRef__":true,"id":828},"string":"class name: PartItem: uploadMetaInfoOnly"},"828":{"object":{"__isSmartRef__":true,"id":331},"method":"uploadMetaInfoOnly","string":"PartItem: uploadMetaInfoOnly","type":"class","search":"implementor"},"829":{"isListItem":true,"value":{"__isSmartRef__":true,"id":830},"string":"class name: PartItem: uploadPart"},"830":{"object":{"__isSmartRef__":true,"id":331},"method":"uploadPart","string":"PartItem: uploadPart","type":"class","search":"implementor"},"831":{"isListItem":true,"value":{"__isSmartRef__":true,"id":832},"string":"class name: PartsSpace: load"},"832":{"object":{"__isSmartRef__":true,"id":351},"method":"load","string":"PartsSpace: load","type":"class","search":"implementor"},"833":{"isListItem":true,"value":{"__isSmartRef__":true,"id":834},"string":"class name: TextEditor: load"},"834":{"object":{"__isSmartRef__":true,"id":359},"method":"load","string":"TextEditor: load","type":"class","search":"implementor"},"835":{"isListItem":true,"value":{"__isSmartRef__":true,"id":836},"string":"class name: TextEditor: loadFile"},"836":{"object":{"__isSmartRef__":true,"id":359},"method":"loadFile","string":"TextEditor: loadFile","type":"class","search":"implementor"},"837":{"isListItem":true,"value":{"__isSmartRef__":true,"id":838},"string":"extend full: Global.anonymous_module_0(object): requires"},"838":{"object":{"__isSmartRef__":true,"id":839},"method":"requires","string":"Global.anonymous_module_0(object): requires","type":"extend","search":"sender"},"839":{"namespaceIdentifier":"Global.anonymous_module_0","createTime":{"__isSmartRef__":true,"id":840},"wasDefined":true,"_isAnonymous":true,"sourceModuleName":"Global","defStack":"Error\n at require (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1684:15)\n at HTMLScriptElement. (http://lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:187:17)","privateRequirements":[{"__isSmartRef__":true,"id":841},{"__isSmartRef__":true,"id":875},{"__isSmartRef__":true,"id":404},{"__isSmartRef__":true,"id":873},{"__isSmartRef__":true,"id":843},{"__isSmartRef__":true,"id":877},{"__isSmartRef__":true,"id":851},{"__isSmartRef__":true,"id":847},{"__isSmartRef__":true,"id":879},{"__isSmartRef__":true,"id":881},{"__isSmartRef__":true,"id":869},{"__isSmartRef__":true,"id":402},{"__isSmartRef__":true,"id":849},{"__isSmartRef__":true,"id":871},{"__isSmartRef__":true,"id":863},{"__isSmartRef__":true,"id":883},{"__isSmartRef__":true,"id":885},{"__isSmartRef__":true,"id":887},{"__isSmartRef__":true,"id":853},{"__isSmartRef__":true,"id":889},{"__isSmartRef__":true,"id":891},{"__isSmartRef__":true,"id":861},{"__isSmartRef__":true,"id":859},{"__isSmartRef__":true,"id":865},{"__isSmartRef__":true,"id":867},{"__isSmartRef__":true,"id":857},{"__isSmartRef__":true,"id":855},{"__isSmartRef__":true,"id":893},{"__isSmartRef__":true,"id":895},{"__isSmartRef__":true,"id":845},{"__isSmartRef__":true,"id":897},{"__isSmartRef__":true,"id":899},{"__isSmartRef__":true,"id":901},{"__isSmartRef__":true,"id":903},{"__isSmartRef__":true,"id":905},{"__isSmartRef__":true,"id":907},{"__isSmartRef__":true,"id":909},{"__isSmartRef__":true,"id":911},{"__isSmartRef__":true,"id":913},{"__isSmartRef__":true,"id":917},{"__isSmartRef__":true,"id":924},{"__isSmartRef__":true,"id":940}],"pendingRequirements":[],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"840":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"841":{"namespaceIdentifier":"Global.lively.bindings","createTime":{"__isSmartRef__":true,"id":842},"wasDefined":true,"callbacks":[],"documentation":"connect parameters: source, sourceProp, target, targetProp, spec\nspec can be: {removeAfterUpdate: Boolean, converter: Function, updater: Function, varMapping: Object}","_isLoaded":true,"Core":{"__isSmartRef__":true,"id":843},"GeometryBindings":{"__isSmartRef__":true,"id":845},"_layer_object_id":3,"__LivelyClassName__":"Namespace"},"842":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"843":{"namespaceIdentifier":"Global.lively.bindings.Core","createTime":{"__isSmartRef__":true,"id":844},"wasDefined":true,"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"844":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"845":{"namespaceIdentifier":"Global.lively.bindings.GeometryBindings","createTime":{"__isSmartRef__":true,"id":846},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":847},{"__isSmartRef__":true,"id":849},{"__isSmartRef__":true,"id":843},{"__isSmartRef__":true,"id":853},{"__isSmartRef__":true,"id":855}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"846":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"847":{"namespaceIdentifier":"Global.cop.Layers","createTime":{"__isSmartRef__":true,"id":848},"wasDefined":true,"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"848":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"849":{"namespaceIdentifier":"Global.lively.morphic.Core","createTime":{"__isSmartRef__":true,"id":850},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":851},{"__isSmartRef__":true,"id":404}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"850":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"851":{"namespaceIdentifier":"Global.lively.morphic.Shapes","createTime":{"__isSmartRef__":true,"id":852},"wasDefined":true,"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"852":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"853":{"namespaceIdentifier":"Global.lively.morphic.TextCore","createTime":{"__isSmartRef__":true,"id":854},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":847},{"__isSmartRef__":true,"id":849}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"854":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"855":{"namespaceIdentifier":"Global.lively.morphic.Widgets","createTime":{"__isSmartRef__":true,"id":856},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":849},{"__isSmartRef__":true,"id":857},{"__isSmartRef__":true,"id":869},{"__isSmartRef__":true,"id":871}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"856":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"857":{"namespaceIdentifier":"Global.lively.morphic.Events","createTime":{"__isSmartRef__":true,"id":858},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":849},{"__isSmartRef__":true,"id":853},{"__isSmartRef__":true,"id":859},{"__isSmartRef__":true,"id":865},{"__isSmartRef__":true,"id":867},{"__isSmartRef__":true,"id":404}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"858":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"859":{"namespaceIdentifier":"Global.lively.morphic.HTML","createTime":{"__isSmartRef__":true,"id":860},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":861},{"__isSmartRef__":true,"id":863},{"__isSmartRef__":true,"id":404}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"860":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"861":{"namespaceIdentifier":"Global.lively.morphic.Rendering","createTime":{"__isSmartRef__":true,"id":862},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":849},{"__isSmartRef__":true,"id":853},{"__isSmartRef__":true,"id":851}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"862":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"863":{"namespaceIdentifier":"Global.lively.morphic.PathShapes","createTime":{"__isSmartRef__":true,"id":864},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":851}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"864":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"865":{"namespaceIdentifier":"Global.lively.morphic.SVG","createTime":{"__isSmartRef__":true,"id":866},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":861},{"__isSmartRef__":true,"id":863}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"866":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"867":{"namespaceIdentifier":"Global.lively.morphic.Canvas","createTime":{"__isSmartRef__":true,"id":868},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":861}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"868":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"869":{"namespaceIdentifier":"Global.lively.WidgetsTraits","createTime":{"__isSmartRef__":true,"id":870},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":404}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"870":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"871":{"namespaceIdentifier":"Global.lively.morphic.Styles","createTime":{"__isSmartRef__":true,"id":872},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":851},{"__isSmartRef__":true,"id":873}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"872":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"873":{"namespaceIdentifier":"Global.lively.CrayonColors","createTime":{"__isSmartRef__":true,"id":874},"wasDefined":true,"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"874":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"875":{"namespaceIdentifier":"Global.lively.DOMAbstraction","createTime":{"__isSmartRef__":true,"id":876},"wasDefined":true,"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"876":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"877":{"namespaceIdentifier":"Global.lively.persistence.Serializer","createTime":{"__isSmartRef__":true,"id":878},"wasDefined":true,"callbacks":[],"jsonWorldId":"LivelyJSONWorld","changeSetElementId":"WorldChangeSet","_isLoaded":true,"__LivelyClassName__":"Namespace"},"878":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"879":{"namespaceIdentifier":"Global.lively.ChangeSet","createTime":{"__isSmartRef__":true,"id":880},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":875}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"880":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"881":{"namespaceIdentifier":"Global.lively.OldModel","createTime":{"__isSmartRef__":true,"id":882},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":841}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"882":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"883":{"namespaceIdentifier":"Global.lively.Main","createTime":{"__isSmartRef__":true,"id":884},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":877},{"__isSmartRef__":true,"id":879}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"884":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"885":{"namespaceIdentifier":"Global.lively.NoMoreModels","createTime":{"__isSmartRef__":true,"id":886},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":881}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"886":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"887":{"namespaceIdentifier":"Global.lively.Data","createTime":{"__isSmartRef__":true,"id":888},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":881}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"888":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"889":{"namespaceIdentifier":"Global.lively.morphic.CompatLayer","createTime":{"__isSmartRef__":true,"id":890},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":849},{"__isSmartRef__":true,"id":847}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"890":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"891":{"namespaceIdentifier":"Global.lively.Network","createTime":{"__isSmartRef__":true,"id":892},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":841},{"__isSmartRef__":true,"id":885},{"__isSmartRef__":true,"id":887}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"892":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"893":{"namespaceIdentifier":"Global.lively.morphic.ClickOnLineHack","createTime":{"__isSmartRef__":true,"id":894},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":857},{"__isSmartRef__":true,"id":847}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"894":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"895":{"namespaceIdentifier":"Global.lively.morphic.Halos","createTime":{"__isSmartRef__":true,"id":896},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":857},{"__isSmartRef__":true,"id":855}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"896":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"897":{"namespaceIdentifier":"Global.lively.morphic.Serialization","createTime":{"__isSmartRef__":true,"id":898},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":891},{"__isSmartRef__":true,"id":877},{"__isSmartRef__":true,"id":849},{"__isSmartRef__":true,"id":853},{"__isSmartRef__":true,"id":875},{"__isSmartRef__":true,"id":855}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"898":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"899":{"namespaceIdentifier":"Global.lively.morphic.AdditionalMorphs","createTime":{"__isSmartRef__":true,"id":900},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":895}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"900":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"901":{"namespaceIdentifier":"Global.lively.morphic.MorphAddons","createTime":{"__isSmartRef__":true,"id":902},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":849},{"__isSmartRef__":true,"id":857},{"__isSmartRef__":true,"id":855},{"__isSmartRef__":true,"id":871}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"902":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"903":{"namespaceIdentifier":"Global.lively.morphic.Layout","createTime":{"__isSmartRef__":true,"id":904},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":849},{"__isSmartRef__":true,"id":855}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"904":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"905":{"namespaceIdentifier":"Global.lively.morphic.ObjectMigration","createTime":{"__isSmartRef__":true,"id":906},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":897},{"__isSmartRef__":true,"id":847}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"906":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"907":{"namespaceIdentifier":"Global.lively.morphic.Connectors","createTime":{"__isSmartRef__":true,"id":908},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":899},{"__isSmartRef__":true,"id":845}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"908":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"909":{"namespaceIdentifier":"Global.lively.ide.BrowserFramework","createTime":{"__isSmartRef__":true,"id":910},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":889},{"__isSmartRef__":true,"id":855},{"__isSmartRef__":true,"id":901}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"910":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"911":{"namespaceIdentifier":"Global.lively.morphic.ScriptingSupport","createTime":{"__isSmartRef__":true,"id":912},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":849},{"__isSmartRef__":true,"id":402},{"__isSmartRef__":true,"id":907}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"912":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"913":{"namespaceIdentifier":"Global.lively.morphic.Complete","createTime":{"__isSmartRef__":true,"id":914},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":899},{"__isSmartRef__":true,"id":855},{"__isSmartRef__":true,"id":897},{"__isSmartRef__":true,"id":901},{"__isSmartRef__":true,"id":911},{"__isSmartRef__":true,"id":895},{"__isSmartRef__":true,"id":903},{"__isSmartRef__":true,"id":905},{"__isSmartRef__":true,"id":853},{"__isSmartRef__":true,"id":915}],"pendingRequirements":[],"callbacks":[],"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":917},{"__isSmartRef__":true,"id":839}],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"914":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"915":{"namespaceIdentifier":"Global.lively.morphic.Experiments","createTime":{"__isSmartRef__":true,"id":916},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":913}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":847},{"__isSmartRef__":true,"id":849}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"916":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"917":{"namespaceIdentifier":"Global.lively.morphic","createTime":{"__isSmartRef__":true,"id":918},"Shapes":{"__isSmartRef__":true,"id":851},"Core":{"__isSmartRef__":true,"id":849},"Styles":{"__isSmartRef__":true,"id":871},"PathShapes":{"__isSmartRef__":true,"id":863},"TextCore":{"__isSmartRef__":true,"id":853},"CompatLayer":{"__isSmartRef__":true,"id":889},"Compat":{"__isSmartRef__":true,"id":919},"Rendering":{"__isSmartRef__":true,"id":861},"HTML":{"__isSmartRef__":true,"id":859},"SVG":{"__isSmartRef__":true,"id":865},"Canvas":{"__isSmartRef__":true,"id":867},"Events":{"__isSmartRef__":true,"id":857},"EventSimulator":{"__isSmartRef__":true,"id":921},"ClickOnLineHack":{"__isSmartRef__":true,"id":893},"EventExperiments":{"__isSmartRef__":true,"id":922},"Widgets":{"__isSmartRef__":true,"id":855},"Halos":{"__isSmartRef__":true,"id":895},"BindingsExtensionLayer":{"__isSmartRef__":true,"id":926},"Serialization":{"__isSmartRef__":true,"id":897},"AdditionalMorphs":{"__isSmartRef__":true,"id":899},"PathOriginHackLayer":{"__isSmartRef__":true,"id":928},"MorphAddons":{"__isSmartRef__":true,"id":901},"Layout":{"__isSmartRef__":true,"id":903},"ObjectMigration":{"__isSmartRef__":true,"id":905},"Connectors":{"__isSmartRef__":true,"id":907},"VisualBindingsLayer":{"__isSmartRef__":true,"id":935},"ScriptingSupport":{"__isSmartRef__":true,"id":911},"CopyStyleLayer":{"__isSmartRef__":true,"id":938},"Complete":{"__isSmartRef__":true,"id":913},"Experiments":{"__isSmartRef__":true,"id":915},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":913},{"__isSmartRef__":true,"id":889}],"pendingRequirements":[],"callbacks":[],"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":924},{"__isSmartRef__":true,"id":940},{"__isSmartRef__":true,"id":839}],"_isLoaded":true,"GrabbingDefaultLayer":{"__isSmartRef__":true,"id":942},"GrabbingLayer":{"__isSmartRef__":true,"id":944},"__LivelyClassName__":"Namespace"},"918":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"919":{"namespaceIdentifier":"Global.lively.morphic.Compat","createTime":{"__isSmartRef__":true,"id":920},"__LivelyClassName__":"Namespace"},"920":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"921":{},"922":{"namespaceIdentifier":"Global.lively.morphic.EventExperiments","createTime":{"__isSmartRef__":true,"id":923},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":847},{"__isSmartRef__":true,"id":924},{"__isSmartRef__":true,"id":895}],"pendingRequirements":[],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"923":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"924":{"namespaceIdentifier":"Global.lively.LayerableMorphs","createTime":{"__isSmartRef__":true,"id":925},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":847},{"__isSmartRef__":true,"id":917}],"pendingRequirements":[],"callbacks":[],"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":839},{"__isSmartRef__":true,"id":922}],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"925":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"926":{"3":{"__isSmartRef__":true,"id":927},"name":"BindingsExtensionLayer","namespaceName":"Global.lively.morphic","__LivelyClassName__":"Layer","__SourceModuleName__":"Global.cop.Layers"},"927":{"_layered_object":{"__isSmartRef__":true,"id":841}},"928":{"4":{"__isSmartRef__":true,"id":929},"5":{"__isSmartRef__":true,"id":933},"name":"PathOriginHackLayer","namespaceName":"Global.lively.morphic","__LivelyClassName__":"Layer","__SourceModuleName__":"Global.cop.Layers"},"929":{"_layered_object":{"__isSmartRef__":true,"id":930}},"930":{"isPath":true,"style":{"__isSmartRef__":true,"id":931},"_layer_object_id":4,"__LivelyClassName__":"lively.morphic.Path","__SourceModuleName__":"Global.lively.morphic.AdditionalMorphs"},"931":{"borderWidth":1,"borderColor":{"__isSmartRef__":true,"id":932}},"932":{"r":0,"g":0,"b":0,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"933":{"_layered_object":{"__isSmartRef__":true,"id":934}},"934":{"_layer_object_id":5,"__LivelyClassName__":"lively.morphic.ControlPoint","__SourceModuleName__":"Global.lively.morphic.AdditionalMorphs"},"935":{"2":{"__isSmartRef__":true,"id":936},"6":{"__isSmartRef__":true,"id":937},"name":"VisualBindingsLayer","namespaceName":"Global.lively.morphic","__LivelyClassName__":"Layer","__SourceModuleName__":"Global.cop.Layers"},"936":{"_layered_object":{"__isSmartRef__":true,"id":313}},"937":{"_layered_object":{"__isSmartRef__":true,"id":380}},"938":{"2":{"__isSmartRef__":true,"id":939},"name":"CopyStyleLayer","namespaceName":"Global.lively.morphic","__LivelyClassName__":"Layer","__SourceModuleName__":"Global.cop.Layers"},"939":{"_layered_object":{"__isSmartRef__":true,"id":313}},"940":{"namespaceIdentifier":"Global.lively.ide.SyntaxHighlighting","createTime":{"__isSmartRef__":true,"id":941},"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":917},{"__isSmartRef__":true,"id":909}],"pendingRequirements":[],"callbacks":[],"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":839}],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"941":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"942":{"2":{"__isSmartRef__":true,"id":943},"name":"GrabbingDefaultLayer","namespaceName":"Global.lively.morphic","__LivelyClassName__":"Layer","__SourceModuleName__":"Global.cop.Layers"},"943":{"_layered_object":{"__isSmartRef__":true,"id":313},"draggingEnabled":true},"944":{"2":{"__isSmartRef__":true,"id":945},"8":{"__isSmartRef__":true,"id":946},"name":"GrabbingLayer","namespaceName":"Global.lively.morphic","__LivelyClassName__":"Layer","__SourceModuleName__":"Global.cop.Layers"},"945":{"_layered_object":{"__isSmartRef__":true,"id":313},"draggingEnabled":true},"946":{"_layered_object":{"__isSmartRef__":true,"id":947}},"947":{"isText":true,"allowInput":true,"style":{"__isSmartRef__":true,"id":948},"autoAdjustPadding":true,"suppressDropping":true,"tab":" ","htmlDispatchTable":{"__isSmartRef__":true,"id":951},"svgDispatchTable":{"__isSmartRef__":true,"id":952},"canvasDispatchTable":{"__isSmartRef__":true,"id":953},"accessibleInInactiveWindow":false,"connections":{"__isSmartRef__":true,"id":954},"doNotSerialize":["charsTyped"],"_layer_object_id":8,"syntaxHighlightingCharLimit":4000,"_cachedScrollBarExtent":{"__isSmartRef__":true,"id":957},"renderContextTable":{"__isSmartRef__":true,"id":315},"textChunks":[{"__isSmartRef__":true,"id":958}],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"948":{"borderWidth":1,"borderColor":{"__isSmartRef__":true,"id":932},"fill":{"__isSmartRef__":true,"id":949},"fixedWidth":true,"fixedHeight":true,"enableGrabbing":false,"enableDropping":false,"allowInput":true,"clipMode":"visible","fontFamily":"Helvetica","fontSize":10,"padding":{"__isSmartRef__":true,"id":950}},"949":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"950":{"x":4,"y":2,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"951":{"updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"952":{"renderText":"renderTextSVG","updateText":"updateTextSVG","setTextExtent":"setTextExtentSVG","getTextExtent":"getTextExtentSVG","setMaxTextWidth":"setMaxTextWidthSVG","setMaxTextHeight":"setMaxTextHeightSVG","getTextString":"getTextStringSVG","ignoreTextEvents":"ignoreTextEventsSVG"},"953":{"updateText":"attributeChangedCANVAS"},"954":{"textString":{"__isSmartRef__":true,"id":955},"savedTextString":{"__isSmartRef__":true,"id":956}},"955":{},"956":{},"957":{"x":15,"y":15,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"958":{"style":{"__isSmartRef__":true,"id":959},"chunkOwner":{"__isSmartRef__":true,"id":947},"storedString":"","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"959":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"960":{"isListItem":true,"value":{"__isSmartRef__":true,"id":961},"string":"extend full: Global.anonymous_module_1(object): requires"},"961":{"object":{"__isSmartRef__":true,"id":962},"method":"requires","string":"Global.anonymous_module_1(object): requires","type":"extend","search":"sender"},"962":{"namespaceIdentifier":"Global.anonymous_module_1","createTime":{"__isSmartRef__":true,"id":963},"wasDefined":true,"_isAnonymous":true,"sourceModuleName":"Global.anonymous_module_0","defStack":"Error\n at require (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1684:15)\n at Object.loadMain (http://lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:444:9)\n at http://lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:494:18\n at curried (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:122:21)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1657:30\n at Namespace.runOnloadCallbacks (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:2559:26)\n at Namespace.load (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:2598:9)\n at Namespace.removeRequiredModule (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:2526:9)\n at Namespace. (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:2496:34)\n at Array.forEach (native)","privateRequirements":[{"__isSmartRef__":true,"id":841},{"__isSmartRef__":true,"id":883}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"963":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:59 GMT+0200 (CEST)"},"964":{"isListItem":true,"value":{"__isSmartRef__":true,"id":965},"string":"extend full: Global.anonymous_module_10(object): requires"},"965":{"object":{"__isSmartRef__":true,"id":966},"method":"requires","string":"Global.anonymous_module_10(object): requires","type":"extend","search":"sender"},"966":{"namespaceIdentifier":"Global.anonymous_module_10","createTime":{"__isSmartRef__":true,"id":967},"wasDefined":true,"_isAnonymous":true,"sourceModuleName":"Global","defStack":"Error\n at require (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1684:15)\n at Text. (eval at (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14887:60))\n at Text. (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14887:55)\n at Text.boundEval (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14888:32)\n at Text.tryBoundEval (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14891:27)\n at Text.evalSelection (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14874:27)\n at Text.doDoit (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14087:31)\n at Text.processCommandKeys (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14013:30)\n at Text.onKeyDown (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:13909:31)\n at EventHandler.handleEvent (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:19682:63)","__LivelyClassName__":"Namespace"},"967":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:25:46 GMT+0200 (CEST)"},"968":{"isListItem":true,"value":{"__isSmartRef__":true,"id":969},"string":"extend full: Global.anonymous_module_2(object): requires"},"969":{"object":{"__isSmartRef__":true,"id":970},"method":"requires","string":"Global.anonymous_module_2(object): requires","type":"extend","search":"sender"},"970":{"namespaceIdentifier":"Global.anonymous_module_2","createTime":{"__isSmartRef__":true,"id":971},"wasDefined":true,"_isAnonymous":true,"sourceModuleName":"Global.anonymous_module_1","defStack":"Error\n at require (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1684:15)\n at CanvasLoader.loadWorld (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:12653:9)\n at CanvasLoader.systemStart (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:12647:14)\n at http://lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:447:20\n at curried (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:122:21)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1657:30\n at Namespace.runOnloadCallbacks (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:2559:26)\n at Namespace.load (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:2598:9)\n at Object.toRun (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1666:24)\n at Object.loadMain (http://lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:444:51)","privateRequirements":[{"__isSmartRef__":true,"id":897}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"971":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:59 GMT+0200 (CEST)"},"972":{"isListItem":true,"value":{"__isSmartRef__":true,"id":973},"string":"extend full: Global.anonymous_module_3(object): requires"},"973":{"object":{"__isSmartRef__":true,"id":974},"method":"requires","string":"Global.anonymous_module_3(object): requires","type":"extend","search":"sender"},"974":{"namespaceIdentifier":"Global.anonymous_module_3","createTime":{"__isSmartRef__":true,"id":975},"wasDefined":true,"_isAnonymous":true,"sourceModuleName":"Global.anonymous_module_2","defStack":"Error\n at require (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1684:15)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:12654:13\n at curried (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:122:21)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1657:30\n at Namespace.runOnloadCallbacks (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:2559:26)\n at Namespace.load (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:2598:9)\n at Object.toRun (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1666:24)\n at CanvasLoader.loadWorld (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:12653:59)\n at CanvasLoader.systemStart (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:12647:14)\n at http://lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:447:20","privateRequirements":[{"__isSmartRef__":true,"id":879},{"__isSmartRef__":true,"id":849},{"__isSmartRef__":true,"id":857},{"__isSmartRef__":true,"id":851},{"__isSmartRef__":true,"id":855},{"__isSmartRef__":true,"id":853},{"__isSmartRef__":true,"id":841},{"__isSmartRef__":true,"id":879},{"__isSmartRef__":true,"id":913}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"975":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:59 GMT+0200 (CEST)"},"976":{"isListItem":true,"value":{"__isSmartRef__":true,"id":977},"string":"extend full: Global.anonymous_module_4(object): requires"},"977":{"object":{"__isSmartRef__":true,"id":978},"method":"requires","string":"Global.anonymous_module_4(object): requires","type":"extend","search":"sender"},"978":{"namespaceIdentifier":"Global.anonymous_module_4","createTime":{"__isSmartRef__":true,"id":979},"wasDefined":true,"_isAnonymous":true,"sourceModuleName":"Global.anonymous_module_3","defStack":"Error\n at require (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1684:15)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:12657:17\n at curried (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:122:21)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1657:30\n at Namespace.runOnloadCallbacks (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:2559:26)\n at Namespace.load (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:2598:9)\n at Object.toRun (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1666:24)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:12654:55\n at curried (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:122:21)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1657:30","privateRequirements":[{"__isSmartRef__":true,"id":889}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"979":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:59 GMT+0200 (CEST)"},"980":{"isListItem":true,"value":{"__isSmartRef__":true,"id":981},"string":"extend full: Global.anonymous_module_5(object): requires"},"981":{"object":{"__isSmartRef__":true,"id":982},"method":"requires","string":"Global.anonymous_module_5(object): requires","type":"extend","search":"sender"},"982":{"namespaceIdentifier":"Global.anonymous_module_5","createTime":{"__isSmartRef__":true,"id":983},"wasDefined":true,"_isAnonymous":true,"sourceModuleName":"Global.anonymous_module_4","defStack":"Error\n at require (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1684:15)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:12659:21\n at curried (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:122:21)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1657:30\n at Namespace.runOnloadCallbacks (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:2559:26)\n at Namespace.load (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:2598:9)\n at Object.toRun (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1666:24)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:12657:61\n at curried (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:122:21)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1657:30","callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"983":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:59 GMT+0200 (CEST)"},"984":{"isListItem":true,"value":{"__isSmartRef__":true,"id":985},"string":"extend full: Global.anonymous_module_6(object): requires"},"985":{"object":{"__isSmartRef__":true,"id":986},"method":"requires","string":"Global.anonymous_module_6(object): requires","type":"extend","search":"sender"},"986":{"namespaceIdentifier":"Global.anonymous_module_6","createTime":{"__isSmartRef__":true,"id":987},"wasDefined":true,"_isAnonymous":true,"sourceModuleName":"Global","defStack":"Error\n at require (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1684:15)\n at World.openSystemBrowser (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:20985:9)\n at Object.bound [as onClickCallback] (http://lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:765:37)\n at Text.onMouseUp (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:21862:46)\n at Text.onMouseUpEntry (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:20182:21)\n at EventHandler.handleEvent (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:19682:63)\n at HTMLDivElement.bound (http://lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:765:37)","privateRequirements":[{"__isSmartRef__":true,"id":988}],"pendingRequirements":[],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"987":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:17 GMT+0200 (CEST)"},"988":{"namespaceIdentifier":"Global.lively.ide.SystemCodeBrowser","createTime":{"__isSmartRef__":true,"id":989},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":986}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":909},{"__isSmartRef__":true,"id":990},{"__isSmartRef__":true,"id":992},{"__isSmartRef__":true,"id":994},{"__isSmartRef__":true,"id":1016},{"__isSmartRef__":true,"id":940}],"pendingRequirements":[],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"989":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:17 GMT+0200 (CEST)"},"990":{"namespaceIdentifier":"Global.lively.ide.SystemBrowserNodes","createTime":{"__isSmartRef__":true,"id":991},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":988}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":909}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"991":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:17 GMT+0200 (CEST)"},"992":{"namespaceIdentifier":"Global.lively.ide.BrowserCommands","createTime":{"__isSmartRef__":true,"id":993},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":988}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":909}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"993":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:17 GMT+0200 (CEST)"},"994":{"namespaceIdentifier":"Global.lively.ide.SourceDatabase","createTime":{"__isSmartRef__":true,"id":995},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":988}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":996}],"pendingRequirements":[],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"995":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:17 GMT+0200 (CEST)"},"996":{"namespaceIdentifier":"Global.lively.ide.FileParsing","createTime":{"__isSmartRef__":true,"id":997},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":994}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":998},{"__isSmartRef__":true,"id":1014}],"pendingRequirements":[],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"997":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:17 GMT+0200 (CEST)"},"998":{"namespaceIdentifier":"Global.lively.Ometa","createTime":{"__isSmartRef__":true,"id":999},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":996}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":891},{"__isSmartRef__":true,"id":1000},{"__isSmartRef__":true,"id":1004}],"pendingRequirements":[],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"999":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:17 GMT+0200 (CEST)"},"1000":{"namespaceIdentifier":"Global.ometa.ometa-base","createTime":{"__isSmartRef__":true,"id":1001},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":998}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":1002}],"pendingRequirements":[],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1001":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:17 GMT+0200 (CEST)"},"1002":{"namespaceIdentifier":"Global.ometa.lib","createTime":{"__isSmartRef__":true,"id":1003},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":1000}],"wasDefined":true,"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1003":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:17 GMT+0200 (CEST)"},"1004":{"namespaceIdentifier":"Global.ometa.lk-parser-extensions","createTime":{"__isSmartRef__":true,"id":1005},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":998}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":1006},{"__isSmartRef__":true,"id":1008},{"__isSmartRef__":true,"id":1010},{"__isSmartRef__":true,"id":1012}],"pendingRequirements":[],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1005":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:17 GMT+0200 (CEST)"},"1006":{"namespaceIdentifier":"Global.ometa.parser","createTime":{"__isSmartRef__":true,"id":1007},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":1004}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":1000}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1007":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:19 GMT+0200 (CEST)"},"1008":{"namespaceIdentifier":"Global.ometa.bs-ometa-optimizer","createTime":{"__isSmartRef__":true,"id":1009},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":1004}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":1000}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1009":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:19 GMT+0200 (CEST)"},"1010":{"namespaceIdentifier":"Global.ometa.bs-js-compiler","createTime":{"__isSmartRef__":true,"id":1011},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":1004}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":1006}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1011":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:19 GMT+0200 (CEST)"},"1012":{"namespaceIdentifier":"Global.ometa.bs-ometa-compiler","createTime":{"__isSmartRef__":true,"id":1013},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":1004}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":1006},{"__isSmartRef__":true,"id":1010}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1013":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:19 GMT+0200 (CEST)"},"1014":{"namespaceIdentifier":"Global.lively.LKFileParser","createTime":{"__isSmartRef__":true,"id":1015},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":996}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":1006}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1015":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:17 GMT+0200 (CEST)"},"1016":{"namespaceIdentifier":"Global.lively.ide.LocalBrowser","createTime":{"__isSmartRef__":true,"id":1017},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":988}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":879},{"__isSmartRef__":true,"id":909},{"__isSmartRef__":true,"id":992}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1017":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:17 GMT+0200 (CEST)"},"1018":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1019},"string":"extend full: Global.anonymous_module_7(object): requires"},"1019":{"object":{"__isSmartRef__":true,"id":1020},"method":"requires","string":"Global.anonymous_module_7(object): requires","type":"extend","search":"sender"},"1020":{"namespaceIdentifier":"Global.anonymous_module_7","createTime":{"__isSmartRef__":true,"id":1021},"wasDefined":true,"_isAnonymous":true,"sourceModuleName":"Global.anonymous_module_6","defStack":"Error\n at require (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1684:15)\n at Text.enableSyntaxHighlighting (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:15305:9)\n at SystemBrowser.setupSourceInput (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:28477:48)\n at SystemBrowser. (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:28500:14)\n at SystemBrowser. (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:7757:48)\n at SystemBrowser.buildView (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:7522:36)\n at SystemBrowser.openIn (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:23168:25)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:20987:21\n at curried (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:122:21)\n at http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1657:30","privateRequirements":[{"__isSmartRef__":true,"id":940}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1021":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:19 GMT+0200 (CEST)"},"1022":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1023},"string":"extend full: Global.anonymous_module_8(object): requires"},"1023":{"object":{"__isSmartRef__":true,"id":1024},"method":"requires","string":"Global.anonymous_module_8(object): requires","type":"extend","search":"sender"},"1024":{"namespaceIdentifier":"Global.anonymous_module_8","createTime":{"__isSmartRef__":true,"id":1025},"wasDefined":true,"_isAnonymous":true,"sourceModuleName":"Global","defStack":"Error\n at require (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1684:15)\n at Text.enableSyntaxHighlighting (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:15305:9)\n at Text. (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:13735:83)\n at Text.wrapped [as applyStyle] (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:140:22)\n at World.addTextWindow (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:22337:19)\n at World.openWorkspace (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:20994:25)\n at Object.bound [as onClickCallback] (http://lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:765:37)\n at Text.onMouseUp (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:21862:46)\n at Text.onMouseUpEntry (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:20182:21)\n at EventHandler.handleEvent (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:19682:63)","privateRequirements":[{"__isSmartRef__":true,"id":940}],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1025":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:23:40 GMT+0200 (CEST)"},"1026":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1027},"string":"extend full: Global.anonymous_module_9(object): requires"},"1027":{"object":{"__isSmartRef__":true,"id":1028},"method":"requires","string":"Global.anonymous_module_9(object): requires","type":"extend","search":"sender"},"1028":{"namespaceIdentifier":"Global.anonymous_module_9","createTime":{"__isSmartRef__":true,"id":1029},"wasDefined":true,"_isAnonymous":true,"sourceModuleName":"Global","defStack":"Error\n at require (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:1684:15)\n at Text. (eval at (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14887:60))\n at Text. (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14887:55)\n at Text.boundEval (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14888:32)\n at Text.tryBoundEval (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14891:27)\n at Text.evalSelection (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14874:27)\n at Text.doDoit (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14087:31)\n at Text.processCommandKeys (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:14013:30)\n at Text.onKeyDown (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:13909:31)\n at EventHandler.handleEvent (http://lively-kernel.org/repository/webwerkstatt/generated/combinedModules.js?5096cf19b934de7c217f2dd727b86d0b:19682:63)","__LivelyClassName__":"Namespace"},"1029":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:25:37 GMT+0200 (CEST)"},"1030":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1031},"string":"extend full: Global.apps.DateFormat(object): requires"},"1031":{"object":{"__isSmartRef__":true,"id":1032},"method":"requires","string":"Global.apps.DateFormat(object): requires","type":"extend","search":"sender"},"1032":{"namespaceIdentifier":"Global.apps.DateFormat","createTime":{"__isSmartRef__":true,"id":1033},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":1034}],"wasDefined":true,"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1033":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:28:45 GMT+0200 (CEST)"},"1034":{"namespaceIdentifier":"Global.lively.ide.VersionTools","createTime":{"__isSmartRef__":true,"id":1035},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":1036}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":917},{"__isSmartRef__":true,"id":1032}],"pendingRequirements":[],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1035":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:28:45 GMT+0200 (CEST)"},"1036":{"namespaceIdentifier":"Global.lively.ide","createTime":{"__isSmartRef__":true,"id":1037},"wasDefined":true,"BrowserFramework":{"__isSmartRef__":true,"id":909},"SyntaxHighlighting":{"__isSmartRef__":true,"id":940},"SystemCodeBrowser":{"__isSmartRef__":true,"id":988},"SystemBrowserNodes":{"__isSmartRef__":true,"id":990},"BrowserCommands":{"__isSmartRef__":true,"id":992},"SourceDatabase":{"__isSmartRef__":true,"id":994},"LocalBrowser":{"__isSmartRef__":true,"id":1016},"FileParsing":{"__isSmartRef__":true,"id":996},"SourceControl":{"__isSmartRef__":true,"id":1038},"privateRequirements":[{"__isSmartRef__":true,"id":1039},{"__isSmartRef__":true,"id":988},{"__isSmartRef__":true,"id":1016},{"__isSmartRef__":true,"id":1034}],"pendingRequirements":[],"VersionTools":{"__isSmartRef__":true,"id":1034},"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1037":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"1038":{"__LivelyClassName__":"AnotherSourceDatabase","__SourceModuleName__":"Global.lively.ide.SourceDatabase"},"1039":{"namespaceIdentifier":"Global.lively.Helper","createTime":{"__isSmartRef__":true,"id":1040},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":1036}],"wasDefined":true,"privateRequirements":[{"__isSmartRef__":true,"id":1041}],"pendingRequirements":[],"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1040":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:28:45 GMT+0200 (CEST)"},"1041":{"namespaceIdentifier":"Global.lively.LogHelper","createTime":{"__isSmartRef__":true,"id":1042},"dependendModules":[],"debugDependendModules":[{"__isSmartRef__":true,"id":1039}],"wasDefined":true,"callbacks":[],"_isLoaded":true,"__LivelyClassName__":"Namespace"},"1042":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:28:45 GMT+0200 (CEST)"},"1043":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1044},"string":"extend full: Global.cop.Layers(object): requires"},"1044":{"object":{"__isSmartRef__":true,"id":847},"method":"requires","string":"Global.cop.Layers(object): requires","type":"extend","search":"sender"},"1045":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1046},"string":"extend full: Global.lively.ChangeSet(object): requires"},"1046":{"object":{"__isSmartRef__":true,"id":879},"method":"requires","string":"Global.lively.ChangeSet(object): requires","type":"extend","search":"sender"},"1047":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1048},"string":"extend full: Global.lively.CrayonColors(object): requires"},"1048":{"object":{"__isSmartRef__":true,"id":873},"method":"requires","string":"Global.lively.CrayonColors(object): requires","type":"extend","search":"sender"},"1049":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1050},"string":"extend full: Global.lively.DOMAbstraction(object): requires"},"1050":{"object":{"__isSmartRef__":true,"id":875},"method":"requires","string":"Global.lively.DOMAbstraction(object): requires","type":"extend","search":"sender"},"1051":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1052},"string":"extend full: Global.lively.Data(object): requires"},"1052":{"object":{"__isSmartRef__":true,"id":887},"method":"requires","string":"Global.lively.Data(object): requires","type":"extend","search":"sender"},"1053":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1054},"string":"extend full: Global.lively.Helper(object): requires"},"1054":{"object":{"__isSmartRef__":true,"id":1039},"method":"requires","string":"Global.lively.Helper(object): requires","type":"extend","search":"sender"},"1055":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1056},"string":"extend full: Global.lively.LKFileParser(object): requires"},"1056":{"object":{"__isSmartRef__":true,"id":1014},"method":"requires","string":"Global.lively.LKFileParser(object): requires","type":"extend","search":"sender"},"1057":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1058},"string":"extend full: Global.lively.LayerableMorphs(object): requires"},"1058":{"object":{"__isSmartRef__":true,"id":924},"method":"requires","string":"Global.lively.LayerableMorphs(object): requires","type":"extend","search":"sender"},"1059":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1060},"string":"extend full: Global.lively.LogHelper(object): requires"},"1060":{"object":{"__isSmartRef__":true,"id":1041},"method":"requires","string":"Global.lively.LogHelper(object): requires","type":"extend","search":"sender"},"1061":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1062},"string":"extend full: Global.lively.Main(object): getLoader"},"1062":{"object":{"__isSmartRef__":true,"id":883},"method":"getLoader","string":"Global.lively.Main(object): getLoader","type":"extend","search":"sender"},"1063":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1064},"string":"extend full: Global.lively.Main(object): requires"},"1064":{"object":{"__isSmartRef__":true,"id":883},"method":"requires","string":"Global.lively.Main(object): requires","type":"extend","search":"sender"},"1065":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1066},"string":"extend full: Global.lively.Network(object): requires"},"1066":{"object":{"__isSmartRef__":true,"id":891},"method":"requires","string":"Global.lively.Network(object): requires","type":"extend","search":"sender"},"1067":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1068},"string":"extend full: Global.lively.NoMoreModels(object): requires"},"1068":{"object":{"__isSmartRef__":true,"id":885},"method":"requires","string":"Global.lively.NoMoreModels(object): requires","type":"extend","search":"sender"},"1069":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1070},"string":"extend full: Global.lively.OldModel(object): requires"},"1070":{"object":{"__isSmartRef__":true,"id":881},"method":"requires","string":"Global.lively.OldModel(object): requires","type":"extend","search":"sender"},"1071":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1072},"string":"extend full: Global.lively.Ometa(object): requires"},"1072":{"object":{"__isSmartRef__":true,"id":998},"method":"requires","string":"Global.lively.Ometa(object): requires","type":"extend","search":"sender"},"1073":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1074},"string":"extend full: Global.lively.PartsBin(object): getPart"},"1074":{"object":{"__isSmartRef__":true,"id":402},"method":"getPart","string":"Global.lively.PartsBin(object): getPart","type":"extend","search":"sender"},"1075":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1076},"string":"extend full: Global.lively.PartsBin(object): requires"},"1076":{"object":{"__isSmartRef__":true,"id":402},"method":"requires","string":"Global.lively.PartsBin(object): requires","type":"extend","search":"sender"},"1077":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1078},"string":"extend full: Global.lively.Traits(object): requires"},"1078":{"object":{"__isSmartRef__":true,"id":404},"method":"requires","string":"Global.lively.Traits(object): requires","type":"extend","search":"sender"},"1079":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1080},"string":"extend full: Global.lively.WidgetsTraits(object): requires"},"1080":{"object":{"__isSmartRef__":true,"id":869},"method":"requires","string":"Global.lively.WidgetsTraits(object): requires","type":"extend","search":"sender"},"1081":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1082},"string":"extend full: Global.lively.bindings(object): requires"},"1082":{"object":{"__isSmartRef__":true,"id":841},"method":"requires","string":"Global.lively.bindings(object): requires","type":"extend","search":"sender"},"1083":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1084},"string":"extend full: Global.lively.bindings.Core(object): requires"},"1084":{"object":{"__isSmartRef__":true,"id":843},"method":"requires","string":"Global.lively.bindings.Core(object): requires","type":"extend","search":"sender"},"1085":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1086},"string":"extend full: Global.lively.bindings.GeometryBindings(object): requires"},"1086":{"object":{"__isSmartRef__":true,"id":845},"method":"requires","string":"Global.lively.bindings.GeometryBindings(object): requires","type":"extend","search":"sender"},"1087":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1088},"string":"extend full: Global.lively.ide(object): openFile"},"1088":{"object":{"__isSmartRef__":true,"id":1036},"method":"openFile","string":"Global.lively.ide(object): openFile","type":"extend","search":"sender"},"1089":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1090},"string":"extend full: Global.lively.ide(object): requires"},"1090":{"object":{"__isSmartRef__":true,"id":1036},"method":"requires","string":"Global.lively.ide(object): requires","type":"extend","search":"sender"},"1091":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1092},"string":"extend full: Global.lively.ide.BrowserCommands(object): requires"},"1092":{"object":{"__isSmartRef__":true,"id":992},"method":"requires","string":"Global.lively.ide.BrowserCommands(object): requires","type":"extend","search":"sender"},"1093":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1094},"string":"extend full: Global.lively.ide.BrowserFramework(object): requires"},"1094":{"object":{"__isSmartRef__":true,"id":909},"method":"requires","string":"Global.lively.ide.BrowserFramework(object): requires","type":"extend","search":"sender"},"1095":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1096},"string":"extend full: Global.lively.ide.FileParsing(object): requires"},"1096":{"object":{"__isSmartRef__":true,"id":996},"method":"requires","string":"Global.lively.ide.FileParsing(object): requires","type":"extend","search":"sender"},"1097":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1098},"string":"extend full: Global.lively.ide.LocalBrowser(object): requires"},"1098":{"object":{"__isSmartRef__":true,"id":1016},"method":"requires","string":"Global.lively.ide.LocalBrowser(object): requires","type":"extend","search":"sender"},"1099":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1100},"string":"extend full: Global.lively.ide.SourceDatabase(object): requires"},"1100":{"object":{"__isSmartRef__":true,"id":994},"method":"requires","string":"Global.lively.ide.SourceDatabase(object): requires","type":"extend","search":"sender"},"1101":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1102},"string":"extend full: Global.lively.ide.SyntaxHighlighting(object): requires"},"1102":{"object":{"__isSmartRef__":true,"id":940},"method":"requires","string":"Global.lively.ide.SyntaxHighlighting(object): requires","type":"extend","search":"sender"},"1103":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1104},"string":"extend full: Global.lively.ide.SystemBrowserNodes(object): requires"},"1104":{"object":{"__isSmartRef__":true,"id":990},"method":"requires","string":"Global.lively.ide.SystemBrowserNodes(object): requires","type":"extend","search":"sender"},"1105":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1106},"string":"extend full: Global.lively.ide.SystemCodeBrowser(object): requires"},"1106":{"object":{"__isSmartRef__":true,"id":988},"method":"requires","string":"Global.lively.ide.SystemCodeBrowser(object): requires","type":"extend","search":"sender"},"1107":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1108},"string":"extend full: Global.lively.ide.VersionTools(object): requires"},"1108":{"object":{"__isSmartRef__":true,"id":1034},"method":"requires","string":"Global.lively.ide.VersionTools(object): requires","type":"extend","search":"sender"},"1109":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1110},"string":"extend full: Global.lively.morphic(object): requires"},"1110":{"object":{"__isSmartRef__":true,"id":917},"method":"requires","string":"Global.lively.morphic(object): requires","type":"extend","search":"sender"},"1111":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1112},"string":"extend full: Global.lively.morphic.AdditionalMorphs(object): requires"},"1112":{"object":{"__isSmartRef__":true,"id":899},"method":"requires","string":"Global.lively.morphic.AdditionalMorphs(object): requires","type":"extend","search":"sender"},"1113":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1114},"string":"extend full: Global.lively.morphic.Canvas(object): requires"},"1114":{"object":{"__isSmartRef__":true,"id":867},"method":"requires","string":"Global.lively.morphic.Canvas(object): requires","type":"extend","search":"sender"},"1115":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1116},"string":"extend full: Global.lively.morphic.ClickOnLineHack(object): requires"},"1116":{"object":{"__isSmartRef__":true,"id":893},"method":"requires","string":"Global.lively.morphic.ClickOnLineHack(object): requires","type":"extend","search":"sender"},"1117":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1118},"string":"extend full: Global.lively.morphic.CompatLayer(object): requires"},"1118":{"object":{"__isSmartRef__":true,"id":889},"method":"requires","string":"Global.lively.morphic.CompatLayer(object): requires","type":"extend","search":"sender"},"1119":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1120},"string":"extend full: Global.lively.morphic.Complete(object): requires"},"1120":{"object":{"__isSmartRef__":true,"id":913},"method":"requires","string":"Global.lively.morphic.Complete(object): requires","type":"extend","search":"sender"},"1121":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1122},"string":"extend full: Global.lively.morphic.Connectors(object): requires"},"1122":{"object":{"__isSmartRef__":true,"id":907},"method":"requires","string":"Global.lively.morphic.Connectors(object): requires","type":"extend","search":"sender"},"1123":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1124},"string":"extend full: Global.lively.morphic.Core(object): requires"},"1124":{"object":{"__isSmartRef__":true,"id":849},"method":"requires","string":"Global.lively.morphic.Core(object): requires","type":"extend","search":"sender"},"1125":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1126},"string":"extend full: Global.lively.morphic.EventExperiments(object): requires"},"1126":{"object":{"__isSmartRef__":true,"id":922},"method":"requires","string":"Global.lively.morphic.EventExperiments(object): requires","type":"extend","search":"sender"},"1127":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1128},"string":"extend full: Global.lively.morphic.Events(object): requires"},"1128":{"object":{"__isSmartRef__":true,"id":857},"method":"requires","string":"Global.lively.morphic.Events(object): requires","type":"extend","search":"sender"},"1129":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1130},"string":"extend full: Global.lively.morphic.Experiments(object): requires"},"1130":{"object":{"__isSmartRef__":true,"id":915},"method":"requires","string":"Global.lively.morphic.Experiments(object): requires","type":"extend","search":"sender"},"1131":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1132},"string":"extend full: Global.lively.morphic.HTML(object): requires"},"1132":{"object":{"__isSmartRef__":true,"id":859},"method":"requires","string":"Global.lively.morphic.HTML(object): requires","type":"extend","search":"sender"},"1133":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1134},"string":"extend full: Global.lively.morphic.Halos(object): requires"},"1134":{"object":{"__isSmartRef__":true,"id":895},"method":"requires","string":"Global.lively.morphic.Halos(object): requires","type":"extend","search":"sender"},"1135":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1136},"string":"extend full: Global.lively.morphic.Layout(object): requires"},"1136":{"object":{"__isSmartRef__":true,"id":903},"method":"requires","string":"Global.lively.morphic.Layout(object): requires","type":"extend","search":"sender"},"1137":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1138},"string":"extend full: Global.lively.morphic.MorphAddons(object): requires"},"1138":{"object":{"__isSmartRef__":true,"id":901},"method":"requires","string":"Global.lively.morphic.MorphAddons(object): requires","type":"extend","search":"sender"},"1139":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1140},"string":"extend full: Global.lively.morphic.ObjectMigration(object): requires"},"1140":{"object":{"__isSmartRef__":true,"id":905},"method":"requires","string":"Global.lively.morphic.ObjectMigration(object): requires","type":"extend","search":"sender"},"1141":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1142},"string":"extend full: Global.lively.morphic.PathShapes(object): requires"},"1142":{"object":{"__isSmartRef__":true,"id":863},"method":"requires","string":"Global.lively.morphic.PathShapes(object): requires","type":"extend","search":"sender"},"1143":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1144},"string":"extend full: Global.lively.morphic.Rendering(object): requires"},"1144":{"object":{"__isSmartRef__":true,"id":861},"method":"requires","string":"Global.lively.morphic.Rendering(object): requires","type":"extend","search":"sender"},"1145":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1146},"string":"extend full: Global.lively.morphic.SVG(object): requires"},"1146":{"object":{"__isSmartRef__":true,"id":865},"method":"requires","string":"Global.lively.morphic.SVG(object): requires","type":"extend","search":"sender"},"1147":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1148},"string":"extend full: Global.lively.morphic.ScriptingSupport(object): requires"},"1148":{"object":{"__isSmartRef__":true,"id":911},"method":"requires","string":"Global.lively.morphic.ScriptingSupport(object): requires","type":"extend","search":"sender"},"1149":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1150},"string":"extend full: Global.lively.morphic.Serialization(object): requires"},"1150":{"object":{"__isSmartRef__":true,"id":897},"method":"requires","string":"Global.lively.morphic.Serialization(object): requires","type":"extend","search":"sender"},"1151":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1152},"string":"extend full: Global.lively.morphic.Shapes(object): requires"},"1152":{"object":{"__isSmartRef__":true,"id":851},"method":"requires","string":"Global.lively.morphic.Shapes(object): requires","type":"extend","search":"sender"},"1153":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1154},"string":"extend full: Global.lively.morphic.Styles(object): requires"},"1154":{"object":{"__isSmartRef__":true,"id":871},"method":"requires","string":"Global.lively.morphic.Styles(object): requires","type":"extend","search":"sender"},"1155":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1156},"string":"extend full: Global.lively.morphic.TextCore(object): requires"},"1156":{"object":{"__isSmartRef__":true,"id":853},"method":"requires","string":"Global.lively.morphic.TextCore(object): requires","type":"extend","search":"sender"},"1157":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1158},"string":"extend full: Global.lively.morphic.Widgets(object): requires"},"1158":{"object":{"__isSmartRef__":true,"id":855},"method":"requires","string":"Global.lively.morphic.Widgets(object): requires","type":"extend","search":"sender"},"1159":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1160},"string":"extend full: Global.lively.persistence.Serializer(object): requires"},"1160":{"object":{"__isSmartRef__":true,"id":877},"method":"requires","string":"Global.lively.persistence.Serializer(object): requires","type":"extend","search":"sender"},"1161":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1162},"string":"extend full: Global.lively.persistence.Serializer(object): serializeWorldToDocumentWithSerializer"},"1162":{"object":{"__isSmartRef__":true,"id":877},"method":"serializeWorldToDocumentWithSerializer","string":"Global.lively.persistence.Serializer(object): serializeWorldToDocumentWithSerializer","type":"extend","search":"sender"},"1163":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1164},"string":"extend full: Global.ometa.bs-js-compiler(object): requires"},"1164":{"object":{"__isSmartRef__":true,"id":1010},"method":"requires","string":"Global.ometa.bs-js-compiler(object): requires","type":"extend","search":"sender"},"1165":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1166},"string":"extend full: Global.ometa.bs-ometa-compiler(object): requires"},"1166":{"object":{"__isSmartRef__":true,"id":1012},"method":"requires","string":"Global.ometa.bs-ometa-compiler(object): requires","type":"extend","search":"sender"},"1167":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1168},"string":"extend full: Global.ometa.bs-ometa-optimizer(object): requires"},"1168":{"object":{"__isSmartRef__":true,"id":1008},"method":"requires","string":"Global.ometa.bs-ometa-optimizer(object): requires","type":"extend","search":"sender"},"1169":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1170},"string":"extend full: Global.ometa.lib(object): requires"},"1170":{"object":{"__isSmartRef__":true,"id":1002},"method":"requires","string":"Global.ometa.lib(object): requires","type":"extend","search":"sender"},"1171":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1172},"string":"extend full: Global.ometa.lk-parser-extensions(object): requires"},"1172":{"object":{"__isSmartRef__":true,"id":1004},"method":"requires","string":"Global.ometa.lk-parser-extensions(object): requires","type":"extend","search":"sender"},"1173":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1174},"string":"extend full: Global.ometa.ometa-base(object): requires"},"1174":{"object":{"__isSmartRef__":true,"id":1000},"method":"requires","string":"Global.ometa.ometa-base(object): requires","type":"extend","search":"sender"},"1175":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1176},"string":"extend full: Global.ometa.parser(object): requires"},"1176":{"object":{"__isSmartRef__":true,"id":1006},"method":"requires","string":"Global.ometa.parser(object): requires","type":"extend","search":"sender"},"1177":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1178},"string":"extend full: WorldDataAccessor(object): forCanvas"},"1178":{"method":"forCanvas","string":"WorldDataAccessor(object): forCanvas","type":"extend","search":"sender"},"1179":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1180},"string":"extend name: Global.lively(object): FileUploader"},"1180":{"object":{"__isSmartRef__":true,"id":1181},"method":"FileUploader","string":"Global.lively(object): FileUploader","type":"extend","search":"implementor"},"1181":{"namespaceIdentifier":"Global.lively","createTime":{"__isSmartRef__":true,"id":1182},"lang":{"__isSmartRef__":true,"id":1183},"LocalStorage":{"__isSmartRef__":true,"id":1186},"bindings":{"__isSmartRef__":true,"id":841},"DOMAbstraction":{"__isSmartRef__":true,"id":875},"Traits":{"__isSmartRef__":true,"id":404},"CrayonColors":{"__isSmartRef__":true,"id":873},"persistence":{"__isSmartRef__":true,"id":1187},"morphic":{"__isSmartRef__":true,"id":917},"ChangeSet":{"__isSmartRef__":true,"id":879},"OldModel":{"__isSmartRef__":true,"id":881},"WidgetsTraits":{"__isSmartRef__":true,"id":869},"PartsBin":{"__isSmartRef__":true,"id":402},"Main":{"__isSmartRef__":true,"id":883},"NoMoreModels":{"__isSmartRef__":true,"id":885},"Data":{"__isSmartRef__":true,"id":887},"_layer_object_id":1,"scene":{"__isSmartRef__":true,"id":1189},"Text":{"__isSmartRef__":true,"id":1190},"paint":{"__isSmartRef__":true,"id":1191},"Network":{"__isSmartRef__":true,"id":891},"ide":{"__isSmartRef__":true,"id":1036},"LayerableMorphs":{"__isSmartRef__":true,"id":924},"morph":{"__isSmartRef__":true,"id":1192},"Ometa":{"__isSmartRef__":true,"id":998},"LKFileParser":{"__isSmartRef__":true,"id":1014},"Helper":{"__isSmartRef__":true,"id":1039},"LogHelper":{"__isSmartRef__":true,"id":1041},"__LivelyClassName__":"Namespace"},"1182":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"1183":{"namespaceIdentifier":"Global.lively.lang","createTime":{"__isSmartRef__":true,"id":1184},"Execution":{"__isSmartRef__":true,"id":1185},"__LivelyClassName__":"Namespace"},"1184":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"1185":{},"1186":{},"1187":{"namespaceIdentifier":"Global.lively.persistence","createTime":{"__isSmartRef__":true,"id":1188},"Serializer":{"__isSmartRef__":true,"id":877},"__LivelyClassName__":"Namespace"},"1188":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"1189":{},"1190":{},"1191":{},"1192":{"namespaceIdentifier":"Global.lively.morph","createTime":{"__isSmartRef__":true,"id":1193},"__LivelyClassName__":"Namespace"},"1193":{"isSerializedDate":true,"string":"Wed Oct 12 2011 13:22:58 GMT+0200 (CEST)"},"1194":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1195},"string":"extend name: World(object): loadInIFrame"},"1195":{"method":"loadInIFrame","string":"World(object): loadInIFrame","type":"extend","search":"implementor"},"1196":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1197},"string":"global full: : module"},"1197":{"method":"module","string":" : module","type":"global","search":"sender"},"1198":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1199},"string":"global full: : requires"},"1199":{"method":"requires","string":" : requires","type":"global","search":"sender"},"1200":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1201},"string":"global name: : XMLHttpRequestUpload"},"1201":{"method":"XMLHttpRequestUpload","string":" : XMLHttpRequestUpload","type":"global","search":"implementor"},"1202":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1203},"string":"script full: MethodFinderPane(560): browse"},"1203":{"object":{"__isSmartRef__":true,"id":184},"method":"browse","string":"MethodFinderPane(560): browse","type":"script","search":"sender"},"1204":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1205},"string":"script full: MethodFinderPane(734): browse"},"1205":{"object":{"__isSmartRef__":true,"id":587},"method":"browse","string":"MethodFinderPane(734): browse","type":"script","search":"sender"},"1206":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"1207":{"sourceObj":{"__isSmartRef__":true,"id":650},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":587},"targetMethodName":"browse","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"1208":{"resizeWidth":true},"1209":{"x":874.3800299912526,"y":145.98799096394293,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1210":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateListContent":"updateListContentHTML","resizeList":"resizeListHTML","getItemIndexFromEvent":"getItemIndexFromEventHTML","getListExtent":"getListExtentHTML","setSize":"setSizeHTML","renderAsDropDownList":"renderAsDropDownListHTML","setFontSize":"setFontSizeHTML","setFontFamily":"setFontFamilyHTML","getSelectedIndexes":"getSelectedIndexesHTML","enableMultipleSelections":"enableMultipleSelectionsHTML","selectAllAt":"selectAllAtHTML","clearSelections":"clearSelectionsHTML","deselectAt":"deselectAtHTML"},"1211":{"morph":{"__isSmartRef__":true,"id":650},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1212":{"object":{"__isSmartRef__":true,"id":883},"method":"CanvasLoader","string":"Global.lively.Main(object): CanvasLoader","type":"extend","search":"implementor"},"1213":{"submorphs":[],"scripts":[],"id":739,"shape":{"__isSmartRef__":true,"id":1214},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":true,"_FontFamily":"Monaco, Courier","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":1221},"_MaxTextWidth":872.0469590469621,"_MaxTextHeight":null,"textStyle":null,"layout":{"__isSmartRef__":true,"id":1222},"doitContext":{"__isSmartRef__":true,"id":587},"charsReplaced":"","lastFindLoc":127,"showsHalos":false,"__SourceModuleName__":"Global.lively.morphic.TextCore","name":"sourceText","savedTextString":"// changes here only affect runtime\nObject.extend(lively.morphic.Morph,{\n\tmakeLine:function (verts, lineWidth, lineColor) {\n\t\tif (verts.length < 2) return null;\n\t\tif (verts.length > 2) {\n\t\t\t// Polylines become a mere blob for now...\n\t\t\tvar morph = this.makeRectangle(Rectangle.unionPts(verts));\n\t\t\tmorph.setBorderWidth(lineWidth);\n\t\t\tmorph.setBorderColor(lineColor);\n\t\t\tmorph.setFill(null);\n\t\t\treturn morph;\n\t\t} \n\t\t// Okay, it's a simple line...\n\t\tvar p1 = verts[0]; var p2 = verts[1];\n\t\tvar v = p2.subPt(p1);\n \n\t\t// First make a horizontal line of the same length with origin at (0, 0)\n\t\tvar morph = this.makeRectangle(Rectangle.unionPts([pt(0, -lineWidth/2), Point.polar(v.r(), 0).addXY(0, lineWidth/2)]));\n\n\t\t// *** Not right, but we want to make position and center of rot = (0, 0):\n\t\t// morph._Position = pt(0, 0);\n\n\t\tmorph.setBorderWidth(0);\n\t\tmorph.setFill(lineColor);\n\n\t\t// Then move and rotate, with first vertex being the rotation center\n\t\tmorph.moveBy(p1);\n\t\tmorph.setOrigin(pt(0, lineWidth/2));\n\t\tmorph.isLine = true;\n\t\treturn morph.rotateBy(v.theta());\n\t}\n});","textChunks":[{"__isSmartRef__":true,"id":1223}],"priorSelectionRange":[0,0],"_ClipMode":"auto","prevScroll":[0,0],"_FontSize":9,"owner":{"__isSmartRef__":true,"id":587},"priorExtent":{"__isSmartRef__":true,"id":1225},"lastSyntaxHighlightTime":1318419678957,"renderContextTable":{"__isSmartRef__":true,"id":1226},"eventHandler":{"__isSmartRef__":true,"id":1227},"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_Rotation":0,"_Scale":0.9979990019999998,"_MinTextWidth":872.0469590469621,"_MinTextHeight":null,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1228},"__LivelyClassName__":"lively.morphic.Text"},"1214":{"position":{"__isSmartRef__":true,"id":1215},"_Extent":{"__isSmartRef__":true,"id":1216},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1217},"_Fill":{"__isSmartRef__":true,"id":1218},"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":1219},"_ClipMode":"auto","_Padding":{"__isSmartRef__":true,"id":1220},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"1215":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1216":{"x":874.0469590469621,"y":227.48209598213498,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1217":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1218":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1219":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1220":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1221":{"x":10.701682800375693,"y":247.98173452400079,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1222":{"resizeWidth":true,"resizeHeight":true,"moveVertical":false,"moveHorizontal":false},"1223":{"style":{"__isSmartRef__":true,"id":1224},"chunkOwner":{"__isSmartRef__":true,"id":1213},"storedString":"search 4667 methods, found 164 methods in 257ms","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1224":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1225":{"x":874.0469590469621,"y":227.48209598213498,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1226":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1227":{"morph":{"__isSmartRef__":true,"id":1213},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1228":{"doSave":{"__isSmartRef__":true,"id":1229},"getDoitContext":{"__isSmartRef__":true,"id":1236}},"1229":{"varMapping":{"__isSmartRef__":true,"id":1230},"source":"function doSave() {\n\t$super()\n\talertOK(\"eval all for \" + this.getDoitContext())\n\tthis.boundEval(this.textString)\n}","funcProperties":{"__isSmartRef__":true,"id":1235},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1230":{"this":{"__isSmartRef__":true,"id":1213},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1231}},"1231":{"$super":{"__isSmartRef__":true,"id":1232}},"1232":{"varMapping":{"__isSmartRef__":true,"id":1233},"source":"function () {\n\t\t\t\ttry {\n\t\t\t\t\treturn obj.constructor.prototype[name].apply(obj, arguments)\n\t\t\t\t} catch(e) {\n\t\t\t\t\talert('Error in $super call: ' + e + '\\n' + e.stack);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}","funcProperties":{"__isSmartRef__":true,"id":1234},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1233":{"obj":{"__isSmartRef__":true,"id":1213},"name":"doSave"},"1234":{},"1235":{},"1236":{"varMapping":{"__isSmartRef__":true,"id":1237},"source":"function getDoitContext() {\n\treturn this.owner.targetObject\n}","funcProperties":{"__isSmartRef__":true,"id":1242},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1237":{"this":{"__isSmartRef__":true,"id":1213},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1238}},"1238":{"$super":{"__isSmartRef__":true,"id":1239}},"1239":{"varMapping":{"__isSmartRef__":true,"id":1240},"source":"function () {\n\t\t\t\ttry {\n\t\t\t\t\treturn obj.constructor.prototype[name].apply(obj, arguments)\n\t\t\t\t} catch(e) {\n\t\t\t\t\talert('Error in $super call: ' + e + '\\n' + e.stack);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}","funcProperties":{"__isSmartRef__":true,"id":1241},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1240":{"obj":{"__isSmartRef__":true,"id":1213},"name":"getDoitContext"},"1241":{},"1242":{},"1243":{"submorphs":[],"scripts":[],"id":740,"shape":{"__isSmartRef__":true,"id":1244},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":true,"_FontFamily":"Monaco, Courier","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":1251},"_MaxTextWidth":872.0469590469621,"_MaxTextHeight":null,"textStyle":null,"layout":{"__isSmartRef__":true,"id":1252},"charsReplaced":"","lastFindLoc":697,"showsHalos":false,"__SourceModuleName__":"Global.lively.morphic.TextCore","name":"infoText","savedTextString":"// MethodFinder (this)\n\n// ** MethodFinder's Scripts **\nthis.addScript(function browse(fileFragment) {\n\tfileFragment && fileFragment.browseIt()\n});\n\nthis.addScript(function reset() {\n\tthis.get('searchResultList').updateList([]);\n\tthis.get('searchResultList').setSelection(null);\n\tthis.get('searchText').setTextString('enter search term here');\n});\n\n\nthis.addScript(function search(searchString) {\n\tvar finds = [];\n\tvar re = new RegExp(searchString)\n\tvar i=0;\n\tvar time = Functions.timeToRun(function() {\n\tGlobal.classes(true).forEach(function(eaClass) {\n\t\tFunctions.own(eaClass.prototype)\n\t\t\t.forEach(function(eaMethod) {\n\t\t\t\ti++;\n\t\t\t\tif (eaMethod.match(re)){\n\t\t\t\t\tfinds.push([eaClass, eaMethod])\n\t\t\t\t}\t\n\t\t\t})\t\n\t})})\n\talert(\"search \" + i + \" methods, found \" + finds.length + \" methods in \" + time + \"ms\")\n\n\tvar items = finds.collect(function(ea) {\n\t\treturn {\n\t\t\tisListItem: true,\n\t\t\tvalue: ea,\n\t\t\tstring: ea[0].name + \": \" + ea[1],\n\t\t}\n\t})\n\tthis.get('searchResultList').updateList(items);\n});","textChunks":[{"__isSmartRef__":true,"id":1253}],"priorSelectionRange":[37,37],"_ClipMode":"hidden","prevScroll":[0,0],"_FontSize":10,"priorExtent":{"__isSmartRef__":true,"id":1255},"owner":{"__isSmartRef__":true,"id":587},"renderContextTable":{"__isSmartRef__":true,"id":1256},"eventHandler":{"__isSmartRef__":true,"id":1257},"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_Rotation":0,"_Scale":0.9979990019999998,"_MinTextWidth":872.0469590469621,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"1244":{"position":{"__isSmartRef__":true,"id":1245},"_Extent":{"__isSmartRef__":true,"id":1246},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1247},"_Fill":{"__isSmartRef__":true,"id":1248},"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":1249},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":1250},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"1245":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1246":{"x":874.0469590469621,"y":20.48209598213498,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1247":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1248":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1249":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1250":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1251":{"x":6.701682800375693,"y":215.98173452400079,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1252":{"resizeWidth":true,"resizeHeight":false,"moveVertical":false,"moveHorizontal":false},"1253":{"style":{"__isSmartRef__":true,"id":1254},"chunkOwner":{"__isSmartRef__":true,"id":1243},"storedString":"module(Global.lively.Main)","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1254":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1255":{"x":874.0469590469621,"y":20.48209598213498,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1256":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1257":{"morph":{"__isSmartRef__":true,"id":1243},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1258":{"submorphs":[{"__isSmartRef__":true,"id":1259}],"scripts":[],"id":741,"shape":{"__isSmartRef__":true,"id":1274},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":1290},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1278},"lighterFill":{"__isSmartRef__":true,"id":1291},"label":{"__isSmartRef__":true,"id":1259},"showsHalos":false,"name":"browse","partsBinMetaInfo":{"__isSmartRef__":true,"id":1300},"__SourceModuleName__":"Global.lively.morphic.Widgets","attributeConnections":[{"__isSmartRef__":true,"id":1301}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"priorExtent":{"__isSmartRef__":true,"id":1302},"owner":{"__isSmartRef__":true,"id":587},"renderContextTable":{"__isSmartRef__":true,"id":1303},"eventHandler":{"__isSmartRef__":true,"id":1304},"_Rotation":0,"_Scale":1,"__LivelyClassName__":"lively.morphic.Button"},"1259":{"submorphs":[],"scripts":[],"id":742,"shape":{"__isSmartRef__":true,"id":1260},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":1266},"_MaxTextWidth":78,"_MaxTextHeight":null,"padding":{"__isSmartRef__":true,"id":1267},"_Padding":{"__isSmartRef__":true,"id":1268},"owner":{"__isSmartRef__":true,"id":1258},"isLabel":true,"eventsAreIgnored":true,"__SourceModuleName__":"Global.lively.morphic.TextCore","textStyle":null,"textChunks":[{"__isSmartRef__":true,"id":1269}],"prevScroll":[0,0],"_ClipMode":"hidden","priorExtent":{"__isSmartRef__":true,"id":1271},"_Align":"center","renderContextTable":{"__isSmartRef__":true,"id":1272},"eventHandler":{"__isSmartRef__":true,"id":1273},"_HandStyle":"default","_PointerEvents":"none","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_MinTextWidth":78,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"1260":{"position":{"__isSmartRef__":true,"id":1261},"_Extent":{"__isSmartRef__":true,"id":1262},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":1263},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":1264},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":1265},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"1261":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1262":{"x":78,"y":20,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1263":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1264":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1265":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1266":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1267":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1268":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1269":{"style":{"__isSmartRef__":true,"id":1270},"morph":{"__isSmartRef__":true,"id":1259},"__SourceModuleName__":"Global.lively.morphic.TextCore","chunkOwner":{"__isSmartRef__":true,"id":1259},"storedString":"browse","__LivelyClassName__":"lively.morphic.TextChunk"},"1270":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"1271":{"x":78,"y":20,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1272":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1273":{"morph":{"__isSmartRef__":true,"id":1259},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1274":{"position":{"__isSmartRef__":true,"id":1275},"_Extent":{"__isSmartRef__":true,"id":1276},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1277},"_Fill":{"__isSmartRef__":true,"id":1278},"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":1288},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1289},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"1275":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1276":{"x":78,"y":20,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1277":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1278":{"stops":[{"__isSmartRef__":true,"id":1279},{"__isSmartRef__":true,"id":1281},{"__isSmartRef__":true,"id":1283},{"__isSmartRef__":true,"id":1285}],"vector":{"__isSmartRef__":true,"id":1287},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"1279":{"offset":0,"color":{"__isSmartRef__":true,"id":1280}},"1280":{"r":0.9600000000000001,"g":0.9600000000000001,"b":0.9600000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1281":{"offset":0.4,"color":{"__isSmartRef__":true,"id":1282}},"1282":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1283":{"offset":0.6,"color":{"__isSmartRef__":true,"id":1284}},"1284":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1285":{"offset":1,"color":{"__isSmartRef__":true,"id":1286}},"1286":{"r":0.94,"g":0.94,"b":0.94,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1287":{"x":0,"y":0,"width":0,"height":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1288":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1289":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1290":{"x":401.0439335888881,"y":26.725910952184506,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1291":{"stops":[{"__isSmartRef__":true,"id":1292},{"__isSmartRef__":true,"id":1294},{"__isSmartRef__":true,"id":1296},{"__isSmartRef__":true,"id":1298}],"vector":{"__isSmartRef__":true,"id":1287},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"1292":{"offset":0,"color":{"__isSmartRef__":true,"id":1293}},"1293":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1294":{"offset":0.4,"color":{"__isSmartRef__":true,"id":1295}},"1295":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1296":{"offset":0.6,"color":{"__isSmartRef__":true,"id":1297}},"1297":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1298":{"offset":1,"color":{"__isSmartRef__":true,"id":1299}},"1299":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1300":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"1301":{"sourceObj":{"__isSmartRef__":true,"id":1258},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":587},"targetMethodName":"browseMethod","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"1302":{"x":77,"y":20,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1303":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1304":{"morph":{"__isSmartRef__":true,"id":1258},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1305":{"position":{"__isSmartRef__":true,"id":1306},"_Extent":{"__isSmartRef__":true,"id":1307},"_BorderWidth":2,"_BorderColor":{"__isSmartRef__":true,"id":416},"_Fill":{"__isSmartRef__":true,"id":1308},"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":1309},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1310},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"1306":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1307":{"x":896.4170420843768,"y":485.002005010021,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1308":{"r":1,"g":1,"b":1,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1309":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1310":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1311":{"x":0,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1312":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","migrationLevel":4,"requiredModules":["lively.ide"],"partName":"MethodFinderPane","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"1313":{"resizeWidth":true,"resizeHeight":true,"adjustForNewBounds":true},"1314":{"x":896.4170420843768,"y":485.002005010021,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1315":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1316":{"morph":{"__isSmartRef__":true,"id":587},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1317":{"browseMethod":{"__isSmartRef__":true,"id":1318},"openMethodInSystemBrowser":{"__isSmartRef__":true,"id":1320},"browse":{"__isSmartRef__":true,"id":1322},"itemsFromFinds":{"__isSmartRef__":true,"id":1324}},"1318":{"time":{"__isSmartRef__":true,"id":1319},"user":"jenslincke"},"1319":{"isSerializedDate":true,"string":"Fri Oct 07 2011 15:42:47 GMT+0200 (CEST)"},"1320":{"time":{"__isSmartRef__":true,"id":1321},"user":"jenslincke"},"1321":{"isSerializedDate":true,"string":"Fri Oct 07 2011 15:42:47 GMT+0200 (CEST)"},"1322":{"time":{"__isSmartRef__":true,"id":1323},"user":"jenslincke"},"1323":{"isSerializedDate":true,"string":"Fri Oct 07 2011 15:26:25 GMT+0200 (CEST)"},"1324":{"time":{"__isSmartRef__":true,"id":1325},"user":"jenslincke"},"1325":{"isSerializedDate":true,"string":"Fri Oct 07 2011 15:42:47 GMT+0200 (CEST)"},"1326":{"search":{"__isSmartRef__":true,"id":1327},"browse":{"__isSmartRef__":true,"id":1330},"reset":{"__isSmartRef__":true,"id":1333},"setSearch":{"__isSmartRef__":true,"id":1336},"emphasizeStringIn":{"__isSmartRef__":true,"id":1339},"withAllMethodsDo":{"__isSmartRef__":true,"id":1342},"itemsFromFinds":{"__isSmartRef__":true,"id":1345},"browseMethod":{"__isSmartRef__":true,"id":1348},"openMethodInSystemBrowser":{"__isSmartRef__":true,"id":1351}},"1327":{"varMapping":{"__isSmartRef__":true,"id":1328},"source":"function search(searchString) { \n this.get('searchResultList').updateList([]);\n this.get('sourceText').setTextString('');\n if (!searchString || (searchString.length < 2)) {\n this.get('sourceText').setTextString('\"' + searchString + '\" is to short');\n return;\n }\n var finds = [];\n var i=0;\n var matches = function(s) {\n return s.include(searchString)\n } \n\n // var re = new RegExp(searchString)\n var time = Functions.timeToRun(function() {\n this.withAllMethodsDo(function(object, eaMethod, type) {\n i++;\n var name;\n if (!object) return;\n\n if (object.constructor.prototype == object)\n name = object.constructor.name\n\n if (object.name) name = object.name;\n if (object.namespaceIdentifier)\n name = object.namespaceIdentifier\n\n if (object.constructor.prototype != object)\n name = name + \"(object)\"\n\n if ((object.constructor.prototype != object) && (object instanceof Morph))\n name = object.name + \"(\" + object.id + \")\"\n\n if (object === Global)\n name = \" \";\n\n var string = name + \": \" + eaMethod; \n var item = {object: object, method: eaMethod, string: string, type: type};\n\n if (matches(eaMethod)) {\n item.search= 'implementor',\n finds.push(item)\n return;\n } \n\n var f = object[eaMethod];\n if (!f || !f.getOriginal) return;\n var source = String(f.getOriginal())\n if (matches(source)){\n item.search = 'sender'\n finds.push(item)\n } \n })\n }.bind(this))\n this.get('sourceText').setTextString(\"search \" + i + \" methods, found \" \n + finds.length + \" methods in \" + time + \"ms\");\n var items = this.itemsFromFinds(finds)\n this.get('searchResultList').updateList(items);\n}","funcProperties":{"__isSmartRef__":true,"id":1329},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1328":{"this":{"__isSmartRef__":true,"id":587}},"1329":{},"1330":{"varMapping":{"__isSmartRef__":true,"id":1331},"source":"function browse(methodItem) {\n if (! methodItem) return;\n var methodName = methodItem.method;\n var object = methodItem.object;\n var orgFunc = object[methodName];\n if (!orgFunc) {\n this.get('sourceText').setTextString('no source');\n return\n }\n orgFunc = orgFunc.getOriginal()\n \n this.targetFunction = orgFunc;\n this.targetObject = object;\n\n var source = \"// changes here only affect runtime\\n\", tab = lively.morphic.Text.prototype.tab;\n if (orgFunc.declaredClass) {\n source += orgFunc.declaredClass + \".addMethods({\\n\" + tab + methodName + \": \" +\n orgFunc + \"\\n});\"\n } else if(methodItem.type == 'extend') {\n // perhaps it is a an class object\n source += \"Object.extend(\" + (object.type || object.namespaceIdentifier) + \",{\\n\" + tab + methodName + \": \" +\n orgFunc + \"\\n});\"\n } else if(object.isMorph && (object.constructor.prototype !== object) ) {\n // display as script\n source = \"this.addScript(\" + orgFunc + \");\"\n } else if(object === Global) {\n // display as script\n source += \"Object.extend(Global, {\\n\" + tab + methodName + \": \" +\n orgFunc + \"\\n});\"\n }\n\n this.get('sourceText').setTextString(source)\n\n module('lively.ide.SyntaxHighlighting').load(true)\n this.get('sourceText').highlightJavaScriptSyntax()\n\n this.get('sourceText').emphasizeRegex(new RegExp(this.get('searchText').textString, \"g\"), {color: Color.red});\n\n var info = '' + orgFunc.sourceModule ;\n if (orgFunc.belongsToTrait)\n info += ' ' + orgFunc.belongsToTrait;\n\n this.get('infoText').setTextString(info)\n}","funcProperties":{"__isSmartRef__":true,"id":1332},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1331":{"this":{"__isSmartRef__":true,"id":587}},"1332":{},"1333":{"varMapping":{"__isSmartRef__":true,"id":1334},"source":"function reset() {\n this.get('searchResultList').updateList([]);\n this.get('searchResultList').setSelection(null);\n this.get('searchText').setTextString('enter method name her');\n this.get('sourceText').setTextString('no code');\n this.get('infoText').setTextString('');\n this.targetFunction = null;\n this.targetObject = null;\n}","funcProperties":{"__isSmartRef__":true,"id":1335},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1334":{"this":{"__isSmartRef__":true,"id":587}},"1335":{},"1336":{"varMapping":{"__isSmartRef__":true,"id":1337},"source":"function setSearch(searchString) {\n this.get('searchText').setTextString(searchString);\n this.search(searchString)\n var list = this.get('searchResultList').getList();\n if (list.length > 0) this.get('searchResultList').setSelection(list[0])\n}","funcProperties":{"__isSmartRef__":true,"id":1338},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1337":{"this":{"__isSmartRef__":true,"id":587}},"1338":{},"1339":{"varMapping":{"__isSmartRef__":true,"id":1340},"source":"function emphasizeStringIn(morph, string, style) {\n var m;\n var re = new RegExp(string, \"g\");\n while(m = re.exec(morph.textString)) {\n var from = m.index,\n to = m.index + m[0].length;\n morph.emphasize(style, from, to)\n }\n}","funcProperties":{"__isSmartRef__":true,"id":1341},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1340":{"this":{"__isSmartRef__":true,"id":587}},"1341":{},"1342":{"varMapping":{"__isSmartRef__":true,"id":1343},"source":"function withAllMethodsDo(func) {\n var visited = [];\n\n Functions.own(Global).forEach(function(eaMethod) {\n func(Global, eaMethod, 'global')\n }); \n\n this.world().withAllSubmorphsDo(function(ea) {\n Functions.own(ea).forEach(function(eaMethod) {\n func(ea, eaMethod, 'script')\n }); \n });\n\n Global.subNamespaces(true).forEach(function(ea) {\n Functions.own(ea).forEach(function(eaMethod) {\n func(ea, eaMethod, 'extend')\n }); \n });\n\n Global.classes(true).uniq().forEach(function(eaClass) {\n Functions.own(eaClass).forEach(function(eaMethod) {\n func(eaClass, eaMethod, 'extend')\n }); \n\n Functions.own(eaClass.prototype).forEach(function(eaMethod) {\n func(eaClass.prototype, eaMethod, 'class')\n }) \n })\n}","funcProperties":{"__isSmartRef__":true,"id":1344},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1343":{"this":{"__isSmartRef__":true,"id":587}},"1344":{},"1345":{"varMapping":{"__isSmartRef__":true,"id":1346},"source":"function itemsFromFinds(finds) {\n var items = finds.collect(function(ea) {\n var pref = \"\" + ea.type + \" \";\n if (ea.search == \"sender\") pref += \"full: \"\n if (ea.search == \"implementor\") pref += \"name: \"\n var string = pref + ea.string;\n var func = ea.object[ea.method];\n if (func.belongsToTrait) \n string += ' / ' + func.belongsToTrait + '' \n return {\n isListItem: true,\n value: ea,\n string: string,\n }\n })\n items = items.sortBy(function(ea) {return ea.string})\n return items\n}","funcProperties":{"__isSmartRef__":true,"id":1347},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1346":{"this":{"__isSmartRef__":true,"id":587}},"1347":{},"1348":{"varMapping":{"__isSmartRef__":true,"id":1349},"source":"function browseMethod() {\n alertOK('browseMethod')\n if (!this.targetFunction) return;\n var methodName = this.targetFunction.methodName || this.targetFunction.displayName; \n if(this.targetFunction.declaredClass) {\n var classObj = eval(this.targetFunction.declaredClass)\n this.openMethodInSystemBrowser(classObj.type, methodName);\n return;\n }\n if(this.targetFunction.belongsToTrait) {\n this.openMethodInSystemBrowser(this.targetFunction.belongsToTrait.name, methodName);\n return;\n }\n if(Class.isClass(this.targetObject)) {\n this.openMethodInSystemBrowser(this.targetObject.type, methodName);\n return;\n }\n if(this.targetObject.namespaceIdentifier) {\n this.openMethodInSystemBrowser(this.targetObject.namespaceIdentifier, methodName);\n return;\n }\n if(this.targetObject instanceof lively.morphic.Morph) {\n var editor = this.world().openScriptEditorFor(this.targetObject);\n editor.align(editor.bounds().center(), this.world().visibleBounds().center());\n return;\n }\n if (Class.isClass(this.targetFunction)) {\n // constructor\n this.openMethodInSystemBrowser(this.targetFunction.displayName);\n return;\n }\n alert('not implemented yet for ' + this.targetFunction)\n}","funcProperties":{"__isSmartRef__":true,"id":1350},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1349":{"this":{"__isSmartRef__":true,"id":587}},"1350":{},"1351":{"varMapping":{"__isSmartRef__":true,"id":1352},"source":"function openMethodInSystemBrowser(objectName, methodName) {\n alert(\"browse \" + objectName + \":\" + methodName)\n // objectName = 'SelectionMorphTrait', methodName = 'onDrag'\n var uri = new URL(this.targetFunction.sourceModule.uri()),\n relative = uri.relativePathFrom(new URL(Config.codeBase)),\n moduleNode = lively.ide.startSourceControl().addModule(relative),\n rootNode = moduleNode.ast();\n\n var fileFragments = rootNode.subElements(10).select(function(ea) {\n var path = ea.getOwnerNamePath()\n return path.include(objectName) && (!methodName || path.include(methodName)) \n });\n\n alertOK(\"found following places to browse: \" + fileFragments)\n if (fileFragments.length > 0) {\n fileFragments[0].browseIt()\n }\n\n}","funcProperties":{"__isSmartRef__":true,"id":1353},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1352":{"this":{"__isSmartRef__":true,"id":587}},"1353":{},"1354":{"_BorderWidth":0,"_Fill":null,"_StrokeOpacity":0,"_BorderRadius":0,"_Extent":{"__isSmartRef__":true,"id":1355},"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":1356},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1357},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"1355":{"x":896.4170420843768,"y":507.002005010021,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1356":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1357":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1358":{"adjustForNewBounds":true},"1359":{"x":473.7914789578116,"y":283.4989974949895,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1360":{"x":896.4170420843768,"y":507.002005010021,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1361":{"x":0,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1362":{"x":664,"y":293,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1363":{"requiredModules":["lively.ide"],"migrationLevel":4,"partsSpaceName":"PartsBin/Tools","__SourceModuleName__":"Global.lively.PartsBin","comment":"A method finder that searches all loaded classes and methods for matches in the source. \n\nChanges:\n- added support for Traits","partName":"MethodFinder","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"1364":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1365":{"morph":{"__isSmartRef__":true,"id":410},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1366":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1367},"string":"extend full: OMetaSupport(object): fileContent"},"1367":{"method":"fileContent","string":"OMetaSupport(object): fileContent","type":"extend","search":"sender"},"1368":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1369},"string":"extend full: OMetaSupport(object): writeGrammar"},"1369":{"method":"writeGrammar","string":"OMetaSupport(object): writeGrammar","type":"extend","search":"sender"},"1370":{"isListItem":true,"value":{"__isSmartRef__":true,"id":1371},"string":"global name: : WebResource"},"1371":{"method":"WebResource","string":" : WebResource","type":"global","search":"implementor"},"1372":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"1373":{"sourceObj":{"__isSmartRef__":true,"id":247},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":184},"targetMethodName":"browse","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"1374":{"resizeWidth":true},"1375":{"x":874.3800299912526,"y":145.98799096394293,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1376":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateListContent":"updateListContentHTML","resizeList":"resizeListHTML","getItemIndexFromEvent":"getItemIndexFromEventHTML","getListExtent":"getListExtentHTML","setSize":"setSizeHTML","renderAsDropDownList":"renderAsDropDownListHTML","setFontSize":"setFontSizeHTML","setFontFamily":"setFontFamilyHTML","getSelectedIndexes":"getSelectedIndexesHTML","enableMultipleSelections":"enableMultipleSelectionsHTML","selectAllAt":"selectAllAtHTML","clearSelections":"clearSelectionsHTML","deselectAt":"deselectAtHTML"},"1377":{"morph":{"__isSmartRef__":true,"id":247},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1378":{"submorphs":[],"scripts":[],"id":565,"shape":{"__isSmartRef__":true,"id":1379},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":true,"_FontFamily":"Monaco, Courier","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":1386},"_MaxTextWidth":872.0469590469621,"_MaxTextHeight":null,"textStyle":null,"layout":{"__isSmartRef__":true,"id":1387},"doitContext":{"__isSmartRef__":true,"id":184},"charsReplaced":"","lastFindLoc":127,"showsHalos":false,"__SourceModuleName__":"Global.lively.morphic.TextCore","name":"sourceText","savedTextString":"// changes here only affect runtime\nObject.extend(lively.morphic.Morph,{\n\tmakeLine:function (verts, lineWidth, lineColor) {\n\t\tif (verts.length < 2) return null;\n\t\tif (verts.length > 2) {\n\t\t\t// Polylines become a mere blob for now...\n\t\t\tvar morph = this.makeRectangle(Rectangle.unionPts(verts));\n\t\t\tmorph.setBorderWidth(lineWidth);\n\t\t\tmorph.setBorderColor(lineColor);\n\t\t\tmorph.setFill(null);\n\t\t\treturn morph;\n\t\t} \n\t\t// Okay, it's a simple line...\n\t\tvar p1 = verts[0]; var p2 = verts[1];\n\t\tvar v = p2.subPt(p1);\n \n\t\t// First make a horizontal line of the same length with origin at (0, 0)\n\t\tvar morph = this.makeRectangle(Rectangle.unionPts([pt(0, -lineWidth/2), Point.polar(v.r(), 0).addXY(0, lineWidth/2)]));\n\n\t\t// *** Not right, but we want to make position and center of rot = (0, 0):\n\t\t// morph._Position = pt(0, 0);\n\n\t\tmorph.setBorderWidth(0);\n\t\tmorph.setFill(lineColor);\n\n\t\t// Then move and rotate, with first vertex being the rotation center\n\t\tmorph.moveBy(p1);\n\t\tmorph.setOrigin(pt(0, lineWidth/2));\n\t\tmorph.isLine = true;\n\t\treturn morph.rotateBy(v.theta());\n\t}\n});","textChunks":[{"__isSmartRef__":true,"id":1388},{"__isSmartRef__":true,"id":1391},{"__isSmartRef__":true,"id":1393},{"__isSmartRef__":true,"id":1396},{"__isSmartRef__":true,"id":1398},{"__isSmartRef__":true,"id":1401},{"__isSmartRef__":true,"id":1403},{"__isSmartRef__":true,"id":1405},{"__isSmartRef__":true,"id":1407},{"__isSmartRef__":true,"id":1410},{"__isSmartRef__":true,"id":1413},{"__isSmartRef__":true,"id":1415},{"__isSmartRef__":true,"id":1418},{"__isSmartRef__":true,"id":1420},{"__isSmartRef__":true,"id":1422},{"__isSmartRef__":true,"id":1424},{"__isSmartRef__":true,"id":1426},{"__isSmartRef__":true,"id":1428},{"__isSmartRef__":true,"id":1430},{"__isSmartRef__":true,"id":1432},{"__isSmartRef__":true,"id":1435},{"__isSmartRef__":true,"id":1437},{"__isSmartRef__":true,"id":1439},{"__isSmartRef__":true,"id":1441},{"__isSmartRef__":true,"id":1443}],"priorSelectionRange":[93,93],"_ClipMode":"auto","prevScroll":[0,0],"_FontSize":9,"owner":{"__isSmartRef__":true,"id":184},"priorExtent":{"__isSmartRef__":true,"id":1445},"lastSyntaxHighlightTime":1318418948396,"renderContextTable":{"__isSmartRef__":true,"id":1446},"eventHandler":{"__isSmartRef__":true,"id":1447},"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_Rotation":0,"_Scale":0.9979990019999998,"_MinTextWidth":872.0469590469621,"_MinTextHeight":null,"previousSelection":[0,0],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1448},"__LivelyClassName__":"lively.morphic.Text"},"1379":{"position":{"__isSmartRef__":true,"id":1380},"_Extent":{"__isSmartRef__":true,"id":1381},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1382},"_Fill":{"__isSmartRef__":true,"id":1383},"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":1384},"_ClipMode":"auto","_Padding":{"__isSmartRef__":true,"id":1385},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"1380":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1381":{"x":874.0469590469621,"y":227.48209598213498,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1382":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1383":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1384":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1385":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1386":{"x":10.701682800375693,"y":247.98173452400079,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1387":{"resizeWidth":true,"resizeHeight":true,"moveVertical":false,"moveHorizontal":false},"1388":{"style":{"__isSmartRef__":true,"id":1389},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"// changes here only affect runtime","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1389":{"color":{"__isSmartRef__":true,"id":1390},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1390":{"r":0,"g":0.5019607843137255,"b":0,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1391":{"style":{"__isSmartRef__":true,"id":1392},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"\n","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1392":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1393":{"style":{"__isSmartRef__":true,"id":1394},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"Object","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1394":{"color":{"__isSmartRef__":true,"id":1395},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1395":{"r":0,"g":0,"b":0.5019607843137255,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1396":{"style":{"__isSmartRef__":true,"id":1397},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":".","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1397":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1398":{"style":{"__isSmartRef__":true,"id":1399},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"extend","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1399":{"color":{"__isSmartRef__":true,"id":1400},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1400":{"r":0.5019607843137255,"g":0.5019607843137255,"b":0.5019607843137255,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1401":{"style":{"__isSmartRef__":true,"id":1402},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"(Global, ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1402":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1403":{"style":{"__isSmartRef__":true,"id":1404},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"{","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1404":{"color":{"__isSmartRef__":true,"id":1390},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1405":{"style":{"__isSmartRef__":true,"id":1406},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"\n ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1406":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1407":{"style":{"__isSmartRef__":true,"id":1408},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"WebResource","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1408":{"color":{"__isSmartRef__":true,"id":1409},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1409":{"r":0.8,"g":0,"b":0,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1410":{"style":{"__isSmartRef__":true,"id":1411},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":":","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1411":{"color":{"__isSmartRef__":true,"id":1412},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1412":{"r":0.5450980392156862,"g":0,"b":0,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1413":{"style":{"__isSmartRef__":true,"id":1414},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1414":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1415":{"style":{"__isSmartRef__":true,"id":1416},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"function","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1416":{"color":{"__isSmartRef__":true,"id":1417},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1417":{"r":0,"g":0,"b":0.5450980392156862,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1418":{"style":{"__isSmartRef__":true,"id":1419},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1419":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1420":{"style":{"__isSmartRef__":true,"id":1421},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"WebResource","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1421":{"color":{"__isSmartRef__":true,"id":1409},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1422":{"style":{"__isSmartRef__":true,"id":1423},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"()","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1423":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1424":{"style":{"__isSmartRef__":true,"id":1425},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"{","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1425":{"color":{"__isSmartRef__":true,"id":1390},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1426":{"style":{"__isSmartRef__":true,"id":1427},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":" Class.initializer.apply(","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1427":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1428":{"style":{"__isSmartRef__":true,"id":1429},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"this","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1429":{"color":{"__isSmartRef__":true,"id":1417},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1430":{"style":{"__isSmartRef__":true,"id":1431},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":", ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1431":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1432":{"style":{"__isSmartRef__":true,"id":1433},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"arguments","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1433":{"color":{"__isSmartRef__":true,"id":1434},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1434":{"r":0.5019607843137255,"g":0,"b":0.5019607843137255,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1435":{"style":{"__isSmartRef__":true,"id":1436},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":") ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1436":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1437":{"style":{"__isSmartRef__":true,"id":1438},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"}","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1438":{"color":{"__isSmartRef__":true,"id":1390},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1439":{"style":{"__isSmartRef__":true,"id":1440},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"\n","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1440":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1441":{"style":{"__isSmartRef__":true,"id":1442},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":"}","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1442":{"color":{"__isSmartRef__":true,"id":1390},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1443":{"style":{"__isSmartRef__":true,"id":1444},"chunkOwner":{"__isSmartRef__":true,"id":1378},"storedString":");","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1444":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1445":{"x":874.0469590469621,"y":227.48209598213498,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1446":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1447":{"morph":{"__isSmartRef__":true,"id":1378},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1448":{"doSave":{"__isSmartRef__":true,"id":1449},"getDoitContext":{"__isSmartRef__":true,"id":1456}},"1449":{"varMapping":{"__isSmartRef__":true,"id":1450},"source":"function doSave() {\n\t$super()\n\talertOK(\"eval all for \" + this.getDoitContext())\n\tthis.boundEval(this.textString)\n}","funcProperties":{"__isSmartRef__":true,"id":1455},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1450":{"this":{"__isSmartRef__":true,"id":1378},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1451}},"1451":{"$super":{"__isSmartRef__":true,"id":1452}},"1452":{"varMapping":{"__isSmartRef__":true,"id":1453},"source":"function () {\n\t\t\t\ttry {\n\t\t\t\t\treturn obj.constructor.prototype[name].apply(obj, arguments)\n\t\t\t\t} catch(e) {\n\t\t\t\t\talert('Error in $super call: ' + e + '\\n' + e.stack);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}","funcProperties":{"__isSmartRef__":true,"id":1454},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1453":{"obj":{"__isSmartRef__":true,"id":1378},"name":"doSave"},"1454":{},"1455":{},"1456":{"varMapping":{"__isSmartRef__":true,"id":1457},"source":"function getDoitContext() {\n\treturn this.owner.targetObject\n}","funcProperties":{"__isSmartRef__":true,"id":1462},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1457":{"this":{"__isSmartRef__":true,"id":1378},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1458}},"1458":{"$super":{"__isSmartRef__":true,"id":1459}},"1459":{"varMapping":{"__isSmartRef__":true,"id":1460},"source":"function () {\n\t\t\t\ttry {\n\t\t\t\t\treturn obj.constructor.prototype[name].apply(obj, arguments)\n\t\t\t\t} catch(e) {\n\t\t\t\t\talert('Error in $super call: ' + e + '\\n' + e.stack);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}","funcProperties":{"__isSmartRef__":true,"id":1461},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1460":{"obj":{"__isSmartRef__":true,"id":1378},"name":"getDoitContext"},"1461":{},"1462":{},"1463":{"submorphs":[],"scripts":[],"id":566,"shape":{"__isSmartRef__":true,"id":1464},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":true,"_FontFamily":"Monaco, Courier","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":1471},"_MaxTextWidth":872.0469590469621,"_MaxTextHeight":null,"textStyle":null,"layout":{"__isSmartRef__":true,"id":1472},"charsReplaced":"","lastFindLoc":697,"showsHalos":false,"__SourceModuleName__":"Global.lively.morphic.TextCore","name":"infoText","savedTextString":"// MethodFinder (this)\n\n// ** MethodFinder's Scripts **\nthis.addScript(function browse(fileFragment) {\n\tfileFragment && fileFragment.browseIt()\n});\n\nthis.addScript(function reset() {\n\tthis.get('searchResultList').updateList([]);\n\tthis.get('searchResultList').setSelection(null);\n\tthis.get('searchText').setTextString('enter search term here');\n});\n\n\nthis.addScript(function search(searchString) {\n\tvar finds = [];\n\tvar re = new RegExp(searchString)\n\tvar i=0;\n\tvar time = Functions.timeToRun(function() {\n\tGlobal.classes(true).forEach(function(eaClass) {\n\t\tFunctions.own(eaClass.prototype)\n\t\t\t.forEach(function(eaMethod) {\n\t\t\t\ti++;\n\t\t\t\tif (eaMethod.match(re)){\n\t\t\t\t\tfinds.push([eaClass, eaMethod])\n\t\t\t\t}\t\n\t\t\t})\t\n\t})})\n\talert(\"search \" + i + \" methods, found \" + finds.length + \" methods in \" + time + \"ms\")\n\n\tvar items = finds.collect(function(ea) {\n\t\treturn {\n\t\t\tisListItem: true,\n\t\t\tvalue: ea,\n\t\t\tstring: ea[0].name + \": \" + ea[1],\n\t\t}\n\t})\n\tthis.get('searchResultList').updateList(items);\n});","textChunks":[{"__isSmartRef__":true,"id":1473}],"priorSelectionRange":[37,37],"_ClipMode":"hidden","prevScroll":[0,0],"_FontSize":10,"priorExtent":{"__isSmartRef__":true,"id":1475},"owner":{"__isSmartRef__":true,"id":184},"renderContextTable":{"__isSmartRef__":true,"id":1476},"eventHandler":{"__isSmartRef__":true,"id":1477},"attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_Rotation":0,"_Scale":0.9979990019999998,"_MinTextWidth":872.0469590469621,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"1464":{"position":{"__isSmartRef__":true,"id":1465},"_Extent":{"__isSmartRef__":true,"id":1466},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1467},"_Fill":{"__isSmartRef__":true,"id":1468},"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":1469},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":1470},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"1465":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1466":{"x":874.0469590469621,"y":20.48209598213498,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1467":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1468":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1469":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1470":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1471":{"x":6.701682800375693,"y":215.98173452400079,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1472":{"resizeWidth":true,"resizeHeight":false,"moveVertical":false,"moveHorizontal":false},"1473":{"style":{"__isSmartRef__":true,"id":1474},"chunkOwner":{"__isSmartRef__":true,"id":1463},"storedString":"module(Global.lively.Network)","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1474":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1475":{"x":874.0469590469621,"y":20.48209598213498,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1476":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1477":{"morph":{"__isSmartRef__":true,"id":1463},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1478":{"submorphs":[{"__isSmartRef__":true,"id":1479}],"scripts":[],"id":567,"shape":{"__isSmartRef__":true,"id":1494},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":1510},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1498},"lighterFill":{"__isSmartRef__":true,"id":1511},"label":{"__isSmartRef__":true,"id":1479},"showsHalos":false,"name":"browse","partsBinMetaInfo":{"__isSmartRef__":true,"id":1520},"__SourceModuleName__":"Global.lively.morphic.Widgets","attributeConnections":[{"__isSmartRef__":true,"id":1521}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"priorExtent":{"__isSmartRef__":true,"id":1522},"owner":{"__isSmartRef__":true,"id":184},"renderContextTable":{"__isSmartRef__":true,"id":1523},"eventHandler":{"__isSmartRef__":true,"id":1524},"_Rotation":0,"_Scale":1,"__LivelyClassName__":"lively.morphic.Button"},"1479":{"submorphs":[],"scripts":[],"id":568,"shape":{"__isSmartRef__":true,"id":1480},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":1486},"_MaxTextWidth":78,"_MaxTextHeight":null,"padding":{"__isSmartRef__":true,"id":1487},"_Padding":{"__isSmartRef__":true,"id":1488},"owner":{"__isSmartRef__":true,"id":1478},"isLabel":true,"eventsAreIgnored":true,"__SourceModuleName__":"Global.lively.morphic.TextCore","textStyle":null,"textChunks":[{"__isSmartRef__":true,"id":1489}],"prevScroll":[0,0],"_ClipMode":"hidden","priorExtent":{"__isSmartRef__":true,"id":1491},"_Align":"center","renderContextTable":{"__isSmartRef__":true,"id":1492},"eventHandler":{"__isSmartRef__":true,"id":1493},"_HandStyle":"default","_PointerEvents":"none","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"_MinTextWidth":78,"_MinTextHeight":null,"__LivelyClassName__":"lively.morphic.Text"},"1480":{"position":{"__isSmartRef__":true,"id":1481},"_Extent":{"__isSmartRef__":true,"id":1482},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":1483},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":1484},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":1485},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"1481":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1482":{"x":78,"y":20,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1483":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1484":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1485":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1486":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1487":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1488":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1489":{"style":{"__isSmartRef__":true,"id":1490},"morph":{"__isSmartRef__":true,"id":1479},"__SourceModuleName__":"Global.lively.morphic.TextCore","chunkOwner":{"__isSmartRef__":true,"id":1479},"storedString":"browse","__LivelyClassName__":"lively.morphic.TextChunk"},"1490":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"1491":{"x":78,"y":20,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1492":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1493":{"morph":{"__isSmartRef__":true,"id":1479},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1494":{"position":{"__isSmartRef__":true,"id":1495},"_Extent":{"__isSmartRef__":true,"id":1496},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1497},"_Fill":{"__isSmartRef__":true,"id":1498},"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":1508},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1509},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"1495":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1496":{"x":78,"y":20,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1497":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1498":{"stops":[{"__isSmartRef__":true,"id":1499},{"__isSmartRef__":true,"id":1501},{"__isSmartRef__":true,"id":1503},{"__isSmartRef__":true,"id":1505}],"vector":{"__isSmartRef__":true,"id":1507},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"1499":{"offset":0,"color":{"__isSmartRef__":true,"id":1500}},"1500":{"r":0.9600000000000001,"g":0.9600000000000001,"b":0.9600000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1501":{"offset":0.4,"color":{"__isSmartRef__":true,"id":1502}},"1502":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1503":{"offset":0.6,"color":{"__isSmartRef__":true,"id":1504}},"1504":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1505":{"offset":1,"color":{"__isSmartRef__":true,"id":1506}},"1506":{"r":0.94,"g":0.94,"b":0.94,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1507":{"x":0,"y":0,"width":0,"height":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1508":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1509":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1510":{"x":401.0439335888881,"y":26.725910952184506,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1511":{"stops":[{"__isSmartRef__":true,"id":1512},{"__isSmartRef__":true,"id":1514},{"__isSmartRef__":true,"id":1516},{"__isSmartRef__":true,"id":1518}],"vector":{"__isSmartRef__":true,"id":1507},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"1512":{"offset":0,"color":{"__isSmartRef__":true,"id":1513}},"1513":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1514":{"offset":0.4,"color":{"__isSmartRef__":true,"id":1515}},"1515":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1516":{"offset":0.6,"color":{"__isSmartRef__":true,"id":1517}},"1517":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1518":{"offset":1,"color":{"__isSmartRef__":true,"id":1519}},"1519":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"1520":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"1521":{"sourceObj":{"__isSmartRef__":true,"id":1478},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":184},"targetMethodName":"browseMethod","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"1522":{"x":77,"y":20,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1523":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1524":{"morph":{"__isSmartRef__":true,"id":1478},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1525":{"position":{"__isSmartRef__":true,"id":1526},"_Extent":{"__isSmartRef__":true,"id":1527},"_BorderWidth":2,"_BorderColor":{"__isSmartRef__":true,"id":7},"_Fill":{"__isSmartRef__":true,"id":1528},"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":1529},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1530},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"1526":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1527":{"x":896.4170420843768,"y":485.002005010021,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1528":{"r":1,"g":1,"b":1,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1529":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1530":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1531":{"x":0,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1532":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","migrationLevel":4,"requiredModules":["lively.ide"],"partName":"MethodFinderPane","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"1533":{"resizeWidth":true,"resizeHeight":true,"adjustForNewBounds":true},"1534":{"x":896.4170420843768,"y":485.002005010021,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1535":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1536":{"morph":{"__isSmartRef__":true,"id":184},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1537":{"browseMethod":{"__isSmartRef__":true,"id":1538},"openMethodInSystemBrowser":{"__isSmartRef__":true,"id":1540},"browse":{"__isSmartRef__":true,"id":1542},"itemsFromFinds":{"__isSmartRef__":true,"id":1544}},"1538":{"time":{"__isSmartRef__":true,"id":1539},"user":"jenslincke"},"1539":{"isSerializedDate":true,"string":"Fri Oct 07 2011 15:42:47 GMT+0200 (CEST)"},"1540":{"time":{"__isSmartRef__":true,"id":1541},"user":"jenslincke"},"1541":{"isSerializedDate":true,"string":"Fri Oct 07 2011 15:42:47 GMT+0200 (CEST)"},"1542":{"time":{"__isSmartRef__":true,"id":1543},"user":"jenslincke"},"1543":{"isSerializedDate":true,"string":"Fri Oct 07 2011 15:26:25 GMT+0200 (CEST)"},"1544":{"time":{"__isSmartRef__":true,"id":1545},"user":"jenslincke"},"1545":{"isSerializedDate":true,"string":"Fri Oct 07 2011 15:42:47 GMT+0200 (CEST)"},"1546":{"search":{"__isSmartRef__":true,"id":1547},"browse":{"__isSmartRef__":true,"id":1550},"reset":{"__isSmartRef__":true,"id":1553},"setSearch":{"__isSmartRef__":true,"id":1556},"emphasizeStringIn":{"__isSmartRef__":true,"id":1559},"withAllMethodsDo":{"__isSmartRef__":true,"id":1562},"itemsFromFinds":{"__isSmartRef__":true,"id":1565},"browseMethod":{"__isSmartRef__":true,"id":1568},"openMethodInSystemBrowser":{"__isSmartRef__":true,"id":1571}},"1547":{"varMapping":{"__isSmartRef__":true,"id":1548},"source":"function search(searchString) { \n this.get('searchResultList').updateList([]);\n this.get('sourceText').setTextString('');\n if (!searchString || (searchString.length < 2)) {\n this.get('sourceText').setTextString('\"' + searchString + '\" is to short');\n return;\n }\n var finds = [];\n var i=0;\n var matches = function(s) {\n return s.include(searchString)\n } \n\n // var re = new RegExp(searchString)\n var time = Functions.timeToRun(function() {\n this.withAllMethodsDo(function(object, eaMethod, type) {\n i++;\n var name;\n if (!object) return;\n\n if (object.constructor.prototype == object)\n name = object.constructor.name\n\n if (object.name) name = object.name;\n if (object.namespaceIdentifier)\n name = object.namespaceIdentifier\n\n if (object.constructor.prototype != object)\n name = name + \"(object)\"\n\n if ((object.constructor.prototype != object) && (object instanceof Morph))\n name = object.name + \"(\" + object.id + \")\"\n\n if (object === Global)\n name = \" \";\n\n var string = name + \": \" + eaMethod; \n var item = {object: object, method: eaMethod, string: string, type: type};\n\n if (matches(eaMethod)) {\n item.search= 'implementor',\n finds.push(item)\n return;\n } \n\n var f = object[eaMethod];\n if (!f || !f.getOriginal) return;\n var source = String(f.getOriginal())\n if (matches(source)){\n item.search = 'sender'\n finds.push(item)\n } \n })\n }.bind(this))\n this.get('sourceText').setTextString(\"search \" + i + \" methods, found \" \n + finds.length + \" methods in \" + time + \"ms\");\n var items = this.itemsFromFinds(finds)\n this.get('searchResultList').updateList(items);\n}","funcProperties":{"__isSmartRef__":true,"id":1549},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1548":{"this":{"__isSmartRef__":true,"id":184}},"1549":{},"1550":{"varMapping":{"__isSmartRef__":true,"id":1551},"source":"function browse(methodItem) {\n if (! methodItem) return;\n var methodName = methodItem.method;\n var object = methodItem.object;\n var orgFunc = object[methodName];\n if (!orgFunc) {\n this.get('sourceText').setTextString('no source');\n return\n }\n orgFunc = orgFunc.getOriginal()\n \n this.targetFunction = orgFunc;\n this.targetObject = object;\n\n var source = \"// changes here only affect runtime\\n\", tab = lively.morphic.Text.prototype.tab;\n if (orgFunc.declaredClass) {\n source += orgFunc.declaredClass + \".addMethods({\\n\" + tab + methodName + \": \" +\n orgFunc + \"\\n});\"\n } else if(methodItem.type == 'extend') {\n // perhaps it is a an class object\n source += \"Object.extend(\" + (object.type || object.namespaceIdentifier) + \",{\\n\" + tab + methodName + \": \" +\n orgFunc + \"\\n});\"\n } else if(object.isMorph && (object.constructor.prototype !== object) ) {\n // display as script\n source = \"this.addScript(\" + orgFunc + \");\"\n } else if(object === Global) {\n // display as script\n source += \"Object.extend(Global, {\\n\" + tab + methodName + \": \" +\n orgFunc + \"\\n});\"\n }\n\n this.get('sourceText').setTextString(source)\n\n module('lively.ide.SyntaxHighlighting').load(true)\n this.get('sourceText').highlightJavaScriptSyntax()\n\n this.get('sourceText').emphasizeRegex(new RegExp(this.get('searchText').textString, \"g\"), {color: Color.red});\n\n var info = '' + orgFunc.sourceModule ;\n if (orgFunc.belongsToTrait)\n info += ' ' + orgFunc.belongsToTrait;\n\n this.get('infoText').setTextString(info)\n}","funcProperties":{"__isSmartRef__":true,"id":1552},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1551":{"this":{"__isSmartRef__":true,"id":184}},"1552":{},"1553":{"varMapping":{"__isSmartRef__":true,"id":1554},"source":"function reset() {\n this.get('searchResultList').updateList([]);\n this.get('searchResultList').setSelection(null);\n this.get('searchText').setTextString('enter method name her');\n this.get('sourceText').setTextString('no code');\n this.get('infoText').setTextString('');\n this.targetFunction = null;\n this.targetObject = null;\n}","funcProperties":{"__isSmartRef__":true,"id":1555},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1554":{"this":{"__isSmartRef__":true,"id":184}},"1555":{},"1556":{"varMapping":{"__isSmartRef__":true,"id":1557},"source":"function setSearch(searchString) {\n this.get('searchText').setTextString(searchString);\n this.search(searchString)\n var list = this.get('searchResultList').getList();\n if (list.length > 0) this.get('searchResultList').setSelection(list[0])\n}","funcProperties":{"__isSmartRef__":true,"id":1558},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1557":{"this":{"__isSmartRef__":true,"id":184}},"1558":{},"1559":{"varMapping":{"__isSmartRef__":true,"id":1560},"source":"function emphasizeStringIn(morph, string, style) {\n var m;\n var re = new RegExp(string, \"g\");\n while(m = re.exec(morph.textString)) {\n var from = m.index,\n to = m.index + m[0].length;\n morph.emphasize(style, from, to)\n }\n}","funcProperties":{"__isSmartRef__":true,"id":1561},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1560":{"this":{"__isSmartRef__":true,"id":184}},"1561":{},"1562":{"varMapping":{"__isSmartRef__":true,"id":1563},"source":"function withAllMethodsDo(func) {\n var visited = [];\n\n Functions.own(Global).forEach(function(eaMethod) {\n func(Global, eaMethod, 'global')\n }); \n\n this.world().withAllSubmorphsDo(function(ea) {\n Functions.own(ea).forEach(function(eaMethod) {\n func(ea, eaMethod, 'script')\n }); \n });\n\n Global.subNamespaces(true).forEach(function(ea) {\n Functions.own(ea).forEach(function(eaMethod) {\n func(ea, eaMethod, 'extend')\n }); \n });\n\n Global.classes(true).uniq().forEach(function(eaClass) {\n Functions.own(eaClass).forEach(function(eaMethod) {\n func(eaClass, eaMethod, 'extend')\n }); \n\n Functions.own(eaClass.prototype).forEach(function(eaMethod) {\n func(eaClass.prototype, eaMethod, 'class')\n }) \n })\n}","funcProperties":{"__isSmartRef__":true,"id":1564},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1563":{"this":{"__isSmartRef__":true,"id":184}},"1564":{},"1565":{"varMapping":{"__isSmartRef__":true,"id":1566},"source":"function itemsFromFinds(finds) {\n var items = finds.collect(function(ea) {\n var pref = \"\" + ea.type + \" \";\n if (ea.search == \"sender\") pref += \"full: \"\n if (ea.search == \"implementor\") pref += \"name: \"\n var string = pref + ea.string;\n var func = ea.object[ea.method];\n if (func.belongsToTrait) \n string += ' / ' + func.belongsToTrait + '' \n return {\n isListItem: true,\n value: ea,\n string: string,\n }\n })\n items = items.sortBy(function(ea) {return ea.string})\n return items\n}","funcProperties":{"__isSmartRef__":true,"id":1567},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1566":{"this":{"__isSmartRef__":true,"id":184}},"1567":{},"1568":{"varMapping":{"__isSmartRef__":true,"id":1569},"source":"function browseMethod() {\n alertOK('browseMethod')\n if (!this.targetFunction) return;\n var methodName = this.targetFunction.methodName || this.targetFunction.displayName; \n if(this.targetFunction.declaredClass) {\n var classObj = eval(this.targetFunction.declaredClass)\n this.openMethodInSystemBrowser(classObj.type, methodName);\n return;\n }\n if(this.targetFunction.belongsToTrait) {\n this.openMethodInSystemBrowser(this.targetFunction.belongsToTrait.name, methodName);\n return;\n }\n if(Class.isClass(this.targetObject)) {\n this.openMethodInSystemBrowser(this.targetObject.type, methodName);\n return;\n }\n if(this.targetObject.namespaceIdentifier) {\n this.openMethodInSystemBrowser(this.targetObject.namespaceIdentifier, methodName);\n return;\n }\n if(this.targetObject instanceof lively.morphic.Morph) {\n var editor = this.world().openScriptEditorFor(this.targetObject);\n editor.align(editor.bounds().center(), this.world().visibleBounds().center());\n return;\n }\n if (Class.isClass(this.targetFunction)) {\n // constructor\n this.openMethodInSystemBrowser(this.targetFunction.displayName);\n return;\n }\n alert('not implemented yet for ' + this.targetFunction)\n}","funcProperties":{"__isSmartRef__":true,"id":1570},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1569":{"this":{"__isSmartRef__":true,"id":184}},"1570":{},"1571":{"varMapping":{"__isSmartRef__":true,"id":1572},"source":"function openMethodInSystemBrowser(objectName, methodName) {\n alert(\"browse \" + objectName + \":\" + methodName)\n // objectName = 'SelectionMorphTrait', methodName = 'onDrag'\n var uri = new URL(this.targetFunction.sourceModule.uri()),\n relative = uri.relativePathFrom(new URL(Config.codeBase)),\n moduleNode = lively.ide.startSourceControl().addModule(relative),\n rootNode = moduleNode.ast();\n\n var fileFragments = rootNode.subElements(10).select(function(ea) {\n var path = ea.getOwnerNamePath()\n return path.include(objectName) && (!methodName || path.include(methodName)) \n });\n\n alertOK(\"found following places to browse: \" + fileFragments)\n if (fileFragments.length > 0) {\n fileFragments[0].browseIt()\n }\n\n}","funcProperties":{"__isSmartRef__":true,"id":1573},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"1572":{"this":{"__isSmartRef__":true,"id":184}},"1573":{},"1574":{"_BorderWidth":0,"_Fill":null,"_StrokeOpacity":0,"_BorderRadius":0,"_Extent":{"__isSmartRef__":true,"id":1575},"__SourceModuleName__":"Global.lively.morphic.Shapes","renderContextTable":{"__isSmartRef__":true,"id":1576},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1577},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"1575":{"x":896.4170420843768,"y":507.002005010021,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1576":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1577":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"1578":{"adjustForNewBounds":true},"1579":{"x":561.7914789578117,"y":17.49899749498951,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1580":{"x":896.4170420843768,"y":507.002005010021,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1581":{"x":0,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"1582":{"x":998,"y":25,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1583":{"requiredModules":["lively.ide"],"migrationLevel":4,"partsSpaceName":"PartsBin/Tools","__SourceModuleName__":"Global.lively.PartsBin","comment":"A method finder that searches all loaded classes and methods for matches in the source. \n\nChanges:\n- added support for Traits","partName":"MethodFinder","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"1584":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1585":{"morph":{"__isSmartRef__":true,"id":1},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"1586":{"submorphs":[{"__isSmartRef__":true,"id":1587},{"__isSmartRef__":true,"id":2480}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2610},"id":267,"renderContextTable":{"__isSmartRef__":true,"id":2614},"eventHandler":{"__isSmartRef__":true,"id":2615},"droppingEnabled":true,"halosEnabled":true,"__layered_draggingEnabled__":true,"layout":{"__isSmartRef__":true,"id":2616},"LK2":true,"_Position":{"__isSmartRef__":true,"id":2617},"priorExtent":{"__isSmartRef__":true,"id":2618},"targetMorph":{"__isSmartRef__":true,"id":1587},"titleBar":{"__isSmartRef__":true,"id":2480},"contentOffset":{"__isSmartRef__":true,"id":2479},"collapsedTransform":null,"collapsedExtent":null,"expandedTransform":null,"expandedExtent":null,"ignoreEventsOnExpand":false,"owner":{"__isSmartRef__":true,"id":0},"highlighted":true,"prevDragPos":{"__isSmartRef__":true,"id":2619},"isBeingDragged":false,"showsHalos":false,"_Rotation":0,"_Scale":1,"prevScroll":[0,0],"__LivelyClassName__":"lively.morphic.Window","__SourceModuleName__":"Global.lively.morphic.Widgets","withoutLayers":["Global.lively.morphic.GrabbingLayer"]},"1587":{"submorphs":[{"__isSmartRef__":true,"id":1588},{"__isSmartRef__":true,"id":2386},{"__isSmartRef__":true,"id":2423},{"__isSmartRef__":true,"id":1864},{"__isSmartRef__":true,"id":2227},{"__isSmartRef__":true,"id":2292},{"__isSmartRef__":true,"id":2327},{"__isSmartRef__":true,"id":2460},{"__isSmartRef__":true,"id":2362},{"__isSmartRef__":true,"id":1603},{"__isSmartRef__":true,"id":1648},{"__isSmartRef__":true,"id":1683},{"__isSmartRef__":true,"id":1718},{"__isSmartRef__":true,"id":1753},{"__isSmartRef__":true,"id":1788},{"__isSmartRef__":true,"id":1823}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2470},"id":241,"renderContextTable":{"__isSmartRef__":true,"id":2476},"eventHandler":{"__isSmartRef__":true,"id":2477},"droppingEnabled":true,"halosEnabled":true,"layout":{"__isSmartRef__":true,"id":2478},"_Position":{"__isSmartRef__":true,"id":2479},"locationPane":{"__isSmartRef__":true,"id":1588},"codeBaseDirBtn":{"__isSmartRef__":true,"id":2386},"localDirBtn":{"__isSmartRef__":true,"id":2423},"Pane1":{"__isSmartRef__":true,"id":1864},"Pane2":{"__isSmartRef__":true,"id":2227},"Pane3":{"__isSmartRef__":true,"id":2292},"Pane4":{"__isSmartRef__":true,"id":2327},"midResizer":{"__isSmartRef__":true,"id":2460},"sourcePane":{"__isSmartRef__":true,"id":2362},"ownerWidget":{"__isSmartRef__":true,"id":1601},"owner":{"__isSmartRef__":true,"id":1586},"ownerApp":{"__isSmartRef__":true,"id":1601},"targetURL":{"__isSmartRef__":true,"id":2384},"prevScroll":[0,0],"__LivelyClassName__":"lively.ide.BrowserPanel","__SourceModuleName__":"Global.lively.ide.BrowserFramework"},"1588":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1589},"id":242,"renderContextTable":{"__isSmartRef__":true,"id":1593},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1594}],"eventHandler":{"__isSmartRef__":true,"id":1596},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":true,"_FontFamily":"Helvetica","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":1597},"priorExtent":{"__isSmartRef__":true,"id":1598},"_MaxTextWidth":646,"_MinTextWidth":646,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1587},"isInputLine":true,"layout":{"__isSmartRef__":true,"id":1599},"noEval":true,"styleClass":["Browser_locationInput"],"attributeConnections":[{"__isSmartRef__":true,"id":1600}],"doNotSerialize":["$$savedTextString"],"doNotCopyProperties":["$$savedTextString"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1589":{"_Position":{"__isSmartRef__":true,"id":1590},"renderContextTable":{"__isSmartRef__":true,"id":1591},"_Extent":{"__isSmartRef__":true,"id":1592},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":950},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":{"__isSmartRef__":true,"id":138},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1590":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1591":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1592":{"x":656,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1593":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1594":{"style":{"__isSmartRef__":true,"id":1595},"chunkOwner":{"__isSmartRef__":true,"id":1588},"storedString":"http://lively-kernel.org/repository/webwerkstatt/lively/","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1595":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1596":{"morph":{"__isSmartRef__":true,"id":1588},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1597":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1598":{"x":656,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1599":{"resizeWidth":true},"1600":{"sourceObj":{"__isSmartRef__":true,"id":1588},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"setTargetURL","converter":null,"converterString":"function (value) { return new URL(value) }","updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2385},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1601":{"buttonCommands":[{"__isSmartRef__":true,"id":1602},{"__isSmartRef__":true,"id":1647},{"__isSmartRef__":true,"id":1682},{"__isSmartRef__":true,"id":1717},{"__isSmartRef__":true,"id":1752},{"__isSmartRef__":true,"id":1787},{"__isSmartRef__":true,"id":1822}],"RootFilters":[{"__isSmartRef__":true,"id":1857}],"Pane1Filters":[{"__isSmartRef__":true,"id":1858},{"__isSmartRef__":true,"id":1859}],"Pane2Filters":[{"__isSmartRef__":true,"id":1860}],"Pane3Filters":[{"__isSmartRef__":true,"id":1861}],"Pane4Filters":[{"__isSmartRef__":true,"id":1862}],"evaluate":true,"panel":{"__isSmartRef__":true,"id":1587},"attributeConnections":[{"__isSmartRef__":true,"id":1863},{"__isSmartRef__":true,"id":2226},{"__isSmartRef__":true,"id":2291},{"__isSmartRef__":true,"id":2326},{"__isSmartRef__":true,"id":2361},{"__isSmartRef__":true,"id":2379}],"SourceString":"/*\n * Copyright (c) 2006-2009 Sun Microsystems, Inc.\n * Copyright (c) 2008-2011 Hasso Plattner Institute\n *\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * Network.js. Networking capabilities.\n *\n * Note: In a browser-based implementation of our system,\n * most of the necessary networking functionality is \n * inherited from the browser. \n */\n\nmodule('lively.Network').requires('lively.bindings', 'lively.NoMoreModels', 'lively.Data').toRun(function(thisModule) {\n \nObject.subclass('URL', {\n splitter: new RegExp('(http:|https:|file:)' + '(//[^/:]*(:[0-9]+)?)?' + '(/.*)?'),\n pathSplitter: new RegExp(\"([^\\\\?#]*)(\\\\?[^#]*)?(#.*)?\"),\n \n initialize: function(/*...*/) { // same field names as window.location\n dbgOn(!arguments[0]);\n if (Object.isString(arguments[0].valueOf())) {\n var urlString = arguments[0];\n var result = urlString.match(this.splitter);\n if (!result) throw new Error(\"malformed URL string '\" + urlString + \"'\");\n this.protocol = result[1]; \n if (!result[1]) \n throw new Error(\"bad url \" + urlString + \", \" + result);\n this.hostname = result[2] && result[2].substring(2).split(':')[0]; // skip the leading slashes and remove port\n this.port = result[3] && parseInt(result[3].substring(1)); // skip the colon\n\n var fullpath = result[4];\n if (fullpath) {\n result = fullpath.match(this.pathSplitter);\n this.pathname = result[1];\n this.search = result[2];\n this.hash = result[3];\n } else {\n this.pathname = \"/\";\n this.search = \"\";\n this.hash = \"\";\n }\n } else { // spec is either an URL or window.location\n var spec = arguments[0];\n this.protocol = spec.protocol || \"http\";\n this.port = spec.port;\n this.hostname = spec.hostname;\n this.pathname = spec.pathname || \"\";\n if (spec.search !== undefined) this.search = spec.search;\n if (spec.hash !== undefined) this.hash = spec.hash;\n }\n },\n \n inspect: function() {\n return JSON.serialize(this);\n },\n \n toString: function() {\n return this.protocol + \"//\" + this.hostname + (this.port ? \":\" + this.port : \"\") + this.fullPath();\n },\n\n fullPath: function() {\n return this.pathname + (this.search || \"\") + (this.hash || \"\");\n },\n \n isLeaf: function() {\n return !this.fullPath().endsWith('/');\n },\n \n // POSIX style\n dirname: function() {\n var p = this.pathname;\n var slash = p.endsWith('/') ? p.lastIndexOf('/', p.length - 2) : p.lastIndexOf('/');\n return p.substring(0, slash + 1);\n },\n\n filename: function() {\n var p = this.pathname;\n var slash = p.endsWith('/') ? p.lastIndexOf('/', p.length - 2) : p.lastIndexOf('/');\n return p.substring(slash + 1);\n },\n\n normalizedHostname: function() {\n return this.hostname.replace(/^www\\.(.*)/, '$1');\n },\n \n getDirectory: function() {\n return this.withPath(this.dirname());\n },\n asDirectory: function() {\n return this.fullPath().endsWith('/') ?\n this : new URL(this.withoutQuery().toString() + '/');\n },\n \n \n \n \n\n\n withPath: function(path) { \n var result = path.match(this.pathSplitter);\n if (!result) return null;\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: \n result[1], search: result[2], hash: result[3] });\n },\n\n withRelativePath: function(pathString) {\n if (pathString.startsWith('/')) {\n if (this.pathname.endsWith('/'))\n pathString = pathString.substring(1);\n } else {\n if (!this.pathname.endsWith('/'))\n pathString = \"/\" + pathString;\n }\n return this.withPath(this.pathname + pathString);\n },\n \n withFilename: function(filename) {\n if (filename == \"./\" || filename == \".\") // a bit of normalization, not foolproof\n filename = \"\";\n var dirPart = this.isLeaf() ? this.dirname() : this.fullPath();\n return new URL({protocol: this.protocol, port: this.port, \n hostname: this.hostname, pathname: dirPart + filename});\n },\n\n toQueryString: function(record) {\n var results = [];\n Properties.forEachOwn(record, function(p, value) {\n results.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(String(value)));\n });\n return results.join('&');\n },\n\n withQuery: function(record) {\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: this.pathname,\n search: \"?\" + this.toQueryString(record), hash: this.hash});\n },\n \n withoutQuery: function() {\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: this.pathname});\n },\n\n getQuery: function() {\n var s = this.toString();\n if (!s.include(\"?\"))\n return {};\n return s.toQueryParams();\n },\n \n eq: function(url) {\n if (!url) return false;\n return url.protocol == this.protocol &&\n url.port == this.port &&\n url.normalizedHostname() == this.normalizedHostname() &&\n url.pathname == this.pathname &&\n url.search == this.search &&\n url.hash == this.hash;\n },\n isIn: function(origin) {\n return origin.normalizedHostname() == this.normalizedHostname() &&\n this.fullPath().startsWith(origin.fullPath());\n },\n\n\n relativePathFrom: function(origin) {\n function checkPathes(path1, path2) {\n var paths1 = path1.split('/'),\n paths2 = path2.split('/');\n\n paths1.shift();\n paths2.shift();\n\n for (var i = 0; i < paths2.length; i++) {\n if (!paths1[i] || (paths1[i] != paths2[i]))\n break;\n }\n\n // now that's some JavaScript FOO\n var result = '../'.times(paths2.length - i - 1) + paths1.splice(i, paths1.length).join('/');\n return result;\n }\n\n if (origin.normalizedHostname() != this.normalizedHostname())\n throw new Error('hostname differs in relativePathFrom ' + origin + ' vs ' + this);\n var myPath = this.withRelativePartsResolved().pathname,\n otherPath = origin.withRelativePartsResolved().pathname;\n if (myPath == otherPath) return '';\n var relPath = checkPathes(myPath, otherPath);\n if (!relPath)\n throw new Error('pathname differs in relativePathFrom ' + origin + ' vs ' + this);\n return relPath;\n },\n\n svnWorkspacePath: function() {\n // heuristics to figure out the Subversion path\n var path = this.pathname;\n // note that the trunk/branches/tags convention is only a convention\n var index = path.lastIndexOf('trunk');\n if (index < 0) index = path.lastIndexOf('branches');\n if (index < 0) index = path.lastIndexOf('tags');\n if (index < 0) return null;\n return path.substring(index);\n },\n\n svnVersioned: function(repo, revision) {\n var relative = this.relativePathFrom(repo);\n return repo.withPath(repo.pathname + \"!svn/bc/\" + revision + \"/\" + relative);\n },\n \n notSvnVersioned: function() {\n // concatenates the two ends of the url\n // \"http://localhost/livelyBranch/proxy/wiki/!svn/bc/187/test/index.xhtml\"\n // --> \"http://localhost/livelyBranch/proxy/wiki/index.xhtml\"\n return this.withPath(this.fullPath().replace(/(.*)!svn\\/bc\\/[0-9]+\\/(.*)/, '$1$2'));\n },\n\n toLiteral: function() {\n // URLs are literal\n return Object.clone(this);\n },\n \n toExpression: function() {\n // this does not work with the new prototype.js (rev 2808) anymore\n // return 'new URL(JSON.unserialize(\\'' + JSON.serialize(this) + '\\'))';\n return Strings.format('new URL({protocol: \"%s\", hostname: \"%s\", pathname: \"%s\"})',\n this.protocol, this.hostname, this.pathname);\n },\n\n withRelativePartsResolved: function() {\n var urlString = this.toString();\n var result = urlString;\n // resolve ..\n do {\n urlString = result;\n result = urlString.replace(/\\/[^\\/]+\\/\\.\\./, '')\n } while(result != urlString)\n // foo//bar --> foo/bar\n result = result.replace(/([^:])[\\/]+/g, '$1/')\n // foo/./bar --> foo/bar\n result = result.replace(/\\/\\.\\//g, '/')\n return new URL(result)\n },\n getAllParentDirectories: function() {\n var url = this, all = [], max = 100;;\n do {\n max--;\n if (max == 0) throw new Error('Endless loop in URL>>getAllParentDirectories?')\n all.push(url);\n url = url.getDirectory();\n } while (url.fullPath() != '/')\n return all.reverse();\n },\n\n\n});\n\n// create URLs often needed\nObject.extend(URL, {\n source: new URL(document.URL),\n codeBase: (function setURLCodeBase() {\n var url;\n try { url = new URL(Config.codeBase) } catch(e) {\n console.warn('Cannot correctly set URL.codeBase because of ' + e);\n url = new URL(document.URL).getDirectory();\n }\n return url.withRelativePartsResolved();\n })(),\n})\n\nObject.extend(URL, {\n proxy: (function() {\n if (!Config.proxyURL) {\n if (URL.source.protocol.startsWith(\"file\")) \n console.log(\"loading from localhost, proxying won't work\");\n return URL.source.withFilename(\"proxy/\");\n } else {\n var str = Config.proxyURL;\n if (!str.endsWith('/')) str += '/';\n return new URL(str);\n }\n })(), \n});\n\nObject.extend(URL, {\n // FIXME: better names?\n common: {\n wiki: URL.proxy.withFilename('lively-wiki/'),\n repository: URL.proxy.withFilename('lively-kernel/'),\n project: URL.proxy.withFilename('lively-project/'), // currently lively-kernel.org\n domain: new URL(Global.document.location.protocol + '//' + Global.document.location.host)\n },\n});\n\nObject.extend(URL, {\n \n create: function(string) { return new URL(string) },\n\n ensureAbsoluteURL: function(urlString) {\n return /^http.*/.test(urlString) ?\n new URL(urlString) :\n URL.source.notSvnVersioned().getDirectory().withRelativePath(urlString);\n },\n ensureAbsoluteCodeBaseURL: function(urlString) {\n return /^http.*/.test(urlString) ?\n new URL(urlString) :\n URL.codeBase.withRelativePath(urlString);\n },\n\n\n fromLiteral: function(literal) { return new URL(literal) },\n\n makeProxied: function makeProxied(url) {\n url = url instanceof URL ? url : new URL(url);\n var px = this.proxy;\n if (!px) return url;\n if (px.normalizedHostname() != url.normalizedHostname()) // FIXME protocol?\n return px.withFilename(url.hostname + (url.port ? ':' + url.port : '') + url.fullPath());\n if (px.port != url.port)\n return px.withFilename(url.hostname + \":\" + url.port + url.fullPath());\n if (px.hostname != url.hostname) // one has prefix www, the other not\n return new URL({\n protocol: url.protocol,\n port: url.port,\n hostname: px.hostname, // arghhh\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n })\n return url;\n },\n\n});\n\n\nObject.subclass('NetRequestStatus',\n'documentation', {\n documentation: \"nice parsed status information, returned by NetRequest.getStatus when request done\",\n},\n'initialization', {\n initialize: function(method, url, transport) {\n this.method = method;\n this.url = url;\n this.transport = transport;\n this.exception = null;\n },\n},\n'testing', {\n isDone: function() {\n // transport.DONE not defined in all browsers, so use constant\n return this.transport.readyState === 4\n },\n\n isSuccess: function() {\n var code = this.transport.status;\n return code >= 200 && code < 300;\n },\n},\n'accessing', {\n setException: function(e) { this.exception = e },\n\n toString: function() {\n return Strings.format(\"#\", this.method, this.url, this.exception || this.transport.status);\n },\n\n requestString: function() { return this.method + \" \" + decodeURIComponent(this.url) },\n\n code: function() { return this.transport.status },\n\n getResponseHeader: function(name) { return this.transport.getResponseHeader(name) },\n\n});\n\n\nView.subclass('NetRequest', {\n documentation: \"a view that writes the contents of an http request into the model\",\n\n // see XMLHttpRequest documentation for the following:\n Unsent: 0,\n Opened: 1,\n HeadersReceived: 2,\n Loading: 3,\n Done: 4,\n\n formals: [\n \"+Status\", // Updated once, when request is {Done} with the value returned from 'getStatus'.\n \"+ReadyState\", // Updated on every state transition of the request.\n \"+ResponseXML\", // Updated at most once, when request state is {Done}, with the parsed XML document retrieved.\n \"+ResponseText\", // Updated at most once, when request state is {Done}, with the text content retrieved.\n \"+ResponseHeaders\", // Updated at most once, when request state is {Done}, with the response headers retrieved.\n \"StreamContent\",\n \"Progress\",\n ],\n\n initialize: function($super, modelPlug) {\n this.transport = new XMLHttpRequest();\n this.requestNetworkAccess();\n this.transport.onreadystatechange = this.onReadyStateChange.bind(this);\n this.isSync = false;\n this.isBinary = false;\n this.requestHeaders = {};\n $super(modelPlug)\n },\n\n enableProgress: function() {\n console.log(\"enableProgress\")\n // FIXME onprogress leads to strange 101 errors when no internet connection available\n this.transport.onprogress = this.onProgress.bind(this);\n if (!UserAgent.isTouch && this.transport.upload !== undefined) // FIXME crashes Mobile Safari && IE9+\n this.transport.upload.onprogress = this.onProgress.bind(this);\n },\n\n requestNetworkAccess: function() {\n if (Global.netscape && Global.location.protocol == \"file:\") { \n try {\n netscape.security.PrivilegeManager.enablePrivilege(\"UniversalBrowserRead\");\n console.log(\"requested browser read privilege\");\n return true;\n } catch (er) {\n console.log(\"no privilege granted: \" + er);\n return false;\n }\n }\n },\n\n beSync: function() {\n this.isSync = true;\n return this;\n },\n\n beBinary: function() {\n this.isBinary = true;\n return this;\n },\n\n onReadyStateChange: function() {\n this.setReadyState(this.getReadyState());\n if (this.getReadyState() === this.Loading) { // For comet networking\n this.setStatus(this.getStatus());\n var hasResponseText = false;\n try {\n // FIX for IE9+ if responseText is not available yet\n hasResponseText = this.transport.responseText;\n } catch (e) { console.warn('Request\\'s response text is not available yet.'); }\n if (hasResponseText !== undefined) {\n var allContent = this.getResponseText(),\n newStart = this._streamContentLength ? this._streamContentLength : 0,\n newContent = allContent.substring(newStart);\n newContent = /^([^\\n\\r]*)/.exec(newContent)[1]; // remove line breaks\n this.setStreamContent(newContent);\n this._streamContentLength = allContent.length;\n }\n }\n if (this.getReadyState() === this.Done) {\n this.setStatus(this.getStatus());\n if (this.transport.responseText !== undefined)\n this.setResponseText(this.getResponseText());\n if (this.transport.responseXML !== undefined) \n this.setResponseXML(this.getResponseXML());\n if (this.transport.getAllResponseHeaders() !== undefined)\n this.setResponseHeaders(this.getResponseHeaders());\n this.disconnectModel(); // autodisconnect?\n }\n },\n\n onProgress: function(progress) { this.setProgress(progress) },\n \n setRequestHeaders: function(record) {\n Properties.forEachOwn(record, function(prop, value) {\n this.requestHeaders[prop] = value;\n }, this);\n },\n\n setContentType: function(string) {\n // valid before send but after open?\n this.requestHeaders[\"Content-Type\"] = string;\n },\n\n getReadyState: function() { return this.transport.readyState },\n\n getResponseText: function() { return this.transport.responseText || \"\" },\n\n getResponseXML: function() { return this.transport.responseXML || \"\" },\n\n getResponseHeaders: function() {\n var headerString = this.transport.getAllResponseHeaders(),\n headerObj = {};\n headerString.split('\\r\\n').each(function(ea) {\n var splitter = ea.indexOf(':');\n if (splitter != -1) {\n headerObj[ea.slice(0, splitter)] = ea.slice(splitter + 1).trim();\n // as headers should be case-insensitiv, add lower case headers (for Safari)\n headerObj[ea.slice(0, splitter).toLowerCase()] = ea.slice(splitter + 1).trim();\n }\n });\n return headerObj;\n },\n\n getStatus: function() { return new NetRequestStatus(this.method, this.url, this.transport) },\n\n request: function(method, url, content) {\n try {\n this.url = url;\n this.method = method.toUpperCase(); \n this.transport.open(this.method, url.toString(), !this.isSync);\n Properties.forEachOwn(this.requestHeaders, function(p, value) {\n this.transport.setRequestHeader(p, value);\n }, this);\n if (!this.isBinary)\n this.transport.send(content || '');\n else\n this.transport.sendAsBinary(content || '');\n if (Global.isFirefox && this.isSync) // mr: FF does not use callback when sync \n this.onReadyStateChange();\n return this;\n } catch (er) {\n var status = this.getStatus();\n status.setException(er);\n this.setStatus(status);\n throw er;\n }\n },\n\n get: function(url) { return this.request(\"GET\", URL.makeProxied(url), null) },\n\n put: function(url, content) { return this.request(\"PUT\", URL.makeProxied(url), content) },\n\n post: function(url, content) { return this.request(\"POST\", URL.makeProxied(url), content) },\n\n propfind: function(url, depth, content) {\n this.setContentType(\"text/xml\"); // complain if it's set to something else?\n if (depth != 0 && depth != 1)\n depth = \"infinity\";\n this.setRequestHeaders({ \"Depth\" : depth });\n return this.request(\"PROPFIND\", URL.makeProxied(url), content);\n },\n\n report: function(url, content) { return this.request(\"REPORT\", URL.makeProxied(url), content) },\n\n mkcol: function(url, content) { return this.request(\"MKCOL\", URL.makeProxied(url), content) },\n\n del: function(url) { return this.request(\"DELETE\", URL.makeProxied(url)) },\n\n copy: function(url, destUrl, overwrite) {\n this.setRequestHeaders({ \"Destination\" : destUrl.toString() });\n if (overwrite) this.setRequestHeaders({ \"Overwrite\" : 'T' });\n return this.request(\"COPY\", URL.makeProxied(url));\n },\n move: function(url, destUrl, overwrite) {\n this.setRequestHeaders({ \"Destination\" : destUrl.toString() });\n if (overwrite) this.setRequestHeaders({ \"Overwrite\" : 'T' });\n return this.request(\"MOVE\", URL.makeProxied(url));\n },\n\n\n lock: function(url, owner) {\n this.setRequestHeaders({Timeout: 'Infinite, Second-30'});\n var content = Strings.format(' \\n\\\n \\n\\\n \\n\\\n \\n\\\n %s \\n\\\n ', owner || 'unknown user');\n return this.request(\"LOCK\", URL.makeProxied(url), content);\n },\n \n unlock: function(url, lockToken, force) {\n if (force) {\n var req = new NetRequest().beSync().propfind(url);\n var xml = req.getResponseXML() || stringToXML(req.getResponseText());\n var q = new Query('/descendant::*/D:lockdiscovery/descendant::*/D:locktoken/D:href');\n var tokenElement = q.findFirst(xml);\n if (!tokenElement) // no lock token, assume that resource isn't locked\n return req;\n lockToken = tokenElement.textContent;\n }\n this.setRequestHeaders({'Lock-Token': '<' + lockToken + '>'});\n return this.request(\"UNLOCK\", URL.makeProxied(url));\n },\n head: function(url) { return this.request(\"HEAD\", URL.makeProxied(url), null) },\n\n toString: function() { return \"#\" },\n\n});\n\n\n// extend your objects with this trait if you don't want to deal with error reporting yourself.\nNetRequestReporterTrait = {\n setRequestStatus: function(status) {\n // update the model if there is one\n if (this.getModel && this.getModel() && this.getModel().setRequestStatus)\n this.getModel().setRequestStatus(status);\n \n var world = WorldMorph.current();\n // some formatting for alerting. could be moved elsewhere\n var request = status.requestString();\n var tooLong = 80;\n if (request.length > tooLong) {\n var arr = [];\n for (var i = 0; i < request.length; i += tooLong) {\n arr.push(request.substring(i, i + tooLong));\n }\n request = arr.join(\"..\\n\");\n }\n // error reporting\n if (status.exception) {\n world.alert(\"exception \" + status.exception + \" accessing\\n\" + request);\n } else if (status.code() >= 300) {\n if (status.code() == 301) {\n // FIXME reissue request? need the 'Location' response header for it\n world.alert(\"HTTP/301: Moved to \" + status.getResponseHeader(\"Location\") + \"\\non \" + request);\n } else if (status.code() == 401) {\n world.alert(\"not authorized to access\\n\" + request); \n // should try to authorize\n } else if (status.code() == 412) {\n console.log(\"the resource was changed elsewhere\\n\" + request);\n } else if (status.code() == 423) {\n world.alert(\"the resource is locked\\n\" + request);\n } else {\n world.alert(\"failure to\\n\" + request + \"\\ncode \" + status.code());\n }\n } else console.log(\"status \" + status.code() + \" on \" + status.requestString());\n }\n};\n\n// convenience base class with built in handling of errors\nObject.subclass('NetRequestReporter', NetRequestReporterTrait);\n\n\n\nView.subclass('Resource'/*, NetRequestReporterTrait*/, {\n documentation: \"a remote document that can be fetched, stored and queried for metadata\",\n // FIXME: should probably encapsulate content type\n\n formals: [\"ContentDocument\", //:XML\n \"ContentText\", //:String\n \"URL\", // :URL\n \"RequestStatus\", // :NetRequestStatus\n \"ResponseHeaders\",\n \"Progress\",\n ],\n\n createNetRequest: function() {\n return new NetRequest({\n model: this,\n setResponseXML: \"setContentDocument\",\n setResponseText: 'setContentText',\n setStatus: \"setRequestStatus\",\n setResponseHeaders: \"setResponseHeaders\",\n setProgress: 'setProgress'\n });\n },\n \n initialize: function(plug, contentType) {\n this.contentType = contentType;\n this.connectModel(plug);\n },\n\n deserialize: Functions.Empty, // stateless besides the model and content type\n\n toString: function() {\n return \"#\";\n },\n\n removeNetRequestReporterTrait: function() {\n delete this.setRequestStatus;\n this.setRequestStatus = function(status) {\n if (this.getModel && this.getModel() && this.getModel().setRequestStatus)\n this.getModel().setRequestStatus(status);\n }.bind(this);\n },\n \n updateView: function(aspect, source) {\n var p = this.modelPlug;\n if (!p) return;\n switch (aspect) {\n case p.getURL:\n this.onURLUpdate(this.getURL()); // request headers?\n break;\n }\n },\n\n onURLUpdate: function(url) {\n return this.fetch(url);\n },\n\n fetch: function(sync, optRequestHeaders) {\n // fetch the document content itself\n var req = this.createNetRequest();\n if (sync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n if (this.isShowingProgress) req.enableProgress();\n req.get(this.getURL());\n return req;\n },\n\n fetchProperties: function(optSync, optRequestHeaders) {\n var req = this.createNetRequest();\n if (optSync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.propfind(this.getURL(), 1);\n return req;\n },\n\n store: function(content, optSync, optRequestHeaders) {\n // FIXME: check document type\n if ((Global.Document && content instanceof Document) || (Global.Node && content instanceof Node)) {\n content = Exporter.stringify(content);\n }\n var req = this.createNetRequest();\n if (optSync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n if (this.isShowingProgress) req.enableProgress();\n req.put(this.getURL(), content);\n return req;\n },\n\n});\n\nResource.subclass('SVNResource', {\n\n formals: Resource.prototype.formals.concat(['Metadata', 'HeadRevision']),\n\n createNetRequest: function() {\n return new NetRequest({\n model: this,\n setResponseXML: \"setContentDocument\",\n setResponseText: 'setContentText',\n setStatus: \"setRequestStatus\",\n setResponseHeaders: \"setResponseHeaders\",\n setProgress: 'setProgress'\n });\n },\n \n initialize: function($super, repoUrl, plug, contentType) {\n this.repoUrl = repoUrl.toString();\n $super(plug, contentType);\n },\n\n getLocalUrl: function() {\n return new URL(this.getURL()).relativePathFrom(new URL(this.repoUrl)).toString();\n },\n\n fetchHeadRevision: function(optSync) {\n var req = new NetRequest({\n model: this,\n setResponseXML: \"pvtSetHeadRevFromDoc\",\n setStatus: \"setRequestStatus\",\n setProgress: 'setProgress'\n });\n if (optSync) req.beSync();\n req.propfind(this.getURL(), 1);\n return req;\n },\n\n fetch: function($super, optSync, optRequestHeaders, rev) {\n var req;\n if (rev) {\n this.withBaselineUriDo(rev, function() { req = $super(optSync, optRequestHeaders) });\n } else {\n req = $super(optSync, optRequestHeaders);\n };\n return req;\n },\n \n store: function($super, content, optSync, optRequestHeaders, optHeadRev) {\n // if optHeadRev is not undefined than the store will only succeed\n // if the head revision of the resource is really optHeadRev\n if (optHeadRev) {\n var headers = optRequestHeaders ? optRequestHeaders : {};\n //determine local path of resource\n //var local = new URL(this.getURL()).relativePathFrom(new URL(this.repoUrl));\n var local = this.getURL().toString().substring(this.repoUrl.toString().length);\n if (local.startsWith('/')) local = local.slice(1); // remove leading slash\n var ifHeader = Strings.format('([\"%s//%s\"])', optHeadRev, local);\n console.log('Creating if header: ' + ifHeader);\n Object.extend(headers, {'If': ifHeader});\n }\n return $super(content, optSync, headers);\n },\n \n del: function(sync, optRequestHeaders) {\n var req = new NetRequest(this.createNetRequest());\n if (sync) req.beSync();\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.del(this.getURL());\n return req;\n },\n\n fetchProperties: function($super, optSync, optRequestHeaders, rev) {\n var req;\n if (rev) {\n this.withBaselineUriDo(rev, function() { req = $super(optSync, optRequestHeaders) });\n } else {\n req = $super(optSync, optRequestHeaders);\n };\n return req;\n },\n\n fetchMetadata: function(optSync, optRequestHeaders, startRev, endRev, reportDepth) {\n // get the whole history if startRev is undefined\n // FIXME: in this case the getHeadRevision will be called synchronous\n if (!startRev) {\n this.fetchHeadRevision(true);\n startRev = this.getHeadRevision();\n }\n this.reportDepth = reportDepth; // FIXME quick hack, needed in 'pvtScanLog...'\n var req = new NetRequest({\n model: this,\n setResponseXML: \"pvtScanLogReportForVersionInfos\",\n setStatus: \"setRequestStatus\",\n setProgress: 'setProgress'\n });\n if (optSync) req.beSync();\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.report(this.getURL(), this.pvtRequestMetadataXML(startRev, endRev));\n return req;\n },\n\n pvtSetHeadRevFromDoc: function(xml) {\n if (!xml) return;\n /* The response contains the properties of the specified file or directory,\n e.g. the revision (= version-name) */\n var revisionNode = xml.getElementsByTagName('version-name')[0];\n if (!revisionNode) return;\n this.setHeadRevision(Number(revisionNode.textContent));\n },\n\n pvtScanLogReportForVersionInfos: function(logReport) {\n // FIXME Refactor: method object?\n var errorQ = new Query('D:error//m:human-readable');\n \n var depth = this.reportDepth; \n var logItemQ = new Query('//S:log-item');\n var versionInfos = [];\n //var repoUrl = new URL(this.repoUrl);\n var repoUrl = this.repoUrl;\n\n var result = logItemQ.findAll(logReport);\n for (var i = 0; i < result.length; i++) {\n var logElement= result[i];\n var spec = {};\n for (var j = 0; j < logElement.childNodes.length; j++) {\n var logProp = logElement.childNodes[j];\n switch(logProp.tagName) {\n case 'D:version-name':\n spec.rev = Number(logProp.textContent); break;\n case 'D:creator-displayname':\n spec.author = logProp.textContent; break;\n case 'S:date':\n spec.date = logProp.textContent; break;\n case 'S:added-path':\n case 'S:modified-path':\n case 'S:deleted-path':\n case 'S:replaced-path':\n var relPath = logProp.textContent;\n if (depth && relPath.split('/').length-1 > depth)\n continue;\n //relPath = relPath.slice(1); // remove trailing /\n if (repoUrl.endsWith(relPath))\n spec.url = repoUrl; // hmmm???\n else\n spec.url = repoUrl.toString() + relPath.slice(1); \n // console.log('Created spec.url:' + spec.url);\n if (!spec.changes) spec.changes = [];\n var type = logProp.tagName.split('-').first();\n var url = logProp.tagName.include('modified-path') ? logProp.textContent : null;\n spec.changes.push({type: type, url : url});\n break;\n default:\n }\n };\n if (!spec.url) continue;\n spec.url = new URL(spec.url);\n versionInfos.push(new SVNVersionInfo(spec));\n };\n // newest version first\n versionInfos = versionInfos.sortBy(function(vInfo) { return vInfo.rev }).reverse();\n this.setMetadata(versionInfos);\n },\n \n pvtScanLogReportForVersionInfosTrace: function(logReport) {\n lively.lang.Execution.trace(this.pvtScanLogReportForVersionInfos.curry(logReport).bind(this));\n },\n\n pvtRequestMetadataXML: function(startRev, endRev) {\n return Strings.format(\n '' + \n '%s' +\n '%s' +\n '' +\n '' +\n '' +\n '', startRev, endRev || 0);\n },\n pvtRequestLocationXML: function(pegRev, pastRev) {\n return Strings.format(\n '' +\n '' +\n '%s' +\n '%s' +\n '', pegRev, pastRev);\n },\n\n\n withBaselineUriDo: function(rev, doFunc) {\n var tempUrl = this.getURL();\n this.setURL(this.createVersionURLString(rev));\n doFunc();\n this.setURL(tempUrl);\n },\n \n createVersionURLString: function(rev) {\n return this.repoUrl + '/!svn/bc/' + rev + '/' + this.getLocalUrl();\n },\n\n});\n\nObject.subclass('SVNVersionInfo', {\n\n documentation: 'This object wraps svn infos from report or propfind requests',\n\n initialize: function(spec) {\n // possible properties of spec:\n // rev, date, author, url, change, content\n for (name in spec) {\n var val = spec[name];\n if (name == 'date') {\n if (Object.isString(val)) {\n this.date = this.parseUTCDateString(val);\n } else if (val instanceof Date) {\n this.date = val;\n }\n } else {\n this[name] = val;\n }\n }\n if (!this.author)\n this.author = '(no author)';\n if (!this.date)\n this.date = new Date();\n },\n\n parseUTCDateString: function(dateString) {\n var yearElems = dateString.slice(0,10).split('-').collect(function(ea) {return Number(ea)});\n var timeElems = dateString.slice(11,19).split(':').collect(function(ea) {return Number(ea)});\n return new Date(yearElems[0], yearElems[1]-1, yearElems[2], timeElems[0], timeElems[1], timeElems[2])\n },\n\n toString: function() {\n // does not work when evaluate {new SVNVersionInfo() + \"\"} although toStrings() works fine. *grmph*\n // string = Strings.format('%s, %s, %s, Revision %s',\n // this.author, this.date.toTimeString(), this.date.toDateString(), this.rev);\n // string = new String(string);\n // string.orig = this;\n // TODO work around Serialization bug\n var timeString = this.date.toTimeString ? \n this.date.toTimeString() :\n 'no time';\n\n var dateString = this.date.toDateString ? \n this.date.toDateString() :\n 'no date';\n\n return Strings.format('%s, %s, %s, Rev. %s',\n this.author, timeString, dateString, this.rev);\n },\n \n toExpression: function() {\n return Strings.format('new SVNVersionInfo({rev: %s, url: %s, date: %s, author: %s, change: %s, fileSize: %s})',\n this.rev, toExpression(this.url), toExpression(this.date),\n toExpression(this.author), toExpression(this.change), toExpression(this.fileSize));\n },\n \n});\nObject.extend(SVNVersionInfo, {\n fromPropfindNode: function(node) {\n // FIXME cleanup --> Similar code exists in lively.Network -> pvtSetMeta...sth\n // rk 2/22/10: the namespace tag lp1 is required by Firefox\n var prefix = UserAgent.fireFoxVersion ? 'lp1:' : '';\n\n var versionTag = node.getElementsByTagName(prefix + 'version-name')[0];\n var rev = versionTag ? Number(versionTag.textContent) : 0;\n\n var dateTag = node.getElementsByTagName(prefix + 'getlastmodified')[0];\n var date = new Date(dateTag ? dateTag.textContent : 'Mon, 01 Jan 1900 00:00:00 GMT');\n\n var authorTag = node.getElementsByTagName(prefix + 'creator-displayname')[0];\n var author = authorTag ? authorTag.textContent : 'anonymous';\n\n var sizeTag = node.getElementsByTagName(prefix + 'getcontentlength')[0];\n var fileSize = sizeTag ? Number(sizeTag.textContent) : -1;\n\n // FIXME: resolve prefix \"D\" to something meaningful?\n var nameQ = new Query(\"D:href\");\n var result = nameQ.findFirst(node);\n var name = result && decodeURIComponent(result.textContent);\n var slash = name.endsWith('/') ? name.lastIndexOf('/', name.length - 2) : name.lastIndexOf('/');\n var shortName = name.substring(slash + 1);\n\n return new SVNVersionInfo({rev: rev, date: date, author: author, shortName: shortName, url: name, fileSize: fileSize});\n},\n});\n\nObject.subclass('WebResource',\n'documentation', {\n connections: ['status', 'content', 'contentDocument', 'isExisting', 'subCollections', 'subDocuments', 'progress', 'readystate', 'versions', 'headRevision'],\n},\n'initializing', {\n initialize: function(url) {\n this._url = new URL(url);\n this.beSync();\n this.reset();\n },\n\n reset: function() {\n this.beText();\n this.status = null;\n this.content = null;\n this.contentDocument = null;\n this.isExisting = null;\n this.subResources = null;\n this.requestHeaders = {};\n this.responseHeaders = {};\n },\n\n createResource: function() {\n var self = this;\n var resource = new SVNResource(\n this.getRepoURL().toString(),\n {\n model: {\n url: self.getURL().toString(),\n getURL: function() { return this.url },\n setURL: function(url) { this.url = url },\n setRequestStatus: function(reqStatus) { self.status = reqStatus; self.isExisting = reqStatus.isSuccess() },\n setContentText: function(string) { self.content = string },\n setContentDocument: function(doc) { self.contentDocument = doc },\n setResponseHeaders: function(obj) { self.responseHeaders = obj },\n setProgress: function(progress) { self.progress = progress },\n setHeadRevision: function(rev) { self.headRevision = rev },\n getHeadRevision: function() { return self.headRevision },\n setMetadata: function(metadata) { self.versions = metadata },\n },\n getURL: 'getURL',\n setURL: 'setURL',\n setRequestStatus: 'setRequestStatus',\n setContentText: 'setContentText',\n setContentDocument: 'setContentDocument',\n setResponseHeaders: 'setResponseHeaders',\n setProgress: 'setProgress',\n setHeadRevision: 'setHeadRevision',\n getHeadRevision: 'getHeadRevision',\n setMetadata: 'setMetadata',\n });\n resource.isShowingProgress = this.isShowingProgress;\n // resource.removeNetRequestReporterTrait();\n return resource\n },\n\n createNetRequest: function() {\n var self = this;\n var request = new NetRequest({\n model: {\n setStatus: function(reqStatus) { self.status = reqStatus; self.isExisting = reqStatus.isSuccess() },\n setResponseText: function(string) { self.content = string },\n setResponseXML: function(doc) { self.contentDocument = doc },\n setResponseHeaders: function(obj) { self.responseHeaders = obj },\n setReadyState: function(readyState) { self.readystate = readyState },\n setProgress: function(progress) { self.progress = progress },\n setStreamContent: function(content) { self.content = content; self.streamContent = content },\n },\n setStatus: 'setStatus',\n setResponseText: 'setResponseText',\n setResponseXML: 'setResponseXML',\n setResponseHeaders: 'setResponseHeaders',\n setReadyState: 'setReadyState',\n setProgress: 'setProgress',\n setStreamContent: 'setStreamContent',\n });\n if (this.isSync())\n request.beSync();\n if (this.requestHeaders)\n request.requestHeaders = this.requestHeaders;\n return request;\n },\n createXMLHTTPRequest: function(method) {\n // objects to work with\n method = method.toUpperCase();\n var webR = this,\n url = this.getURL(),\n requestHeaders = this.requestHeaders,\n isSync = this.isSync(),\n req = new XMLHttpRequest(),\n loadStates = {UNSENT: 0, OPENED: 1, HEADERSRECEIVED: 2, LOADING: 3, DONE: 4};\n\n // helper functions\n function createStatus () { return new NetRequestStatus(method, url, req) };\n function extractHeaders(req) {\n var headerString = req.getAllResponseHeaders(),\n headerObj = {};\n headerString.split('\\r\\n').forEach(function(ea) {\n var splitter = ea.indexOf(':');\n if (splitter != -1) {\n headerObj[ea.slice(0, splitter)] = ea.slice(splitter + 1).trim();\n // as headers should be case-insensitiv, add lower case headers (for Safari)\n headerObj[ea.slice(0, splitter).toLowerCase()] = ea.slice(splitter + 1).trim();\n }\n });\n return headerObj;\n };\n function onReadyStateChange() {\n var status = createStatus();\n webR.status = status;\n if (req.readyState == loadStates.DONE) {\n webR.isExisting = status.isSuccess();\n if (req.responseText !== undefined)\n webR.content = req.responseText;\n if (req.responseXML !== undefined)\n webR.contentDocument = req.responseXML;\n if (req.getAllResponseHeaders() !== undefined)\n webR.responseHeaders = extractHeaders(req)\n }\n\n // setReadyState: function(readyState) { self.readystate = readyState },\n // setProgress: function(progress) { self.progress = progress },\n // setStreamContent: function(content) { self.content = content },\n };\n\n function onProgress(evt) {\n webR.progressEvent = evt;\n // var percentComplete = (e.position / e.totalSize)*100;\n };\n // register event handlers\n req.onreadystatechange = onReadyStateChange;\n\n if (method === 'PUT' || method === 'POST') {\n req.upload.addEventListener(\"progress\", onProgress, false);\n // req.upload.addEventListener(\"load\", transferComplete, false);\n // req.upload.addEventListener(\"error\", transferFailed, false);\n // req.upload.addEventListener(\"abort\", transferCanceled, false);\n } else {\n req.addEventListener(\"progress\", onProgress, false);\n }\n\n // to be more or less compatible with the netRequest object -- fixme should simplified\n return {\n request: function(content) {\n var proxiedUrl = URL.makeProxied(url);\n req.open(method, proxiedUrl.toString(), !isSync);\n Properties.forEachOwn(requestHeaders, function(p, value) {\n req.setRequestHeader(p, value);\n });\n var sendSelector = webR.isBinary() && req.sendAsBinary ? 'sendAsBinary' : 'send';\n try {\n req[sendSelector](content);\n if (Global.isFirefox && isSync) // mr: FF does not use callback when sync \n onReadyStateChange();\n } catch (er) {\n webR.status = createStatus();\n throw er;\n }\n }\n }\n },\n\n},\n'private', {\n temporaryChangeURLAndDo: function(otherURL, func) {\n var temp = this._url;\n this._url = otherURL;\n var result = func.call(this)\n this._url = temp;\n return result;\n },\n},\n'accessing', {\n getURL: function() { return this._url; },\n getRepoURL: function() {\n return URL.codeBase // FIXME repo!\n },\n\n getName: function() { return this.getURL().filename(); },\n isCollection: function() { return !this.getURL().isLeaf() },\n},\n'configuration', {\n isSync: function() { return this._isSync; },\n beSync: function() { this._isSync = true; return this; },\n beAsync: function() { this._isSync = false; return this; },\n setSync: function(bool) { this._isSync = bool; return this; },\n\n isBinary: function() { return this._isBinary; },\n beBinary: function() { this._isBinary = true; return this; },\n beText: function() { this._isBinary = false; return this; },\n\n\n forceUncached: function() {\n this._url = this.getURL().withQuery({time: new Date().getTime()});\n return this;\n },\n},\n'progress', {\n enableShowingProgress: function() { this.isShowingProgress = true; return this },\n createProgressBar: function(label) {\n // this.enableShowingProgress();\n // var labelFunc = Object.isString(labelOrFunc) ?\n // function() { return labelOrFunc } : labelOrFunc;\n\t\tif (!Config.isNewMorphic) return this;\n var progressBar = lively.morphic.World.current().addStatusProgress(label);\n connect(this, 'progressEvent', progressBar, 'setValue',\n {converter: function(rpe) { return (rpe.loaded / rpe.total) }});\n connect(this, 'status', progressBar, 'remove', {\n updater: function($upd, status) { if (status.isDone()) $upd() }});\n return this;\n },\n\n},\n'DEPRECATED', {\n copyTo: function(url) {\n var otherResource = new WebResource(url);\n otherResource.create();\n new NetRequest().copy(this.getURL(), url, true /*overwrite*/);\n return otherResource;\n },\n\n},\n'debugging', {\n statusMessage: function(successMsg, failureMessage, onlyOnce) {\n this.successMsg = successMsg;\n this.failureMessage = failureMessage;\n var world = Config.isNewMorphic ? lively.morphic.World.current() : WorldMorph.current();\n if (!world) return this;\n lively.bindings.connect(this, 'status', world, 'setStatusMessage', {\n updater: function($upd, status) {\n if (!status.isDone()) return;\n var m1 = this.sourceObj.successMsg,\n m2 = this.sourceObj.failureMessage;\n if (status.isSuccess() && m1) $upd(m1, Color.green, 4)\n else if (m2) $upd(m2 + ' (code ' + status.code() + ')', Color.red, 6)\n },\n removeAfterUpdate: onlyOnce\n });\n return this\n },\n\n toString: function() { return 'WebResource(' + this.getURL() + ')' },\n},\n'request headers', {\n\n setRequestHeaders: function(headers) {\n this.requestHeaders = headers;\n return this;\n },\n addHeaderForRequiredRevision: function(rev) {\n if (!rev) return;\n var local = this.getURL().relativePathFrom(this.getRepoURL()),\n ifHeader = Strings.format('([\"%s//%s\"])', rev, local);\n console.log('Creating if header: ' + ifHeader);\n this.requestHeaders[\"If\"] = ifHeader;\n },\n addContentType: function(contentType) {\n this.requestHeaders[\"Content-Type\"] = contentType || '';\n },\n\n},\n'HTTP methods', {\n\n get: function(rev, contentType, urlOfPastVersion) {\n if (!rev) {\n var req = this.createNetRequest()\n if (contentType) req.setContentType(contentType);\n req.get(this.getURL());\n return this;\n }\n if (urlOfPastVersion) {\n this.temporaryChangeURLAndDo(urlOfPastVersion, function() {\n var resource = this.createResource();\n if (contentType) resource.contentType = contentType;\n resource.fetch(this.isSync(), this.requestHeaders, rev);\n })\n return this;\n }\n // use a helper so that connections to this are not triggered when\n // location XML is written to content/contentDocument\n var helper = new WebResource(this.getURL());\n helper.setSync(this.isSync())\n connect(helper, 'revAndLocations', this, 'get', {\n updater: function($upd, revAndPath) { $upd(rev, contentType, revAndPath[rev]) },\n varMapping: {rev: rev, contentType: contentType}});\n helper.getLocationInRev(rev, this.headRevision);\n return this;\n },\n get2: function(rev, contentType, urlOfPastVersion) {\n if (!rev) {\n if (contentType) this.addContentType(contentType);\n var req = this.createXMLHTTPRequest('GET');\n req.request();\n return this;\n }\n if (urlOfPastVersion) {\n this.temporaryChangeURLAndDo(urlOfPastVersion, function() {\n var resource = this.createResource();\n if (contentType) resource.contentType = contentType;\n resource.fetch(this.isSync(), this.requestHeaders, rev);\n })\n return this;\n }\n // use a helper so that connections to this are not triggered when\n // location XML is written to content/contentDocument\n var helper = new WebResource(this.getURL());\n helper.setSync(this.isSync())\n connect(helper, 'revAndLocations', this, 'get', {\n updater: function($upd, revAndPath) { $upd(rev, contentType, revAndPath[rev]) },\n varMapping: {rev: rev, contentType: contentType}});\n helper.getLocationInRev(rev, this.headRevision);\n return this;\n },\n\n\n put_DEPRECATED: function(content, contentType, requiredRevision) {\n this.content = this.convertContent(content);\n var resource = this.createResource();\n if (contentType)\n resource.contentType = contentType;\n resource.store(content, this.isSync(), this.requestHeaders, requiredRevision);\n\n return this;\n },\n put: function(content, contentType, requiredRevision) {\n this.content = this.convertContent(content || '');\n if (requiredRevision) this.addHeaderForRequiredRevision(requiredRevision);\n if (contentType) this.addContentType(contentType)\n var req = this.createXMLHTTPRequest('PUT');\n req.request(this.content);\n return this;\n },\n\n\n create: function() {\n if (!this.isCollection()) return this.put('');\n var request = this.createNetRequest();\n request.mkcol(this.getURL());\n return this;\n },\n\n del: function() {\n var request = this.createNetRequest();\n request.del(this.getURL());\n return this;\n },\n\n post: function(content, contentType) {\n this.content = content;\n var request = this.createNetRequest();\n if (contentType)\n request.setContentType(contentType);\n request.post(this.getURL(), content);\n return this;\n },\n \n exists: function() {\n // for async use this.get().isExisting directly\n try {\n return this.beSync().head().status.isSuccess()\n } catch(e) {\n return false;\n }\n },\n head: function() {\n var request = this.createNetRequest();\n request.head(this.getURL());\n return this;\n },\n\n propfind: function(depth) {\n if (!depth) depth = 1;\n var req = this.createNetRequest();\n req.propfind(this.getURL(), depth);\n return this;\n },\n report: function(content) {\n var req = this.createNetRequest();\n req.report(this.getURL(), content);\n return this; \n },\n\n\n getSubElements: function(depth) {\n\n lively.bindings.connect(this, 'contentDocument', this, 'pvtProcessPropfindForSubElements', {removeAfterUpdate: true});\n this.propfind(depth);\n return this;\n },\n\n copyTo: function(url) {\n var request = this.createNetRequest();\n request.copy(this.getURL(), url, true /*overwrite*/);\n return this;\n },\n moveTo: function(url) {\n var request = this.createNetRequest();\n request.move(this.getURL(), url, true /*overwrite*/);\n return this;\n },\n\n \n getVersions: function(startRev, endRev) {\n var res = this.createResource();\n //connect(this, 'contentDocument', this, 'pvtProcessPropfindForGetVersions', {removeAfterUpdate: true});\n if (!startRev) {\n if (this.headRevision) {\n startRev = this.headRevision;\n } else {\n connect(this, 'headRevision', this, 'getVersions', {removeAfterUpdate: true});\n // FIXME if only endRev is passed in, it's forgotten here...\n this.getHeadRevision();\n return this;\n }\n }\n res.fetchMetadata(this.isSync(), this.requestHeaders, startRev, endRev, null);\n return this;\n },\n\n getHeadRevision: function() {\n var res = this.createResource();\n res.fetchHeadRevision(this.isSync());\n return this;\n },\n\n getProperties: function(optRequestHeaders, rev) {\n var res = this.createResource();\n res.fetchProperties(this.isSync(), optRequestHeaders, rev);\n return this;\n },\n ensureExistance: function() {\n var url = this.getURL();\n url.getAllParentDirectories().forEach(function(ea) {\n var webR = new WebResource(ea);\n if (!webR.exists()) {\n console.log('creating ' + webR.getURL());\n webR.create();\n }\n })\n return this;\n },\n},\n'version specific', {\n getLocationInRev: function(rev) {\n var self = this,\n reportRequester = {\n action: function(headRev) {\n var content = Strings.format(\n '' +\n '' +\n '%s' +\n '%s' +\n '', headRev, rev);\n connect(self, 'contentDocument', self, 'pvtProcessForLocationRequest', {\n removeAfterUpdate: true});\n self.report(content);\n }\n }\n if (this.headRevision) {\n reportRequester.action(this.headRevision)\n } else {\n connect(self, 'headRevision', reportRequester, 'action', {removeAfterUpdate: true});\n this.getHeadRevision();\n }\n return this;\n },\n\n},\n'XML querying', {\n pvtProcessForLocationRequest: function(doc) {\n var revAndLocations = {},\n locations = doc.getElementsByTagName('location');\n for (var i = 0; i < locations.length; i++) {\n var rev = locations[i].getAttribute('rev'),\n path = locations[i].getAttribute('path');\n revAndLocations[rev] = this.getRepoURL().withFilename(path);\n }\n // set it when retrieved so that connections work\n this.revAndLocations = revAndLocations;\n },\n pvtProcessPropfindForSubElements: function(doc) {\n if (!this.status.isSuccess())\n throw new Error('Cannot access subElements of ' + this.getURL());\n // FIXME: resolve prefix \"D\" to something meaningful?\n var nodes = new Query(\"/D:multistatus/D:response\").findAll(doc.documentElement)\n var urlQ = new Query('D:href');\n nodes.shift(); // remove first since it points to this WebResource\n var result = [];\n for (var i = 0; i < nodes.length; i++) {\n var urlNode = urlQ.findFirst(nodes[i]);\n var url = urlNode.textContent || urlNode.text; // text is FIX for IE9+\n if (/!svn/.test(url)) continue;// ignore svn dirs\n var child = new WebResource(this.getURL().withPath(url));\n var revNode = nodes[i].getElementsByTagName('version-name')[0];\n if (revNode) child.headRevision = Number(revNode.textContent);\n result.push(child);\n }\n this.subCollections = result.select(function(ea) { return ea.isCollection() });\n this.subDocuments = result.select(function(ea) { return !ea.isCollection() });\n },\n},\n'conversion', {\n convertContent: function(content) {\n // if requiredRevision is set then put will only succeed if the resource has\n // the revision number requiredRevision\n if (this.isBinary()) {\n // from http://code.google.com/p/chromium/issues/detail?id=35705#c6\n var byteValue = function(x) { return x.charCodeAt(0) & 0xff },\n ords = Array.prototype.map.call(content, byteValue),\n ui8a = new Uint8Array(ords);\n content = ui8a.buffer;\n }\n if ((Global.Document && content instanceof Document) ||\n (Global.Node && content instanceof Node)) {\n content = Exporter.stringify(content);\n } else if (content.xml) { // serialization FIX for IE9+\n content = content.xml;\n }\n return content;\n },\n});\n\n\n// make WebResource async\nObject.extend(WebResource, {\n create: function(url) { return new this(url) },\n});\n\nconsole.log('loaded Network.js');\n\n\n}); // end of module","sourceString":"/*\n * Copyright (c) 2006-2009 Sun Microsystems, Inc.\n * Copyright (c) 2008-2011 Hasso Plattner Institute\n *\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * Network.js. Networking capabilities.\n *\n * Note: In a browser-based implementation of our system,\n * most of the necessary networking functionality is \n * inherited from the browser. \n */\n\nmodule('lively.Network').requires('lively.bindings', 'lively.NoMoreModels', 'lively.Data').toRun(function(thisModule) {\n \nObject.subclass('URL', {\n splitter: new RegExp('(http:|https:|file:)' + '(//[^/:]*(:[0-9]+)?)?' + '(/.*)?'),\n pathSplitter: new RegExp(\"([^\\\\?#]*)(\\\\?[^#]*)?(#.*)?\"),\n \n initialize: function(/*...*/) { // same field names as window.location\n dbgOn(!arguments[0]);\n if (Object.isString(arguments[0].valueOf())) {\n var urlString = arguments[0];\n var result = urlString.match(this.splitter);\n if (!result) throw new Error(\"malformed URL string '\" + urlString + \"'\");\n this.protocol = result[1]; \n if (!result[1]) \n throw new Error(\"bad url \" + urlString + \", \" + result);\n this.hostname = result[2] && result[2].substring(2).split(':')[0]; // skip the leading slashes and remove port\n this.port = result[3] && parseInt(result[3].substring(1)); // skip the colon\n\n var fullpath = result[4];\n if (fullpath) {\n result = fullpath.match(this.pathSplitter);\n this.pathname = result[1];\n this.search = result[2];\n this.hash = result[3];\n } else {\n this.pathname = \"/\";\n this.search = \"\";\n this.hash = \"\";\n }\n } else { // spec is either an URL or window.location\n var spec = arguments[0];\n this.protocol = spec.protocol || \"http\";\n this.port = spec.port;\n this.hostname = spec.hostname;\n this.pathname = spec.pathname || \"\";\n if (spec.search !== undefined) this.search = spec.search;\n if (spec.hash !== undefined) this.hash = spec.hash;\n }\n },\n \n inspect: function() {\n return JSON.serialize(this);\n },\n \n toString: function() {\n return this.protocol + \"//\" + this.hostname + (this.port ? \":\" + this.port : \"\") + this.fullPath();\n },\n\n fullPath: function() {\n return this.pathname + (this.search || \"\") + (this.hash || \"\");\n },\n \n isLeaf: function() {\n return !this.fullPath().endsWith('/');\n },\n \n // POSIX style\n dirname: function() {\n var p = this.pathname;\n var slash = p.endsWith('/') ? p.lastIndexOf('/', p.length - 2) : p.lastIndexOf('/');\n return p.substring(0, slash + 1);\n },\n\n filename: function() {\n var p = this.pathname;\n var slash = p.endsWith('/') ? p.lastIndexOf('/', p.length - 2) : p.lastIndexOf('/');\n return p.substring(slash + 1);\n },\n\n normalizedHostname: function() {\n return this.hostname.replace(/^www\\.(.*)/, '$1');\n },\n \n getDirectory: function() {\n return this.withPath(this.dirname());\n },\n asDirectory: function() {\n return this.fullPath().endsWith('/') ?\n this : new URL(this.withoutQuery().toString() + '/');\n },\n \n \n \n \n\n\n withPath: function(path) { \n var result = path.match(this.pathSplitter);\n if (!result) return null;\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: \n result[1], search: result[2], hash: result[3] });\n },\n\n withRelativePath: function(pathString) {\n if (pathString.startsWith('/')) {\n if (this.pathname.endsWith('/'))\n pathString = pathString.substring(1);\n } else {\n if (!this.pathname.endsWith('/'))\n pathString = \"/\" + pathString;\n }\n return this.withPath(this.pathname + pathString);\n },\n \n withFilename: function(filename) {\n if (filename == \"./\" || filename == \".\") // a bit of normalization, not foolproof\n filename = \"\";\n var dirPart = this.isLeaf() ? this.dirname() : this.fullPath();\n return new URL({protocol: this.protocol, port: this.port, \n hostname: this.hostname, pathname: dirPart + filename});\n },\n\n toQueryString: function(record) {\n var results = [];\n Properties.forEachOwn(record, function(p, value) {\n results.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(String(value)));\n });\n return results.join('&');\n },\n\n withQuery: function(record) {\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: this.pathname,\n search: \"?\" + this.toQueryString(record), hash: this.hash});\n },\n \n withoutQuery: function() {\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: this.pathname});\n },\n\n getQuery: function() {\n var s = this.toString();\n if (!s.include(\"?\"))\n return {};\n return s.toQueryParams();\n },\n \n eq: function(url) {\n if (!url) return false;\n return url.protocol == this.protocol &&\n url.port == this.port &&\n url.normalizedHostname() == this.normalizedHostname() &&\n url.pathname == this.pathname &&\n url.search == this.search &&\n url.hash == this.hash;\n },\n isIn: function(origin) {\n return origin.normalizedHostname() == this.normalizedHostname() &&\n this.fullPath().startsWith(origin.fullPath());\n },\n\n\n relativePathFrom: function(origin) {\n function checkPathes(path1, path2) {\n var paths1 = path1.split('/'),\n paths2 = path2.split('/');\n\n paths1.shift();\n paths2.shift();\n\n for (var i = 0; i < paths2.length; i++) {\n if (!paths1[i] || (paths1[i] != paths2[i]))\n break;\n }\n\n // now that's some JavaScript FOO\n var result = '../'.times(paths2.length - i - 1) + paths1.splice(i, paths1.length).join('/');\n return result;\n }\n\n if (origin.normalizedHostname() != this.normalizedHostname())\n throw new Error('hostname differs in relativePathFrom ' + origin + ' vs ' + this);\n var myPath = this.withRelativePartsResolved().pathname,\n otherPath = origin.withRelativePartsResolved().pathname;\n if (myPath == otherPath) return '';\n var relPath = checkPathes(myPath, otherPath);\n if (!relPath)\n throw new Error('pathname differs in relativePathFrom ' + origin + ' vs ' + this);\n return relPath;\n },\n\n svnWorkspacePath: function() {\n // heuristics to figure out the Subversion path\n var path = this.pathname;\n // note that the trunk/branches/tags convention is only a convention\n var index = path.lastIndexOf('trunk');\n if (index < 0) index = path.lastIndexOf('branches');\n if (index < 0) index = path.lastIndexOf('tags');\n if (index < 0) return null;\n return path.substring(index);\n },\n\n svnVersioned: function(repo, revision) {\n var relative = this.relativePathFrom(repo);\n return repo.withPath(repo.pathname + \"!svn/bc/\" + revision + \"/\" + relative);\n },\n \n notSvnVersioned: function() {\n // concatenates the two ends of the url\n // \"http://localhost/livelyBranch/proxy/wiki/!svn/bc/187/test/index.xhtml\"\n // --> \"http://localhost/livelyBranch/proxy/wiki/index.xhtml\"\n return this.withPath(this.fullPath().replace(/(.*)!svn\\/bc\\/[0-9]+\\/(.*)/, '$1$2'));\n },\n\n toLiteral: function() {\n // URLs are literal\n return Object.clone(this);\n },\n \n toExpression: function() {\n // this does not work with the new prototype.js (rev 2808) anymore\n // return 'new URL(JSON.unserialize(\\'' + JSON.serialize(this) + '\\'))';\n return Strings.format('new URL({protocol: \"%s\", hostname: \"%s\", pathname: \"%s\"})',\n this.protocol, this.hostname, this.pathname);\n },\n\n withRelativePartsResolved: function() {\n var urlString = this.toString();\n var result = urlString;\n // resolve ..\n do {\n urlString = result;\n result = urlString.replace(/\\/[^\\/]+\\/\\.\\./, '')\n } while(result != urlString)\n // foo//bar --> foo/bar\n result = result.replace(/([^:])[\\/]+/g, '$1/')\n // foo/./bar --> foo/bar\n result = result.replace(/\\/\\.\\//g, '/')\n return new URL(result)\n },\n getAllParentDirectories: function() {\n var url = this, all = [], max = 100;;\n do {\n max--;\n if (max == 0) throw new Error('Endless loop in URL>>getAllParentDirectories?')\n all.push(url);\n url = url.getDirectory();\n } while (url.fullPath() != '/')\n return all.reverse();\n },\n\n\n});\n\n// create URLs often needed\nObject.extend(URL, {\n source: new URL(document.URL),\n codeBase: (function setURLCodeBase() {\n var url;\n try { url = new URL(Config.codeBase) } catch(e) {\n console.warn('Cannot correctly set URL.codeBase because of ' + e);\n url = new URL(document.URL).getDirectory();\n }\n return url.withRelativePartsResolved();\n })(),\n})\n\nObject.extend(URL, {\n proxy: (function() {\n if (!Config.proxyURL) {\n if (URL.source.protocol.startsWith(\"file\")) \n console.log(\"loading from localhost, proxying won't work\");\n return URL.source.withFilename(\"proxy/\");\n } else {\n var str = Config.proxyURL;\n if (!str.endsWith('/')) str += '/';\n return new URL(str);\n }\n })(), \n});\n\nObject.extend(URL, {\n // FIXME: better names?\n common: {\n wiki: URL.proxy.withFilename('lively-wiki/'),\n repository: URL.proxy.withFilename('lively-kernel/'),\n project: URL.proxy.withFilename('lively-project/'), // currently lively-kernel.org\n domain: new URL(Global.document.location.protocol + '//' + Global.document.location.host)\n },\n});\n\nObject.extend(URL, {\n \n create: function(string) { return new URL(string) },\n\n ensureAbsoluteURL: function(urlString) {\n return /^http.*/.test(urlString) ?\n new URL(urlString) :\n URL.source.notSvnVersioned().getDirectory().withRelativePath(urlString);\n },\n ensureAbsoluteCodeBaseURL: function(urlString) {\n return /^http.*/.test(urlString) ?\n new URL(urlString) :\n URL.codeBase.withRelativePath(urlString);\n },\n\n\n fromLiteral: function(literal) { return new URL(literal) },\n\n makeProxied: function makeProxied(url) {\n url = url instanceof URL ? url : new URL(url);\n var px = this.proxy;\n if (!px) return url;\n if (px.normalizedHostname() != url.normalizedHostname()) // FIXME protocol?\n return px.withFilename(url.hostname + (url.port ? ':' + url.port : '') + url.fullPath());\n if (px.port != url.port)\n return px.withFilename(url.hostname + \":\" + url.port + url.fullPath());\n if (px.hostname != url.hostname) // one has prefix www, the other not\n return new URL({\n protocol: url.protocol,\n port: url.port,\n hostname: px.hostname, // arghhh\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n })\n return url;\n },\n\n});\n\n\nObject.subclass('NetRequestStatus',\n'documentation', {\n documentation: \"nice parsed status information, returned by NetRequest.getStatus when request done\",\n},\n'initialization', {\n initialize: function(method, url, transport) {\n this.method = method;\n this.url = url;\n this.transport = transport;\n this.exception = null;\n },\n},\n'testing', {\n isDone: function() {\n // transport.DONE not defined in all browsers, so use constant\n return this.transport.readyState === 4\n },\n\n isSuccess: function() {\n var code = this.transport.status;\n return code >= 200 && code < 300;\n },\n},\n'accessing', {\n setException: function(e) { this.exception = e },\n\n toString: function() {\n return Strings.format(\"#\", this.method, this.url, this.exception || this.transport.status);\n },\n\n requestString: function() { return this.method + \" \" + decodeURIComponent(this.url) },\n\n code: function() { return this.transport.status },\n\n getResponseHeader: function(name) { return this.transport.getResponseHeader(name) },\n\n});\n\n\nView.subclass('NetRequest', {\n documentation: \"a view that writes the contents of an http request into the model\",\n\n // see XMLHttpRequest documentation for the following:\n Unsent: 0,\n Opened: 1,\n HeadersReceived: 2,\n Loading: 3,\n Done: 4,\n\n formals: [\n \"+Status\", // Updated once, when request is {Done} with the value returned from 'getStatus'.\n \"+ReadyState\", // Updated on every state transition of the request.\n \"+ResponseXML\", // Updated at most once, when request state is {Done}, with the parsed XML document retrieved.\n \"+ResponseText\", // Updated at most once, when request state is {Done}, with the text content retrieved.\n \"+ResponseHeaders\", // Updated at most once, when request state is {Done}, with the response headers retrieved.\n \"StreamContent\",\n \"Progress\",\n ],\n\n initialize: function($super, modelPlug) {\n this.transport = new XMLHttpRequest();\n this.requestNetworkAccess();\n this.transport.onreadystatechange = this.onReadyStateChange.bind(this);\n this.isSync = false;\n this.isBinary = false;\n this.requestHeaders = {};\n $super(modelPlug)\n },\n\n enableProgress: function() {\n console.log(\"enableProgress\")\n // FIXME onprogress leads to strange 101 errors when no internet connection available\n this.transport.onprogress = this.onProgress.bind(this);\n if (!UserAgent.isTouch && this.transport.upload !== undefined) // FIXME crashes Mobile Safari && IE9+\n this.transport.upload.onprogress = this.onProgress.bind(this);\n },\n\n requestNetworkAccess: function() {\n if (Global.netscape && Global.location.protocol == \"file:\") { \n try {\n netscape.security.PrivilegeManager.enablePrivilege(\"UniversalBrowserRead\");\n console.log(\"requested browser read privilege\");\n return true;\n } catch (er) {\n console.log(\"no privilege granted: \" + er);\n return false;\n }\n }\n },\n\n beSync: function() {\n this.isSync = true;\n return this;\n },\n\n beBinary: function() {\n this.isBinary = true;\n return this;\n },\n\n onReadyStateChange: function() {\n this.setReadyState(this.getReadyState());\n if (this.getReadyState() === this.Loading) { // For comet networking\n this.setStatus(this.getStatus());\n var hasResponseText = false;\n try {\n // FIX for IE9+ if responseText is not available yet\n hasResponseText = this.transport.responseText;\n } catch (e) { console.warn('Request\\'s response text is not available yet.'); }\n if (hasResponseText !== undefined) {\n var allContent = this.getResponseText(),\n newStart = this._streamContentLength ? this._streamContentLength : 0,\n newContent = allContent.substring(newStart);\n newContent = /^([^\\n\\r]*)/.exec(newContent)[1]; // remove line breaks\n this.setStreamContent(newContent);\n this._streamContentLength = allContent.length;\n }\n }\n if (this.getReadyState() === this.Done) {\n this.setStatus(this.getStatus());\n if (this.transport.responseText !== undefined)\n this.setResponseText(this.getResponseText());\n if (this.transport.responseXML !== undefined) \n this.setResponseXML(this.getResponseXML());\n if (this.transport.getAllResponseHeaders() !== undefined)\n this.setResponseHeaders(this.getResponseHeaders());\n this.disconnectModel(); // autodisconnect?\n }\n },\n\n onProgress: function(progress) { this.setProgress(progress) },\n \n setRequestHeaders: function(record) {\n Properties.forEachOwn(record, function(prop, value) {\n this.requestHeaders[prop] = value;\n }, this);\n },\n\n setContentType: function(string) {\n // valid before send but after open?\n this.requestHeaders[\"Content-Type\"] = string;\n },\n\n getReadyState: function() { return this.transport.readyState },\n\n getResponseText: function() { return this.transport.responseText || \"\" },\n\n getResponseXML: function() { return this.transport.responseXML || \"\" },\n\n getResponseHeaders: function() {\n var headerString = this.transport.getAllResponseHeaders(),\n headerObj = {};\n headerString.split('\\r\\n').each(function(ea) {\n var splitter = ea.indexOf(':');\n if (splitter != -1) {\n headerObj[ea.slice(0, splitter)] = ea.slice(splitter + 1).trim();\n // as headers should be case-insensitiv, add lower case headers (for Safari)\n headerObj[ea.slice(0, splitter).toLowerCase()] = ea.slice(splitter + 1).trim();\n }\n });\n return headerObj;\n },\n\n getStatus: function() { return new NetRequestStatus(this.method, this.url, this.transport) },\n\n request: function(method, url, content) {\n try {\n this.url = url;\n this.method = method.toUpperCase(); \n this.transport.open(this.method, url.toString(), !this.isSync);\n Properties.forEachOwn(this.requestHeaders, function(p, value) {\n this.transport.setRequestHeader(p, value);\n }, this);\n if (!this.isBinary)\n this.transport.send(content || '');\n else\n this.transport.sendAsBinary(content || '');\n if (Global.isFirefox && this.isSync) // mr: FF does not use callback when sync \n this.onReadyStateChange();\n return this;\n } catch (er) {\n var status = this.getStatus();\n status.setException(er);\n this.setStatus(status);\n throw er;\n }\n },\n\n get: function(url) { return this.request(\"GET\", URL.makeProxied(url), null) },\n\n put: function(url, content) { return this.request(\"PUT\", URL.makeProxied(url), content) },\n\n post: function(url, content) { return this.request(\"POST\", URL.makeProxied(url), content) },\n\n propfind: function(url, depth, content) {\n this.setContentType(\"text/xml\"); // complain if it's set to something else?\n if (depth != 0 && depth != 1)\n depth = \"infinity\";\n this.setRequestHeaders({ \"Depth\" : depth });\n return this.request(\"PROPFIND\", URL.makeProxied(url), content);\n },\n\n report: function(url, content) { return this.request(\"REPORT\", URL.makeProxied(url), content) },\n\n mkcol: function(url, content) { return this.request(\"MKCOL\", URL.makeProxied(url), content) },\n\n del: function(url) { return this.request(\"DELETE\", URL.makeProxied(url)) },\n\n copy: function(url, destUrl, overwrite) {\n this.setRequestHeaders({ \"Destination\" : destUrl.toString() });\n if (overwrite) this.setRequestHeaders({ \"Overwrite\" : 'T' });\n return this.request(\"COPY\", URL.makeProxied(url));\n },\n move: function(url, destUrl, overwrite) {\n this.setRequestHeaders({ \"Destination\" : destUrl.toString() });\n if (overwrite) this.setRequestHeaders({ \"Overwrite\" : 'T' });\n return this.request(\"MOVE\", URL.makeProxied(url));\n },\n\n\n lock: function(url, owner) {\n this.setRequestHeaders({Timeout: 'Infinite, Second-30'});\n var content = Strings.format(' \\n\\\n \\n\\\n \\n\\\n \\n\\\n %s \\n\\\n ', owner || 'unknown user');\n return this.request(\"LOCK\", URL.makeProxied(url), content);\n },\n \n unlock: function(url, lockToken, force) {\n if (force) {\n var req = new NetRequest().beSync().propfind(url);\n var xml = req.getResponseXML() || stringToXML(req.getResponseText());\n var q = new Query('/descendant::*/D:lockdiscovery/descendant::*/D:locktoken/D:href');\n var tokenElement = q.findFirst(xml);\n if (!tokenElement) // no lock token, assume that resource isn't locked\n return req;\n lockToken = tokenElement.textContent;\n }\n this.setRequestHeaders({'Lock-Token': '<' + lockToken + '>'});\n return this.request(\"UNLOCK\", URL.makeProxied(url));\n },\n head: function(url) { return this.request(\"HEAD\", URL.makeProxied(url), null) },\n\n toString: function() { return \"#\" },\n\n});\n\n\n// extend your objects with this trait if you don't want to deal with error reporting yourself.\nNetRequestReporterTrait = {\n setRequestStatus: function(status) {\n // update the model if there is one\n if (this.getModel && this.getModel() && this.getModel().setRequestStatus)\n this.getModel().setRequestStatus(status);\n \n var world = WorldMorph.current();\n // some formatting for alerting. could be moved elsewhere\n var request = status.requestString();\n var tooLong = 80;\n if (request.length > tooLong) {\n var arr = [];\n for (var i = 0; i < request.length; i += tooLong) {\n arr.push(request.substring(i, i + tooLong));\n }\n request = arr.join(\"..\\n\");\n }\n // error reporting\n if (status.exception) {\n world.alert(\"exception \" + status.exception + \" accessing\\n\" + request);\n } else if (status.code() >= 300) {\n if (status.code() == 301) {\n // FIXME reissue request? need the 'Location' response header for it\n world.alert(\"HTTP/301: Moved to \" + status.getResponseHeader(\"Location\") + \"\\non \" + request);\n } else if (status.code() == 401) {\n world.alert(\"not authorized to access\\n\" + request); \n // should try to authorize\n } else if (status.code() == 412) {\n console.log(\"the resource was changed elsewhere\\n\" + request);\n } else if (status.code() == 423) {\n world.alert(\"the resource is locked\\n\" + request);\n } else {\n world.alert(\"failure to\\n\" + request + \"\\ncode \" + status.code());\n }\n } else console.log(\"status \" + status.code() + \" on \" + status.requestString());\n }\n};\n\n// convenience base class with built in handling of errors\nObject.subclass('NetRequestReporter', NetRequestReporterTrait);\n\n\n\nView.subclass('Resource'/*, NetRequestReporterTrait*/, {\n documentation: \"a remote document that can be fetched, stored and queried for metadata\",\n // FIXME: should probably encapsulate content type\n\n formals: [\"ContentDocument\", //:XML\n \"ContentText\", //:String\n \"URL\", // :URL\n \"RequestStatus\", // :NetRequestStatus\n \"ResponseHeaders\",\n \"Progress\",\n ],\n\n createNetRequest: function() {\n return new NetRequest({\n model: this,\n setResponseXML: \"setContentDocument\",\n setResponseText: 'setContentText',\n setStatus: \"setRequestStatus\",\n setResponseHeaders: \"setResponseHeaders\",\n setProgress: 'setProgress'\n });\n },\n \n initialize: function(plug, contentType) {\n this.contentType = contentType;\n this.connectModel(plug);\n },\n\n deserialize: Functions.Empty, // stateless besides the model and content type\n\n toString: function() {\n return \"#\";\n },\n\n removeNetRequestReporterTrait: function() {\n delete this.setRequestStatus;\n this.setRequestStatus = function(status) {\n if (this.getModel && this.getModel() && this.getModel().setRequestStatus)\n this.getModel().setRequestStatus(status);\n }.bind(this);\n },\n \n updateView: function(aspect, source) {\n var p = this.modelPlug;\n if (!p) return;\n switch (aspect) {\n case p.getURL:\n this.onURLUpdate(this.getURL()); // request headers?\n break;\n }\n },\n\n onURLUpdate: function(url) {\n return this.fetch(url);\n },\n\n fetch: function(sync, optRequestHeaders) {\n // fetch the document content itself\n var req = this.createNetRequest();\n if (sync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n if (this.isShowingProgress) req.enableProgress();\n req.get(this.getURL());\n return req;\n },\n\n fetchProperties: function(optSync, optRequestHeaders) {\n var req = this.createNetRequest();\n if (optSync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.propfind(this.getURL(), 1);\n return req;\n },\n\n store: function(content, optSync, optRequestHeaders) {\n // FIXME: check document type\n if ((Global.Document && content instanceof Document) || (Global.Node && content instanceof Node)) {\n content = Exporter.stringify(content);\n }\n var req = this.createNetRequest();\n if (optSync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n if (this.isShowingProgress) req.enableProgress();\n req.put(this.getURL(), content);\n return req;\n },\n\n});\n\nResource.subclass('SVNResource', {\n\n formals: Resource.prototype.formals.concat(['Metadata', 'HeadRevision']),\n\n createNetRequest: function() {\n return new NetRequest({\n model: this,\n setResponseXML: \"setContentDocument\",\n setResponseText: 'setContentText',\n setStatus: \"setRequestStatus\",\n setResponseHeaders: \"setResponseHeaders\",\n setProgress: 'setProgress'\n });\n },\n \n initialize: function($super, repoUrl, plug, contentType) {\n this.repoUrl = repoUrl.toString();\n $super(plug, contentType);\n },\n\n getLocalUrl: function() {\n return new URL(this.getURL()).relativePathFrom(new URL(this.repoUrl)).toString();\n },\n\n fetchHeadRevision: function(optSync) {\n var req = new NetRequest({\n model: this,\n setResponseXML: \"pvtSetHeadRevFromDoc\",\n setStatus: \"setRequestStatus\",\n setProgress: 'setProgress'\n });\n if (optSync) req.beSync();\n req.propfind(this.getURL(), 1);\n return req;\n },\n\n fetch: function($super, optSync, optRequestHeaders, rev) {\n var req;\n if (rev) {\n this.withBaselineUriDo(rev, function() { req = $super(optSync, optRequestHeaders) });\n } else {\n req = $super(optSync, optRequestHeaders);\n };\n return req;\n },\n \n store: function($super, content, optSync, optRequestHeaders, optHeadRev) {\n // if optHeadRev is not undefined than the store will only succeed\n // if the head revision of the resource is really optHeadRev\n if (optHeadRev) {\n var headers = optRequestHeaders ? optRequestHeaders : {};\n //determine local path of resource\n //var local = new URL(this.getURL()).relativePathFrom(new URL(this.repoUrl));\n var local = this.getURL().toString().substring(this.repoUrl.toString().length);\n if (local.startsWith('/')) local = local.slice(1); // remove leading slash\n var ifHeader = Strings.format('([\"%s//%s\"])', optHeadRev, local);\n console.log('Creating if header: ' + ifHeader);\n Object.extend(headers, {'If': ifHeader});\n }\n return $super(content, optSync, headers);\n },\n \n del: function(sync, optRequestHeaders) {\n var req = new NetRequest(this.createNetRequest());\n if (sync) req.beSync();\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.del(this.getURL());\n return req;\n },\n\n fetchProperties: function($super, optSync, optRequestHeaders, rev) {\n var req;\n if (rev) {\n this.withBaselineUriDo(rev, function() { req = $super(optSync, optRequestHeaders) });\n } else {\n req = $super(optSync, optRequestHeaders);\n };\n return req;\n },\n\n fetchMetadata: function(optSync, optRequestHeaders, startRev, endRev, reportDepth) {\n // get the whole history if startRev is undefined\n // FIXME: in this case the getHeadRevision will be called synchronous\n if (!startRev) {\n this.fetchHeadRevision(true);\n startRev = this.getHeadRevision();\n }\n this.reportDepth = reportDepth; // FIXME quick hack, needed in 'pvtScanLog...'\n var req = new NetRequest({\n model: this,\n setResponseXML: \"pvtScanLogReportForVersionInfos\",\n setStatus: \"setRequestStatus\",\n setProgress: 'setProgress'\n });\n if (optSync) req.beSync();\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.report(this.getURL(), this.pvtRequestMetadataXML(startRev, endRev));\n return req;\n },\n\n pvtSetHeadRevFromDoc: function(xml) {\n if (!xml) return;\n /* The response contains the properties of the specified file or directory,\n e.g. the revision (= version-name) */\n var revisionNode = xml.getElementsByTagName('version-name')[0];\n if (!revisionNode) return;\n this.setHeadRevision(Number(revisionNode.textContent));\n },\n\n pvtScanLogReportForVersionInfos: function(logReport) {\n // FIXME Refactor: method object?\n var errorQ = new Query('D:error//m:human-readable');\n \n var depth = this.reportDepth; \n var logItemQ = new Query('//S:log-item');\n var versionInfos = [];\n //var repoUrl = new URL(this.repoUrl);\n var repoUrl = this.repoUrl;\n\n var result = logItemQ.findAll(logReport);\n for (var i = 0; i < result.length; i++) {\n var logElement= result[i];\n var spec = {};\n for (var j = 0; j < logElement.childNodes.length; j++) {\n var logProp = logElement.childNodes[j];\n switch(logProp.tagName) {\n case 'D:version-name':\n spec.rev = Number(logProp.textContent); break;\n case 'D:creator-displayname':\n spec.author = logProp.textContent; break;\n case 'S:date':\n spec.date = logProp.textContent; break;\n case 'S:added-path':\n case 'S:modified-path':\n case 'S:deleted-path':\n case 'S:replaced-path':\n var relPath = logProp.textContent;\n if (depth && relPath.split('/').length-1 > depth)\n continue;\n //relPath = relPath.slice(1); // remove trailing /\n if (repoUrl.endsWith(relPath))\n spec.url = repoUrl; // hmmm???\n else\n spec.url = repoUrl.toString() + relPath.slice(1); \n // console.log('Created spec.url:' + spec.url);\n if (!spec.changes) spec.changes = [];\n var type = logProp.tagName.split('-').first();\n var url = logProp.tagName.include('modified-path') ? logProp.textContent : null;\n spec.changes.push({type: type, url : url});\n break;\n default:\n }\n };\n if (!spec.url) continue;\n spec.url = new URL(spec.url);\n versionInfos.push(new SVNVersionInfo(spec));\n };\n // newest version first\n versionInfos = versionInfos.sortBy(function(vInfo) { return vInfo.rev }).reverse();\n this.setMetadata(versionInfos);\n },\n \n pvtScanLogReportForVersionInfosTrace: function(logReport) {\n lively.lang.Execution.trace(this.pvtScanLogReportForVersionInfos.curry(logReport).bind(this));\n },\n\n pvtRequestMetadataXML: function(startRev, endRev) {\n return Strings.format(\n '' + \n '%s' +\n '%s' +\n '' +\n '' +\n '' +\n '', startRev, endRev || 0);\n },\n pvtRequestLocationXML: function(pegRev, pastRev) {\n return Strings.format(\n '' +\n '' +\n '%s' +\n '%s' +\n '', pegRev, pastRev);\n },\n\n\n withBaselineUriDo: function(rev, doFunc) {\n var tempUrl = this.getURL();\n this.setURL(this.createVersionURLString(rev));\n doFunc();\n this.setURL(tempUrl);\n },\n \n createVersionURLString: function(rev) {\n return this.repoUrl + '/!svn/bc/' + rev + '/' + this.getLocalUrl();\n },\n\n});\n\nObject.subclass('SVNVersionInfo', {\n\n documentation: 'This object wraps svn infos from report or propfind requests',\n\n initialize: function(spec) {\n // possible properties of spec:\n // rev, date, author, url, change, content\n for (name in spec) {\n var val = spec[name];\n if (name == 'date') {\n if (Object.isString(val)) {\n this.date = this.parseUTCDateString(val);\n } else if (val instanceof Date) {\n this.date = val;\n }\n } else {\n this[name] = val;\n }\n }\n if (!this.author)\n this.author = '(no author)';\n if (!this.date)\n this.date = new Date();\n },\n\n parseUTCDateString: function(dateString) {\n var yearElems = dateString.slice(0,10).split('-').collect(function(ea) {return Number(ea)});\n var timeElems = dateString.slice(11,19).split(':').collect(function(ea) {return Number(ea)});\n return new Date(yearElems[0], yearElems[1]-1, yearElems[2], timeElems[0], timeElems[1], timeElems[2])\n },\n\n toString: function() {\n // does not work when evaluate {new SVNVersionInfo() + \"\"} although toStrings() works fine. *grmph*\n // string = Strings.format('%s, %s, %s, Revision %s',\n // this.author, this.date.toTimeString(), this.date.toDateString(), this.rev);\n // string = new String(string);\n // string.orig = this;\n // TODO work around Serialization bug\n var timeString = this.date.toTimeString ? \n this.date.toTimeString() :\n 'no time';\n\n var dateString = this.date.toDateString ? \n this.date.toDateString() :\n 'no date';\n\n return Strings.format('%s, %s, %s, Rev. %s',\n this.author, timeString, dateString, this.rev);\n },\n \n toExpression: function() {\n return Strings.format('new SVNVersionInfo({rev: %s, url: %s, date: %s, author: %s, change: %s, fileSize: %s})',\n this.rev, toExpression(this.url), toExpression(this.date),\n toExpression(this.author), toExpression(this.change), toExpression(this.fileSize));\n },\n \n});\nObject.extend(SVNVersionInfo, {\n fromPropfindNode: function(node) {\n // FIXME cleanup --> Similar code exists in lively.Network -> pvtSetMeta...sth\n // rk 2/22/10: the namespace tag lp1 is required by Firefox\n var prefix = UserAgent.fireFoxVersion ? 'lp1:' : '';\n\n var versionTag = node.getElementsByTagName(prefix + 'version-name')[0];\n var rev = versionTag ? Number(versionTag.textContent) : 0;\n\n var dateTag = node.getElementsByTagName(prefix + 'getlastmodified')[0];\n var date = new Date(dateTag ? dateTag.textContent : 'Mon, 01 Jan 1900 00:00:00 GMT');\n\n var authorTag = node.getElementsByTagName(prefix + 'creator-displayname')[0];\n var author = authorTag ? authorTag.textContent : 'anonymous';\n\n var sizeTag = node.getElementsByTagName(prefix + 'getcontentlength')[0];\n var fileSize = sizeTag ? Number(sizeTag.textContent) : -1;\n\n // FIXME: resolve prefix \"D\" to something meaningful?\n var nameQ = new Query(\"D:href\");\n var result = nameQ.findFirst(node);\n var name = result && decodeURIComponent(result.textContent);\n var slash = name.endsWith('/') ? name.lastIndexOf('/', name.length - 2) : name.lastIndexOf('/');\n var shortName = name.substring(slash + 1);\n\n return new SVNVersionInfo({rev: rev, date: date, author: author, shortName: shortName, url: name, fileSize: fileSize});\n},\n});\n\nObject.subclass('WebResource',\n'documentation', {\n connections: ['status', 'content', 'contentDocument', 'isExisting', 'subCollections', 'subDocuments', 'progress', 'readystate', 'versions', 'headRevision'],\n},\n'initializing', {\n initialize: function(url) {\n this._url = new URL(url);\n this.beSync();\n this.reset();\n },\n\n reset: function() {\n this.beText();\n this.status = null;\n this.content = null;\n this.contentDocument = null;\n this.isExisting = null;\n this.subResources = null;\n this.requestHeaders = {};\n this.responseHeaders = {};\n },\n\n createResource: function() {\n var self = this;\n var resource = new SVNResource(\n this.getRepoURL().toString(),\n {\n model: {\n url: self.getURL().toString(),\n getURL: function() { return this.url },\n setURL: function(url) { this.url = url },\n setRequestStatus: function(reqStatus) { self.status = reqStatus; self.isExisting = reqStatus.isSuccess() },\n setContentText: function(string) { self.content = string },\n setContentDocument: function(doc) { self.contentDocument = doc },\n setResponseHeaders: function(obj) { self.responseHeaders = obj },\n setProgress: function(progress) { self.progress = progress },\n setHeadRevision: function(rev) { self.headRevision = rev },\n getHeadRevision: function() { return self.headRevision },\n setMetadata: function(metadata) { self.versions = metadata },\n },\n getURL: 'getURL',\n setURL: 'setURL',\n setRequestStatus: 'setRequestStatus',\n setContentText: 'setContentText',\n setContentDocument: 'setContentDocument',\n setResponseHeaders: 'setResponseHeaders',\n setProgress: 'setProgress',\n setHeadRevision: 'setHeadRevision',\n getHeadRevision: 'getHeadRevision',\n setMetadata: 'setMetadata',\n });\n resource.isShowingProgress = this.isShowingProgress;\n // resource.removeNetRequestReporterTrait();\n return resource\n },\n\n createNetRequest: function() {\n var self = this;\n var request = new NetRequest({\n model: {\n setStatus: function(reqStatus) { self.status = reqStatus; self.isExisting = reqStatus.isSuccess() },\n setResponseText: function(string) { self.content = string },\n setResponseXML: function(doc) { self.contentDocument = doc },\n setResponseHeaders: function(obj) { self.responseHeaders = obj },\n setReadyState: function(readyState) { self.readystate = readyState },\n setProgress: function(progress) { self.progress = progress },\n setStreamContent: function(content) { self.content = content; self.streamContent = content },\n },\n setStatus: 'setStatus',\n setResponseText: 'setResponseText',\n setResponseXML: 'setResponseXML',\n setResponseHeaders: 'setResponseHeaders',\n setReadyState: 'setReadyState',\n setProgress: 'setProgress',\n setStreamContent: 'setStreamContent',\n });\n if (this.isSync())\n request.beSync();\n if (this.requestHeaders)\n request.requestHeaders = this.requestHeaders;\n return request;\n },\n createXMLHTTPRequest: function(method) {\n // objects to work with\n method = method.toUpperCase();\n var webR = this,\n url = this.getURL(),\n requestHeaders = this.requestHeaders,\n isSync = this.isSync(),\n req = new XMLHttpRequest(),\n loadStates = {UNSENT: 0, OPENED: 1, HEADERSRECEIVED: 2, LOADING: 3, DONE: 4};\n\n // helper functions\n function createStatus () { return new NetRequestStatus(method, url, req) };\n function extractHeaders(req) {\n var headerString = req.getAllResponseHeaders(),\n headerObj = {};\n headerString.split('\\r\\n').forEach(function(ea) {\n var splitter = ea.indexOf(':');\n if (splitter != -1) {\n headerObj[ea.slice(0, splitter)] = ea.slice(splitter + 1).trim();\n // as headers should be case-insensitiv, add lower case headers (for Safari)\n headerObj[ea.slice(0, splitter).toLowerCase()] = ea.slice(splitter + 1).trim();\n }\n });\n return headerObj;\n };\n function onReadyStateChange() {\n var status = createStatus();\n webR.status = status;\n if (req.readyState == loadStates.DONE) {\n webR.isExisting = status.isSuccess();\n if (req.responseText !== undefined)\n webR.content = req.responseText;\n if (req.responseXML !== undefined)\n webR.contentDocument = req.responseXML;\n if (req.getAllResponseHeaders() !== undefined)\n webR.responseHeaders = extractHeaders(req)\n }\n\n // setReadyState: function(readyState) { self.readystate = readyState },\n // setProgress: function(progress) { self.progress = progress },\n // setStreamContent: function(content) { self.content = content },\n };\n\n function onProgress(evt) {\n webR.progressEvent = evt;\n // var percentComplete = (e.position / e.totalSize)*100;\n };\n // register event handlers\n req.onreadystatechange = onReadyStateChange;\n\n if (method === 'PUT' || method === 'POST') {\n req.upload.addEventListener(\"progress\", onProgress, false);\n // req.upload.addEventListener(\"load\", transferComplete, false);\n // req.upload.addEventListener(\"error\", transferFailed, false);\n // req.upload.addEventListener(\"abort\", transferCanceled, false);\n } else {\n req.addEventListener(\"progress\", onProgress, false);\n }\n\n // to be more or less compatible with the netRequest object -- fixme should simplified\n return {\n request: function(content) {\n var proxiedUrl = URL.makeProxied(url);\n req.open(method, proxiedUrl.toString(), !isSync);\n Properties.forEachOwn(requestHeaders, function(p, value) {\n req.setRequestHeader(p, value);\n });\n var sendSelector = webR.isBinary() && req.sendAsBinary ? 'sendAsBinary' : 'send';\n try {\n req[sendSelector](content);\n if (Global.isFirefox && isSync) // mr: FF does not use callback when sync \n onReadyStateChange();\n } catch (er) {\n webR.status = createStatus();\n throw er;\n }\n }\n }\n },\n\n},\n'private', {\n temporaryChangeURLAndDo: function(otherURL, func) {\n var temp = this._url;\n this._url = otherURL;\n var result = func.call(this)\n this._url = temp;\n return result;\n },\n},\n'accessing', {\n getURL: function() { return this._url; },\n getRepoURL: function() {\n return URL.codeBase // FIXME repo!\n },\n\n getName: function() { return this.getURL().filename(); },\n isCollection: function() { return !this.getURL().isLeaf() },\n},\n'configuration', {\n isSync: function() { return this._isSync; },\n beSync: function() { this._isSync = true; return this; },\n beAsync: function() { this._isSync = false; return this; },\n setSync: function(bool) { this._isSync = bool; return this; },\n\n isBinary: function() { return this._isBinary; },\n beBinary: function() { this._isBinary = true; return this; },\n beText: function() { this._isBinary = false; return this; },\n\n\n forceUncached: function() {\n this._url = this.getURL().withQuery({time: new Date().getTime()});\n return this;\n },\n},\n'progress', {\n enableShowingProgress: function() { this.isShowingProgress = true; return this },\n createProgressBar: function(label) {\n // this.enableShowingProgress();\n // var labelFunc = Object.isString(labelOrFunc) ?\n // function() { return labelOrFunc } : labelOrFunc;\n\t\tif (!Config.isNewMorphic) return this;\n var progressBar = lively.morphic.World.current().addStatusProgress(label);\n connect(this, 'progressEvent', progressBar, 'setValue',\n {converter: function(rpe) { return (rpe.loaded / rpe.total) }});\n connect(this, 'status', progressBar, 'remove', {\n updater: function($upd, status) { if (status.isDone()) $upd() }});\n return this;\n },\n\n},\n'DEPRECATED', {\n copyTo: function(url) {\n var otherResource = new WebResource(url);\n otherResource.create();\n new NetRequest().copy(this.getURL(), url, true /*overwrite*/);\n return otherResource;\n },\n\n},\n'debugging', {\n statusMessage: function(successMsg, failureMessage, onlyOnce) {\n this.successMsg = successMsg;\n this.failureMessage = failureMessage;\n var world = Config.isNewMorphic ? lively.morphic.World.current() : WorldMorph.current();\n if (!world) return this;\n lively.bindings.connect(this, 'status', world, 'setStatusMessage', {\n updater: function($upd, status) {\n if (!status.isDone()) return;\n var m1 = this.sourceObj.successMsg,\n m2 = this.sourceObj.failureMessage;\n if (status.isSuccess() && m1) $upd(m1, Color.green, 4)\n else if (m2) $upd(m2 + ' (code ' + status.code() + ')', Color.red, 6)\n },\n removeAfterUpdate: onlyOnce\n });\n return this\n },\n\n toString: function() { return 'WebResource(' + this.getURL() + ')' },\n},\n'request headers', {\n\n setRequestHeaders: function(headers) {\n this.requestHeaders = headers;\n return this;\n },\n addHeaderForRequiredRevision: function(rev) {\n if (!rev) return;\n var local = this.getURL().relativePathFrom(this.getRepoURL()),\n ifHeader = Strings.format('([\"%s//%s\"])', rev, local);\n console.log('Creating if header: ' + ifHeader);\n this.requestHeaders[\"If\"] = ifHeader;\n },\n addContentType: function(contentType) {\n this.requestHeaders[\"Content-Type\"] = contentType || '';\n },\n\n},\n'HTTP methods', {\n\n get: function(rev, contentType, urlOfPastVersion) {\n if (!rev) {\n var req = this.createNetRequest()\n if (contentType) req.setContentType(contentType);\n req.get(this.getURL());\n return this;\n }\n if (urlOfPastVersion) {\n this.temporaryChangeURLAndDo(urlOfPastVersion, function() {\n var resource = this.createResource();\n if (contentType) resource.contentType = contentType;\n resource.fetch(this.isSync(), this.requestHeaders, rev);\n })\n return this;\n }\n // use a helper so that connections to this are not triggered when\n // location XML is written to content/contentDocument\n var helper = new WebResource(this.getURL());\n helper.setSync(this.isSync())\n connect(helper, 'revAndLocations', this, 'get', {\n updater: function($upd, revAndPath) { $upd(rev, contentType, revAndPath[rev]) },\n varMapping: {rev: rev, contentType: contentType}});\n helper.getLocationInRev(rev, this.headRevision);\n return this;\n },\n get2: function(rev, contentType, urlOfPastVersion) {\n if (!rev) {\n if (contentType) this.addContentType(contentType);\n var req = this.createXMLHTTPRequest('GET');\n req.request();\n return this;\n }\n if (urlOfPastVersion) {\n this.temporaryChangeURLAndDo(urlOfPastVersion, function() {\n var resource = this.createResource();\n if (contentType) resource.contentType = contentType;\n resource.fetch(this.isSync(), this.requestHeaders, rev);\n })\n return this;\n }\n // use a helper so that connections to this are not triggered when\n // location XML is written to content/contentDocument\n var helper = new WebResource(this.getURL());\n helper.setSync(this.isSync())\n connect(helper, 'revAndLocations', this, 'get', {\n updater: function($upd, revAndPath) { $upd(rev, contentType, revAndPath[rev]) },\n varMapping: {rev: rev, contentType: contentType}});\n helper.getLocationInRev(rev, this.headRevision);\n return this;\n },\n\n\n put_DEPRECATED: function(content, contentType, requiredRevision) {\n this.content = this.convertContent(content);\n var resource = this.createResource();\n if (contentType)\n resource.contentType = contentType;\n resource.store(content, this.isSync(), this.requestHeaders, requiredRevision);\n\n return this;\n },\n put: function(content, contentType, requiredRevision) {\n this.content = this.convertContent(content || '');\n if (requiredRevision) this.addHeaderForRequiredRevision(requiredRevision);\n if (contentType) this.addContentType(contentType)\n var req = this.createXMLHTTPRequest('PUT');\n req.request(this.content);\n return this;\n },\n\n\n create: function() {\n if (!this.isCollection()) return this.put('');\n var request = this.createNetRequest();\n request.mkcol(this.getURL());\n return this;\n },\n\n del: function() {\n var request = this.createNetRequest();\n request.del(this.getURL());\n return this;\n },\n\n post: function(content, contentType) {\n this.content = content;\n var request = this.createNetRequest();\n if (contentType)\n request.setContentType(contentType);\n request.post(this.getURL(), content);\n return this;\n },\n \n exists: function() {\n // for async use this.get().isExisting directly\n try {\n return this.beSync().head().status.isSuccess()\n } catch(e) {\n return false;\n }\n },\n head: function() {\n var request = this.createNetRequest();\n request.head(this.getURL());\n return this;\n },\n\n propfind: function(depth) {\n if (!depth) depth = 1;\n var req = this.createNetRequest();\n req.propfind(this.getURL(), depth);\n return this;\n },\n report: function(content) {\n var req = this.createNetRequest();\n req.report(this.getURL(), content);\n return this; \n },\n\n\n getSubElements: function(depth) {\n\n lively.bindings.connect(this, 'contentDocument', this, 'pvtProcessPropfindForSubElements', {removeAfterUpdate: true});\n this.propfind(depth);\n return this;\n },\n\n copyTo: function(url) {\n var request = this.createNetRequest();\n request.copy(this.getURL(), url, true /*overwrite*/);\n return this;\n },\n moveTo: function(url) {\n var request = this.createNetRequest();\n request.move(this.getURL(), url, true /*overwrite*/);\n return this;\n },\n\n \n getVersions: function(startRev, endRev) {\n var res = this.createResource();\n //connect(this, 'contentDocument', this, 'pvtProcessPropfindForGetVersions', {removeAfterUpdate: true});\n if (!startRev) {\n if (this.headRevision) {\n startRev = this.headRevision;\n } else {\n connect(this, 'headRevision', this, 'getVersions', {removeAfterUpdate: true});\n // FIXME if only endRev is passed in, it's forgotten here...\n this.getHeadRevision();\n return this;\n }\n }\n res.fetchMetadata(this.isSync(), this.requestHeaders, startRev, endRev, null);\n return this;\n },\n\n getHeadRevision: function() {\n var res = this.createResource();\n res.fetchHeadRevision(this.isSync());\n return this;\n },\n\n getProperties: function(optRequestHeaders, rev) {\n var res = this.createResource();\n res.fetchProperties(this.isSync(), optRequestHeaders, rev);\n return this;\n },\n ensureExistance: function() {\n var url = this.getURL();\n url.getAllParentDirectories().forEach(function(ea) {\n var webR = new WebResource(ea);\n if (!webR.exists()) {\n console.log('creating ' + webR.getURL());\n webR.create();\n }\n })\n return this;\n },\n},\n'version specific', {\n getLocationInRev: function(rev) {\n var self = this,\n reportRequester = {\n action: function(headRev) {\n var content = Strings.format(\n '' +\n '' +\n '%s' +\n '%s' +\n '', headRev, rev);\n connect(self, 'contentDocument', self, 'pvtProcessForLocationRequest', {\n removeAfterUpdate: true});\n self.report(content);\n }\n }\n if (this.headRevision) {\n reportRequester.action(this.headRevision)\n } else {\n connect(self, 'headRevision', reportRequester, 'action', {removeAfterUpdate: true});\n this.getHeadRevision();\n }\n return this;\n },\n\n},\n'XML querying', {\n pvtProcessForLocationRequest: function(doc) {\n var revAndLocations = {},\n locations = doc.getElementsByTagName('location');\n for (var i = 0; i < locations.length; i++) {\n var rev = locations[i].getAttribute('rev'),\n path = locations[i].getAttribute('path');\n revAndLocations[rev] = this.getRepoURL().withFilename(path);\n }\n // set it when retrieved so that connections work\n this.revAndLocations = revAndLocations;\n },\n pvtProcessPropfindForSubElements: function(doc) {\n if (!this.status.isSuccess())\n throw new Error('Cannot access subElements of ' + this.getURL());\n // FIXME: resolve prefix \"D\" to something meaningful?\n var nodes = new Query(\"/D:multistatus/D:response\").findAll(doc.documentElement)\n var urlQ = new Query('D:href');\n nodes.shift(); // remove first since it points to this WebResource\n var result = [];\n for (var i = 0; i < nodes.length; i++) {\n var urlNode = urlQ.findFirst(nodes[i]);\n var url = urlNode.textContent || urlNode.text; // text is FIX for IE9+\n if (/!svn/.test(url)) continue;// ignore svn dirs\n var child = new WebResource(this.getURL().withPath(url));\n var revNode = nodes[i].getElementsByTagName('version-name')[0];\n if (revNode) child.headRevision = Number(revNode.textContent);\n result.push(child);\n }\n this.subCollections = result.select(function(ea) { return ea.isCollection() });\n this.subDocuments = result.select(function(ea) { return !ea.isCollection() });\n },\n},\n'conversion', {\n convertContent: function(content) {\n // if requiredRevision is set then put will only succeed if the resource has\n // the revision number requiredRevision\n if (this.isBinary()) {\n // from http://code.google.com/p/chromium/issues/detail?id=35705#c6\n var byteValue = function(x) { return x.charCodeAt(0) & 0xff },\n ords = Array.prototype.map.call(content, byteValue),\n ui8a = new Uint8Array(ords);\n content = ui8a.buffer;\n }\n if ((Global.Document && content instanceof Document) ||\n (Global.Node && content instanceof Node)) {\n content = Exporter.stringify(content);\n } else if (content.xml) { // serialization FIX for IE9+\n content = content.xml;\n }\n return content;\n },\n});\n\n\n// make WebResource async\nObject.extend(WebResource, {\n create: function(url) { return new this(url) },\n});\n\nconsole.log('loaded Network.js');\n\n\n}); // end of module","doNotSerialize":["$$targetURL"],"doNotCopyProperties":["$$targetURL"],"targetURL":{"__isSmartRef__":true,"id":2384},"_rootNode":{"__isSmartRef__":true,"id":1875},"Pane1Selection":{"__isSmartRef__":true,"id":1907},"pane1Selection":{"__isSmartRef__":true,"id":1907},"Pane2Selection":null,"pane2Selection":null,"Pane3Selection":null,"pane3Selection":null,"Pane4Selection":null,"pane4Selection":null,"Pane4Content":["-----"],"Pane3Content":["-----"],"Pane2Content":[{"__isSmartRef__":true,"id":2235},{"__isSmartRef__":true,"id":2237},{"__isSmartRef__":true,"id":2239},{"__isSmartRef__":true,"id":2241},{"__isSmartRef__":true,"id":2243},{"__isSmartRef__":true,"id":2245},{"__isSmartRef__":true,"id":2247},{"__isSmartRef__":true,"id":2249},{"__isSmartRef__":true,"id":2251},{"__isSmartRef__":true,"id":2253},{"__isSmartRef__":true,"id":2255},{"__isSmartRef__":true,"id":2257},{"__isSmartRef__":true,"id":2259},{"__isSmartRef__":true,"id":2261},{"__isSmartRef__":true,"id":2263}],"Pane1Content":[{"__isSmartRef__":true,"id":1872},{"__isSmartRef__":true,"id":2154},{"__isSmartRef__":true,"id":2155},{"__isSmartRef__":true,"id":2156},{"__isSmartRef__":true,"id":2157},{"__isSmartRef__":true,"id":2158},{"__isSmartRef__":true,"id":2159},{"__isSmartRef__":true,"id":2160},{"__isSmartRef__":true,"id":2161},{"__isSmartRef__":true,"id":2162},{"__isSmartRef__":true,"id":2163},{"__isSmartRef__":true,"id":2164},{"__isSmartRef__":true,"id":2165},{"__isSmartRef__":true,"id":2166},{"__isSmartRef__":true,"id":2167},{"__isSmartRef__":true,"id":2168},{"__isSmartRef__":true,"id":2169},{"__isSmartRef__":true,"id":2170},{"__isSmartRef__":true,"id":2171},{"__isSmartRef__":true,"id":2172},{"__isSmartRef__":true,"id":2173},{"__isSmartRef__":true,"id":2174},{"__isSmartRef__":true,"id":2175},{"__isSmartRef__":true,"id":2176},{"__isSmartRef__":true,"id":2177},{"__isSmartRef__":true,"id":2178},{"__isSmartRef__":true,"id":2179},{"__isSmartRef__":true,"id":2180},{"__isSmartRef__":true,"id":2181},{"__isSmartRef__":true,"id":2182},{"__isSmartRef__":true,"id":2183},{"__isSmartRef__":true,"id":2184},{"__isSmartRef__":true,"id":2185},{"__isSmartRef__":true,"id":2186},{"__isSmartRef__":true,"id":2187},{"__isSmartRef__":true,"id":2188},{"__isSmartRef__":true,"id":2189},{"__isSmartRef__":true,"id":2190},{"__isSmartRef__":true,"id":2191},{"__isSmartRef__":true,"id":2192},{"__isSmartRef__":true,"id":2193},{"__isSmartRef__":true,"id":2194},{"__isSmartRef__":true,"id":2195},{"__isSmartRef__":true,"id":2196}],"view":{"__isSmartRef__":true,"id":1586},"Pane1Menu":[["Add to world requirements"],["remove"],["reparse"],["-------"],["open in text editor"],["show versions"],["diff versions"]],"Pane2Menu":[["-------"],["add class"],["add object extension"],["add layer"],["open in text editor"],["show versions"],["diff versions"]],"Pane3Menu":[["-------"],["open in text editor"],["show versions"],["diff versions"]],"currentModuleName":"lively.Network","__LivelyClassName__":"lively.ide.SystemBrowser","__SourceModuleName__":"Global.lively.ide.SystemCodeBrowser"},"1602":{"browser":{"__isSmartRef__":true,"id":1601},"button":{"__isSmartRef__":true,"id":1603},"__LivelyClassName__":"lively.ide.AddNewFileCommand","__SourceModuleName__":"Global.lively.ide.BrowserCommands"},"1603":{"submorphs":[{"__isSmartRef__":true,"id":1604}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1616},"id":253,"renderContextTable":{"__isSmartRef__":true,"id":1631},"eventHandler":{"__isSmartRef__":true,"id":1632},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":1633},"priorExtent":{"__isSmartRef__":true,"id":1634},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":1635},"label":{"__isSmartRef__":true,"id":1604},"command":{"__isSmartRef__":true,"id":1602},"attributeConnections":[{"__isSmartRef__":true,"id":1644},{"__isSmartRef__":true,"id":1645}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"owner":{"__isSmartRef__":true,"id":1587},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets"},"1604":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1605},"id":254,"renderContextTable":{"__isSmartRef__":true,"id":1610},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1611}],"eventHandler":{"__isSmartRef__":true,"id":1613},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":1614},"priorExtent":{"__isSmartRef__":true,"id":1615},"_MaxTextWidth":117.14285714285714,"_MinTextWidth":117.14285714285714,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1603},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1605":{"_Position":{"__isSmartRef__":true,"id":1606},"renderContextTable":{"__isSmartRef__":true,"id":1607},"_Extent":{"__isSmartRef__":true,"id":1608},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":1609},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1606":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1607":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1608":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1609":{"x":0,"y":4,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1610":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1611":{"style":{"__isSmartRef__":true,"id":1612},"chunkOwner":{"__isSmartRef__":true,"id":1604},"storedString":"Add module","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1612":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1613":{"morph":{"__isSmartRef__":true,"id":1604},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1614":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1615":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1616":{"_Position":{"__isSmartRef__":true,"id":1617},"renderContextTable":{"__isSmartRef__":true,"id":1618},"_Extent":{"__isSmartRef__":true,"id":1619},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1620},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1617":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1618":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1619":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1620":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1621":{"r":0.7411764705882353,"g":0.7450980392156863,"b":0.7529411764705882,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1622":{"stops":[{"__isSmartRef__":true,"id":1623},{"__isSmartRef__":true,"id":1625},{"__isSmartRef__":true,"id":1627},{"__isSmartRef__":true,"id":1629}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1623":{"offset":0,"color":{"__isSmartRef__":true,"id":1624}},"1624":{"r":0.9600000000000001,"g":0.9600000000000001,"b":0.9600000000000001,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1625":{"offset":0.4,"color":{"__isSmartRef__":true,"id":1626}},"1626":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1627":{"offset":0.6,"color":{"__isSmartRef__":true,"id":1628}},"1628":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1629":{"offset":1,"color":{"__isSmartRef__":true,"id":1630}},"1630":{"r":0.94,"g":0.94,"b":0.94,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1631":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1632":{"morph":{"__isSmartRef__":true,"id":1603},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1633":{"x":0,"y":220,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1634":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1635":{"stops":[{"__isSmartRef__":true,"id":1636},{"__isSmartRef__":true,"id":1638},{"__isSmartRef__":true,"id":1640},{"__isSmartRef__":true,"id":1642}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1636":{"offset":0,"color":{"__isSmartRef__":true,"id":1637}},"1637":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1638":{"offset":0.4,"color":{"__isSmartRef__":true,"id":1639}},"1639":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1640":{"offset":0.6,"color":{"__isSmartRef__":true,"id":1641}},"1641":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1642":{"offset":1,"color":{"__isSmartRef__":true,"id":1643}},"1643":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1644":{"sourceObj":{"__isSmartRef__":true,"id":1603},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1602},"targetMethodName":"trigger","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1645":{"sourceObj":{"__isSmartRef__":true,"id":1603},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1603},"targetMethodName":"setLabel","converter":null,"converterString":"function () { return this.getSourceObj().command.asString() }","updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":1646},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1646":{"source":{"__isSmartRef__":true,"id":1603},"target":{"__isSmartRef__":true,"id":1603}},"1647":{"browser":{"__isSmartRef__":true,"id":1601},"button":{"__isSmartRef__":true,"id":1648},"__LivelyClassName__":"lively.ide.AllModulesLoadCommand","__SourceModuleName__":"Global.lively.ide.BrowserCommands"},"1648":{"submorphs":[{"__isSmartRef__":true,"id":1649}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1661},"id":255,"renderContextTable":{"__isSmartRef__":true,"id":1666},"eventHandler":{"__isSmartRef__":true,"id":1667},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":1668},"priorExtent":{"__isSmartRef__":true,"id":1669},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":1670},"label":{"__isSmartRef__":true,"id":1649},"command":{"__isSmartRef__":true,"id":1647},"attributeConnections":[{"__isSmartRef__":true,"id":1679},{"__isSmartRef__":true,"id":1680}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"owner":{"__isSmartRef__":true,"id":1587},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets"},"1649":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1650},"id":256,"renderContextTable":{"__isSmartRef__":true,"id":1655},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1656}],"eventHandler":{"__isSmartRef__":true,"id":1658},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":1659},"priorExtent":{"__isSmartRef__":true,"id":1660},"_MaxTextWidth":117.14285714285714,"_MinTextWidth":117.14285714285714,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1648},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1650":{"_Position":{"__isSmartRef__":true,"id":1651},"renderContextTable":{"__isSmartRef__":true,"id":1652},"_Extent":{"__isSmartRef__":true,"id":1653},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":1654},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1651":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1652":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1653":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1654":{"x":0,"y":4,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1655":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1656":{"style":{"__isSmartRef__":true,"id":1657},"chunkOwner":{"__isSmartRef__":true,"id":1649},"storedString":"Load all","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1657":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1658":{"morph":{"__isSmartRef__":true,"id":1649},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1659":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1660":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1661":{"_Position":{"__isSmartRef__":true,"id":1662},"renderContextTable":{"__isSmartRef__":true,"id":1663},"_Extent":{"__isSmartRef__":true,"id":1664},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1665},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1662":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1663":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1664":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1665":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1666":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1667":{"morph":{"__isSmartRef__":true,"id":1648},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1668":{"x":117.14285714285714,"y":220,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1669":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1670":{"stops":[{"__isSmartRef__":true,"id":1671},{"__isSmartRef__":true,"id":1673},{"__isSmartRef__":true,"id":1675},{"__isSmartRef__":true,"id":1677}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1671":{"offset":0,"color":{"__isSmartRef__":true,"id":1672}},"1672":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1673":{"offset":0.4,"color":{"__isSmartRef__":true,"id":1674}},"1674":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1675":{"offset":0.6,"color":{"__isSmartRef__":true,"id":1676}},"1676":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1677":{"offset":1,"color":{"__isSmartRef__":true,"id":1678}},"1678":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1679":{"sourceObj":{"__isSmartRef__":true,"id":1648},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1647},"targetMethodName":"trigger","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1680":{"sourceObj":{"__isSmartRef__":true,"id":1648},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1648},"targetMethodName":"setLabel","converter":null,"converterString":"function () { return this.getSourceObj().command.asString() }","updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":1681},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1681":{"source":{"__isSmartRef__":true,"id":1648},"target":{"__isSmartRef__":true,"id":1648}},"1682":{"browser":{"__isSmartRef__":true,"id":1601},"button":{"__isSmartRef__":true,"id":1683},"__LivelyClassName__":"lively.ide.ShowLineNumbersCommand","__SourceModuleName__":"Global.lively.ide.BrowserCommands"},"1683":{"submorphs":[{"__isSmartRef__":true,"id":1684}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1696},"id":257,"renderContextTable":{"__isSmartRef__":true,"id":1701},"eventHandler":{"__isSmartRef__":true,"id":1702},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":1703},"priorExtent":{"__isSmartRef__":true,"id":1704},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":1705},"label":{"__isSmartRef__":true,"id":1684},"command":{"__isSmartRef__":true,"id":1682},"attributeConnections":[{"__isSmartRef__":true,"id":1714},{"__isSmartRef__":true,"id":1715}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"owner":{"__isSmartRef__":true,"id":1587},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets"},"1684":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1685},"id":258,"renderContextTable":{"__isSmartRef__":true,"id":1690},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1691}],"eventHandler":{"__isSmartRef__":true,"id":1693},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":1694},"priorExtent":{"__isSmartRef__":true,"id":1695},"_MaxTextWidth":117.14285714285714,"_MinTextWidth":117.14285714285714,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1683},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1685":{"_Position":{"__isSmartRef__":true,"id":1686},"renderContextTable":{"__isSmartRef__":true,"id":1687},"_Extent":{"__isSmartRef__":true,"id":1688},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":1689},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1686":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1687":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1688":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1689":{"x":0,"y":4,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1690":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1691":{"style":{"__isSmartRef__":true,"id":1692},"chunkOwner":{"__isSmartRef__":true,"id":1684},"storedString":"LineNo","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1692":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1693":{"morph":{"__isSmartRef__":true,"id":1684},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1694":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1695":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1696":{"_Position":{"__isSmartRef__":true,"id":1697},"renderContextTable":{"__isSmartRef__":true,"id":1698},"_Extent":{"__isSmartRef__":true,"id":1699},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1700},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1697":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1698":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1699":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1700":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1701":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1702":{"morph":{"__isSmartRef__":true,"id":1683},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1703":{"x":234.28571428571428,"y":220,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1704":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1705":{"stops":[{"__isSmartRef__":true,"id":1706},{"__isSmartRef__":true,"id":1708},{"__isSmartRef__":true,"id":1710},{"__isSmartRef__":true,"id":1712}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1706":{"offset":0,"color":{"__isSmartRef__":true,"id":1707}},"1707":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1708":{"offset":0.4,"color":{"__isSmartRef__":true,"id":1709}},"1709":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1710":{"offset":0.6,"color":{"__isSmartRef__":true,"id":1711}},"1711":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1712":{"offset":1,"color":{"__isSmartRef__":true,"id":1713}},"1713":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1714":{"sourceObj":{"__isSmartRef__":true,"id":1683},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1682},"targetMethodName":"trigger","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1715":{"sourceObj":{"__isSmartRef__":true,"id":1683},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1683},"targetMethodName":"setLabel","converter":null,"converterString":"function () { return this.getSourceObj().command.asString() }","updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":1716},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1716":{"source":{"__isSmartRef__":true,"id":1683},"target":{"__isSmartRef__":true,"id":1683}},"1717":{"browser":{"__isSmartRef__":true,"id":1601},"button":{"__isSmartRef__":true,"id":1718},"__LivelyClassName__":"lively.ide.ParserDebugCommand","__SourceModuleName__":"Global.lively.ide.BrowserCommands"},"1718":{"submorphs":[{"__isSmartRef__":true,"id":1719}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1731},"id":259,"renderContextTable":{"__isSmartRef__":true,"id":1736},"eventHandler":{"__isSmartRef__":true,"id":1737},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":1738},"priorExtent":{"__isSmartRef__":true,"id":1739},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":1740},"label":{"__isSmartRef__":true,"id":1719},"command":{"__isSmartRef__":true,"id":1717},"attributeConnections":[{"__isSmartRef__":true,"id":1749},{"__isSmartRef__":true,"id":1750}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"owner":{"__isSmartRef__":true,"id":1587},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets"},"1719":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1720},"id":260,"renderContextTable":{"__isSmartRef__":true,"id":1725},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1726}],"eventHandler":{"__isSmartRef__":true,"id":1728},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":1729},"priorExtent":{"__isSmartRef__":true,"id":1730},"_MaxTextWidth":117.14285714285714,"_MinTextWidth":117.14285714285714,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1718},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1720":{"_Position":{"__isSmartRef__":true,"id":1721},"renderContextTable":{"__isSmartRef__":true,"id":1722},"_Extent":{"__isSmartRef__":true,"id":1723},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":1724},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1721":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1722":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1723":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1724":{"x":0,"y":4,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1725":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1726":{"style":{"__isSmartRef__":true,"id":1727},"chunkOwner":{"__isSmartRef__":true,"id":1719},"storedString":"Dbg errors is off","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1727":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1728":{"morph":{"__isSmartRef__":true,"id":1719},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1729":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1730":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1731":{"_Position":{"__isSmartRef__":true,"id":1732},"renderContextTable":{"__isSmartRef__":true,"id":1733},"_Extent":{"__isSmartRef__":true,"id":1734},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1735},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1732":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1733":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1734":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1735":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1736":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1737":{"morph":{"__isSmartRef__":true,"id":1718},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1738":{"x":351.42857142857144,"y":220,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1739":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1740":{"stops":[{"__isSmartRef__":true,"id":1741},{"__isSmartRef__":true,"id":1743},{"__isSmartRef__":true,"id":1745},{"__isSmartRef__":true,"id":1747}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1741":{"offset":0,"color":{"__isSmartRef__":true,"id":1742}},"1742":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1743":{"offset":0.4,"color":{"__isSmartRef__":true,"id":1744}},"1744":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1745":{"offset":0.6,"color":{"__isSmartRef__":true,"id":1746}},"1746":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1747":{"offset":1,"color":{"__isSmartRef__":true,"id":1748}},"1748":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1749":{"sourceObj":{"__isSmartRef__":true,"id":1718},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1717},"targetMethodName":"trigger","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1750":{"sourceObj":{"__isSmartRef__":true,"id":1718},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1718},"targetMethodName":"setLabel","converter":null,"converterString":"function () { return this.getSourceObj().command.asString() }","updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":1751},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1751":{"source":{"__isSmartRef__":true,"id":1718},"target":{"__isSmartRef__":true,"id":1718}},"1752":{"browser":{"__isSmartRef__":true,"id":1601},"button":{"__isSmartRef__":true,"id":1753},"__LivelyClassName__":"lively.ide.EvaluateCommand","__SourceModuleName__":"Global.lively.ide.BrowserCommands"},"1753":{"submorphs":[{"__isSmartRef__":true,"id":1754}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1766},"id":261,"renderContextTable":{"__isSmartRef__":true,"id":1771},"eventHandler":{"__isSmartRef__":true,"id":1772},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":1773},"priorExtent":{"__isSmartRef__":true,"id":1774},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":1775},"label":{"__isSmartRef__":true,"id":1754},"command":{"__isSmartRef__":true,"id":1752},"attributeConnections":[{"__isSmartRef__":true,"id":1784},{"__isSmartRef__":true,"id":1785}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"owner":{"__isSmartRef__":true,"id":1587},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets"},"1754":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1755},"id":262,"renderContextTable":{"__isSmartRef__":true,"id":1760},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1761}],"eventHandler":{"__isSmartRef__":true,"id":1763},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":1764},"priorExtent":{"__isSmartRef__":true,"id":1765},"_MaxTextWidth":117.14285714285714,"_MinTextWidth":117.14285714285714,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1753},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1755":{"_Position":{"__isSmartRef__":true,"id":1756},"renderContextTable":{"__isSmartRef__":true,"id":1757},"_Extent":{"__isSmartRef__":true,"id":1758},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":1759},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1756":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1757":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1758":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1759":{"x":0,"y":4,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1760":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1761":{"style":{"__isSmartRef__":true,"id":1762},"chunkOwner":{"__isSmartRef__":true,"id":1754},"storedString":"Eval on","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1762":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1763":{"morph":{"__isSmartRef__":true,"id":1754},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1764":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1765":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1766":{"_Position":{"__isSmartRef__":true,"id":1767},"renderContextTable":{"__isSmartRef__":true,"id":1768},"_Extent":{"__isSmartRef__":true,"id":1769},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1770},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1767":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1768":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1769":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1770":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1771":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1772":{"morph":{"__isSmartRef__":true,"id":1753},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1773":{"x":468.57142857142856,"y":220,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1774":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1775":{"stops":[{"__isSmartRef__":true,"id":1776},{"__isSmartRef__":true,"id":1778},{"__isSmartRef__":true,"id":1780},{"__isSmartRef__":true,"id":1782}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1776":{"offset":0,"color":{"__isSmartRef__":true,"id":1777}},"1777":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1778":{"offset":0.4,"color":{"__isSmartRef__":true,"id":1779}},"1779":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1780":{"offset":0.6,"color":{"__isSmartRef__":true,"id":1781}},"1781":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1782":{"offset":1,"color":{"__isSmartRef__":true,"id":1783}},"1783":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1784":{"sourceObj":{"__isSmartRef__":true,"id":1753},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1752},"targetMethodName":"trigger","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1785":{"sourceObj":{"__isSmartRef__":true,"id":1753},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1753},"targetMethodName":"setLabel","converter":null,"converterString":"function () { return this.getSourceObj().command.asString() }","updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":1786},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1786":{"source":{"__isSmartRef__":true,"id":1753},"target":{"__isSmartRef__":true,"id":1753}},"1787":{"browser":{"__isSmartRef__":true,"id":1601},"button":{"__isSmartRef__":true,"id":1788},"__LivelyClassName__":"lively.ide.SortCommand","__SourceModuleName__":"Global.lively.ide.BrowserCommands"},"1788":{"submorphs":[{"__isSmartRef__":true,"id":1789}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1801},"id":263,"renderContextTable":{"__isSmartRef__":true,"id":1806},"eventHandler":{"__isSmartRef__":true,"id":1807},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":1808},"priorExtent":{"__isSmartRef__":true,"id":1809},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":1810},"label":{"__isSmartRef__":true,"id":1789},"command":{"__isSmartRef__":true,"id":1787},"attributeConnections":[{"__isSmartRef__":true,"id":1819},{"__isSmartRef__":true,"id":1820}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"owner":{"__isSmartRef__":true,"id":1587},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets"},"1789":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1790},"id":264,"renderContextTable":{"__isSmartRef__":true,"id":1795},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1796}],"eventHandler":{"__isSmartRef__":true,"id":1798},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":1799},"priorExtent":{"__isSmartRef__":true,"id":1800},"_MaxTextWidth":117.14285714285714,"_MinTextWidth":117.14285714285714,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1788},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1790":{"_Position":{"__isSmartRef__":true,"id":1791},"renderContextTable":{"__isSmartRef__":true,"id":1792},"_Extent":{"__isSmartRef__":true,"id":1793},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":1794},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1791":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1792":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1793":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1794":{"x":0,"y":4,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1795":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1796":{"style":{"__isSmartRef__":true,"id":1797},"chunkOwner":{"__isSmartRef__":true,"id":1789},"storedString":"Sort","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1797":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1798":{"morph":{"__isSmartRef__":true,"id":1789},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1799":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1800":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1801":{"_Position":{"__isSmartRef__":true,"id":1802},"renderContextTable":{"__isSmartRef__":true,"id":1803},"_Extent":{"__isSmartRef__":true,"id":1804},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1805},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1802":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1803":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1804":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1805":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1806":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1807":{"morph":{"__isSmartRef__":true,"id":1788},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1808":{"x":585.7142857142857,"y":220,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1809":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1810":{"stops":[{"__isSmartRef__":true,"id":1811},{"__isSmartRef__":true,"id":1813},{"__isSmartRef__":true,"id":1815},{"__isSmartRef__":true,"id":1817}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1811":{"offset":0,"color":{"__isSmartRef__":true,"id":1812}},"1812":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1813":{"offset":0.4,"color":{"__isSmartRef__":true,"id":1814}},"1814":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1815":{"offset":0.6,"color":{"__isSmartRef__":true,"id":1816}},"1816":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1817":{"offset":1,"color":{"__isSmartRef__":true,"id":1818}},"1818":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1819":{"sourceObj":{"__isSmartRef__":true,"id":1788},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1787},"targetMethodName":"trigger","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1820":{"sourceObj":{"__isSmartRef__":true,"id":1788},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1788},"targetMethodName":"setLabel","converter":null,"converterString":"function () { return this.getSourceObj().command.asString() }","updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":1821},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1821":{"source":{"__isSmartRef__":true,"id":1788},"target":{"__isSmartRef__":true,"id":1788}},"1822":{"browser":{"__isSmartRef__":true,"id":1601},"button":{"__isSmartRef__":true,"id":1823},"__LivelyClassName__":"lively.ide.ViewSourceCommand","__SourceModuleName__":"Global.lively.ide.BrowserCommands"},"1823":{"submorphs":[{"__isSmartRef__":true,"id":1824}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1836},"id":265,"renderContextTable":{"__isSmartRef__":true,"id":1841},"eventHandler":{"__isSmartRef__":true,"id":1842},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":1843},"priorExtent":{"__isSmartRef__":true,"id":1844},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":1845},"label":{"__isSmartRef__":true,"id":1824},"command":{"__isSmartRef__":true,"id":1822},"attributeConnections":[{"__isSmartRef__":true,"id":1854},{"__isSmartRef__":true,"id":1855}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"owner":{"__isSmartRef__":true,"id":1587},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets"},"1824":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1825},"id":266,"renderContextTable":{"__isSmartRef__":true,"id":1830},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1831}],"eventHandler":{"__isSmartRef__":true,"id":1833},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":1834},"priorExtent":{"__isSmartRef__":true,"id":1835},"_MaxTextWidth":117.14285714285714,"_MinTextWidth":117.14285714285714,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1823},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1825":{"_Position":{"__isSmartRef__":true,"id":1826},"renderContextTable":{"__isSmartRef__":true,"id":1827},"_Extent":{"__isSmartRef__":true,"id":1828},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":1829},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1826":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1827":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1828":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1829":{"x":0,"y":4,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1830":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"1831":{"style":{"__isSmartRef__":true,"id":1832},"chunkOwner":{"__isSmartRef__":true,"id":1824},"storedString":"View as...","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1832":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1833":{"morph":{"__isSmartRef__":true,"id":1824},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1834":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1835":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1836":{"_Position":{"__isSmartRef__":true,"id":1837},"renderContextTable":{"__isSmartRef__":true,"id":1838},"_Extent":{"__isSmartRef__":true,"id":1839},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":1840},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1837":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1838":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1839":{"x":117.14285714285714,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1840":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1841":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"1842":{"morph":{"__isSmartRef__":true,"id":1823},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1843":{"x":702.8571428571429,"y":220,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1844":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1845":{"stops":[{"__isSmartRef__":true,"id":1846},{"__isSmartRef__":true,"id":1848},{"__isSmartRef__":true,"id":1850},{"__isSmartRef__":true,"id":1852}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1846":{"offset":0,"color":{"__isSmartRef__":true,"id":1847}},"1847":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1848":{"offset":0.4,"color":{"__isSmartRef__":true,"id":1849}},"1849":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1850":{"offset":0.6,"color":{"__isSmartRef__":true,"id":1851}},"1851":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1852":{"offset":1,"color":{"__isSmartRef__":true,"id":1853}},"1853":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1854":{"sourceObj":{"__isSmartRef__":true,"id":1823},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1822},"targetMethodName":"trigger","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1855":{"sourceObj":{"__isSmartRef__":true,"id":1823},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1823},"targetMethodName":"setLabel","converter":null,"converterString":"function () { return this.getSourceObj().command.asString() }","updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":1856},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1856":{"source":{"__isSmartRef__":true,"id":1823},"target":{"__isSmartRef__":true,"id":1823}},"1857":{"__LivelyClassName__":"lively.ide.NodeFilter","__SourceModuleName__":"Global.lively.ide.BrowserFramework"},"1858":{"__LivelyClassName__":"lively.ide.NodeFilter","__SourceModuleName__":"Global.lively.ide.BrowserFramework"},"1859":{"attributes":["isClassNode","isGrammarNode","isChangeNode","isFunctionNode","isObjectNode"],"__LivelyClassName__":"lively.ide.NodeTypeFilter","__SourceModuleName__":"Global.lively.ide.BrowserFramework"},"1860":{"__LivelyClassName__":"lively.ide.NodeFilter","__SourceModuleName__":"Global.lively.ide.BrowserFramework"},"1861":{"__LivelyClassName__":"lively.ide.NodeFilter","__SourceModuleName__":"Global.lively.ide.BrowserFramework"},"1862":{"__LivelyClassName__":"lively.ide.NodeFilter","__SourceModuleName__":"Global.lively.ide.BrowserFramework"},"1863":{"sourceObj":{"__isSmartRef__":true,"id":1601},"sourceAttrName":"setPane1Content","targetObj":{"__isSmartRef__":true,"id":1864},"targetMethodName":"updateList","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2225},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"1864":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1865},"id":247,"renderContextTable":{"__isSmartRef__":true,"id":1871},"itemList":[{"__isSmartRef__":true,"id":1872},{"__isSmartRef__":true,"id":2154},{"__isSmartRef__":true,"id":2155},{"__isSmartRef__":true,"id":2156},{"__isSmartRef__":true,"id":2157},{"__isSmartRef__":true,"id":2158},{"__isSmartRef__":true,"id":2159},{"__isSmartRef__":true,"id":2160},{"__isSmartRef__":true,"id":2161},{"__isSmartRef__":true,"id":2162},{"__isSmartRef__":true,"id":2163},{"__isSmartRef__":true,"id":2164},{"__isSmartRef__":true,"id":2165},{"__isSmartRef__":true,"id":2166},{"__isSmartRef__":true,"id":2167},{"__isSmartRef__":true,"id":2168},{"__isSmartRef__":true,"id":2169},{"__isSmartRef__":true,"id":2170},{"__isSmartRef__":true,"id":2171},{"__isSmartRef__":true,"id":2172},{"__isSmartRef__":true,"id":2173},{"__isSmartRef__":true,"id":2174},{"__isSmartRef__":true,"id":2175},{"__isSmartRef__":true,"id":2176},{"__isSmartRef__":true,"id":2177},{"__isSmartRef__":true,"id":2178},{"__isSmartRef__":true,"id":2179},{"__isSmartRef__":true,"id":2180},{"__isSmartRef__":true,"id":2181},{"__isSmartRef__":true,"id":2182},{"__isSmartRef__":true,"id":2183},{"__isSmartRef__":true,"id":2184},{"__isSmartRef__":true,"id":2185},{"__isSmartRef__":true,"id":2186},{"__isSmartRef__":true,"id":2187},{"__isSmartRef__":true,"id":2188},{"__isSmartRef__":true,"id":2189},{"__isSmartRef__":true,"id":2190},{"__isSmartRef__":true,"id":2191},{"__isSmartRef__":true,"id":2192},{"__isSmartRef__":true,"id":2193},{"__isSmartRef__":true,"id":2194},{"__isSmartRef__":true,"id":2195},{"__isSmartRef__":true,"id":2196}],"_FontFamily":"Helvetica","eventHandler":{"__isSmartRef__":true,"id":2197},"droppingEnabled":true,"halosEnabled":true,"_ClipMode":"auto","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":2198},"selectedLineNo":27,"selectOnMove":false,"owner":{"__isSmartRef__":true,"id":1587},"attributeConnections":[{"__isSmartRef__":true,"id":2199},{"__isSmartRef__":true,"id":2204},{"__isSmartRef__":true,"id":2206},{"__isSmartRef__":true,"id":2208}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"selection":{"__isSmartRef__":true,"id":1907},"prevScroll":[0,272],"showsHalos":false,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2210},"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Core"},"1865":{"_Position":{"__isSmartRef__":true,"id":1866},"renderContextTable":{"__isSmartRef__":true,"id":1867},"_Extent":{"__isSmartRef__":true,"id":1868},"_Padding":{"__isSmartRef__":true,"id":1869},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":{"__isSmartRef__":true,"id":1870},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"1866":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1867":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"1868":{"x":205,"y":192.5,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"1869":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"1870":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"1871":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateListContent":"updateListContentHTML","resizeList":"resizeListHTML","getItemIndexFromEvent":"getItemIndexFromEventHTML","getListExtent":"getListExtentHTML","setSize":"setSizeHTML","renderAsDropDownList":"renderAsDropDownListHTML","setFontSize":"setFontSizeHTML","setFontFamily":"setFontFamilyHTML","getSelectedIndexes":"getSelectedIndexesHTML","enableMultipleSelections":"enableMultipleSelectionsHTML","selectAllAt":"selectAllAtHTML","clearSelections":"clearSelectionsHTML","deselectAt":"deselectAtHTML"},"1872":{"isListItem":true,"string":"AST/","value":{"__isSmartRef__":true,"id":1873}},"1873":{"target":{"__isSmartRef__":true,"id":1874},"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"localName":"AST/","__LivelyClassName__":"lively.ide.NamespaceNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1874":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/lively/AST/","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"1875":{"target":{"__isSmartRef__":true,"id":1038},"browser":{"__isSmartRef__":true,"id":1601},"parent":null,"allFiles":["lively/Traits.js","lively/DOMAbstraction.js","lively/Data.js","lively/Base.js","lively/defaultconfig.js","lively/LKFileParser.ometa","lively/Rendering.js","lively/Helper.js","lively/LogHelper.js","lively/PartsBin.js","lively/miniprototype.js","lively/Core.js","lively/LayerableMorphs.js","lively/TestRunnerExtensions.js","lively/bindings.js","lively/SmalltalkParserSupport.js","lively/SmalltalkParser.js","lively/Ometa.js","lively/JSON.js","lively/Presentation.js","lively/bootstrap.js","lively/CrayonColors.js","lively/NewMorphicCompat.js","lively/localconfig.js","lively/LKFileParser.js","lively/Main.js","lively/Tracing.js","lively/Migration.js","lively/Network.js","lively/SmalltalkParser.ometa","lively/WidgetsTraits.js","lively/TestFramework.js","lively/OldModel.js","lively/ChangeSet.js","lively/ide.js","lively/morphic.js","lively/NoMoreModels.js"],"subNamespacePaths":[{"__isSmartRef__":true,"id":1876},{"__isSmartRef__":true,"id":1874},{"__isSmartRef__":true,"id":1877},{"__isSmartRef__":true,"id":1878},{"__isSmartRef__":true,"id":1879}],"parentNamespacePath":{"__isSmartRef__":true,"id":1880},"_childNodes":[{"__isSmartRef__":true,"id":1873},{"__isSmartRef__":true,"id":1881},{"__isSmartRef__":true,"id":1882},{"__isSmartRef__":true,"id":1883},{"__isSmartRef__":true,"id":1884},{"__isSmartRef__":true,"id":1885},{"__isSmartRef__":true,"id":1886},{"__isSmartRef__":true,"id":1887},{"__isSmartRef__":true,"id":1888},{"__isSmartRef__":true,"id":1889},{"__isSmartRef__":true,"id":1890},{"__isSmartRef__":true,"id":1891},{"__isSmartRef__":true,"id":1892},{"__isSmartRef__":true,"id":1893},{"__isSmartRef__":true,"id":1894},{"__isSmartRef__":true,"id":1895},{"__isSmartRef__":true,"id":1896},{"__isSmartRef__":true,"id":1897},{"__isSmartRef__":true,"id":1898},{"__isSmartRef__":true,"id":1899},{"__isSmartRef__":true,"id":1900},{"__isSmartRef__":true,"id":1901},{"__isSmartRef__":true,"id":1902},{"__isSmartRef__":true,"id":1903},{"__isSmartRef__":true,"id":1904},{"__isSmartRef__":true,"id":1905},{"__isSmartRef__":true,"id":1906},{"__isSmartRef__":true,"id":1907},{"__isSmartRef__":true,"id":2137},{"__isSmartRef__":true,"id":2138},{"__isSmartRef__":true,"id":2139},{"__isSmartRef__":true,"id":2140},{"__isSmartRef__":true,"id":2141},{"__isSmartRef__":true,"id":2142},{"__isSmartRef__":true,"id":2143},{"__isSmartRef__":true,"id":2144},{"__isSmartRef__":true,"id":2145},{"__isSmartRef__":true,"id":2146},{"__isSmartRef__":true,"id":2147},{"__isSmartRef__":true,"id":2148},{"__isSmartRef__":true,"id":2149},{"__isSmartRef__":true,"id":2150},{"__isSmartRef__":true,"id":2151},{"__isSmartRef__":true,"id":2152}],"__LivelyClassName__":"lively.ide.SourceControlNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1876":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/lively/persistence/","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"1877":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/lively/bindings/","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"1878":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/lively/morphic/","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"1879":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/lively/ide/","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"1880":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/lively/../","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"1881":{"target":{"__isSmartRef__":true,"id":1877},"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"localName":"bindings/","__LivelyClassName__":"lively.ide.NamespaceNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1882":{"target":{"__isSmartRef__":true,"id":1879},"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"localName":"ide/","__LivelyClassName__":"lively.ide.NamespaceNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1883":{"target":{"__isSmartRef__":true,"id":1878},"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"localName":"morphic/","__LivelyClassName__":"lively.ide.NamespaceNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1884":{"target":{"__isSmartRef__":true,"id":1876},"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"localName":"persistence/","__LivelyClassName__":"lively.ide.NamespaceNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1885":{"target":{"__isSmartRef__":true,"id":1880},"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"localName":"../","__LivelyClassName__":"lively.ide.NamespaceNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1886":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/Base.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1887":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/bindings.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1888":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/bootstrap.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1889":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/ChangeSet.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1890":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/Core.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1891":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/CrayonColors.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1892":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/Data.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1893":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/defaultconfig.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1894":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/DOMAbstraction.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1895":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/Helper.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1896":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/ide.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1897":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/JSON.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1898":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/LayerableMorphs.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1899":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/LKFileParser.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1900":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/LKFileParser.ometa","showAll":false,"__LivelyClassName__":"lively.ide.CompleteOmetaFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1901":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/localconfig.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1902":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/LogHelper.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1903":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/Main.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1904":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/Migration.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1905":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/miniprototype.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1906":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/morphic.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1907":{"target":{"__isSmartRef__":true,"id":1908},"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/Network.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"1908":{"name":"lively.Network","type":"moduleDef","startIndex":1384,"stopIndex":60048,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1909},{"__isSmartRef__":true,"id":1910},{"__isSmartRef__":true,"id":1941},{"__isSmartRef__":true,"id":1942},{"__isSmartRef__":true,"id":1946},{"__isSmartRef__":true,"id":1949},{"__isSmartRef__":true,"id":1950},{"__isSmartRef__":true,"id":1953},{"__isSmartRef__":true,"id":1954},{"__isSmartRef__":true,"id":1961},{"__isSmartRef__":true,"id":1962},{"__isSmartRef__":true,"id":1976},{"__isSmartRef__":true,"id":1977},{"__isSmartRef__":true,"id":2014},{"__isSmartRef__":true,"id":2015},{"__isSmartRef__":true,"id":2018},{"__isSmartRef__":true,"id":2019},{"__isSmartRef__":true,"id":2020},{"__isSmartRef__":true,"id":2021},{"__isSmartRef__":true,"id":2035},{"__isSmartRef__":true,"id":2036},{"__isSmartRef__":true,"id":2055},{"__isSmartRef__":true,"id":2056},{"__isSmartRef__":true,"id":2063},{"__isSmartRef__":true,"id":2066},{"__isSmartRef__":true,"id":2067},{"__isSmartRef__":true,"id":2130},{"__isSmartRef__":true,"id":2131},{"__isSmartRef__":true,"id":2134},{"__isSmartRef__":true,"id":2135},{"__isSmartRef__":true,"id":2136}],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1909":{"name":null,"type":"comment","startIndex":1504,"stopIndex":1508,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1910":{"name":"URL","type":"klassDef","startIndex":1509,"stopIndex":10172,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1911},{"__isSmartRef__":true,"id":1913},{"__isSmartRef__":true,"id":1914},{"__isSmartRef__":true,"id":1915},{"__isSmartRef__":true,"id":1916},{"__isSmartRef__":true,"id":1917},{"__isSmartRef__":true,"id":1918},{"__isSmartRef__":true,"id":1919},{"__isSmartRef__":true,"id":1920},{"__isSmartRef__":true,"id":1921},{"__isSmartRef__":true,"id":1922},{"__isSmartRef__":true,"id":1923},{"__isSmartRef__":true,"id":1924},{"__isSmartRef__":true,"id":1925},{"__isSmartRef__":true,"id":1926},{"__isSmartRef__":true,"id":1927},{"__isSmartRef__":true,"id":1928},{"__isSmartRef__":true,"id":1929},{"__isSmartRef__":true,"id":1930},{"__isSmartRef__":true,"id":1931},{"__isSmartRef__":true,"id":1932},{"__isSmartRef__":true,"id":1933},{"__isSmartRef__":true,"id":1934},{"__isSmartRef__":true,"id":1935},{"__isSmartRef__":true,"id":1936},{"__isSmartRef__":true,"id":1937},{"__isSmartRef__":true,"id":1938},{"__isSmartRef__":true,"id":1939},{"__isSmartRef__":true,"id":1940}],"sourceControl":{"__isSmartRef__":true,"id":1038},"superclassName":"Object","categories":[{"__isSmartRef__":true,"id":1912}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1911":{"name":"splitter","type":"propertyDef","startIndex":1534,"stopIndex":1619,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1912":{"name":"default category","type":"categoryDef","startIndex":1532,"stopIndex":10169,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1911},{"__isSmartRef__":true,"id":1913},{"__isSmartRef__":true,"id":1914},{"__isSmartRef__":true,"id":1915},{"__isSmartRef__":true,"id":1916},{"__isSmartRef__":true,"id":1917},{"__isSmartRef__":true,"id":1918},{"__isSmartRef__":true,"id":1919},{"__isSmartRef__":true,"id":1920},{"__isSmartRef__":true,"id":1921},{"__isSmartRef__":true,"id":1922},{"__isSmartRef__":true,"id":1923},{"__isSmartRef__":true,"id":1924},{"__isSmartRef__":true,"id":1925},{"__isSmartRef__":true,"id":1926},{"__isSmartRef__":true,"id":1927},{"__isSmartRef__":true,"id":1928},{"__isSmartRef__":true,"id":1929},{"__isSmartRef__":true,"id":1930},{"__isSmartRef__":true,"id":1931},{"__isSmartRef__":true,"id":1932},{"__isSmartRef__":true,"id":1933},{"__isSmartRef__":true,"id":1934},{"__isSmartRef__":true,"id":1935},{"__isSmartRef__":true,"id":1936},{"__isSmartRef__":true,"id":1937},{"__isSmartRef__":true,"id":1938},{"__isSmartRef__":true,"id":1939},{"__isSmartRef__":true,"id":1940}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1913":{"name":"pathSplitter","type":"propertyDef","startIndex":1621,"stopIndex":1680,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1914":{"name":"initialize","type":"propertyDef","startIndex":1687,"stopIndex":3201,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1915":{"name":"inspect","type":"propertyDef","startIndex":3208,"stopIndex":3276,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1916":{"name":"toString","type":"propertyDef","startIndex":3283,"stopIndex":3423,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1917":{"name":"fullPath","type":"propertyDef","startIndex":3426,"stopIndex":3530,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1918":{"name":"isLeaf","type":"propertyDef","startIndex":3537,"stopIndex":3614,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1919":{"name":"dirname","type":"propertyDef","startIndex":3621,"stopIndex":3837,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1920":{"name":"filename","type":"propertyDef","startIndex":3840,"stopIndex":4035,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1921":{"name":"normalizedHostname","type":"propertyDef","startIndex":4038,"stopIndex":4138,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1922":{"name":"getDirectory","type":"propertyDef","startIndex":4145,"stopIndex":4227,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1923":{"name":"asDirectory","type":"propertyDef","startIndex":4229,"stopIndex":4377,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1924":{"name":"withPath","type":"propertyDef","startIndex":4417,"stopIndex":4704,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1925":{"name":"withRelativePath","type":"propertyDef","startIndex":4707,"stopIndex":5076,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1926":{"name":"withFilename","type":"propertyDef","startIndex":5083,"stopIndex":5448,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1927":{"name":"toQueryString","type":"propertyDef","startIndex":5451,"stopIndex":5716,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1928":{"name":"withQuery","type":"propertyDef","startIndex":5719,"stopIndex":5947,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1929":{"name":"withoutQuery","type":"propertyDef","startIndex":5954,"stopIndex":6108,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1930":{"name":"getQuery","type":"propertyDef","startIndex":6111,"stopIndex":6262,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1931":{"name":"eq","type":"propertyDef","startIndex":6269,"stopIndex":6605,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1932":{"name":"isIn","type":"propertyDef","startIndex":6607,"stopIndex":6775,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1933":{"name":"relativePathFrom","type":"propertyDef","startIndex":6779,"stopIndex":7896,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1934":{"name":"svnWorkspacePath","type":"propertyDef","startIndex":7899,"stopIndex":8345,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1935":{"name":"svnVersioned","type":"propertyDef","startIndex":8348,"stopIndex":8536,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1936":{"name":"notSvnVersioned","type":"propertyDef","startIndex":8543,"stopIndex":8876,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1937":{"name":"toLiteral","type":"propertyDef","startIndex":8879,"stopIndex":8975,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1938":{"name":"toExpression","type":"propertyDef","startIndex":8982,"stopIndex":9323,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1939":{"name":"withRelativePartsResolved","type":"propertyDef","startIndex":9326,"stopIndex":9812,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1940":{"name":"getAllParentDirectories","type":"propertyDef","startIndex":9814,"stopIndex":10165,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1912},"className":"URL","_owner":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1941":{"name":null,"type":"comment","startIndex":10173,"stopIndex":10201,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1942":{"name":"URL","type":"klassExtensionDef","startIndex":10202,"stopIndex":10582,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1943},{"__isSmartRef__":true,"id":1945}],"sourceControl":{"__isSmartRef__":true,"id":1038},"categories":[{"__isSmartRef__":true,"id":1944}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1943":{"name":"source","type":"propertyDef","startIndex":10223,"stopIndex":10256,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":true,"category":{"__isSmartRef__":true,"id":1944},"className":"URL","_owner":{"__isSmartRef__":true,"id":1942},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1944":{"name":"default category","type":"categoryDef","startIndex":10221,"stopIndex":10579,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1943},{"__isSmartRef__":true,"id":1945}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1945":{"name":"codeBase","type":"propertyDef","startIndex":10258,"stopIndex":10577,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":true,"category":{"__isSmartRef__":true,"id":1944},"className":"URL","_owner":{"__isSmartRef__":true,"id":1942},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1946":{"name":"URL","type":"klassExtensionDef","startIndex":10583,"stopIndex":11012,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1947}],"sourceControl":{"__isSmartRef__":true,"id":1038},"categories":[{"__isSmartRef__":true,"id":1948}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1947":{"name":"proxy","type":"propertyDef","startIndex":10604,"stopIndex":11003,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":true,"category":{"__isSmartRef__":true,"id":1948},"className":"URL","_owner":{"__isSmartRef__":true,"id":1946},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1948":{"name":"default category","type":"categoryDef","startIndex":10602,"stopIndex":11009,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1947}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1949":{"name":null,"type":"comment","startIndex":11013,"stopIndex":11013,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1950":{"name":"URL","type":"klassExtensionDef","startIndex":11014,"stopIndex":11395,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1951}],"sourceControl":{"__isSmartRef__":true,"id":1038},"categories":[{"__isSmartRef__":true,"id":1952}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1951":{"name":"common","type":"propertyDef","startIndex":11035,"stopIndex":11390,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":true,"category":{"__isSmartRef__":true,"id":1952},"className":"URL","_owner":{"__isSmartRef__":true,"id":1950},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1952":{"name":"default category","type":"categoryDef","startIndex":11033,"stopIndex":11392,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1951}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1953":{"name":null,"type":"comment","startIndex":11396,"stopIndex":11396,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1954":{"name":"URL","type":"klassExtensionDef","startIndex":11397,"stopIndex":12786,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1955},{"__isSmartRef__":true,"id":1957},{"__isSmartRef__":true,"id":1958},{"__isSmartRef__":true,"id":1959},{"__isSmartRef__":true,"id":1960}],"sourceControl":{"__isSmartRef__":true,"id":1038},"categories":[{"__isSmartRef__":true,"id":1956}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1955":{"name":"create","type":"propertyDef","startIndex":11423,"stopIndex":11478,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":true,"category":{"__isSmartRef__":true,"id":1956},"className":"URL","_owner":{"__isSmartRef__":true,"id":1954},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1956":{"name":"default category","type":"categoryDef","startIndex":11416,"stopIndex":12783,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1955},{"__isSmartRef__":true,"id":1957},{"__isSmartRef__":true,"id":1958},{"__isSmartRef__":true,"id":1959},{"__isSmartRef__":true,"id":1960}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1957":{"name":"ensureAbsoluteURL","type":"propertyDef","startIndex":11481,"stopIndex":11684,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":true,"category":{"__isSmartRef__":true,"id":1956},"className":"URL","_owner":{"__isSmartRef__":true,"id":1954},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1958":{"name":"ensureAbsoluteCodeBaseURL","type":"propertyDef","startIndex":11686,"stopIndex":11874,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":true,"category":{"__isSmartRef__":true,"id":1956},"className":"URL","_owner":{"__isSmartRef__":true,"id":1954},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1959":{"name":"fromLiteral","type":"propertyDef","startIndex":11878,"stopIndex":11940,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":true,"category":{"__isSmartRef__":true,"id":1956},"className":"URL","_owner":{"__isSmartRef__":true,"id":1954},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1960":{"name":"makeProxied","type":"propertyDef","startIndex":11943,"stopIndex":12780,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":true,"category":{"__isSmartRef__":true,"id":1956},"className":"URL","_owner":{"__isSmartRef__":true,"id":1954},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1961":{"name":null,"type":"comment","startIndex":12787,"stopIndex":12788,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1962":{"name":"NetRequestStatus","type":"klassDef","startIndex":12789,"stopIndex":13914,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1963},{"__isSmartRef__":true,"id":1965},{"__isSmartRef__":true,"id":1967},{"__isSmartRef__":true,"id":1969},{"__isSmartRef__":true,"id":1970},{"__isSmartRef__":true,"id":1972},{"__isSmartRef__":true,"id":1973},{"__isSmartRef__":true,"id":1974},{"__isSmartRef__":true,"id":1975}],"sourceControl":{"__isSmartRef__":true,"id":1038},"superclassName":"Object","categories":[{"__isSmartRef__":true,"id":1964},{"__isSmartRef__":true,"id":1966},{"__isSmartRef__":true,"id":1968},{"__isSmartRef__":true,"id":1971}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1963":{"name":"documentation","type":"propertyDef","startIndex":12844,"stopIndex":12947,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1964},"className":"NetRequestStatus","_owner":{"__isSmartRef__":true,"id":1962},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1964":{"name":"documentation","type":"categoryDef","startIndex":12825,"stopIndex":12950,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1963}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1965":{"name":"initialize","type":"propertyDef","startIndex":12972,"stopIndex":13149,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1966},"className":"NetRequestStatus","_owner":{"__isSmartRef__":true,"id":1962},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1966":{"name":"initialization","type":"categoryDef","startIndex":12952,"stopIndex":13152,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1965}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1967":{"name":"isDone","type":"propertyDef","startIndex":13167,"stopIndex":13315,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1968},"className":"NetRequestStatus","_owner":{"__isSmartRef__":true,"id":1962},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1968":{"name":"testing","type":"categoryDef","startIndex":13154,"stopIndex":13438,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1967},{"__isSmartRef__":true,"id":1969}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1969":{"name":"isSuccess","type":"propertyDef","startIndex":13318,"stopIndex":13435,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1968},"className":"NetRequestStatus","_owner":{"__isSmartRef__":true,"id":1962},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1970":{"name":"setException","type":"propertyDef","startIndex":13455,"stopIndex":13507,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1971},"className":"NetRequestStatus","_owner":{"__isSmartRef__":true,"id":1962},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1971":{"name":"accessing","type":"categoryDef","startIndex":13440,"stopIndex":13911,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1970},{"__isSmartRef__":true,"id":1972},{"__isSmartRef__":true,"id":1973},{"__isSmartRef__":true,"id":1974},{"__isSmartRef__":true,"id":1975}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1972":{"name":"toString","type":"propertyDef","startIndex":13510,"stopIndex":13670,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1971},"className":"NetRequestStatus","_owner":{"__isSmartRef__":true,"id":1962},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1973":{"name":"requestString","type":"propertyDef","startIndex":13673,"stopIndex":13762,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1971},"className":"NetRequestStatus","_owner":{"__isSmartRef__":true,"id":1962},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1974":{"name":"code","type":"propertyDef","startIndex":13765,"stopIndex":13818,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1971},"className":"NetRequestStatus","_owner":{"__isSmartRef__":true,"id":1962},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1975":{"name":"getResponseHeader","type":"propertyDef","startIndex":13821,"stopIndex":13908,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1971},"className":"NetRequestStatus","_owner":{"__isSmartRef__":true,"id":1962},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1976":{"name":null,"type":"comment","startIndex":13915,"stopIndex":13916,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1977":{"name":"NetRequest","type":"klassDef","startIndex":13917,"stopIndex":22634,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1978},{"__isSmartRef__":true,"id":1980},{"__isSmartRef__":true,"id":1981},{"__isSmartRef__":true,"id":1982},{"__isSmartRef__":true,"id":1983},{"__isSmartRef__":true,"id":1984},{"__isSmartRef__":true,"id":1985},{"__isSmartRef__":true,"id":1986},{"__isSmartRef__":true,"id":1987},{"__isSmartRef__":true,"id":1988},{"__isSmartRef__":true,"id":1989},{"__isSmartRef__":true,"id":1990},{"__isSmartRef__":true,"id":1991},{"__isSmartRef__":true,"id":1992},{"__isSmartRef__":true,"id":1993},{"__isSmartRef__":true,"id":1994},{"__isSmartRef__":true,"id":1995},{"__isSmartRef__":true,"id":1996},{"__isSmartRef__":true,"id":1997},{"__isSmartRef__":true,"id":1998},{"__isSmartRef__":true,"id":1999},{"__isSmartRef__":true,"id":2000},{"__isSmartRef__":true,"id":2001},{"__isSmartRef__":true,"id":2002},{"__isSmartRef__":true,"id":2003},{"__isSmartRef__":true,"id":2004},{"__isSmartRef__":true,"id":2005},{"__isSmartRef__":true,"id":2006},{"__isSmartRef__":true,"id":2007},{"__isSmartRef__":true,"id":2008},{"__isSmartRef__":true,"id":2009},{"__isSmartRef__":true,"id":2010},{"__isSmartRef__":true,"id":2011},{"__isSmartRef__":true,"id":2012},{"__isSmartRef__":true,"id":2013}],"sourceControl":{"__isSmartRef__":true,"id":1038},"superclassName":"View","categories":[{"__isSmartRef__":true,"id":1979}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1978":{"name":"documentation","type":"propertyDef","startIndex":13947,"stopIndex":14033,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1979":{"name":"default category","type":"categoryDef","startIndex":13945,"stopIndex":22631,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":1978},{"__isSmartRef__":true,"id":1980},{"__isSmartRef__":true,"id":1981},{"__isSmartRef__":true,"id":1982},{"__isSmartRef__":true,"id":1983},{"__isSmartRef__":true,"id":1984},{"__isSmartRef__":true,"id":1985},{"__isSmartRef__":true,"id":1986},{"__isSmartRef__":true,"id":1987},{"__isSmartRef__":true,"id":1988},{"__isSmartRef__":true,"id":1989},{"__isSmartRef__":true,"id":1990},{"__isSmartRef__":true,"id":1991},{"__isSmartRef__":true,"id":1992},{"__isSmartRef__":true,"id":1993},{"__isSmartRef__":true,"id":1994},{"__isSmartRef__":true,"id":1995},{"__isSmartRef__":true,"id":1996},{"__isSmartRef__":true,"id":1997},{"__isSmartRef__":true,"id":1998},{"__isSmartRef__":true,"id":1999},{"__isSmartRef__":true,"id":2000},{"__isSmartRef__":true,"id":2001},{"__isSmartRef__":true,"id":2002},{"__isSmartRef__":true,"id":2003},{"__isSmartRef__":true,"id":2004},{"__isSmartRef__":true,"id":2005},{"__isSmartRef__":true,"id":2006},{"__isSmartRef__":true,"id":2007},{"__isSmartRef__":true,"id":2008},{"__isSmartRef__":true,"id":2009},{"__isSmartRef__":true,"id":2010},{"__isSmartRef__":true,"id":2011},{"__isSmartRef__":true,"id":2012},{"__isSmartRef__":true,"id":2013}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1980":{"name":"Unsent","type":"propertyDef","startIndex":14036,"stopIndex":14108,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1981":{"name":"Opened","type":"propertyDef","startIndex":14110,"stopIndex":14123,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1982":{"name":"HeadersReceived","type":"propertyDef","startIndex":14125,"stopIndex":14147,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1983":{"name":"Loading","type":"propertyDef","startIndex":14149,"stopIndex":14163,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1984":{"name":"Done","type":"propertyDef","startIndex":14165,"stopIndex":14176,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1985":{"name":"formals","type":"propertyDef","startIndex":14179,"stopIndex":14775,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1986":{"name":"initialize","type":"propertyDef","startIndex":14778,"stopIndex":15113,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1987":{"name":"enableProgress","type":"propertyDef","startIndex":15116,"stopIndex":15535,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1988":{"name":"requestNetworkAccess","type":"propertyDef","startIndex":15538,"stopIndex":16004,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1989":{"name":"beSync","type":"propertyDef","startIndex":16007,"stopIndex":16086,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1990":{"name":"beBinary","type":"propertyDef","startIndex":16089,"stopIndex":16172,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1991":{"name":"onReadyStateChange","type":"propertyDef","startIndex":16175,"stopIndex":17697,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1992":{"name":"onProgress","type":"propertyDef","startIndex":17700,"stopIndex":17765,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1993":{"name":"setRequestHeaders","type":"propertyDef","startIndex":17772,"stopIndex":17946,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1994":{"name":"setContentType","type":"propertyDef","startIndex":17949,"stopIndex":18092,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1995":{"name":"getReadyState","type":"propertyDef","startIndex":18095,"stopIndex":18161,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1996":{"name":"getResponseText","type":"propertyDef","startIndex":18164,"stopIndex":18240,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1997":{"name":"getResponseXML","type":"propertyDef","startIndex":18243,"stopIndex":18317,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1998":{"name":"getResponseHeaders","type":"propertyDef","startIndex":18320,"stopIndex":18913,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"1999":{"name":"getStatus","type":"propertyDef","startIndex":18916,"stopIndex":19012,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2000":{"name":"request","type":"propertyDef","startIndex":19015,"stopIndex":19893,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2001":{"name":"get","type":"propertyDef","startIndex":19896,"stopIndex":19977,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2002":{"name":"put","type":"propertyDef","startIndex":19980,"stopIndex":20073,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2003":{"name":"post","type":"propertyDef","startIndex":20076,"stopIndex":20171,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2004":{"name":"propfind","type":"propertyDef","startIndex":20174,"stopIndex":20504,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2005":{"name":"report","type":"propertyDef","startIndex":20507,"stopIndex":20606,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2006":{"name":"mkcol","type":"propertyDef","startIndex":20609,"stopIndex":20706,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2007":{"name":"del","type":"propertyDef","startIndex":20709,"stopIndex":20787,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2008":{"name":"copy","type":"propertyDef","startIndex":20790,"stopIndex":21042,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2009":{"name":"move","type":"propertyDef","startIndex":21044,"stopIndex":21296,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2010":{"name":"lock","type":"propertyDef","startIndex":21300,"stopIndex":21782,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2011":{"name":"unlock","type":"propertyDef","startIndex":21789,"stopIndex":22452,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2012":{"name":"head","type":"propertyDef","startIndex":22454,"stopIndex":22537,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2013":{"name":"toString","type":"propertyDef","startIndex":22540,"stopIndex":22628,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":1979},"className":"NetRequest","_owner":{"__isSmartRef__":true,"id":1977},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2014":{"name":null,"type":"comment","startIndex":22635,"stopIndex":22732,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2015":{"name":"NetRequestReporterTrait","type":"objectDef","startIndex":22733,"stopIndex":24465,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2016}],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2016":{"name":"setRequestStatus","type":"propertyDef","startIndex":22761,"stopIndex":24462,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":true,"category":{"__isSmartRef__":true,"id":2017},"_owner":{"__isSmartRef__":true,"id":2015},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2017":{"name":"default category","type":"categoryDef","startIndex":26,"stopIndex":1730,"fileName":null,"_subElements":[{"__isSmartRef__":true,"id":2016}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2018":{"name":null,"type":"comment","startIndex":24466,"stopIndex":24525,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2019":{"name":"NetRequestReporter","type":"klassDef","startIndex":24526,"stopIndex":24589,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"traits":["NetRequestReporterTrait"],"superclassName":"Object","categories":[],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2020":{"name":null,"type":"comment","startIndex":24590,"stopIndex":24592,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2021":{"name":"Resource","type":"klassDef","startIndex":24593,"stopIndex":27677,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2022},{"__isSmartRef__":true,"id":2024},{"__isSmartRef__":true,"id":2025},{"__isSmartRef__":true,"id":2026},{"__isSmartRef__":true,"id":2027},{"__isSmartRef__":true,"id":2028},{"__isSmartRef__":true,"id":2029},{"__isSmartRef__":true,"id":2030},{"__isSmartRef__":true,"id":2031},{"__isSmartRef__":true,"id":2032},{"__isSmartRef__":true,"id":2033},{"__isSmartRef__":true,"id":2034}],"sourceControl":{"__isSmartRef__":true,"id":1038},"superclassName":"View","categories":[{"__isSmartRef__":true,"id":2023}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2022":{"name":"documentation","type":"propertyDef","startIndex":24650,"stopIndex":24741,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2023},"className":"Resource","_owner":{"__isSmartRef__":true,"id":2021},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2023":{"name":"default category","type":"categoryDef","startIndex":24648,"stopIndex":27674,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2022},{"__isSmartRef__":true,"id":2024},{"__isSmartRef__":true,"id":2025},{"__isSmartRef__":true,"id":2026},{"__isSmartRef__":true,"id":2027},{"__isSmartRef__":true,"id":2028},{"__isSmartRef__":true,"id":2029},{"__isSmartRef__":true,"id":2030},{"__isSmartRef__":true,"id":2031},{"__isSmartRef__":true,"id":2032},{"__isSmartRef__":true,"id":2033},{"__isSmartRef__":true,"id":2034}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2024":{"name":"formals","type":"propertyDef","startIndex":24799,"stopIndex":24993,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2023},"className":"Resource","_owner":{"__isSmartRef__":true,"id":2021},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2025":{"name":"createNetRequest","type":"propertyDef","startIndex":24996,"stopIndex":25338,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2023},"className":"Resource","_owner":{"__isSmartRef__":true,"id":2021},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2026":{"name":"initialize","type":"propertyDef","startIndex":25345,"stopIndex":25470,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2023},"className":"Resource","_owner":{"__isSmartRef__":true,"id":2021},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2027":{"name":"deserialize","type":"propertyDef","startIndex":25473,"stopIndex":25505,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2023},"className":"Resource","_owner":{"__isSmartRef__":true,"id":2021},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2028":{"name":"toString","type":"propertyDef","startIndex":25556,"stopIndex":25641,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2023},"className":"Resource","_owner":{"__isSmartRef__":true,"id":2021},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2029":{"name":"removeNetRequestReporterTrait","type":"propertyDef","startIndex":25644,"stopIndex":25952,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2023},"className":"Resource","_owner":{"__isSmartRef__":true,"id":2021},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2030":{"name":"updateView","type":"propertyDef","startIndex":25959,"stopIndex":26210,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2023},"className":"Resource","_owner":{"__isSmartRef__":true,"id":2021},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2031":{"name":"onURLUpdate","type":"propertyDef","startIndex":26213,"stopIndex":26283,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2023},"className":"Resource","_owner":{"__isSmartRef__":true,"id":2021},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2032":{"name":"fetch","type":"propertyDef","startIndex":26286,"stopIndex":26709,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2023},"className":"Resource","_owner":{"__isSmartRef__":true,"id":2021},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2033":{"name":"fetchProperties","type":"propertyDef","startIndex":26712,"stopIndex":27056,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2023},"className":"Resource","_owner":{"__isSmartRef__":true,"id":2021},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2034":{"name":"store","type":"propertyDef","startIndex":27059,"stopIndex":27671,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2023},"className":"Resource","_owner":{"__isSmartRef__":true,"id":2021},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2035":{"name":null,"type":"comment","startIndex":27678,"stopIndex":27678,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2036":{"name":"SVNResource","type":"klassDef","startIndex":27679,"stopIndex":35585,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2037},{"__isSmartRef__":true,"id":2039},{"__isSmartRef__":true,"id":2040},{"__isSmartRef__":true,"id":2041},{"__isSmartRef__":true,"id":2042},{"__isSmartRef__":true,"id":2043},{"__isSmartRef__":true,"id":2044},{"__isSmartRef__":true,"id":2045},{"__isSmartRef__":true,"id":2046},{"__isSmartRef__":true,"id":2047},{"__isSmartRef__":true,"id":2048},{"__isSmartRef__":true,"id":2049},{"__isSmartRef__":true,"id":2050},{"__isSmartRef__":true,"id":2051},{"__isSmartRef__":true,"id":2052},{"__isSmartRef__":true,"id":2053},{"__isSmartRef__":true,"id":2054}],"sourceControl":{"__isSmartRef__":true,"id":1038},"superclassName":"Resource","categories":[{"__isSmartRef__":true,"id":2038}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2037":{"name":"formals","type":"propertyDef","startIndex":27715,"stopIndex":27791,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2038":{"name":"default category","type":"categoryDef","startIndex":27712,"stopIndex":35582,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2037},{"__isSmartRef__":true,"id":2039},{"__isSmartRef__":true,"id":2040},{"__isSmartRef__":true,"id":2041},{"__isSmartRef__":true,"id":2042},{"__isSmartRef__":true,"id":2043},{"__isSmartRef__":true,"id":2044},{"__isSmartRef__":true,"id":2045},{"__isSmartRef__":true,"id":2046},{"__isSmartRef__":true,"id":2047},{"__isSmartRef__":true,"id":2048},{"__isSmartRef__":true,"id":2049},{"__isSmartRef__":true,"id":2050},{"__isSmartRef__":true,"id":2051},{"__isSmartRef__":true,"id":2052},{"__isSmartRef__":true,"id":2053},{"__isSmartRef__":true,"id":2054}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2039":{"name":"createNetRequest","type":"propertyDef","startIndex":27794,"stopIndex":28136,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2040":{"name":"initialize","type":"propertyDef","startIndex":28143,"stopIndex":28289,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2041":{"name":"getLocalUrl","type":"propertyDef","startIndex":28292,"stopIndex":28417,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2042":{"name":"fetchHeadRevision","type":"propertyDef","startIndex":28420,"stopIndex":28769,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2043":{"name":"fetch","type":"propertyDef","startIndex":28772,"stopIndex":29076,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2044":{"name":"store","type":"propertyDef","startIndex":29083,"stopIndex":29975,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2045":{"name":"del","type":"propertyDef","startIndex":29982,"stopIndex":30248,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2046":{"name":"fetchProperties","type":"propertyDef","startIndex":30251,"stopIndex":30565,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2047":{"name":"fetchMetadata","type":"propertyDef","startIndex":30568,"stopIndex":31435,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2048":{"name":"pvtSetHeadRevFromDoc","type":"propertyDef","startIndex":31438,"stopIndex":31812,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2049":{"name":"pvtScanLogReportForVersionInfos","type":"propertyDef","startIndex":31815,"stopIndex":34286,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2050":{"name":"pvtScanLogReportForVersionInfosTrace","type":"propertyDef","startIndex":34293,"stopIndex":34465,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2051":{"name":"pvtRequestMetadataXML","type":"propertyDef","startIndex":34468,"stopIndex":34897,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2052":{"name":"pvtRequestLocationXML","type":"propertyDef","startIndex":34899,"stopIndex":35251,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2053":{"name":"withBaselineUriDo","type":"propertyDef","startIndex":35255,"stopIndex":35447,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2054":{"name":"createVersionURLString","type":"propertyDef","startIndex":35454,"stopIndex":35579,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2038},"className":"SVNResource","_owner":{"__isSmartRef__":true,"id":2036},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2055":{"name":null,"type":"comment","startIndex":35586,"stopIndex":35586,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2056":{"name":"SVNVersionInfo","type":"klassDef","startIndex":35587,"stopIndex":37805,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2057},{"__isSmartRef__":true,"id":2059},{"__isSmartRef__":true,"id":2060},{"__isSmartRef__":true,"id":2061},{"__isSmartRef__":true,"id":2062}],"sourceControl":{"__isSmartRef__":true,"id":1038},"superclassName":"Object","categories":[{"__isSmartRef__":true,"id":2058}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2057":{"name":"documentation","type":"propertyDef","startIndex":35624,"stopIndex":35705,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2058},"className":"SVNVersionInfo","_owner":{"__isSmartRef__":true,"id":2056},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2058":{"name":"default category","type":"categoryDef","startIndex":35621,"stopIndex":37802,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2057},{"__isSmartRef__":true,"id":2059},{"__isSmartRef__":true,"id":2060},{"__isSmartRef__":true,"id":2061},{"__isSmartRef__":true,"id":2062}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2059":{"name":"initialize","type":"propertyDef","startIndex":35708,"stopIndex":36351,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2058},"className":"SVNVersionInfo","_owner":{"__isSmartRef__":true,"id":2056},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2060":{"name":"parseUTCDateString","type":"propertyDef","startIndex":36354,"stopIndex":36719,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2058},"className":"SVNVersionInfo","_owner":{"__isSmartRef__":true,"id":2056},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2061":{"name":"toString","type":"propertyDef","startIndex":36722,"stopIndex":37473,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2058},"className":"SVNVersionInfo","_owner":{"__isSmartRef__":true,"id":2056},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2062":{"name":"toExpression","type":"propertyDef","startIndex":37480,"stopIndex":37795,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2058},"className":"SVNVersionInfo","_owner":{"__isSmartRef__":true,"id":2056},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2063":{"name":"SVNVersionInfo","type":"klassExtensionDef","startIndex":37806,"stopIndex":39231,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2064}],"sourceControl":{"__isSmartRef__":true,"id":1038},"categories":[{"__isSmartRef__":true,"id":2065}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2064":{"name":"fromPropfindNode","type":"propertyDef","startIndex":37838,"stopIndex":39226,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":true,"category":{"__isSmartRef__":true,"id":2065},"className":"SVNVersionInfo","_owner":{"__isSmartRef__":true,"id":2063},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2065":{"name":"default category","type":"categoryDef","startIndex":37836,"stopIndex":39228,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2064}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2066":{"name":null,"type":"comment","startIndex":39232,"stopIndex":39232,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2067":{"name":"WebResource","type":"klassDef","startIndex":39233,"stopIndex":59878,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2068},{"__isSmartRef__":true,"id":2070},{"__isSmartRef__":true,"id":2072},{"__isSmartRef__":true,"id":2073},{"__isSmartRef__":true,"id":2074},{"__isSmartRef__":true,"id":2075},{"__isSmartRef__":true,"id":2076},{"__isSmartRef__":true,"id":2078},{"__isSmartRef__":true,"id":2080},{"__isSmartRef__":true,"id":2081},{"__isSmartRef__":true,"id":2082},{"__isSmartRef__":true,"id":2083},{"__isSmartRef__":true,"id":2085},{"__isSmartRef__":true,"id":2086},{"__isSmartRef__":true,"id":2087},{"__isSmartRef__":true,"id":2088},{"__isSmartRef__":true,"id":2089},{"__isSmartRef__":true,"id":2090},{"__isSmartRef__":true,"id":2091},{"__isSmartRef__":true,"id":2092},{"__isSmartRef__":true,"id":2094},{"__isSmartRef__":true,"id":2095},{"__isSmartRef__":true,"id":2097},{"__isSmartRef__":true,"id":2099},{"__isSmartRef__":true,"id":2100},{"__isSmartRef__":true,"id":2102},{"__isSmartRef__":true,"id":2103},{"__isSmartRef__":true,"id":2104},{"__isSmartRef__":true,"id":2106},{"__isSmartRef__":true,"id":2107},{"__isSmartRef__":true,"id":2108},{"__isSmartRef__":true,"id":2109},{"__isSmartRef__":true,"id":2110},{"__isSmartRef__":true,"id":2111},{"__isSmartRef__":true,"id":2112},{"__isSmartRef__":true,"id":2113},{"__isSmartRef__":true,"id":2114},{"__isSmartRef__":true,"id":2115},{"__isSmartRef__":true,"id":2116},{"__isSmartRef__":true,"id":2117},{"__isSmartRef__":true,"id":2118},{"__isSmartRef__":true,"id":2119},{"__isSmartRef__":true,"id":2120},{"__isSmartRef__":true,"id":2121},{"__isSmartRef__":true,"id":2122},{"__isSmartRef__":true,"id":2123},{"__isSmartRef__":true,"id":2125},{"__isSmartRef__":true,"id":2127},{"__isSmartRef__":true,"id":2128}],"sourceControl":{"__isSmartRef__":true,"id":1038},"superclassName":"Object","categories":[{"__isSmartRef__":true,"id":2069},{"__isSmartRef__":true,"id":2071},{"__isSmartRef__":true,"id":2077},{"__isSmartRef__":true,"id":2079},{"__isSmartRef__":true,"id":2084},{"__isSmartRef__":true,"id":2093},{"__isSmartRef__":true,"id":2096},{"__isSmartRef__":true,"id":2098},{"__isSmartRef__":true,"id":2101},{"__isSmartRef__":true,"id":2105},{"__isSmartRef__":true,"id":2124},{"__isSmartRef__":true,"id":2126},{"__isSmartRef__":true,"id":2129}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2068":{"name":"connections","type":"propertyDef","startIndex":39283,"stopIndex":39442,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2069},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2069":{"name":"documentation","type":"categoryDef","startIndex":39264,"stopIndex":39445,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2068}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2070":{"name":"initialize","type":"propertyDef","startIndex":39465,"stopIndex":39581,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2071},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2071":{"name":"initializing","type":"categoryDef","startIndex":39447,"stopIndex":46501,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2070},{"__isSmartRef__":true,"id":2072},{"__isSmartRef__":true,"id":2073},{"__isSmartRef__":true,"id":2074},{"__isSmartRef__":true,"id":2075}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2072":{"name":"reset","type":"propertyDef","startIndex":39584,"stopIndex":39865,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2071},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2073":{"name":"createResource","type":"propertyDef","startIndex":39868,"stopIndex":41580,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2071},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2074":{"name":"createNetRequest","type":"propertyDef","startIndex":41583,"stopIndex":42919,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2071},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2075":{"name":"createXMLHTTPRequest","type":"propertyDef","startIndex":42921,"stopIndex":46497,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2071},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2076":{"name":"temporaryChangeURLAndDo","type":"propertyDef","startIndex":46516,"stopIndex":46723,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2077},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2077":{"name":"private","type":"categoryDef","startIndex":46503,"stopIndex":46726,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2076}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2078":{"name":"getURL","type":"propertyDef","startIndex":46743,"stopIndex":46787,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2079},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2079":{"name":"accessing","type":"categoryDef","startIndex":46728,"stopIndex":46997,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2078},{"__isSmartRef__":true,"id":2080},{"__isSmartRef__":true,"id":2081},{"__isSmartRef__":true,"id":2082}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2080":{"name":"getRepoURL","type":"propertyDef","startIndex":46789,"stopIndex":46866,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2079},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2081":{"name":"getName","type":"propertyDef","startIndex":46869,"stopIndex":46929,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2079},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2082":{"name":"isCollection","type":"propertyDef","startIndex":46931,"stopIndex":46994,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2079},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2083":{"name":"isSync","type":"propertyDef","startIndex":47018,"stopIndex":47065,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2084},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2084":{"name":"configuration","type":"categoryDef","startIndex":46999,"stopIndex":47583,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2083},{"__isSmartRef__":true,"id":2085},{"__isSmartRef__":true,"id":2086},{"__isSmartRef__":true,"id":2087},{"__isSmartRef__":true,"id":2088},{"__isSmartRef__":true,"id":2089},{"__isSmartRef__":true,"id":2090},{"__isSmartRef__":true,"id":2091}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2085":{"name":"beSync","type":"propertyDef","startIndex":47067,"stopIndex":47127,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2084},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2086":{"name":"beAsync","type":"propertyDef","startIndex":47129,"stopIndex":47191,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2084},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2087":{"name":"setSync","type":"propertyDef","startIndex":47193,"stopIndex":47258,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2084},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2088":{"name":"isBinary","type":"propertyDef","startIndex":47261,"stopIndex":47312,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2084},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2089":{"name":"beBinary","type":"propertyDef","startIndex":47314,"stopIndex":47378,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2084},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2090":{"name":"beText","type":"propertyDef","startIndex":47380,"stopIndex":47443,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2084},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2091":{"name":"forceUncached","type":"propertyDef","startIndex":47447,"stopIndex":47580,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2084},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2092":{"name":"enableShowingProgress","type":"propertyDef","startIndex":47599,"stopIndex":47683,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2093},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2093":{"name":"progress","type":"categoryDef","startIndex":47585,"stopIndex":48320,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2092},{"__isSmartRef__":true,"id":2094}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2094":{"name":"createProgressBar","type":"propertyDef","startIndex":47685,"stopIndex":48316,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2093},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2095":{"name":"copyTo","type":"propertyDef","startIndex":48338,"stopIndex":48554,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2096},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2096":{"name":"DEPRECATED","type":"categoryDef","startIndex":48322,"stopIndex":48558,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2095}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2097":{"name":"statusMessage","type":"propertyDef","startIndex":48575,"stopIndex":49383,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2098},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2098":{"name":"debugging","type":"categoryDef","startIndex":48560,"stopIndex":49461,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2097},{"__isSmartRef__":true,"id":2099}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2099":{"name":"toString","type":"propertyDef","startIndex":49386,"stopIndex":49458,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2098},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2100":{"name":"setRequestHeaders","type":"propertyDef","startIndex":49485,"stopIndex":49593,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2101},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2101":{"name":"request headers","type":"categoryDef","startIndex":49463,"stopIndex":50036,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2100},{"__isSmartRef__":true,"id":2102},{"__isSmartRef__":true,"id":2103}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2102":{"name":"addHeaderForRequiredRevision","type":"propertyDef","startIndex":49595,"stopIndex":49916,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2101},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2103":{"name":"addContentType","type":"propertyDef","startIndex":49918,"stopIndex":50032,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2101},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2104":{"name":"get","type":"propertyDef","startIndex":50057,"stopIndex":51188,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2105":{"name":"HTTP methods","type":"categoryDef","startIndex":50038,"stopIndex":56317,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2104},{"__isSmartRef__":true,"id":2106},{"__isSmartRef__":true,"id":2107},{"__isSmartRef__":true,"id":2108},{"__isSmartRef__":true,"id":2109},{"__isSmartRef__":true,"id":2110},{"__isSmartRef__":true,"id":2111},{"__isSmartRef__":true,"id":2112},{"__isSmartRef__":true,"id":2113},{"__isSmartRef__":true,"id":2114},{"__isSmartRef__":true,"id":2115},{"__isSmartRef__":true,"id":2116},{"__isSmartRef__":true,"id":2117},{"__isSmartRef__":true,"id":2118},{"__isSmartRef__":true,"id":2119},{"__isSmartRef__":true,"id":2120},{"__isSmartRef__":true,"id":2121},{"__isSmartRef__":true,"id":2122}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2106":{"name":"get2","type":"propertyDef","startIndex":51190,"stopIndex":52324,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2107":{"name":"put_DEPRECATED","type":"propertyDef","startIndex":52328,"stopIndex":52685,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2108":{"name":"put","type":"propertyDef","startIndex":52687,"stopIndex":53060,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2109":{"name":"create","type":"propertyDef","startIndex":53064,"stopIndex":53255,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2110":{"name":"del","type":"propertyDef","startIndex":53258,"stopIndex":53389,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2111":{"name":"post","type":"propertyDef","startIndex":53392,"stopIndex":53660,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2112":{"name":"exists","type":"propertyDef","startIndex":53667,"stopIndex":53883,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2113":{"name":"head","type":"propertyDef","startIndex":53885,"stopIndex":54018,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2114":{"name":"propfind","type":"propertyDef","startIndex":54021,"stopIndex":54197,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2115":{"name":"report","type":"propertyDef","startIndex":54199,"stopIndex":54352,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2116":{"name":"getSubElements","type":"propertyDef","startIndex":54356,"stopIndex":54578,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2117":{"name":"copyTo","type":"propertyDef","startIndex":54581,"stopIndex":54744,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2118":{"name":"moveTo","type":"propertyDef","startIndex":54746,"stopIndex":54909,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2119":{"name":"getVersions","type":"propertyDef","startIndex":54917,"stopIndex":55624,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2120":{"name":"getHeadRevision","type":"propertyDef","startIndex":55627,"stopIndex":55774,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2121":{"name":"getProperties","type":"propertyDef","startIndex":55777,"stopIndex":55966,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2122":{"name":"ensureExistance","type":"propertyDef","startIndex":55968,"stopIndex":56314,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2105},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2123":{"name":"getLocationInRev","type":"propertyDef","startIndex":56341,"stopIndex":57339,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2124},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2124":{"name":"version specific","type":"categoryDef","startIndex":56319,"stopIndex":57343,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2123}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2125":{"name":"pvtProcessForLocationRequest","type":"propertyDef","startIndex":57363,"stopIndex":57870,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2126},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2126":{"name":"XML querying","type":"categoryDef","startIndex":57345,"stopIndex":59024,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2125},{"__isSmartRef__":true,"id":2127}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2127":{"name":"pvtProcessPropfindForSubElements","type":"propertyDef","startIndex":57872,"stopIndex":59021,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2126},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2128":{"name":"convertContent","type":"propertyDef","startIndex":59042,"stopIndex":59873,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":false,"category":{"__isSmartRef__":true,"id":2129},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2067},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2129":{"name":"conversion","type":"categoryDef","startIndex":59026,"stopIndex":59875,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2128}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2130":{"name":null,"type":"comment","startIndex":59879,"stopIndex":59906,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2131":{"name":"WebResource","type":"klassExtensionDef","startIndex":59907,"stopIndex":59991,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2132}],"sourceControl":{"__isSmartRef__":true,"id":1038},"categories":[{"__isSmartRef__":true,"id":2133}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2132":{"name":"create","type":"propertyDef","startIndex":59936,"stopIndex":59986,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"_isStatic":true,"category":{"__isSmartRef__":true,"id":2133},"className":"WebResource","_owner":{"__isSmartRef__":true,"id":2131},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2133":{"name":"default category","type":"categoryDef","startIndex":59934,"stopIndex":59988,"fileName":"lively/Network.js","_subElements":[{"__isSmartRef__":true,"id":2132}],"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2134":{"name":null,"type":"comment","startIndex":59992,"stopIndex":59992,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2135":{"name":null,"type":"unknown","startIndex":59993,"stopIndex":60026,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2136":{"name":null,"type":"comment","startIndex":60027,"stopIndex":60028,"fileName":"lively/Network.js","_subElements":[],"sourceControl":{"__isSmartRef__":true,"id":1038},"__LivelyClassName__":"lively.ide.FileFragment","__SourceModuleName__":"Global.lively.ide.FileParsing"},"2137":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/NewMorphicCompat.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2138":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/NoMoreModels.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2139":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/OldModel.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2140":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/Ometa.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2141":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/PartsBin.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2142":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/Presentation.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2143":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/Rendering.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2144":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/SmalltalkParser.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2145":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/SmalltalkParser.ometa","showAll":false,"__LivelyClassName__":"lively.ide.CompleteOmetaFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2146":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/SmalltalkParserSupport.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2147":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/TestFramework.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2148":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/TestRunnerExtensions.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2149":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/Tracing.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2150":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/Traits.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2151":{"browser":{"__isSmartRef__":true,"id":1601},"parent":{"__isSmartRef__":true,"id":1875},"moduleName":"lively/WidgetsTraits.js","showAll":false,"__LivelyClassName__":"lively.ide.CompleteFileFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2152":{"target":{"__isSmartRef__":true,"id":2153},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.ChangeSetNode","__SourceModuleName__":"Global.lively.ide.LocalBrowser"},"2153":{"name":"Local code","__LivelyClassName__":"ChangeSet","__SourceModuleName__":"Global.lively.ChangeSet"},"2154":{"isListItem":true,"string":"bindings/","value":{"__isSmartRef__":true,"id":1881}},"2155":{"isListItem":true,"string":"ide/","value":{"__isSmartRef__":true,"id":1882}},"2156":{"isListItem":true,"string":"morphic/","value":{"__isSmartRef__":true,"id":1883}},"2157":{"isListItem":true,"string":"persistence/","value":{"__isSmartRef__":true,"id":1884}},"2158":{"isListItem":true,"string":"../","value":{"__isSmartRef__":true,"id":1885}},"2159":{"isListItem":true,"string":"Base.js (not parsed)","value":{"__isSmartRef__":true,"id":1886}},"2160":{"isListItem":true,"string":"bindings.js (not parsed)","value":{"__isSmartRef__":true,"id":1887}},"2161":{"isListItem":true,"string":"bootstrap.js (not parsed)","value":{"__isSmartRef__":true,"id":1888}},"2162":{"isListItem":true,"string":"ChangeSet.js (not parsed)","value":{"__isSmartRef__":true,"id":1889}},"2163":{"isListItem":true,"string":"Core.js (not parsed)","value":{"__isSmartRef__":true,"id":1890}},"2164":{"isListItem":true,"string":"CrayonColors.js (not parsed)","value":{"__isSmartRef__":true,"id":1891}},"2165":{"isListItem":true,"string":"Data.js (not parsed)","value":{"__isSmartRef__":true,"id":1892}},"2166":{"isListItem":true,"string":"defaultconfig.js (not parsed)","value":{"__isSmartRef__":true,"id":1893}},"2167":{"isListItem":true,"string":"DOMAbstraction.js (not parsed)","value":{"__isSmartRef__":true,"id":1894}},"2168":{"isListItem":true,"string":"Helper.js (not parsed)","value":{"__isSmartRef__":true,"id":1895}},"2169":{"isListItem":true,"string":"ide.js (not parsed)","value":{"__isSmartRef__":true,"id":1896}},"2170":{"isListItem":true,"string":"JSON.js (not parsed)","value":{"__isSmartRef__":true,"id":1897}},"2171":{"isListItem":true,"string":"LayerableMorphs.js (not parsed)","value":{"__isSmartRef__":true,"id":1898}},"2172":{"isListItem":true,"string":"LKFileParser.js (not parsed)","value":{"__isSmartRef__":true,"id":1899}},"2173":{"isListItem":true,"string":"LKFileParser.ometa (not parsed)","value":{"__isSmartRef__":true,"id":1900}},"2174":{"isListItem":true,"string":"localconfig.js (not parsed)","value":{"__isSmartRef__":true,"id":1901}},"2175":{"isListItem":true,"string":"LogHelper.js (not parsed)","value":{"__isSmartRef__":true,"id":1902}},"2176":{"isListItem":true,"string":"Main.js (not parsed)","value":{"__isSmartRef__":true,"id":1903}},"2177":{"isListItem":true,"string":"Migration.js (not parsed)","value":{"__isSmartRef__":true,"id":1904}},"2178":{"isListItem":true,"string":"miniprototype.js (not parsed)","value":{"__isSmartRef__":true,"id":1905}},"2179":{"isListItem":true,"string":"morphic.js (not parsed)","value":{"__isSmartRef__":true,"id":1906}},"2180":{"isListItem":true,"string":"Network.js","value":{"__isSmartRef__":true,"id":1907}},"2181":{"isListItem":true,"string":"NewMorphicCompat.js (not parsed)","value":{"__isSmartRef__":true,"id":2137}},"2182":{"isListItem":true,"string":"NoMoreModels.js (not parsed)","value":{"__isSmartRef__":true,"id":2138}},"2183":{"isListItem":true,"string":"OldModel.js (not parsed)","value":{"__isSmartRef__":true,"id":2139}},"2184":{"isListItem":true,"string":"Ometa.js (not parsed)","value":{"__isSmartRef__":true,"id":2140}},"2185":{"isListItem":true,"string":"PartsBin.js (not parsed)","value":{"__isSmartRef__":true,"id":2141}},"2186":{"isListItem":true,"string":"Presentation.js (not parsed)","value":{"__isSmartRef__":true,"id":2142}},"2187":{"isListItem":true,"string":"Rendering.js (not parsed)","value":{"__isSmartRef__":true,"id":2143}},"2188":{"isListItem":true,"string":"SmalltalkParser.js (not parsed)","value":{"__isSmartRef__":true,"id":2144}},"2189":{"isListItem":true,"string":"SmalltalkParser.ometa (not parsed)","value":{"__isSmartRef__":true,"id":2145}},"2190":{"isListItem":true,"string":"SmalltalkParserSupport.js (not parsed)","value":{"__isSmartRef__":true,"id":2146}},"2191":{"isListItem":true,"string":"TestFramework.js (not parsed)","value":{"__isSmartRef__":true,"id":2147}},"2192":{"isListItem":true,"string":"TestRunnerExtensions.js (not parsed)","value":{"__isSmartRef__":true,"id":2148}},"2193":{"isListItem":true,"string":"Tracing.js (not parsed)","value":{"__isSmartRef__":true,"id":2149}},"2194":{"isListItem":true,"string":"Traits.js (not parsed)","value":{"__isSmartRef__":true,"id":2150}},"2195":{"isListItem":true,"string":"WidgetsTraits.js (not parsed)","value":{"__isSmartRef__":true,"id":2151}},"2196":{"isListItem":true,"string":"Local code","value":{"__isSmartRef__":true,"id":2152}},"2197":{"morph":{"__isSmartRef__":true,"id":1864},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2198":{"x":0,"y":27.5,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2199":{"sourceObj":{"__isSmartRef__":true,"id":1864},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"setPane1Selection","converter":null,"converterString":null,"updaterString":"function ($upd, v) { $upd(v, this.sourceObj) }","varMapping":{"__isSmartRef__":true,"id":2200},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2201},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2200":{"source":{"__isSmartRef__":true,"id":1864},"target":{"__isSmartRef__":true,"id":1601}},"2201":{"updater":{"__isSmartRef__":true,"id":2202}},"2202":{"originalFunc":null,"varMapping":{"__isSmartRef__":true,"id":2200},"source":"function ($upd, v) { $upd(v, this.sourceObj) }","funcProperties":{"__isSmartRef__":true,"id":2203},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2203":{},"2204":{"sourceObj":{"__isSmartRef__":true,"id":1864},"sourceAttrName":"getSelection","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"getPane1Selection","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2205},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2205":{"source":{"__isSmartRef__":true,"id":1864},"target":{"__isSmartRef__":true,"id":1601}},"2206":{"sourceObj":{"__isSmartRef__":true,"id":1864},"sourceAttrName":"getList","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"getPane1Content","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2207},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2207":{"source":{"__isSmartRef__":true,"id":1864},"target":{"__isSmartRef__":true,"id":1601}},"2208":{"sourceObj":{"__isSmartRef__":true,"id":1864},"sourceAttrName":"getMenu","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"getPane1Menu","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2209},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2209":{"source":{"__isSmartRef__":true,"id":1864},"target":{"__isSmartRef__":true,"id":1601}},"2210":{"onDownPressed":{"__isSmartRef__":true,"id":2211},"onUpPressed":{"__isSmartRef__":true,"id":2218}},"2211":{"varMapping":{"__isSmartRef__":true,"id":2212},"source":"function onDownPressed(evt) {\n $super(evt);\n this.focus.bind(this).delay(0);\n return true;\n }","funcProperties":{"__isSmartRef__":true,"id":2217},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2212":{"this":{"__isSmartRef__":true,"id":1864},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2213}},"2213":{"$super":{"__isSmartRef__":true,"id":2214}},"2214":{"varMapping":{"__isSmartRef__":true,"id":2215},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch(e) {\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2216},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2215":{"obj":{"__isSmartRef__":true,"id":1864},"name":"onDownPressed"},"2216":{},"2217":{},"2218":{"varMapping":{"__isSmartRef__":true,"id":2219},"source":"function onUpPressed(evt) {\n $super(evt);\n this.focus.bind(this).delay(0);\n return true;\n }","funcProperties":{"__isSmartRef__":true,"id":2224},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2219":{"this":{"__isSmartRef__":true,"id":1864},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2220}},"2220":{"$super":{"__isSmartRef__":true,"id":2221}},"2221":{"varMapping":{"__isSmartRef__":true,"id":2222},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch(e) {\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2223},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2222":{"obj":{"__isSmartRef__":true,"id":1864},"name":"onUpPressed"},"2223":{},"2224":{},"2225":{"source":{"__isSmartRef__":true,"id":1601},"target":{"__isSmartRef__":true,"id":1864}},"2226":{"sourceObj":{"__isSmartRef__":true,"id":1601},"sourceAttrName":"setPane2Content","targetObj":{"__isSmartRef__":true,"id":2227},"targetMethodName":"updateList","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2290},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2227":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2228},"id":248,"renderContextTable":{"__isSmartRef__":true,"id":2234},"itemList":[{"__isSmartRef__":true,"id":2235},{"__isSmartRef__":true,"id":2237},{"__isSmartRef__":true,"id":2239},{"__isSmartRef__":true,"id":2241},{"__isSmartRef__":true,"id":2243},{"__isSmartRef__":true,"id":2245},{"__isSmartRef__":true,"id":2247},{"__isSmartRef__":true,"id":2249},{"__isSmartRef__":true,"id":2251},{"__isSmartRef__":true,"id":2253},{"__isSmartRef__":true,"id":2255},{"__isSmartRef__":true,"id":2257},{"__isSmartRef__":true,"id":2259},{"__isSmartRef__":true,"id":2261},{"__isSmartRef__":true,"id":2263}],"_FontFamily":"Helvetica","eventHandler":{"__isSmartRef__":true,"id":2265},"droppingEnabled":true,"halosEnabled":true,"_ClipMode":"auto","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":2266},"selectedLineNo":-1,"selectOnMove":false,"owner":{"__isSmartRef__":true,"id":1587},"attributeConnections":[{"__isSmartRef__":true,"id":2267},{"__isSmartRef__":true,"id":2269},{"__isSmartRef__":true,"id":2271},{"__isSmartRef__":true,"id":2273}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"selection":null,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2275},"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Core"},"2228":{"_Position":{"__isSmartRef__":true,"id":2229},"renderContextTable":{"__isSmartRef__":true,"id":2230},"_Extent":{"__isSmartRef__":true,"id":2231},"_Padding":{"__isSmartRef__":true,"id":2232},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":{"__isSmartRef__":true,"id":2233},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2229":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2230":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2231":{"x":205,"y":192.5,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2232":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2233":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2234":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateListContent":"updateListContentHTML","resizeList":"resizeListHTML","getItemIndexFromEvent":"getItemIndexFromEventHTML","getListExtent":"getListExtentHTML","setSize":"setSizeHTML","renderAsDropDownList":"renderAsDropDownListHTML","setFontSize":"setFontSizeHTML","setFontFamily":"setFontFamilyHTML","getSelectedIndexes":"getSelectedIndexesHTML","enableMultipleSelections":"enableMultipleSelectionsHTML","selectAllAt":"selectAllAtHTML","clearSelections":"clearSelectionsHTML","deselectAt":"deselectAtHTML"},"2235":{"isListItem":true,"string":"URL","value":{"__isSmartRef__":true,"id":2236}},"2236":{"target":{"__isSmartRef__":true,"id":1910},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2237":{"isListItem":true,"string":"URL (extension)","value":{"__isSmartRef__":true,"id":2238}},"2238":{"target":{"__isSmartRef__":true,"id":1942},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2239":{"isListItem":true,"string":"URL (extension)","value":{"__isSmartRef__":true,"id":2240}},"2240":{"target":{"__isSmartRef__":true,"id":1946},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2241":{"isListItem":true,"string":"URL (extension)","value":{"__isSmartRef__":true,"id":2242}},"2242":{"target":{"__isSmartRef__":true,"id":1950},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2243":{"isListItem":true,"string":"URL (extension)","value":{"__isSmartRef__":true,"id":2244}},"2244":{"target":{"__isSmartRef__":true,"id":1954},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2245":{"isListItem":true,"string":"NetRequestStatus","value":{"__isSmartRef__":true,"id":2246}},"2246":{"target":{"__isSmartRef__":true,"id":1962},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2247":{"isListItem":true,"string":"NetRequest","value":{"__isSmartRef__":true,"id":2248}},"2248":{"target":{"__isSmartRef__":true,"id":1977},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2249":{"isListItem":true,"string":"NetRequestReporterTrait (object)","value":{"__isSmartRef__":true,"id":2250}},"2250":{"target":{"__isSmartRef__":true,"id":2015},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.ObjectFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2251":{"isListItem":true,"string":"NetRequestReporter","value":{"__isSmartRef__":true,"id":2252}},"2252":{"target":{"__isSmartRef__":true,"id":2019},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2253":{"isListItem":true,"string":"Resource","value":{"__isSmartRef__":true,"id":2254}},"2254":{"target":{"__isSmartRef__":true,"id":2021},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2255":{"isListItem":true,"string":"SVNResource","value":{"__isSmartRef__":true,"id":2256}},"2256":{"target":{"__isSmartRef__":true,"id":2036},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2257":{"isListItem":true,"string":"SVNVersionInfo","value":{"__isSmartRef__":true,"id":2258}},"2258":{"target":{"__isSmartRef__":true,"id":2056},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2259":{"isListItem":true,"string":"SVNVersionInfo (extension)","value":{"__isSmartRef__":true,"id":2260}},"2260":{"target":{"__isSmartRef__":true,"id":2063},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2261":{"isListItem":true,"string":"WebResource","value":{"__isSmartRef__":true,"id":2262}},"2262":{"target":{"__isSmartRef__":true,"id":2067},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2263":{"isListItem":true,"string":"WebResource (extension)","value":{"__isSmartRef__":true,"id":2264}},"2264":{"target":{"__isSmartRef__":true,"id":2131},"browser":{"__isSmartRef__":true,"id":1601},"__LivelyClassName__":"lively.ide.CategorizedClassFragmentNode","__SourceModuleName__":"Global.lively.ide.SystemBrowserNodes"},"2265":{"morph":{"__isSmartRef__":true,"id":2227},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2266":{"x":205,"y":27.5,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2267":{"sourceObj":{"__isSmartRef__":true,"id":2227},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"setPane2Selection","converter":null,"converterString":null,"updater":null,"updaterString":"function ($upd, v) { $upd(v, this.sourceObj) }","varMapping":{"__isSmartRef__":true,"id":2268},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2268":{"source":{"__isSmartRef__":true,"id":2227},"target":{"__isSmartRef__":true,"id":1601}},"2269":{"sourceObj":{"__isSmartRef__":true,"id":2227},"sourceAttrName":"getSelection","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"getPane2Selection","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2270},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2270":{"source":{"__isSmartRef__":true,"id":2227},"target":{"__isSmartRef__":true,"id":1601}},"2271":{"sourceObj":{"__isSmartRef__":true,"id":2227},"sourceAttrName":"getList","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"getPane2Content","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2272},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2272":{"source":{"__isSmartRef__":true,"id":2227},"target":{"__isSmartRef__":true,"id":1601}},"2273":{"sourceObj":{"__isSmartRef__":true,"id":2227},"sourceAttrName":"getMenu","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"getPane2Menu","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2274},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2274":{"source":{"__isSmartRef__":true,"id":2227},"target":{"__isSmartRef__":true,"id":1601}},"2275":{"onDownPressed":{"__isSmartRef__":true,"id":2276},"onUpPressed":{"__isSmartRef__":true,"id":2283}},"2276":{"varMapping":{"__isSmartRef__":true,"id":2277},"source":"function onDownPressed(evt) {\n $super(evt);\n this.focus.bind(this).delay(0);\n return true;\n }","funcProperties":{"__isSmartRef__":true,"id":2282},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2277":{"this":{"__isSmartRef__":true,"id":2227},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2278}},"2278":{"$super":{"__isSmartRef__":true,"id":2279}},"2279":{"varMapping":{"__isSmartRef__":true,"id":2280},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch(e) {\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2281},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2280":{"obj":{"__isSmartRef__":true,"id":2227},"name":"onDownPressed"},"2281":{},"2282":{},"2283":{"varMapping":{"__isSmartRef__":true,"id":2284},"source":"function onUpPressed(evt) {\n $super(evt);\n this.focus.bind(this).delay(0);\n return true;\n }","funcProperties":{"__isSmartRef__":true,"id":2289},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2284":{"this":{"__isSmartRef__":true,"id":2227},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2285}},"2285":{"$super":{"__isSmartRef__":true,"id":2286}},"2286":{"varMapping":{"__isSmartRef__":true,"id":2287},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch(e) {\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2288},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2287":{"obj":{"__isSmartRef__":true,"id":2227},"name":"onUpPressed"},"2288":{},"2289":{},"2290":{"source":{"__isSmartRef__":true,"id":1601},"target":{"__isSmartRef__":true,"id":2227}},"2291":{"sourceObj":{"__isSmartRef__":true,"id":1601},"sourceAttrName":"setPane3Content","targetObj":{"__isSmartRef__":true,"id":2292},"targetMethodName":"updateList","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2325},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2292":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2293},"id":249,"renderContextTable":{"__isSmartRef__":true,"id":2299},"itemList":["-----"],"_FontFamily":"Helvetica","eventHandler":{"__isSmartRef__":true,"id":2300},"droppingEnabled":true,"halosEnabled":true,"_ClipMode":"auto","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":2301},"selectedLineNo":-1,"selectOnMove":false,"owner":{"__isSmartRef__":true,"id":1587},"attributeConnections":[{"__isSmartRef__":true,"id":2302},{"__isSmartRef__":true,"id":2304},{"__isSmartRef__":true,"id":2306},{"__isSmartRef__":true,"id":2308}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"selection":null,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2310},"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Core"},"2293":{"_Position":{"__isSmartRef__":true,"id":2294},"renderContextTable":{"__isSmartRef__":true,"id":2295},"_Extent":{"__isSmartRef__":true,"id":2296},"_Padding":{"__isSmartRef__":true,"id":2297},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":{"__isSmartRef__":true,"id":2298},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2294":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2295":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2296":{"x":205,"y":192.5,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2297":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2298":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2299":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateListContent":"updateListContentHTML","resizeList":"resizeListHTML","getItemIndexFromEvent":"getItemIndexFromEventHTML","getListExtent":"getListExtentHTML","setSize":"setSizeHTML","renderAsDropDownList":"renderAsDropDownListHTML","setFontSize":"setFontSizeHTML","setFontFamily":"setFontFamilyHTML","getSelectedIndexes":"getSelectedIndexesHTML","enableMultipleSelections":"enableMultipleSelectionsHTML","selectAllAt":"selectAllAtHTML","clearSelections":"clearSelectionsHTML","deselectAt":"deselectAtHTML"},"2300":{"morph":{"__isSmartRef__":true,"id":2292},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2301":{"x":410,"y":27.5,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2302":{"sourceObj":{"__isSmartRef__":true,"id":2292},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"setPane3Selection","converter":null,"converterString":null,"updater":null,"updaterString":"function ($upd, v) { $upd(v, this.sourceObj) }","varMapping":{"__isSmartRef__":true,"id":2303},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2303":{"source":{"__isSmartRef__":true,"id":2292},"target":{"__isSmartRef__":true,"id":1601}},"2304":{"sourceObj":{"__isSmartRef__":true,"id":2292},"sourceAttrName":"getSelection","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"getPane3Selection","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2305},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2305":{"source":{"__isSmartRef__":true,"id":2292},"target":{"__isSmartRef__":true,"id":1601}},"2306":{"sourceObj":{"__isSmartRef__":true,"id":2292},"sourceAttrName":"getList","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"getPane3Content","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2307},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2307":{"source":{"__isSmartRef__":true,"id":2292},"target":{"__isSmartRef__":true,"id":1601}},"2308":{"sourceObj":{"__isSmartRef__":true,"id":2292},"sourceAttrName":"getMenu","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"getPane3Menu","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2309},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2309":{"source":{"__isSmartRef__":true,"id":2292},"target":{"__isSmartRef__":true,"id":1601}},"2310":{"onDownPressed":{"__isSmartRef__":true,"id":2311},"onUpPressed":{"__isSmartRef__":true,"id":2318}},"2311":{"varMapping":{"__isSmartRef__":true,"id":2312},"source":"function onDownPressed(evt) {\n $super(evt);\n this.focus.bind(this).delay(0);\n return true;\n }","funcProperties":{"__isSmartRef__":true,"id":2317},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2312":{"this":{"__isSmartRef__":true,"id":2292},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2313}},"2313":{"$super":{"__isSmartRef__":true,"id":2314}},"2314":{"varMapping":{"__isSmartRef__":true,"id":2315},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch(e) {\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2316},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2315":{"obj":{"__isSmartRef__":true,"id":2292},"name":"onDownPressed"},"2316":{},"2317":{},"2318":{"varMapping":{"__isSmartRef__":true,"id":2319},"source":"function onUpPressed(evt) {\n $super(evt);\n this.focus.bind(this).delay(0);\n return true;\n }","funcProperties":{"__isSmartRef__":true,"id":2324},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2319":{"this":{"__isSmartRef__":true,"id":2292},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2320}},"2320":{"$super":{"__isSmartRef__":true,"id":2321}},"2321":{"varMapping":{"__isSmartRef__":true,"id":2322},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch(e) {\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2323},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2322":{"obj":{"__isSmartRef__":true,"id":2292},"name":"onUpPressed"},"2323":{},"2324":{},"2325":{"source":{"__isSmartRef__":true,"id":1601},"target":{"__isSmartRef__":true,"id":2292}},"2326":{"sourceObj":{"__isSmartRef__":true,"id":1601},"sourceAttrName":"setPane4Content","targetObj":{"__isSmartRef__":true,"id":2327},"targetMethodName":"updateList","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2360},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2327":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2328},"id":250,"renderContextTable":{"__isSmartRef__":true,"id":2334},"itemList":["-----"],"_FontFamily":"Helvetica","eventHandler":{"__isSmartRef__":true,"id":2335},"droppingEnabled":true,"halosEnabled":true,"_ClipMode":"auto","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":2336},"selectedLineNo":-1,"selectOnMove":false,"owner":{"__isSmartRef__":true,"id":1587},"attributeConnections":[{"__isSmartRef__":true,"id":2337},{"__isSmartRef__":true,"id":2339},{"__isSmartRef__":true,"id":2341},{"__isSmartRef__":true,"id":2343}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"selection":null,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2345},"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Core"},"2328":{"_Position":{"__isSmartRef__":true,"id":2329},"renderContextTable":{"__isSmartRef__":true,"id":2330},"_Extent":{"__isSmartRef__":true,"id":2331},"_Padding":{"__isSmartRef__":true,"id":2332},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":{"__isSmartRef__":true,"id":2333},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2329":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2330":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2331":{"x":205,"y":192.5,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2332":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2333":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2334":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateListContent":"updateListContentHTML","resizeList":"resizeListHTML","getItemIndexFromEvent":"getItemIndexFromEventHTML","getListExtent":"getListExtentHTML","setSize":"setSizeHTML","renderAsDropDownList":"renderAsDropDownListHTML","setFontSize":"setFontSizeHTML","setFontFamily":"setFontFamilyHTML","getSelectedIndexes":"getSelectedIndexesHTML","enableMultipleSelections":"enableMultipleSelectionsHTML","selectAllAt":"selectAllAtHTML","clearSelections":"clearSelectionsHTML","deselectAt":"deselectAtHTML"},"2335":{"morph":{"__isSmartRef__":true,"id":2327},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2336":{"x":615,"y":27.5,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2337":{"sourceObj":{"__isSmartRef__":true,"id":2327},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"setPane4Selection","converter":null,"converterString":null,"updater":null,"updaterString":"function ($upd, v) { $upd(v, this.sourceObj) }","varMapping":{"__isSmartRef__":true,"id":2338},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2338":{"source":{"__isSmartRef__":true,"id":2327},"target":{"__isSmartRef__":true,"id":1601}},"2339":{"sourceObj":{"__isSmartRef__":true,"id":2327},"sourceAttrName":"getSelection","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"getPane4Selection","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2340},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2340":{"source":{"__isSmartRef__":true,"id":2327},"target":{"__isSmartRef__":true,"id":1601}},"2341":{"sourceObj":{"__isSmartRef__":true,"id":2327},"sourceAttrName":"getList","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"getPane4Content","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2342},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2342":{"source":{"__isSmartRef__":true,"id":2327},"target":{"__isSmartRef__":true,"id":1601}},"2343":{"sourceObj":{"__isSmartRef__":true,"id":2327},"sourceAttrName":"getMenu","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"getPane4Menu","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2344},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2344":{"source":{"__isSmartRef__":true,"id":2327},"target":{"__isSmartRef__":true,"id":1601}},"2345":{"onDownPressed":{"__isSmartRef__":true,"id":2346},"onUpPressed":{"__isSmartRef__":true,"id":2353}},"2346":{"varMapping":{"__isSmartRef__":true,"id":2347},"source":"function onDownPressed(evt) {\n $super(evt);\n this.focus.bind(this).delay(0);\n return true;\n }","funcProperties":{"__isSmartRef__":true,"id":2352},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2347":{"this":{"__isSmartRef__":true,"id":2327},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2348}},"2348":{"$super":{"__isSmartRef__":true,"id":2349}},"2349":{"varMapping":{"__isSmartRef__":true,"id":2350},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch(e) {\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2351},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2350":{"obj":{"__isSmartRef__":true,"id":2327},"name":"onDownPressed"},"2351":{},"2352":{},"2353":{"varMapping":{"__isSmartRef__":true,"id":2354},"source":"function onUpPressed(evt) {\n $super(evt);\n this.focus.bind(this).delay(0);\n return true;\n }","funcProperties":{"__isSmartRef__":true,"id":2359},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2354":{"this":{"__isSmartRef__":true,"id":2327},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2355}},"2355":{"$super":{"__isSmartRef__":true,"id":2356}},"2356":{"varMapping":{"__isSmartRef__":true,"id":2357},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch(e) {\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2358},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2357":{"obj":{"__isSmartRef__":true,"id":2327},"name":"onUpPressed"},"2358":{},"2359":{},"2360":{"source":{"__isSmartRef__":true,"id":1601},"target":{"__isSmartRef__":true,"id":2327}},"2361":{"sourceObj":{"__isSmartRef__":true,"id":1601},"sourceAttrName":"setSourceString","targetObj":{"__isSmartRef__":true,"id":2362},"targetMethodName":"setTextString","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2378},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2362":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2363},"id":252,"renderContextTable":{"__isSmartRef__":true,"id":2368},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2369}],"eventHandler":{"__isSmartRef__":true,"id":2371},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"auto","fixedWidth":true,"fixedHeight":true,"allowInput":true,"_FontFamily":"Courier","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":2372},"priorExtent":{"__isSmartRef__":true,"id":2373},"_MaxTextWidth":808,"_MinTextWidth":808,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1587},"accessibleInInactiveWindow":true,"layout":{"__isSmartRef__":true,"id":2374},"noEval":true,"syntaxHighlightingWhileTyping":true,"attributeConnections":[{"__isSmartRef__":true,"id":2375},{"__isSmartRef__":true,"id":2376}],"doNotSerialize":["$$textString","$$savedTextString"],"doNotCopyProperties":["$$textString","$$savedTextString"],"textString":"/*\n * Copyright (c) 2006-2009 Sun Microsystems, Inc.\n * Copyright (c) 2008-2011 Hasso Plattner Institute\n *\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * Network.js. Networking capabilities.\n *\n * Note: In a browser-based implementation of our system,\n * most of the necessary networking functionality is \n * inherited from the browser. \n */\n\nmodule('lively.Network').requires('lively.bindings', 'lively.NoMoreModels', 'lively.Data').toRun(function(thisModule) {\n \nObject.subclass('URL', {\n splitter: new RegExp('(http:|https:|file:)' + '(//[^/:]*(:[0-9]+)?)?' + '(/.*)?'),\n pathSplitter: new RegExp(\"([^\\\\?#]*)(\\\\?[^#]*)?(#.*)?\"),\n \n initialize: function(/*...*/) { // same field names as window.location\n dbgOn(!arguments[0]);\n if (Object.isString(arguments[0].valueOf())) {\n var urlString = arguments[0];\n var result = urlString.match(this.splitter);\n if (!result) throw new Error(\"malformed URL string '\" + urlString + \"'\");\n this.protocol = result[1]; \n if (!result[1]) \n throw new Error(\"bad url \" + urlString + \", \" + result);\n this.hostname = result[2] && result[2].substring(2).split(':')[0]; // skip the leading slashes and remove port\n this.port = result[3] && parseInt(result[3].substring(1)); // skip the colon\n\n var fullpath = result[4];\n if (fullpath) {\n result = fullpath.match(this.pathSplitter);\n this.pathname = result[1];\n this.search = result[2];\n this.hash = result[3];\n } else {\n this.pathname = \"/\";\n this.search = \"\";\n this.hash = \"\";\n }\n } else { // spec is either an URL or window.location\n var spec = arguments[0];\n this.protocol = spec.protocol || \"http\";\n this.port = spec.port;\n this.hostname = spec.hostname;\n this.pathname = spec.pathname || \"\";\n if (spec.search !== undefined) this.search = spec.search;\n if (spec.hash !== undefined) this.hash = spec.hash;\n }\n },\n \n inspect: function() {\n return JSON.serialize(this);\n },\n \n toString: function() {\n return this.protocol + \"//\" + this.hostname + (this.port ? \":\" + this.port : \"\") + this.fullPath();\n },\n\n fullPath: function() {\n return this.pathname + (this.search || \"\") + (this.hash || \"\");\n },\n \n isLeaf: function() {\n return !this.fullPath().endsWith('/');\n },\n \n // POSIX style\n dirname: function() {\n var p = this.pathname;\n var slash = p.endsWith('/') ? p.lastIndexOf('/', p.length - 2) : p.lastIndexOf('/');\n return p.substring(0, slash + 1);\n },\n\n filename: function() {\n var p = this.pathname;\n var slash = p.endsWith('/') ? p.lastIndexOf('/', p.length - 2) : p.lastIndexOf('/');\n return p.substring(slash + 1);\n },\n\n normalizedHostname: function() {\n return this.hostname.replace(/^www\\.(.*)/, '$1');\n },\n \n getDirectory: function() {\n return this.withPath(this.dirname());\n },\n asDirectory: function() {\n return this.fullPath().endsWith('/') ?\n this : new URL(this.withoutQuery().toString() + '/');\n },\n \n \n \n \n\n\n withPath: function(path) { \n var result = path.match(this.pathSplitter);\n if (!result) return null;\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: \n result[1], search: result[2], hash: result[3] });\n },\n\n withRelativePath: function(pathString) {\n if (pathString.startsWith('/')) {\n if (this.pathname.endsWith('/'))\n pathString = pathString.substring(1);\n } else {\n if (!this.pathname.endsWith('/'))\n pathString = \"/\" + pathString;\n }\n return this.withPath(this.pathname + pathString);\n },\n \n withFilename: function(filename) {\n if (filename == \"./\" || filename == \".\") // a bit of normalization, not foolproof\n filename = \"\";\n var dirPart = this.isLeaf() ? this.dirname() : this.fullPath();\n return new URL({protocol: this.protocol, port: this.port, \n hostname: this.hostname, pathname: dirPart + filename});\n },\n\n toQueryString: function(record) {\n var results = [];\n Properties.forEachOwn(record, function(p, value) {\n results.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(String(value)));\n });\n return results.join('&');\n },\n\n withQuery: function(record) {\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: this.pathname,\n search: \"?\" + this.toQueryString(record), hash: this.hash});\n },\n \n withoutQuery: function() {\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: this.pathname});\n },\n\n getQuery: function() {\n var s = this.toString();\n if (!s.include(\"?\"))\n return {};\n return s.toQueryParams();\n },\n \n eq: function(url) {\n if (!url) return false;\n return url.protocol == this.protocol &&\n url.port == this.port &&\n url.normalizedHostname() == this.normalizedHostname() &&\n url.pathname == this.pathname &&\n url.search == this.search &&\n url.hash == this.hash;\n },\n isIn: function(origin) {\n return origin.normalizedHostname() == this.normalizedHostname() &&\n this.fullPath().startsWith(origin.fullPath());\n },\n\n\n relativePathFrom: function(origin) {\n function checkPathes(path1, path2) {\n var paths1 = path1.split('/'),\n paths2 = path2.split('/');\n\n paths1.shift();\n paths2.shift();\n\n for (var i = 0; i < paths2.length; i++) {\n if (!paths1[i] || (paths1[i] != paths2[i]))\n break;\n }\n\n // now that's some JavaScript FOO\n var result = '../'.times(paths2.length - i - 1) + paths1.splice(i, paths1.length).join('/');\n return result;\n }\n\n if (origin.normalizedHostname() != this.normalizedHostname())\n throw new Error('hostname differs in relativePathFrom ' + origin + ' vs ' + this);\n var myPath = this.withRelativePartsResolved().pathname,\n otherPath = origin.withRelativePartsResolved().pathname;\n if (myPath == otherPath) return '';\n var relPath = checkPathes(myPath, otherPath);\n if (!relPath)\n throw new Error('pathname differs in relativePathFrom ' + origin + ' vs ' + this);\n return relPath;\n },\n\n svnWorkspacePath: function() {\n // heuristics to figure out the Subversion path\n var path = this.pathname;\n // note that the trunk/branches/tags convention is only a convention\n var index = path.lastIndexOf('trunk');\n if (index < 0) index = path.lastIndexOf('branches');\n if (index < 0) index = path.lastIndexOf('tags');\n if (index < 0) return null;\n return path.substring(index);\n },\n\n svnVersioned: function(repo, revision) {\n var relative = this.relativePathFrom(repo);\n return repo.withPath(repo.pathname + \"!svn/bc/\" + revision + \"/\" + relative);\n },\n \n notSvnVersioned: function() {\n // concatenates the two ends of the url\n // \"http://localhost/livelyBranch/proxy/wiki/!svn/bc/187/test/index.xhtml\"\n // --> \"http://localhost/livelyBranch/proxy/wiki/index.xhtml\"\n return this.withPath(this.fullPath().replace(/(.*)!svn\\/bc\\/[0-9]+\\/(.*)/, '$1$2'));\n },\n\n toLiteral: function() {\n // URLs are literal\n return Object.clone(this);\n },\n \n toExpression: function() {\n // this does not work with the new prototype.js (rev 2808) anymore\n // return 'new URL(JSON.unserialize(\\'' + JSON.serialize(this) + '\\'))';\n return Strings.format('new URL({protocol: \"%s\", hostname: \"%s\", pathname: \"%s\"})',\n this.protocol, this.hostname, this.pathname);\n },\n\n withRelativePartsResolved: function() {\n var urlString = this.toString();\n var result = urlString;\n // resolve ..\n do {\n urlString = result;\n result = urlString.replace(/\\/[^\\/]+\\/\\.\\./, '')\n } while(result != urlString)\n // foo//bar --> foo/bar\n result = result.replace(/([^:])[\\/]+/g, '$1/')\n // foo/./bar --> foo/bar\n result = result.replace(/\\/\\.\\//g, '/')\n return new URL(result)\n },\n getAllParentDirectories: function() {\n var url = this, all = [], max = 100;;\n do {\n max--;\n if (max == 0) throw new Error('Endless loop in URL>>getAllParentDirectories?')\n all.push(url);\n url = url.getDirectory();\n } while (url.fullPath() != '/')\n return all.reverse();\n },\n\n\n});\n\n// create URLs often needed\nObject.extend(URL, {\n source: new URL(document.URL),\n codeBase: (function setURLCodeBase() {\n var url;\n try { url = new URL(Config.codeBase) } catch(e) {\n console.warn('Cannot correctly set URL.codeBase because of ' + e);\n url = new URL(document.URL).getDirectory();\n }\n return url.withRelativePartsResolved();\n })(),\n})\n\nObject.extend(URL, {\n proxy: (function() {\n if (!Config.proxyURL) {\n if (URL.source.protocol.startsWith(\"file\")) \n console.log(\"loading from localhost, proxying won't work\");\n return URL.source.withFilename(\"proxy/\");\n } else {\n var str = Config.proxyURL;\n if (!str.endsWith('/')) str += '/';\n return new URL(str);\n }\n })(), \n});\n\nObject.extend(URL, {\n // FIXME: better names?\n common: {\n wiki: URL.proxy.withFilename('lively-wiki/'),\n repository: URL.proxy.withFilename('lively-kernel/'),\n project: URL.proxy.withFilename('lively-project/'), // currently lively-kernel.org\n domain: new URL(Global.document.location.protocol + '//' + Global.document.location.host)\n },\n});\n\nObject.extend(URL, {\n \n create: function(string) { return new URL(string) },\n\n ensureAbsoluteURL: function(urlString) {\n return /^http.*/.test(urlString) ?\n new URL(urlString) :\n URL.source.notSvnVersioned().getDirectory().withRelativePath(urlString);\n },\n ensureAbsoluteCodeBaseURL: function(urlString) {\n return /^http.*/.test(urlString) ?\n new URL(urlString) :\n URL.codeBase.withRelativePath(urlString);\n },\n\n\n fromLiteral: function(literal) { return new URL(literal) },\n\n makeProxied: function makeProxied(url) {\n url = url instanceof URL ? url : new URL(url);\n var px = this.proxy;\n if (!px) return url;\n if (px.normalizedHostname() != url.normalizedHostname()) // FIXME protocol?\n return px.withFilename(url.hostname + (url.port ? ':' + url.port : '') + url.fullPath());\n if (px.port != url.port)\n return px.withFilename(url.hostname + \":\" + url.port + url.fullPath());\n if (px.hostname != url.hostname) // one has prefix www, the other not\n return new URL({\n protocol: url.protocol,\n port: url.port,\n hostname: px.hostname, // arghhh\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n })\n return url;\n },\n\n});\n\n\nObject.subclass('NetRequestStatus',\n'documentation', {\n documentation: \"nice parsed status information, returned by NetRequest.getStatus when request done\",\n},\n'initialization', {\n initialize: function(method, url, transport) {\n this.method = method;\n this.url = url;\n this.transport = transport;\n this.exception = null;\n },\n},\n'testing', {\n isDone: function() {\n // transport.DONE not defined in all browsers, so use constant\n return this.transport.readyState === 4\n },\n\n isSuccess: function() {\n var code = this.transport.status;\n return code >= 200 && code < 300;\n },\n},\n'accessing', {\n setException: function(e) { this.exception = e },\n\n toString: function() {\n return Strings.format(\"#\", this.method, this.url, this.exception || this.transport.status);\n },\n\n requestString: function() { return this.method + \" \" + decodeURIComponent(this.url) },\n\n code: function() { return this.transport.status },\n\n getResponseHeader: function(name) { return this.transport.getResponseHeader(name) },\n\n});\n\n\nView.subclass('NetRequest', {\n documentation: \"a view that writes the contents of an http request into the model\",\n\n // see XMLHttpRequest documentation for the following:\n Unsent: 0,\n Opened: 1,\n HeadersReceived: 2,\n Loading: 3,\n Done: 4,\n\n formals: [\n \"+Status\", // Updated once, when request is {Done} with the value returned from 'getStatus'.\n \"+ReadyState\", // Updated on every state transition of the request.\n \"+ResponseXML\", // Updated at most once, when request state is {Done}, with the parsed XML document retrieved.\n \"+ResponseText\", // Updated at most once, when request state is {Done}, with the text content retrieved.\n \"+ResponseHeaders\", // Updated at most once, when request state is {Done}, with the response headers retrieved.\n \"StreamContent\",\n \"Progress\",\n ],\n\n initialize: function($super, modelPlug) {\n this.transport = new XMLHttpRequest();\n this.requestNetworkAccess();\n this.transport.onreadystatechange = this.onReadyStateChange.bind(this);\n this.isSync = false;\n this.isBinary = false;\n this.requestHeaders = {};\n $super(modelPlug)\n },\n\n enableProgress: function() {\n console.log(\"enableProgress\")\n // FIXME onprogress leads to strange 101 errors when no internet connection available\n this.transport.onprogress = this.onProgress.bind(this);\n if (!UserAgent.isTouch && this.transport.upload !== undefined) // FIXME crashes Mobile Safari && IE9+\n this.transport.upload.onprogress = this.onProgress.bind(this);\n },\n\n requestNetworkAccess: function() {\n if (Global.netscape && Global.location.protocol == \"file:\") { \n try {\n netscape.security.PrivilegeManager.enablePrivilege(\"UniversalBrowserRead\");\n console.log(\"requested browser read privilege\");\n return true;\n } catch (er) {\n console.log(\"no privilege granted: \" + er);\n return false;\n }\n }\n },\n\n beSync: function() {\n this.isSync = true;\n return this;\n },\n\n beBinary: function() {\n this.isBinary = true;\n return this;\n },\n\n onReadyStateChange: function() {\n this.setReadyState(this.getReadyState());\n if (this.getReadyState() === this.Loading) { // For comet networking\n this.setStatus(this.getStatus());\n var hasResponseText = false;\n try {\n // FIX for IE9+ if responseText is not available yet\n hasResponseText = this.transport.responseText;\n } catch (e) { console.warn('Request\\'s response text is not available yet.'); }\n if (hasResponseText !== undefined) {\n var allContent = this.getResponseText(),\n newStart = this._streamContentLength ? this._streamContentLength : 0,\n newContent = allContent.substring(newStart);\n newContent = /^([^\\n\\r]*)/.exec(newContent)[1]; // remove line breaks\n this.setStreamContent(newContent);\n this._streamContentLength = allContent.length;\n }\n }\n if (this.getReadyState() === this.Done) {\n this.setStatus(this.getStatus());\n if (this.transport.responseText !== undefined)\n this.setResponseText(this.getResponseText());\n if (this.transport.responseXML !== undefined) \n this.setResponseXML(this.getResponseXML());\n if (this.transport.getAllResponseHeaders() !== undefined)\n this.setResponseHeaders(this.getResponseHeaders());\n this.disconnectModel(); // autodisconnect?\n }\n },\n\n onProgress: function(progress) { this.setProgress(progress) },\n \n setRequestHeaders: function(record) {\n Properties.forEachOwn(record, function(prop, value) {\n this.requestHeaders[prop] = value;\n }, this);\n },\n\n setContentType: function(string) {\n // valid before send but after open?\n this.requestHeaders[\"Content-Type\"] = string;\n },\n\n getReadyState: function() { return this.transport.readyState },\n\n getResponseText: function() { return this.transport.responseText || \"\" },\n\n getResponseXML: function() { return this.transport.responseXML || \"\" },\n\n getResponseHeaders: function() {\n var headerString = this.transport.getAllResponseHeaders(),\n headerObj = {};\n headerString.split('\\r\\n').each(function(ea) {\n var splitter = ea.indexOf(':');\n if (splitter != -1) {\n headerObj[ea.slice(0, splitter)] = ea.slice(splitter + 1).trim();\n // as headers should be case-insensitiv, add lower case headers (for Safari)\n headerObj[ea.slice(0, splitter).toLowerCase()] = ea.slice(splitter + 1).trim();\n }\n });\n return headerObj;\n },\n\n getStatus: function() { return new NetRequestStatus(this.method, this.url, this.transport) },\n\n request: function(method, url, content) {\n try {\n this.url = url;\n this.method = method.toUpperCase(); \n this.transport.open(this.method, url.toString(), !this.isSync);\n Properties.forEachOwn(this.requestHeaders, function(p, value) {\n this.transport.setRequestHeader(p, value);\n }, this);\n if (!this.isBinary)\n this.transport.send(content || '');\n else\n this.transport.sendAsBinary(content || '');\n if (Global.isFirefox && this.isSync) // mr: FF does not use callback when sync \n this.onReadyStateChange();\n return this;\n } catch (er) {\n var status = this.getStatus();\n status.setException(er);\n this.setStatus(status);\n throw er;\n }\n },\n\n get: function(url) { return this.request(\"GET\", URL.makeProxied(url), null) },\n\n put: function(url, content) { return this.request(\"PUT\", URL.makeProxied(url), content) },\n\n post: function(url, content) { return this.request(\"POST\", URL.makeProxied(url), content) },\n\n propfind: function(url, depth, content) {\n this.setContentType(\"text/xml\"); // complain if it's set to something else?\n if (depth != 0 && depth != 1)\n depth = \"infinity\";\n this.setRequestHeaders({ \"Depth\" : depth });\n return this.request(\"PROPFIND\", URL.makeProxied(url), content);\n },\n\n report: function(url, content) { return this.request(\"REPORT\", URL.makeProxied(url), content) },\n\n mkcol: function(url, content) { return this.request(\"MKCOL\", URL.makeProxied(url), content) },\n\n del: function(url) { return this.request(\"DELETE\", URL.makeProxied(url)) },\n\n copy: function(url, destUrl, overwrite) {\n this.setRequestHeaders({ \"Destination\" : destUrl.toString() });\n if (overwrite) this.setRequestHeaders({ \"Overwrite\" : 'T' });\n return this.request(\"COPY\", URL.makeProxied(url));\n },\n move: function(url, destUrl, overwrite) {\n this.setRequestHeaders({ \"Destination\" : destUrl.toString() });\n if (overwrite) this.setRequestHeaders({ \"Overwrite\" : 'T' });\n return this.request(\"MOVE\", URL.makeProxied(url));\n },\n\n\n lock: function(url, owner) {\n this.setRequestHeaders({Timeout: 'Infinite, Second-30'});\n var content = Strings.format(' \\n\\\n \\n\\\n \\n\\\n \\n\\\n %s \\n\\\n ', owner || 'unknown user');\n return this.request(\"LOCK\", URL.makeProxied(url), content);\n },\n \n unlock: function(url, lockToken, force) {\n if (force) {\n var req = new NetRequest().beSync().propfind(url);\n var xml = req.getResponseXML() || stringToXML(req.getResponseText());\n var q = new Query('/descendant::*/D:lockdiscovery/descendant::*/D:locktoken/D:href');\n var tokenElement = q.findFirst(xml);\n if (!tokenElement) // no lock token, assume that resource isn't locked\n return req;\n lockToken = tokenElement.textContent;\n }\n this.setRequestHeaders({'Lock-Token': '<' + lockToken + '>'});\n return this.request(\"UNLOCK\", URL.makeProxied(url));\n },\n head: function(url) { return this.request(\"HEAD\", URL.makeProxied(url), null) },\n\n toString: function() { return \"#\" },\n\n});\n\n\n// extend your objects with this trait if you don't want to deal with error reporting yourself.\nNetRequestReporterTrait = {\n setRequestStatus: function(status) {\n // update the model if there is one\n if (this.getModel && this.getModel() && this.getModel().setRequestStatus)\n this.getModel().setRequestStatus(status);\n \n var world = WorldMorph.current();\n // some formatting for alerting. could be moved elsewhere\n var request = status.requestString();\n var tooLong = 80;\n if (request.length > tooLong) {\n var arr = [];\n for (var i = 0; i < request.length; i += tooLong) {\n arr.push(request.substring(i, i + tooLong));\n }\n request = arr.join(\"..\\n\");\n }\n // error reporting\n if (status.exception) {\n world.alert(\"exception \" + status.exception + \" accessing\\n\" + request);\n } else if (status.code() >= 300) {\n if (status.code() == 301) {\n // FIXME reissue request? need the 'Location' response header for it\n world.alert(\"HTTP/301: Moved to \" + status.getResponseHeader(\"Location\") + \"\\non \" + request);\n } else if (status.code() == 401) {\n world.alert(\"not authorized to access\\n\" + request); \n // should try to authorize\n } else if (status.code() == 412) {\n console.log(\"the resource was changed elsewhere\\n\" + request);\n } else if (status.code() == 423) {\n world.alert(\"the resource is locked\\n\" + request);\n } else {\n world.alert(\"failure to\\n\" + request + \"\\ncode \" + status.code());\n }\n } else console.log(\"status \" + status.code() + \" on \" + status.requestString());\n }\n};\n\n// convenience base class with built in handling of errors\nObject.subclass('NetRequestReporter', NetRequestReporterTrait);\n\n\n\nView.subclass('Resource'/*, NetRequestReporterTrait*/, {\n documentation: \"a remote document that can be fetched, stored and queried for metadata\",\n // FIXME: should probably encapsulate content type\n\n formals: [\"ContentDocument\", //:XML\n \"ContentText\", //:String\n \"URL\", // :URL\n \"RequestStatus\", // :NetRequestStatus\n \"ResponseHeaders\",\n \"Progress\",\n ],\n\n createNetRequest: function() {\n return new NetRequest({\n model: this,\n setResponseXML: \"setContentDocument\",\n setResponseText: 'setContentText',\n setStatus: \"setRequestStatus\",\n setResponseHeaders: \"setResponseHeaders\",\n setProgress: 'setProgress'\n });\n },\n \n initialize: function(plug, contentType) {\n this.contentType = contentType;\n this.connectModel(plug);\n },\n\n deserialize: Functions.Empty, // stateless besides the model and content type\n\n toString: function() {\n return \"#\";\n },\n\n removeNetRequestReporterTrait: function() {\n delete this.setRequestStatus;\n this.setRequestStatus = function(status) {\n if (this.getModel && this.getModel() && this.getModel().setRequestStatus)\n this.getModel().setRequestStatus(status);\n }.bind(this);\n },\n \n updateView: function(aspect, source) {\n var p = this.modelPlug;\n if (!p) return;\n switch (aspect) {\n case p.getURL:\n this.onURLUpdate(this.getURL()); // request headers?\n break;\n }\n },\n\n onURLUpdate: function(url) {\n return this.fetch(url);\n },\n\n fetch: function(sync, optRequestHeaders) {\n // fetch the document content itself\n var req = this.createNetRequest();\n if (sync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n if (this.isShowingProgress) req.enableProgress();\n req.get(this.getURL());\n return req;\n },\n\n fetchProperties: function(optSync, optRequestHeaders) {\n var req = this.createNetRequest();\n if (optSync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.propfind(this.getURL(), 1);\n return req;\n },\n\n store: function(content, optSync, optRequestHeaders) {\n // FIXME: check document type\n if ((Global.Document && content instanceof Document) || (Global.Node && content instanceof Node)) {\n content = Exporter.stringify(content);\n }\n var req = this.createNetRequest();\n if (optSync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n if (this.isShowingProgress) req.enableProgress();\n req.put(this.getURL(), content);\n return req;\n },\n\n});\n\nResource.subclass('SVNResource', {\n\n formals: Resource.prototype.formals.concat(['Metadata', 'HeadRevision']),\n\n createNetRequest: function() {\n return new NetRequest({\n model: this,\n setResponseXML: \"setContentDocument\",\n setResponseText: 'setContentText',\n setStatus: \"setRequestStatus\",\n setResponseHeaders: \"setResponseHeaders\",\n setProgress: 'setProgress'\n });\n },\n \n initialize: function($super, repoUrl, plug, contentType) {\n this.repoUrl = repoUrl.toString();\n $super(plug, contentType);\n },\n\n getLocalUrl: function() {\n return new URL(this.getURL()).relativePathFrom(new URL(this.repoUrl)).toString();\n },\n\n fetchHeadRevision: function(optSync) {\n var req = new NetRequest({\n model: this,\n setResponseXML: \"pvtSetHeadRevFromDoc\",\n setStatus: \"setRequestStatus\",\n setProgress: 'setProgress'\n });\n if (optSync) req.beSync();\n req.propfind(this.getURL(), 1);\n return req;\n },\n\n fetch: function($super, optSync, optRequestHeaders, rev) {\n var req;\n if (rev) {\n this.withBaselineUriDo(rev, function() { req = $super(optSync, optRequestHeaders) });\n } else {\n req = $super(optSync, optRequestHeaders);\n };\n return req;\n },\n \n store: function($super, content, optSync, optRequestHeaders, optHeadRev) {\n // if optHeadRev is not undefined than the store will only succeed\n // if the head revision of the resource is really optHeadRev\n if (optHeadRev) {\n var headers = optRequestHeaders ? optRequestHeaders : {};\n //determine local path of resource\n //var local = new URL(this.getURL()).relativePathFrom(new URL(this.repoUrl));\n var local = this.getURL().toString().substring(this.repoUrl.toString().length);\n if (local.startsWith('/')) local = local.slice(1); // remove leading slash\n var ifHeader = Strings.format('([\"%s//%s\"])', optHeadRev, local);\n console.log('Creating if header: ' + ifHeader);\n Object.extend(headers, {'If': ifHeader});\n }\n return $super(content, optSync, headers);\n },\n \n del: function(sync, optRequestHeaders) {\n var req = new NetRequest(this.createNetRequest());\n if (sync) req.beSync();\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.del(this.getURL());\n return req;\n },\n\n fetchProperties: function($super, optSync, optRequestHeaders, rev) {\n var req;\n if (rev) {\n this.withBaselineUriDo(rev, function() { req = $super(optSync, optRequestHeaders) });\n } else {\n req = $super(optSync, optRequestHeaders);\n };\n return req;\n },\n\n fetchMetadata: function(optSync, optRequestHeaders, startRev, endRev, reportDepth) {\n // get the whole history if startRev is undefined\n // FIXME: in this case the getHeadRevision will be called synchronous\n if (!startRev) {\n this.fetchHeadRevision(true);\n startRev = this.getHeadRevision();\n }\n this.reportDepth = reportDepth; // FIXME quick hack, needed in 'pvtScanLog...'\n var req = new NetRequest({\n model: this,\n setResponseXML: \"pvtScanLogReportForVersionInfos\",\n setStatus: \"setRequestStatus\",\n setProgress: 'setProgress'\n });\n if (optSync) req.beSync();\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.report(this.getURL(), this.pvtRequestMetadataXML(startRev, endRev));\n return req;\n },\n\n pvtSetHeadRevFromDoc: function(xml) {\n if (!xml) return;\n /* The response contains the properties of the specified file or directory,\n e.g. the revision (= version-name) */\n var revisionNode = xml.getElementsByTagName('version-name')[0];\n if (!revisionNode) return;\n this.setHeadRevision(Number(revisionNode.textContent));\n },\n\n pvtScanLogReportForVersionInfos: function(logReport) {\n // FIXME Refactor: method object?\n var errorQ = new Query('D:error//m:human-readable');\n \n var depth = this.reportDepth; \n var logItemQ = new Query('//S:log-item');\n var versionInfos = [];\n //var repoUrl = new URL(this.repoUrl);\n var repoUrl = this.repoUrl;\n\n var result = logItemQ.findAll(logReport);\n for (var i = 0; i < result.length; i++) {\n var logElement= result[i];\n var spec = {};\n for (var j = 0; j < logElement.childNodes.length; j++) {\n var logProp = logElement.childNodes[j];\n switch(logProp.tagName) {\n case 'D:version-name':\n spec.rev = Number(logProp.textContent); break;\n case 'D:creator-displayname':\n spec.author = logProp.textContent; break;\n case 'S:date':\n spec.date = logProp.textContent; break;\n case 'S:added-path':\n case 'S:modified-path':\n case 'S:deleted-path':\n case 'S:replaced-path':\n var relPath = logProp.textContent;\n if (depth && relPath.split('/').length-1 > depth)\n continue;\n //relPath = relPath.slice(1); // remove trailing /\n if (repoUrl.endsWith(relPath))\n spec.url = repoUrl; // hmmm???\n else\n spec.url = repoUrl.toString() + relPath.slice(1); \n // console.log('Created spec.url:' + spec.url);\n if (!spec.changes) spec.changes = [];\n var type = logProp.tagName.split('-').first();\n var url = logProp.tagName.include('modified-path') ? logProp.textContent : null;\n spec.changes.push({type: type, url : url});\n break;\n default:\n }\n };\n if (!spec.url) continue;\n spec.url = new URL(spec.url);\n versionInfos.push(new SVNVersionInfo(spec));\n };\n // newest version first\n versionInfos = versionInfos.sortBy(function(vInfo) { return vInfo.rev }).reverse();\n this.setMetadata(versionInfos);\n },\n \n pvtScanLogReportForVersionInfosTrace: function(logReport) {\n lively.lang.Execution.trace(this.pvtScanLogReportForVersionInfos.curry(logReport).bind(this));\n },\n\n pvtRequestMetadataXML: function(startRev, endRev) {\n return Strings.format(\n '' + \n '%s' +\n '%s' +\n '' +\n '' +\n '' +\n '', startRev, endRev || 0);\n },\n pvtRequestLocationXML: function(pegRev, pastRev) {\n return Strings.format(\n '' +\n '' +\n '%s' +\n '%s' +\n '', pegRev, pastRev);\n },\n\n\n withBaselineUriDo: function(rev, doFunc) {\n var tempUrl = this.getURL();\n this.setURL(this.createVersionURLString(rev));\n doFunc();\n this.setURL(tempUrl);\n },\n \n createVersionURLString: function(rev) {\n return this.repoUrl + '/!svn/bc/' + rev + '/' + this.getLocalUrl();\n },\n\n});\n\nObject.subclass('SVNVersionInfo', {\n\n documentation: 'This object wraps svn infos from report or propfind requests',\n\n initialize: function(spec) {\n // possible properties of spec:\n // rev, date, author, url, change, content\n for (name in spec) {\n var val = spec[name];\n if (name == 'date') {\n if (Object.isString(val)) {\n this.date = this.parseUTCDateString(val);\n } else if (val instanceof Date) {\n this.date = val;\n }\n } else {\n this[name] = val;\n }\n }\n if (!this.author)\n this.author = '(no author)';\n if (!this.date)\n this.date = new Date();\n },\n\n parseUTCDateString: function(dateString) {\n var yearElems = dateString.slice(0,10).split('-').collect(function(ea) {return Number(ea)});\n var timeElems = dateString.slice(11,19).split(':').collect(function(ea) {return Number(ea)});\n return new Date(yearElems[0], yearElems[1]-1, yearElems[2], timeElems[0], timeElems[1], timeElems[2])\n },\n\n toString: function() {\n // does not work when evaluate {new SVNVersionInfo() + \"\"} although toStrings() works fine. *grmph*\n // string = Strings.format('%s, %s, %s, Revision %s',\n // this.author, this.date.toTimeString(), this.date.toDateString(), this.rev);\n // string = new String(string);\n // string.orig = this;\n // TODO work around Serialization bug\n var timeString = this.date.toTimeString ? \n this.date.toTimeString() :\n 'no time';\n\n var dateString = this.date.toDateString ? \n this.date.toDateString() :\n 'no date';\n\n return Strings.format('%s, %s, %s, Rev. %s',\n this.author, timeString, dateString, this.rev);\n },\n \n toExpression: function() {\n return Strings.format('new SVNVersionInfo({rev: %s, url: %s, date: %s, author: %s, change: %s, fileSize: %s})',\n this.rev, toExpression(this.url), toExpression(this.date),\n toExpression(this.author), toExpression(this.change), toExpression(this.fileSize));\n },\n \n});\nObject.extend(SVNVersionInfo, {\n fromPropfindNode: function(node) {\n // FIXME cleanup --> Similar code exists in lively.Network -> pvtSetMeta...sth\n // rk 2/22/10: the namespace tag lp1 is required by Firefox\n var prefix = UserAgent.fireFoxVersion ? 'lp1:' : '';\n\n var versionTag = node.getElementsByTagName(prefix + 'version-name')[0];\n var rev = versionTag ? Number(versionTag.textContent) : 0;\n\n var dateTag = node.getElementsByTagName(prefix + 'getlastmodified')[0];\n var date = new Date(dateTag ? dateTag.textContent : 'Mon, 01 Jan 1900 00:00:00 GMT');\n\n var authorTag = node.getElementsByTagName(prefix + 'creator-displayname')[0];\n var author = authorTag ? authorTag.textContent : 'anonymous';\n\n var sizeTag = node.getElementsByTagName(prefix + 'getcontentlength')[0];\n var fileSize = sizeTag ? Number(sizeTag.textContent) : -1;\n\n // FIXME: resolve prefix \"D\" to something meaningful?\n var nameQ = new Query(\"D:href\");\n var result = nameQ.findFirst(node);\n var name = result && decodeURIComponent(result.textContent);\n var slash = name.endsWith('/') ? name.lastIndexOf('/', name.length - 2) : name.lastIndexOf('/');\n var shortName = name.substring(slash + 1);\n\n return new SVNVersionInfo({rev: rev, date: date, author: author, shortName: shortName, url: name, fileSize: fileSize});\n},\n});\n\nObject.subclass('WebResource',\n'documentation', {\n connections: ['status', 'content', 'contentDocument', 'isExisting', 'subCollections', 'subDocuments', 'progress', 'readystate', 'versions', 'headRevision'],\n},\n'initializing', {\n initialize: function(url) {\n this._url = new URL(url);\n this.beSync();\n this.reset();\n },\n\n reset: function() {\n this.beText();\n this.status = null;\n this.content = null;\n this.contentDocument = null;\n this.isExisting = null;\n this.subResources = null;\n this.requestHeaders = {};\n this.responseHeaders = {};\n },\n\n createResource: function() {\n var self = this;\n var resource = new SVNResource(\n this.getRepoURL().toString(),\n {\n model: {\n url: self.getURL().toString(),\n getURL: function() { return this.url },\n setURL: function(url) { this.url = url },\n setRequestStatus: function(reqStatus) { self.status = reqStatus; self.isExisting = reqStatus.isSuccess() },\n setContentText: function(string) { self.content = string },\n setContentDocument: function(doc) { self.contentDocument = doc },\n setResponseHeaders: function(obj) { self.responseHeaders = obj },\n setProgress: function(progress) { self.progress = progress },\n setHeadRevision: function(rev) { self.headRevision = rev },\n getHeadRevision: function() { return self.headRevision },\n setMetadata: function(metadata) { self.versions = metadata },\n },\n getURL: 'getURL',\n setURL: 'setURL',\n setRequestStatus: 'setRequestStatus',\n setContentText: 'setContentText',\n setContentDocument: 'setContentDocument',\n setResponseHeaders: 'setResponseHeaders',\n setProgress: 'setProgress',\n setHeadRevision: 'setHeadRevision',\n getHeadRevision: 'getHeadRevision',\n setMetadata: 'setMetadata',\n });\n resource.isShowingProgress = this.isShowingProgress;\n // resource.removeNetRequestReporterTrait();\n return resource\n },\n\n createNetRequest: function() {\n var self = this;\n var request = new NetRequest({\n model: {\n setStatus: function(reqStatus) { self.status = reqStatus; self.isExisting = reqStatus.isSuccess() },\n setResponseText: function(string) { self.content = string },\n setResponseXML: function(doc) { self.contentDocument = doc },\n setResponseHeaders: function(obj) { self.responseHeaders = obj },\n setReadyState: function(readyState) { self.readystate = readyState },\n setProgress: function(progress) { self.progress = progress },\n setStreamContent: function(content) { self.content = content; self.streamContent = content },\n },\n setStatus: 'setStatus',\n setResponseText: 'setResponseText',\n setResponseXML: 'setResponseXML',\n setResponseHeaders: 'setResponseHeaders',\n setReadyState: 'setReadyState',\n setProgress: 'setProgress',\n setStreamContent: 'setStreamContent',\n });\n if (this.isSync())\n request.beSync();\n if (this.requestHeaders)\n request.requestHeaders = this.requestHeaders;\n return request;\n },\n createXMLHTTPRequest: function(method) {\n // objects to work with\n method = method.toUpperCase();\n var webR = this,\n url = this.getURL(),\n requestHeaders = this.requestHeaders,\n isSync = this.isSync(),\n req = new XMLHttpRequest(),\n loadStates = {UNSENT: 0, OPENED: 1, HEADERSRECEIVED: 2, LOADING: 3, DONE: 4};\n\n // helper functions\n function createStatus () { return new NetRequestStatus(method, url, req) };\n function extractHeaders(req) {\n var headerString = req.getAllResponseHeaders(),\n headerObj = {};\n headerString.split('\\r\\n').forEach(function(ea) {\n var splitter = ea.indexOf(':');\n if (splitter != -1) {\n headerObj[ea.slice(0, splitter)] = ea.slice(splitter + 1).trim();\n // as headers should be case-insensitiv, add lower case headers (for Safari)\n headerObj[ea.slice(0, splitter).toLowerCase()] = ea.slice(splitter + 1).trim();\n }\n });\n return headerObj;\n };\n function onReadyStateChange() {\n var status = createStatus();\n webR.status = status;\n if (req.readyState == loadStates.DONE) {\n webR.isExisting = status.isSuccess();\n if (req.responseText !== undefined)\n webR.content = req.responseText;\n if (req.responseXML !== undefined)\n webR.contentDocument = req.responseXML;\n if (req.getAllResponseHeaders() !== undefined)\n webR.responseHeaders = extractHeaders(req)\n }\n\n // setReadyState: function(readyState) { self.readystate = readyState },\n // setProgress: function(progress) { self.progress = progress },\n // setStreamContent: function(content) { self.content = content },\n };\n\n function onProgress(evt) {\n webR.progressEvent = evt;\n // var percentComplete = (e.position / e.totalSize)*100;\n };\n // register event handlers\n req.onreadystatechange = onReadyStateChange;\n\n if (method === 'PUT' || method === 'POST') {\n req.upload.addEventListener(\"progress\", onProgress, false);\n // req.upload.addEventListener(\"load\", transferComplete, false);\n // req.upload.addEventListener(\"error\", transferFailed, false);\n // req.upload.addEventListener(\"abort\", transferCanceled, false);\n } else {\n req.addEventListener(\"progress\", onProgress, false);\n }\n\n // to be more or less compatible with the netRequest object -- fixme should simplified\n return {\n request: function(content) {\n var proxiedUrl = URL.makeProxied(url);\n req.open(method, proxiedUrl.toString(), !isSync);\n Properties.forEachOwn(requestHeaders, function(p, value) {\n req.setRequestHeader(p, value);\n });\n var sendSelector = webR.isBinary() && req.sendAsBinary ? 'sendAsBinary' : 'send';\n try {\n req[sendSelector](content);\n if (Global.isFirefox && isSync) // mr: FF does not use callback when sync \n onReadyStateChange();\n } catch (er) {\n webR.status = createStatus();\n throw er;\n }\n }\n }\n },\n\n},\n'private', {\n temporaryChangeURLAndDo: function(otherURL, func) {\n var temp = this._url;\n this._url = otherURL;\n var result = func.call(this)\n this._url = temp;\n return result;\n },\n},\n'accessing', {\n getURL: function() { return this._url; },\n getRepoURL: function() {\n return URL.codeBase // FIXME repo!\n },\n\n getName: function() { return this.getURL().filename(); },\n isCollection: function() { return !this.getURL().isLeaf() },\n},\n'configuration', {\n isSync: function() { return this._isSync; },\n beSync: function() { this._isSync = true; return this; },\n beAsync: function() { this._isSync = false; return this; },\n setSync: function(bool) { this._isSync = bool; return this; },\n\n isBinary: function() { return this._isBinary; },\n beBinary: function() { this._isBinary = true; return this; },\n beText: function() { this._isBinary = false; return this; },\n\n\n forceUncached: function() {\n this._url = this.getURL().withQuery({time: new Date().getTime()});\n return this;\n },\n},\n'progress', {\n enableShowingProgress: function() { this.isShowingProgress = true; return this },\n createProgressBar: function(label) {\n // this.enableShowingProgress();\n // var labelFunc = Object.isString(labelOrFunc) ?\n // function() { return labelOrFunc } : labelOrFunc;\n\t\tif (!Config.isNewMorphic) return this;\n var progressBar = lively.morphic.World.current().addStatusProgress(label);\n connect(this, 'progressEvent', progressBar, 'setValue',\n {converter: function(rpe) { return (rpe.loaded / rpe.total) }});\n connect(this, 'status', progressBar, 'remove', {\n updater: function($upd, status) { if (status.isDone()) $upd() }});\n return this;\n },\n\n},\n'DEPRECATED', {\n copyTo: function(url) {\n var otherResource = new WebResource(url);\n otherResource.create();\n new NetRequest().copy(this.getURL(), url, true /*overwrite*/);\n return otherResource;\n },\n\n},\n'debugging', {\n statusMessage: function(successMsg, failureMessage, onlyOnce) {\n this.successMsg = successMsg;\n this.failureMessage = failureMessage;\n var world = Config.isNewMorphic ? lively.morphic.World.current() : WorldMorph.current();\n if (!world) return this;\n lively.bindings.connect(this, 'status', world, 'setStatusMessage', {\n updater: function($upd, status) {\n if (!status.isDone()) return;\n var m1 = this.sourceObj.successMsg,\n m2 = this.sourceObj.failureMessage;\n if (status.isSuccess() && m1) $upd(m1, Color.green, 4)\n else if (m2) $upd(m2 + ' (code ' + status.code() + ')', Color.red, 6)\n },\n removeAfterUpdate: onlyOnce\n });\n return this\n },\n\n toString: function() { return 'WebResource(' + this.getURL() + ')' },\n},\n'request headers', {\n\n setRequestHeaders: function(headers) {\n this.requestHeaders = headers;\n return this;\n },\n addHeaderForRequiredRevision: function(rev) {\n if (!rev) return;\n var local = this.getURL().relativePathFrom(this.getRepoURL()),\n ifHeader = Strings.format('([\"%s//%s\"])', rev, local);\n console.log('Creating if header: ' + ifHeader);\n this.requestHeaders[\"If\"] = ifHeader;\n },\n addContentType: function(contentType) {\n this.requestHeaders[\"Content-Type\"] = contentType || '';\n },\n\n},\n'HTTP methods', {\n\n get: function(rev, contentType, urlOfPastVersion) {\n if (!rev) {\n var req = this.createNetRequest()\n if (contentType) req.setContentType(contentType);\n req.get(this.getURL());\n return this;\n }\n if (urlOfPastVersion) {\n this.temporaryChangeURLAndDo(urlOfPastVersion, function() {\n var resource = this.createResource();\n if (contentType) resource.contentType = contentType;\n resource.fetch(this.isSync(), this.requestHeaders, rev);\n })\n return this;\n }\n // use a helper so that connections to this are not triggered when\n // location XML is written to content/contentDocument\n var helper = new WebResource(this.getURL());\n helper.setSync(this.isSync())\n connect(helper, 'revAndLocations', this, 'get', {\n updater: function($upd, revAndPath) { $upd(rev, contentType, revAndPath[rev]) },\n varMapping: {rev: rev, contentType: contentType}});\n helper.getLocationInRev(rev, this.headRevision);\n return this;\n },\n get2: function(rev, contentType, urlOfPastVersion) {\n if (!rev) {\n if (contentType) this.addContentType(contentType);\n var req = this.createXMLHTTPRequest('GET');\n req.request();\n return this;\n }\n if (urlOfPastVersion) {\n this.temporaryChangeURLAndDo(urlOfPastVersion, function() {\n var resource = this.createResource();\n if (contentType) resource.contentType = contentType;\n resource.fetch(this.isSync(), this.requestHeaders, rev);\n })\n return this;\n }\n // use a helper so that connections to this are not triggered when\n // location XML is written to content/contentDocument\n var helper = new WebResource(this.getURL());\n helper.setSync(this.isSync())\n connect(helper, 'revAndLocations', this, 'get', {\n updater: function($upd, revAndPath) { $upd(rev, contentType, revAndPath[rev]) },\n varMapping: {rev: rev, contentType: contentType}});\n helper.getLocationInRev(rev, this.headRevision);\n return this;\n },\n\n\n put_DEPRECATED: function(content, contentType, requiredRevision) {\n this.content = this.convertContent(content);\n var resource = this.createResource();\n if (contentType)\n resource.contentType = contentType;\n resource.store(content, this.isSync(), this.requestHeaders, requiredRevision);\n\n return this;\n },\n put: function(content, contentType, requiredRevision) {\n this.content = this.convertContent(content || '');\n if (requiredRevision) this.addHeaderForRequiredRevision(requiredRevision);\n if (contentType) this.addContentType(contentType)\n var req = this.createXMLHTTPRequest('PUT');\n req.request(this.content);\n return this;\n },\n\n\n create: function() {\n if (!this.isCollection()) return this.put('');\n var request = this.createNetRequest();\n request.mkcol(this.getURL());\n return this;\n },\n\n del: function() {\n var request = this.createNetRequest();\n request.del(this.getURL());\n return this;\n },\n\n post: function(content, contentType) {\n this.content = content;\n var request = this.createNetRequest();\n if (contentType)\n request.setContentType(contentType);\n request.post(this.getURL(), content);\n return this;\n },\n \n exists: function() {\n // for async use this.get().isExisting directly\n try {\n return this.beSync().head().status.isSuccess()\n } catch(e) {\n return false;\n }\n },\n head: function() {\n var request = this.createNetRequest();\n request.head(this.getURL());\n return this;\n },\n\n propfind: function(depth) {\n if (!depth) depth = 1;\n var req = this.createNetRequest();\n req.propfind(this.getURL(), depth);\n return this;\n },\n report: function(content) {\n var req = this.createNetRequest();\n req.report(this.getURL(), content);\n return this; \n },\n\n\n getSubElements: function(depth) {\n\n lively.bindings.connect(this, 'contentDocument', this, 'pvtProcessPropfindForSubElements', {removeAfterUpdate: true});\n this.propfind(depth);\n return this;\n },\n\n copyTo: function(url) {\n var request = this.createNetRequest();\n request.copy(this.getURL(), url, true /*overwrite*/);\n return this;\n },\n moveTo: function(url) {\n var request = this.createNetRequest();\n request.move(this.getURL(), url, true /*overwrite*/);\n return this;\n },\n\n \n getVersions: function(startRev, endRev) {\n var res = this.createResource();\n //connect(this, 'contentDocument', this, 'pvtProcessPropfindForGetVersions', {removeAfterUpdate: true});\n if (!startRev) {\n if (this.headRevision) {\n startRev = this.headRevision;\n } else {\n connect(this, 'headRevision', this, 'getVersions', {removeAfterUpdate: true});\n // FIXME if only endRev is passed in, it's forgotten here...\n this.getHeadRevision();\n return this;\n }\n }\n res.fetchMetadata(this.isSync(), this.requestHeaders, startRev, endRev, null);\n return this;\n },\n\n getHeadRevision: function() {\n var res = this.createResource();\n res.fetchHeadRevision(this.isSync());\n return this;\n },\n\n getProperties: function(optRequestHeaders, rev) {\n var res = this.createResource();\n res.fetchProperties(this.isSync(), optRequestHeaders, rev);\n return this;\n },\n ensureExistance: function() {\n var url = this.getURL();\n url.getAllParentDirectories().forEach(function(ea) {\n var webR = new WebResource(ea);\n if (!webR.exists()) {\n console.log('creating ' + webR.getURL());\n webR.create();\n }\n })\n return this;\n },\n},\n'version specific', {\n getLocationInRev: function(rev) {\n var self = this,\n reportRequester = {\n action: function(headRev) {\n var content = Strings.format(\n '' +\n '' +\n '%s' +\n '%s' +\n '', headRev, rev);\n connect(self, 'contentDocument', self, 'pvtProcessForLocationRequest', {\n removeAfterUpdate: true});\n self.report(content);\n }\n }\n if (this.headRevision) {\n reportRequester.action(this.headRevision)\n } else {\n connect(self, 'headRevision', reportRequester, 'action', {removeAfterUpdate: true});\n this.getHeadRevision();\n }\n return this;\n },\n\n},\n'XML querying', {\n pvtProcessForLocationRequest: function(doc) {\n var revAndLocations = {},\n locations = doc.getElementsByTagName('location');\n for (var i = 0; i < locations.length; i++) {\n var rev = locations[i].getAttribute('rev'),\n path = locations[i].getAttribute('path');\n revAndLocations[rev] = this.getRepoURL().withFilename(path);\n }\n // set it when retrieved so that connections work\n this.revAndLocations = revAndLocations;\n },\n pvtProcessPropfindForSubElements: function(doc) {\n if (!this.status.isSuccess())\n throw new Error('Cannot access subElements of ' + this.getURL());\n // FIXME: resolve prefix \"D\" to something meaningful?\n var nodes = new Query(\"/D:multistatus/D:response\").findAll(doc.documentElement)\n var urlQ = new Query('D:href');\n nodes.shift(); // remove first since it points to this WebResource\n var result = [];\n for (var i = 0; i < nodes.length; i++) {\n var urlNode = urlQ.findFirst(nodes[i]);\n var url = urlNode.textContent || urlNode.text; // text is FIX for IE9+\n if (/!svn/.test(url)) continue;// ignore svn dirs\n var child = new WebResource(this.getURL().withPath(url));\n var revNode = nodes[i].getElementsByTagName('version-name')[0];\n if (revNode) child.headRevision = Number(revNode.textContent);\n result.push(child);\n }\n this.subCollections = result.select(function(ea) { return ea.isCollection() });\n this.subDocuments = result.select(function(ea) { return !ea.isCollection() });\n },\n},\n'conversion', {\n convertContent: function(content) {\n // if requiredRevision is set then put will only succeed if the resource has\n // the revision number requiredRevision\n if (this.isBinary()) {\n // from http://code.google.com/p/chromium/issues/detail?id=35705#c6\n var byteValue = function(x) { return x.charCodeAt(0) & 0xff },\n ords = Array.prototype.map.call(content, byteValue),\n ui8a = new Uint8Array(ords);\n content = ui8a.buffer;\n }\n if ((Global.Document && content instanceof Document) ||\n (Global.Node && content instanceof Node)) {\n content = Exporter.stringify(content);\n } else if (content.xml) { // serialization FIX for IE9+\n content = content.xml;\n }\n return content;\n },\n});\n\n\n// make WebResource async\nObject.extend(WebResource, {\n create: function(url) { return new this(url) },\n});\n\nconsole.log('loaded Network.js');\n\n\n}); // end of module","lastSyntaxHighlightTime":1318419009744,"styleClass":["Browser_codePaneText"],"focusHaloBorderWidth":0.5,"priorSelectionRange":[107,107],"cachedTextString":"/*\n * Copyright (c) 2006-2009 Sun Microsystems, Inc.\n * Copyright (c) 2008-2011 Hasso Plattner Institute\n *\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * Network.js. Networking capabilities.\n *\n * Note: In a browser-based implementation of our system,\n * most of the necessary networking functionality is \n * inherited from the browser. \n */\n\nmodule('lively.Network').requires('lively.bindings', 'lively.NoMoreModels', 'lively.Data').toRun(function(thisModule) {\n \nObject.subclass('URL', {\n splitter: new RegExp('(http:|https:|file:)' + '(//[^/:]*(:[0-9]+)?)?' + '(/.*)?'),\n pathSplitter: new RegExp(\"([^\\\\?#]*)(\\\\?[^#]*)?(#.*)?\"),\n \n initialize: function(/*...*/) { // same field names as window.location\n dbgOn(!arguments[0]);\n if (Object.isString(arguments[0].valueOf())) {\n var urlString = arguments[0];\n var result = urlString.match(this.splitter);\n if (!result) throw new Error(\"malformed URL string '\" + urlString + \"'\");\n this.protocol = result[1]; \n if (!result[1]) \n throw new Error(\"bad url \" + urlString + \", \" + result);\n this.hostname = result[2] && result[2].substring(2).split(':')[0]; // skip the leading slashes and remove port\n this.port = result[3] && parseInt(result[3].substring(1)); // skip the colon\n\n var fullpath = result[4];\n if (fullpath) {\n result = fullpath.match(this.pathSplitter);\n this.pathname = result[1];\n this.search = result[2];\n this.hash = result[3];\n } else {\n this.pathname = \"/\";\n this.search = \"\";\n this.hash = \"\";\n }\n } else { // spec is either an URL or window.location\n var spec = arguments[0];\n this.protocol = spec.protocol || \"http\";\n this.port = spec.port;\n this.hostname = spec.hostname;\n this.pathname = spec.pathname || \"\";\n if (spec.search !== undefined) this.search = spec.search;\n if (spec.hash !== undefined) this.hash = spec.hash;\n }\n },\n \n inspect: function() {\n return JSON.serialize(this);\n },\n \n toString: function() {\n return this.protocol + \"//\" + this.hostname + (this.port ? \":\" + this.port : \"\") + this.fullPath();\n },\n\n fullPath: function() {\n return this.pathname + (this.search || \"\") + (this.hash || \"\");\n },\n \n isLeaf: function() {\n return !this.fullPath().endsWith('/');\n },\n \n // POSIX style\n dirname: function() {\n var p = this.pathname;\n var slash = p.endsWith('/') ? p.lastIndexOf('/', p.length - 2) : p.lastIndexOf('/');\n return p.substring(0, slash + 1);\n },\n\n filename: function() {\n var p = this.pathname;\n var slash = p.endsWith('/') ? p.lastIndexOf('/', p.length - 2) : p.lastIndexOf('/');\n return p.substring(slash + 1);\n },\n\n normalizedHostname: function() {\n return this.hostname.replace(/^www\\.(.*)/, '$1');\n },\n \n getDirectory: function() {\n return this.withPath(this.dirname());\n },\n asDirectory: function() {\n return this.fullPath().endsWith('/') ?\n this : new URL(this.withoutQuery().toString() + '/');\n },\n \n \n \n \n\n\n withPath: function(path) { \n var result = path.match(this.pathSplitter);\n if (!result) return null;\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: \n result[1], search: result[2], hash: result[3] });\n },\n\n withRelativePath: function(pathString) {\n if (pathString.startsWith('/')) {\n if (this.pathname.endsWith('/'))\n pathString = pathString.substring(1);\n } else {\n if (!this.pathname.endsWith('/'))\n pathString = \"/\" + pathString;\n }\n return this.withPath(this.pathname + pathString);\n },\n \n withFilename: function(filename) {\n if (filename == \"./\" || filename == \".\") // a bit of normalization, not foolproof\n filename = \"\";\n var dirPart = this.isLeaf() ? this.dirname() : this.fullPath();\n return new URL({protocol: this.protocol, port: this.port, \n hostname: this.hostname, pathname: dirPart + filename});\n },\n\n toQueryString: function(record) {\n var results = [];\n Properties.forEachOwn(record, function(p, value) {\n results.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(String(value)));\n });\n return results.join('&');\n },\n\n withQuery: function(record) {\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: this.pathname,\n search: \"?\" + this.toQueryString(record), hash: this.hash});\n },\n \n withoutQuery: function() {\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: this.pathname});\n },\n\n getQuery: function() {\n var s = this.toString();\n if (!s.include(\"?\"))\n return {};\n return s.toQueryParams();\n },\n \n eq: function(url) {\n if (!url) return false;\n return url.protocol == this.protocol &&\n url.port == this.port &&\n url.normalizedHostname() == this.normalizedHostname() &&\n url.pathname == this.pathname &&\n url.search == this.search &&\n url.hash == this.hash;\n },\n isIn: function(origin) {\n return origin.normalizedHostname() == this.normalizedHostname() &&\n this.fullPath().startsWith(origin.fullPath());\n },\n\n\n relativePathFrom: function(origin) {\n function checkPathes(path1, path2) {\n var paths1 = path1.split('/'),\n paths2 = path2.split('/');\n\n paths1.shift();\n paths2.shift();\n\n for (var i = 0; i < paths2.length; i++) {\n if (!paths1[i] || (paths1[i] != paths2[i]))\n break;\n }\n\n // now that's some JavaScript FOO\n var result = '../'.times(paths2.length - i - 1) + paths1.splice(i, paths1.length).join('/');\n return result;\n }\n\n if (origin.normalizedHostname() != this.normalizedHostname())\n throw new Error('hostname differs in relativePathFrom ' + origin + ' vs ' + this);\n var myPath = this.withRelativePartsResolved().pathname,\n otherPath = origin.withRelativePartsResolved().pathname;\n if (myPath == otherPath) return '';\n var relPath = checkPathes(myPath, otherPath);\n if (!relPath)\n throw new Error('pathname differs in relativePathFrom ' + origin + ' vs ' + this);\n return relPath;\n },\n\n svnWorkspacePath: function() {\n // heuristics to figure out the Subversion path\n var path = this.pathname;\n // note that the trunk/branches/tags convention is only a convention\n var index = path.lastIndexOf('trunk');\n if (index < 0) index = path.lastIndexOf('branches');\n if (index < 0) index = path.lastIndexOf('tags');\n if (index < 0) return null;\n return path.substring(index);\n },\n\n svnVersioned: function(repo, revision) {\n var relative = this.relativePathFrom(repo);\n return repo.withPath(repo.pathname + \"!svn/bc/\" + revision + \"/\" + relative);\n },\n \n notSvnVersioned: function() {\n // concatenates the two ends of the url\n // \"http://localhost/livelyBranch/proxy/wiki/!svn/bc/187/test/index.xhtml\"\n // --> \"http://localhost/livelyBranch/proxy/wiki/index.xhtml\"\n return this.withPath(this.fullPath().replace(/(.*)!svn\\/bc\\/[0-9]+\\/(.*)/, '$1$2'));\n },\n\n toLiteral: function() {\n // URLs are literal\n return Object.clone(this);\n },\n \n toExpression: function() {\n // this does not work with the new prototype.js (rev 2808) anymore\n // return 'new URL(JSON.unserialize(\\'' + JSON.serialize(this) + '\\'))';\n return Strings.format('new URL({protocol: \"%s\", hostname: \"%s\", pathname: \"%s\"})',\n this.protocol, this.hostname, this.pathname);\n },\n\n withRelativePartsResolved: function() {\n var urlString = this.toString();\n var result = urlString;\n // resolve ..\n do {\n urlString = result;\n result = urlString.replace(/\\/[^\\/]+\\/\\.\\./, '')\n } while(result != urlString)\n // foo//bar --> foo/bar\n result = result.replace(/([^:])[\\/]+/g, '$1/')\n // foo/./bar --> foo/bar\n result = result.replace(/\\/\\.\\//g, '/')\n return new URL(result)\n },\n getAllParentDirectories: function() {\n var url = this, all = [], max = 100;;\n do {\n max--;\n if (max == 0) throw new Error('Endless loop in URL>>getAllParentDirectories?')\n all.push(url);\n url = url.getDirectory();\n } while (url.fullPath() != '/')\n return all.reverse();\n },\n\n\n});\n\n// create URLs often needed\nObject.extend(URL, {\n source: new URL(document.URL),\n codeBase: (function setURLCodeBase() {\n var url;\n try { url = new URL(Config.codeBase) } catch(e) {\n console.warn('Cannot correctly set URL.codeBase because of ' + e);\n url = new URL(document.URL).getDirectory();\n }\n return url.withRelativePartsResolved();\n })(),\n})\n\nObject.extend(URL, {\n proxy: (function() {\n if (!Config.proxyURL) {\n if (URL.source.protocol.startsWith(\"file\")) \n console.log(\"loading from localhost, proxying won't work\");\n return URL.source.withFilename(\"proxy/\");\n } else {\n var str = Config.proxyURL;\n if (!str.endsWith('/')) str += '/';\n return new URL(str);\n }\n })(), \n});\n\nObject.extend(URL, {\n // FIXME: better names?\n common: {\n wiki: URL.proxy.withFilename('lively-wiki/'),\n repository: URL.proxy.withFilename('lively-kernel/'),\n project: URL.proxy.withFilename('lively-project/'), // currently lively-kernel.org\n domain: new URL(Global.document.location.protocol + '//' + Global.document.location.host)\n },\n});\n\nObject.extend(URL, {\n \n create: function(string) { return new URL(string) },\n\n ensureAbsoluteURL: function(urlString) {\n return /^http.*/.test(urlString) ?\n new URL(urlString) :\n URL.source.notSvnVersioned().getDirectory().withRelativePath(urlString);\n },\n ensureAbsoluteCodeBaseURL: function(urlString) {\n return /^http.*/.test(urlString) ?\n new URL(urlString) :\n URL.codeBase.withRelativePath(urlString);\n },\n\n\n fromLiteral: function(literal) { return new URL(literal) },\n\n makeProxied: function makeProxied(url) {\n url = url instanceof URL ? url : new URL(url);\n var px = this.proxy;\n if (!px) return url;\n if (px.normalizedHostname() != url.normalizedHostname()) // FIXME protocol?\n return px.withFilename(url.hostname + (url.port ? ':' + url.port : '') + url.fullPath());\n if (px.port != url.port)\n return px.withFilename(url.hostname + \":\" + url.port + url.fullPath());\n if (px.hostname != url.hostname) // one has prefix www, the other not\n return new URL({\n protocol: url.protocol,\n port: url.port,\n hostname: px.hostname, // arghhh\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n })\n return url;\n },\n\n});\n\n\nObject.subclass('NetRequestStatus',\n'documentation', {\n documentation: \"nice parsed status information, returned by NetRequest.getStatus when request done\",\n},\n'initialization', {\n initialize: function(method, url, transport) {\n this.method = method;\n this.url = url;\n this.transport = transport;\n this.exception = null;\n },\n},\n'testing', {\n isDone: function() {\n // transport.DONE not defined in all browsers, so use constant\n return this.transport.readyState === 4\n },\n\n isSuccess: function() {\n var code = this.transport.status;\n return code >= 200 && code < 300;\n },\n},\n'accessing', {\n setException: function(e) { this.exception = e },\n\n toString: function() {\n return Strings.format(\"#\", this.method, this.url, this.exception || this.transport.status);\n },\n\n requestString: function() { return this.method + \" \" + decodeURIComponent(this.url) },\n\n code: function() { return this.transport.status },\n\n getResponseHeader: function(name) { return this.transport.getResponseHeader(name) },\n\n});\n\n\nView.subclass('NetRequest', {\n documentation: \"a view that writes the contents of an http request into the model\",\n\n // see XMLHttpRequest documentation for the following:\n Unsent: 0,\n Opened: 1,\n HeadersReceived: 2,\n Loading: 3,\n Done: 4,\n\n formals: [\n \"+Status\", // Updated once, when request is {Done} with the value returned from 'getStatus'.\n \"+ReadyState\", // Updated on every state transition of the request.\n \"+ResponseXML\", // Updated at most once, when request state is {Done}, with the parsed XML document retrieved.\n \"+ResponseText\", // Updated at most once, when request state is {Done}, with the text content retrieved.\n \"+ResponseHeaders\", // Updated at most once, when request state is {Done}, with the response headers retrieved.\n \"StreamContent\",\n \"Progress\",\n ],\n\n initialize: function($super, modelPlug) {\n this.transport = new XMLHttpRequest();\n this.requestNetworkAccess();\n this.transport.onreadystatechange = this.onReadyStateChange.bind(this);\n this.isSync = false;\n this.isBinary = false;\n this.requestHeaders = {};\n $super(modelPlug)\n },\n\n enableProgress: function() {\n console.log(\"enableProgress\")\n // FIXME onprogress leads to strange 101 errors when no internet connection available\n this.transport.onprogress = this.onProgress.bind(this);\n if (!UserAgent.isTouch && this.transport.upload !== undefined) // FIXME crashes Mobile Safari && IE9+\n this.transport.upload.onprogress = this.onProgress.bind(this);\n },\n\n requestNetworkAccess: function() {\n if (Global.netscape && Global.location.protocol == \"file:\") { \n try {\n netscape.security.PrivilegeManager.enablePrivilege(\"UniversalBrowserRead\");\n console.log(\"requested browser read privilege\");\n return true;\n } catch (er) {\n console.log(\"no privilege granted: \" + er);\n return false;\n }\n }\n },\n\n beSync: function() {\n this.isSync = true;\n return this;\n },\n\n beBinary: function() {\n this.isBinary = true;\n return this;\n },\n\n onReadyStateChange: function() {\n this.setReadyState(this.getReadyState());\n if (this.getReadyState() === this.Loading) { // For comet networking\n this.setStatus(this.getStatus());\n var hasResponseText = false;\n try {\n // FIX for IE9+ if responseText is not available yet\n hasResponseText = this.transport.responseText;\n } catch (e) { console.warn('Request\\'s response text is not available yet.'); }\n if (hasResponseText !== undefined) {\n var allContent = this.getResponseText(),\n newStart = this._streamContentLength ? this._streamContentLength : 0,\n newContent = allContent.substring(newStart);\n newContent = /^([^\\n\\r]*)/.exec(newContent)[1]; // remove line breaks\n this.setStreamContent(newContent);\n this._streamContentLength = allContent.length;\n }\n }\n if (this.getReadyState() === this.Done) {\n this.setStatus(this.getStatus());\n if (this.transport.responseText !== undefined)\n this.setResponseText(this.getResponseText());\n if (this.transport.responseXML !== undefined) \n this.setResponseXML(this.getResponseXML());\n if (this.transport.getAllResponseHeaders() !== undefined)\n this.setResponseHeaders(this.getResponseHeaders());\n this.disconnectModel(); // autodisconnect?\n }\n },\n\n onProgress: function(progress) { this.setProgress(progress) },\n \n setRequestHeaders: function(record) {\n Properties.forEachOwn(record, function(prop, value) {\n this.requestHeaders[prop] = value;\n }, this);\n },\n\n setContentType: function(string) {\n // valid before send but after open?\n this.requestHeaders[\"Content-Type\"] = string;\n },\n\n getReadyState: function() { return this.transport.readyState },\n\n getResponseText: function() { return this.transport.responseText || \"\" },\n\n getResponseXML: function() { return this.transport.responseXML || \"\" },\n\n getResponseHeaders: function() {\n var headerString = this.transport.getAllResponseHeaders(),\n headerObj = {};\n headerString.split('\\r\\n').each(function(ea) {\n var splitter = ea.indexOf(':');\n if (splitter != -1) {\n headerObj[ea.slice(0, splitter)] = ea.slice(splitter + 1).trim();\n // as headers should be case-insensitiv, add lower case headers (for Safari)\n headerObj[ea.slice(0, splitter).toLowerCase()] = ea.slice(splitter + 1).trim();\n }\n });\n return headerObj;\n },\n\n getStatus: function() { return new NetRequestStatus(this.method, this.url, this.transport) },\n\n request: function(method, url, content) {\n try {\n this.url = url;\n this.method = method.toUpperCase(); \n this.transport.open(this.method, url.toString(), !this.isSync);\n Properties.forEachOwn(this.requestHeaders, function(p, value) {\n this.transport.setRequestHeader(p, value);\n }, this);\n if (!this.isBinary)\n this.transport.send(content || '');\n else\n this.transport.sendAsBinary(content || '');\n if (Global.isFirefox && this.isSync) // mr: FF does not use callback when sync \n this.onReadyStateChange();\n return this;\n } catch (er) {\n var status = this.getStatus();\n status.setException(er);\n this.setStatus(status);\n throw er;\n }\n },\n\n get: function(url) { return this.request(\"GET\", URL.makeProxied(url), null) },\n\n put: function(url, content) { return this.request(\"PUT\", URL.makeProxied(url), content) },\n\n post: function(url, content) { return this.request(\"POST\", URL.makeProxied(url), content) },\n\n propfind: function(url, depth, content) {\n this.setContentType(\"text/xml\"); // complain if it's set to something else?\n if (depth != 0 && depth != 1)\n depth = \"infinity\";\n this.setRequestHeaders({ \"Depth\" : depth });\n return this.request(\"PROPFIND\", URL.makeProxied(url), content);\n },\n\n report: function(url, content) { return this.request(\"REPORT\", URL.makeProxied(url), content) },\n\n mkcol: function(url, content) { return this.request(\"MKCOL\", URL.makeProxied(url), content) },\n\n del: function(url) { return this.request(\"DELETE\", URL.makeProxied(url)) },\n\n copy: function(url, destUrl, overwrite) {\n this.setRequestHeaders({ \"Destination\" : destUrl.toString() });\n if (overwrite) this.setRequestHeaders({ \"Overwrite\" : 'T' });\n return this.request(\"COPY\", URL.makeProxied(url));\n },\n move: function(url, destUrl, overwrite) {\n this.setRequestHeaders({ \"Destination\" : destUrl.toString() });\n if (overwrite) this.setRequestHeaders({ \"Overwrite\" : 'T' });\n return this.request(\"MOVE\", URL.makeProxied(url));\n },\n\n\n lock: function(url, owner) {\n this.setRequestHeaders({Timeout: 'Infinite, Second-30'});\n var content = Strings.format(' \\n\\\n \\n\\\n \\n\\\n \\n\\\n %s \\n\\\n ', owner || 'unknown user');\n return this.request(\"LOCK\", URL.makeProxied(url), content);\n },\n \n unlock: function(url, lockToken, force) {\n if (force) {\n var req = new NetRequest().beSync().propfind(url);\n var xml = req.getResponseXML() || stringToXML(req.getResponseText());\n var q = new Query('/descendant::*/D:lockdiscovery/descendant::*/D:locktoken/D:href');\n var tokenElement = q.findFirst(xml);\n if (!tokenElement) // no lock token, assume that resource isn't locked\n return req;\n lockToken = tokenElement.textContent;\n }\n this.setRequestHeaders({'Lock-Token': '<' + lockToken + '>'});\n return this.request(\"UNLOCK\", URL.makeProxied(url));\n },\n head: function(url) { return this.request(\"HEAD\", URL.makeProxied(url), null) },\n\n toString: function() { return \"#\" },\n\n});\n\n\n// extend your objects with this trait if you don't want to deal with error reporting yourself.\nNetRequestReporterTrait = {\n setRequestStatus: function(status) {\n // update the model if there is one\n if (this.getModel && this.getModel() && this.getModel().setRequestStatus)\n this.getModel().setRequestStatus(status);\n \n var world = WorldMorph.current();\n // some formatting for alerting. could be moved elsewhere\n var request = status.requestString();\n var tooLong = 80;\n if (request.length > tooLong) {\n var arr = [];\n for (var i = 0; i < request.length; i += tooLong) {\n arr.push(request.substring(i, i + tooLong));\n }\n request = arr.join(\"..\\n\");\n }\n // error reporting\n if (status.exception) {\n world.alert(\"exception \" + status.exception + \" accessing\\n\" + request);\n } else if (status.code() >= 300) {\n if (status.code() == 301) {\n // FIXME reissue request? need the 'Location' response header for it\n world.alert(\"HTTP/301: Moved to \" + status.getResponseHeader(\"Location\") + \"\\non \" + request);\n } else if (status.code() == 401) {\n world.alert(\"not authorized to access\\n\" + request); \n // should try to authorize\n } else if (status.code() == 412) {\n console.log(\"the resource was changed elsewhere\\n\" + request);\n } else if (status.code() == 423) {\n world.alert(\"the resource is locked\\n\" + request);\n } else {\n world.alert(\"failure to\\n\" + request + \"\\ncode \" + status.code());\n }\n } else console.log(\"status \" + status.code() + \" on \" + status.requestString());\n }\n};\n\n// convenience base class with built in handling of errors\nObject.subclass('NetRequestReporter', NetRequestReporterTrait);\n\n\n\nView.subclass('Resource'/*, NetRequestReporterTrait*/, {\n documentation: \"a remote document that can be fetched, stored and queried for metadata\",\n // FIXME: should probably encapsulate content type\n\n formals: [\"ContentDocument\", //:XML\n \"ContentText\", //:String\n \"URL\", // :URL\n \"RequestStatus\", // :NetRequestStatus\n \"ResponseHeaders\",\n \"Progress\",\n ],\n\n createNetRequest: function() {\n return new NetRequest({\n model: this,\n setResponseXML: \"setContentDocument\",\n setResponseText: 'setContentText',\n setStatus: \"setRequestStatus\",\n setResponseHeaders: \"setResponseHeaders\",\n setProgress: 'setProgress'\n });\n },\n \n initialize: function(plug, contentType) {\n this.contentType = contentType;\n this.connectModel(plug);\n },\n\n deserialize: Functions.Empty, // stateless besides the model and content type\n\n toString: function() {\n return \"#\";\n },\n\n removeNetRequestReporterTrait: function() {\n delete this.setRequestStatus;\n this.setRequestStatus = function(status) {\n if (this.getModel && this.getModel() && this.getModel().setRequestStatus)\n this.getModel().setRequestStatus(status);\n }.bind(this);\n },\n \n updateView: function(aspect, source) {\n var p = this.modelPlug;\n if (!p) return;\n switch (aspect) {\n case p.getURL:\n this.onURLUpdate(this.getURL()); // request headers?\n break;\n }\n },\n\n onURLUpdate: function(url) {\n return this.fetch(url);\n },\n\n fetch: function(sync, optRequestHeaders) {\n // fetch the document content itself\n var req = this.createNetRequest();\n if (sync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n if (this.isShowingProgress) req.enableProgress();\n req.get(this.getURL());\n return req;\n },\n\n fetchProperties: function(optSync, optRequestHeaders) {\n var req = this.createNetRequest();\n if (optSync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.propfind(this.getURL(), 1);\n return req;\n },\n\n store: function(content, optSync, optRequestHeaders) {\n // FIXME: check document type\n if ((Global.Document && content instanceof Document) || (Global.Node && content instanceof Node)) {\n content = Exporter.stringify(content);\n }\n var req = this.createNetRequest();\n if (optSync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n if (this.isShowingProgress) req.enableProgress();\n req.put(this.getURL(), content);\n return req;\n },\n\n});\n\nResource.subclass('SVNResource', {\n\n formals: Resource.prototype.formals.concat(['Metadata', 'HeadRevision']),\n\n createNetRequest: function() {\n return new NetRequest({\n model: this,\n setResponseXML: \"setContentDocument\",\n setResponseText: 'setContentText',\n setStatus: \"setRequestStatus\",\n setResponseHeaders: \"setResponseHeaders\",\n setProgress: 'setProgress'\n });\n },\n \n initialize: function($super, repoUrl, plug, contentType) {\n this.repoUrl = repoUrl.toString();\n $super(plug, contentType);\n },\n\n getLocalUrl: function() {\n return new URL(this.getURL()).relativePathFrom(new URL(this.repoUrl)).toString();\n },\n\n fetchHeadRevision: function(optSync) {\n var req = new NetRequest({\n model: this,\n setResponseXML: \"pvtSetHeadRevFromDoc\",\n setStatus: \"setRequestStatus\",\n setProgress: 'setProgress'\n });\n if (optSync) req.beSync();\n req.propfind(this.getURL(), 1);\n return req;\n },\n\n fetch: function($super, optSync, optRequestHeaders, rev) {\n var req;\n if (rev) {\n this.withBaselineUriDo(rev, function() { req = $super(optSync, optRequestHeaders) });\n } else {\n req = $super(optSync, optRequestHeaders);\n };\n return req;\n },\n \n store: function($super, content, optSync, optRequestHeaders, optHeadRev) {\n // if optHeadRev is not undefined than the store will only succeed\n // if the head revision of the resource is really optHeadRev\n if (optHeadRev) {\n var headers = optRequestHeaders ? optRequestHeaders : {};\n //determine local path of resource\n //var local = new URL(this.getURL()).relativePathFrom(new URL(this.repoUrl));\n var local = this.getURL().toString().substring(this.repoUrl.toString().length);\n if (local.startsWith('/')) local = local.slice(1); // remove leading slash\n var ifHeader = Strings.format('([\"%s//%s\"])', optHeadRev, local);\n console.log('Creating if header: ' + ifHeader);\n Object.extend(headers, {'If': ifHeader});\n }\n return $super(content, optSync, headers);\n },\n \n del: function(sync, optRequestHeaders) {\n var req = new NetRequest(this.createNetRequest());\n if (sync) req.beSync();\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.del(this.getURL());\n return req;\n },\n\n fetchProperties: function($super, optSync, optRequestHeaders, rev) {\n var req;\n if (rev) {\n this.withBaselineUriDo(rev, function() { req = $super(optSync, optRequestHeaders) });\n } else {\n req = $super(optSync, optRequestHeaders);\n };\n return req;\n },\n\n fetchMetadata: function(optSync, optRequestHeaders, startRev, endRev, reportDepth) {\n // get the whole history if startRev is undefined\n // FIXME: in this case the getHeadRevision will be called synchronous\n if (!startRev) {\n this.fetchHeadRevision(true);\n startRev = this.getHeadRevision();\n }\n this.reportDepth = reportDepth; // FIXME quick hack, needed in 'pvtScanLog...'\n var req = new NetRequest({\n model: this,\n setResponseXML: \"pvtScanLogReportForVersionInfos\",\n setStatus: \"setRequestStatus\",\n setProgress: 'setProgress'\n });\n if (optSync) req.beSync();\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.report(this.getURL(), this.pvtRequestMetadataXML(startRev, endRev));\n return req;\n },\n\n pvtSetHeadRevFromDoc: function(xml) {\n if (!xml) return;\n /* The response contains the properties of the specified file or directory,\n e.g. the revision (= version-name) */\n var revisionNode = xml.getElementsByTagName('version-name')[0];\n if (!revisionNode) return;\n this.setHeadRevision(Number(revisionNode.textContent));\n },\n\n pvtScanLogReportForVersionInfos: function(logReport) {\n // FIXME Refactor: method object?\n var errorQ = new Query('D:error//m:human-readable');\n \n var depth = this.reportDepth; \n var logItemQ = new Query('//S:log-item');\n var versionInfos = [];\n //var repoUrl = new URL(this.repoUrl);\n var repoUrl = this.repoUrl;\n\n var result = logItemQ.findAll(logReport);\n for (var i = 0; i < result.length; i++) {\n var logElement= result[i];\n var spec = {};\n for (var j = 0; j < logElement.childNodes.length; j++) {\n var logProp = logElement.childNodes[j];\n switch(logProp.tagName) {\n case 'D:version-name':\n spec.rev = Number(logProp.textContent); break;\n case 'D:creator-displayname':\n spec.author = logProp.textContent; break;\n case 'S:date':\n spec.date = logProp.textContent; break;\n case 'S:added-path':\n case 'S:modified-path':\n case 'S:deleted-path':\n case 'S:replaced-path':\n var relPath = logProp.textContent;\n if (depth && relPath.split('/').length-1 > depth)\n continue;\n //relPath = relPath.slice(1); // remove trailing /\n if (repoUrl.endsWith(relPath))\n spec.url = repoUrl; // hmmm???\n else\n spec.url = repoUrl.toString() + relPath.slice(1); \n // console.log('Created spec.url:' + spec.url);\n if (!spec.changes) spec.changes = [];\n var type = logProp.tagName.split('-').first();\n var url = logProp.tagName.include('modified-path') ? logProp.textContent : null;\n spec.changes.push({type: type, url : url});\n break;\n default:\n }\n };\n if (!spec.url) continue;\n spec.url = new URL(spec.url);\n versionInfos.push(new SVNVersionInfo(spec));\n };\n // newest version first\n versionInfos = versionInfos.sortBy(function(vInfo) { return vInfo.rev }).reverse();\n this.setMetadata(versionInfos);\n },\n \n pvtScanLogReportForVersionInfosTrace: function(logReport) {\n lively.lang.Execution.trace(this.pvtScanLogReportForVersionInfos.curry(logReport).bind(this));\n },\n\n pvtRequestMetadataXML: function(startRev, endRev) {\n return Strings.format(\n '' + \n '%s' +\n '%s' +\n '' +\n '' +\n '' +\n '', startRev, endRev || 0);\n },\n pvtRequestLocationXML: function(pegRev, pastRev) {\n return Strings.format(\n '' +\n '' +\n '%s' +\n '%s' +\n '', pegRev, pastRev);\n },\n\n\n withBaselineUriDo: function(rev, doFunc) {\n var tempUrl = this.getURL();\n this.setURL(this.createVersionURLString(rev));\n doFunc();\n this.setURL(tempUrl);\n },\n \n createVersionURLString: function(rev) {\n return this.repoUrl + '/!svn/bc/' + rev + '/' + this.getLocalUrl();\n },\n\n});\n\nObject.subclass('SVNVersionInfo', {\n\n documentation: 'This object wraps svn infos from report or propfind requests',\n\n initialize: function(spec) {\n // possible properties of spec:\n // rev, date, author, url, change, content\n for (name in spec) {\n var val = spec[name];\n if (name == 'date') {\n if (Object.isString(val)) {\n this.date = this.parseUTCDateString(val);\n } else if (val instanceof Date) {\n this.date = val;\n }\n } else {\n this[name] = val;\n }\n }\n if (!this.author)\n this.author = '(no author)';\n if (!this.date)\n this.date = new Date();\n },\n\n parseUTCDateString: function(dateString) {\n var yearElems = dateString.slice(0,10).split('-').collect(function(ea) {return Number(ea)});\n var timeElems = dateString.slice(11,19).split(':').collect(function(ea) {return Number(ea)});\n return new Date(yearElems[0], yearElems[1]-1, yearElems[2], timeElems[0], timeElems[1], timeElems[2])\n },\n\n toString: function() {\n // does not work when evaluate {new SVNVersionInfo() + \"\"} although toStrings() works fine. *grmph*\n // string = Strings.format('%s, %s, %s, Revision %s',\n // this.author, this.date.toTimeString(), this.date.toDateString(), this.rev);\n // string = new String(string);\n // string.orig = this;\n // TODO work around Serialization bug\n var timeString = this.date.toTimeString ? \n this.date.toTimeString() :\n 'no time';\n\n var dateString = this.date.toDateString ? \n this.date.toDateString() :\n 'no date';\n\n return Strings.format('%s, %s, %s, Rev. %s',\n this.author, timeString, dateString, this.rev);\n },\n \n toExpression: function() {\n return Strings.format('new SVNVersionInfo({rev: %s, url: %s, date: %s, author: %s, change: %s, fileSize: %s})',\n this.rev, toExpression(this.url), toExpression(this.date),\n toExpression(this.author), toExpression(this.change), toExpression(this.fileSize));\n },\n \n});\nObject.extend(SVNVersionInfo, {\n fromPropfindNode: function(node) {\n // FIXME cleanup --> Similar code exists in lively.Network -> pvtSetMeta...sth\n // rk 2/22/10: the namespace tag lp1 is required by Firefox\n var prefix = UserAgent.fireFoxVersion ? 'lp1:' : '';\n\n var versionTag = node.getElementsByTagName(prefix + 'version-name')[0];\n var rev = versionTag ? Number(versionTag.textContent) : 0;\n\n var dateTag = node.getElementsByTagName(prefix + 'getlastmodified')[0];\n var date = new Date(dateTag ? dateTag.textContent : 'Mon, 01 Jan 1900 00:00:00 GMT');\n\n var authorTag = node.getElementsByTagName(prefix + 'creator-displayname')[0];\n var author = authorTag ? authorTag.textContent : 'anonymous';\n\n var sizeTag = node.getElementsByTagName(prefix + 'getcontentlength')[0];\n var fileSize = sizeTag ? Number(sizeTag.textContent) : -1;\n\n // FIXME: resolve prefix \"D\" to something meaningful?\n var nameQ = new Query(\"D:href\");\n var result = nameQ.findFirst(node);\n var name = result && decodeURIComponent(result.textContent);\n var slash = name.endsWith('/') ? name.lastIndexOf('/', name.length - 2) : name.lastIndexOf('/');\n var shortName = name.substring(slash + 1);\n\n return new SVNVersionInfo({rev: rev, date: date, author: author, shortName: shortName, url: name, fileSize: fileSize});\n},\n});\n\nObject.subclass('WebResource',\n'documentation', {\n connections: ['status', 'content', 'contentDocument', 'isExisting', 'subCollections', 'subDocuments', 'progress', 'readystate', 'versions', 'headRevision'],\n},\n'initializing', {\n initialize: function(url) {\n this._url = new URL(url);\n this.beSync();\n this.reset();\n },\n\n reset: function() {\n this.beText();\n this.status = null;\n this.content = null;\n this.contentDocument = null;\n this.isExisting = null;\n this.subResources = null;\n this.requestHeaders = {};\n this.responseHeaders = {};\n },\n\n createResource: function() {\n var self = this;\n var resource = new SVNResource(\n this.getRepoURL().toString(),\n {\n model: {\n url: self.getURL().toString(),\n getURL: function() { return this.url },\n setURL: function(url) { this.url = url },\n setRequestStatus: function(reqStatus) { self.status = reqStatus; self.isExisting = reqStatus.isSuccess() },\n setContentText: function(string) { self.content = string },\n setContentDocument: function(doc) { self.contentDocument = doc },\n setResponseHeaders: function(obj) { self.responseHeaders = obj },\n setProgress: function(progress) { self.progress = progress },\n setHeadRevision: function(rev) { self.headRevision = rev },\n getHeadRevision: function() { return self.headRevision },\n setMetadata: function(metadata) { self.versions = metadata },\n },\n getURL: 'getURL',\n setURL: 'setURL',\n setRequestStatus: 'setRequestStatus',\n setContentText: 'setContentText',\n setContentDocument: 'setContentDocument',\n setResponseHeaders: 'setResponseHeaders',\n setProgress: 'setProgress',\n setHeadRevision: 'setHeadRevision',\n getHeadRevision: 'getHeadRevision',\n setMetadata: 'setMetadata',\n });\n resource.isShowingProgress = this.isShowingProgress;\n // resource.removeNetRequestReporterTrait();\n return resource\n },\n\n createNetRequest: function() {\n var self = this;\n var request = new NetRequest({\n model: {\n setStatus: function(reqStatus) { self.status = reqStatus; self.isExisting = reqStatus.isSuccess() },\n setResponseText: function(string) { self.content = string },\n setResponseXML: function(doc) { self.contentDocument = doc },\n setResponseHeaders: function(obj) { self.responseHeaders = obj },\n setReadyState: function(readyState) { self.readystate = readyState },\n setProgress: function(progress) { self.progress = progress },\n setStreamContent: function(content) { self.content = content; self.streamContent = content },\n },\n setStatus: 'setStatus',\n setResponseText: 'setResponseText',\n setResponseXML: 'setResponseXML',\n setResponseHeaders: 'setResponseHeaders',\n setReadyState: 'setReadyState',\n setProgress: 'setProgress',\n setStreamContent: 'setStreamContent',\n });\n if (this.isSync())\n request.beSync();\n if (this.requestHeaders)\n request.requestHeaders = this.requestHeaders;\n return request;\n },\n createXMLHTTPRequest: function(method) {\n // objects to work with\n method = method.toUpperCase();\n var webR = this,\n url = this.getURL(),\n requestHeaders = this.requestHeaders,\n isSync = this.isSync(),\n req = new XMLHttpRequest(),\n loadStates = {UNSENT: 0, OPENED: 1, HEADERSRECEIVED: 2, LOADING: 3, DONE: 4};\n\n // helper functions\n function createStatus () { return new NetRequestStatus(method, url, req) };\n function extractHeaders(req) {\n var headerString = req.getAllResponseHeaders(),\n headerObj = {};\n headerString.split('\\r\\n').forEach(function(ea) {\n var splitter = ea.indexOf(':');\n if (splitter != -1) {\n headerObj[ea.slice(0, splitter)] = ea.slice(splitter + 1).trim();\n // as headers should be case-insensitiv, add lower case headers (for Safari)\n headerObj[ea.slice(0, splitter).toLowerCase()] = ea.slice(splitter + 1).trim();\n }\n });\n return headerObj;\n };\n function onReadyStateChange() {\n var status = createStatus();\n webR.status = status;\n if (req.readyState == loadStates.DONE) {\n webR.isExisting = status.isSuccess();\n if (req.responseText !== undefined)\n webR.content = req.responseText;\n if (req.responseXML !== undefined)\n webR.contentDocument = req.responseXML;\n if (req.getAllResponseHeaders() !== undefined)\n webR.responseHeaders = extractHeaders(req)\n }\n\n // setReadyState: function(readyState) { self.readystate = readyState },\n // setProgress: function(progress) { self.progress = progress },\n // setStreamContent: function(content) { self.content = content },\n };\n\n function onProgress(evt) {\n webR.progressEvent = evt;\n // var percentComplete = (e.position / e.totalSize)*100;\n };\n // register event handlers\n req.onreadystatechange = onReadyStateChange;\n\n if (method === 'PUT' || method === 'POST') {\n req.upload.addEventListener(\"progress\", onProgress, false);\n // req.upload.addEventListener(\"load\", transferComplete, false);\n // req.upload.addEventListener(\"error\", transferFailed, false);\n // req.upload.addEventListener(\"abort\", transferCanceled, false);\n } else {\n req.addEventListener(\"progress\", onProgress, false);\n }\n\n // to be more or less compatible with the netRequest object -- fixme should simplified\n return {\n request: function(content) {\n var proxiedUrl = URL.makeProxied(url);\n req.open(method, proxiedUrl.toString(), !isSync);\n Properties.forEachOwn(requestHeaders, function(p, value) {\n req.setRequestHeader(p, value);\n });\n var sendSelector = webR.isBinary() && req.sendAsBinary ? 'sendAsBinary' : 'send';\n try {\n req[sendSelector](content);\n if (Global.isFirefox && isSync) // mr: FF does not use callback when sync \n onReadyStateChange();\n } catch (er) {\n webR.status = createStatus();\n throw er;\n }\n }\n }\n },\n\n},\n'private', {\n temporaryChangeURLAndDo: function(otherURL, func) {\n var temp = this._url;\n this._url = otherURL;\n var result = func.call(this)\n this._url = temp;\n return result;\n },\n},\n'accessing', {\n getURL: function() { return this._url; },\n getRepoURL: function() {\n return URL.codeBase // FIXME repo!\n },\n\n getName: function() { return this.getURL().filename(); },\n isCollection: function() { return !this.getURL().isLeaf() },\n},\n'configuration', {\n isSync: function() { return this._isSync; },\n beSync: function() { this._isSync = true; return this; },\n beAsync: function() { this._isSync = false; return this; },\n setSync: function(bool) { this._isSync = bool; return this; },\n\n isBinary: function() { return this._isBinary; },\n beBinary: function() { this._isBinary = true; return this; },\n beText: function() { this._isBinary = false; return this; },\n\n\n forceUncached: function() {\n this._url = this.getURL().withQuery({time: new Date().getTime()});\n return this;\n },\n},\n'progress', {\n enableShowingProgress: function() { this.isShowingProgress = true; return this },\n createProgressBar: function(label) {\n // this.enableShowingProgress();\n // var labelFunc = Object.isString(labelOrFunc) ?\n // function() { return labelOrFunc } : labelOrFunc;\n\t\tif (!Config.isNewMorphic) return this;\n var progressBar = lively.morphic.World.current().addStatusProgress(label);\n connect(this, 'progressEvent', progressBar, 'setValue',\n {converter: function(rpe) { return (rpe.loaded / rpe.total) }});\n connect(this, 'status', progressBar, 'remove', {\n updater: function($upd, status) { if (status.isDone()) $upd() }});\n return this;\n },\n\n},\n'DEPRECATED', {\n copyTo: function(url) {\n var otherResource = new WebResource(url);\n otherResource.create();\n new NetRequest().copy(this.getURL(), url, true /*overwrite*/);\n return otherResource;\n },\n\n},\n'debugging', {\n statusMessage: function(successMsg, failureMessage, onlyOnce) {\n this.successMsg = successMsg;\n this.failureMessage = failureMessage;\n var world = Config.isNewMorphic ? lively.morphic.World.current() : WorldMorph.current();\n if (!world) return this;\n lively.bindings.connect(this, 'status', world, 'setStatusMessage', {\n updater: function($upd, status) {\n if (!status.isDone()) return;\n var m1 = this.sourceObj.successMsg,\n m2 = this.sourceObj.failureMessage;\n if (status.isSuccess() && m1) $upd(m1, Color.green, 4)\n else if (m2) $upd(m2 + ' (code ' + status.code() + ')', Color.red, 6)\n },\n removeAfterUpdate: onlyOnce\n });\n return this\n },\n\n toString: function() { return 'WebResource(' + this.getURL() + ')' },\n},\n'request headers', {\n\n setRequestHeaders: function(headers) {\n this.requestHeaders = headers;\n return this;\n },\n addHeaderForRequiredRevision: function(rev) {\n if (!rev) return;\n var local = this.getURL().relativePathFrom(this.getRepoURL()),\n ifHeader = Strings.format('([\"%s//%s\"])', rev, local);\n console.log('Creating if header: ' + ifHeader);\n this.requestHeaders[\"If\"] = ifHeader;\n },\n addContentType: function(contentType) {\n this.requestHeaders[\"Content-Type\"] = contentType || '';\n },\n\n},\n'HTTP methods', {\n\n get: function(rev, contentType, urlOfPastVersion) {\n if (!rev) {\n var req = this.createNetRequest()\n if (contentType) req.setContentType(contentType);\n req.get(this.getURL());\n return this;\n }\n if (urlOfPastVersion) {\n this.temporaryChangeURLAndDo(urlOfPastVersion, function() {\n var resource = this.createResource();\n if (contentType) resource.contentType = contentType;\n resource.fetch(this.isSync(), this.requestHeaders, rev);\n })\n return this;\n }\n // use a helper so that connections to this are not triggered when\n // location XML is written to content/contentDocument\n var helper = new WebResource(this.getURL());\n helper.setSync(this.isSync())\n connect(helper, 'revAndLocations', this, 'get', {\n updater: function($upd, revAndPath) { $upd(rev, contentType, revAndPath[rev]) },\n varMapping: {rev: rev, contentType: contentType}});\n helper.getLocationInRev(rev, this.headRevision);\n return this;\n },\n get2: function(rev, contentType, urlOfPastVersion) {\n if (!rev) {\n if (contentType) this.addContentType(contentType);\n var req = this.createXMLHTTPRequest('GET');\n req.request();\n return this;\n }\n if (urlOfPastVersion) {\n this.temporaryChangeURLAndDo(urlOfPastVersion, function() {\n var resource = this.createResource();\n if (contentType) resource.contentType = contentType;\n resource.fetch(this.isSync(), this.requestHeaders, rev);\n })\n return this;\n }\n // use a helper so that connections to this are not triggered when\n // location XML is written to content/contentDocument\n var helper = new WebResource(this.getURL());\n helper.setSync(this.isSync())\n connect(helper, 'revAndLocations', this, 'get', {\n updater: function($upd, revAndPath) { $upd(rev, contentType, revAndPath[rev]) },\n varMapping: {rev: rev, contentType: contentType}});\n helper.getLocationInRev(rev, this.headRevision);\n return this;\n },\n\n\n put_DEPRECATED: function(content, contentType, requiredRevision) {\n this.content = this.convertContent(content);\n var resource = this.createResource();\n if (contentType)\n resource.contentType = contentType;\n resource.store(content, this.isSync(), this.requestHeaders, requiredRevision);\n\n return this;\n },\n put: function(content, contentType, requiredRevision) {\n this.content = this.convertContent(content || '');\n if (requiredRevision) this.addHeaderForRequiredRevision(requiredRevision);\n if (contentType) this.addContentType(contentType)\n var req = this.createXMLHTTPRequest('PUT');\n req.request(this.content);\n return this;\n },\n\n\n create: function() {\n if (!this.isCollection()) return this.put('');\n var request = this.createNetRequest();\n request.mkcol(this.getURL());\n return this;\n },\n\n del: function() {\n var request = this.createNetRequest();\n request.del(this.getURL());\n return this;\n },\n\n post: function(content, contentType) {\n this.content = content;\n var request = this.createNetRequest();\n if (contentType)\n request.setContentType(contentType);\n request.post(this.getURL(), content);\n return this;\n },\n \n exists: function() {\n // for async use this.get().isExisting directly\n try {\n return this.beSync().head().status.isSuccess()\n } catch(e) {\n return false;\n }\n },\n head: function() {\n var request = this.createNetRequest();\n request.head(this.getURL());\n return this;\n },\n\n propfind: function(depth) {\n if (!depth) depth = 1;\n var req = this.createNetRequest();\n req.propfind(this.getURL(), depth);\n return this;\n },\n report: function(content) {\n var req = this.createNetRequest();\n req.report(this.getURL(), content);\n return this; \n },\n\n\n getSubElements: function(depth) {\n\n lively.bindings.connect(this, 'contentDocument', this, 'pvtProcessPropfindForSubElements', {removeAfterUpdate: true});\n this.propfind(depth);\n return this;\n },\n\n copyTo: function(url) {\n var request = this.createNetRequest();\n request.copy(this.getURL(), url, true /*overwrite*/);\n return this;\n },\n moveTo: function(url) {\n var request = this.createNetRequest();\n request.move(this.getURL(), url, true /*overwrite*/);\n return this;\n },\n\n \n getVersions: function(startRev, endRev) {\n var res = this.createResource();\n //connect(this, 'contentDocument', this, 'pvtProcessPropfindForGetVersions', {removeAfterUpdate: true});\n if (!startRev) {\n if (this.headRevision) {\n startRev = this.headRevision;\n } else {\n connect(this, 'headRevision', this, 'getVersions', {removeAfterUpdate: true});\n // FIXME if only endRev is passed in, it's forgotten here...\n this.getHeadRevision();\n return this;\n }\n }\n res.fetchMetadata(this.isSync(), this.requestHeaders, startRev, endRev, null);\n return this;\n },\n\n getHeadRevision: function() {\n var res = this.createResource();\n res.fetchHeadRevision(this.isSync());\n return this;\n },\n\n getProperties: function(optRequestHeaders, rev) {\n var res = this.createResource();\n res.fetchProperties(this.isSync(), optRequestHeaders, rev);\n return this;\n },\n ensureExistance: function() {\n var url = this.getURL();\n url.getAllParentDirectories().forEach(function(ea) {\n var webR = new WebResource(ea);\n if (!webR.exists()) {\n console.log('creating ' + webR.getURL());\n webR.create();\n }\n })\n return this;\n },\n},\n'version specific', {\n getLocationInRev: function(rev) {\n var self = this,\n reportRequester = {\n action: function(headRev) {\n var content = Strings.format(\n '' +\n '' +\n '%s' +\n '%s' +\n '', headRev, rev);\n connect(self, 'contentDocument', self, 'pvtProcessForLocationRequest', {\n removeAfterUpdate: true});\n self.report(content);\n }\n }\n if (this.headRevision) {\n reportRequester.action(this.headRevision)\n } else {\n connect(self, 'headRevision', reportRequester, 'action', {removeAfterUpdate: true});\n this.getHeadRevision();\n }\n return this;\n },\n\n},\n'XML querying', {\n pvtProcessForLocationRequest: function(doc) {\n var revAndLocations = {},\n locations = doc.getElementsByTagName('location');\n for (var i = 0; i < locations.length; i++) {\n var rev = locations[i].getAttribute('rev'),\n path = locations[i].getAttribute('path');\n revAndLocations[rev] = this.getRepoURL().withFilename(path);\n }\n // set it when retrieved so that connections work\n this.revAndLocations = revAndLocations;\n },\n pvtProcessPropfindForSubElements: function(doc) {\n if (!this.status.isSuccess())\n throw new Error('Cannot access subElements of ' + this.getURL());\n // FIXME: resolve prefix \"D\" to something meaningful?\n var nodes = new Query(\"/D:multistatus/D:response\").findAll(doc.documentElement)\n var urlQ = new Query('D:href');\n nodes.shift(); // remove first since it points to this WebResource\n var result = [];\n for (var i = 0; i < nodes.length; i++) {\n var urlNode = urlQ.findFirst(nodes[i]);\n var url = urlNode.textContent || urlNode.text; // text is FIX for IE9+\n if (/!svn/.test(url)) continue;// ignore svn dirs\n var child = new WebResource(this.getURL().withPath(url));\n var revNode = nodes[i].getElementsByTagName('version-name')[0];\n if (revNode) child.headRevision = Number(revNode.textContent);\n result.push(child);\n }\n this.subCollections = result.select(function(ea) { return ea.isCollection() });\n this.subDocuments = result.select(function(ea) { return !ea.isCollection() });\n },\n},\n'conversion', {\n convertContent: function(content) {\n // if requiredRevision is set then put will only succeed if the resource has\n // the revision number requiredRevision\n if (this.isBinary()) {\n // from http://code.google.com/p/chromium/issues/detail?id=35705#c6\n var byteValue = function(x) { return x.charCodeAt(0) & 0xff },\n ords = Array.prototype.map.call(content, byteValue),\n ui8a = new Uint8Array(ords);\n content = ui8a.buffer;\n }\n if ((Global.Document && content instanceof Document) ||\n (Global.Node && content instanceof Node)) {\n content = Exporter.stringify(content);\n } else if (content.xml) { // serialization FIX for IE9+\n content = content.xml;\n }\n return content;\n },\n});\n\n\n// make WebResource async\nObject.extend(WebResource, {\n create: function(url) { return new this(url) },\n});\n\nconsole.log('loaded Network.js');\n\n\n}); // end of module","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2363":{"_Position":{"__isSmartRef__":true,"id":2364},"renderContextTable":{"__isSmartRef__":true,"id":2365},"_Extent":{"__isSmartRef__":true,"id":2366},"_ClipMode":"auto","_Padding":{"__isSmartRef__":true,"id":2367},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":{"__isSmartRef__":true,"id":138},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2364":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2365":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2366":{"x":820,"y":302.5,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2367":{"x":5,"y":5,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2368":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2369":{"style":{"__isSmartRef__":true,"id":2370},"chunkOwner":{"__isSmartRef__":true,"id":2362},"storedString":"/*\n * Copyright (c) 2006-2009 Sun Microsystems, Inc.\n * Copyright (c) 2008-2011 Hasso Plattner Institute\n *\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * Network.js. Networking capabilities.\n *\n * Note: In a browser-based implementation of our system,\n * most of the necessary networking functionality is \n * inherited from the browser. \n */\n\nmodule('lively.Network').requires('lively.bindings', 'lively.NoMoreModels', 'lively.Data').toRun(function(thisModule) {\n \nObject.subclass('URL', {\n splitter: new RegExp('(http:|https:|file:)' + '(//[^/:]*(:[0-9]+)?)?' + '(/.*)?'),\n pathSplitter: new RegExp(\"([^\\\\?#]*)(\\\\?[^#]*)?(#.*)?\"),\n \n initialize: function(/*...*/) { // same field names as window.location\n dbgOn(!arguments[0]);\n if (Object.isString(arguments[0].valueOf())) {\n var urlString = arguments[0];\n var result = urlString.match(this.splitter);\n if (!result) throw new Error(\"malformed URL string '\" + urlString + \"'\");\n this.protocol = result[1]; \n if (!result[1]) \n throw new Error(\"bad url \" + urlString + \", \" + result);\n this.hostname = result[2] && result[2].substring(2).split(':')[0]; // skip the leading slashes and remove port\n this.port = result[3] && parseInt(result[3].substring(1)); // skip the colon\n\n var fullpath = result[4];\n if (fullpath) {\n result = fullpath.match(this.pathSplitter);\n this.pathname = result[1];\n this.search = result[2];\n this.hash = result[3];\n } else {\n this.pathname = \"/\";\n this.search = \"\";\n this.hash = \"\";\n }\n } else { // spec is either an URL or window.location\n var spec = arguments[0];\n this.protocol = spec.protocol || \"http\";\n this.port = spec.port;\n this.hostname = spec.hostname;\n this.pathname = spec.pathname || \"\";\n if (spec.search !== undefined) this.search = spec.search;\n if (spec.hash !== undefined) this.hash = spec.hash;\n }\n },\n \n inspect: function() {\n return JSON.serialize(this);\n },\n \n toString: function() {\n return this.protocol + \"//\" + this.hostname + (this.port ? \":\" + this.port : \"\") + this.fullPath();\n },\n\n fullPath: function() {\n return this.pathname + (this.search || \"\") + (this.hash || \"\");\n },\n \n isLeaf: function() {\n return !this.fullPath().endsWith('/');\n },\n \n // POSIX style\n dirname: function() {\n var p = this.pathname;\n var slash = p.endsWith('/') ? p.lastIndexOf('/', p.length - 2) : p.lastIndexOf('/');\n return p.substring(0, slash + 1);\n },\n\n filename: function() {\n var p = this.pathname;\n var slash = p.endsWith('/') ? p.lastIndexOf('/', p.length - 2) : p.lastIndexOf('/');\n return p.substring(slash + 1);\n },\n\n normalizedHostname: function() {\n return this.hostname.replace(/^www\\.(.*)/, '$1');\n },\n \n getDirectory: function() {\n return this.withPath(this.dirname());\n },\n asDirectory: function() {\n return this.fullPath().endsWith('/') ?\n this : new URL(this.withoutQuery().toString() + '/');\n },\n \n \n \n \n\n\n withPath: function(path) { \n var result = path.match(this.pathSplitter);\n if (!result) return null;\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: \n result[1], search: result[2], hash: result[3] });\n },\n\n withRelativePath: function(pathString) {\n if (pathString.startsWith('/')) {\n if (this.pathname.endsWith('/'))\n pathString = pathString.substring(1);\n } else {\n if (!this.pathname.endsWith('/'))\n pathString = \"/\" + pathString;\n }\n return this.withPath(this.pathname + pathString);\n },\n \n withFilename: function(filename) {\n if (filename == \"./\" || filename == \".\") // a bit of normalization, not foolproof\n filename = \"\";\n var dirPart = this.isLeaf() ? this.dirname() : this.fullPath();\n return new URL({protocol: this.protocol, port: this.port, \n hostname: this.hostname, pathname: dirPart + filename});\n },\n\n toQueryString: function(record) {\n var results = [];\n Properties.forEachOwn(record, function(p, value) {\n results.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(String(value)));\n });\n return results.join('&');\n },\n\n withQuery: function(record) {\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: this.pathname,\n search: \"?\" + this.toQueryString(record), hash: this.hash});\n },\n \n withoutQuery: function() {\n return new URL({protocol: this.protocol, port: this.port, hostname: this.hostname, pathname: this.pathname});\n },\n\n getQuery: function() {\n var s = this.toString();\n if (!s.include(\"?\"))\n return {};\n return s.toQueryParams();\n },\n \n eq: function(url) {\n if (!url) return false;\n return url.protocol == this.protocol &&\n url.port == this.port &&\n url.normalizedHostname() == this.normalizedHostname() &&\n url.pathname == this.pathname &&\n url.search == this.search &&\n url.hash == this.hash;\n },\n isIn: function(origin) {\n return origin.normalizedHostname() == this.normalizedHostname() &&\n this.fullPath().startsWith(origin.fullPath());\n },\n\n\n relativePathFrom: function(origin) {\n function checkPathes(path1, path2) {\n var paths1 = path1.split('/'),\n paths2 = path2.split('/');\n\n paths1.shift();\n paths2.shift();\n\n for (var i = 0; i < paths2.length; i++) {\n if (!paths1[i] || (paths1[i] != paths2[i]))\n break;\n }\n\n // now that's some JavaScript FOO\n var result = '../'.times(paths2.length - i - 1) + paths1.splice(i, paths1.length).join('/');\n return result;\n }\n\n if (origin.normalizedHostname() != this.normalizedHostname())\n throw new Error('hostname differs in relativePathFrom ' + origin + ' vs ' + this);\n var myPath = this.withRelativePartsResolved().pathname,\n otherPath = origin.withRelativePartsResolved().pathname;\n if (myPath == otherPath) return '';\n var relPath = checkPathes(myPath, otherPath);\n if (!relPath)\n throw new Error('pathname differs in relativePathFrom ' + origin + ' vs ' + this);\n return relPath;\n },\n\n svnWorkspacePath: function() {\n // heuristics to figure out the Subversion path\n var path = this.pathname;\n // note that the trunk/branches/tags convention is only a convention\n var index = path.lastIndexOf('trunk');\n if (index < 0) index = path.lastIndexOf('branches');\n if (index < 0) index = path.lastIndexOf('tags');\n if (index < 0) return null;\n return path.substring(index);\n },\n\n svnVersioned: function(repo, revision) {\n var relative = this.relativePathFrom(repo);\n return repo.withPath(repo.pathname + \"!svn/bc/\" + revision + \"/\" + relative);\n },\n \n notSvnVersioned: function() {\n // concatenates the two ends of the url\n // \"http://localhost/livelyBranch/proxy/wiki/!svn/bc/187/test/index.xhtml\"\n // --> \"http://localhost/livelyBranch/proxy/wiki/index.xhtml\"\n return this.withPath(this.fullPath().replace(/(.*)!svn\\/bc\\/[0-9]+\\/(.*)/, '$1$2'));\n },\n\n toLiteral: function() {\n // URLs are literal\n return Object.clone(this);\n },\n \n toExpression: function() {\n // this does not work with the new prototype.js (rev 2808) anymore\n // return 'new URL(JSON.unserialize(\\'' + JSON.serialize(this) + '\\'))';\n return Strings.format('new URL({protocol: \"%s\", hostname: \"%s\", pathname: \"%s\"})',\n this.protocol, this.hostname, this.pathname);\n },\n\n withRelativePartsResolved: function() {\n var urlString = this.toString();\n var result = urlString;\n // resolve ..\n do {\n urlString = result;\n result = urlString.replace(/\\/[^\\/]+\\/\\.\\./, '')\n } while(result != urlString)\n // foo//bar --> foo/bar\n result = result.replace(/([^:])[\\/]+/g, '$1/')\n // foo/./bar --> foo/bar\n result = result.replace(/\\/\\.\\//g, '/')\n return new URL(result)\n },\n getAllParentDirectories: function() {\n var url = this, all = [], max = 100;;\n do {\n max--;\n if (max == 0) throw new Error('Endless loop in URL>>getAllParentDirectories?')\n all.push(url);\n url = url.getDirectory();\n } while (url.fullPath() != '/')\n return all.reverse();\n },\n\n\n});\n\n// create URLs often needed\nObject.extend(URL, {\n source: new URL(document.URL),\n codeBase: (function setURLCodeBase() {\n var url;\n try { url = new URL(Config.codeBase) } catch(e) {\n console.warn('Cannot correctly set URL.codeBase because of ' + e);\n url = new URL(document.URL).getDirectory();\n }\n return url.withRelativePartsResolved();\n })(),\n})\n\nObject.extend(URL, {\n proxy: (function() {\n if (!Config.proxyURL) {\n if (URL.source.protocol.startsWith(\"file\")) \n console.log(\"loading from localhost, proxying won't work\");\n return URL.source.withFilename(\"proxy/\");\n } else {\n var str = Config.proxyURL;\n if (!str.endsWith('/')) str += '/';\n return new URL(str);\n }\n })(), \n});\n\nObject.extend(URL, {\n // FIXME: better names?\n common: {\n wiki: URL.proxy.withFilename('lively-wiki/'),\n repository: URL.proxy.withFilename('lively-kernel/'),\n project: URL.proxy.withFilename('lively-project/'), // currently lively-kernel.org\n domain: new URL(Global.document.location.protocol + '//' + Global.document.location.host)\n },\n});\n\nObject.extend(URL, {\n \n create: function(string) { return new URL(string) },\n\n ensureAbsoluteURL: function(urlString) {\n return /^http.*/.test(urlString) ?\n new URL(urlString) :\n URL.source.notSvnVersioned().getDirectory().withRelativePath(urlString);\n },\n ensureAbsoluteCodeBaseURL: function(urlString) {\n return /^http.*/.test(urlString) ?\n new URL(urlString) :\n URL.codeBase.withRelativePath(urlString);\n },\n\n\n fromLiteral: function(literal) { return new URL(literal) },\n\n makeProxied: function makeProxied(url) {\n url = url instanceof URL ? url : new URL(url);\n var px = this.proxy;\n if (!px) return url;\n if (px.normalizedHostname() != url.normalizedHostname()) // FIXME protocol?\n return px.withFilename(url.hostname + (url.port ? ':' + url.port : '') + url.fullPath());\n if (px.port != url.port)\n return px.withFilename(url.hostname + \":\" + url.port + url.fullPath());\n if (px.hostname != url.hostname) // one has prefix www, the other not\n return new URL({\n protocol: url.protocol,\n port: url.port,\n hostname: px.hostname, // arghhh\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n })\n return url;\n },\n\n});\n\n\nObject.subclass('NetRequestStatus',\n'documentation', {\n documentation: \"nice parsed status information, returned by NetRequest.getStatus when request done\",\n},\n'initialization', {\n initialize: function(method, url, transport) {\n this.method = method;\n this.url = url;\n this.transport = transport;\n this.exception = null;\n },\n},\n'testing', {\n isDone: function() {\n // transport.DONE not defined in all browsers, so use constant\n return this.transport.readyState === 4\n },\n\n isSuccess: function() {\n var code = this.transport.status;\n return code >= 200 && code < 300;\n },\n},\n'accessing', {\n setException: function(e) { this.exception = e },\n\n toString: function() {\n return Strings.format(\"#\", this.method, this.url, this.exception || this.transport.status);\n },\n\n requestString: function() { return this.method + \" \" + decodeURIComponent(this.url) },\n\n code: function() { return this.transport.status },\n\n getResponseHeader: function(name) { return this.transport.getResponseHeader(name) },\n\n});\n\n\nView.subclass('NetRequest', {\n documentation: \"a view that writes the contents of an http request into the model\",\n\n // see XMLHttpRequest documentation for the following:\n Unsent: 0,\n Opened: 1,\n HeadersReceived: 2,\n Loading: 3,\n Done: 4,\n\n formals: [\n \"+Status\", // Updated once, when request is {Done} with the value returned from 'getStatus'.\n \"+ReadyState\", // Updated on every state transition of the request.\n \"+ResponseXML\", // Updated at most once, when request state is {Done}, with the parsed XML document retrieved.\n \"+ResponseText\", // Updated at most once, when request state is {Done}, with the text content retrieved.\n \"+ResponseHeaders\", // Updated at most once, when request state is {Done}, with the response headers retrieved.\n \"StreamContent\",\n \"Progress\",\n ],\n\n initialize: function($super, modelPlug) {\n this.transport = new XMLHttpRequest();\n this.requestNetworkAccess();\n this.transport.onreadystatechange = this.onReadyStateChange.bind(this);\n this.isSync = false;\n this.isBinary = false;\n this.requestHeaders = {};\n $super(modelPlug)\n },\n\n enableProgress: function() {\n console.log(\"enableProgress\")\n // FIXME onprogress leads to strange 101 errors when no internet connection available\n this.transport.onprogress = this.onProgress.bind(this);\n if (!UserAgent.isTouch && this.transport.upload !== undefined) // FIXME crashes Mobile Safari && IE9+\n this.transport.upload.onprogress = this.onProgress.bind(this);\n },\n\n requestNetworkAccess: function() {\n if (Global.netscape && Global.location.protocol == \"file:\") { \n try {\n netscape.security.PrivilegeManager.enablePrivilege(\"UniversalBrowserRead\");\n console.log(\"requested browser read privilege\");\n return true;\n } catch (er) {\n console.log(\"no privilege granted: \" + er);\n return false;\n }\n }\n },\n\n beSync: function() {\n this.isSync = true;\n return this;\n },\n\n beBinary: function() {\n this.isBinary = true;\n return this;\n },\n\n onReadyStateChange: function() {\n this.setReadyState(this.getReadyState());\n if (this.getReadyState() === this.Loading) { // For comet networking\n this.setStatus(this.getStatus());\n var hasResponseText = false;\n try {\n // FIX for IE9+ if responseText is not available yet\n hasResponseText = this.transport.responseText;\n } catch (e) { console.warn('Request\\'s response text is not available yet.'); }\n if (hasResponseText !== undefined) {\n var allContent = this.getResponseText(),\n newStart = this._streamContentLength ? this._streamContentLength : 0,\n newContent = allContent.substring(newStart);\n newContent = /^([^\\n\\r]*)/.exec(newContent)[1]; // remove line breaks\n this.setStreamContent(newContent);\n this._streamContentLength = allContent.length;\n }\n }\n if (this.getReadyState() === this.Done) {\n this.setStatus(this.getStatus());\n if (this.transport.responseText !== undefined)\n this.setResponseText(this.getResponseText());\n if (this.transport.responseXML !== undefined) \n this.setResponseXML(this.getResponseXML());\n if (this.transport.getAllResponseHeaders() !== undefined)\n this.setResponseHeaders(this.getResponseHeaders());\n this.disconnectModel(); // autodisconnect?\n }\n },\n\n onProgress: function(progress) { this.setProgress(progress) },\n \n setRequestHeaders: function(record) {\n Properties.forEachOwn(record, function(prop, value) {\n this.requestHeaders[prop] = value;\n }, this);\n },\n\n setContentType: function(string) {\n // valid before send but after open?\n this.requestHeaders[\"Content-Type\"] = string;\n },\n\n getReadyState: function() { return this.transport.readyState },\n\n getResponseText: function() { return this.transport.responseText || \"\" },\n\n getResponseXML: function() { return this.transport.responseXML || \"\" },\n\n getResponseHeaders: function() {\n var headerString = this.transport.getAllResponseHeaders(),\n headerObj = {};\n headerString.split('\\r\\n').each(function(ea) {\n var splitter = ea.indexOf(':');\n if (splitter != -1) {\n headerObj[ea.slice(0, splitter)] = ea.slice(splitter + 1).trim();\n // as headers should be case-insensitiv, add lower case headers (for Safari)\n headerObj[ea.slice(0, splitter).toLowerCase()] = ea.slice(splitter + 1).trim();\n }\n });\n return headerObj;\n },\n\n getStatus: function() { return new NetRequestStatus(this.method, this.url, this.transport) },\n\n request: function(method, url, content) {\n try {\n this.url = url;\n this.method = method.toUpperCase(); \n this.transport.open(this.method, url.toString(), !this.isSync);\n Properties.forEachOwn(this.requestHeaders, function(p, value) {\n this.transport.setRequestHeader(p, value);\n }, this);\n if (!this.isBinary)\n this.transport.send(content || '');\n else\n this.transport.sendAsBinary(content || '');\n if (Global.isFirefox && this.isSync) // mr: FF does not use callback when sync \n this.onReadyStateChange();\n return this;\n } catch (er) {\n var status = this.getStatus();\n status.setException(er);\n this.setStatus(status);\n throw er;\n }\n },\n\n get: function(url) { return this.request(\"GET\", URL.makeProxied(url), null) },\n\n put: function(url, content) { return this.request(\"PUT\", URL.makeProxied(url), content) },\n\n post: function(url, content) { return this.request(\"POST\", URL.makeProxied(url), content) },\n\n propfind: function(url, depth, content) {\n this.setContentType(\"text/xml\"); // complain if it's set to something else?\n if (depth != 0 && depth != 1)\n depth = \"infinity\";\n this.setRequestHeaders({ \"Depth\" : depth });\n return this.request(\"PROPFIND\", URL.makeProxied(url), content);\n },\n\n report: function(url, content) { return this.request(\"REPORT\", URL.makeProxied(url), content) },\n\n mkcol: function(url, content) { return this.request(\"MKCOL\", URL.makeProxied(url), content) },\n\n del: function(url) { return this.request(\"DELETE\", URL.makeProxied(url)) },\n\n copy: function(url, destUrl, overwrite) {\n this.setRequestHeaders({ \"Destination\" : destUrl.toString() });\n if (overwrite) this.setRequestHeaders({ \"Overwrite\" : 'T' });\n return this.request(\"COPY\", URL.makeProxied(url));\n },\n move: function(url, destUrl, overwrite) {\n this.setRequestHeaders({ \"Destination\" : destUrl.toString() });\n if (overwrite) this.setRequestHeaders({ \"Overwrite\" : 'T' });\n return this.request(\"MOVE\", URL.makeProxied(url));\n },\n\n\n lock: function(url, owner) {\n this.setRequestHeaders({Timeout: 'Infinite, Second-30'});\n var content = Strings.format(' \\n\\\n \\n\\\n \\n\\\n \\n\\\n %s \\n\\\n ', owner || 'unknown user');\n return this.request(\"LOCK\", URL.makeProxied(url), content);\n },\n \n unlock: function(url, lockToken, force) {\n if (force) {\n var req = new NetRequest().beSync().propfind(url);\n var xml = req.getResponseXML() || stringToXML(req.getResponseText());\n var q = new Query('/descendant::*/D:lockdiscovery/descendant::*/D:locktoken/D:href');\n var tokenElement = q.findFirst(xml);\n if (!tokenElement) // no lock token, assume that resource isn't locked\n return req;\n lockToken = tokenElement.textContent;\n }\n this.setRequestHeaders({'Lock-Token': '<' + lockToken + '>'});\n return this.request(\"UNLOCK\", URL.makeProxied(url));\n },\n head: function(url) { return this.request(\"HEAD\", URL.makeProxied(url), null) },\n\n toString: function() { return \"#\" },\n\n});\n\n\n// extend your objects with this trait if you don't want to deal with error reporting yourself.\nNetRequestReporterTrait = {\n setRequestStatus: function(status) {\n // update the model if there is one\n if (this.getModel && this.getModel() && this.getModel().setRequestStatus)\n this.getModel().setRequestStatus(status);\n \n var world = WorldMorph.current();\n // some formatting for alerting. could be moved elsewhere\n var request = status.requestString();\n var tooLong = 80;\n if (request.length > tooLong) {\n var arr = [];\n for (var i = 0; i < request.length; i += tooLong) {\n arr.push(request.substring(i, i + tooLong));\n }\n request = arr.join(\"..\\n\");\n }\n // error reporting\n if (status.exception) {\n world.alert(\"exception \" + status.exception + \" accessing\\n\" + request);\n } else if (status.code() >= 300) {\n if (status.code() == 301) {\n // FIXME reissue request? need the 'Location' response header for it\n world.alert(\"HTTP/301: Moved to \" + status.getResponseHeader(\"Location\") + \"\\non \" + request);\n } else if (status.code() == 401) {\n world.alert(\"not authorized to access\\n\" + request); \n // should try to authorize\n } else if (status.code() == 412) {\n console.log(\"the resource was changed elsewhere\\n\" + request);\n } else if (status.code() == 423) {\n world.alert(\"the resource is locked\\n\" + request);\n } else {\n world.alert(\"failure to\\n\" + request + \"\\ncode \" + status.code());\n }\n } else console.log(\"status \" + status.code() + \" on \" + status.requestString());\n }\n};\n\n// convenience base class with built in handling of errors\nObject.subclass('NetRequestReporter', NetRequestReporterTrait);\n\n\n\nView.subclass('Resource'/*, NetRequestReporterTrait*/, {\n documentation: \"a remote document that can be fetched, stored and queried for metadata\",\n // FIXME: should probably encapsulate content type\n\n formals: [\"ContentDocument\", //:XML\n \"ContentText\", //:String\n \"URL\", // :URL\n \"RequestStatus\", // :NetRequestStatus\n \"ResponseHeaders\",\n \"Progress\",\n ],\n\n createNetRequest: function() {\n return new NetRequest({\n model: this,\n setResponseXML: \"setContentDocument\",\n setResponseText: 'setContentText',\n setStatus: \"setRequestStatus\",\n setResponseHeaders: \"setResponseHeaders\",\n setProgress: 'setProgress'\n });\n },\n \n initialize: function(plug, contentType) {\n this.contentType = contentType;\n this.connectModel(plug);\n },\n\n deserialize: Functions.Empty, // stateless besides the model and content type\n\n toString: function() {\n return \"#\";\n },\n\n removeNetRequestReporterTrait: function() {\n delete this.setRequestStatus;\n this.setRequestStatus = function(status) {\n if (this.getModel && this.getModel() && this.getModel().setRequestStatus)\n this.getModel().setRequestStatus(status);\n }.bind(this);\n },\n \n updateView: function(aspect, source) {\n var p = this.modelPlug;\n if (!p) return;\n switch (aspect) {\n case p.getURL:\n this.onURLUpdate(this.getURL()); // request headers?\n break;\n }\n },\n\n onURLUpdate: function(url) {\n return this.fetch(url);\n },\n\n fetch: function(sync, optRequestHeaders) {\n // fetch the document content itself\n var req = this.createNetRequest();\n if (sync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n if (this.isShowingProgress) req.enableProgress();\n req.get(this.getURL());\n return req;\n },\n\n fetchProperties: function(optSync, optRequestHeaders) {\n var req = this.createNetRequest();\n if (optSync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.propfind(this.getURL(), 1);\n return req;\n },\n\n store: function(content, optSync, optRequestHeaders) {\n // FIXME: check document type\n if ((Global.Document && content instanceof Document) || (Global.Node && content instanceof Node)) {\n content = Exporter.stringify(content);\n }\n var req = this.createNetRequest();\n if (optSync) req.beSync();\n if (this.contentType) req.setContentType(this.contentType);\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n if (this.isShowingProgress) req.enableProgress();\n req.put(this.getURL(), content);\n return req;\n },\n\n});\n\nResource.subclass('SVNResource', {\n\n formals: Resource.prototype.formals.concat(['Metadata', 'HeadRevision']),\n\n createNetRequest: function() {\n return new NetRequest({\n model: this,\n setResponseXML: \"setContentDocument\",\n setResponseText: 'setContentText',\n setStatus: \"setRequestStatus\",\n setResponseHeaders: \"setResponseHeaders\",\n setProgress: 'setProgress'\n });\n },\n \n initialize: function($super, repoUrl, plug, contentType) {\n this.repoUrl = repoUrl.toString();\n $super(plug, contentType);\n },\n\n getLocalUrl: function() {\n return new URL(this.getURL()).relativePathFrom(new URL(this.repoUrl)).toString();\n },\n\n fetchHeadRevision: function(optSync) {\n var req = new NetRequest({\n model: this,\n setResponseXML: \"pvtSetHeadRevFromDoc\",\n setStatus: \"setRequestStatus\",\n setProgress: 'setProgress'\n });\n if (optSync) req.beSync();\n req.propfind(this.getURL(), 1);\n return req;\n },\n\n fetch: function($super, optSync, optRequestHeaders, rev) {\n var req;\n if (rev) {\n this.withBaselineUriDo(rev, function() { req = $super(optSync, optRequestHeaders) });\n } else {\n req = $super(optSync, optRequestHeaders);\n };\n return req;\n },\n \n store: function($super, content, optSync, optRequestHeaders, optHeadRev) {\n // if optHeadRev is not undefined than the store will only succeed\n // if the head revision of the resource is really optHeadRev\n if (optHeadRev) {\n var headers = optRequestHeaders ? optRequestHeaders : {};\n //determine local path of resource\n //var local = new URL(this.getURL()).relativePathFrom(new URL(this.repoUrl));\n var local = this.getURL().toString().substring(this.repoUrl.toString().length);\n if (local.startsWith('/')) local = local.slice(1); // remove leading slash\n var ifHeader = Strings.format('([\"%s//%s\"])', optHeadRev, local);\n console.log('Creating if header: ' + ifHeader);\n Object.extend(headers, {'If': ifHeader});\n }\n return $super(content, optSync, headers);\n },\n \n del: function(sync, optRequestHeaders) {\n var req = new NetRequest(this.createNetRequest());\n if (sync) req.beSync();\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.del(this.getURL());\n return req;\n },\n\n fetchProperties: function($super, optSync, optRequestHeaders, rev) {\n var req;\n if (rev) {\n this.withBaselineUriDo(rev, function() { req = $super(optSync, optRequestHeaders) });\n } else {\n req = $super(optSync, optRequestHeaders);\n };\n return req;\n },\n\n fetchMetadata: function(optSync, optRequestHeaders, startRev, endRev, reportDepth) {\n // get the whole history if startRev is undefined\n // FIXME: in this case the getHeadRevision will be called synchronous\n if (!startRev) {\n this.fetchHeadRevision(true);\n startRev = this.getHeadRevision();\n }\n this.reportDepth = reportDepth; // FIXME quick hack, needed in 'pvtScanLog...'\n var req = new NetRequest({\n model: this,\n setResponseXML: \"pvtScanLogReportForVersionInfos\",\n setStatus: \"setRequestStatus\",\n setProgress: 'setProgress'\n });\n if (optSync) req.beSync();\n if (optRequestHeaders) req.setRequestHeaders(optRequestHeaders);\n req.report(this.getURL(), this.pvtRequestMetadataXML(startRev, endRev));\n return req;\n },\n\n pvtSetHeadRevFromDoc: function(xml) {\n if (!xml) return;\n /* The response contains the properties of the specified file or directory,\n e.g. the revision (= version-name) */\n var revisionNode = xml.getElementsByTagName('version-name')[0];\n if (!revisionNode) return;\n this.setHeadRevision(Number(revisionNode.textContent));\n },\n\n pvtScanLogReportForVersionInfos: function(logReport) {\n // FIXME Refactor: method object?\n var errorQ = new Query('D:error//m:human-readable');\n \n var depth = this.reportDepth; \n var logItemQ = new Query('//S:log-item');\n var versionInfos = [];\n //var repoUrl = new URL(this.repoUrl);\n var repoUrl = this.repoUrl;\n\n var result = logItemQ.findAll(logReport);\n for (var i = 0; i < result.length; i++) {\n var logElement= result[i];\n var spec = {};\n for (var j = 0; j < logElement.childNodes.length; j++) {\n var logProp = logElement.childNodes[j];\n switch(logProp.tagName) {\n case 'D:version-name':\n spec.rev = Number(logProp.textContent); break;\n case 'D:creator-displayname':\n spec.author = logProp.textContent; break;\n case 'S:date':\n spec.date = logProp.textContent; break;\n case 'S:added-path':\n case 'S:modified-path':\n case 'S:deleted-path':\n case 'S:replaced-path':\n var relPath = logProp.textContent;\n if (depth && relPath.split('/').length-1 > depth)\n continue;\n //relPath = relPath.slice(1); // remove trailing /\n if (repoUrl.endsWith(relPath))\n spec.url = repoUrl; // hmmm???\n else\n spec.url = repoUrl.toString() + relPath.slice(1); \n // console.log('Created spec.url:' + spec.url);\n if (!spec.changes) spec.changes = [];\n var type = logProp.tagName.split('-').first();\n var url = logProp.tagName.include('modified-path') ? logProp.textContent : null;\n spec.changes.push({type: type, url : url});\n break;\n default:\n }\n };\n if (!spec.url) continue;\n spec.url = new URL(spec.url);\n versionInfos.push(new SVNVersionInfo(spec));\n };\n // newest version first\n versionInfos = versionInfos.sortBy(function(vInfo) { return vInfo.rev }).reverse();\n this.setMetadata(versionInfos);\n },\n \n pvtScanLogReportForVersionInfosTrace: function(logReport) {\n lively.lang.Execution.trace(this.pvtScanLogReportForVersionInfos.curry(logReport).bind(this));\n },\n\n pvtRequestMetadataXML: function(startRev, endRev) {\n return Strings.format(\n '' + \n '%s' +\n '%s' +\n '' +\n '' +\n '' +\n '', startRev, endRev || 0);\n },\n pvtRequestLocationXML: function(pegRev, pastRev) {\n return Strings.format(\n '' +\n '' +\n '%s' +\n '%s' +\n '', pegRev, pastRev);\n },\n\n\n withBaselineUriDo: function(rev, doFunc) {\n var tempUrl = this.getURL();\n this.setURL(this.createVersionURLString(rev));\n doFunc();\n this.setURL(tempUrl);\n },\n \n createVersionURLString: function(rev) {\n return this.repoUrl + '/!svn/bc/' + rev + '/' + this.getLocalUrl();\n },\n\n});\n\nObject.subclass('SVNVersionInfo', {\n\n documentation: 'This object wraps svn infos from report or propfind requests',\n\n initialize: function(spec) {\n // possible properties of spec:\n // rev, date, author, url, change, content\n for (name in spec) {\n var val = spec[name];\n if (name == 'date') {\n if (Object.isString(val)) {\n this.date = this.parseUTCDateString(val);\n } else if (val instanceof Date) {\n this.date = val;\n }\n } else {\n this[name] = val;\n }\n }\n if (!this.author)\n this.author = '(no author)';\n if (!this.date)\n this.date = new Date();\n },\n\n parseUTCDateString: function(dateString) {\n var yearElems = dateString.slice(0,10).split('-').collect(function(ea) {return Number(ea)});\n var timeElems = dateString.slice(11,19).split(':').collect(function(ea) {return Number(ea)});\n return new Date(yearElems[0], yearElems[1]-1, yearElems[2], timeElems[0], timeElems[1], timeElems[2])\n },\n\n toString: function() {\n // does not work when evaluate {new SVNVersionInfo() + \"\"} although toStrings() works fine. *grmph*\n // string = Strings.format('%s, %s, %s, Revision %s',\n // this.author, this.date.toTimeString(), this.date.toDateString(), this.rev);\n // string = new String(string);\n // string.orig = this;\n // TODO work around Serialization bug\n var timeString = this.date.toTimeString ? \n this.date.toTimeString() :\n 'no time';\n\n var dateString = this.date.toDateString ? \n this.date.toDateString() :\n 'no date';\n\n return Strings.format('%s, %s, %s, Rev. %s',\n this.author, timeString, dateString, this.rev);\n },\n \n toExpression: function() {\n return Strings.format('new SVNVersionInfo({rev: %s, url: %s, date: %s, author: %s, change: %s, fileSize: %s})',\n this.rev, toExpression(this.url), toExpression(this.date),\n toExpression(this.author), toExpression(this.change), toExpression(this.fileSize));\n },\n \n});\nObject.extend(SVNVersionInfo, {\n fromPropfindNode: function(node) {\n // FIXME cleanup --> Similar code exists in lively.Network -> pvtSetMeta...sth\n // rk 2/22/10: the namespace tag lp1 is required by Firefox\n var prefix = UserAgent.fireFoxVersion ? 'lp1:' : '';\n\n var versionTag = node.getElementsByTagName(prefix + 'version-name')[0];\n var rev = versionTag ? Number(versionTag.textContent) : 0;\n\n var dateTag = node.getElementsByTagName(prefix + 'getlastmodified')[0];\n var date = new Date(dateTag ? dateTag.textContent : 'Mon, 01 Jan 1900 00:00:00 GMT');\n\n var authorTag = node.getElementsByTagName(prefix + 'creator-displayname')[0];\n var author = authorTag ? authorTag.textContent : 'anonymous';\n\n var sizeTag = node.getElementsByTagName(prefix + 'getcontentlength')[0];\n var fileSize = sizeTag ? Number(sizeTag.textContent) : -1;\n\n // FIXME: resolve prefix \"D\" to something meaningful?\n var nameQ = new Query(\"D:href\");\n var result = nameQ.findFirst(node);\n var name = result && decodeURIComponent(result.textContent);\n var slash = name.endsWith('/') ? name.lastIndexOf('/', name.length - 2) : name.lastIndexOf('/');\n var shortName = name.substring(slash + 1);\n\n return new SVNVersionInfo({rev: rev, date: date, author: author, shortName: shortName, url: name, fileSize: fileSize});\n},\n});\n\nObject.subclass('WebResource',\n'documentation', {\n connections: ['status', 'content', 'contentDocument', 'isExisting', 'subCollections', 'subDocuments', 'progress', 'readystate', 'versions', 'headRevision'],\n},\n'initializing', {\n initialize: function(url) {\n this._url = new URL(url);\n this.beSync();\n this.reset();\n },\n\n reset: function() {\n this.beText();\n this.status = null;\n this.content = null;\n this.contentDocument = null;\n this.isExisting = null;\n this.subResources = null;\n this.requestHeaders = {};\n this.responseHeaders = {};\n },\n\n createResource: function() {\n var self = this;\n var resource = new SVNResource(\n this.getRepoURL().toString(),\n {\n model: {\n url: self.getURL().toString(),\n getURL: function() { return this.url },\n setURL: function(url) { this.url = url },\n setRequestStatus: function(reqStatus) { self.status = reqStatus; self.isExisting = reqStatus.isSuccess() },\n setContentText: function(string) { self.content = string },\n setContentDocument: function(doc) { self.contentDocument = doc },\n setResponseHeaders: function(obj) { self.responseHeaders = obj },\n setProgress: function(progress) { self.progress = progress },\n setHeadRevision: function(rev) { self.headRevision = rev },\n getHeadRevision: function() { return self.headRevision },\n setMetadata: function(metadata) { self.versions = metadata },\n },\n getURL: 'getURL',\n setURL: 'setURL',\n setRequestStatus: 'setRequestStatus',\n setContentText: 'setContentText',\n setContentDocument: 'setContentDocument',\n setResponseHeaders: 'setResponseHeaders',\n setProgress: 'setProgress',\n setHeadRevision: 'setHeadRevision',\n getHeadRevision: 'getHeadRevision',\n setMetadata: 'setMetadata',\n });\n resource.isShowingProgress = this.isShowingProgress;\n // resource.removeNetRequestReporterTrait();\n return resource\n },\n\n createNetRequest: function() {\n var self = this;\n var request = new NetRequest({\n model: {\n setStatus: function(reqStatus) { self.status = reqStatus; self.isExisting = reqStatus.isSuccess() },\n setResponseText: function(string) { self.content = string },\n setResponseXML: function(doc) { self.contentDocument = doc },\n setResponseHeaders: function(obj) { self.responseHeaders = obj },\n setReadyState: function(readyState) { self.readystate = readyState },\n setProgress: function(progress) { self.progress = progress },\n setStreamContent: function(content) { self.content = content; self.streamContent = content },\n },\n setStatus: 'setStatus',\n setResponseText: 'setResponseText',\n setResponseXML: 'setResponseXML',\n setResponseHeaders: 'setResponseHeaders',\n setReadyState: 'setReadyState',\n setProgress: 'setProgress',\n setStreamContent: 'setStreamContent',\n });\n if (this.isSync())\n request.beSync();\n if (this.requestHeaders)\n request.requestHeaders = this.requestHeaders;\n return request;\n },\n createXMLHTTPRequest: function(method) {\n // objects to work with\n method = method.toUpperCase();\n var webR = this,\n url = this.getURL(),\n requestHeaders = this.requestHeaders,\n isSync = this.isSync(),\n req = new XMLHttpRequest(),\n loadStates = {UNSENT: 0, OPENED: 1, HEADERSRECEIVED: 2, LOADING: 3, DONE: 4};\n\n // helper functions\n function createStatus () { return new NetRequestStatus(method, url, req) };\n function extractHeaders(req) {\n var headerString = req.getAllResponseHeaders(),\n headerObj = {};\n headerString.split('\\r\\n').forEach(function(ea) {\n var splitter = ea.indexOf(':');\n if (splitter != -1) {\n headerObj[ea.slice(0, splitter)] = ea.slice(splitter + 1).trim();\n // as headers should be case-insensitiv, add lower case headers (for Safari)\n headerObj[ea.slice(0, splitter).toLowerCase()] = ea.slice(splitter + 1).trim();\n }\n });\n return headerObj;\n };\n function onReadyStateChange() {\n var status = createStatus();\n webR.status = status;\n if (req.readyState == loadStates.DONE) {\n webR.isExisting = status.isSuccess();\n if (req.responseText !== undefined)\n webR.content = req.responseText;\n if (req.responseXML !== undefined)\n webR.contentDocument = req.responseXML;\n if (req.getAllResponseHeaders() !== undefined)\n webR.responseHeaders = extractHeaders(req)\n }\n\n // setReadyState: function(readyState) { self.readystate = readyState },\n // setProgress: function(progress) { self.progress = progress },\n // setStreamContent: function(content) { self.content = content },\n };\n\n function onProgress(evt) {\n webR.progressEvent = evt;\n // var percentComplete = (e.position / e.totalSize)*100;\n };\n // register event handlers\n req.onreadystatechange = onReadyStateChange;\n\n if (method === 'PUT' || method === 'POST') {\n req.upload.addEventListener(\"progress\", onProgress, false);\n // req.upload.addEventListener(\"load\", transferComplete, false);\n // req.upload.addEventListener(\"error\", transferFailed, false);\n // req.upload.addEventListener(\"abort\", transferCanceled, false);\n } else {\n req.addEventListener(\"progress\", onProgress, false);\n }\n\n // to be more or less compatible with the netRequest object -- fixme should simplified\n return {\n request: function(content) {\n var proxiedUrl = URL.makeProxied(url);\n req.open(method, proxiedUrl.toString(), !isSync);\n Properties.forEachOwn(requestHeaders, function(p, value) {\n req.setRequestHeader(p, value);\n });\n var sendSelector = webR.isBinary() && req.sendAsBinary ? 'sendAsBinary' : 'send';\n try {\n req[sendSelector](content);\n if (Global.isFirefox && isSync) // mr: FF does not use callback when sync \n onReadyStateChange();\n } catch (er) {\n webR.status = createStatus();\n throw er;\n }\n }\n }\n },\n\n},\n'private', {\n temporaryChangeURLAndDo: function(otherURL, func) {\n var temp = this._url;\n this._url = otherURL;\n var result = func.call(this)\n this._url = temp;\n return result;\n },\n},\n'accessing', {\n getURL: function() { return this._url; },\n getRepoURL: function() {\n return URL.codeBase // FIXME repo!\n },\n\n getName: function() { return this.getURL().filename(); },\n isCollection: function() { return !this.getURL().isLeaf() },\n},\n'configuration', {\n isSync: function() { return this._isSync; },\n beSync: function() { this._isSync = true; return this; },\n beAsync: function() { this._isSync = false; return this; },\n setSync: function(bool) { this._isSync = bool; return this; },\n\n isBinary: function() { return this._isBinary; },\n beBinary: function() { this._isBinary = true; return this; },\n beText: function() { this._isBinary = false; return this; },\n\n\n forceUncached: function() {\n this._url = this.getURL().withQuery({time: new Date().getTime()});\n return this;\n },\n},\n'progress', {\n enableShowingProgress: function() { this.isShowingProgress = true; return this },\n createProgressBar: function(label) {\n // this.enableShowingProgress();\n // var labelFunc = Object.isString(labelOrFunc) ?\n // function() { return labelOrFunc } : labelOrFunc;\n\t\tif (!Config.isNewMorphic) return this;\n var progressBar = lively.morphic.World.current().addStatusProgress(label);\n connect(this, 'progressEvent', progressBar, 'setValue',\n {converter: function(rpe) { return (rpe.loaded / rpe.total) }});\n connect(this, 'status', progressBar, 'remove', {\n updater: function($upd, status) { if (status.isDone()) $upd() }});\n return this;\n },\n\n},\n'DEPRECATED', {\n copyTo: function(url) {\n var otherResource = new WebResource(url);\n otherResource.create();\n new NetRequest().copy(this.getURL(), url, true /*overwrite*/);\n return otherResource;\n },\n\n},\n'debugging', {\n statusMessage: function(successMsg, failureMessage, onlyOnce) {\n this.successMsg = successMsg;\n this.failureMessage = failureMessage;\n var world = Config.isNewMorphic ? lively.morphic.World.current() : WorldMorph.current();\n if (!world) return this;\n lively.bindings.connect(this, 'status', world, 'setStatusMessage', {\n updater: function($upd, status) {\n if (!status.isDone()) return;\n var m1 = this.sourceObj.successMsg,\n m2 = this.sourceObj.failureMessage;\n if (status.isSuccess() && m1) $upd(m1, Color.green, 4)\n else if (m2) $upd(m2 + ' (code ' + status.code() + ')', Color.red, 6)\n },\n removeAfterUpdate: onlyOnce\n });\n return this\n },\n\n toString: function() { return 'WebResource(' + this.getURL() + ')' },\n},\n'request headers', {\n\n setRequestHeaders: function(headers) {\n this.requestHeaders = headers;\n return this;\n },\n addHeaderForRequiredRevision: function(rev) {\n if (!rev) return;\n var local = this.getURL().relativePathFrom(this.getRepoURL()),\n ifHeader = Strings.format('([\"%s//%s\"])', rev, local);\n console.log('Creating if header: ' + ifHeader);\n this.requestHeaders[\"If\"] = ifHeader;\n },\n addContentType: function(contentType) {\n this.requestHeaders[\"Content-Type\"] = contentType || '';\n },\n\n},\n'HTTP methods', {\n\n get: function(rev, contentType, urlOfPastVersion) {\n if (!rev) {\n var req = this.createNetRequest()\n if (contentType) req.setContentType(contentType);\n req.get(this.getURL());\n return this;\n }\n if (urlOfPastVersion) {\n this.temporaryChangeURLAndDo(urlOfPastVersion, function() {\n var resource = this.createResource();\n if (contentType) resource.contentType = contentType;\n resource.fetch(this.isSync(), this.requestHeaders, rev);\n })\n return this;\n }\n // use a helper so that connections to this are not triggered when\n // location XML is written to content/contentDocument\n var helper = new WebResource(this.getURL());\n helper.setSync(this.isSync())\n connect(helper, 'revAndLocations', this, 'get', {\n updater: function($upd, revAndPath) { $upd(rev, contentType, revAndPath[rev]) },\n varMapping: {rev: rev, contentType: contentType}});\n helper.getLocationInRev(rev, this.headRevision);\n return this;\n },\n get2: function(rev, contentType, urlOfPastVersion) {\n if (!rev) {\n if (contentType) this.addContentType(contentType);\n var req = this.createXMLHTTPRequest('GET');\n req.request();\n return this;\n }\n if (urlOfPastVersion) {\n this.temporaryChangeURLAndDo(urlOfPastVersion, function() {\n var resource = this.createResource();\n if (contentType) resource.contentType = contentType;\n resource.fetch(this.isSync(), this.requestHeaders, rev);\n })\n return this;\n }\n // use a helper so that connections to this are not triggered when\n // location XML is written to content/contentDocument\n var helper = new WebResource(this.getURL());\n helper.setSync(this.isSync())\n connect(helper, 'revAndLocations', this, 'get', {\n updater: function($upd, revAndPath) { $upd(rev, contentType, revAndPath[rev]) },\n varMapping: {rev: rev, contentType: contentType}});\n helper.getLocationInRev(rev, this.headRevision);\n return this;\n },\n\n\n put_DEPRECATED: function(content, contentType, requiredRevision) {\n this.content = this.convertContent(content);\n var resource = this.createResource();\n if (contentType)\n resource.contentType = contentType;\n resource.store(content, this.isSync(), this.requestHeaders, requiredRevision);\n\n return this;\n },\n put: function(content, contentType, requiredRevision) {\n this.content = this.convertContent(content || '');\n if (requiredRevision) this.addHeaderForRequiredRevision(requiredRevision);\n if (contentType) this.addContentType(contentType)\n var req = this.createXMLHTTPRequest('PUT');\n req.request(this.content);\n return this;\n },\n\n\n create: function() {\n if (!this.isCollection()) return this.put('');\n var request = this.createNetRequest();\n request.mkcol(this.getURL());\n return this;\n },\n\n del: function() {\n var request = this.createNetRequest();\n request.del(this.getURL());\n return this;\n },\n\n post: function(content, contentType) {\n this.content = content;\n var request = this.createNetRequest();\n if (contentType)\n request.setContentType(contentType);\n request.post(this.getURL(), content);\n return this;\n },\n \n exists: function() {\n // for async use this.get().isExisting directly\n try {\n return this.beSync().head().status.isSuccess()\n } catch(e) {\n return false;\n }\n },\n head: function() {\n var request = this.createNetRequest();\n request.head(this.getURL());\n return this;\n },\n\n propfind: function(depth) {\n if (!depth) depth = 1;\n var req = this.createNetRequest();\n req.propfind(this.getURL(), depth);\n return this;\n },\n report: function(content) {\n var req = this.createNetRequest();\n req.report(this.getURL(), content);\n return this; \n },\n\n\n getSubElements: function(depth) {\n\n lively.bindings.connect(this, 'contentDocument', this, 'pvtProcessPropfindForSubElements', {removeAfterUpdate: true});\n this.propfind(depth);\n return this;\n },\n\n copyTo: function(url) {\n var request = this.createNetRequest();\n request.copy(this.getURL(), url, true /*overwrite*/);\n return this;\n },\n moveTo: function(url) {\n var request = this.createNetRequest();\n request.move(this.getURL(), url, true /*overwrite*/);\n return this;\n },\n\n \n getVersions: function(startRev, endRev) {\n var res = this.createResource();\n //connect(this, 'contentDocument', this, 'pvtProcessPropfindForGetVersions', {removeAfterUpdate: true});\n if (!startRev) {\n if (this.headRevision) {\n startRev = this.headRevision;\n } else {\n connect(this, 'headRevision', this, 'getVersions', {removeAfterUpdate: true});\n // FIXME if only endRev is passed in, it's forgotten here...\n this.getHeadRevision();\n return this;\n }\n }\n res.fetchMetadata(this.isSync(), this.requestHeaders, startRev, endRev, null);\n return this;\n },\n\n getHeadRevision: function() {\n var res = this.createResource();\n res.fetchHeadRevision(this.isSync());\n return this;\n },\n\n getProperties: function(optRequestHeaders, rev) {\n var res = this.createResource();\n res.fetchProperties(this.isSync(), optRequestHeaders, rev);\n return this;\n },\n ensureExistance: function() {\n var url = this.getURL();\n url.getAllParentDirectories().forEach(function(ea) {\n var webR = new WebResource(ea);\n if (!webR.exists()) {\n console.log('creating ' + webR.getURL());\n webR.create();\n }\n })\n return this;\n },\n},\n'version specific', {\n getLocationInRev: function(rev) {\n var self = this,\n reportRequester = {\n action: function(headRev) {\n var content = Strings.format(\n '' +\n '' +\n '%s' +\n '%s' +\n '', headRev, rev);\n connect(self, 'contentDocument', self, 'pvtProcessForLocationRequest', {\n removeAfterUpdate: true});\n self.report(content);\n }\n }\n if (this.headRevision) {\n reportRequester.action(this.headRevision)\n } else {\n connect(self, 'headRevision', reportRequester, 'action', {removeAfterUpdate: true});\n this.getHeadRevision();\n }\n return this;\n },\n\n},\n'XML querying', {\n pvtProcessForLocationRequest: function(doc) {\n var revAndLocations = {},\n locations = doc.getElementsByTagName('location');\n for (var i = 0; i < locations.length; i++) {\n var rev = locations[i].getAttribute('rev'),\n path = locations[i].getAttribute('path');\n revAndLocations[rev] = this.getRepoURL().withFilename(path);\n }\n // set it when retrieved so that connections work\n this.revAndLocations = revAndLocations;\n },\n pvtProcessPropfindForSubElements: function(doc) {\n if (!this.status.isSuccess())\n throw new Error('Cannot access subElements of ' + this.getURL());\n // FIXME: resolve prefix \"D\" to something meaningful?\n var nodes = new Query(\"/D:multistatus/D:response\").findAll(doc.documentElement)\n var urlQ = new Query('D:href');\n nodes.shift(); // remove first since it points to this WebResource\n var result = [];\n for (var i = 0; i < nodes.length; i++) {\n var urlNode = urlQ.findFirst(nodes[i]);\n var url = urlNode.textContent || urlNode.text; // text is FIX for IE9+\n if (/!svn/.test(url)) continue;// ignore svn dirs\n var child = new WebResource(this.getURL().withPath(url));\n var revNode = nodes[i].getElementsByTagName('version-name')[0];\n if (revNode) child.headRevision = Number(revNode.textContent);\n result.push(child);\n }\n this.subCollections = result.select(function(ea) { return ea.isCollection() });\n this.subDocuments = result.select(function(ea) { return !ea.isCollection() });\n },\n},\n'conversion', {\n convertContent: function(content) {\n // if requiredRevision is set then put will only succeed if the resource has\n // the revision number requiredRevision\n if (this.isBinary()) {\n // from http://code.google.com/p/chromium/issues/detail?id=35705#c6\n var byteValue = function(x) { return x.charCodeAt(0) & 0xff },\n ords = Array.prototype.map.call(content, byteValue),\n ui8a = new Uint8Array(ords);\n content = ui8a.buffer;\n }\n if ((Global.Document && content instanceof Document) ||\n (Global.Node && content instanceof Node)) {\n content = Exporter.stringify(content);\n } else if (content.xml) { // serialization FIX for IE9+\n content = content.xml;\n }\n return content;\n },\n});\n\n\n// make WebResource async\nObject.extend(WebResource, {\n create: function(url) { return new this(url) },\n});\n\nconsole.log('loaded Network.js');\n\n\n}); // end of module","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2370":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2371":{"morph":{"__isSmartRef__":true,"id":2362},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2372":{"x":0,"y":247.5,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2373":{"x":820,"y":302.5,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2374":{"resizeWidth":true,"resizeHeight":true},"2375":{"sourceObj":{"__isSmartRef__":true,"id":2362},"sourceAttrName":"textString","targetObj":{"__isSmartRef__":true,"id":2362},"targetMethodName":"highlightJavaScriptSyntax","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2376":{"sourceObj":{"__isSmartRef__":true,"id":2362},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"setSourceString","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2377},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2377":{"source":{"__isSmartRef__":true,"id":2362},"target":{"__isSmartRef__":true,"id":1601}},"2378":{"source":{"__isSmartRef__":true,"id":1601},"target":{"__isSmartRef__":true,"id":2362}},"2379":{"sourceObj":{"__isSmartRef__":true,"id":1601},"sourceAttrName":"targetURL","targetObj":{"__isSmartRef__":true,"id":1588},"targetMethodName":"setTextString","converter":null,"converterString":null,"updaterString":"function ($upd, value) { value && $upd(String(value)) }","varMapping":{"__isSmartRef__":true,"id":2380},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2381},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2380":{"source":{"__isSmartRef__":true,"id":1601},"target":{"__isSmartRef__":true,"id":1588}},"2381":{"updater":{"__isSmartRef__":true,"id":2382}},"2382":{"originalFunc":null,"varMapping":{"__isSmartRef__":true,"id":2380},"source":"function ($upd, value) { value && $upd(String(value)) }","funcProperties":{"__isSmartRef__":true,"id":2383},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2383":{},"2384":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/lively/","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"2385":{"source":{"__isSmartRef__":true,"id":1588},"target":{"__isSmartRef__":true,"id":1601}},"2386":{"submorphs":[{"__isSmartRef__":true,"id":2387}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2399},"id":243,"renderContextTable":{"__isSmartRef__":true,"id":2404},"eventHandler":{"__isSmartRef__":true,"id":2405},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":2406},"priorExtent":{"__isSmartRef__":true,"id":2407},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":2408},"label":{"__isSmartRef__":true,"id":2387},"owner":{"__isSmartRef__":true,"id":1587},"attributeConnections":[{"__isSmartRef__":true,"id":2417}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"layout":{"__isSmartRef__":true,"id":2422},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets"},"2387":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2388},"id":244,"renderContextTable":{"__isSmartRef__":true,"id":2393},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2394}],"eventHandler":{"__isSmartRef__":true,"id":2396},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":2397},"priorExtent":{"__isSmartRef__":true,"id":2398},"_MaxTextWidth":98.39999999999999,"_MinTextWidth":98.39999999999999,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2386},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2388":{"_Position":{"__isSmartRef__":true,"id":2389},"renderContextTable":{"__isSmartRef__":true,"id":2390},"_Extent":{"__isSmartRef__":true,"id":2391},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":2392},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2389":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2390":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2391":{"x":98.39999999999999,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2392":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2393":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2394":{"style":{"__isSmartRef__":true,"id":2395},"chunkOwner":{"__isSmartRef__":true,"id":2387},"storedString":"codebase","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2395":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2396":{"morph":{"__isSmartRef__":true,"id":2387},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2397":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2398":{"x":98.39999999999999,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2399":{"_Position":{"__isSmartRef__":true,"id":2400},"renderContextTable":{"__isSmartRef__":true,"id":2401},"_Extent":{"__isSmartRef__":true,"id":2402},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2403},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2400":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2401":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2402":{"x":98.39999999999999,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2403":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2404":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2405":{"morph":{"__isSmartRef__":true,"id":2386},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2406":{"x":656,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2407":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2408":{"stops":[{"__isSmartRef__":true,"id":2409},{"__isSmartRef__":true,"id":2411},{"__isSmartRef__":true,"id":2413},{"__isSmartRef__":true,"id":2415}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2409":{"offset":0,"color":{"__isSmartRef__":true,"id":2410}},"2410":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2411":{"offset":0.4,"color":{"__isSmartRef__":true,"id":2412}},"2412":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2413":{"offset":0.6,"color":{"__isSmartRef__":true,"id":2414}},"2414":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2415":{"offset":1,"color":{"__isSmartRef__":true,"id":2416}},"2416":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2417":{"sourceObj":{"__isSmartRef__":true,"id":2386},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"setTargetURL","converterString":"function () { return URL.codeBase.withFilename('lively/')}","updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2418},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2419},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2418":{"source":{"__isSmartRef__":true,"id":2386},"target":{"__isSmartRef__":true,"id":1601}},"2419":{"converter":{"__isSmartRef__":true,"id":2420}},"2420":{"originalFunc":null,"varMapping":{"__isSmartRef__":true,"id":2418},"source":"function () { return URL.codeBase.withFilename('lively/')}","funcProperties":{"__isSmartRef__":true,"id":2421},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2421":{},"2422":{"moveHorizontal":true},"2423":{"submorphs":[{"__isSmartRef__":true,"id":2424}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2436},"id":245,"renderContextTable":{"__isSmartRef__":true,"id":2441},"eventHandler":{"__isSmartRef__":true,"id":2442},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_Position":{"__isSmartRef__":true,"id":2443},"priorExtent":{"__isSmartRef__":true,"id":2444},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":2445},"label":{"__isSmartRef__":true,"id":2424},"owner":{"__isSmartRef__":true,"id":1587},"attributeConnections":[{"__isSmartRef__":true,"id":2454}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"layout":{"__isSmartRef__":true,"id":2459},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets"},"2424":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2425},"id":246,"renderContextTable":{"__isSmartRef__":true,"id":2430},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2431}],"eventHandler":{"__isSmartRef__":true,"id":2433},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":2434},"priorExtent":{"__isSmartRef__":true,"id":2435},"_MaxTextWidth":65.6,"_MinTextWidth":65.6,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2423},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2425":{"_Position":{"__isSmartRef__":true,"id":2426},"renderContextTable":{"__isSmartRef__":true,"id":2427},"_Extent":{"__isSmartRef__":true,"id":2428},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":2429},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2426":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2427":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2428":{"x":65.6,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2429":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2430":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2431":{"style":{"__isSmartRef__":true,"id":2432},"chunkOwner":{"__isSmartRef__":true,"id":2424},"storedString":"local","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2432":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2433":{"morph":{"__isSmartRef__":true,"id":2424},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2434":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2435":{"x":65.6,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2436":{"_Position":{"__isSmartRef__":true,"id":2437},"renderContextTable":{"__isSmartRef__":true,"id":2438},"_Extent":{"__isSmartRef__":true,"id":2439},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2440},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2437":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2438":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2439":{"x":65.6,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2440":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2441":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2442":{"morph":{"__isSmartRef__":true,"id":2423},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2443":{"x":754.4,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2444":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2445":{"stops":[{"__isSmartRef__":true,"id":2446},{"__isSmartRef__":true,"id":2448},{"__isSmartRef__":true,"id":2450},{"__isSmartRef__":true,"id":2452}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2446":{"offset":0,"color":{"__isSmartRef__":true,"id":2447}},"2447":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2448":{"offset":0.4,"color":{"__isSmartRef__":true,"id":2449}},"2449":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2450":{"offset":0.6,"color":{"__isSmartRef__":true,"id":2451}},"2451":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2452":{"offset":1,"color":{"__isSmartRef__":true,"id":2453}},"2453":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2454":{"sourceObj":{"__isSmartRef__":true,"id":2423},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1601},"targetMethodName":"setTargetURL","converterString":"function () { return URL.source.getDirectory() }","updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2455},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2456},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2455":{"source":{"__isSmartRef__":true,"id":2423},"target":{"__isSmartRef__":true,"id":1601}},"2456":{"converter":{"__isSmartRef__":true,"id":2457}},"2457":{"originalFunc":null,"varMapping":{"__isSmartRef__":true,"id":2455},"source":"function () { return URL.source.getDirectory() }","funcProperties":{"__isSmartRef__":true,"id":2458},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2458":{},"2459":{"moveHorizontal":true},"2460":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2461},"id":251,"renderContextTable":{"__isSmartRef__":true,"id":2467},"eventHandler":{"__isSmartRef__":true,"id":2468},"droppingEnabled":true,"halosEnabled":true,"__layered_draggingEnabled__":true,"_Position":{"__isSmartRef__":true,"id":2469},"fixed":[{"__isSmartRef__":true,"id":1603},{"__isSmartRef__":true,"id":1648},{"__isSmartRef__":true,"id":1683},{"__isSmartRef__":true,"id":1718},{"__isSmartRef__":true,"id":1753},{"__isSmartRef__":true,"id":1788},{"__isSmartRef__":true,"id":1823}],"scalingBelow":[{"__isSmartRef__":true,"id":2362}],"scalingAbove":[{"__isSmartRef__":true,"id":1864},{"__isSmartRef__":true,"id":2227},{"__isSmartRef__":true,"id":2292},{"__isSmartRef__":true,"id":2327}],"minHeight":20,"pointerConnection":null,"owner":{"__isSmartRef__":true,"id":1587},"styleClass":["Browser_resizer"],"__LivelyClassName__":"lively.morphic.HorizontalDivider","__SourceModuleName__":"Global.lively.morphic.Widgets"},"2461":{"_Position":{"__isSmartRef__":true,"id":2462},"renderContextTable":{"__isSmartRef__":true,"id":2463},"_Extent":{"__isSmartRef__":true,"id":2464},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2465},"_Fill":{"__isSmartRef__":true,"id":2466},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2462":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2463":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2464":{"x":820,"y":5.5,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2465":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2466":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2467":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2468":{"morph":{"__isSmartRef__":true,"id":2460},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2469":{"x":0,"y":242,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2470":{"_Position":{"__isSmartRef__":true,"id":2471},"renderContextTable":{"__isSmartRef__":true,"id":2472},"_Extent":{"__isSmartRef__":true,"id":2473},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2474},"_Fill":{"__isSmartRef__":true,"id":2475},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2471":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2472":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2473":{"x":820,"y":550,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2474":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2475":{"r":0.9,"g":0.9,"b":0.9,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2476":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2477":{"morph":{"__isSmartRef__":true,"id":1587},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2478":{"adjustForNewBounds":true,"resizeWidth":true,"resizeHeight":true},"2479":{"x":0,"y":21,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2480":{"submorphs":[{"__isSmartRef__":true,"id":2481},{"__isSmartRef__":true,"id":2494},{"__isSmartRef__":true,"id":2530},{"__isSmartRef__":true,"id":2564}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2599},"id":268,"renderContextTable":{"__isSmartRef__":true,"id":2605},"eventHandler":{"__isSmartRef__":true,"id":2606},"droppingEnabled":true,"halosEnabled":true,"layout":{"__isSmartRef__":true,"id":2607},"_Position":{"__isSmartRef__":true,"id":2608},"windowMorph":{"__isSmartRef__":true,"id":1586},"label":{"__isSmartRef__":true,"id":2481},"closeButton":{"__isSmartRef__":true,"id":2494},"menuButton":{"__isSmartRef__":true,"id":2530},"collapseButton":{"__isSmartRef__":true,"id":2564},"priorExtent":{"__isSmartRef__":true,"id":2609},"owner":{"__isSmartRef__":true,"id":1586},"__LivelyClassName__":"lively.morphic.TitleBar","__SourceModuleName__":"Global.lively.morphic.Widgets"},"2481":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2482},"id":269,"renderContextTable":{"__isSmartRef__":true,"id":2487},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2488}],"eventHandler":{"__isSmartRef__":true,"id":2490},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"evalEnabled":false,"isLabel":true,"_HandStyle":"default","layout":{"__isSmartRef__":true,"id":2491},"_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","owner":{"__isSmartRef__":true,"id":2480},"priorExtent":{"__isSmartRef__":true,"id":2492},"_MaxTextWidth":761,"_MinTextWidth":761,"_MaxTextHeight":null,"_MinTextHeight":null,"_Position":{"__isSmartRef__":true,"id":2493},"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2482":{"_Position":{"__isSmartRef__":true,"id":2483},"renderContextTable":{"__isSmartRef__":true,"id":2484},"_Extent":{"__isSmartRef__":true,"id":2485},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":2486},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"_BorderRadius":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2483":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2484":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2485":{"x":761,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2486":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2487":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2488":{"style":{"__isSmartRef__":true,"id":2489},"chunkOwner":{"__isSmartRef__":true,"id":2481},"storedString":"Network.js","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2489":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2490":{"morph":{"__isSmartRef__":true,"id":2481},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2491":{"resizeWidth":true},"2492":{"x":761,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2493":{"x":20,"y":3,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2494":{"submorphs":[{"__isSmartRef__":true,"id":2495}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2507},"id":270,"renderContextTable":{"__isSmartRef__":true,"id":2512},"eventHandler":{"__isSmartRef__":true,"id":2513},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"accessibleInInactiveWindow":true,"_Position":{"__isSmartRef__":true,"id":2514},"priorExtent":{"__isSmartRef__":true,"id":2515},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":2516},"label":{"__isSmartRef__":true,"id":2495},"owner":{"__isSmartRef__":true,"id":2480},"layout":{"__isSmartRef__":true,"id":2525},"attributeConnections":[{"__isSmartRef__":true,"id":2526},{"__isSmartRef__":true,"id":2528}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets"},"2495":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2496},"id":271,"renderContextTable":{"__isSmartRef__":true,"id":2501},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2502}],"eventHandler":{"__isSmartRef__":true,"id":2504},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":8,"_Position":{"__isSmartRef__":true,"id":2505},"priorExtent":{"__isSmartRef__":true,"id":2506},"_MaxTextWidth":17,"_MinTextWidth":17,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2494},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2496":{"_Position":{"__isSmartRef__":true,"id":2497},"renderContextTable":{"__isSmartRef__":true,"id":2498},"_Extent":{"__isSmartRef__":true,"id":2499},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":2500},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2497":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2498":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2499":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2500":{"x":0,"y":3,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2501":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2502":{"style":{"__isSmartRef__":true,"id":2503},"chunkOwner":{"__isSmartRef__":true,"id":2495},"storedString":"X","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2503":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2504":{"morph":{"__isSmartRef__":true,"id":2495},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2505":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2506":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2507":{"_Position":{"__isSmartRef__":true,"id":2508},"renderContextTable":{"__isSmartRef__":true,"id":2509},"_Extent":{"__isSmartRef__":true,"id":2510},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2511},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_StrokeOpacity":0,"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2508":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2509":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2510":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2511":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2512":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2513":{"morph":{"__isSmartRef__":true,"id":2494},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2514":{"x":800,"y":3,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2515":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2516":{"stops":[{"__isSmartRef__":true,"id":2517},{"__isSmartRef__":true,"id":2519},{"__isSmartRef__":true,"id":2521},{"__isSmartRef__":true,"id":2523}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2517":{"offset":0,"color":{"__isSmartRef__":true,"id":2518}},"2518":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2519":{"offset":0.4,"color":{"__isSmartRef__":true,"id":2520}},"2520":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2521":{"offset":0.6,"color":{"__isSmartRef__":true,"id":2522}},"2522":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2523":{"offset":1,"color":{"__isSmartRef__":true,"id":2524}},"2524":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2525":{"moveHorizontal":true},"2526":{"sourceObj":{"__isSmartRef__":true,"id":2494},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":1586},"targetMethodName":"getCloseHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2527},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2527":{"source":{"__isSmartRef__":true,"id":2494},"target":{"__isSmartRef__":true,"id":1586}},"2528":{"sourceObj":{"__isSmartRef__":true,"id":2494},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1586},"targetMethodName":"initiateShutdown","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2529},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2529":{"source":{"__isSmartRef__":true,"id":2494},"target":{"__isSmartRef__":true,"id":1586}},"2530":{"submorphs":[{"__isSmartRef__":true,"id":2531}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2542},"id":272,"renderContextTable":{"__isSmartRef__":true,"id":2547},"eventHandler":{"__isSmartRef__":true,"id":2548},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"accessibleInInactiveWindow":true,"_Position":{"__isSmartRef__":true,"id":2549},"priorExtent":{"__isSmartRef__":true,"id":2550},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":2551},"label":{"__isSmartRef__":true,"id":2531},"owner":{"__isSmartRef__":true,"id":2480},"attributeConnections":[{"__isSmartRef__":true,"id":2560},{"__isSmartRef__":true,"id":2562}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets"},"2531":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2532},"id":273,"renderContextTable":{"__isSmartRef__":true,"id":2536},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2537}],"eventHandler":{"__isSmartRef__":true,"id":2539},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":8,"_Position":{"__isSmartRef__":true,"id":2540},"priorExtent":{"__isSmartRef__":true,"id":2541},"_MaxTextWidth":17,"_MinTextWidth":17,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2530},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2532":{"_Position":{"__isSmartRef__":true,"id":2533},"renderContextTable":{"__isSmartRef__":true,"id":2534},"_Extent":{"__isSmartRef__":true,"id":2535},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":2500},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2533":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2534":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2535":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2536":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2537":{"style":{"__isSmartRef__":true,"id":2538},"chunkOwner":{"__isSmartRef__":true,"id":2531},"storedString":"M","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2538":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2539":{"morph":{"__isSmartRef__":true,"id":2531},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2540":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2541":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2542":{"_Position":{"__isSmartRef__":true,"id":2543},"renderContextTable":{"__isSmartRef__":true,"id":2544},"_Extent":{"__isSmartRef__":true,"id":2545},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2546},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_StrokeOpacity":0,"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2543":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2544":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2545":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2546":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2547":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2548":{"morph":{"__isSmartRef__":true,"id":2530},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2549":{"x":3,"y":3,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2550":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2551":{"stops":[{"__isSmartRef__":true,"id":2552},{"__isSmartRef__":true,"id":2554},{"__isSmartRef__":true,"id":2556},{"__isSmartRef__":true,"id":2558}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2552":{"offset":0,"color":{"__isSmartRef__":true,"id":2553}},"2553":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2554":{"offset":0.4,"color":{"__isSmartRef__":true,"id":2555}},"2555":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2556":{"offset":0.6,"color":{"__isSmartRef__":true,"id":2557}},"2557":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2558":{"offset":1,"color":{"__isSmartRef__":true,"id":2559}},"2559":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2560":{"sourceObj":{"__isSmartRef__":true,"id":2530},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":1586},"targetMethodName":"getMenuHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2561},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2561":{"source":{"__isSmartRef__":true,"id":2530},"target":{"__isSmartRef__":true,"id":1586}},"2562":{"sourceObj":{"__isSmartRef__":true,"id":2530},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1586},"targetMethodName":"showTargetMorphMenu","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2563},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2563":{"source":{"__isSmartRef__":true,"id":2530},"target":{"__isSmartRef__":true,"id":1586}},"2564":{"submorphs":[{"__isSmartRef__":true,"id":2565}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2576},"id":274,"renderContextTable":{"__isSmartRef__":true,"id":2581},"eventHandler":{"__isSmartRef__":true,"id":2582},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"accessibleInInactiveWindow":true,"_Position":{"__isSmartRef__":true,"id":2583},"priorExtent":{"__isSmartRef__":true,"id":2584},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":2585},"label":{"__isSmartRef__":true,"id":2565},"owner":{"__isSmartRef__":true,"id":2480},"layout":{"__isSmartRef__":true,"id":2594},"attributeConnections":[{"__isSmartRef__":true,"id":2595},{"__isSmartRef__":true,"id":2597}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets"},"2565":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2566},"id":275,"renderContextTable":{"__isSmartRef__":true,"id":2570},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2571}],"eventHandler":{"__isSmartRef__":true,"id":2573},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":8,"_Position":{"__isSmartRef__":true,"id":2574},"priorExtent":{"__isSmartRef__":true,"id":2575},"_MaxTextWidth":17,"_MinTextWidth":17,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2564},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2566":{"_Position":{"__isSmartRef__":true,"id":2567},"renderContextTable":{"__isSmartRef__":true,"id":2568},"_Extent":{"__isSmartRef__":true,"id":2569},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":2500},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2567":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2568":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2569":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2570":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2571":{"style":{"__isSmartRef__":true,"id":2572},"chunkOwner":{"__isSmartRef__":true,"id":2565},"storedString":"–","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2572":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2573":{"morph":{"__isSmartRef__":true,"id":2565},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2574":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2575":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2576":{"_Position":{"__isSmartRef__":true,"id":2577},"renderContextTable":{"__isSmartRef__":true,"id":2578},"_Extent":{"__isSmartRef__":true,"id":2579},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2580},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_StrokeOpacity":0,"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2577":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2578":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2579":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2580":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2581":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2582":{"morph":{"__isSmartRef__":true,"id":2564},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2583":{"x":781,"y":3,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2584":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2585":{"stops":[{"__isSmartRef__":true,"id":2586},{"__isSmartRef__":true,"id":2588},{"__isSmartRef__":true,"id":2590},{"__isSmartRef__":true,"id":2592}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2586":{"offset":0,"color":{"__isSmartRef__":true,"id":2587}},"2587":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2588":{"offset":0.4,"color":{"__isSmartRef__":true,"id":2589}},"2589":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2590":{"offset":0.6,"color":{"__isSmartRef__":true,"id":2591}},"2591":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2592":{"offset":1,"color":{"__isSmartRef__":true,"id":2593}},"2593":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2594":{"moveHorizontal":true},"2595":{"sourceObj":{"__isSmartRef__":true,"id":2564},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":1586},"targetMethodName":"getCollapseHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2596},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2596":{"source":{"__isSmartRef__":true,"id":2564},"target":{"__isSmartRef__":true,"id":1586}},"2597":{"sourceObj":{"__isSmartRef__":true,"id":2564},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1586},"targetMethodName":"toggleCollapse","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2598},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2598":{"source":{"__isSmartRef__":true,"id":2564},"target":{"__isSmartRef__":true,"id":1586}},"2599":{"_Position":{"__isSmartRef__":true,"id":2600},"renderContextTable":{"__isSmartRef__":true,"id":2601},"_Extent":{"__isSmartRef__":true,"id":2602},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2603},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":2604},"_Fill":{"__isSmartRef__":true,"id":136},"_StrokeOpacity":1,"_BorderRadius":"8px 8px 0px 0px","__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2600":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2601":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2602":{"x":820,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2603":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2604":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2605":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2606":{"morph":{"__isSmartRef__":true,"id":2480},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2607":{"resizeWidth":true,"adjustForNewBounds":true},"2608":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2609":{"x":820,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2610":{"renderContextTable":{"__isSmartRef__":true,"id":2611},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2612},"_BorderWidth":0,"_Fill":null,"_StrokeOpacity":0,"_BorderRadius":0,"_Extent":{"__isSmartRef__":true,"id":2613},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2611":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2612":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2613":{"x":820,"y":571,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2614":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2615":{"morph":{"__isSmartRef__":true,"id":1586},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2616":{"adjustForNewBounds":true},"2617":{"x":895,"y":374,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2618":{"x":820,"y":571,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2619":{"x":1240,"y":383,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2620":{"submorphs":[{"__isSmartRef__":true,"id":2621},{"__isSmartRef__":true,"id":2661}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2793},"id":338,"renderContextTable":{"__isSmartRef__":true,"id":2797},"eventHandler":{"__isSmartRef__":true,"id":2798},"droppingEnabled":true,"halosEnabled":true,"__layered_draggingEnabled__":true,"layout":{"__isSmartRef__":true,"id":2799},"LK2":true,"_Position":{"__isSmartRef__":true,"id":2800},"priorExtent":{"__isSmartRef__":true,"id":2801},"targetMorph":{"__isSmartRef__":true,"id":2621},"titleBar":{"__isSmartRef__":true,"id":2661},"contentOffset":{"__isSmartRef__":true,"id":2657},"collapsedTransform":null,"collapsedExtent":null,"expandedTransform":null,"expandedExtent":null,"ignoreEventsOnExpand":false,"owner":{"__isSmartRef__":true,"id":0},"highlighted":true,"prevDragPos":{"__isSmartRef__":true,"id":2802},"isBeingDragged":false,"_Rotation":0,"_Scale":1,"showsHalos":false,"__LivelyClassName__":"lively.morphic.Window","__SourceModuleName__":"Global.lively.morphic.Widgets","withoutLayers":["Global.lively.morphic.GrabbingLayer"]},"2621":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2622},"id":337,"renderContextTable":{"__isSmartRef__":true,"id":2628},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2629},{"__isSmartRef__":true,"id":2631},{"__isSmartRef__":true,"id":2633},{"__isSmartRef__":true,"id":2635},{"__isSmartRef__":true,"id":2638},{"__isSmartRef__":true,"id":2640},{"__isSmartRef__":true,"id":2642},{"__isSmartRef__":true,"id":2644},{"__isSmartRef__":true,"id":2646},{"__isSmartRef__":true,"id":2648},{"__isSmartRef__":true,"id":2650},{"__isSmartRef__":true,"id":2652},{"__isSmartRef__":true,"id":2654}],"eventHandler":{"__isSmartRef__":true,"id":2656},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"auto","fixedWidth":true,"fixedHeight":true,"allowInput":true,"_FontFamily":"Monaco,monospace","_FontSize":10,"_Position":{"__isSmartRef__":true,"id":2657},"priorExtent":{"__isSmartRef__":true,"id":2658},"_MaxTextWidth":717,"_MinTextWidth":717,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2620},"layout":{"__isSmartRef__":true,"id":2659},"syntaxHighlightingWhileTyping":true,"attributeConnections":[{"__isSmartRef__":true,"id":2660}],"doNotSerialize":["$$textString"],"doNotCopyProperties":["$$textString"],"textString":"\n\nl = new WebResource(\"http://localhost/~T3/ace/build/demo/boot.js\")\n\nJSLoader.loadJs(\"src/mode-javascript.js\")\n\n\n\n\n\nmodule(\"lively.Network\").load()\n\nrequire(\"http://localhost/~T3/ace/build/demo/boot\");\n\n\n","lastSyntaxHighlightTime":1318420011500,"accessibleInInactiveWindow":true,"priorSelectionRange":[87,130],"previousSelection":[92,92],"charsReplaced":"","lastFindLoc":85,"isBeingDragged":false,"cachedTextString":"\n\nl = new WebResource(\"http://localhost/~T3/ace/build/demo/boot.js\")\n\nJSLoader.loadJs(\"src/mode-javascript.js\")\n\n\n\n\n\nmodule(\"lively.Network\").load()\n\nrequire(\"http://localhost/~T3/ace/build/demo/boot\");\n\n\n","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2622":{"_Position":{"__isSmartRef__":true,"id":2623},"renderContextTable":{"__isSmartRef__":true,"id":2624},"_Extent":{"__isSmartRef__":true,"id":2625},"_ClipMode":"auto","_Padding":{"__isSmartRef__":true,"id":950},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":2626},"_Fill":{"__isSmartRef__":true,"id":2627},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2623":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2624":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2625":{"x":727,"y":330,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2626":{"r":0.372,"g":0.369,"b":0.372,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2627":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2628":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2629":{"style":{"__isSmartRef__":true,"id":2630},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":"\n\nl = ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2630":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2631":{"style":{"__isSmartRef__":true,"id":2632},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":"new","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2632":{"color":{"__isSmartRef__":true,"id":1417},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2633":{"style":{"__isSmartRef__":true,"id":2634},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":" WebResource(","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2634":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2635":{"style":{"__isSmartRef__":true,"id":2636},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":"\"http:","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2636":{"color":{"__isSmartRef__":true,"id":2637},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2637":{"r":0,"g":0.5019607843137255,"b":0.5019607843137255,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2638":{"style":{"__isSmartRef__":true,"id":2639},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":"//localhost/~T3/ace/build/demo/boot.js\")","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2639":{"color":{"__isSmartRef__":true,"id":1390},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2640":{"style":{"__isSmartRef__":true,"id":2641},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":"\n\nJSLoader.loadJs(","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2641":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2642":{"style":{"__isSmartRef__":true,"id":2643},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":"\"src/mode-javascript.js\"","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2643":{"color":{"__isSmartRef__":true,"id":2637},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2644":{"style":{"__isSmartRef__":true,"id":2645},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":")\n\n\n\n\n\nmodule(","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2645":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2646":{"style":{"__isSmartRef__":true,"id":2647},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":"\"lively.Network\"","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2647":{"color":{"__isSmartRef__":true,"id":2637},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2648":{"style":{"__isSmartRef__":true,"id":2649},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":").load()\n\nrequire(","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2649":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2650":{"style":{"__isSmartRef__":true,"id":2651},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":"\"http:","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2651":{"color":{"__isSmartRef__":true,"id":2637},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2652":{"style":{"__isSmartRef__":true,"id":2653},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":"//localhost/~T3/ace/build/demo/boot\");","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2653":{"color":{"__isSmartRef__":true,"id":1390},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2654":{"style":{"__isSmartRef__":true,"id":2655},"chunkOwner":{"__isSmartRef__":true,"id":2621},"storedString":"\n\n\n","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2655":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2656":{"morph":{"__isSmartRef__":true,"id":2621},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2657":{"x":0,"y":21,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2658":{"x":727,"y":330,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2659":{"resizeWidth":true,"resizeHeight":true},"2660":{"sourceObj":{"__isSmartRef__":true,"id":2621},"sourceAttrName":"textString","targetObj":{"__isSmartRef__":true,"id":2621},"targetMethodName":"highlightJavaScriptSyntax","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2661":{"submorphs":[{"__isSmartRef__":true,"id":2662},{"__isSmartRef__":true,"id":2674},{"__isSmartRef__":true,"id":2709},{"__isSmartRef__":true,"id":2743}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2778},"id":339,"renderContextTable":{"__isSmartRef__":true,"id":2788},"eventHandler":{"__isSmartRef__":true,"id":2789},"droppingEnabled":true,"halosEnabled":true,"layout":{"__isSmartRef__":true,"id":2790},"_Position":{"__isSmartRef__":true,"id":2791},"windowMorph":{"__isSmartRef__":true,"id":2620},"label":{"__isSmartRef__":true,"id":2662},"closeButton":{"__isSmartRef__":true,"id":2674},"menuButton":{"__isSmartRef__":true,"id":2709},"collapseButton":{"__isSmartRef__":true,"id":2743},"priorExtent":{"__isSmartRef__":true,"id":2792},"owner":{"__isSmartRef__":true,"id":2620},"__LivelyClassName__":"lively.morphic.TitleBar","__SourceModuleName__":"Global.lively.morphic.Widgets"},"2662":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2663},"id":340,"renderContextTable":{"__isSmartRef__":true,"id":2667},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2668}],"eventHandler":{"__isSmartRef__":true,"id":2670},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"evalEnabled":false,"isLabel":true,"_HandStyle":"default","layout":{"__isSmartRef__":true,"id":2671},"_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","owner":{"__isSmartRef__":true,"id":2661},"priorExtent":{"__isSmartRef__":true,"id":2672},"_MaxTextWidth":668,"_MinTextWidth":668,"_MaxTextHeight":null,"_MinTextHeight":null,"_Position":{"__isSmartRef__":true,"id":2673},"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2663":{"_Position":{"__isSmartRef__":true,"id":2664},"renderContextTable":{"__isSmartRef__":true,"id":2665},"_Extent":{"__isSmartRef__":true,"id":2666},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":2486},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"_BorderRadius":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2664":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2665":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2666":{"x":668,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2667":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2668":{"style":{"__isSmartRef__":true,"id":2669},"chunkOwner":{"__isSmartRef__":true,"id":2662},"storedString":"Workspace","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2669":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2670":{"morph":{"__isSmartRef__":true,"id":2662},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2671":{"resizeWidth":true},"2672":{"x":668,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2673":{"x":20,"y":3,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2674":{"submorphs":[{"__isSmartRef__":true,"id":2675}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2686},"id":341,"renderContextTable":{"__isSmartRef__":true,"id":2691},"eventHandler":{"__isSmartRef__":true,"id":2692},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"accessibleInInactiveWindow":true,"_Position":{"__isSmartRef__":true,"id":2693},"priorExtent":{"__isSmartRef__":true,"id":2694},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":2695},"label":{"__isSmartRef__":true,"id":2675},"owner":{"__isSmartRef__":true,"id":2661},"layout":{"__isSmartRef__":true,"id":2704},"attributeConnections":[{"__isSmartRef__":true,"id":2705},{"__isSmartRef__":true,"id":2707}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets"},"2675":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2676},"id":342,"renderContextTable":{"__isSmartRef__":true,"id":2680},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2681}],"eventHandler":{"__isSmartRef__":true,"id":2683},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":8,"_Position":{"__isSmartRef__":true,"id":2684},"priorExtent":{"__isSmartRef__":true,"id":2685},"_MaxTextWidth":17,"_MinTextWidth":17,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2674},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2676":{"_Position":{"__isSmartRef__":true,"id":2677},"renderContextTable":{"__isSmartRef__":true,"id":2678},"_Extent":{"__isSmartRef__":true,"id":2679},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":2500},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2677":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2678":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2679":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2680":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2681":{"style":{"__isSmartRef__":true,"id":2682},"chunkOwner":{"__isSmartRef__":true,"id":2675},"storedString":"X","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2682":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2683":{"morph":{"__isSmartRef__":true,"id":2675},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2684":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2685":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2686":{"_Position":{"__isSmartRef__":true,"id":2687},"renderContextTable":{"__isSmartRef__":true,"id":2688},"_Extent":{"__isSmartRef__":true,"id":2689},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2690},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_StrokeOpacity":0,"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2687":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2688":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2689":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2690":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2691":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2692":{"morph":{"__isSmartRef__":true,"id":2674},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2693":{"x":707,"y":3,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2694":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2695":{"stops":[{"__isSmartRef__":true,"id":2696},{"__isSmartRef__":true,"id":2698},{"__isSmartRef__":true,"id":2700},{"__isSmartRef__":true,"id":2702}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2696":{"offset":0,"color":{"__isSmartRef__":true,"id":2697}},"2697":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2698":{"offset":0.4,"color":{"__isSmartRef__":true,"id":2699}},"2699":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2700":{"offset":0.6,"color":{"__isSmartRef__":true,"id":2701}},"2701":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2702":{"offset":1,"color":{"__isSmartRef__":true,"id":2703}},"2703":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2704":{"moveHorizontal":true},"2705":{"sourceObj":{"__isSmartRef__":true,"id":2674},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":2620},"targetMethodName":"getCloseHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2706},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2706":{"source":{"__isSmartRef__":true,"id":2674},"target":{"__isSmartRef__":true,"id":2620}},"2707":{"sourceObj":{"__isSmartRef__":true,"id":2674},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2620},"targetMethodName":"initiateShutdown","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2708},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2708":{"source":{"__isSmartRef__":true,"id":2674},"target":{"__isSmartRef__":true,"id":2620}},"2709":{"submorphs":[{"__isSmartRef__":true,"id":2710}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2721},"id":343,"renderContextTable":{"__isSmartRef__":true,"id":2726},"eventHandler":{"__isSmartRef__":true,"id":2727},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"accessibleInInactiveWindow":true,"_Position":{"__isSmartRef__":true,"id":2728},"priorExtent":{"__isSmartRef__":true,"id":2729},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":2730},"label":{"__isSmartRef__":true,"id":2710},"owner":{"__isSmartRef__":true,"id":2661},"attributeConnections":[{"__isSmartRef__":true,"id":2739},{"__isSmartRef__":true,"id":2741}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets"},"2710":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2711},"id":344,"renderContextTable":{"__isSmartRef__":true,"id":2715},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2716}],"eventHandler":{"__isSmartRef__":true,"id":2718},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":8,"_Position":{"__isSmartRef__":true,"id":2719},"priorExtent":{"__isSmartRef__":true,"id":2720},"_MaxTextWidth":17,"_MinTextWidth":17,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2709},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2711":{"_Position":{"__isSmartRef__":true,"id":2712},"renderContextTable":{"__isSmartRef__":true,"id":2713},"_Extent":{"__isSmartRef__":true,"id":2714},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":2500},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2712":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2713":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2714":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2715":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2716":{"style":{"__isSmartRef__":true,"id":2717},"chunkOwner":{"__isSmartRef__":true,"id":2710},"storedString":"M","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2717":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2718":{"morph":{"__isSmartRef__":true,"id":2710},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2719":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2720":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2721":{"_Position":{"__isSmartRef__":true,"id":2722},"renderContextTable":{"__isSmartRef__":true,"id":2723},"_Extent":{"__isSmartRef__":true,"id":2724},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2725},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_StrokeOpacity":0,"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2722":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2723":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2724":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2725":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2726":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2727":{"morph":{"__isSmartRef__":true,"id":2709},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2728":{"x":3,"y":3,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2729":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2730":{"stops":[{"__isSmartRef__":true,"id":2731},{"__isSmartRef__":true,"id":2733},{"__isSmartRef__":true,"id":2735},{"__isSmartRef__":true,"id":2737}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2731":{"offset":0,"color":{"__isSmartRef__":true,"id":2732}},"2732":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2733":{"offset":0.4,"color":{"__isSmartRef__":true,"id":2734}},"2734":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2735":{"offset":0.6,"color":{"__isSmartRef__":true,"id":2736}},"2736":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2737":{"offset":1,"color":{"__isSmartRef__":true,"id":2738}},"2738":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2739":{"sourceObj":{"__isSmartRef__":true,"id":2709},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":2620},"targetMethodName":"getMenuHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2740},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2740":{"source":{"__isSmartRef__":true,"id":2709},"target":{"__isSmartRef__":true,"id":2620}},"2741":{"sourceObj":{"__isSmartRef__":true,"id":2709},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2620},"targetMethodName":"showTargetMorphMenu","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2742},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2742":{"source":{"__isSmartRef__":true,"id":2709},"target":{"__isSmartRef__":true,"id":2620}},"2743":{"submorphs":[{"__isSmartRef__":true,"id":2744}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2755},"id":345,"renderContextTable":{"__isSmartRef__":true,"id":2760},"eventHandler":{"__isSmartRef__":true,"id":2761},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"accessibleInInactiveWindow":true,"_Position":{"__isSmartRef__":true,"id":2762},"priorExtent":{"__isSmartRef__":true,"id":2763},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1622},"lighterFill":{"__isSmartRef__":true,"id":2764},"label":{"__isSmartRef__":true,"id":2744},"owner":{"__isSmartRef__":true,"id":2661},"layout":{"__isSmartRef__":true,"id":2773},"attributeConnections":[{"__isSmartRef__":true,"id":2774},{"__isSmartRef__":true,"id":2776}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets"},"2744":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2745},"id":346,"renderContextTable":{"__isSmartRef__":true,"id":2749},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2750}],"eventHandler":{"__isSmartRef__":true,"id":2752},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":8,"_Position":{"__isSmartRef__":true,"id":2753},"priorExtent":{"__isSmartRef__":true,"id":2754},"_MaxTextWidth":17,"_MinTextWidth":17,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2743},"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2745":{"_Position":{"__isSmartRef__":true,"id":2746},"renderContextTable":{"__isSmartRef__":true,"id":2747},"_Extent":{"__isSmartRef__":true,"id":2748},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":2500},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2746":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2747":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2748":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2749":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2750":{"style":{"__isSmartRef__":true,"id":2751},"chunkOwner":{"__isSmartRef__":true,"id":2744},"storedString":"–","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2751":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2752":{"morph":{"__isSmartRef__":true,"id":2744},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2753":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2754":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2755":{"_Position":{"__isSmartRef__":true,"id":2756},"renderContextTable":{"__isSmartRef__":true,"id":2757},"_Extent":{"__isSmartRef__":true,"id":2758},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2759},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":1621},"_Fill":{"__isSmartRef__":true,"id":1622},"_StrokeOpacity":0,"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2756":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2757":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2758":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2759":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2760":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2761":{"morph":{"__isSmartRef__":true,"id":2743},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2762":{"x":688,"y":3,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2763":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2764":{"stops":[{"__isSmartRef__":true,"id":2765},{"__isSmartRef__":true,"id":2767},{"__isSmartRef__":true,"id":2769},{"__isSmartRef__":true,"id":2771}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2765":{"offset":0,"color":{"__isSmartRef__":true,"id":2766}},"2766":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2767":{"offset":0.4,"color":{"__isSmartRef__":true,"id":2768}},"2768":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2769":{"offset":0.6,"color":{"__isSmartRef__":true,"id":2770}},"2770":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2771":{"offset":1,"color":{"__isSmartRef__":true,"id":2772}},"2772":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2773":{"moveHorizontal":true},"2774":{"sourceObj":{"__isSmartRef__":true,"id":2743},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":2620},"targetMethodName":"getCollapseHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2775},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2775":{"source":{"__isSmartRef__":true,"id":2743},"target":{"__isSmartRef__":true,"id":2620}},"2776":{"sourceObj":{"__isSmartRef__":true,"id":2743},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2620},"targetMethodName":"toggleCollapse","converter":null,"converterString":null,"updater":null,"updaterString":null,"varMapping":{"__isSmartRef__":true,"id":2777},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings"},"2777":{"source":{"__isSmartRef__":true,"id":2743},"target":{"__isSmartRef__":true,"id":2620}},"2778":{"_Position":{"__isSmartRef__":true,"id":2779},"renderContextTable":{"__isSmartRef__":true,"id":2780},"_Extent":{"__isSmartRef__":true,"id":2781},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2782},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":2604},"_Fill":{"__isSmartRef__":true,"id":2783},"_StrokeOpacity":1,"_BorderRadius":"8px 8px 0px 0px","__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2779":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2780":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2781":{"x":727,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2782":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2783":{"stops":[{"__isSmartRef__":true,"id":2784},{"__isSmartRef__":true,"id":2786}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2784":{"offset":0,"color":{"__isSmartRef__":true,"id":2785}},"2785":{"r":1,"g":1,"b":1,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2786":{"offset":1,"color":{"__isSmartRef__":true,"id":2787}},"2787":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2788":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2789":{"morph":{"__isSmartRef__":true,"id":2661},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2790":{"resizeWidth":true,"adjustForNewBounds":true},"2791":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2792":{"x":727,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2793":{"renderContextTable":{"__isSmartRef__":true,"id":2794},"_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2795},"_BorderWidth":0,"_Fill":null,"_StrokeOpacity":0,"_BorderRadius":0,"_Extent":{"__isSmartRef__":true,"id":2796},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2794":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2795":{"x":0,"y":0,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2796":{"x":727,"y":351,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2797":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2798":{"morph":{"__isSmartRef__":true,"id":2620},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2799":{"adjustForNewBounds":true},"2800":{"x":112,"y":404,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2801":{"x":727,"y":351,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2802":{"x":211,"y":415,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2803":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2804},"id":2,"renderContextTable":{"__isSmartRef__":true,"id":2810},"eventHandler":{"__isSmartRef__":true,"id":2811},"droppingEnabled":false,"halosEnabled":false,"_world":{"__isSmartRef__":true,"id":0},"eventsAreIgnored":true,"_HandStyle":"default","_PointerEvents":"none","_Position":{"__isSmartRef__":true,"id":2812},"priorExtent":{"__isSmartRef__":true,"id":2813},"owner":{"__isSmartRef__":true,"id":0},"_Rotation":0,"_Scale":1,"__SourceModuleName__":"Global.lively.morphic.Events","scrollFocusMorph":{"__isSmartRef__":true,"id":2814},"carriesGrabbedMorphs":false,"lastScrollTime":1318419700741,"__LivelyClassName__":"lively.morphic.HandMorph","withLayers":["Global.NoMagnetsLayer"]},"2804":{"_Position":{"__isSmartRef__":true,"id":2805},"renderContextTable":{"__isSmartRef__":true,"id":2806},"_Extent":{"__isSmartRef__":true,"id":2807},"_Fill":{"__isSmartRef__":true,"id":2808},"__SourceModuleName__":"Global.lively.morphic.Shapes","_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2809},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"2805":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"2806":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2807":{"x":2,"y":2,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"2808":{"r":0.8,"g":0,"b":0,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2809":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"2810":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2811":{"morph":{"__isSmartRef__":true,"id":2803},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"2812":{"x":283,"y":551,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2813":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"2814":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2815},"id":849,"renderContextTable":{"__isSmartRef__":true,"id":2825},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":2826}],"eventHandler":{"__isSmartRef__":true,"id":2828},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":false,"fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10.5,"_Position":{"__isSmartRef__":true,"id":2829},"priorExtent":{"__isSmartRef__":true,"id":2830},"_MaxTextWidth":null,"_MinTextWidth":null,"_MaxTextHeight":null,"_MinTextHeight":null,"evalEnabled":false,"_HandStyle":"default","_TextColor":{"__isSmartRef__":true,"id":138},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2831},"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2815":{"_Position":{"__isSmartRef__":true,"id":2816},"renderContextTable":{"__isSmartRef__":true,"id":2817},"_Extent":{"__isSmartRef__":true,"id":2818},"_ClipMode":"hidden","_Padding":{"__isSmartRef__":true,"id":2819},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":932},"_Fill":{"__isSmartRef__":true,"id":2820},"_BorderRadius":4,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2816":{"x":0,"y":0,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2817":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2818":{"x":228,"y":23,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2819":{"x":3,"y":2,"width":0,"height":0,"__LivelyClassName__":"Rectangle","__SourceModuleName__":"Global"},"2820":{"stops":[{"__isSmartRef__":true,"id":2821},{"__isSmartRef__":true,"id":2823}],"vector":{"__isSmartRef__":true,"id":141},"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes"},"2821":{"offset":0,"color":{"__isSmartRef__":true,"id":2822}},"2822":{"r":0.39215686274509803,"g":0.5137254901960784,"b":0.9725490196078431,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2823":{"offset":1,"color":{"__isSmartRef__":true,"id":2824}},"2824":{"r":0.13333333333333333,"g":0.3333333333333333,"b":0.9607843137254902,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2825":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML","updateText":"updateTextHTML","setTextExtent":"setTextExtentHTML","setMaxTextWidth":"setMaxTextWidthHTML","setMaxTextHeight":"setMaxTextHeightHTML","setMinTextWidth":"setMinTextWidthHTML","setMinTextHeight":"setMinTextHeightHTML","getTextExtent":"getTextExtentHTML","getTextString":"getTextStringHTML","ignoreTextEvents":"ignoreTextEventsHTML","enableTextEvents":"enableTextEventsHTML","setFontFamily":"setFontFamilyHTML","setFontSize":"setFontSizeHTML","setTextColor":"setTextColorHTML","setPadding":"setPaddingHTML","setAlign":"setAlignHTML","setVerticalAlign":"setVerticalAlignHTML","setDisplay":"setDisplayHTML","setWhiteSpaceHandling":"setWhiteSpaceHandlingHTML","focusMorph":"focusMorphHTML"},"2826":{"style":{"__isSmartRef__":true,"id":2827},"chunkOwner":{"__isSmartRef__":true,"id":2814},"storedString":"save world","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2827":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2828":{"morph":{"__isSmartRef__":true,"id":2814},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2829":{"x":0,"y":207,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2830":{"x":257,"y":23,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"2831":{"onMouseWheel":{"__isSmartRef__":true,"id":2832},"onSelectStart":{"__isSmartRef__":true,"id":2839}},"2832":{"varMapping":{"__isSmartRef__":true,"id":2833},"source":"function onMouseWheel(evt) {\n return false; // to allow scrolling\n }","funcProperties":{"__isSmartRef__":true,"id":2838},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2833":{"this":{"__isSmartRef__":true,"id":2814},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2834}},"2834":{"$super":{"__isSmartRef__":true,"id":2835}},"2835":{"varMapping":{"__isSmartRef__":true,"id":2836},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch(e) {\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2837},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2836":{"obj":{"__isSmartRef__":true,"id":2814},"name":"onMouseWheel"},"2837":{},"2838":{},"2839":{"varMapping":{"__isSmartRef__":true,"id":2840},"source":"function onSelectStart(evt) {\n return false; // to allow scrolling\n }","funcProperties":{"__isSmartRef__":true,"id":2845},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2840":{"this":{"__isSmartRef__":true,"id":2814},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2841}},"2841":{"$super":{"__isSmartRef__":true,"id":2842}},"2842":{"varMapping":{"__isSmartRef__":true,"id":2843},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch(e) {\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2844},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global"},"2843":{"obj":{"__isSmartRef__":true,"id":2814},"name":"onSelectStart"},"2844":{},"2845":{},"2846":{"_Position":{"__isSmartRef__":true,"id":2847},"renderContextTable":{"__isSmartRef__":true,"id":2848},"_Extent":{"__isSmartRef__":true,"id":2849},"_Fill":{"__isSmartRef__":true,"id":2850},"__SourceModuleName__":"Global.lively.morphic.Shapes","_ClipMode":"visible","_Padding":{"__isSmartRef__":true,"id":2851},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"2847":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"2848":{"init":"initHTML","appendShape":"renderHTML","setPosition":"setPositionHTML","setExtent":"setExtentHTML","setPadding":"setPaddingHTML","setFill":"setFillHTML","setBorderColor":"setBorderColorHTML","setBorderWidth":"setBorderWidthHTML","setStrokeOpacity":"setStrokeOpacityHTML","setBorderRadius":"setBorderRadiusHTML","setBorderStyle":"setBorderStyleHTML","setOpacity":"setOpacityHTML","setClipMode":"setClipModeHTML"},"2849":{"x":1024,"y":768,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"2850":{"r":1,"g":1,"b":1,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"2851":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"2852":{"replaceRenderContext":"replaceRenderContextHTML","init":"initHTML","append":"appendHTML","remove":"removeHTML","triggerEvent":"triggerEventHTML","setTransform":"setTransformHTML","setPosition":"setPositionHTML","setRotation":"setRotationHTML","setExtent":"setExtentHTML","setScale":"setScaleHTML","setVisible":"setVisibleHTML","setOrigin":"setOriginHTML","setPivotPoint":"setPivotPointHTML","setClipMode":"setClipModeHTML","showsVerticalScrollBar":"showsVerticalScrollBarHTML","showsHorizontalScrollBar":"showsHorizontalScrollBarHTML","getScrollBarExtent":"getScrollBarExtentHTML","setHandStyle":"setHandStyleHTML","setPointerEvents":"setPointerEventsHTML","setToolTip":"setToolTipHTML","focus":"focusHTML","blur":"blurHTML","setFocusable":"setFocusableHTML"},"2853":{"morph":{"__isSmartRef__":true,"id":0},"__SourceModuleName__":"Global.lively.morphic.Events","__LivelyClassName__":"lively.morphic.EventHandler"},"2854":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"2855":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"2856":{"x":281,"y":549,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"isSimplifiedRegistry":true}}]]>