From 5b2cfe31e9dabf95cd58d8773f3439d377ebb864 Mon Sep 17 00:00:00 2001 From: Rob Date: Tue, 10 May 2022 08:21:42 -0300 Subject: [PATCH] Working and relatively glitch free. Classes are being implemented in javascript files. Python is basically one big class with no separation. --- UML Overview.mdj | 19520 ++++++++++++++++ app.py | 205 + config.yml | 94 + data.py | 799 + requirements.txt | 5 + static/blue_img.jpg | Bin 0 -> 132488 bytes static/brighterStyles.css | 367 + static/chart.js | 130 + static/general.js | 103 + ...ightweight-charts.standalone.production.js | 15 + trade.py | 9 + 11 files changed, 21247 insertions(+) create mode 100644 UML Overview.mdj create mode 100644 app.py create mode 100644 config.yml create mode 100644 data.py create mode 100644 requirements.txt create mode 100644 static/blue_img.jpg create mode 100644 static/brighterStyles.css create mode 100644 static/chart.js create mode 100644 static/general.js create mode 100644 static/lightweight-charts.standalone.production.js create mode 100644 trade.py diff --git a/UML Overview.mdj b/UML Overview.mdj new file mode 100644 index 0000000..b28f4eb --- /dev/null +++ b/UML Overview.mdj @@ -0,0 +1,19520 @@ +{ + "_type": "Project", + "_id": "AAAAAAFF+h6SjaM2Hec=", + "name": "Untitled", + "ownedElements": [ + { + "_type": "UMLModel", + "_id": "AAAAAAFF+qBWK6M3Z8Y=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "BrighterTrades Class View", + "ownedElements": [ + { + "_type": "UMLClassDiagram", + "_id": "AAAAAAFF+qBtyKM79qY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Main", + "defaultDiagram": true, + "ownedViews": [ + { + "_type": "UMLClassView", + "_id": "AAAAAAGAkl3075yJ860=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAkl3075yKOPM=", + "_parent": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "model": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAkl3075yL9mc=", + "_parent": { + "$ref": "AAAAAAGAkl3075yKOPM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2016, + "top": 2080, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAkl3075yMrwE=", + "_parent": { + "$ref": "AAAAAAGAkl3075yKOPM=" + }, + "font": "Arial;13;1", + "left": 1133, + "top": 1719, + "width": 95.38623046875, + "height": 13, + "text": "Display_Panel" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAkl3075yNzMw=", + "_parent": { + "$ref": "AAAAAAGAkl3075yKOPM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2016, + "top": 2080, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAkl3075yO00E=", + "_parent": { + "$ref": "AAAAAAGAkl3075yKOPM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2016, + "top": 2080, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1128, + "top": 1712, + "width": 105.38623046875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAkl3075yL9mc=" + }, + "nameLabel": { + "$ref": "AAAAAAGAkl3075yMrwE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAkl3075yNzMw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAkl3075yO00E=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAkl3075yPUC0=", + "_parent": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "model": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "font": "Arial;13;0", + "left": 1128, + "top": 1737, + "width": 105.38623046875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAkl3075yQOIw=", + "_parent": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "model": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "font": "Arial;13;0", + "left": 1128, + "top": 1747, + "width": 105.38623046875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAkl3075yR4jo=", + "_parent": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "model": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1008, + "top": 1040, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAkl3075ySZ4Y=", + "_parent": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "model": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1008, + "top": 1040, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1128, + "top": 1712, + "width": 105.38623046875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAkl3075yKOPM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAkl3075yPUC0=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAkl3075yQOIw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAkl3075yR4jo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAkl3075ySZ4Y=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlKBwAZy+AvI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlKBwAZy/nuo=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "model": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlKBwAZzAg8o=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy/nuo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1141.5146484375, + "top": 1712, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlKBwAZzBNss=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy/nuo=" + }, + "font": "Arial;13;1", + "left": 837, + "top": 1199, + "width": 88.51171875, + "height": 13, + "text": "Charts" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlKBwAZzCVGk=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy/nuo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1141.5146484375, + "top": 1712, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlKBwAZzD3GE=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy/nuo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1141.5146484375, + "top": 1712, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 832, + "top": 1192, + "width": 98.51171875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlKBwAZzAg8o=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlKBwAZzBNss=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlKBwAZzCVGk=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlKBwAZzD3GE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlKBwAZzElMQ=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "model": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlYY0n9+6MLI=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZzElMQ=" + }, + "model": { + "$ref": "AAAAAAGAlYY0lN+3EU4=" + }, + "font": "Arial;13;0", + "left": 837, + "top": 1222, + "width": 88.51171875, + "height": 13, + "text": "-charts: 1..3", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 832, + "top": 1217, + "width": 98.51171875, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlKBwAZzFovU=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "model": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlad4c9b/9Is=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZzFovU=" + }, + "model": { + "$ref": "AAAAAAGAlad4atb8lI0=" + }, + "font": "Arial;13;0", + "left": 837, + "top": 1245, + "width": 88.51171875, + "height": 13, + "text": "+bind_charts()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlagyRuRTfu8=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZzFovU=" + }, + "model": { + "$ref": "AAAAAAGAlagyPeRQGOU=" + }, + "font": "Arial;13;0", + "left": 837, + "top": 1260, + "width": 88.51171875, + "height": 13, + "text": "+create_chart()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 832, + "top": 1240, + "width": 98.51171875, + "height": 38 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlKBwAZzGLPQ=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "model": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 570.75732421875, + "top": 856, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlKBwAZzHzc0=", + "_parent": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "model": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 570.75732421875, + "top": 856, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 832, + "top": 1192, + "width": 98.51171875, + "height": 86, + "nameCompartment": { + "$ref": "AAAAAAGAlKBwAZy/nuo=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlKBwAZzElMQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlKBwAZzFovU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlKBwAZzGLPQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlKBwAZzHzc0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlKJCvaOyt2Y=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlKJCvaOz1zM=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "model": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlKJCvaO0eJc=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOz1zM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 318.16015625, + "top": 1792, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlKJCvaO1d+s=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOz1zM=" + }, + "font": "Arial;13;1", + "left": 557, + "top": 1239, + "width": 127.1689453125, + "height": 13, + "text": "Chart" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlKJCvaO2lvg=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOz1zM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 318.16015625, + "top": 1792, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlKJCvaO3OTs=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOz1zM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 318.16015625, + "top": 1792, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 552, + "top": 1232, + "width": 137.1689453125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlKJCvaO0eJc=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlKJCvaO1d+s=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlKJCvaO2lvg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlKJCvaO3OTs=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlKJCvaO4vRA=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "model": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlYoy+yzFNqw=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaO4vRA=" + }, + "model": { + "$ref": "AAAAAAGAlYoy8CzCHeM=" + }, + "font": "Arial;13;0", + "left": 557, + "top": 1262, + "width": 127.1689453125, + "height": 13, + "text": "-lines: line_series[0..*]", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 552, + "top": 1257, + "width": 137.1689453125, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlKJCvaO5Oao=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "model": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "font": "Arial;13;0", + "left": 552, + "top": 1280, + "width": 137.1689453125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlKJCvaO6siY=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "model": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 159.080078125, + "top": 896, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlKJCvaO78CI=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "model": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 159.080078125, + "top": 896, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 552, + "top": 1232, + "width": 137.1689453125, + "height": 73, + "nameCompartment": { + "$ref": "AAAAAAGAlKJCvaOz1zM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlKJCvaO4vRA=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlKJCvaO5Oao=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlKJCvaO6siY=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlKJCvaO78CI=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlLRrLqxjK7Y=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlLRrLqxkRxs=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "model": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlLRrLqxlEIo=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxkRxs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2272, + "top": 1636, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLRrLqxmB08=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxkRxs=" + }, + "font": "Arial;13;1", + "left": 1261, + "top": 1311, + "width": 78.47265625, + "height": 13, + "text": "Header" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLRrLqxnhAU=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxkRxs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2272, + "top": 1636, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLRrLqxoIFs=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxkRxs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2272, + "top": 1636, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1256, + "top": 1304, + "width": 88.47265625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlLRrLqxlEIo=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlLRrLqxmB08=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlLRrLqxnhAU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlLRrLqxoIFs=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlLRrLqxpQvE=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "model": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlL0eB9ExsYk=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxpQvE=" + }, + "model": { + "$ref": "AAAAAAGAlL0d+NEoRwU=" + }, + "font": "Arial;13;0", + "left": 1261, + "top": 1334, + "width": 78.47265625, + "height": 13, + "text": "+title: string", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1256, + "top": 1329, + "width": 88.47265625, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlLRrLqxqDzg=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "model": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "font": "Arial;13;0", + "left": 1256, + "top": 1352, + "width": 88.47265625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlLRrLqxrd5c=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "model": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 818, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlLRrLqxs2dI=", + "_parent": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "model": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 818, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1256, + "top": 1304, + "width": 88.47265625, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGAlLRrLqxkRxs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlLRrLqxpQvE=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlLRrLqxqDzg=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlLRrLqxrd5c=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlLRrLqxs2dI=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlLTUj7L3TDU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlLTUj7L40Wo=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "model": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlLTUj7L5HQw=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L40Wo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2496, + "top": 1520, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLTUj7L6n98=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L40Wo=" + }, + "font": "Arial;13;1", + "left": 1397, + "top": 1031, + "width": 86.708984375, + "height": 13, + "text": "User Interface" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLTUj7L7AC8=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L40Wo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2496, + "top": 1520, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLTUj7L8gQs=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L40Wo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2496, + "top": 1520, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1392, + "top": 1024, + "width": 96.708984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlLTUj7L5HQw=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlLTUj7L6n98=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlLTUj7L7AC8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlLTUj7L8gQs=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlLTUj7L9qXo=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "model": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "font": "Arial;13;0", + "left": 1392, + "top": 1049, + "width": 96.708984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlLTUj7L+GuI=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "model": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "font": "Arial;13;0", + "left": 1392, + "top": 1059, + "width": 96.708984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlLTUj7L/C8A=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "model": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1248, + "top": 760, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlLTUkLMARZA=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "model": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1248, + "top": 760, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1392, + "top": 1024, + "width": 96.708984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlLTUj7L40Wo=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlLTUj7L9qXo=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlLTUj7L+GuI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlLTUj7L/C8A=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlLTUkLMARZA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlLtBdcDltiY=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlLtBdcDmIn0=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "model": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlLtBdcDn4d0=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDmIn0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2736, + "top": 1396, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLtBdcDoTKY=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDmIn0=" + }, + "font": "Arial;13;1", + "left": 1653, + "top": 1215, + "width": 81.28173828125, + "height": 13, + "text": "Controls" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLtBdcDpGX8=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDmIn0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2736, + "top": 1396, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlLtBdcDqEF8=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDmIn0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2736, + "top": 1396, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1648, + "top": 1208, + "width": 91.28173828125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlLtBdcDn4d0=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlLtBdcDoTKY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlLtBdcDpGX8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlLtBdcDqEF8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlLtBdsDrxg0=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "model": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "font": "Arial;13;0", + "left": 1648, + "top": 1233, + "width": 91.28173828125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlLtBdsDsykE=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "model": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlamWZS8RNu8=", + "_parent": { + "$ref": "AAAAAAGAlLtBdsDsykE=" + }, + "model": { + "$ref": "AAAAAAGAlamWWi8OqEc=" + }, + "font": "Arial;13;0", + "left": 1653, + "top": 1248, + "width": 81.28173828125, + "height": 13, + "text": "+showAtPos()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1648, + "top": 1243, + "width": 91.28173828125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlLtBdsDtZlc=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "model": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1368, + "top": 698, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlLtBdsDuieQ=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "model": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1368, + "top": 698, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1648, + "top": 1208, + "width": 91.28173828125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGAlLtBdcDmIn0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlLtBdsDrxg0=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlLtBdsDsykE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlLtBdsDtZlc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlLtBdsDuieQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlMBt0tj0oB8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlMBt0tjyuVQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMBt0tj15vk=", + "_parent": { + "$ref": "AAAAAAGAlMBt0tj0oB8=" + }, + "model": { + "$ref": "AAAAAAGAlMBt0tjyuVQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1252, + "top": 1534, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMBt0tj0oB8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMBt0tj2tnw=", + "_parent": { + "$ref": "AAAAAAGAlMBt0tj0oB8=" + }, + "model": { + "$ref": "AAAAAAGAlMBt0tjyuVQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1266, + "top": 1538, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlMBt0tj0oB8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMBt0tj3u4U=", + "_parent": { + "$ref": "AAAAAAGAlMBt0tj0oB8=" + }, + "model": { + "$ref": "AAAAAAGAlMBt0tjyuVQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1223, + "top": 1525, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMBt0tj0oB8=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "lineStyle": 1, + "points": "1290:1362;1187:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlMBt0tj15vk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlMBt0tj2tnw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlMBt0tj3u4U=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlMDKUtww6o0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlMDKUdwuDGM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMDKUtwxyNM=", + "_parent": { + "$ref": "AAAAAAGAlMDKUtww6o0=" + }, + "model": { + "$ref": "AAAAAAGAlMDKUdwuDGM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1048, + "top": 1480, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMDKUtww6o0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMDKUtwy7Uk=", + "_parent": { + "$ref": "AAAAAAGAlMDKUtww6o0=" + }, + "model": { + "$ref": "AAAAAAGAlMDKUdwuDGM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1061, + "top": 1472, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlMDKUtww6o0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMDKUtwzWLA=", + "_parent": { + "$ref": "AAAAAAGAlMDKUtww6o0=" + }, + "model": { + "$ref": "AAAAAAGAlMDKUdwuDGM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1023, + "top": 1495, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMDKUtww6o0=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "lineStyle": 1, + "points": "906:1278;1166:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlMDKUtwxyNM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlMDKUtwy7Uk=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlMDKUtwzWLA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlMe6bOf/4IA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlMe6bOgA1Vs=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "model": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlMe6bOgB75I=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOgA1Vs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 892, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlMe6bOgC8Nk=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOgA1Vs=" + }, + "font": "Arial;13;1", + "left": 669, + "top": 1111, + "width": 126.4453125, + "height": 13, + "text": "Price_Chart" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlMe6bOgDaYQ=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOgA1Vs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 892, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlMe6bOgEnEY=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOgA1Vs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 892, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 664, + "top": 1104, + "width": 136.4453125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlMe6bOgB75I=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlMe6bOgC8Nk=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlMe6bOgDaYQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlMe6bOgEnEY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlMe6bOgFNuk=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "model": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlYu4Lz/LYqs=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOgFNuk=" + }, + "model": { + "$ref": "AAAAAAGAlYu4Ij/IzVw=" + }, + "font": "Arial;13;0", + "left": 669, + "top": 1134, + "width": 126.4453125, + "height": 13, + "text": "-candles: price_series", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlY+knm5Z/uo=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOgFNuk=" + }, + "model": { + "$ref": "AAAAAAGAlY+kkW5Wfxg=" + }, + "font": "Arial;13;0", + "left": 669, + "top": 1149, + "width": 126.4453125, + "height": 13, + "text": "-volume: histogram", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 664, + "top": 1129, + "width": 136.4453125, + "height": 38 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlMe6bOgGzvE=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "model": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "font": "Arial;13;0", + "left": 664, + "top": 1167, + "width": 136.4453125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlMe6bOgH+Bs=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "model": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 576, + "top": 446, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlMe6bOgIVe8=", + "_parent": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "model": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 576, + "top": 446, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 664, + "top": 1104, + "width": 136.4453125, + "height": 73, + "nameCompartment": { + "$ref": "AAAAAAGAlMe6bOgA1Vs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlMe6bOgFNuk=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlMe6bOgGzvE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlMe6bOgH+Bs=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlMe6bOgIVe8=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlMe6u+hGVac=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlMe6u+hEFdo=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMe6u+hHqc0=", + "_parent": { + "$ref": "AAAAAAGAlMe6u+hGVac=" + }, + "model": { + "$ref": "AAAAAAGAlMe6u+hEFdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 686, + "top": 1207, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMe6u+hGVac=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMe6u+hIqN8=", + "_parent": { + "$ref": "AAAAAAGAlMe6u+hGVac=" + }, + "model": { + "$ref": "AAAAAAGAlMe6u+hEFdo=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 697, + "top": 1217, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlMe6u+hGVac=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMe6u+hJPI4=", + "_parent": { + "$ref": "AAAAAAGAlMe6u+hGVac=" + }, + "model": { + "$ref": "AAAAAAGAlMe6u+hEFdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 663, + "top": 1188, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMe6u+hGVac=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "tail": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "lineStyle": 1, + "points": "699:1177;652:1231", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlMe6u+hHqc0=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlMe6u+hIqN8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlMe6u+hJPI4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlMgRM+mvaWs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlMgRM+mweN0=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "model": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlMgRM+mxAdI=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mweN0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 1532, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlMgRM+myc+8=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mweN0=" + }, + "font": "Arial;13;1", + "left": 661, + "top": 1431, + "width": 65.72998046875, + "height": 13, + "text": "Sub_Chart" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlMgRM+mzgGE=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mweN0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 1532, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlMgRM+m0QR0=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mweN0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 1532, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 656, + "top": 1424, + "width": 75.72998046875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlMgRM+mxAdI=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlMgRM+myc+8=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlMgRM+mzgGE=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlMgRM+m0QR0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlMgRM+m1odQ=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "model": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "font": "Arial;13;0", + "left": 656, + "top": 1449, + "width": 75.72998046875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlMgRM+m2qT4=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "model": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "font": "Arial;13;0", + "left": 656, + "top": 1459, + "width": 75.72998046875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlMgRM+m30Gg=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "model": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 568, + "top": 766, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlMgRNOm4hOI=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "model": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 568, + "top": 766, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 656, + "top": 1424, + "width": 75.72998046875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlMgRM+mweN0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlMgRM+m1odQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlMgRM+m2qT4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlMgRM+m30Gg=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlMgRNOm4hOI=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlMgRf+n28IE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlMgRf+n02Wc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMgRf+n3bpw=", + "_parent": { + "$ref": "AAAAAAGAlMgRf+n28IE=" + }, + "model": { + "$ref": "AAAAAAGAlMgRf+n02Wc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 645, + "top": 1363, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMgRf+n28IE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMgRf+n4/ZI=", + "_parent": { + "$ref": "AAAAAAGAlMgRf+n28IE=" + }, + "model": { + "$ref": "AAAAAAGAlMgRf+n02Wc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 631, + "top": 1369, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlMgRf+n28IE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlMgRf+n516w=", + "_parent": { + "$ref": "AAAAAAGAlMgRf+n28IE=" + }, + "model": { + "$ref": "AAAAAAGAlMgRf+n02Wc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 672, + "top": 1352, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlMgRf+n28IE=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "tail": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "lineStyle": 1, + "points": "684:1423;635:1305", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlMgRf+n3bpw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlMgRf+n4/ZI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlMgRf+n516w=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlOF3iKq5ed8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlOF3iKq6aGk=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "model": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlOF3iKq7dIs=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq6aGk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1168, + "top": 1036, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOF3iKq83dU=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq6aGk=" + }, + "font": "Arial;13;1", + "left": 845, + "top": 1319, + "width": 80.57080078125, + "height": 13, + "text": "RSI_Chart" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOF3iKq9LmM=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq6aGk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1168, + "top": 1036, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOF3iKq+OZc=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq6aGk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1168, + "top": 1036, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 840, + "top": 1312, + "width": 90.57080078125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOF3iKq7dIs=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlOF3iKq83dU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlOF3iKq9LmM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOF3iKq+OZc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlOF3iKq/nF4=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "model": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "font": "Arial;13;0", + "left": 840, + "top": 1337, + "width": 90.57080078125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlOF3iKrANh4=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "model": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlaHXCCzROFY=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKrANh4=" + }, + "model": { + "$ref": "AAAAAAGAlaHW+yzOEf4=" + }, + "font": "Arial;13;0", + "left": 845, + "top": 1352, + "width": 80.57080078125, + "height": 13, + "text": "+RSI_lines()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 840, + "top": 1347, + "width": 90.57080078125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlOF3iKrB+Wc=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "model": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 584, + "top": 518, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlOF3iKrC6Qs=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "model": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 584, + "top": 518, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 840, + "top": 1312, + "width": 90.57080078125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGAlOF3iKq6aGk=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlOF3iKq/nF4=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlOF3iKrANh4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlOF3iKrB+Wc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlOF3iKrC6Qs=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlOF33asezQI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOF33ascf20=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOF33asf8Bw=", + "_parent": { + "$ref": "AAAAAAGAlOF33asezQI=" + }, + "model": { + "$ref": "AAAAAAGAlOF33ascf20=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 792, + "top": 1402, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOF33asezQI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOF33asg4sw=", + "_parent": { + "$ref": "AAAAAAGAlOF33asezQI=" + }, + "model": { + "$ref": "AAAAAAGAlOF33ascf20=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 799, + "top": 1415, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOF33asezQI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOF33ashP+4=", + "_parent": { + "$ref": "AAAAAAGAlOF33asezQI=" + }, + "model": { + "$ref": "AAAAAAGAlOF33ascf20=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 777, + "top": 1375, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOF33asezQI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "tail": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "lineStyle": 1, + "points": "839:1365;732:1425", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlOF33asf8Bw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOF33asg4sw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOF33ashP+4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlOG1qKyk1j0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlOG1qKylWAA=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "model": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlOG1qKymumA=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKylWAA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 896, + "top": 956, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOG1qKynwvA=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKylWAA=" + }, + "font": "Arial;13;1", + "left": 709, + "top": 1279, + "width": 88.86083984375, + "height": 13, + "text": "MACD_Chart" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOG1qKyoL/4=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKylWAA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 896, + "top": 956, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOG1qKypFY8=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKylWAA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 896, + "top": 956, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 704, + "top": 1272, + "width": 98.86083984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOG1qKymumA=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlOG1qKynwvA=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlOG1qKyoL/4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOG1qKypFY8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlOG1qKyq5xw=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "model": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlZA+PHVWN6c=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyq5xw=" + }, + "model": { + "$ref": "AAAAAAGAlZA+L3VTvPw=" + }, + "font": "Arial;13;0", + "left": 709, + "top": 1302, + "width": 88.86083984375, + "height": 13, + "text": "-hist: histogram", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 704, + "top": 1297, + "width": 98.86083984375, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlOG1qKyrwws=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "model": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "font": "Arial;13;0", + "left": 704, + "top": 1320, + "width": 98.86083984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlOG1qKys5rI=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "model": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 448, + "top": 478, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlOG1qKytrsM=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "model": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 448, + "top": 478, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 704, + "top": 1272, + "width": 98.86083984375, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGAlOG1qKylWAA=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlOG1qKyq5xw=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlOG1qKyrwws=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlOG1qKys5rI=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlOG1qKytrsM=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlOG2CK0JgG8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOG2B60HNBw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOG2CK0K3Gs=", + "_parent": { + "$ref": "AAAAAAGAlOG2CK0JgG8=" + }, + "model": { + "$ref": "AAAAAAGAlOG2B60HNBw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 734, + "top": 1375, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOG2CK0JgG8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOG2CK0Lauw=", + "_parent": { + "$ref": "AAAAAAGAlOG2CK0JgG8=" + }, + "model": { + "$ref": "AAAAAAGAlOG2B60HNBw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 748, + "top": 1381, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOG2CK0JgG8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOG2CK0MsxI=", + "_parent": { + "$ref": "AAAAAAGAlOG2CK0JgG8=" + }, + "model": { + "$ref": "AAAAAAGAlOG2B60HNBw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 707, + "top": 1364, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOG2CK0JgG8=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlMgRM+mvaWs=" + }, + "tail": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "lineStyle": 1, + "points": "740:1330;702:1423", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlOG2CK0K3Gs=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOG2CK0Lauw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOG2CK0MsxI=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlOJxWLVK1Fs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVGJ1k=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVLiQc=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVGJ1k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 824, + "top": 1273, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVM788=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVGJ1k=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 831, + "top": 1286, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVNlaU=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVGJ1k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 809, + "top": 1246, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVOXpk=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVH07M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 815, + "top": 1278, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVPcTM=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVH07M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 819, + "top": 1291, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVQLcQ=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVH07M=" + }, + "font": "Arial;13;0", + "left": 803, + "top": 1252, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVRbK4=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVILrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 1268, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWLVSaiY=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVILrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 841, + "top": 1279, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOJxWbVTk9o=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVILrM=" + }, + "font": "Arial;13;0", + "left": 813, + "top": 1246, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlOJxWbVUAow=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVH07M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 480, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlOJxWbVVTCs=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVK1Fs=" + }, + "model": { + "$ref": "AAAAAAGAlOJxWLVILrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 480, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "tail": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "lineStyle": 1, + "points": "831:1259;803:1274", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlOJxWLVLiQc=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOJxWLVM788=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOJxWLVNlaU=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlOJxWLVOXpk=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlOJxWLVPcTM=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlOJxWLVQLcQ=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlOJxWLVRbK4=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlOJxWLVSaiY=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlOJxWbVTk9o=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlOJxWbVUAow=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlOJxWbVVTCs=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlOP4tbt23nc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbty5Zw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt35X0=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbty5Zw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 896, + "top": 1287, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt4NgM=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbty5Zw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 911, + "top": 1286, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt5Xw4=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbty5Zw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 867, + "top": 1288, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt6b5U=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbtzuOo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 897, + "top": 1297, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt7ThA=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbtzuOo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 911, + "top": 1299, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt8pzU=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbtzuOo=" + }, + "font": "Arial;13;0", + "left": 867, + "top": 1294, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt98Bo=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbt0Vwg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 897, + "top": 1278, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt+LXU=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbt0Vwg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 910, + "top": 1275, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlOP4tbt/Y0w=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbt0Vwg=" + }, + "font": "Arial;13;0", + "left": 866, + "top": 1283, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlOP4tbuAGLA=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbtzuOo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 480, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlOP4tbuBv+0=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbt23nc=" + }, + "model": { + "$ref": "AAAAAAGAlOP4tbt0Vwg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 480, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "tail": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "lineStyle": 1, + "points": "882:1278;883:1311", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlOP4tbt35X0=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOP4tbt4NgM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOP4tbt5Xw4=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlOP4tbt6b5U=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlOP4tbt7ThA=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlOP4tbt8pzU=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlOP4tbt98Bo=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlOP4tbt+LXU=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlOP4tbt/Y0w=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlOP4tbuAGLA=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlOP4tbuBv+0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlOVtD89PdYQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlOVtD89Q2SE=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "model": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlOVtD89R0Ak=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89Q2SE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2164.58203125, + "top": 1760, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOVtEM9Sgg4=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89Q2SE=" + }, + "font": "Arial;13;1", + "left": 1861, + "top": 1415, + "width": 54.18994140625, + "height": 13, + "text": "Interface" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOVtEM9TlXA=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89Q2SE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2164.58203125, + "top": 1760, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlOVtEM9UXL8=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89Q2SE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2164.58203125, + "top": 1760, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1856, + "top": 1408, + "width": 64.18994140625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlOVtD89R0Ak=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlOVtEM9Sgg4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlOVtEM9TlXA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlOVtEM9UXL8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlOVtEM9VjO4=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "model": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "font": "Arial;13;0", + "left": 1856, + "top": 1433, + "width": 64.18994140625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlOVtEM9WzB4=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "model": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "font": "Arial;13;0", + "left": 1856, + "top": 1443, + "width": 64.18994140625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlOVtEM9XwJI=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "model": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1082.291015625, + "top": 880, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlOVtEM9YXUU=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "model": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1082.291015625, + "top": 880, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1856, + "top": 1408, + "width": 64.18994140625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlOVtD89Q2SE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlOVtEM9VjO4=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlOVtEM9WzB4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlOVtEM9XwJI=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlOVtEM9YXUU=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlQqkENzfKLo=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzbW8g=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzg3ZU=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzbW8g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 801, + "top": 1196, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzhGQ4=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzbW8g=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 793, + "top": 1209, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzi3qE=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzbW8g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 818, + "top": 1171, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzj/Ns=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzcXKQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 801, + "top": 1195, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzkuGM=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzcXKQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 791, + "top": 1205, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzl9c8=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzcXKQ=" + }, + "font": "Arial;13;0", + "left": 816, + "top": 1174, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzmZ3c=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzdqVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 803, + "top": 1197, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzn4hY=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzdqVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 798, + "top": 1210, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQqkENzo9qM=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzdqVw=" + }, + "font": "Arial;13;0", + "left": 811, + "top": 1172, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlQqkENzpv5Q=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzcXKQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 480, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlQqkENzqfwQ=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzfKLo=" + }, + "model": { + "$ref": "AAAAAAGAlQqkENzdqVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 480, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlMe6bOf/4IA=" + }, + "tail": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "lineStyle": 1, + "points": "831:1203;790:1177", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlQqkENzg3ZU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlQqkENzhGQ4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlQqkENzi3qE=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlQqkENzj/Ns=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlQqkENzkuGM=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlQqkENzl9c8=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlQqkENzmZ3c=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlQqkENzn4hY=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlQqkENzo9qM=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlQqkENzpv5Q=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlQqkENzqfwQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlQzlP/cvjRU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlQzlPvctqQw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQzlP/cwS1Y=", + "_parent": { + "$ref": "AAAAAAGAlQzlP/cvjRU=" + }, + "model": { + "$ref": "AAAAAAGAlQzlPvctqQw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1549, + "top": 1584, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlQzlP/cvjRU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQzlP/cxot0=", + "_parent": { + "$ref": "AAAAAAGAlQzlP/cvjRU=" + }, + "model": { + "$ref": "AAAAAAGAlQzlPvctqQw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1555, + "top": 1598, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlQzlP/cvjRU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQzlP/cyEi4=", + "_parent": { + "$ref": "AAAAAAGAlQzlP/cvjRU=" + }, + "model": { + "$ref": "AAAAAAGAlQzlPvctqQw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1538, + "top": 1557, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlQzlP/cvjRU=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "lineStyle": 1, + "points": "1855:1444;1233:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlQzlP/cwS1Y=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlQzlP/cxot0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlQzlP/cyEi4=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlQ0ahvqgPhc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlQ0ahvqeZ6I=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQ0ahvqh2lU=", + "_parent": { + "$ref": "AAAAAAGAlQ0ahvqgPhc=" + }, + "model": { + "$ref": "AAAAAAGAlQ0ahvqeZ6I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1803, + "top": 1319, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlQ0ahvqgPhc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQ0ahvqiNNw=", + "_parent": { + "$ref": "AAAAAAGAlQ0ahvqgPhc=" + }, + "model": { + "$ref": "AAAAAAGAlQ0ahvqeZ6I=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1814, + "top": 1308, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlQ0ahvqgPhc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlQ0ahvqjx4g=", + "_parent": { + "$ref": "AAAAAAGAlQ0ahvqgPhc=" + }, + "model": { + "$ref": "AAAAAAGAlQ0ahvqeZ6I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1782, + "top": 1340, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlQ0ahvqgPhc=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "tail": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "lineStyle": 1, + "points": "1723:1266;1864:1407", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlQ0ahvqh2lU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlQ0ahvqiNNw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlQ0ahvqjx4g=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlRBEJjLv+uI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlRBEJjLwUs4=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "model": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlRBEJjLxHDA=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLwUs4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 1408, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRBEJjLy34o=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLwUs4=" + }, + "font": "Arial;13;1", + "left": 1349, + "top": 1391, + "width": 41.919921875, + "height": 13, + "text": "Alerts" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRBEJjLznQo=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLwUs4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 1408, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRBEJjL0g3w=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLwUs4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 1408, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1344, + "top": 1384, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRBEJjLxHDA=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlRBEJjLy34o=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlRBEJjLznQo=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRBEJjL0g3w=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlRBEJjL1S10=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "model": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "font": "Arial;13;0", + "left": 1344, + "top": 1409, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlRBEJjL2VUw=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "model": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "font": "Arial;13;0", + "left": 1344, + "top": 1419, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlRBEJjL3SGQ=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "model": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 576, + "top": 704, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlRBEJjL4bGk=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "model": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 576, + "top": 704, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1344, + "top": 1384, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlRBEJjLwUs4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlRBEJjL1S10=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlRBEJjL2VUw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlRBEJjL3SGQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlRBEJjL4bGk=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlRB+cjfi8c0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRB+cjfgulU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRB+cjfj3CE=", + "_parent": { + "$ref": "AAAAAAGAlRB+cjfi8c0=" + }, + "model": { + "$ref": "AAAAAAGAlRB+cjfgulU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1287, + "top": 1571, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRB+cjfi8c0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRB+cjfkkiM=", + "_parent": { + "$ref": "AAAAAAGAlRB+cjfi8c0=" + }, + "model": { + "$ref": "AAAAAAGAlRB+cjfgulU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1300, + "top": 1578, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlRB+cjfi8c0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRB+cjflWEI=", + "_parent": { + "$ref": "AAAAAAGAlRB+cjfi8c0=" + }, + "model": { + "$ref": "AAAAAAGAlRB+cjfgulU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1260, + "top": 1556, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRB+cjfi8c0=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "lineStyle": 1, + "points": "1356:1429;1193:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlRB+cjfj3CE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRB+cjfkkiM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRB+cjflWEI=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlRGzZE5UCxw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlRGzZE5VnFY=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "model": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlRGzZE5Whps=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5VnFY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1088, + "top": 1600, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRGzZE5X7Gc=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5VnFY=" + }, + "font": "Arial;13;1", + "left": 1397, + "top": 1479, + "width": 92.46630859375, + "height": 13, + "text": "Exchange_Info" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRGzZE5Yimo=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5VnFY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1088, + "top": 1600, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRGzZE5ZoWo=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5VnFY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1088, + "top": 1600, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1392, + "top": 1472, + "width": 102.46630859375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRGzZE5Whps=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlRGzZE5X7Gc=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlRGzZE5Yimo=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRGzZE5ZoWo=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlRGzZE5aPuo=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "model": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "font": "Arial;13;0", + "left": 1392, + "top": 1497, + "width": 102.46630859375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlRGzZE5bk8k=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "model": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "font": "Arial;13;0", + "left": 1392, + "top": 1507, + "width": 102.46630859375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlRGzZE5cWQ4=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "model": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 800, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlRGzZU5d3ww=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "model": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 800, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1392, + "top": 1472, + "width": 102.46630859375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlRGzZE5VnFY=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlRGzZE5aPuo=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlRGzZE5bk8k=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlRGzZE5cWQ4=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlRGzZU5d3ww=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlRH94FB2644=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRH931B0eeY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRH94FB3tFk=", + "_parent": { + "$ref": "AAAAAAGAlRH94FB2644=" + }, + "model": { + "$ref": "AAAAAAGAlRH931B0eeY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1321, + "top": 1619, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRH94FB2644=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRH94FB4lR0=", + "_parent": { + "$ref": "AAAAAAGAlRH94FB2644=" + }, + "model": { + "$ref": "AAAAAAGAlRH931B0eeY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1331, + "top": 1630, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlRH94FB2644=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRH94FB50Og=", + "_parent": { + "$ref": "AAAAAAGAlRH94FB2644=" + }, + "model": { + "$ref": "AAAAAAGAlRH931B0eeY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1300, + "top": 1596, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRH94FB2644=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "lineStyle": 1, + "points": "1417:1517;1205:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlRH94FB3tFk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRH94FB4lR0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRH94FB50Og=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlRJADlhrEO0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlRJADlhsZDY=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "model": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlRJADlhtNpU=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhsZDY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1056, + "top": 1376, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRJADlhuh+0=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhsZDY=" + }, + "font": "Arial;13;1", + "left": 1509, + "top": 1383, + "width": 125.353515625, + "height": 13, + "text": "Signals" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRJADlhvf+s=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhsZDY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1056, + "top": 1376, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRJADlhw4ks=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhsZDY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1056, + "top": 1376, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1504, + "top": 1376, + "width": 135.353515625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRJADlhtNpU=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlRJADlhuh+0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlRJADlhvf+s=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRJADlhw4ks=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlRJADlhx56c=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "model": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "font": "Arial;13;0", + "left": 1504, + "top": 1401, + "width": 135.353515625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlRJADlhy+tQ=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "model": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlaz/TWcw1zI=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAlaz/P2ckb8w=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1416, + "width": 125.353515625, + "height": 13, + "text": "+open_signal_Form()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAla2Nw3wcBoQ=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAla2Nt3wQUmo=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1431, + "width": 125.353515625, + "height": 13, + "text": "+close_signal_Form()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAla3S4Iuqdvk=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAla3S1IueRjU=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1446, + "width": 125.353515625, + "height": 13, + "text": "+fill_prop()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlcH4LuC6CtA=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAlcBTsKIft6E=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1461, + "width": 125.353515625, + "height": 13, + "text": "+switch_panel()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlcIEZeL14iE=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAlcCHsa7OUgE=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1476, + "width": 125.353515625, + "height": 13, + "text": "+hideIfTrue()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlcI5j+izJPo=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAlcC9Qb26gpQ=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1491, + "width": 125.353515625, + "height": 13, + "text": "+ns_next()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlcKMz/hBW2Y=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "model": { + "$ref": "AAAAAAGAlcKMw/g1OQc=" + }, + "font": "Arial;13;0", + "left": 1509, + "top": 1506, + "width": 125.353515625, + "height": 13, + "text": "+submitNewSignal()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1504, + "top": 1411, + "width": 135.353515625, + "height": 113 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlRJADlhzq50=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "model": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": 688, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlRJADlh0c7o=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "model": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": 688, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1504, + "top": 1376, + "width": 135.353515625, + "height": 148, + "nameCompartment": { + "$ref": "AAAAAAGAlRJADlhsZDY=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlRJADlhx56c=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlRJADlhy+tQ=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlRJADlhzq50=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlRJADlh0c7o=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlRKGiFtBZJk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRKGiFs/VYQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRKGiVtCAiI=", + "_parent": { + "$ref": "AAAAAAGAlRKGiFtBZJk=" + }, + "model": { + "$ref": "AAAAAAGAlRKGiFs/VYQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1746, + "top": 1417, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRKGiFtBZJk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRKGiVtDcTg=", + "_parent": { + "$ref": "AAAAAAGAlRKGiFtBZJk=" + }, + "model": { + "$ref": "AAAAAAGAlRKGiFs/VYQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1745, + "top": 1402, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlRKGiFtBZJk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRKGiVtETV8=", + "_parent": { + "$ref": "AAAAAAGAlRKGiFtBZJk=" + }, + "model": { + "$ref": "AAAAAAGAlRKGiFs/VYQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1747, + "top": 1446, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRKGiFtBZJk=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "tail": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "lineStyle": 1, + "points": "1639:1445;1855:1432", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlRKGiVtCAiI=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRKGiVtDcTg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRKGiVtETV8=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlRLKTmK43xc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlRLKTmK5Hys=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "model": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlRLKTmK6uxE=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK5Hys=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1040, + "top": 1200, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRLKT2K7jkY=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK5Hys=" + }, + "font": "Arial;13;1", + "left": 1581, + "top": 1287, + "width": 62.86083984375, + "height": 13, + "text": "Strategies" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRLKT2K8N+E=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK5Hys=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1040, + "top": 1200, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlRLKT2K9fKc=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK5Hys=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1040, + "top": 1200, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1576, + "top": 1280, + "width": 72.86083984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRLKTmK6uxE=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlRLKT2K7jkY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlRLKT2K8N+E=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRLKT2K9fKc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlRLKT2K+FM0=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "model": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "font": "Arial;13;0", + "left": 1576, + "top": 1305, + "width": 72.86083984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlRLKT2K/7OY=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "model": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "font": "Arial;13;0", + "left": 1576, + "top": 1315, + "width": 72.86083984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlRLKT2LA9wQ=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "model": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 520, + "top": 600, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlRLKT2LBxAc=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "model": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 520, + "top": 600, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1576, + "top": 1280, + "width": 72.86083984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlRLKTmK5Hys=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlRLKT2K+FM0=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlRLKT2K/7OY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlRLKT2LA9wQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlRLKT2LBxAc=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlRM+J2Z5suI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlRM+J2Z34W8=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRM+J2Z6fJM=", + "_parent": { + "$ref": "AAAAAAGAlRM+J2Z5suI=" + }, + "model": { + "$ref": "AAAAAAGAlRM+J2Z34W8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1758, + "top": 1347, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRM+J2Z5suI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRM+J2Z74uU=", + "_parent": { + "$ref": "AAAAAAGAlRM+J2Z5suI=" + }, + "model": { + "$ref": "AAAAAAGAlRM+J2Z34W8=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1764, + "top": 1333, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlRM+J2Z5suI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlRM+J2Z8R/A=", + "_parent": { + "$ref": "AAAAAAGAlRM+J2Z5suI=" + }, + "model": { + "$ref": "AAAAAAGAlRM+J2Z34W8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1745, + "top": 1374, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlRM+J2Z5suI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "tail": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "lineStyle": 1, + "points": "1649:1320;1855:1415", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlRM+J2Z6fJM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlRM+J2Z74uU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlRM+J2Z8R/A=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlTkfofuodyI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlTkfofupAKs=", + "_parent": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "model": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlTkfofuq9Y4=", + "_parent": { + "$ref": "AAAAAAGAlTkfofupAKs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": 992, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTkfovurY88=", + "_parent": { + "$ref": "AAAAAAGAlTkfofupAKs=" + }, + "font": "Arial;13;1", + "left": 1157, + "top": 1263, + "width": 57.8017578125, + "height": 13, + "text": "Statistics" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTkfovusFz0=", + "_parent": { + "$ref": "AAAAAAGAlTkfofupAKs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": 992, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTkfovutY9w=", + "_parent": { + "$ref": "AAAAAAGAlTkfofupAKs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": 992, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1152, + "top": 1256, + "width": 67.8017578125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTkfofuq9Y4=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlTkfovurY88=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlTkfovusFz0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTkfovutY9w=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlTkfovuu92c=", + "_parent": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "model": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "font": "Arial;13;0", + "left": 1152, + "top": 1281, + "width": 67.8017578125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlTkfovuvk+I=", + "_parent": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "model": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "font": "Arial;13;0", + "left": 1152, + "top": 1291, + "width": 67.8017578125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlTkfovuwTzQ=", + "_parent": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "model": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": 496, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlTkfovuxnV4=", + "_parent": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "model": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": 496, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1152, + "top": 1256, + "width": 67.8017578125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlTkfofupAKs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlTkfovuu92c=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlTkfovuvk+I=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlTkfovuwTzQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlTkfovuxnV4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlTlTRf12RvY=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlTlTRf13gzQ=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "model": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlTlTRf14vTk=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf13gzQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 864, + "top": 464, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTlTRf15sYU=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf13gzQ=" + }, + "font": "Arial;13;1", + "left": 1725, + "top": 1135, + "width": 62.86083984375, + "height": 13, + "text": "Trade" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTlTRf16m7Y=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf13gzQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 864, + "top": 464, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTlTRf17lYM=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf13gzQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 864, + "top": 464, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1720, + "top": 1128, + "width": 72.86083984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTlTRf14vTk=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlTlTRf15sYU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlTlTRf16m7Y=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTlTRf17lYM=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlTlTRf18/vE=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "model": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "font": "Arial;13;0", + "left": 1720, + "top": 1153, + "width": 72.86083984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlTlTRv197u0=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "model": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "font": "Arial;13;0", + "left": 1720, + "top": 1163, + "width": 72.86083984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlTlTRv1+Zlc=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "model": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 432, + "top": 232, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlTlTRv1/okc=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "model": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 432, + "top": 232, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1720, + "top": 1128, + "width": 72.86083984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlTlTRf13gzQ=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlTlTRf18/vE=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlTlTRv197u0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlTlTRv1+Zlc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlTlTRv1/okc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlTqLXhUS1aw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlTqLXhUTpkw=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "model": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlTqLXhUU28k=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUTpkw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 432, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTqLXhUVdg0=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUTpkw=" + }, + "font": "Arial;13;1", + "left": 1805, + "top": 1079, + "width": 73.68994140625, + "height": 13, + "text": "Backtesting" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTqLXhUWGPU=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUTpkw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 432, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTqLXhUXzv4=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUTpkw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 832, + "top": 432, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1800, + "top": 1072, + "width": 83.68994140625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTqLXhUU28k=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlTqLXhUVdg0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlTqLXhUWGPU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTqLXhUXzv4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlTqLXhUYROs=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "model": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "font": "Arial;13;0", + "left": 1800, + "top": 1097, + "width": 83.68994140625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlTqLXhUZ8Wc=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "model": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "font": "Arial;13;0", + "left": 1800, + "top": 1107, + "width": 83.68994140625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlTqLXhUaOIE=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "model": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 416, + "top": 216, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlTqLXhUbFJA=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "model": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 416, + "top": 216, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1800, + "top": 1072, + "width": 83.68994140625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlTqLXhUTpkw=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlTqLXhUYROs=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlTqLXhUZ8Wc=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlTqLXhUaOIE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlTqLXhUbFJA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlTsU1xtzkxQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlTsU1xt0ci8=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "model": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlTsU1xt11Cw=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt0ci8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1808, + "top": -48, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTsU1xt2TGU=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt0ci8=" + }, + "font": "Arial;13;1", + "left": 2005, + "top": 959, + "width": 128.99072265625, + "height": 13, + "text": "Indicators" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTsU1xt3+Qs=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt0ci8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1808, + "top": -48, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlTsU1xt46H8=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt0ci8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1808, + "top": -48, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2000, + "top": 952, + "width": 138.99072265625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTsU1xt11Cw=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlTsU1xt2TGU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlTsU1xt3+Qs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTsU1xt46H8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlTsU1xt5K1E=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "model": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlZgIO2Z79Ac=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt5K1E=" + }, + "model": { + "$ref": "AAAAAAGAlZgH+WZvuek=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 982, + "width": 128.99072265625, + "height": 13, + "text": "-indicator_list", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlaVzOajGHBs=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt5K1E=" + }, + "model": { + "$ref": "AAAAAAGAlaVzK6i6DOI=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 997, + "width": 128.99072265625, + "height": 13, + "text": "-indicator_types", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2000, + "top": 977, + "width": 138.99072265625, + "height": 38 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlTsU1xt6JF8=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "model": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZn3+YkTHZU=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlZn364kHgE4=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1020, + "width": 128.99072265625, + "height": 13, + "text": "+create_indicator()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZxMPZcN18Y=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlZxMLpcBNJs=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1035, + "width": 128.99072265625, + "height": 13, + "text": "+initialize_indicator()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZp+i5AQnCo=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlZp+fJAEI0M=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1050, + "width": 128.99072265625, + "height": 13, + "text": "+update_indicator()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZ878bgGF2g=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlZ874bf6dfs=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1065, + "width": 128.99072265625, + "height": 13, + "text": "+get_indicator_data()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlaX+Z7TUl5o=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlaX+WLTITpQ=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1080, + "width": 128.99072265625, + "height": 13, + "text": "+get_indicator_types()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlax3K19AJHQ=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlax3HV80v/A=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1095, + "width": 128.99072265625, + "height": 13, + "text": "+submit_new_i()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlcP53En5BKY=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "model": { + "$ref": "AAAAAAGAlcP5zkntePQ=" + }, + "font": "Arial;13;0", + "left": 2005, + "top": 1110, + "width": 128.99072265625, + "height": 13, + "text": "+add_to_list()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2000, + "top": 1015, + "width": 138.99072265625, + "height": 113 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlTsU2Bt7+nY=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "model": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 904, + "top": -24, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlTsU2Bt85rQ=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "model": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 904, + "top": -24, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2000, + "top": 952, + "width": 138.99072265625, + "height": 176, + "nameCompartment": { + "$ref": "AAAAAAGAlTsU1xt0ci8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlTsU1xt5K1E=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlTsU1xt6JF8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlTsU2Bt7+nY=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlTsU2Bt85rQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlTyXiLPi788=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTyXiLPgx5Y=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTyXiLPjW8k=", + "_parent": { + "$ref": "AAAAAAGAlTyXiLPi788=" + }, + "model": { + "$ref": "AAAAAAGAlTyXiLPgx5Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1834, + "top": 1277, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlTyXiLPi788=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTyXiLPkftA=", + "_parent": { + "$ref": "AAAAAAGAlTyXiLPi788=" + }, + "model": { + "$ref": "AAAAAAGAlTyXiLPgx5Y=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1848, + "top": 1271, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlTyXiLPi788=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTyXiLPlzMM=", + "_parent": { + "$ref": "AAAAAAGAlTyXiLPi788=" + }, + "model": { + "$ref": "AAAAAAGAlTyXiLPgx5Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1807, + "top": 1290, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlTyXiLPi788=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "tail": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "lineStyle": 1, + "points": "1766:1173;1876:1407", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlTyXiLPjW8k=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTyXiLPkftA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTyXiLPlzMM=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlTzYE8X+0nA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTzYE8X8Jlg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTzYE8X/4e8=", + "_parent": { + "$ref": "AAAAAAGAlTzYE8X+0nA=" + }, + "model": { + "$ref": "AAAAAAGAlTzYE8X8Jlg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1878, + "top": 1253, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlTzYE8X+0nA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTzYE8YAaso=", + "_parent": { + "$ref": "AAAAAAGAlTzYE8X+0nA=" + }, + "model": { + "$ref": "AAAAAAGAlTzYE8X8Jlg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1893, + "top": 1251, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlTzYE8X+0nA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTzYE8YBAZ8=", + "_parent": { + "$ref": "AAAAAAGAlTzYE8X+0nA=" + }, + "model": { + "$ref": "AAAAAAGAlTzYE8X8Jlg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1849, + "top": 1258, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlTzYE8X+0nA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "tail": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "lineStyle": 1, + "points": "1844:1117;1884:1407", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlTzYE8X/4e8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTzYE8YAaso=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTzYE8YBAZ8=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlTz1lM6X9pg=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlTz1lM6VeiU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTz1lM6YDsc=", + "_parent": { + "$ref": "AAAAAAGAlTz1lM6X9pg=" + }, + "model": { + "$ref": "AAAAAAGAlTz1lM6VeiU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1975, + "top": 1267, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlTz1lM6X9pg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTz1lM6ZVf8=", + "_parent": { + "$ref": "AAAAAAGAlTz1lM6X9pg=" + }, + "model": { + "$ref": "AAAAAAGAlTz1lM6VeiU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1989, + "top": 1273, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlTz1lM6X9pg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlTz1lM6aSIo=", + "_parent": { + "$ref": "AAAAAAGAlTz1lM6X9pg=" + }, + "model": { + "$ref": "AAAAAAGAlTz1lM6VeiU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1948, + "top": 1254, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlTz1lM6X9pg=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlOVtD89PdYQ=" + }, + "tail": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "lineStyle": 1, + "points": "2027:1128;1898:1407", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlTz1lM6YDsc=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlTz1lM6ZVf8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlTz1lM6aSIo=" + } + }, + { + "_type": "UMLInterfaceView", + "_id": "AAAAAAGAlUGOetAKJ9M=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlUGOe9ALbuc=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "model": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlUGOe9AM3VA=", + "_parent": { + "$ref": "AAAAAAGAlUGOe9ALbuc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 1312, + "width": 64.32080078125, + "height": 13, + "text": "«interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUGOe9AN3i0=", + "_parent": { + "$ref": "AAAAAAGAlUGOe9ALbuc=" + }, + "font": "Arial;13;1", + "left": 917, + "top": 902, + "width": 107.681640625, + "height": 13, + "text": "Exchange_server" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUGOe9AOyYU=", + "_parent": { + "$ref": "AAAAAAGAlUGOe9ALbuc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 1312, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUGOe9APaFw=", + "_parent": { + "$ref": "AAAAAAGAlUGOe9ALbuc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 1312, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 912, + "top": 895, + "width": 117.681640625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUGOe9AM3VA=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlUGOe9AN3i0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlUGOe9AOyYU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUGOe9APaFw=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlUGOe9AQKQ8=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "model": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 168, + "top": 656, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlUGOe9ARLVw=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "model": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 168, + "top": 656, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlUGOe9ASccA=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "model": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 168, + "top": 656, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlUGOe9ATwSg=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "model": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 168, + "top": 656, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 912, + "top": 872, + "width": 117.681640625, + "height": 49, + "stereotypeDisplay": "icon", + "nameCompartment": { + "$ref": "AAAAAAGAlUGOe9ALbuc=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGAlUGOe9AQKQ8=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlUGOe9ARLVw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlUGOe9ASccA=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlUGOe9ATwSg=" + } + }, + { + "_type": "UMLInterfaceView", + "_id": "AAAAAAGAlUI9x9WfNp0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlUI9x9Wgs0E=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "model": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlUI9yNWhqXo=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9Wgs0E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": 1552, + "width": 64.32080078125, + "height": 13, + "text": "«interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUI9yNWiNII=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9Wgs0E=" + }, + "font": "Arial;13;1", + "left": 917, + "top": 1006, + "width": 81.66259765625, + "height": 13, + "text": "Local_Server" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUI9yNWjs5s=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9Wgs0E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": 1552, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUI9yNWkepI=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9Wgs0E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": 1552, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 912, + "top": 999, + "width": 91.66259765625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUI9yNWhqXo=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlUI9yNWiNII=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlUI9yNWjs5s=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUI9yNWkepI=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlUI9yNWlabc=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "model": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": 776, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlUI9yNWm0tg=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "model": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": 776, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlUI9yNWnf5M=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "model": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": 776, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlUI9yNWoMB0=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "model": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": 776, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 912, + "top": 976, + "width": 91.66259765625, + "height": 49, + "stereotypeDisplay": "icon", + "nameCompartment": { + "$ref": "AAAAAAGAlUI9x9Wgs0E=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGAlUI9yNWlabc=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlUI9yNWm0tg=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlUI9yNWnf5M=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlUI9yNWoMB0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlUKJqdyuF7g=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlUKJqtyvPEs=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "model": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlUKJqtyw01o=", + "_parent": { + "$ref": "AAAAAAGAlUKJqtyvPEs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 1328, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUKJqtyxm80=", + "_parent": { + "$ref": "AAAAAAGAlUKJqtyvPEs=" + }, + "font": "Arial;13;1", + "left": 1125, + "top": 967, + "width": 200.53515625, + "height": 13, + "text": "Cumunication" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUKJqtyyFIQ=", + "_parent": { + "$ref": "AAAAAAGAlUKJqtyvPEs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 1328, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUKJqtyzCu0=", + "_parent": { + "$ref": "AAAAAAGAlUKJqtyvPEs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 1328, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1120, + "top": 960, + "width": 210.53515625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUKJqtyw01o=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlUKJqtyxm80=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlUKJqtyyFIQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUKJqtyzCu0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlUKJqty0UFU=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "model": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "font": "Arial;13;0", + "left": 1120, + "top": 985, + "width": 210.53515625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlUKJqty1Q28=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "model": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlcMIxDBNj/Q=", + "_parent": { + "$ref": "AAAAAAGAlUKJqty1Q28=" + }, + "model": { + "$ref": "AAAAAAGAlcMItTBB6JM=" + }, + "font": "Arial;13;0", + "left": 1125, + "top": 1000, + "width": 200.53515625, + "height": 13, + "text": "+indicator_update_msg_received()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1120, + "top": 995, + "width": 210.53515625, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlUKJqty2Grw=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "model": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 664, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlUKJqty3iYM=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "model": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 664, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1120, + "top": 960, + "width": 210.53515625, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGAlUKJqtyvPEs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlUKJqty0UFU=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlUKJqty1Q28=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlUKJqty2Grw=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlUKJqty3iYM=" + } + }, + { + "_type": "UMLInterfaceView", + "_id": "AAAAAAGAlUQhahEIKkE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlUQhahEJjos=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "model": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlUQhahEKrRI=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEJjos=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 1408, + "width": 64.32080078125, + "height": 13, + "text": "«interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUQhahEL9Ws=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEJjos=" + }, + "font": "Arial;13;1", + "left": 725, + "top": 942, + "width": 119.20263671875, + "height": 13, + "text": "Server_Connection" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUQhahEMCsQ=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEJjos=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 1408, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlUQhahENMPo=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEJjos=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 544, + "top": 1408, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 720, + "top": 935, + "width": 129.20263671875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUQhahEKrRI=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlUQhahEL9Ws=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlUQhahEMCsQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUQhahENMPo=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlUQhahEOIKo=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "model": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 704, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlUQhahEPIz4=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "model": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 704, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlUQhaxEQFHQ=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "model": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 704, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlUQhaxERC6g=", + "_parent": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "model": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 704, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 720, + "top": 912, + "width": 129.20263671875, + "height": 49, + "stereotypeDisplay": "icon", + "nameCompartment": { + "$ref": "AAAAAAGAlUQhahEJjos=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGAlUQhahEOIKo=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlUQhahEPIz4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlUQhaxEQFHQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlUQhaxERC6g=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlUZGOEXrRmE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUZGOEXplAE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUZGOEXsxBk=", + "_parent": { + "$ref": "AAAAAAGAlUZGOEXrRmE=" + }, + "model": { + "$ref": "AAAAAAGAlUZGOEXplAE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 874, + "top": 979, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUZGOEXrRmE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUZGOEXt3Hc=", + "_parent": { + "$ref": "AAAAAAGAlUZGOEXrRmE=" + }, + "model": { + "$ref": "AAAAAAGAlUZGOEXplAE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 869, + "top": 993, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUZGOEXrRmE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUZGOEXueoo=", + "_parent": { + "$ref": "AAAAAAGAlUZGOEXrRmE=" + }, + "model": { + "$ref": "AAAAAAGAlUZGOEXplAE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 885, + "top": 950, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUZGOEXrRmE=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "tail": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "lineStyle": 1, + "points": "911:983;849:960", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlUZGOEXsxBk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUZGOEXt3Hc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUZGOEXueoo=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlUZtyk0KTDw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUZtyk0I7mg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUZtyk0LvFQ=", + "_parent": { + "$ref": "AAAAAAGAlUZtyk0KTDw=" + }, + "model": { + "$ref": "AAAAAAGAlUZtyk0I7mg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 883, + "top": 923, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUZtyk0KTDw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUZtyk0Ma+4=", + "_parent": { + "$ref": "AAAAAAGAlUZtyk0KTDw=" + }, + "model": { + "$ref": "AAAAAAGAlUZtyk0I7mg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 886, + "top": 938, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUZtyk0KTDw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUZtyk0NrCc=", + "_parent": { + "$ref": "AAAAAAGAlUZtyk0KTDw=" + }, + "model": { + "$ref": "AAAAAAGAlUZtyk0I7mg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 876, + "top": 894, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUZtyk0KTDw=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlUQhahEIKkE=" + }, + "tail": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "lineStyle": 1, + "points": "911:909;849:922", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlUZtyk0LvFQ=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUZtyk0Ma+4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUZtyk0NrCc=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlUcXkVxhhWI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxdL6c=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxixqg=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxdL6c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1060, + "top": 974, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxjge0=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxdL6c=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1059, + "top": 959, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxke9A=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxdL6c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1061, + "top": 1003, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxlzSA=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxe4Jg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1029, + "top": 975, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxmjZw=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxe4Jg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1031, + "top": 962, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxnGUs=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxe4Jg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1026, + "top": 1003, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxoKc8=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxfAyc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1092, + "top": 973, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxpNOs=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxfAyc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1089, + "top": 959, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcXkVxqknE=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxfAyc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1097, + "top": 1000, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlUcXkVxr4Hs=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxe4Jg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": 704, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlUcXkVxsIPk=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxhhWI=" + }, + "model": { + "$ref": "AAAAAAGAlUcXkVxfAyc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": 704, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "tail": { + "$ref": "AAAAAAGAlUI9x9WfNp0=" + }, + "lineStyle": 1, + "points": "1004:998;1119:993", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlUcXkVxixqg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUcXkVxjge0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUcXkVxke9A=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlUcXkVxlzSA=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlUcXkVxmjZw=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlUcXkVxnGUs=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlUcXkVxoKc8=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlUcXkVxpNOs=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlUcXkVxqknE=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlUcXkVxr4Hs=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlUcXkVxsIPk=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlUcybGKPAQ8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKL0UA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKQj70=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKL0UA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1092, + "top": 917, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKRgcU=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKL0UA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1097, + "top": 903, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKSRwI=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKL0UA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1081, + "top": 946, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKTSgg=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKM+ME=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1059, + "top": 906, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKUDGY=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKM+ME=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1066, + "top": 894, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKVgIw=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKM+ME=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1046, + "top": 931, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKWL3U=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKNvZY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1124, + "top": 930, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKXLXw=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKNvZY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1126, + "top": 916, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUcybGKY8Y0=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKNvZY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1119, + "top": 957, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlUcybGKZLIs=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKM+ME=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": 704, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlUcybWKaQFU=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKPAQ8=" + }, + "model": { + "$ref": "AAAAAAGAlUcybGKNvZY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": 704, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "tail": { + "$ref": "AAAAAAGAlUGOetAKJ9M=" + }, + "lineStyle": 1, + "points": "1030:918;1144:959", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlUcybGKQj70=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUcybGKRgcU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUcybGKSRwI=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlUcybGKTSgg=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlUcybGKUDGY=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlUcybGKVgIw=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlUcybGKWL3U=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlUcybGKXLXw=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlUcybGKY8Y0=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlUcybGKZLIs=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlUcybWKaQFU=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlUdTbGyzRRE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyvqOM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy0CE4=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyvqOM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1364, + "top": 1004, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy1kKQ=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyvqOM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1368, + "top": 990, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy2ftM=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyvqOM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1357, + "top": 1033, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy3f7w=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGywRtk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1359, + "top": 1003, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy4Tlg=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGywRtk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1365, + "top": 990, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy5YoA=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGywRtk=" + }, + "font": "Arial;13;0", + "left": 1345, + "top": 1028, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy6N7M=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyxjgQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1369, + "top": 1005, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy7EI4=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyxjgQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1370, + "top": 992, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlUdTbGy8REY=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyxjgQ=" + }, + "font": "Arial;13;0", + "left": 1363, + "top": 1033, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlUdTbGy9yMw=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGywRtk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 512, + "top": 656, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlUdTbGy+sRQ=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyzRRE=" + }, + "model": { + "$ref": "AAAAAAGAlUdTbGyxjgQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 512, + "top": 656, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "lineStyle": 1, + "points": "1331:1017;1391:1033", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlUdTbGy0CE4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlUdTbGy1kKQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlUdTbGy2ftM=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlUdTbGy3f7w=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlUdTbGy4Tlg=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlUdTbGy5YoA=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlUdTbGy6N7M=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlUdTbGy7EI4=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlUdTbGy8REY=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlUdTbGy9yMw=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlUdTbGy+sRQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlU5WrJfGiJI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlU5WrJfEnsg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlU5WrJfHfLU=", + "_parent": { + "$ref": "AAAAAAGAlU5WrJfGiJI=" + }, + "model": { + "$ref": "AAAAAAGAlU5WrJfEnsg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1196, + "top": 1500, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlU5WrJfGiJI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlU5WrJfIyUE=", + "_parent": { + "$ref": "AAAAAAGAlU5WrJfGiJI=" + }, + "model": { + "$ref": "AAAAAAGAlU5WrJfEnsg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1211, + "top": 1500, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlU5WrJfGiJI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlU5WrJfJQgA=", + "_parent": { + "$ref": "AAAAAAGAlU5WrJfGiJI=" + }, + "model": { + "$ref": "AAAAAAGAlU5WrJfEnsg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1167, + "top": 1499, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlU5WrJfGiJI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "lineStyle": 1, + "points": "1185:1301;1180:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlU5WrJfHfLU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlU5WrJfIyUE=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlU5WrJfJQgA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlU+ijhOm5cs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlU+ijhOnZ+Q=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "model": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlU+ijhOo58s=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOnZ+Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 944, + "top": 784, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlU+ijhOptv4=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOnZ+Q=" + }, + "font": "Arial;13;1", + "left": 1021, + "top": 1231, + "width": 108.04345703125, + "height": 13, + "text": "Indicator Output" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlU+ijhOqMQU=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOnZ+Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 944, + "top": 784, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlU+ijhOrL0A=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOnZ+Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 944, + "top": 784, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1016, + "top": 1224, + "width": 118.04345703125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlU+ijhOo58s=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlU+ijhOptv4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlU+ijhOqMQU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlU+ijhOrL0A=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlU+ijhOs+/8=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "model": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAlYUqi9HYjzI=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOs+/8=" + }, + "model": { + "$ref": "AAAAAAGAlYUqd9HDP+I=" + }, + "font": "Arial;13;0", + "left": 1021, + "top": 1254, + "width": 108.04345703125, + "height": 13, + "text": "-legend", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1016, + "top": 1249, + "width": 118.04345703125, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlU+ijhOtj7g=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "model": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlaPCaWaa6cg=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOtj7g=" + }, + "model": { + "$ref": "AAAAAAGAlaPCWGaFOto=" + }, + "font": "Arial;13;0", + "left": 1021, + "top": 1277, + "width": 108.04345703125, + "height": 13, + "text": "+create_legend()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlaRbnnJZ+R8=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOtj7g=" + }, + "model": { + "$ref": "AAAAAAGAlaRbjHJEQRw=" + }, + "font": "Arial;13;0", + "left": 1021, + "top": 1292, + "width": 108.04345703125, + "height": 13, + "text": "+set_legend_text()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1016, + "top": 1272, + "width": 118.04345703125, + "height": 38 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlU+ijhOuedc=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "model": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 472, + "top": 392, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlU+ijhOveQw=", + "_parent": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "model": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 472, + "top": 392, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1016, + "top": 1224, + "width": 118.04345703125, + "height": 86, + "nameCompartment": { + "$ref": "AAAAAAGAlU+ijhOnZ+Q=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlU+ijhOs+/8=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlU+ijhOtj7g=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlU+ijhOuedc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlU+ijhOveQw=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlVABNCiJHNw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlVABNCiHdVc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlVABNCiKFGk=", + "_parent": { + "$ref": "AAAAAAGAlVABNCiJHNw=" + }, + "model": { + "$ref": "AAAAAAGAlVABNCiHdVc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1143, + "top": 1500, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlVABNCiJHNw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlVABNSiLfUQ=", + "_parent": { + "$ref": "AAAAAAGAlVABNCiJHNw=" + }, + "model": { + "$ref": "AAAAAAGAlVABNCiHdVc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1158, + "top": 1497, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlVABNCiJHNw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlVABNSiMRQQ=", + "_parent": { + "$ref": "AAAAAAGAlVABNCiJHNw=" + }, + "model": { + "$ref": "AAAAAAGAlVABNCiHdVc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1114, + "top": 1507, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlVABNCiJHNw=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAkl3075yJ860=" + }, + "tail": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "lineStyle": 1, + "points": "1084:1310;1175:1711", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlVABNCiKFGk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlVABNSiLfUQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlVABNSiMRQQ=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlV0ISxInIEA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlV0ISxIo12A=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "model": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlV0ISxIpx0k=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIo12A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 1552, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV0ISxIqf4E=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIo12A=" + }, + "font": "Arial;13;1", + "left": 2557, + "top": 951, + "width": 80.57080078125, + "height": 13, + "text": "Indicator" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV0ISxIrFhU=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIo12A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 1552, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV0ITBIsjhU=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIo12A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 1552, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2552, + "top": 944, + "width": 90.57080078125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV0ISxIpx0k=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlV0ISxIqf4E=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlV0ISxIrFhU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV0ITBIsjhU=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlV0ITBIt82A=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "model": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "font": "Arial;13;0", + "left": 2552, + "top": 969, + "width": 90.57080078125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlV0ITBIu8eg=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "model": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZREmy2yvIw=", + "_parent": { + "$ref": "AAAAAAGAlV0ITBIu8eg=" + }, + "model": { + "$ref": "AAAAAAGAlZREiS2dLos=" + }, + "font": "Arial;13;0", + "left": 2557, + "top": 984, + "width": 80.57080078125, + "height": 13, + "text": "+create()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZ6DIqDtm/I=", + "_parent": { + "$ref": "AAAAAAGAlV0ITBIu8eg=" + }, + "model": { + "$ref": "AAAAAAGAlZ6DEaDYNp0=" + }, + "font": "Arial;13;0", + "left": 2557, + "top": 999, + "width": 80.57080078125, + "height": 13, + "text": "+initialize()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAlZUN9UNM8Z0=", + "_parent": { + "$ref": "AAAAAAGAlV0ITBIu8eg=" + }, + "model": { + "$ref": "AAAAAAGAlZUN40M3pm4=" + }, + "font": "Arial;13;0", + "left": 2557, + "top": 1014, + "width": 80.57080078125, + "height": 13, + "text": "+update()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 2552, + "top": 979, + "width": 90.57080078125, + "height": 53 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlV0ITBIvbx8=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "model": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 568, + "top": 776, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlV0ITBIwmio=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "model": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 568, + "top": 776, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2552, + "top": 944, + "width": 90.57080078125, + "height": 88, + "nameCompartment": { + "$ref": "AAAAAAGAlV0ISxIo12A=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlV0ITBIt82A=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlV0ITBIu8eg=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlV0ITBIvbx8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlV0ITBIwmio=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlV1qOCx82c0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlV1qOCx93CU=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "model": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlV1qOCx+Lx0=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx93CU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 976, + "top": 912, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV1qOCx/cVY=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx93CU=" + }, + "font": "Arial;13;1", + "left": 2269, + "top": 759, + "width": 41.919921875, + "height": 13, + "text": "RSI" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV1qOCyAguc=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx93CU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 976, + "top": 912, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV1qOCyBODE=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx93CU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 976, + "top": 912, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2264, + "top": 752, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV1qOCx+Lx0=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlV1qOCx/cVY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlV1qOCyAguc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV1qOCyBODE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlV1qOCyCoog=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "model": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 777, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlV1qOCyDo9A=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "model": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 787, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlV1qOCyEX74=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "model": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 488, + "top": 456, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlV1qOSyFsZY=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "model": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 488, + "top": 456, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2264, + "top": 752, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlV1qOCx93CU=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlV1qOCyCoog=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlV1qOCyDo9A=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlV1qOCyEX74=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlV1qOSyFsZY=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlV6NEGdsyKA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV6NEGdqw2E=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV6NEGdt6yc=", + "_parent": { + "$ref": "AAAAAAGAlV6NEGdsyKA=" + }, + "model": { + "$ref": "AAAAAAGAlV6NEGdqw2E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2441, + "top": 855, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlV6NEGdsyKA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV6NEGdurP8=", + "_parent": { + "$ref": "AAAAAAGAlV6NEGdsyKA=" + }, + "model": { + "$ref": "AAAAAAGAlV6NEGdqw2E=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2450, + "top": 843, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlV6NEGdsyKA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV6NEGdvgbY=", + "_parent": { + "$ref": "AAAAAAGAlV6NEGdsyKA=" + }, + "model": { + "$ref": "AAAAAAGAlV6NEGdqw2E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2424, + "top": 880, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlV6NEGdsyKA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "lineStyle": 1, + "points": "2316:793;2551:956", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlV6NEGdt6yc=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV6NEGdurP8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV6NEGdvgbY=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlV6uaHCf2ow=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlV6uaHCgu/g=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "model": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlV6uaHCh7ZU=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCgu/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1072, + "top": 1280, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV6uaHCiM4U=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCgu/g=" + }, + "font": "Arial;13;1", + "left": 2269, + "top": 839, + "width": 41.919921875, + "height": 13, + "text": "SMA" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV6uaHCjfT8=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCgu/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1072, + "top": 1280, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV6uaHCk7ow=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCgu/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1072, + "top": 1280, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2264, + "top": 832, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV6uaHCh7ZU=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlV6uaHCiM4U=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlV6uaHCjfT8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV6uaHCk7ow=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlV6uaHCl+dI=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "model": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 857, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlV6uaHCmNXU=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "model": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 867, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlV6uaHCnu5I=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "model": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 536, + "top": 640, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlV6uaHCo6yU=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "model": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 536, + "top": 640, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2264, + "top": 832, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlV6uaHCgu/g=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlV6uaHCl+dI=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlV6uaHCmNXU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlV6uaHCnu5I=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlV6uaHCo6yU=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlV7bC3kGBl0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV7bC3kE9Hg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV7bC3kHR8s=", + "_parent": { + "$ref": "AAAAAAGAlV7bC3kGBl0=" + }, + "model": { + "$ref": "AAAAAAGAlV7bC3kE9Hg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2438, + "top": 897, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlV7bC3kGBl0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV7bC3kICkY=", + "_parent": { + "$ref": "AAAAAAGAlV7bC3kGBl0=" + }, + "model": { + "$ref": "AAAAAAGAlV7bC3kE9Hg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2444, + "top": 883, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlV7bC3kGBl0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV7bC3kJ5Oo=", + "_parent": { + "$ref": "AAAAAAGAlV7bC3kGBl0=" + }, + "model": { + "$ref": "AAAAAAGAlV7bC3kE9Hg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2427, + "top": 924, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlV7bC3kGBl0=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "lineStyle": 1, + "points": "2316:866;2551:968", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlV7bC3kHR8s=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV7bC3kICkY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV7bC3kJ5Oo=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlV85BI3ktx0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlV85BI3lY/g=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "model": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlV85BI3mifg=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3lY/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1120, + "top": 1504, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV85BI3n+C0=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3lY/g=" + }, + "font": "Arial;13;1", + "left": 2269, + "top": 1007, + "width": 41.919921875, + "height": 13, + "text": "EMA" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV85BI3ocy4=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3lY/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1120, + "top": 1504, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlV85BI3p+kY=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3lY/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1120, + "top": 1504, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2264, + "top": 1000, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV85BI3mifg=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlV85BI3n+C0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlV85BI3ocy4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV85BI3p+kY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlV85BI3qosk=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "model": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 1025, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlV85BY3rti0=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "model": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 1035, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlV85BY3szww=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "model": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 560, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlV85BY3t5wU=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "model": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 560, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2264, + "top": 1000, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlV85BI3lY/g=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlV85BI3qosk=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlV85BY3rti0=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlV85BY3szww=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlV85BY3t5wU=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlV/yh5ziO0o=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlV/yh5zgKGQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV/yh5zjmv0=", + "_parent": { + "$ref": "AAAAAAGAlV/yh5ziO0o=" + }, + "model": { + "$ref": "AAAAAAGAlV/yh5zgKGQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2431, + "top": 984, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlV/yh5ziO0o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV/yh5zkT7k=", + "_parent": { + "$ref": "AAAAAAGAlV/yh5ziO0o=" + }, + "model": { + "$ref": "AAAAAAGAlV/yh5zgKGQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2429, + "top": 969, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlV/yh5ziO0o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlV/yh5zl1gU=", + "_parent": { + "$ref": "AAAAAAGAlV/yh5ziO0o=" + }, + "model": { + "$ref": "AAAAAAGAlV/yh5zgKGQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2434, + "top": 1013, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlV/yh5ziO0o=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "lineStyle": 1, + "points": "2316:1019;2551:992", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlV/yh5zjmv0=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlV/yh5zkT7k=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlV/yh5zl1gU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlWA8wKXQZFc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlWA8wKXRGCE=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "model": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlWA8wKXSluI=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXRGCE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1077.7509765625, + "top": 800, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWA8wKXTHcs=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXRGCE=" + }, + "font": "Arial;13;1", + "left": 2229, + "top": 647, + "width": 113.42626953125, + "height": 13, + "text": "Linear Regression" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWA8wKXUmyw=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXRGCE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1077.7509765625, + "top": 800, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWA8wKXVPjM=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXRGCE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1077.7509765625, + "top": 800, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2224, + "top": 640, + "width": 123.42626953125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWA8wKXSluI=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlWA8wKXTHcs=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlWA8wKXUmyw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWA8wKXVPjM=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlWA8wKXW/50=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "model": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "font": "Arial;13;0", + "left": 2224, + "top": 665, + "width": 123.42626953125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlWA8waXXvnU=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "model": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "font": "Arial;13;0", + "left": 2224, + "top": 675, + "width": 123.42626953125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlWA8waXYv0E=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "model": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 538.87548828125, + "top": 400, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlWA8waXZlAs=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "model": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 538.87548828125, + "top": 400, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2224, + "top": 640, + "width": 123.42626953125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlWA8wKXRGCE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlWA8wKXW/50=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlWA8waXXvnU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlWA8waXYv0E=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlWA8waXZlAs=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlWF/8rl4xQk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlWF/8rl5vqw=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "model": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlWF/87l6fMs=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl5vqw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1104, + "top": 1536, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWF/87l7RvY=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl5vqw=" + }, + "font": "Arial;13;1", + "left": 2269, + "top": 1175, + "width": 45.98876953125, + "height": 13, + "text": "Volume" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWF/87l8Mfg=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl5vqw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1104, + "top": 1536, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWF/87l9mQI=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl5vqw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1104, + "top": 1536, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2264, + "top": 1168, + "width": 55.98876953125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWF/87l6fMs=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlWF/87l7RvY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlWF/87l8Mfg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWF/87l9mQI=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlWF/87l+DeE=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "model": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 1193, + "width": 55.98876953125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlWF/87l//K8=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "model": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 1203, + "width": 55.98876953125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlWF/87mAGFM=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "model": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 552, + "top": 768, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlWF/87mB7oc=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "model": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 552, + "top": 768, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2264, + "top": 1168, + "width": 55.98876953125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlWF/8rl5vqw=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlWF/87l+DeE=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlWF/87l//K8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlWF/87mAGFM=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlWF/87mB7oc=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlWG4yb0+Gow=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlWG4yb0/7U4=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "model": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlWG4yb1AWNE=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0/7U4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1072, + "top": 1488, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWG4yb1BJn8=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0/7U4=" + }, + "font": "Arial;13;1", + "left": 2245, + "top": 1271, + "width": 96.07177734375, + "height": 13, + "text": "Bolenger_Band" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWG4yr1CMnc=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0/7U4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1072, + "top": 1488, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWG4yr1DaFY=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0/7U4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1072, + "top": 1488, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2240, + "top": 1264, + "width": 106.07177734375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWG4yb1AWNE=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlWG4yb1BJn8=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlWG4yr1CMnc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWG4yr1DaFY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlWG4yr1EAwc=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "model": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "font": "Arial;13;0", + "left": 2240, + "top": 1289, + "width": 106.07177734375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlWG4yr1FxyE=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "model": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "font": "Arial;13;0", + "left": 2240, + "top": 1299, + "width": 106.07177734375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlWG4yr1GjLE=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "model": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 536, + "top": 744, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlWG4yr1HWds=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "model": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 536, + "top": 744, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2240, + "top": 1264, + "width": 106.07177734375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlWG4yb0/7U4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlWG4yr1EAwc=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlWG4yr1FxyE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlWG4yr1GjLE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlWG4yr1HWds=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlWKC8NOiuDE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlWKC8NOjWHU=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "model": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlWKC8NOkn+s=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOjWHU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1157.7509765625, + "top": 1376, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWKC8NOlcjk=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOjWHU=" + }, + "font": "Arial;13;1", + "left": 2269, + "top": 935, + "width": 41.919921875, + "height": 13, + "text": "MACD" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWKC8NOmfvY=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOjWHU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1157.7509765625, + "top": 1376, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWKC8NOnqXk=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOjWHU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1157.7509765625, + "top": 1376, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2264, + "top": 928, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWKC8NOkn+s=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlWKC8NOlcjk=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlWKC8NOmfvY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWKC8NOnqXk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlWKC8NOoR2s=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "model": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 953, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlWKC8NOpjZM=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "model": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 963, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlWKC8NOqDbc=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "model": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 578.87548828125, + "top": 688, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlWKC8dOr6Qg=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "model": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 578.87548828125, + "top": 688, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2264, + "top": 928, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlWKC8NOjWHU=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlWKC8NOoR2s=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlWKC8NOpjZM=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlWKC8NOqDbc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlWKC8dOr6Qg=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWKDitUIhR8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUErpw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUJXzg=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUErpw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2195, + "top": 965, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUK54M=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUErpw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2189, + "top": 951, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitULi9M=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUErpw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2206, + "top": 992, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUMuW8=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUF7gU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2157, + "top": 980, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUNrOQ=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUF7gU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2154, + "top": 967, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUOpzM=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUF7gU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2163, + "top": 1007, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUPTwE=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUGCjY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2233, + "top": 949, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitUQkRg=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUGCjY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2226, + "top": 938, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWKDitURON4=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUGCjY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2247, + "top": 973, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWKDi9USb2w=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUF7gU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWKDi9UTiPM=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUIhR8=" + }, + "model": { + "$ref": "AAAAAAGAlWKDitUGCjY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "tail": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "lineStyle": 1, + "points": "2139:1010;2263:960", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWKDitUJXzg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWKDitUK54M=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWKDitULi9M=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWKDitUMuW8=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWKDitUNrOQ=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWKDitUOpzM=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWKDitUPTwE=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWKDitUQkRg=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWKDitURON4=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWKDi9USb2w=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWKDi9UTiPM=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWLLT+iThk4=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iPDbY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLT+iUjP4=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iPDbY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2202, + "top": 1037, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLT+iV//o=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iPDbY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2203, + "top": 1052, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLT+iWwpQ=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iPDbY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2199, + "top": 1008, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLUOiXT8Y=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iQCBs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2238, + "top": 1035, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLUOiYNuc=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iQCBs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2237, + "top": 1048, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLUOiZ2aA=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iQCBs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2240, + "top": 1007, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLUOia3wE=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iRyu0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2166, + "top": 1040, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLUOibsqc=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iRyu0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2169, + "top": 1053, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWLLUOic+3k=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iRyu0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2159, + "top": 1013, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWLLUOidBlY=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iQCBs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWLLUOiefW0=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iThk4=" + }, + "model": { + "$ref": "AAAAAAGAlWLLT+iRyu0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlV85BI3ktx0=" + }, + "lineStyle": 1, + "points": "2263:1024;2139:1034", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWLLT+iUjP4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWLLT+iV//o=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWLLT+iWwpQ=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWLLUOiXT8Y=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWLLUOiYNuc=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWLLUOiZ2aA=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWLLUOia3wE=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWLLUOibsqc=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWLLUOic+3k=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWLLUOidBlY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWLLUOiefW0=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWL3lfiRC14=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiNLMU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiSBbA=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiNLMU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2215, + "top": 878, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiTpHs=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiNLMU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2227, + "top": 888, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiUi0w=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiNLMU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2192, + "top": 859, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiVtj4=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiOD+0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2264, + "top": 820, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiWC1s=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiOD+0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2273, + "top": 830, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiXDW8=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiOD+0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2246, + "top": 799, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiYegE=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiP2cA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2167, + "top": 937, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiZTqs=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiP2cA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2178, + "top": 944, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWL3lfiar2U=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiP2cA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2143, + "top": 923, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWL3lfibNOw=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiOD+0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWL3lficQxI=", + "_parent": { + "$ref": "AAAAAAGAlWL3lfiRC14=" + }, + "model": { + "$ref": "AAAAAAGAlWL3lPiP2cA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlV1qOCx82c0=" + }, + "lineStyle": 1, + "points": "2270:797;2139:954", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWL3lfiSBbA=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWL3lfiTpHs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWL3lfiUi0w=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWL3lfiVtj4=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWL3lfiWC1s=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWL3lfiXDW8=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWL3lfiYegE=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWL3lfiZTqs=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWL3lfiar2U=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWL3lfibNOw=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWL3lficQxI=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWMaqwNsnpg=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNoWn8=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMaqwNt6dE=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNoWn8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2210, + "top": 933, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMaqwNuOrI=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNoWn8=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2220, + "top": 944, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMaqwNviq0=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNoWn8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2191, + "top": 910, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMaqwNw+Ig=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNpR7E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2252, + "top": 898, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMaqwNxf/E=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNpR7E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2259, + "top": 909, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMaqwNyrH4=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNpR7E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2238, + "top": 874, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMarANz/EM=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNqBoA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2168, + "top": 968, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMarAN0Q5s=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNqBoA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2178, + "top": 977, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWMarAN1QfM=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNqBoA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2147, + "top": 950, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWMarAN2X/8=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNpR7E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWMarAN3kXQ=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNsnpg=" + }, + "model": { + "$ref": "AAAAAAGAlWMaqwNqBoA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlV6uaHCf2ow=" + }, + "lineStyle": 1, + "points": "2263:876;2139:980", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWMaqwNt6dE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWMaqwNuOrI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWMaqwNviq0=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWMaqwNw+Ig=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWMaqwNxf/E=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWMaqwNyrH4=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWMarANz/EM=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWMarAN0Q5s=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWMarAN1QfM=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWMarAN2X/8=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWMarAN3kXQ=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWTbMTVnS38=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVjQns=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVou4s=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVjQns=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1744, + "top": 1050, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVp44w=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVjQns=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1744, + "top": 1065, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVqft8=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVjQns=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1743, + "top": 1021, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVrHVM=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVkF44=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1973, + "top": 1049, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVsBSE=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVkF44=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1970, + "top": 1062, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVt4V8=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVkF44=" + }, + "font": "Arial;13;0", + "left": 1974, + "top": 1021, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMTVuaZ0=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVl7r8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1515, + "top": 1053, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMjVvFfg=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVl7r8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1517, + "top": 1067, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTbMjVwrUE=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVl7r8=" + }, + "font": "Arial;13;0", + "left": 1507, + "top": 1026, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWTbMjVxI7s=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVkF44=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWTbMjVyYoo=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVnS38=" + }, + "model": { + "$ref": "AAAAAAGAlWTbMTVl7r8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "lineStyle": 1, + "points": "1999:1040;1489:1045", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWTbMTVou4s=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWTbMTVp44w=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWTbMTVqft8=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWTbMTVrHVM=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWTbMTVsBSE=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWTbMTVt4V8=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWTbMTVuaZ0=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWTbMjVvFfg=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWTbMjVwrUE=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWTbMjVxI7s=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWTbMjVyYoo=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWTohT2HLvk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2DCvk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2IFYE=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2DCvk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1642, + "top": 1078, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2Jjhw=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2DCvk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1640, + "top": 1093, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2KFcg=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2DCvk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1645, + "top": 1049, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2LIz0=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2Ex7A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1771, + "top": 1094, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2M2qE=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2Ex7A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1767, + "top": 1107, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2NxQc=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2Ex7A=" + }, + "font": "Arial;13;0", + "left": 1775, + "top": 1068, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2O3bg=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2FGfo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1513, + "top": 1063, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2PI5Y=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2FGfo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1513, + "top": 1077, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTohT2Q7kY=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2FGfo=" + }, + "font": "Arial;13;0", + "left": 1508, + "top": 1036, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWTohT2RmsI=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2Ex7A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWTohT2SHUQ=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2HLvk=" + }, + "model": { + "$ref": "AAAAAAGAlWTohT2FGfo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlTqLXhUS1aw=" + }, + "lineStyle": 1, + "points": "1799:1089;1489:1052", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWTohT2IFYE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWTohT2Jjhw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWTohT2KFcg=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWTohT2LIz0=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWTohT2M2qE=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWTohT2NxQc=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWTohT2O3bg=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWTohT2PI5Y=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWTohT2Q7kY=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWTohT2RmsI=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWTohT2SHUQ=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWTwt0Kn5rE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0Kjci4=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0Koy6g=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0Kjci4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1599, + "top": 1108, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0KpY+M=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0Kjci4=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1594, + "top": 1122, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0KqTDU=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0Kjci4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1608, + "top": 1079, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0KrdR0=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KkMDI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1689, + "top": 1138, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0Ks2h0=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KkMDI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1683, + "top": 1149, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0KtJ2Y=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KkMDI=" + }, + "font": "Arial;13;0", + "left": 1699, + "top": 1113, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0Ku+zk=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KlHeI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1508, + "top": 1078, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0Kv7Zc=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KlHeI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1506, + "top": 1091, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWTwt0KwmfY=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KlHeI=" + }, + "font": "Arial;13;0", + "left": 1510, + "top": 1050, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWTwt0KxWWY=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KkMDI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWTwt0KyybQ=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kn5rE=" + }, + "model": { + "$ref": "AAAAAAGAlWTwt0KlHeI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlTlTRf12RvY=" + }, + "lineStyle": 1, + "points": "1719:1138;1489:1062", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWTwt0Koy6g=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWTwt0KpY+M=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWTwt0KqTDU=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWTwt0KrdR0=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWTwt0Ks2h0=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWTwt0KtJ2Y=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWTwt0Ku+zk=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWTwt0Kv7Zc=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWTwt0KwmfY=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWTwt0KxWWY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWTwt0KyybQ=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWT4GEhOPLw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhKbNM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhPDvE=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhKbNM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1553, + "top": 1144, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhQiVI=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhKbNM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1544, + "top": 1156, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhRhIM=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhKbNM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1570, + "top": 1119, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhSmTI=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhLA4U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1624, + "top": 1197, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhTHm4=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhLA4U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1614, + "top": 1206, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhUnO0=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhLA4U=" + }, + "font": "Arial;13;0", + "left": 1641, + "top": 1178, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhVURQ=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhMpRo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1481, + "top": 1090, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhW/8E=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhMpRo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1475, + "top": 1102, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT4GEhXUc8=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhMpRo=" + }, + "font": "Arial;13;0", + "left": 1491, + "top": 1065, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWT4GUhYqEY=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhLA4U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWT4GUhZ4V4=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhOPLw=" + }, + "model": { + "$ref": "AAAAAAGAlWT4GEhMpRo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlLtBdcDltiY=" + }, + "lineStyle": 1, + "points": "1654:1207;1470:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWT4GEhPDvE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWT4GEhQiVI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWT4GEhRhIM=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWT4GEhSmTI=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWT4GEhTHm4=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWT4GEhUnO0=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWT4GEhVURQ=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWT4GEhW/8E=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWT4GEhXUc8=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWT4GUhYqEY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWT4GUhZ4V4=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWT/5lACfTE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k/+BrM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lADpVU=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k/+BrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1512, + "top": 1176, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAEQNs=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k/+BrM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1500, + "top": 1184, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAFQM0=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k/+BrM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1537, + "top": 1159, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAG8bM=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k//5Qo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1569, + "top": 1259, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAHAB0=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k//5Qo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1556, + "top": 1265, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAInIY=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k//5Qo=" + }, + "font": "Arial;13;0", + "left": 1591, + "top": 1248, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAJ3YY=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5lAA9S0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1456, + "top": 1092, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lAKM7g=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5lAA9S0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1446, + "top": 1102, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWT/5lALzkw=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5lAA9S0=" + }, + "font": "Arial;13;0", + "left": 1473, + "top": 1073, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWT/5lAM+30=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5k//5Qo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWT/5lANH74=", + "_parent": { + "$ref": "AAAAAAGAlWT/5lACfTE=" + }, + "model": { + "$ref": "AAAAAAGAlWT/5lAA9S0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlRLKTmK43xc=" + }, + "lineStyle": 1, + "points": "1596:1279;1454:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWT/5lADpVU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWT/5lAEQNs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWT/5lAFQM0=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWT/5lAG8bM=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWT/5lAHAB0=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWT/5lAInIY=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWT/5lAJ3YY=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWT/5lAKM7g=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWT/5lALzkw=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWT/5lAM+30=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWT/5lANH74=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWUHaVbJ6IA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbFHFI=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbK+u8=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbFHFI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1482, + "top": 1220, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbLFl8=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbFHFI=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1468, + "top": 1225, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbMVqc=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbFHFI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1511, + "top": 1211, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbNEyk=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbGp9E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1524, + "top": 1348, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbObH8=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbGp9E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1511, + "top": 1350, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbPAtU=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbGp9E=" + }, + "font": "Arial;13;0", + "left": 1549, + "top": 1344, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbQ4BM=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbH1Js=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1440, + "top": 1092, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbRb3w=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbH1Js=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1428, + "top": 1098, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUHaVbS7S4=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbH1Js=" + }, + "font": "Arial;13;0", + "left": 1462, + "top": 1079, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWUHaVbT8YI=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbGp9E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWUHalbUVYI=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbJ6IA=" + }, + "model": { + "$ref": "AAAAAAGAlWUHaVbH1Js=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlRJADlhrEO0=" + }, + "lineStyle": 1, + "points": "1547:1375;1447:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWUHaVbK+u8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWUHaVbLFl8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWUHaVbMVqc=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWUHaVbNEyk=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWUHaVbObH8=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWUHaVbPAtU=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWUHaVbQ4BM=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWUHaVbRb3w=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWUHaVbS7S4=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWUHaVbT8YI=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWUHalbUVYI=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWUe2WaZpd4=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaVJTw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WaaOSM=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaVJTw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1425, + "top": 1264, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WabZNY=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaVJTw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1410, + "top": 1264, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WacX3U=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaVJTw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1454, + "top": 1263, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WadnEA=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaW1c8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1426, + "top": 1439, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WaeUTA=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaW1c8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1413, + "top": 1436, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WafHSg=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaW1c8=" + }, + "font": "Arial;13;0", + "left": 1451, + "top": 1443, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WagPdk=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaX3GI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1424, + "top": 1089, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2WahIZQ=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaX3GI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1410, + "top": 1091, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUe2Waix6U=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaX3GI=" + }, + "font": "Arial;13;0", + "left": 1448, + "top": 1084, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWUe2WajFPY=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaW1c8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWUe2WakyWg=", + "_parent": { + "$ref": "AAAAAAGAlWUe2WaZpd4=" + }, + "model": { + "$ref": "AAAAAAGAlWUe2GaX3GI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlRGzZE5UCxw=" + }, + "lineStyle": 1, + "points": "1442:1471;1439:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWUe2WaaOSM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWUe2WabZNY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWUe2WacX3U=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWUe2WadnEA=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWUe2WaeUTA=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWUe2WafHSg=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWUe2WagPdk=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWUe2WahIZQ=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWUe2Waix6U=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWUe2WajFPY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWUe2WakyWg=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWUqjmyXNl0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyTW78=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmyYzUw=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyTW78=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1389, + "top": 1217, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmyZqqQ=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyTW78=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1374, + "top": 1214, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmyaGGY=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyTW78=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1418, + "top": 1222, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmybaWA=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyUivg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1363, + "top": 1348, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmycPaY=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyUivg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1350, + "top": 1343, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmydGns=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyUivg=" + }, + "font": "Arial;13;0", + "left": 1386, + "top": 1358, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmye3JA=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyV+RM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1415, + "top": 1085, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmyfrSk=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyV+RM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1401, + "top": 1085, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWUqjmygfmk=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyV+RM=" + }, + "font": "Arial;13;0", + "left": 1440, + "top": 1086, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWUqjmyhjDs=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyUivg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWUqjmyiYDI=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyXNl0=" + }, + "model": { + "$ref": "AAAAAAGAlWUqjmyV+RM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlRBEJjLv+uI=" + }, + "lineStyle": 1, + "points": "1373:1383;1435:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWUqjmyYzUw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWUqjmyZqqQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWUqjmyaGGY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWUqjmybaWA=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWUqjmycPaY=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWUqjmydGns=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWUqjmye3JA=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWUqjmyfrSk=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWUqjmygfmk=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWUqjmyhjDs=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWUqjmyiYDI=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWVK/Hi/tq0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi7fLQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjAbxM=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi7fLQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1356, + "top": 1173, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjBvmA=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi7fLQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1343, + "top": 1166, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjC9vY=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi7fLQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1383, + "top": 1186, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjDz+k=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi8tt0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1310, + "top": 1267, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjExiw=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi8tt0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1300, + "top": 1259, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjFCEI=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi8tt0=" + }, + "font": "Arial;13;0", + "left": 1330, + "top": 1283, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjGmB0=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi9A2E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1403, + "top": 1079, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjHyBI=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi9A2E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1390, + "top": 1075, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVK/HjIpVU=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi9A2E=" + }, + "font": "Arial;13;0", + "left": 1426, + "top": 1087, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWVK/HjJaLU=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi8tt0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWVK/HjKyeo=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi/tq0=" + }, + "model": { + "$ref": "AAAAAAGAlWVK/Hi9A2E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlLRrLqxjK7Y=" + }, + "lineStyle": 1, + "points": "1313:1303;1428:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWVK/HjAbxM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWVK/HjBvmA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWVK/HjC9vY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWVK/HjDz+k=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWVK/HjExiw=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWVK/HjFCEI=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWVK/HjGmB0=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWVK/HjHyBI=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWVK/HjIpVU=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWVK/HjJaLU=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWVK/HjKyeo=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWVTFoIOby8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIKZEQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIP68c=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIKZEQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1301, + "top": 1144, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIQL28=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIKZEQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1291, + "top": 1133, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIREfk=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIKZEQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1322, + "top": 1167, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoISwHQ=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIL2pY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1219, + "top": 1220, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoITEvo=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIL2pY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1211, + "top": 1209, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIU0bE=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIL2pY=" + }, + "font": "Arial;13;0", + "left": 1231, + "top": 1243, + "width": 7.22998046875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "edgePosition": 2, + "text": "1" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIVxPo=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIMumY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1384, + "top": 1069, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIWkSw=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIMumY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1374, + "top": 1061, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWVTFoIXfyU=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIMumY=" + }, + "font": "Arial;13;0", + "left": 1403, + "top": 1086, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWVTFoIYDwc=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIL2pY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWVTFoIZoWo=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIOby8=" + }, + "model": { + "$ref": "AAAAAAGAlWVTFoIMumY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlTkfofuodyI=" + }, + "lineStyle": 1, + "points": "1210:1255;1414:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWVTFoIP68c=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWVTFoIQL28=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWVTFoIREfk=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWVTFoISwHQ=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWVTFoITEvo=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWVTFoIU0bE=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWVTFoIVxPo=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWVTFoIWkSw=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWVTFoIXfyU=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWVTFoIYDwc=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWVTFoIZoWo=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWX+zaGk01A=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGgBoU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGlYsM=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGgBoU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1259, + "top": 1130, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGm8tU=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGgBoU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1251, + "top": 1117, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGn+J4=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGgBoU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1274, + "top": 1155, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGomrc=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGhhnw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1148, + "top": 1197, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGp6aU=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGhhnw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1143, + "top": 1185, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGqLtI=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGhhnw=" + }, + "font": "Arial;13;0", + "left": 1149, + "top": 1223, + "width": 19.5126953125, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "edgePosition": 2, + "text": "1..*" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGrABw=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGiSKc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1371, + "top": 1063, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGsh9Y=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGiSKc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1362, + "top": 1053, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWX+zaGt1bo=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGiSKc=" + }, + "font": "Arial;13;0", + "left": 1385, + "top": 1084, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWX+zaGuKoY=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGhhnw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWX+zaGvvlA=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGk01A=" + }, + "model": { + "$ref": "AAAAAAGAlWX+zaGiSKc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlU+ijhOm5cs=" + }, + "lineStyle": 1, + "points": "1134:1230;1401:1069", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWX+zaGlYsM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWX+zaGm8tU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWX+zaGn+J4=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWX+zaGomrc=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWX+zaGp6aU=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWX+zaGqLtI=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWX+zaGrABw=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWX+zaGsh9Y=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWX+zaGt1bo=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWX+zaGuKoY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWX+zaGvvlA=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWYJTq5lKDs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5h1SQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJTq5m5tE=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5h1SQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1156, + "top": 1118, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65npXI=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5h1SQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1151, + "top": 1104, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65oUb8=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5h1SQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1165, + "top": 1147, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65pRKk=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5iG3Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 950, + "top": 1188, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65qfm8=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5iG3Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 948, + "top": 1175, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65rECg=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5iG3Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 955, + "top": 1215, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65sx1U=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5jlHI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1361, + "top": 1050, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65tQS0=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5jlHI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1355, + "top": 1038, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWYJT65uAHo=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5jlHI=" + }, + "font": "Arial;13;0", + "left": 1371, + "top": 1074, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWYJT65vjP0=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5iG3Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWYJT65w12Y=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5lKDs=" + }, + "model": { + "$ref": "AAAAAAGAlWYJTq5jlHI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 376, + "top": 752, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlKBwAZy+AvI=" + }, + "lineStyle": 1, + "points": "931:1217;1391:1062", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWYJTq5m5tE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWYJT65npXI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWYJT65oUb8=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWYJT65pRKk=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWYJT65qfm8=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWYJT65rECg=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWYJT65sx1U=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWYJT65tQS0=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWYJT65uAHo=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWYJT65vjP0=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWYJT65w12Y=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlWt4wuBpmCE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWt4wuBn3Fk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWt4wuBq7kE=", + "_parent": { + "$ref": "AAAAAAGAlWt4wuBpmCE=" + }, + "model": { + "$ref": "AAAAAAGAlWt4wuBn3Fk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2426, + "top": 1075, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWt4wuBpmCE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWt4w+Brmn4=", + "_parent": { + "$ref": "AAAAAAGAlWt4wuBpmCE=" + }, + "model": { + "$ref": "AAAAAAGAlWt4wuBn3Fk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2418, + "top": 1063, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWt4wuBpmCE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWt4w+Bsdxk=", + "_parent": { + "$ref": "AAAAAAGAlWt4wuBpmCE=" + }, + "model": { + "$ref": "AAAAAAGAlWt4wuBn3Fk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2443, + "top": 1100, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWt4wuBpmCE=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "lineStyle": 1, + "points": "2320:1171;2551:1017", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWt4wuBq7kE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWt4w+Brmn4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWt4w+Bsdxk=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlWuMSOyYqqA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWuMR+yWrkc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWuMSOyZ9EM=", + "_parent": { + "$ref": "AAAAAAGAlWuMSOyYqqA=" + }, + "model": { + "$ref": "AAAAAAGAlWuMR+yWrkc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2440, + "top": 797, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWuMSOyYqqA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWuMSOyaVYY=", + "_parent": { + "$ref": "AAAAAAGAlWuMSOyYqqA=" + }, + "model": { + "$ref": "AAAAAAGAlWuMR+yWrkc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2451, + "top": 787, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWuMSOyYqqA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWuMSOybXg4=", + "_parent": { + "$ref": "AAAAAAGAlWuMSOyYqqA=" + }, + "model": { + "$ref": "AAAAAAGAlWuMR+yWrkc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2419, + "top": 818, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWuMSOyYqqA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "lineStyle": 1, + "points": "2307:685;2554:943", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWuMSOyZ9EM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWuMSOyaVYY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWuMSOybXg4=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlWubm/NdI0w=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWubm/NbZTQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWubm/Nei7I=", + "_parent": { + "$ref": "AAAAAAGAlWubm/NdI0w=" + }, + "model": { + "$ref": "AAAAAAGAlWubm/NbZTQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2422, + "top": 1130, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWubm/NdI0w=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWubm/NfzBo=", + "_parent": { + "$ref": "AAAAAAGAlWubm/NdI0w=" + }, + "model": { + "$ref": "AAAAAAGAlWubm/NbZTQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2411, + "top": 1119, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWubm/NdI0w=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWubm/NgKUU=", + "_parent": { + "$ref": "AAAAAAGAlWubm/NdI0w=" + }, + "model": { + "$ref": "AAAAAAGAlWubm/NbZTQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2443, + "top": 1151, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWubm/NdI0w=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "lineStyle": 1, + "points": "2315:1263;2551:1031", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWubm/Nei7I=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWubm/NfzBo=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWubm/NgKUU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlWxxbSDR0l0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlWxxbiDStco=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "model": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlWxxbiDTZ3I=", + "_parent": { + "$ref": "AAAAAAGAlWxxbiDStco=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1184, + "top": 1344, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWxxbiDUU1Q=", + "_parent": { + "$ref": "AAAAAAGAlWxxbiDStco=" + }, + "font": "Arial;13;1", + "left": 2269, + "top": 1095, + "width": 41.919921875, + "height": 13, + "text": "ATR" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWxxbiDV7aY=", + "_parent": { + "$ref": "AAAAAAGAlWxxbiDStco=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1184, + "top": 1344, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlWxxbiDWXZ8=", + "_parent": { + "$ref": "AAAAAAGAlWxxbiDStco=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1184, + "top": 1344, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2264, + "top": 1088, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWxxbiDTZ3I=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlWxxbiDUU1Q=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlWxxbiDV7aY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWxxbiDWXZ8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlWxxbiDXOdo=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "model": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 1113, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlWxxbiDYM/8=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "model": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "font": "Arial;13;0", + "left": 2264, + "top": 1123, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlWxxbiDZ5kM=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "model": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 592, + "top": 672, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlWxxbiDaWBE=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "model": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 592, + "top": 672, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2264, + "top": 1088, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlWxxbiDStco=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlWxxbiDXOdo=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlWxxbiDYM/8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlWxxbiDZ5kM=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlWxxbiDaWBE=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlWzchTK/0z0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK7zPc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLAt90=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK7zPc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2196, + "top": 1090, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLBbzU=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK7zPc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2191, + "top": 1104, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLCtCU=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK7zPc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2205, + "top": 1061, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLDc3o=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK8FrQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2233, + "top": 1102, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLEd3k=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK8FrQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2227, + "top": 1114, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLF5VA=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK8FrQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2246, + "top": 1077, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLG8w8=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK970c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2159, + "top": 1078, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLHsTk=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK970c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2157, + "top": 1091, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlWzchTLI9f8=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK970c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2163, + "top": 1050, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWzchTLJ4YE=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK8FrQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlWzchjLKoJs=", + "_parent": { + "$ref": "AAAAAAGAlWzchTK/0z0=" + }, + "model": { + "$ref": "AAAAAAGAlWzchDK970c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 456, + "top": 712, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "lineStyle": 1, + "points": "2263:1102;2139:1062", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlWzchTLAt90=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlWzchTLBbzU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlWzchTLCtCU=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlWzchTLDc3o=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlWzchTLEd3k=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlWzchTLF5VA=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlWzchTLG8w8=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlWzchTLHsTk=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlWzchTLI9f8=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlWzchTLJ4YE=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlWzchjLKoJs=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlW17D6E8HWY=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlW17D6E6jDw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW17D6E9FjE=", + "_parent": { + "$ref": "AAAAAAGAlW17D6E8HWY=" + }, + "model": { + "$ref": "AAAAAAGAlW17D6E6jDw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2434, + "top": 946, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW17D6E8HWY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW17D6E+TG4=", + "_parent": { + "$ref": "AAAAAAGAlW17D6E8HWY=" + }, + "model": { + "$ref": "AAAAAAGAlW17D6E6jDw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2436, + "top": 931, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW17D6E8HWY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW17D6E/fcs=", + "_parent": { + "$ref": "AAAAAAGAlW17D6E8HWY=" + }, + "model": { + "$ref": "AAAAAAGAlW17D6E6jDw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2431, + "top": 975, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW17D6E8HWY=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlWKC8NOiuDE=" + }, + "lineStyle": 1, + "points": "2316:953;2551:982", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlW17D6E9FjE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlW17D6E+TG4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlW17D6E/fcs=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAlW2hyrcjIjI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlW2hyrchc3A=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW2hyrckJnw=", + "_parent": { + "$ref": "AAAAAAGAlW2hyrcjIjI=" + }, + "model": { + "$ref": "AAAAAAGAlW2hyrchc3A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2427, + "top": 1032, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW2hyrcjIjI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW2hyrcljT8=", + "_parent": { + "$ref": "AAAAAAGAlW2hyrcjIjI=" + }, + "model": { + "$ref": "AAAAAAGAlW2hyrchc3A=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2421, + "top": 1018, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW2hyrcjIjI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW2hyrcm9dM=", + "_parent": { + "$ref": "AAAAAAGAlW2hyrcjIjI=" + }, + "model": { + "$ref": "AAAAAAGAlW2hyrchc3A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2438, + "top": 1059, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW2hyrcjIjI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlV0ISxInIEA=" + }, + "tail": { + "$ref": "AAAAAAGAlWxxbSDR0l0=" + }, + "lineStyle": 1, + "points": "2316:1099;2551:1005", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlW2hyrckJnw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlW2hyrcljT8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlW2hyrcm9dM=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlW7ShJUPJyc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJULxzs=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUQG2U=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJULxzs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2208, + "top": 819, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJURtAI=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJULxzs=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2221, + "top": 826, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUSxLw=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJULxzs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2181, + "top": 804, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUTa7A=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUM2LQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2272, + "top": 708, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUUPOE=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUM2LQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2282, + "top": 717, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUVsTU=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUM2LQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2250, + "top": 691, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUWGxs=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUNBXk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2144, + "top": 929, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUXY3A=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUNBXk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2157, + "top": 934, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW7ShJUYuW8=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUNBXk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2118, + "top": 920, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlW7ShJUZ4tA=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUM2LQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 80, + "top": -40, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlW7ShJUa4B8=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJUPJyc=" + }, + "model": { + "$ref": "AAAAAAGAlW7ShJUNBXk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 80, + "top": -40, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlWA8wKXQZFc=" + }, + "lineStyle": 1, + "points": "2272:685;2119:951", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlW7ShJUQG2U=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlW7ShJURtAI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlW7ShJUSxLw=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlW7ShJUTa7A=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlW7ShJUUPOE=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlW7ShJUVsTU=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlW7ShJUWGxs=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlW7ShJUXY3A=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlW7ShJUYuW8=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlW7ShJUZ4tA=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlW7ShJUa4B8=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlW/ClR+zIXE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+vGKk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+0UUs=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+vGKk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2192, + "top": 1135, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+1HK8=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+vGKk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2184, + "top": 1147, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+2YG8=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+vGKk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2209, + "top": 1110, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+3H1o=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+wkdY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2233, + "top": 1162, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+4of4=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+wkdY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2223, + "top": 1172, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+5PAw=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+wkdY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2252, + "top": 1142, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+6zoc=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+xrBU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2152, + "top": 1107, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/ClR+7uRQ=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+xrBU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2146, + "top": 1120, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/Clh+8RBo=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+xrBU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2163, + "top": 1082, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlW/Clh+9/VM=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+wkdY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 80, + "top": -40, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlW/Clh++L3I=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+zIXE=" + }, + "model": { + "$ref": "AAAAAAGAlW/ClR+xrBU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 80, + "top": -40, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlWF/8rl4xQk=" + }, + "lineStyle": 1, + "points": "2263:1171;2139:1087", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlW/ClR+0UUs=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlW/ClR+1HK8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlW/ClR+2YG8=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlW/ClR+3H1o=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlW/ClR+4of4=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlW/ClR+5PAw=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlW/ClR+6zoc=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlW/ClR+7uRQ=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlW/Clh+8RBo=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlW/Clh+9/VM=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlW/Clh++L3I=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlW/UHSsJ/KQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsFYbE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsK4fE=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsFYbE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2193, + "top": 1194, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsLfqs=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsFYbE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 2182, + "top": 1204, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsMW4M=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsFYbE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2216, + "top": 1173, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsNgYw=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsGwdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2242, + "top": 1247, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsOtzk=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsGwdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2231, + "top": 1254, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsPtS8=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsGwdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2265, + "top": 1232, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsQRgw=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsHggM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2145, + "top": 1140, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsR8eA=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsHggM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2136, + "top": 1150, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlW/UHSsSHYU=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsHggM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2162, + "top": 1118, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlW/UHSsTuN8=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsGwdo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 80, + "top": -40, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlW/UHSsUDbA=", + "_parent": { + "$ref": "AAAAAAGAlW/UHSsJ/KQ=" + }, + "model": { + "$ref": "AAAAAAGAlW/UHCsHggM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 80, + "top": -40, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlTsU1xtzkxQ=" + }, + "tail": { + "$ref": "AAAAAAGAlWG4yb0+Gow=" + }, + "lineStyle": 1, + "points": "2271:1263;2139:1117", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlW/UHSsK4fE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlW/UHSsLfqs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlW/UHSsMW4M=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlW/UHSsNgYw=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlW/UHSsOtzk=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlW/UHSsPtS8=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlW/UHSsQRgw=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlW/UHSsR8eA=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlW/UHSsSHYU=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlW/UHSsTuN8=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlW/UHSsUDbA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAlXGQqAqmq9A=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAlXGQqAqnwQ8=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "model": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAlXGQqAqobW4=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqnwQ8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 304, + "top": 64, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlXGQqAqpK54=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqnwQ8=" + }, + "font": "Arial;13;1", + "left": 1661, + "top": 887, + "width": 41.919921875, + "height": 13, + "text": "Data" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlXGQqAqqJCc=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqnwQ8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 304, + "top": 64, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAlXGQqAqr7vE=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqnwQ8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 304, + "top": 64, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1656, + "top": 880, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAlXGQqAqobW4=" + }, + "nameLabel": { + "$ref": "AAAAAAGAlXGQqAqpK54=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAlXGQqAqqJCc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlXGQqAqr7vE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAlXGQqAqskeQ=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "model": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "font": "Arial;13;0", + "left": 1656, + "top": 905, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAlXGQqAqtqSY=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "model": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "font": "Arial;13;0", + "left": 1656, + "top": 915, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAlXGQqAqupWU=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "model": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 152, + "top": 32, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAlXGQqAqvyl0=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "model": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 152, + "top": 32, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1656, + "top": 880, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAlXGQqAqnwQ8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAlXGQqAqskeQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAlXGQqAqtqSY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAlXGQqAqupWU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAlXGQqAqvyl0=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAlXY64xtHmz0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtDdTk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtImbg=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtDdTk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1573, + "top": 976, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtJxQ0=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtDdTk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1581, + "top": 989, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtK494=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtDdTk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1558, + "top": 951, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtLy5A=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtEoUg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1640, + "top": 937, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtMF1E=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtEoUg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1645, + "top": 949, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtNHec=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtEoUg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1630, + "top": 911, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtOQ7A=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtF6EA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1507, + "top": 1016, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtP9P4=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtF6EA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1516, + "top": 1026, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAlXY64xtQjPY=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtF6EA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1490, + "top": 995, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlXY64xtRvq4=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtEoUg=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAlXY64xtSUjo=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtHmz0=" + }, + "model": { + "$ref": "AAAAAAGAlXY64xtF6EA=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlLTUj7L3TDU=" + }, + "tail": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "lineStyle": 1, + "points": "1655:917;1478:1023", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAlXY64xtImbg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAlXY64xtJxQ0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAlXY64xtK494=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAlXY64xtLy5A=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAlXY64xtMF1E=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAlXY64xtNHec=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAlXY64xtOQ7A=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAlXY64xtP9P4=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAlXY64xtQjPY=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAlXY64xtRvq4=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAlXY64xtSUjo=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAklNdL5rpBs0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class1" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAklPniJsqfe4=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "BrighterTrades UI" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAkl0p9pxdAmc=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Indicators", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlKFG06A0WIk=", + "_parent": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKFG06A1Lqk=", + "_parent": { + "$ref": "AAAAAAGAlKFG06A0WIk=" + }, + "reference": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKFG06A29I0=", + "_parent": { + "$ref": "AAAAAAGAlKFG06A0WIk=" + }, + "reference": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlKGL86DsZE8=", + "_parent": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKGL86DtHis=", + "_parent": { + "$ref": "AAAAAAGAlKGL86DsZE8=" + }, + "reference": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKGL86DuzSY=", + "_parent": { + "$ref": "AAAAAAGAlKGL86DsZE8=" + }, + "reference": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlKHjgqGzBJQ=", + "_parent": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKHjgqG0Y7Y=", + "_parent": { + "$ref": "AAAAAAGAlKHjgqGzBJQ=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKHjgqG1L+U=", + "_parent": { + "$ref": "AAAAAAGAlKHjgqGzBJQ=" + }, + "reference": { + "$ref": "AAAAAAGAkl0p9pxdAmc=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAkl307pyHK9I=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Display_Panel", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlKBwPpzlu78=", + "_parent": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKBwP5zmoCo=", + "_parent": { + "$ref": "AAAAAAGAlKBwPpzlu78=" + }, + "reference": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "aggregation": "shared" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKBwP5znhSs=", + "_parent": { + "$ref": "AAAAAAGAlKBwPpzlu78=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlLRraKyospI=", + "_parent": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLRraKypsBk=", + "_parent": { + "$ref": "AAAAAAGAlLRraKyospI=" + }, + "reference": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "aggregation": "shared" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLRraKyqZho=", + "_parent": { + "$ref": "AAAAAAGAlLRraKyospI=" + }, + "reference": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlLtBucFIxdU=", + "_parent": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLtBucFJuy0=", + "_parent": { + "$ref": "AAAAAAGAlLtBucFIxdU=" + }, + "reference": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "aggregation": "shared" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLtBucFKhHw=", + "_parent": { + "$ref": "AAAAAAGAlLtBucFIxdU=" + }, + "reference": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + } + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlMAvkNcwMGk=", + "_parent": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "source": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "target": { + "$ref": "AAAAAAGAlMAvSdbpIWA=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlKBwAJy8eFE=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Charts", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlKJC9KPoAaE=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKJC9KPpnJQ=", + "_parent": { + "$ref": "AAAAAAGAlKJC9KPoAaE=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "aggregation": "shared" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlKJC9KPq0GY=", + "_parent": { + "$ref": "AAAAAAGAlKJC9KPoAaE=" + }, + "reference": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + } + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlMDKUdwuDGM=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "source": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlN70+5hTl0w=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlN70+5hUSk0=", + "_parent": { + "$ref": "AAAAAAGAlN70+5hTl0w=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlN70+5hV9/8=", + "_parent": { + "$ref": "AAAAAAGAlN70+5hTl0w=" + }, + "reference": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlOJxWLVGJ1k=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOJxWLVH07M=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVGJ1k=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOJxWLVILrM=", + "_parent": { + "$ref": "AAAAAAGAlOJxWLVGJ1k=" + }, + "reference": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "aggregation": "shared", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlOPB1LkxGUA=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "name": "1", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOPB1LkyJxU=", + "_parent": { + "$ref": "AAAAAAGAlOPB1LkxGUA=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOPB1Lkzjgw=", + "_parent": { + "$ref": "AAAAAAGAlOPB1LkxGUA=" + }, + "reference": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "aggregation": "composite" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlOP4tbty5Zw=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOP4tbtzuOo=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbty5Zw=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOP4tbt0Vwg=", + "_parent": { + "$ref": "AAAAAAGAlOP4tbty5Zw=" + }, + "reference": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "aggregation": "shared", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlQqkENzbW8g=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlQqkENzcXKQ=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzbW8g=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlQqkENzdqVw=", + "_parent": { + "$ref": "AAAAAAGAlQqkENzbW8g=" + }, + "reference": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWYJTq5h1SQ=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWYJTq5iG3Y=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5h1SQ=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWYJTq5jlHI=", + "_parent": { + "$ref": "AAAAAAGAlWYJTq5h1SQ=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlYY0lN+3EU4=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "name": "charts", + "visibility": "private", + "type": "1..3" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlad4atb8lI0=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "name": "bind_charts" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlagyPeRQGOU=", + "_parent": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "name": "create_chart" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlKJCvaOwqG4=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Chart", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlYoy8CzCHeM=", + "_parent": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + }, + "name": "lines", + "visibility": "private", + "type": "line_series", + "multiplicity": "0..*" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlLRrLaxh9W8=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Header", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlMBt0tjyuVQ=", + "_parent": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "source": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWVK/Hi7fLQ=", + "_parent": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWVK/Hi8tt0=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi7fLQ=" + }, + "reference": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWVK/Hi9A2E=", + "_parent": { + "$ref": "AAAAAAGAlWVK/Hi7fLQ=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlL0d+NEoRwU=", + "_parent": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "name": "title", + "type": "string" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlLTUj7L1P20=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "User Interface", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlLVwqLOdfpE=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLVwqLOelTs=", + "_parent": { + "$ref": "AAAAAAGAlLVwqLOdfpE=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLVwqLOfOHI=", + "_parent": { + "$ref": "AAAAAAGAlLVwqLOdfpE=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlLrQer8jsi8=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLrQer8kq8A=", + "_parent": { + "$ref": "AAAAAAGAlLrQer8jsi8=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlLrQer8lN/g=", + "_parent": { + "$ref": "AAAAAAGAlLrQer8jsi8=" + }, + "reference": { + "$ref": "AAAAAAGAkl307pyHK9I=" + }, + "aggregation": "composite", + "multiplicity": "1..*" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlNSI+hEo2oc=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNSI+hEp0Ds=", + "_parent": { + "$ref": "AAAAAAGAlNSI+hEo2oc=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNSI+hEqMNY=", + "_parent": { + "$ref": "AAAAAAGAlNSI+hEo2oc=" + }, + "reference": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlNTYBxOEQIM=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNTYBxOFJ00=", + "_parent": { + "$ref": "AAAAAAGAlNTYBxOEQIM=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNTYBxOGpPE=", + "_parent": { + "$ref": "AAAAAAGAlNTYBxOEQIM=" + }, + "reference": { + "$ref": "AAAAAAGAlLRrLaxh9W8=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlNTrPBU7zRI=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNTrPBU81nU=", + "_parent": { + "$ref": "AAAAAAGAlNTrPBU7zRI=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNTrPBU9TVM=", + "_parent": { + "$ref": "AAAAAAGAlNTrPBU7zRI=" + }, + "reference": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlNUBhhf3FK4=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNUBhhf4iHI=", + "_parent": { + "$ref": "AAAAAAGAlNUBhhf3FK4=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNUBhhf5OdI=", + "_parent": { + "$ref": "AAAAAAGAlNUBhhf3FK4=" + }, + "reference": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "aggregation": "composite", + "multiplicity": "1..*" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlNzl1IQJQ3U=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNzl3YQK1a8=", + "_parent": { + "$ref": "AAAAAAGAlNzl1IQJQ3U=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlNzl3YQLMh4=", + "_parent": { + "$ref": "AAAAAAGAlNzl1IQJQ3U=" + }, + "reference": { + "$ref": "AAAAAAGAlKBwAJy8eFE=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlOVtc8/Q5mc=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOVtc8/RxPs=", + "_parent": { + "$ref": "AAAAAAGAlOVtc8/Q5mc=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlOVtc8/SQ6c=", + "_parent": { + "$ref": "AAAAAAGAlOVtc8/Q5mc=" + }, + "reference": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlRQLW26xThg=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRQLW26yE/8=", + "_parent": { + "$ref": "AAAAAAGAlRQLW26xThg=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRQLW26zwMc=", + "_parent": { + "$ref": "AAAAAAGAlRQLW26xThg=" + }, + "reference": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlRQqcnfrFoI=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRQqcnfsV60=", + "_parent": { + "$ref": "AAAAAAGAlRQqcnfrFoI=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRQqcnftmFY=", + "_parent": { + "$ref": "AAAAAAGAlRQqcnfrFoI=" + }, + "reference": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlRS9Dafvhcc=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRS9Dafwp4Y=", + "_parent": { + "$ref": "AAAAAAGAlRS9Dafvhcc=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRS9DafxZYs=", + "_parent": { + "$ref": "AAAAAAGAlRS9Dafvhcc=" + }, + "reference": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlRTNZa0zOZQ=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRTNZa00wEs=", + "_parent": { + "$ref": "AAAAAAGAlRTNZa0zOZQ=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlRTNZa01zIE=", + "_parent": { + "$ref": "AAAAAAGAlRTNZa0zOZQ=" + }, + "reference": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlTvGRE+rj8c=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlTvGRE+scgk=", + "_parent": { + "$ref": "AAAAAAGAlTvGRE+rj8c=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlTvGRE+tkBs=", + "_parent": { + "$ref": "AAAAAAGAlTvGRE+rj8c=" + }, + "reference": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlTvc8VTFumY=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlTvc8VTGRNU=", + "_parent": { + "$ref": "AAAAAAGAlTvc8VTFumY=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlTvc8VTHO/s=", + "_parent": { + "$ref": "AAAAAAGAlTvc8VTFumY=" + }, + "reference": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "aggregation": "composite" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlTvt5luVKs4=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlTvt5luWyhM=", + "_parent": { + "$ref": "AAAAAAGAlTvt5luVKs4=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlTvt5luXs4s=", + "_parent": { + "$ref": "AAAAAAGAlTvt5luVKs4=" + }, + "reference": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlT0klN3jJgM=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlT0kld3ksxA=", + "_parent": { + "$ref": "AAAAAAGAlT0klN3jJgM=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlT0kld3lD38=", + "_parent": { + "$ref": "AAAAAAGAlT0klN3jJgM=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlVAsUzD2+0M=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlVAsUzD3/G4=", + "_parent": { + "$ref": "AAAAAAGAlVAsUzD2+0M=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlVAsUzD4ekU=", + "_parent": { + "$ref": "AAAAAAGAlVAsUzD2+0M=" + }, + "reference": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWPOZQ4Vk6I=", + "_parent": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWPOZQ4Wm90=", + "_parent": { + "$ref": "AAAAAAGAlWPOZQ4Vk6I=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWPOZQ4Xl58=", + "_parent": { + "$ref": "AAAAAAGAlWPOZQ4Vk6I=" + }, + "reference": { + "$ref": "AAAAAAGAlWPNnAyirBg=" + } + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlLXNnLUnJ6U=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class2" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlLtBdcDjBrM=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Controls", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlMCk9NsVgEI=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "source": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlQ0ahvqeZ6I=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "source": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWT4GEhKbNM=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWT4GEhLA4U=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhKbNM=" + }, + "reference": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWT4GEhMpRo=", + "_parent": { + "$ref": "AAAAAAGAlWT4GEhKbNM=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlamWWi8OqEc=", + "_parent": { + "$ref": "AAAAAAGAlLtBdcDjBrM=" + }, + "name": "showAtPos" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlL/7jNZzeZs=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class3", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlL/7zta6zz4=", + "_parent": { + "$ref": "AAAAAAGAlL/7jNZzeZs=" + }, + "source": { + "$ref": "AAAAAAGAlL/7jNZzeZs=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlMAvSdbpIWA=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class4" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlMe6a+f9UYg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Price_Chart", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlMe6u+hEFdo=", + "_parent": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "source": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "target": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlYu4Ij/IzVw=", + "_parent": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "name": "candles", + "visibility": "private", + "type": "price_series" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlY+kkW5Wfxg=", + "_parent": { + "$ref": "AAAAAAGAlMe6a+f9UYg=" + }, + "name": "volume", + "visibility": "private", + "type": "histogram" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlMgRM+mty4M=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Sub_Chart", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlMgRf+n02Wc=", + "_parent": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "source": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + }, + "target": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlOF3iKq3uas=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "RSI_Chart", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlOF33ascf20=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "source": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "target": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlaHW+yzOEf4=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "name": "RSI_lines" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlOG1qKyiRQY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "MACD_Chart", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlOG2B60HNBw=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "source": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "target": { + "$ref": "AAAAAAGAlMgRM+mty4M=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlZA+L3VTvPw=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "name": "hist", + "visibility": "private", + "type": "histogram" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlOVtD89NZPg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Interface", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlQzlPvctqQw=", + "_parent": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "source": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlRBEJjLtkIs=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Alerts", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlRB+cjfgulU=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "source": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWUqjmyTW78=", + "_parent": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWUqjmyUivg=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyTW78=" + }, + "reference": { + "$ref": "AAAAAAGAlRBEJjLtkIs=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWUqjmyV+RM=", + "_parent": { + "$ref": "AAAAAAGAlWUqjmyTW78=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlRGzZE5SNA0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Exchange_Info", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlRH931B0eeY=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "source": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWUe2GaVJTw=", + "_parent": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWUe2GaW1c8=", + "_parent": { + "$ref": "AAAAAAGAlWUe2GaVJTw=" + }, + "reference": { + "$ref": "AAAAAAGAlRGzZE5SNA0=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWUe2GaX3GI=", + "_parent": { + "$ref": "AAAAAAGAlWUe2GaVJTw=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlRJADlhpY4s=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Signals", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlRKGiFs/VYQ=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "source": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWUHaVbFHFI=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWUHaVbGp9E=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbFHFI=" + }, + "reference": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWUHaVbH1Js=", + "_parent": { + "$ref": "AAAAAAGAlWUHaVbFHFI=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlaz/P2ckb8w=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "open_signal_Form" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAla2Nt3wQUmo=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "close_signal_Form" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAla3S1IueRjU=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "fill_prop" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlcBTsKIft6E=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "switch_panel" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlcCHsa7OUgE=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "hideIfTrue" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlcC9Qb26gpQ=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "ns_next" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlcKMw/g1OQc=", + "_parent": { + "$ref": "AAAAAAGAlRJADlhpY4s=" + }, + "name": "submitNewSignal" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlRLKTmK2Low=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Strategies", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlRM+J2Z34W8=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "source": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWT/5k/+BrM=", + "_parent": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWT/5k//5Qo=", + "_parent": { + "$ref": "AAAAAAGAlWT/5k/+BrM=" + }, + "reference": { + "$ref": "AAAAAAGAlRLKTmK2Low=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWT/5lAA9S0=", + "_parent": { + "$ref": "AAAAAAGAlWT/5k/+BrM=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlTkfoPumEEo=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Statistics", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlTzCNrx57tI=", + "_parent": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "source": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlU5WrJfEnsg=", + "_parent": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "source": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWVTFoIKZEQ=", + "_parent": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWVTFoIL2pY=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIKZEQ=" + }, + "reference": { + "$ref": "AAAAAAGAlTkfoPumEEo=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWVTFoIMumY=", + "_parent": { + "$ref": "AAAAAAGAlWVTFoIKZEQ=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlTlTRf10ynw=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Trade", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlTyXiLPgx5Y=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "source": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWTwt0Kjci4=", + "_parent": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWTwt0KkMDI=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kjci4=" + }, + "reference": { + "$ref": "AAAAAAGAlTlTRf10ynw=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWTwt0KlHeI=", + "_parent": { + "$ref": "AAAAAAGAlWTwt0Kjci4=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlTqLXhUQCZ0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Backtesting", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlTzYE8X8Jlg=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "source": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWTohT2DCvk=", + "_parent": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWTohT2Ex7A=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2DCvk=" + }, + "reference": { + "$ref": "AAAAAAGAlTqLXhUQCZ0=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWTohT2FGfo=", + "_parent": { + "$ref": "AAAAAAGAlWTohT2DCvk=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlTsU1xtxoZg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Indicators", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlTz1lM6VeiU=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "source": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "target": { + "$ref": "AAAAAAGAlOVtD89NZPg=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlV5o5Vy/8xc=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlV5o5VzA2Aw=", + "_parent": { + "$ref": "AAAAAAGAlV5o5Vy/8xc=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlV5o5VzBeTw=", + "_parent": { + "$ref": "AAAAAAGAlV5o5Vy/8xc=" + }, + "reference": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlV8N53406zc=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlV8N5341i44=", + "_parent": { + "$ref": "AAAAAAGAlV8N53406zc=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlV8N534242A=", + "_parent": { + "$ref": "AAAAAAGAlV8N53406zc=" + }, + "reference": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlV/bTZXIgLs=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlV/bTZXJcEs=", + "_parent": { + "$ref": "AAAAAAGAlV/bTZXIgLs=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlV/bTZXKwuo=", + "_parent": { + "$ref": "AAAAAAGAlV/bTZXIgLs=" + }, + "reference": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWA9gacyosY=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWA9gaczDL0=", + "_parent": { + "$ref": "AAAAAAGAlWA9gacyosY=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWA9gac0uWE=", + "_parent": { + "$ref": "AAAAAAGAlWA9gacyosY=" + }, + "reference": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWKDitUErpw=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWKDitUF7gU=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUErpw=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWKDitUGCjY=", + "_parent": { + "$ref": "AAAAAAGAlWKDitUErpw=" + }, + "reference": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWTbMTVjQns=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWTbMTVkF44=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVjQns=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWTbMTVl7r8=", + "_parent": { + "$ref": "AAAAAAGAlWTbMTVjQns=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWypaCl70+o=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWypaCl8qDw=", + "_parent": { + "$ref": "AAAAAAGAlWypaCl70+o=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWypaCl9w+E=", + "_parent": { + "$ref": "AAAAAAGAlWypaCl70+o=" + }, + "reference": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "aggregation": "shared" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlZgH+WZvuek=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "indicator_list", + "visibility": "private" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlaVzK6i6DOI=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "indicator_types", + "visibility": "private" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZn364kHgE4=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "create_indicator" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZxMLpcBNJs=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "initialize_indicator" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZp+fJAEI0M=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "update_indicator" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZ874bf6dfs=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "get_indicator_data" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlaX+WLTITpQ=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "get_indicator_types" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlax3HV80v/A=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "submit_new_i" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlcP5zkntePQ=", + "_parent": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "name": "add_to_list" + } + ] + }, + { + "_type": "UMLInterface", + "_id": "AAAAAAGAlUGOetAIy/k=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Exchange_server", + "ownedElements": [ + { + "_type": "UMLInterfaceRealization", + "_id": "AAAAAAGAlUWMADserM4=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "source": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "target": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlUZtyk0I7mg=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "source": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "target": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlUcybGKL0UA=", + "_parent": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUcybGKM+ME=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKL0UA=" + }, + "reference": { + "$ref": "AAAAAAGAlUGOetAIy/k=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUcybGKNvZY=", + "_parent": { + "$ref": "AAAAAAGAlUcybGKL0UA=" + }, + "reference": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + } + } + } + ] + }, + { + "_type": "UMLInterface", + "_id": "AAAAAAGAlUI9x9WdaKg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Local_Server", + "ownedElements": [ + { + "_type": "UMLInterfaceRealization", + "_id": "AAAAAAGAlUVsPDUlZxE=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "source": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "target": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlUZGOEXplAE=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "source": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "target": { + "$ref": "AAAAAAGAlUQhahEG3nQ=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlUcXkVxdL6c=", + "_parent": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUcXkVxe4Jg=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxdL6c=" + }, + "reference": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUcXkVxfAyc=", + "_parent": { + "$ref": "AAAAAAGAlUcXkVxdL6c=" + }, + "reference": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + } + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlUKJqdysOJc=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Cumunication", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlUNuBfkRmqk=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUNuBfkSXMU=", + "_parent": { + "$ref": "AAAAAAGAlUNuBfkRmqk=" + }, + "reference": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUNuBfkTzVA=", + "_parent": { + "$ref": "AAAAAAGAlUNuBfkRmqk=" + }, + "reference": { + "$ref": "AAAAAAGAlUI9x9WdaKg=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlUdTbGyvqOM=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUdTbGywRtk=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyvqOM=" + }, + "reference": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "multiplicity": "1" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlUdTbGyxjgQ=", + "_parent": { + "$ref": "AAAAAAGAlUdTbGyvqOM=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "multiplicity": "1" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlcMItTBB6JM=", + "_parent": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "name": "indicator_update_msg_received" + } + ] + }, + { + "_type": "UMLInterface", + "_id": "AAAAAAGAlUQhahEG3nQ=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Server_Connection" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlU+ijROkjck=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Indicator Output", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlVABNCiHdVc=", + "_parent": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "source": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "target": { + "$ref": "AAAAAAGAkl307pyHK9I=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWX+zaGgBoU=", + "_parent": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWX+zaGhhnw=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGgBoU=" + }, + "reference": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "multiplicity": "1..*" + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWX+zaGiSKc=", + "_parent": { + "$ref": "AAAAAAGAlWX+zaGgBoU=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite", + "multiplicity": "1" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAlYUqd9HDP+I=", + "_parent": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "name": "legend", + "visibility": "private" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlaPCWGaFOto=", + "_parent": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "name": "create_legend" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlaRbjHJEQRw=", + "_parent": { + "$ref": "AAAAAAGAlU+ijROkjck=" + }, + "name": "set_legend_text" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlV0ISxIlyJ0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Indicator", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlWtYzNU42sk=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "source": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "target": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZREiS2dLos=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "name": "create" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZ6DEaDYNp0=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "name": "initialize" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAlZUN40M3pm4=", + "_parent": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + }, + "name": "update" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlV1qOCx6xfw=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "RSI", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlV6NEGdqw2E=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "source": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWL3lPiNLMU=", + "_parent": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWL3lPiOD+0=", + "_parent": { + "$ref": "AAAAAAGAlWL3lPiNLMU=" + }, + "reference": { + "$ref": "AAAAAAGAlV1qOCx6xfw=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWL3lPiP2cA=", + "_parent": { + "$ref": "AAAAAAGAlWL3lPiNLMU=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlV6uaHCdJQg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "SMA", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlV7bC3kE9Hg=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "source": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWLhe/D3by0=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWLhe/D4I/E=", + "_parent": { + "$ref": "AAAAAAGAlWLhe/D3by0=" + }, + "reference": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWLhe/D5nwE=", + "_parent": { + "$ref": "AAAAAAGAlWLhe/D3by0=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWMaqwNoWn8=", + "_parent": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWMaqwNpR7E=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNoWn8=" + }, + "reference": { + "$ref": "AAAAAAGAlV6uaHCdJQg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWMaqwNqBoA=", + "_parent": { + "$ref": "AAAAAAGAlWMaqwNoWn8=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlV85BI3i4ss=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "EMA", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlV/yh5zgKGQ=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "source": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWLLT+iPDbY=", + "_parent": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWLLT+iQCBs=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iPDbY=" + }, + "reference": { + "$ref": "AAAAAAGAlV85BI3i4ss=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWLLT+iRyu0=", + "_parent": { + "$ref": "AAAAAAGAlWLLT+iPDbY=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWA8wKXOucE=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Linear Regression", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlWuMR+yWrkc=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "source": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlW7ShJULxzs=", + "_parent": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlW7ShJUM2LQ=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJULxzs=" + }, + "reference": { + "$ref": "AAAAAAGAlWA8wKXOucE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlW7ShJUNBXk=", + "_parent": { + "$ref": "AAAAAAGAlW7ShJULxzs=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWF/8rl2eF4=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Volume", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlWt4wuBn3Fk=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "source": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlW/ClR+vGKk=", + "_parent": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlW/ClR+wkdY=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+vGKk=" + }, + "reference": { + "$ref": "AAAAAAGAlWF/8rl2eF4=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlW/ClR+xrBU=", + "_parent": { + "$ref": "AAAAAAGAlW/ClR+vGKk=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWG4yb08SBs=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Bolenger_Band", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlWubm/NbZTQ=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "source": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlW/UHCsFYbE=", + "_parent": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlW/UHCsGwdo=", + "_parent": { + "$ref": "AAAAAAGAlW/UHCsFYbE=" + }, + "reference": { + "$ref": "AAAAAAGAlWG4yb08SBs=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlW/UHCsHggM=", + "_parent": { + "$ref": "AAAAAAGAlW/UHCsFYbE=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWKC8NOg1Tw=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "MACD", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlW17D6E6jDw=", + "_parent": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "source": { + "$ref": "AAAAAAGAlWKC8NOg1Tw=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWPNnAyirBg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class6" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWrhjr4u0CQ=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Class7", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlWriMr+hZSg=", + "_parent": { + "$ref": "AAAAAAGAlWrhjr4u0CQ=" + }, + "source": { + "$ref": "AAAAAAGAlWrhjr4u0CQ=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlWxxbSDPxmU=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "ATR", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlWzchDK7zPc=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWzchDK8FrQ=", + "_parent": { + "$ref": "AAAAAAGAlWzchDK7zPc=" + }, + "reference": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlWzchDK970c=", + "_parent": { + "$ref": "AAAAAAGAlWzchDK7zPc=" + }, + "reference": { + "$ref": "AAAAAAGAlTsU1xtxoZg=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAlW2hyrchc3A=", + "_parent": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "source": { + "$ref": "AAAAAAGAlWxxbSDPxmU=" + }, + "target": { + "$ref": "AAAAAAGAlV0ISxIlyJ0=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAlXGQqAqkRnk=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Data", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAlXY64xtDdTk=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlXY64xtEoUg=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtDdTk=" + }, + "reference": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAlXY64xtF6EA=", + "_parent": { + "$ref": "AAAAAAGAlXY64xtDdTk=" + }, + "reference": { + "$ref": "AAAAAAGAlLTUj7L1P20=" + }, + "aggregation": "composite" + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/app.py b/app.py new file mode 100644 index 0000000..b70fc77 --- /dev/null +++ b/app.py @@ -0,0 +1,205 @@ +import json +import os +import sys + +from flask import Flask, render_template, request, redirect, jsonify +from flask_cors import CORS, cross_origin +from binance.enums import * +from flask_sock import Sock +# Handles all server side data +import data as bt +# *NOT DONE YET* +import trade + +# Define app +app = Flask(__name__) +sock = Sock(app) + + +# app.config['SECRET_KEY'] = 'The quick brown fox jumps over the lazy dog' +# app.config['CORS_HEADERS'] = 'Content-Type' +# cors = CORS(app, resources={r"*": {"origins": "*"}}) + +@app.route('/') +def index(): + # Passes data into an HTML template and serves it to a locally hosted server + rendered_data = bt.app_data.get_rendered_data() + js_data = bt.app_data.get_js_init_data() + return render_template('index.html', + title=rendered_data['title'], + my_balances=rendered_data['my_balances'], + symbols=rendered_data['symbols'], + intervals=rendered_data['intervals'], + interval_state=rendered_data['chart_interval'], + indicator_types=rendered_data['indicator_types'], + indicator_list=rendered_data['indicator_list'], + checked=rendered_data['enabled_indicators'], + ma_vals=rendered_data['ma_vals'], + js_data=js_data) + + +@sock.route('/ws') +def ws(sock): + def json_msg_received(msg_obj): + if 'message_type' in msg_ob: + if msg_ob['message_type'] == 'candle_data': + # Send the candle to the BrighterData_obj + # and forward any returned data to the client. + r_data = bt.app_data.received_cdata(msg_ob['data']) + if r_data: + resp = { + "reply": "i_updates", + "data": r_data + } + sock.send(json.dumps(resp)) + + if msg_ob['message_type'] == 'request': + print(msg_ob['req']) + print('Request!') + + if msg_ob['message_type'] == 'reply': + print(msg_ob['rep']) + print('Reply') + + if msg_ob['message_type'] == 'new_signal': + # Send the data to the BrighterData_obj + # and forward any returned data to the client. + r_data = bt.app_data.received_new_signal(msg_ob['data']) + if r_data: + resp = { + "reply": "i_updates", + "data": r_data + } + sock.send(json.dumps(resp)) + return + + # The rendered page connects to the exchange and relays the candle data back here + # this socket also handles data and processing requests + while True: + msg = sock.receive() + if msg: + # If in json format the message gets converted into a dictionary + # otherwise it is handled as a status signal from the client + try: + msg_ob = json.loads(msg) + json_msg_received(msg_ob) + except json.JSONDecodeError: + print(f'Msg received from client: {msg}') + + +@app.route('/buy', methods=['POST']) +@cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) +def buy(): + print(request.form) # Debug ****** + trade.order( + symbol=request.form['symbol'], side=SIDE_BUY, + type=ORDER_TYPE_MARKET, quantity=request.form['quantity']) + return redirect('/') + + +@app.route('/sell', methods=['POST']) +@cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) +def sell(): + trade.order( + symbol=request.form['symbol'], side=SIDE_SELL, + type=ORDER_TYPE_MARKET, quantity=request.form['quantity']) + return redirect('/') + + +@app.route('/settings', methods=['POST']) +@cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) +def settings(): + setting = request.form['setting'] + if setting == 'interval': + interval_state = request.form['timeframe'] + bt.app_data.chart_configuration['chart_interval'] = interval_state + elif setting == 'trading_pair': + trading_pair = request.form['trading_pair'] + bt.app_data.chart_configuration['trading_pair'] = trading_pair + elif setting == 'toggle_indicator': + # Get a list of indicators to enable + enabled_indicators = [] + for i in request.form: + if request.form[i] == 'indicator': + enabled_indicators.append(i) + # Set visibility for all indicators according to + for indctr in bt.app_data.indicator_list: + if (indctr in enabled_indicators): + bt.app_data.indicator_list[indctr]['visible'] = True + else: + bt.app_data.indicator_list[indctr]['visible'] = False + # Redirect without reloading history + bt.app_data.config_and_states('save') + return redirect('/') + + elif setting == 'edit_indicator': + if 'submit' in request.form: + # Get the name of the indicator + indicator = request.form['submit'] + # Drop the name and action from our received data + attributes = dict(list(request.form.items())[2:]) + # All the numbers are string now so turn them back to (int) + for a in attributes: + if attributes[a].isdigit(): + attributes[a] = int(attributes[a]) + # if visible is unchecked it doesn't get sent by the form + if not 'visible' in attributes: + attributes.update({'visible': False}) + # Set the data in indicators according to + bt.app_data.indicator_list[indicator] = attributes + + if 'delete' in request.form: + indicator = request.form['delete'] + del bt.app_data.indicator_list[indicator] + # Redirect without reloading history + bt.app_data.config_and_states('save') + return redirect('/') + + elif setting == 'new_indicator': + if 'newi_name' in request.form: + indcr = request.form['newi_name'] + indtyp = request.form['newi_type'] + properties = {} + if request.form['new_prop_obj']: + list_of_dic = json.loads(request.form['new_prop_obj']) + # All the numbers are string now so turn them back to (int) + properties = {} + for prop in list_of_dic: + # Get the key for this object + key = next(iter(prop)) + # access the value of this object + value = prop[key] + if value.isdigit(): + value = int(value) + properties[key] = value + bt.app_data.create_indicator(name=indcr, type=indtyp, properties=properties) + + else: + print('ERROR SETTING VALUE') + print(f'The string received by the server was: /n{request.form}') + bt.app_data.config_and_states('save') + bt.app_data.set_candle_history() + return redirect('/') + + +@app.route('/history') +@cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) +def history(): + symbol = bt.app_data.chart_configuration['trading_pair'] + interval = bt.app_data.chart_configuration['chart_interval'] + return jsonify(bt.app_data.get_candle_history(symbol, interval, 1000)) + + +@app.route('/saved_data') +@cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) +def saved_data(): + return jsonify(bt.app_data.indicator_list) + + +@app.route('/indicator_init') +@cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) +def indicator_init(): + symbol = bt.app_data.chart_configuration['trading_pair'] + interval = bt.app_data.chart_configuration['chart_interval'] + d = bt.app_data.get_indicator_data(symbol, interval, 1000) + return jsonify(d) diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..576a234 --- /dev/null +++ b/config.yml @@ -0,0 +1,94 @@ +chart_configuration: + chart_interval: 4h + trading_pair: BTCUSDT +indicator_list: + ATR: + color: '#1a9b6f' + period: 100 + type: ATR + value: 0 + visible: true + Bolenger: + color_1: '#5ad858' + color_2: '#64d2f7' + color_3: '#5ad858' + devdn: 2 + devup: 2 + ma: 1 + period: 20 + type: BOLBands + value: 0 + value1: '38642.16' + value2: '38641.24' + value3: '38639.63' + visible: true + EMA 100: + color: '#5c5aee' + period: 100 + type: EMA + value: 0 + visible: true + EMA 50: + color: '#464e3f' + period: 50 + type: EMA + value: 0 + visible: true + Linear Reg 100: + color: '#236eb1' + period: 100 + type: LREG + value: '38139.51' + visible: 'True' + MACD: + color_1: '#50d617' + color_2: '#94f657' + fast_p: 12 + hist: 0 + macd: 0 + signal: 0 + signal_p: 9 + slow_p: 26 + type: MACD + value: 0 + visible: true + New Indicator: + color: '#d5ed5e' + period: 20 + type: RSI + value: 0 + visible: true + New rsi: + color: '#8e257b' + period: 20 + type: RSI + value: '48.96' + visible: true + RSI 14: + color: '#1b63bf' + period: 14 + type: RSI + value: 0 + visible: true + RSI 8: + color: '#2afd40' + period: 8 + type: RSI + value: 0 + visible: true + SMA 200: + color: '#1d545c' + period: 200 + type: SMA + value: 0 + visible: true + SMA 21: + color: '#0decc9' + period: 21 + type: SMA + value: 0 + visible: true + Volume: + type: Volume + value: 0 + visible: true diff --git a/data.py b/data.py new file mode 100644 index 0000000..ff130f2 --- /dev/null +++ b/data.py @@ -0,0 +1,799 @@ +import csv +import datetime +import sys +import random + +import numpy as np +import talib + +import config +from binance.client import Client +from binance.enums import * +import yaml + + +class BrighterData: + def __init__(self): + + # Initialise a connection to the Binance client API + self.client = Client(config.API_KEY, config.API_SECRET) + + # The title of our program + self.application_title = 'BrighterTrades' + + # Settings for the main chart on our UI + self.chart_configuration = { + 'chart_interval': KLINE_INTERVAL_15MINUTE, + 'trading_pair': 'BTCUSDT', + } + + # The maximum number of candles to store in memory + self.max_data_loaded = 1000 + + # List of all available indicator types + self.indicator_types = {} + # List of all available indicators + self.indicator_list = None + # Add default indicators and their default values to self.indicator_list + self.set_indicator_defaults() + + # Dictionary of exchange and account data + self.exchange_data = {} + # Set the values in self.exchange_data from information retrieved from exchange. + self.set_exchange_data() + + # The name of the file that stores saved_data + self.config_FN = 'config.yml' + # Load any saved data from file + self.config_and_states('load') + + # The entire loaded candle history + self.candlesticks = [] + # List of dictionaries of timestamped high, low, and closing values + self.latest_high_values = [] + self.latest_low_values = [] + self.latest_close_values = [] + # Values of the last candle received + self.last_candle = None + # List of dictionaries of timestamped volume values + self.latest_vol = [] + + # Set the instance variable of candlesticks, latest_close_values, high, low, closing, volume, and last_candle + self.set_candle_history() + + # A list of values to use with bolenger bands + self.bb_ma_val = {'SMA': 0, 'EMA': 1, 'WMA': 2, 'DEMA': 3, 'TEMA': 4, 'TRIMA': 5, 'KAMA': 6, 'MAMA': 7, 'T3': 8} + + def get_js_init_data(self): + """Returns a JSON object of initialization data + for the javascript in the rendered HTML""" + js_data = {'i_types': self.indicator_types, + 'indicators': self.indicator_list, + 'interval': self.chart_configuration['chart_interval'], + 'trading_pair': self.chart_configuration['trading_pair']} + return js_data + + def config_and_states(self, cmd): + """Loads or saves configurable data to the file set in self.config_FN""" + # Application configuration and object states + saved_data = { + 'indicator_list': self.indicator_list, + 'chart_configuration': self.chart_configuration + } + + def set_loaded_values(): + self.indicator_list = saved_data['indicator_list'] + self.chart_configuration = saved_data['chart_configuration'] + + def load_configuration(filepath): + """load file data""" + with open(filepath, "r") as file_descriptor: + data = yaml.safe_load(file_descriptor) + return data + + def save_configuration(filepath, data): + """Saves file data""" + with open(filepath, "w") as file_descriptor: + yaml.dump(data, file_descriptor) + + if cmd == 'load': + # If load_configuration() finds a file it overwrites + # the saved_data object otherwise it creates a new file + # with the defaults contained in saved_data> + try: + saved_data = load_configuration(self.config_FN) + set_loaded_values() + except IOError: + save_configuration(self.config_FN, saved_data) + elif cmd == 'save': + try: + save_configuration(self.config_FN, saved_data) + except IOError: + raise ValueError("Couldn't save the file") + else: + raise ValueError('Invalid command received') + + def load_candle_history(self, symbol, interval): + """ Retrieve candlestick history from a file and append it with + more recent exchange data while updating the file record. + This method only get called if the data is requested. + This is to avoid maintaining irrelevant data files.""" + + start_datetime = datetime.datetime(2017, 1, 1) + # Create a filename from the function parameters. + # Format is symbol_interval_start_date: example - 'BTCUSDT_15m_2017-01-01' + file_name = f'{symbol}_{interval}_{start_datetime.date()}' + + # List of price data. ,,,,, + # + # , + candlesticks = [] + + try: + # Populate from if it exists. + print(f'Attempting to open: {file_name}') + with open(file_name, 'r') as file: + reader = csv.reader(file, delimiter=',') + # Load the data here + for row in reader: + candlesticks.append(row) + print('File loaded') + # Open for appending + file = open(file_name, 'a', newline='') + candlestick_writer = csv.writer(file, delimiter=',') + + except IOError: + # If the file doesn't exist it must be created. + print(f'{file_name} not found: Creating the file') + # Open for writing + file = open(file_name, 'w', newline='') + candlestick_writer = csv.writer(file, delimiter=',') + + # If no candlesticks were loaded from file. Set a date to start loading from in the + # variable with a default value stored in . + if not candlesticks: + last_candle_stamp = start_datetime.timestamp() * 1000 + else: + # Set with the timestamp of the last candles on file + last_candle_stamp = candlesticks[-1][0] + # Request any missing candlestick data from the exchange + recent_candlesticks = self.client.get_historical_klines(symbol, interval, start_str=int(last_candle_stamp)) + # Discard the first row of candlestick data as it will be a duplicate***DOUBLE CHECK THIS + recent_candlesticks.pop(0) + # Append the candlestick list and the file + for candlestick in recent_candlesticks: + candlesticks.append(candlestick) + candlestick_writer.writerow(candlestick) + # Close the file and return the entire candlestick history + file.close() + return candlesticks + + def set_latest_vol(self): + # Extracts a list of volume values from all the loaded candlestick + # data and store it in a dictionary keyed to timestamp of measurement. + latest_vol = [] + last_clp = 0 + for data in self.candlesticks: + clp = int(float(data[4])) + if clp < last_clp: + color = 'rgba(255,82,82, 0.8)' # red + else: + color = 'rgba(0, 150, 136, 0.8)' # green + + vol_data = { + "time": int(data[0]) / 1000, + "value": int(float(data[5])), + "color": color + } + last_clp = clp + latest_vol.append(vol_data) + self.latest_vol = latest_vol + return + + def get_latest_vol(self, num_record=500): + # Returns the latest closing values + if self.latest_vol: + if len(self.latest_vol) < num_record: + print('Warning: get_latest_vol() - Requested too more records then available') + num_record = len(self.latest_vol) + return self.latest_vol[-num_record:] + else: + raise ValueError('Warning: get_latest_vol(): Values are not set') + + def set_latest_high_values(self): + # Extracts a list of close values from all the loaded candlestick + # data and store it in a dictionary keyed to timestamp of measurement. + latest_high_values = [] + for data in self.candlesticks: + high_data = { + "time": int(data[0]) / 1000, + "high": data[2] + } + latest_high_values.append(high_data) + self.latest_high_values = latest_high_values + return + + def get_latest_high_values(self, num_record=500): + # Returns the latest closing values + if self.latest_high_values: + if len(self.latest_high_values) < num_record: + print('Warning: latest_high_values() - Requested too more records then available') + num_record = len(self.latest_high_values) + return self.latest_high_values[-num_record:] + else: + raise ValueError('Warning: latest_high_values(): Values are not set') + + def set_latest_low_values(self): + # Extracts a list of close values from all the loaded candlestick + # data and store it in a dictionary keyed to timestamp of measurement. + latest_low_values = [] + for data in self.candlesticks: + low_data = { + "time": int(data[0]) / 1000, + "low": data[3] + } + latest_low_values.append(low_data) + self.latest_low_values = latest_low_values + return + + def get_latest_low_values(self, num_record=500): + # Returns the latest closing values + if self.latest_low_values: + if len(self.latest_low_values) < num_record: + print('Warning: latest_low_values() - Requested too more records then available') + num_record = len(self.latest_low_values) + return self.latest_low_values[-num_record:] + else: + raise ValueError('Warning: latest_low_values(): Values are not set') + + def set_latest_close_values(self): + # Extracts a list of close values from all the loaded candlestick + # data and store it in a dictionary keyed to timestamp of measurement. + latest_close_values = [] + for data in self.candlesticks: + close_data = { + "time": int(data[0]) / 1000, + "close": data[4] + } + latest_close_values.append(close_data) + self.latest_close_values = latest_close_values + return + + def get_latest_close_values(self, num_record=500): + # Returns the latest closing values + if self.latest_close_values: + if len(self.latest_close_values) < num_record: + print('Warning: get_latest_close_values() - Requested too more records then available') + num_record = len(self.latest_close_values) + return self.latest_close_values[-num_record:] + else: + raise ValueError('Warning: get_latest_close_values(): Values are not set') + + def set_candle_history(self, symbol=None, interval=None, max_data_loaded=None): + if not max_data_loaded: + max_data_loaded = self.max_data_loaded + if not symbol: + symbol = self.chart_configuration['trading_pair'] + if not interval: + interval = self.chart_configuration['chart_interval'] + if self.candlesticks: + print('set_candle_history(): Reloading candle data') + else: + print('set_candle_history(): Loading candle data') + # Load candles from file + cdata = self.load_candle_history(symbol, interval) + # Trim the beginning of the returned list to size of max_data_loaded of less + if len(cdata) < max_data_loaded: + max_data_loaded = len(cdata) + self.candlesticks = cdata[-max_data_loaded:] + # Set an instance dictionary of timestamped high, low, closing values + self.set_latest_high_values() + self.set_latest_low_values() + self.set_latest_close_values() + # Extract the volume data from self.candlesticks and store it in self.latest_vol + self.set_latest_vol() + + # Set an instance reference of the last candle + self.last_candle = self.convert_candle(self.candlesticks[-1]) + print('set_candle_history(): Candle data Loaded') + return + + def convert_candle(self, candle): + candlestick = { + "time": int(candle[0]) / 1000, + "open": candle[1], + "high": candle[2], + "low": candle[3], + "close": candle[4] + } + return candlestick + + def get_candle_history(self, symbol, interval, num_records): + + if len(self.candlesticks) < num_records: + print('Warning: get_candle_history() Requested more records then available') + num_records = len(self.candlesticks) + + # Drop everything but the requested number of records + candlesticks = self.candlesticks[-num_records:] + + # Reformat relevant candlestick data into a list of python dictionary objects. + # Binance stores timestamps in milliseconds but lightweight charts doesn't, + # so it gets divided by 1000 + processed_candlesticks = [] + for data in candlesticks: + candlestick = { + "time": int(data[0]) / 1000, + "open": data[1], + "high": data[2], + "low": data[3], + "close": data[4] + } + processed_candlesticks.append(candlestick) + # Return a list of candlestick objects + return processed_candlesticks + + # list enabled indicators + def get_enabled_indicators(self): + """ Loop through all indicators and make a list of indicators marked visible """ + enabled_indicators = [] + i_list = self.get_indicator_list() + for indctr in i_list: + if i_list[indctr]['visible']: + enabled_indicators.append(indctr) + return enabled_indicators + + def set_indicator_defaults(self): + """Set the default settings for each indicator""" + + self.indicator_types = {'simple_indicators': ['RSI', 'SMA', 'EMA', 'LREG'], + 'other': ['Volume', 'BOLBands', 'MACD', 'ATR']} + self.indicator_list = { + 'SMA 21': {'type': 'SMA', 'period': 21, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'EMA 50': {'type': 'EMA', 'period': 50, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'EMA 100': {'type': 'EMA', 'period': 100, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'SMA 200': {'type': 'SMA', 'period': 200, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'RSI 14': {'type': 'RSI', 'period': 14, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'RSI 8': {'type': 'RSI', 'period': 8, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'Bolenger': {'color_1': '#5ad858', 'color_2': '#f0f664', 'color_3': '#5ad858', 'devdn': 2, 'devup': 2, + 'ma': 1, 'period': 20, 'type': 'BOLBands', 'value': 0, 'value1': '38691.58', + 'value2': '38552.36', + 'value3': '38413.14', 'visible': 'True'}, + 'vol': {'type': 'Volume', 'visible': True, 'value': 0} + } + + return + + def get_indicator_list(self): + # Returns a list of all the indicator object in this class instance + if not self.indicator_list: + raise ValueError('get_indicator_list(): No indicators in the list') + return self.indicator_list + + def set_exchange_data(self): + # Pull all balances from client while discarding assets with zero balance + account = self.client.futures_coin_account_balance() + self.exchange_data['balances'] = [asset for asset in account if float(asset['balance']) > 0] + + # Pull all available symbols from client + exchange_info = self.client.get_exchange_info() + self.exchange_data['symbols'] = exchange_info['symbols'] + + # Available intervals + self.exchange_data['intervals'] = ( + KLINE_INTERVAL_1MINUTE, KLINE_INTERVAL_3MINUTE, + KLINE_INTERVAL_5MINUTE, KLINE_INTERVAL_15MINUTE, + KLINE_INTERVAL_30MINUTE, KLINE_INTERVAL_1HOUR, + KLINE_INTERVAL_2HOUR, KLINE_INTERVAL_4HOUR, + KLINE_INTERVAL_6HOUR, KLINE_INTERVAL_8HOUR, + KLINE_INTERVAL_12HOUR, KLINE_INTERVAL_1DAY, + KLINE_INTERVAL_3DAY, KLINE_INTERVAL_1WEEK, + KLINE_INTERVAL_1MONTH + ) + + def get_rendered_data(self): + """ + Data to be rendered in the HTML + """ + rd = {} + rd['title'] = self.application_title # Title of the page + rd['my_balances'] = self.exchange_data['balances'] # Balances on the exchange + rd['symbols'] = self.exchange_data['symbols'] # Symbols information from the exchange + rd['intervals'] = self.exchange_data['intervals'] # Time candle time intervals available to stream + rd['chart_interval'] = self.chart_configuration['chart_interval'] # The charts current interval setting + rd['indicator_types'] = self.indicator_types # All the types indicators Available + rd['indicator_list'] = self.get_indicator_list() # indicators available + rd['enabled_indicators'] = self.get_enabled_indicators() # list of indicators that are enabled + rd['ma_vals'] = self.bb_ma_val # A list of acceptable values to use with bolenger band creation + return rd + + def get_indicator_data(self, symbol=None, interval=None, num_results=100): + # Loop through all the indicators. If enabled, run the appropriate + # update function. Return all the results as a dictionary object. + + if not interval: + interval = self.chart_configuration['chart_interval'] + if not symbol: + symbol = self.chart_configuration['trading_pair'] + + # Get a list of indicator objects and a list of enabled indicators names. + i_list = self.get_indicator_list() + enabled_i = self.get_enabled_indicators() + result = {} + # Loop through all indicator objects in i_list + for each_i in i_list: + # If the indicator's not enabled skip to next each_i + if each_i not in enabled_i: + continue + i_type = i_list[each_i]['type'] + # If it is a simple indicator. + if i_type in self.indicator_types['simple_indicators']: + result[each_i] = self.calculate_simple_indicator(i_type=i_type, + period=i_list[each_i]['period']) + if i_type in self.indicator_types['other']: + if i_type == 'BOLBands': + result[each_i] = self.calculate_bolbands(i_type=i_type, + period=i_list[each_i]['period'], + devup=i_list[each_i]['devup'], + devdn=i_list[each_i]['devdn'], + ma=i_list[each_i]['ma']) + if i_type == 'MACD': + result[each_i] = self.calculate_macd(i_type=i_type, + fast_p=i_list[each_i]['fast_p'], + slow_p=i_list[each_i]['slow_p'], + signal_p=i_list[each_i]['signal_p']) + if i_type == 'Volume': + result[each_i] = self.get_volume(i_type=i_type) + + if i_type == 'ATR': + result[each_i] = self.calculate_atr(i_type=i_type, + period=i_list[each_i]['period']) + + return result + + def get_volume(self, i_type, num_results=800): + r_data = self.get_latest_vol() + r_data = r_data[-num_results:] + return {"type": i_type, "data": r_data} + + def calculate_macd(self, i_type, fast_p=12, slow_p=26, signal_p=9, num_results=800): + # These indicators do computations over a period number of price data points. + # So we need at least that plus what ever amount of results needed. + # It seems it needs num_of_nans = (slow_p) - 2) + signal_p + + # TODO: slow_p or fast_p which ever is greater should be used in the calc below. + # TODO but i am investigating this. + if fast_p > slow_p: + raise ValueError('Error I think: TODO: calculate_macd()') + num_cv = (slow_p - 2) + signal_p + num_results + + closing_data = self.get_latest_close_values(num_cv) + if len(closing_data) < num_cv: + print(f'Couldn\'t calculate {i_type} for time period of {period}') + print('Not enough data availiable') + return + # Initialize two arrays to hold a list of closing values and + # a list of timestamps associated with these values + closes = [] + ts = [] + # Isolate all the closing values and timestamps from + # the dictionary object + for each in closing_data: + closes.append(each['close']) + ts.append(each['time']) + # Convert the list of closes to a numpy array + np_real_data = np.array(closes, dtype=float) + # Pass the closing values and the period parameter to talib + macd, signal, hist = talib.MACD(np_real_data, fast_p, slow_p, signal_p) + + # Combine the new data with the timestamps + # Warning: The first ( -1) of values are . + # But they should get trimmed off + macd = macd[-num_results:] + if len(macd) == 1: + print('looks like after slicing') + print(macd) + signal = signal[-num_results:] + hist = hist[-num_results:] + ts = ts[-num_results:] + r_macd = [] + r_signal = [] + r_hist = [] + for each in range(len(macd)): + # filter out nan values + if np.isnan(macd[each]): + continue + r_macd.append({'time': ts[each], 'value': macd[each]}) + r_signal.append({'time': ts[each], 'value': signal[each]}) + r_hist.append({'time': ts[each], 'value': hist[each]}) + r_data = [r_macd, r_signal, r_hist] + return {"type": i_type, "data": r_data} + + def calculate_atr(self, i_type, period, num_results=800): + # These indicators do computations over period number of price data points. + # So we need at least that plus what ever amount of results needed. + num_cv = period + num_results + + high_data = self.get_latest_high_values(num_cv) + low_data = self.get_latest_low_values(num_cv) + close_data = self.get_latest_close_values(num_cv) + if len(close_data) < num_cv: + print(f'Couldn\'t calculate {i_type} for time period of {period}') + print('Not enough data availiable') + return + # Initialize 4 arrays to hold a list of h/l/c values and + # a list of timestamps associated with these values + highs = [] + lows = [] + closes = [] + ts = [] + # Isolate all the values and timestamps from + # the dictionary objects + + for each in high_data: + highs.append(each['high']) + for each in low_data: + lows.append(each['low']) + for each in close_data: + closes.append(each['close']) + ts.append(each['time']) + # Convert the lists to a numpy array + np_highs = np.array(highs, dtype=float) + np_lows = np.array(lows, dtype=float) + np_closes = np.array(closes, dtype=float) + # Pass the closing values and the period parameter to talib + atr = talib.ATR(high=np_highs, + low=np_lows, + close=np_closes, + timeperiod=period) + # Combine the new data with the timestamps + # Warning: The first ( -1) of values are . + # But they should get trimmed off + atr = atr[-num_results:] + ts = ts[-num_results:] + r_data = [] + for each in range(len(atr)): + # filter out nan values + if np.isnan(atr[each]): + continue + r_data.append({'time': ts[each], 'value': atr[each]}) + return {"type": i_type, "data": r_data} + + def calculate_bolbands(self, i_type, period, devup=2, devdn=2, ma=0, num_results=800): + # These indicators do computations over period number of price data points. + # So we need at least that plus what ever amount of results needed. + # Acceptable values for ma in the talib.BBANDS + # {'SMA':0,'EMA':1, 'WMA' : 2, 'DEMA' : 3, 'TEMA' : 4, 'TRIMA' : 5, 'KAMA' : 6, 'MAMA' : 7, 'T3' : 8} + num_cv = period + num_results + closing_data = self.get_latest_close_values(num_cv) + if len(closing_data) < num_cv: + print(f'Couldn\'t calculate {i_type} for time period of {period}') + print('Not enough data availiable') + return + # Initialize two arrays to hold a list of closing values and + # a list of timestamps associated with these values + closes = [] + ts = [] + # Isolate all the closing values and timestamps from + # the dictionary object + for each in closing_data: + closes.append(each['close']) + ts.append(each['time']) + # Convert the list of closes to a numpy array + np_real_data = np.array(closes, dtype=float) + # Pass the closing values and the period parameter to talib + upper, middle, lower = talib.BBANDS(np_real_data, + timeperiod=period, + # number of non-biased standard deviations from the mean + nbdevup=devup, + nbdevdn=devdn, + # Moving average type: simple moving average here + matype=ma) + + # Combine the new data with the timestamps + # Warning: The first ( -1) of values are . + # But they should get trimmed off + i_values_u = upper[-num_results:] + i_values_m = middle[-num_results:] + i_values_l = lower[-num_results:] + ts = ts[-num_results:] + r_data_u = [] + r_data_m = [] + r_data_l = [] + for each in range(len(i_values_u)): + # filter out nan values + if np.isnan(i_values_u[each]): + continue + r_data_u.append({'time': ts[each], 'value': i_values_u[each]}) + r_data_m.append({'time': ts[each], 'value': i_values_m[each]}) + r_data_l.append({'time': ts[each], 'value': i_values_l[each]}) + r_data = [r_data_u, r_data_m, r_data_l] + return {"type": i_type, "data": r_data} + + def calculate_simple_indicator(self, i_type, period, num_results=800): + # Valid types of indicators for this function + if i_type not in self.indicator_types['simple_indicators']: + raise ValueError(f'calculate_simple_indicator(): Unknown type: {i_type}') + + # These indicators do computations over period number of price data points. + # So we need at least that plus what ever amount of results needed. + num_cv = period + num_results + closing_data = self.get_latest_close_values(num_cv) + if len(closing_data) < num_cv: + print(f'Couldn\'t calculate {i_type} for time period of {period}') + print('Not enough data availiable') + return + # Initialize two arrays to hold a list of closing values and + # a list of timestamps associated with these values + closes = [] + ts = [] + # Isolate all the closing values and timestamps from + # the dictionary object + for each in closing_data: + closes.append(each['close']) + ts.append(each['time']) + # Convert the list of closes to a numpy array + np_real_data = np.array(closes, dtype=float) + # Pass the closing values and the period parameter to talib + if i_type == 'SMA': + i_values = talib.SMA(np_real_data, period) + if i_type == 'RSI': + i_values = talib.RSI(np_real_data, period) + if i_type == 'EMA': + i_values = talib.EMA(np_real_data, period) + if i_type == 'LREG': + i_values = talib.LINEARREG(np_real_data, period) + + # Combine the new data with the timestamps + # Warning: The first of rsi values are . + # But they should get trimmed off todo get rid of try except *just debuging info + try: + i_values = i_values[-num_results:] + except: + raise ValueError(f'error: {i_type} {i_values}') + ts = ts[-num_results:] + r_data = [] + for each in range(len(i_values)): + r_data.append({'time': ts[each], 'value': i_values[each]}) + return {"type": i_type, "data": r_data} + + def create_indicator(self, name, type, properties): + # Indicator type checking before adding to a dictionary of properties + properties['type'] = type + # Force color and period properties for simple indicators + if type in self.indicator_types['simple_indicators']: + if 'color' not in properties: + properties['color'] = f"#{random.randrange(0x1000000):06x}" + if 'period' not in properties: + properties['period'] = 20 + if type in self.indicator_types['other']: + ul_col = f"#{random.randrange(0x1000000):06x}" + if type == 'BOLBands': + if 'period' not in properties: + properties['period'] = 50 + if 'color_1' not in properties: + properties['color_1'] = ul_col + if 'color_2' not in properties: + properties['color_2'] = f"#{random.randrange(0x1000000):06x}" + if 'color_3' not in properties: + properties['color_3'] = ul_col + if 'value1' not in properties: + properties['value1'] = 0 + if 'value2' not in properties: + properties['value2'] = 0 + if 'value3' not in properties: + properties['value3'] = 0 + if 'devup' not in properties: + properties['devup'] = 2 + if 'devdn' not in properties: + properties['devdn'] = 2 + if 'ma' not in properties: + properties['ma'] = 1 + if type == 'MACD': + if 'fast_p' not in properties: + properties['fast_p'] = 12 + if 'slow_p' not in properties: + properties['slow_p'] = 26 + if 'signal_p' not in properties: + properties['signal_p'] = 9 + if 'macd' not in properties: + properties['macd'] = 0 + if 'signal' not in properties: + properties['signal'] = 0 + if 'hist' not in properties: + properties['hist'] = 0 + if 'color_1' not in properties: + properties['color_1'] = f"#{random.randrange(0x1000000):06x}" + if 'color_2' not in properties: + properties['color_2'] = f"#{random.randrange(0x1000000):06x}" + if type == 'ATR': + if 'period' not in properties: + properties['period'] = 50 + if 'color' not in properties: + properties['color'] = f"#{random.randrange(0x1000000):06x}" + + # Force value and visibility for all indicators + if 'value' not in properties: + properties['value'] = 0 + if 'visible' not in properties: + properties['visible'] = True + # Add the dictionary of properties and values to an instance list + self.indicator_list[name] = properties + return + + def received_cdata(self, cdata): + # If this is the first candle received, + # then just set last_candle and return. + if not self.last_candle: + self.last_candle = cdata + return + # If this candle is the same as last candle return nothing to do. + if cdata['time']: + if cdata['time'] == self.last_candle['time']: + return + + # **** New candle is received *** + # Update the instance data records. + self.last_candle = cdata + self.latest_close_values.append({'time': cdata['time'], 'close': cdata['close']}) + self.latest_high_values.append({'time': cdata['time'], 'high': cdata['high']}) + self.latest_low_values.append({'time': cdata['time'], 'low': cdata['low']}) + self.latest_vol.append({'time': cdata['time'], 'value': cdata['vol']}) + # Update indicators + updates = self.update_indicators() + return updates + + def update_indicators(self): + enabled_indcrs = self.get_enabled_indicators() + indcrs_list = self.get_indicator_list() + # Updated data is collected in this dictionary object + updates = {} + # Loop through all enabled indicators + for indcr in enabled_indcrs: + # Get the type of the indicator being updated + i_type = indcrs_list[indcr]['type'] + # Update the indicator with a function appropriate for its kind + # TODO - Check EMA results i see a bit of a sharp turn in the ema line on + # the interface side when reloading the page. It smooths out after a full reload. + if i_type in self.indicator_types['simple_indicators']: + updates[indcr] = self.calculate_simple_indicator(i_type=i_type, + period=indcrs_list[indcr]['period'], + num_results=1) + if i_type == 'BOLBands': + updates[indcr] = self.calculate_bolbands(i_type=i_type, + period=indcrs_list[indcr]['period'], + devup=indcrs_list[indcr]['devup'], + devdn=indcrs_list[indcr]['devdn'], + ma=indcrs_list[indcr]['ma'], + num_results=1) + if i_type == 'MACD': + updates[indcr] = self.calculate_macd(i_type=i_type, + fast_p=indcrs_list[indcr]['fast_p'], + slow_p=indcrs_list[indcr]['slow_p'], + signal_p=indcrs_list[indcr]['signal_p'], + num_results=1) + + if i_type == 'ATR': + updates[indcr] = self.calculate_atr(i_type=i_type, + period=indcrs_list[indcr]['period'], + num_results=1) + + if i_type == 'Volume': + updates[indcr] = self.get_volume(i_type=i_type, + num_results=1) + return updates + def received_new_signal(self, data): + # Check the data. + if 'sigName' not in data: + return 'No name provided' + Signal + + print(data) + +app_data = BrighterData() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..03cec72 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +numpy~=1.22.3 +flask~=2.1.2 +config~=0.5.1 +PyYAML~=6.0 +binance \ No newline at end of file diff --git a/static/blue_img.jpg b/static/blue_img.jpg new file mode 100644 index 0000000000000000000000000000000000000000..04ae8f9703e833ca385e7a67779378091367d2de GIT binary patch literal 132488 zcmbTdd03L^8#e4rQ_a{mR%U7Glx3-@xuC5&ZSG4hpyI-$X$hf|Yp%>Rm1Qcq;*vV$ z3W(+csHjYu8%X7X3yAzuq11o`6$!-maenXne#iIy^}X+t9tVd#+|PYo_jO;_b)VYK9B*8=`z7}58U540+>5z+H!M2-mrK8#vrye&t6Ww2{=4rsfBxsSW$TvB zYugV$Y}vYf+xG37zd!!8~sylW9*Y=-w@7c9;_vYu#K{mg>`7PjQ z=a1We+`Qxe?ArK8MeWBeDnF=f`R>V6Ey}%G}A75zjt&q^$ zcf#ON(J`@c_u~`(didyZ>XWBw**Up+`Iv&jqF3b=l~vU>SX^UMGm%7YX>IH3e%sUA z*FQiT9vNkhjZaLnKF-X}@%W!U&o3;ACCe+T(lyz)O}oAW?EGKXe+~Qp*rf*8^*yi# zKWyK$>$~scfZr`@KWsf}x^3@e_w6_D?K@`n=a2iZWW8*7^OLT*$5-{B$RX7O$1Ogd zSlTr0U(5dg8TR1+%Ci4$*#Bb}OJ(Pl?|{YIqNZY_qS&S3K~^;9D8E%-8tqm>9X3>w zJ(H*jG0}%-)~jxAs2JVaQ0c_Z$C>IZZhpd@PjaGIsECLz8!DGh0Dq{FdvPVhF!@5s zYtQ!jN^kwLv+?h`*YB1|*&ar3(>7EVk8cjp-|?A66S(D`dsA1%;&uSftFfN6QmkN< z->{Q$M>kYr@n5u;E6(=ANSh;v{5$e3u4D`tIp;TN`EOFJ&Kc_6Vr2pyn4$aX0QFNX zRmxPQgjw!M*iz6C5o2zrY;=<^lzn0V-`{*@QT8-9I_5ZumlDEnp3^PdDdBIZlxCy2 zF0OJfs)=aRoTB2_!{ErA!3zQp?1qZp$@P_Mn0@iEf9G6OKyS-Ot@uZm=U&r+XZdZ~ z#5~Ckf&BMITh1s%??G~7gly4deZ|!e8!MD-4v9VG^VbdUGp`mxVJpDHz{t?zJL_M{ zq$A)MG@SW)+<;gS6r!(os0tv@~QVlnRUd2ZKvE!+^k_5QxVM{^3O*}9U+xNZs7V9%3 zbKk#bRRMk)MsdB$!Z6B2CmGSc;r7}+*9ky4CV|uA%j($(# zbdsZ736MLNNtR63SD9s@6rs72;ZHagV)G(GXu5%)@XXhP`&UNoPnk3gmjCN8=1IjeFoSA`a9m%M7gC$a2%&`y zo(*(7&j7q-#{!(a8B1PFS!oF`(UW&dQ|yca<}8Poxpn4-ug?L&@+&_78?(dGCNIM) zSagUMIB&(S3|2NqR4v%HVZxIpts`QqYyGg<#(Wtf(9`;!^(6363^2q+8I=kweb^FI zcqoG6k^In1QC;Lu-W^#h-77PZ4_J$&xT1hTyKj@g+EQcgLacxd)YM+?eyV8X`EpAh zU^Vb~HI6;wUq9r~BcRb?jTK2<>#y8%_?vrtB!#2LU1Hr}^ z4-x(E++B{$4O?>0JEJ;oO!Sa63+!5=;bW$zg(q1dp+I0B<$N9$S%yZeGy*=5Ct5Yrx@)t6b`<8Qjv%W8ZtvE^-cvPcBxqwmfC2`1Xp{XW`i#6kZX1h)q+()$XJ zZK(W%CB&GU&`$$%HkpiUZ}M2g z$<4f1h6M7+fNW@W638NDB^T(@YImBOsjGM)!W5MZIG(A&269^|U>mLYM!@h1Q)IVY z26OLPM!8A!^_Id`$#K})J`dvCO4PprMAW`&sOZoKM~R1dI%nP!o&Hw_DmgrCK?jyg zD#e0hM+7tLVpIpPbq}y+0;;9J=-|U~`^=LX|MixHRX`6e_f%_d>Os(M4(_sG$L9kZ zG)EB56^~s8Vz?sIY&qh23jE@m`TK&6WD}0=ixUrZ48A-?i=D62) z$`M#-zmtR1X}k?QN15>NL!3Z2EywWFfxP!ikgTUKDn&cx{$&!Dn_QS9$U(jLMTu}Z zbk;qQ9Y&&>R1vjP?o}ok1|IWQj5&(#03@+W@rKH>CM4il+PSL*e@i{XZQ7rs{wc}| z581wc3kU$K+i;i(U(Uqn4-KAV0js*X3ejbEfC0TY;>WDJg?6I zh2+1*ZQ6e2<;&$-8h@`7)`b!p2J9)qD%RI;bA?On&R-aNg zGZ#}gzzO|tg4bOiamMma-)8CcZN?)mf~~hX>kSpIm&mA)>>;}VSLGkiT!=9Fw}KpP z0k+$wD{w~-Iwr&P%S<&`dNS%}4t9|{Qzg@G?<(1pqTpZP=NvyBTE%XLsFZ1mz&`nJ z-Eq6q7AIVzBoE0G~L`Ysd7c#|K;Fio+3jjxcoYiDbw}T zLQ%l@a~g-#1hN#7#m_bz>?!Qr?jSw4BD4v@tN8}(oDr3=$FV_E2+iz?{G0jyD7f(~ zp?qJFhyK8>V=TNKg^%BBbpC8QqHMVARBIX|A}wuZs@9iHYW@MCfPt>o7$d)-)b+0c z)!?>8yz;bXQU_fDHkppd&kO#9yiJQ3yv`G;AH&VO7$OOC+kdI1-5xac%36e~^~i}p zx~s7$xM&1}7-?>(P=@P{)o5v~p&3rCzNoY;@7LAwwl)13wyV_^hD{)g-y2DAn-d+l z)~he7Qz$-3%1P*h+fUZ8Pq_}V}mbW|T z$m5c|Xw&4PY9Mf*c!E($&y-9Uu!kY1J!B~>#$(lYLDl;22d^I1qCSI#@h)3UH0 z(wJWPt<=cTK!*^#j=3rrh6y)ly;}4ZaxZA6Isbh${GTLd;5+rOxIMzL%1%BkVfckJ z+`jTeRtBoWHS_%-7&(ETh7mw7KSfCKu+ZBA)jg`c6IepfJ61Nr5;Dt&#It8pyqL%LJ4GwOF zP?k@P&2f7cQ{p@I0VjgarzejTdGLS9*9aCbU17@%JuXdL+G<)AdN_#)-6z_aGgN#B z$I7iSN`Z;MkJ0z0rbaa%-Y378gU!}0sNtS_xDPjl30tlh1^p=Z4Q@5$Wik5RTtPIe6r0iG!Mh2FCE7G{0QjNksK?w7bX0 zvh4>EinDc@oDW@alK=V})D+Z9v?c%S)iSFR|!a8nb=9G=pk8MBKL zZso~3U?fQ&w=;To+wjncZ^3wxy%BRx)&{|3TQ3^(Yl6`OS)H)_Ob=jRR+9%2)(b}D z>(Dkm^cwYXBk0<$`*WzW{3fhUbTm(NNU(df>dzbqlsgzO%0wfg{1w%9riY)&+cHpb z5R#&`W)4=A>E3$-02N<1RtDvX#8M7;fuqeq)-90FzQ1sX?)b$TNx&o8OxF3~`0a!J0i%(rrcnOHD;p|~bRQ*r zye&oy<0&=ip&SKhAE*kH`{%sNq$JUkE7ElQ1k$8Gs=^(idz|5nrK$1{H>3#sI&|$M zULWcv!lr?f0R?(UqQ0u>Sn{gpg+dP)6+Felz02@mJ$;{s~ib=pS- z6x%(gnPec}{7U**z|X$JgsD4vq^)0?9gU_(Bt5u9W(#?)KSl5dT&a&J*T{fnG%4=;YGvGyH z8`I`=6Dqcqr*nV4+9di}D6b0l1zz&JhH=cU>?78sAap2WqJkVC(Mu67V3gnM-%OXy z_a)Tb;9GRklBjv8^GC^Aab^+-mG|5xw(tkzz7!5U;Bd8$>EYjHNSdOVpW*Abp>i2J z3kEtU#2WTix&c{=73aLWeHT;~uk+0lLepCq>~veMsx`PaUww@9Mr4<(KPobrZUXUj zVHh6Nvdq&X-nJr>3m3wF`gEjdRPR^TEI6Jqm08JOmU`0hkc;kEvpS|yGc(cVs1io;6CaXa z#s*~@U-fF}y?J<9;0eXm8cgtuy7vlWX6ke4Mb7y6ZSr$Fk~zfZ4H5HxWHy$ykY}{?s|yo$ry> z-hN&7U`n~aI9Bfi0|cIl{(S7Cinlwsbh!rzL-dH_TGa53^$*yv81XVTe6m`7QZsn z2tQWs#o~S$iB%M0=X6Zf0+_WQsQC}mjalz}CQ|}h)tkbr?7P%uv16k%!5&v{q9cL8 z4e7!k!POEY&nl`urie#9ZHJ>Fgvx!|NP8oJ;$1P>gNT*nT5<3P8otCrbP|e>kqdAg zVUhBe4AG&Y(Suo*1h4r%4&hRmujUy#Iv;l$K^6+@60)S3X^H!Vx-x9>R^JxbG^)ux z9tM4%J5rE(bG4d{TYqUYT`hw_v&U?f9|8xy7h4KCUdufT%fbzisjSM!pV;8ECe*HgAun7jivf04+p(dd?(|yj{#t(H(vN?=SpPD-;GRFyM@JVCpj{N-1*0oR#_aeqvim7{g(R`p zCWoAv%R@))`H0oL_*}oggQSeX=#$TkrA9td8f28;;UZn%WM3>o{|1!O$B@c)RI8g5 zae=R#ClqUWnpI5~!{^_oWjAPK!v_x_o=@VD;jP_9x>tr6tx43 zjIoOBpdqBL$OFojW#4XOJ}Y319r1m|vPtFRLTzS(p{2hNA$QUgR6|I@?C(nTIykVA ziz21=laViySqXg-q`E9-QFMFCsQIfS5e(?kn?4%# z#O*LsLE99*48tc7fBj6gQfJy)&oiKbOV9# zL5tB>I}O(mj#}Tmfcu2$d|AY$!-M%p$*}1t@8uO)DX!P%ekU`|1^p?%#MEoesSKWs z+v?1iW$5Zd+IBJ*1SjkT0@j{OH8@TnDWR7L?xDeD{ zt%~=i*_nELyXEBTmBcl=DKzqfKEhuOmt)qT4U5@CStd>Ar$Z+$5UmfKOb3o~0q+dr zw}J5ZgP+YN2iA}oar8=`R%Y)v=Z+0%%(Up#p_N(bN;Dk z;`${|p>_Q3>AcB<@>C70PFkn;7}{{r^Yne~+)hY>SETx&_XLXK4p)oMZ&y%3ccGI7 zv$E8WVB#Wb4fC}{hO2br?1v}z9{Z=Ej&<;qO+xA5P`&f0N2qO`XYKXhI#S?K#=PZS z9)valE9{kyJ`UJ@x?pg~r=qE*j4Q&F-K>5escp3g6m7YB^rbVIL254Fclz3sTj{b8 zG^e_Yemo_^gX6dCtRT1`Ew&=7jeu6j>fFvO;ip(Z$AXPfc@mCS+~KBLd#{9^AILPx z9?|og+aH-XcoU&|tL2$Z7ZC<;khc(ygpLnnnbD?au*fM|Yfq#Xx;@4dH~}61)i73C z6RX-f7w(@l%5BPMC)gP=;?pQwt$|#AQqHvaAWQ6obvP3bwYf>LzN#LemyZ%j27``| z&6|_(?iN0H%b)SK^nllAE048jg(JDqjf!Tj$tR^`bl5MCRo^Ft+j~o^ZS*(K6`Ea2 z7>EBFWFHVw7B{`2@&!>*#J!bd_1>p#Scch+;%umVKxht0U49o!)2EZ?X@k`Jw}wC1 z?urzb{JkW5*7AE8<-ROs-Px$14t{y}bm9n4w;<)2=0H3xgN<;UPya26=yz4C9zd(Z zrlGQ@N+!^~wM0QMouLd}=P3p8?1l>ZvQl6>q+nWMl&RN#%7Pryg;9Z7JP zp}v6eegU{Xq41Tdem}p?X7)cHQ3g*tSBJ*x2VYqxpa(*xP-(64t}Xp_G~GbIqF@Jf zo2dtp@_GvLYNC^=t64jVZ*$JXt?_a3DJ#`~+mQ~rL8@J?mp~_k`9)S)b~NU`?y?;I z_jPvL3u-52Sd7}^-zmjBd2d^*>z)4EtZ-CbEN(>ji!Vk_@X%+!<4VIqGRnzQ9B4J> zN^3fM5oMqOG~JDhP>J#qmrD0_rXWlTMI zK;s>5k29WDS)_(r4$-vozi^Q_iNuRCiu`9o<^D)?O;ki{ZW0mhcZQxPr}p^S{l_%7 ze9-IXx)~?rhDvDR*{M!u2so+dNR3aNmE3x?^=d)wkb>=j<)#QyB1Dk-9C94Pi?}0s zOkPOkRbDF>Vh$ztz)UjBO3wYJl+s6}l30S=Lr|+x8k?j2= zV^dxK2x(&%tERe=%N79?72x8kSiT+D^iC+rT1qh0Jb%OIuC0(5H6YOidbyg?Y=@qi_pkOnOuH395syIF z83Zx2R|fV;X5D%wxeXvx4tztSRwJ>*Z)~-W^m$;NMgJ?JuqQhI-Zt`;co`zWV(^~2 zQBbpKD;mIck3XNQ<1jo8c*R<_EcyNt72;D!eHL>AjHJdb)j0xX69<&d{ELaIk#%ui zX_T<~E#@9P!-Cs6t=O-2e8*?xHSDynoPtA~jh#9vAGNjq>KHg*xf9-cZi=B~?mYvM zb3v|I!cg!b7+jAS8^G4!)xGmfeesk)t4sLMP{8KT#yEWX-iGoethi|AH-kSkFL9?K z(%NJX^VKfv#Ux_GC2EeDaNY}aZM#=whh@F;FCPfH4QU&=gt0*8X{Ep;^7~=}Ls;B| zze5al6UHrGMfYBhNuTAZTfpf$47YTdlQh11@J%i_@?nKrMHdx5Mdc9Onn>@SHQ-M= z1Yw-WJkB&pQD$sY2qt^G=scVw=trrU9XBfBK7wQ=^`3^acP-%_@^A+NI&i$bL6_(1 zrH_1?h#WnjHjFm7%)KBu2kkW#njYykk-NBD3#4Uh1F~=W*I_T`;;%kcOqd<=ykrML1~(7Lq_y zT+3M(`MKX1WZnv1`$z~v-Am@j$KR!&KHb7YG@44?|5@;Dy6~l2KDrhyy}gXxzZJ|S zuji?!oVC6t!^lTxf6nvOy@agt)rh-ZL+pP)krJHKih#_hZ}p2{ND)?n5BuPStT)iK ztmZ2(>W|+P1ZNRRqxwH_q|mzfL?uk*N!pVz%WLH@f(~$6{e;5;iIz=5MF>aaph-fp zmaA#TH;XMB74748heKXE{bX2CY1XGU>?f3TzKgfS-KH2 zY2X-8=Tft$nb>+;q)^R2IC4e3bQl?Em|2lL+xen{vn`n?YnAR#JLD(w9AgirT3o>e z>2|p3|6S^PNNEDk9Mf5TxXb}?J$jE?jg^{$-3dQu&o?2qx(n79vJD-|i(^^E5vLf$ zEI6m*pR%~GxO&Gg>Fz!H_Vv6I++EVK0;3e<%gAYhYxb|hAygU-v0b$D zSFCokqxIL>8~BKbPxg2Siyg~hlj`9~vDA=49}*8lHH}1O)uWClXozCbcY^y7hR&kYo7}k{$b>@JU9hlzHuRY%a83jg^DF!ydcJx zC%wdBFd`__sE(JkE^@@(lRokYoJV}=Nf8ZpHh0Db#1fWWcfc9?~a)>hq7P z0M;vxXh(;nEC_E>rVH?W0i8_$SA0X6pY@8znC|*}H%!bOA|*T`AG`ST498Z$H3O)b zHUvZKq(lb7Oj479lwY@lfXrzP*Cce(%9>_-g8%gAS4;ytk`WR*3^t zSFs8Eya=9DfPyYq?ll(X%KQ8BTNeG~=4CIc$?Iifgl<#JoO@bE@IT9yKD2dK&F8(N z`MirQ$6>3QuP2a5BBj|O_|!ryC}^DtQco*4qSclU$_b=eBqXyO`%+f^zA|{#s-lJF)yxpQ%x6xbeK@nq`2p`!K$~(6I~eYz<8K$`MmS8v{G2drQj(x+%_Z5 zqnCO{;BkXV40)aaiiUj6BR}0ICuYqF*nVRTKN*e0eO+HzDBp)xGkR=<-(6mmeRJ1qy>H<{hE+E%*j!d75H@m9Y!jXVmkct*5N~6OX%-%C-y>j}` zr2eeV#pDIupL6Si*B)FF+bNuBQ_QUaRFi1}dcO(gxDAKJ%;%b*dRyUk)8}jGQ`b`L z4IeZ=)1i9^B&WddbvRfah<{A%w~i}%A5B*K7G9BU37+LwO>_Z4m*Jhka0}Z$dHyVN z{e0rkF=}B$r`MwQ(Ny@OUW2nAeUG2^UM~{zF1`zDV_$nW6%I##*>-k9z$Oce+OTs? zkNnXI4zJic3<+6z!S0kS&G|vdfUI~8HCdYhw?y!P9_ls#+190gnKxyzbH9xpXwvu= zRX;6nM@tc<&B-IL0O;Dxt)s`PEP+IO{U4ooPt|Y166Sap;%Q~~6{7}1tmRgC_HlOp z79M~c&^0w1IVJ$>z-u2yLVB4pyv=2F3~fmQG^?F>+iRx%bcs>S$eODo_vfV@SC!1m zAoM^-rq*z+ojKC$vLs=2{J^Qt))B>HBwlMOs3HV_?_ekAz4;@nUo%<+Q_K@3xLO;V zrDV}+SfZszVZZ&MTPP{EUye$Rv7Y6%#K1%#bGo!{OQ*Ts^`KS@N}TaRCWm^zbskdj z$R_nM?&;R}Tr&kXftYj*n>x#{rM#N{P3Oy4*+aj9>;NV~Cq0e(T^;E^rUEk2pf@8Q z)&aSgCuh(h$dP!=PFn$yZM5h7`SiBuQ&vD>tx*7iv9orqq?+1Gv*krSe*Kc$C*=g6 zXF7!e*ZKL2Rf7Q1*U(ZId$4OjBJ2rPFSSFLZ$ z4S>wAew&6Iv{OZ2An1d$&B7p@LefmNn(Q7jfa?h828iWYKU4H7jzz|-REL?OzckC@ zOvqnH+Up51w$=-0LyUYrFRvEHnE>-P5?nE84dr;ukCjol64PaM^X|F7x4ynaecYz& zYNPfLmz-Tc$+F!EC$(-dE{cocLSM6SpVmr}4a%MXG{)0Fet6u_sn4`(ljOs=mn{*P z47?i|l9fjNIy&^LZq}01n;_;JTEgKji+EY0CuHw#Q5*BPjhRqs;4U!%Xwz5xLp(8c zxXsBgMm*C;^NqXbFE(3eE&QE2Kz=kD9t!sNcGW%!6nV90utK-NQRJNoV^PPVH$+dj znlbMy9U2_DRlbWjVzk?yCRQhq&%B#imKhD6;l&E8=U>x_B}(8xJ39X3;P=U#(OI45 zy_gPK)bz28xGq?JNG<81rR5_6^}rR~Z0;65i<#>k1(4C+yX@s(MCB&;)Z061J%x`e z!QGZj89bEzc#%{*hilA>zzlDyM2_AWJ0T-m5iOa10(Vpgr05c`HgQCU>c-?oqp3Pk zu|=f(jea7KZB3@pCew8Rzm|s1>F9duX87^g+004Wy{MnrUDF9)xsTk;59SpsWx8@^ zaHuR-J@i5>(d^q{1^Yf{tjy@uZASdgOvX6koWgJm^ii>U46tQVq+b=pj-6GOoUulb z4Hv#oLzaO049Y+TMc6qU+IERR=E2>7hn~Pa=O$zsp%Pl^2qJAiLwHo}aWpq|u zCre`?;SHF)Q07^SP))MZUvJ!i@fv}-V@in)dn}_hWmi6?-YtJj-`^nQ-!nokTqQU@A z#1=jG`M5&?PU;k$DK}}1#Qa6iUFUXy{e-He5k;Pqu>y@qZ_LRkX7$TmfZhljOf*AL z79B28Y$s}XCIy*i<180OhJrX+4YHJQDhG$q%?o)MN}eb$gBz1NR^@JB zX27w%Mant6AgPAl=b@du(mix#9lH7?_rW3 zFDC@JqucH|1}?$+S(LB`-|;@?R{`L0^eg)<0HxA;eGuZ8{7*Q%x|ZF@LQC=Po4877 z&HblNzF*IBd`5w~?;5yNK&vfXF5U|GzS`SLe|+#bvSn5{R`-_<{S3Q=h=EQY;pm=6 zB@oM(4no$PZ~#&ZDbI7yb6imxw2fK&2|Zgo<_B@!L4+9bi@*=Hq*l*|a^{vd<2*Sr z**lIQL2^9&>X_%WsA*+QEs0KtJk9MQOyn89M&d3C;${2DV7}!1SBmEA_PiS!9Z_S? z?7)ZoaSi!O%_4QB=8Lzwca3)J*6R;6H1-S+YVM9g#byP|aD5X}QyF%MB|2%-ZFl-9 z|0%wFqED~XrlYNn_4fn4?V`kyi#9uw(S}3tRgpBXL-pQ}c8mkP@NKn4;zt**DaU~X z%IZ#{bQo|aNs0{>!#$2!dHZj^MK0rcCky)TfJ;crKt064KM0xt+80vUg&Pp3o=u+&2P_-_>3g;~P8fs(s-_!PC1Sn|Q60 z(|{NVdZ}SH!aDCF3I2EFn+~|X6`Rq3NfEUn@cDf@pjAWP$q?T%{wl|{lueIlsYERs zv?6bpL{bSQJ?*@jMz}FWNu(q*vM>Nx(~#2{I(=(iB*QkbjWi!; zDt(gMF%nZ8d?uE~kh+{dxZ2yi_~bfo<}ay6hwJO)l1^Bj<@n#P;*)w@)t{aJI+}e| znYkt>rkowVRNjd=nxRzIc0e`J))_gAJ5K%x6{5%b|dTbuL;wiT+DH#0QDL)pb@V%QoIaz^;3co^5GDhT$|*8al*VYZ>7K?h)9K>E|%(Y2g? zS`Ba36#q=3`f8|7l;_HtM4G%KUpL7hZXL^8{jK0MyBHbk_@eNQX4Wqa4VfWYfYc(Z z*5lC7sHytB=C|bZyK-)9ncnAwJRNAuh%Re?Oz5sKJ+5qyO%)Z*DPgA+E&R51_v^hS zRvejoD}dJdzhgrAZtB`P_*)K3h^nesZ*KIV@1?>A4{9&j8|qXWD{GsA)KL*9(kJ+#01wlpe7^UYu9aOPIZa zQ~UkW!rZ<3$yY|bd|A^ChspufPvLe%KVk!f%u+Nz8^@a9#f=@3uZ z#38L+h91@Fj`ELgIk#VA7@h*xiu_9L@if3Ad%hdIhNt|_4hSu6d3LM?>4zY zotEK=4e1>(V8U_R0~cQ0$0pWf9vsXl`;SsHhqiwaEK7;_h)sE43Xldb_GY=-I~(*^ z&aOQ=*64D+k+ejv^le`sbW^yHg`)=&5(p%4N`gQ2);$bm@aEcpZ&hjrKuMYG5=-m; z>H##8Z@S)oumga$X~Hg8>6_m3NWi1rP$WM zv;1^aejzVHNG6$b1gdGkEYYq$g!+&D?`tZx3d~pFUBY^o{St@=Ls~XVY%S}__mVO zd%V0p^_wIzomAM=;eAT>*Y!U;IpX@SV^jM;oxXO{H5c_Pxg}Ey0#tlQU@Q$R>oTm$ zu!&tdXR3Y)fTJJG=U*@-|IV3Uo*EQ|!!Dko7zNm#SI(v$r#x`{JZH zNV5ykw0YO29?yx_$ZuDAGChtyN-CJoIVCfrf_$c|MV>C=)hKBVpnW5a$|Pb12lwtV zrTzU!DB^BJJ0244(^qdWygBWqJQf)$3d6BlrqFUu}Hf z5q3)TS{TMX^^lI)`V`PWS03vcw*1h%AKU`d8-oQ9v$P7e_;qO#SJZ3A6j-az&+L7A zS{YPO6yzEI{3+VSa!ngEbSEW6;wAXe`@PF(#*duO2xHH{pmWy3t=D&6C?CMOf=Swb zWBF&DoyKE;qgRHJ^$`+Q91bmVN@lEci!1et(!V9>P{=Vp#E3IZ^u95Qu1@r9ZpX|v znV(i<^Q3NwjM~8>$Pm1l!ow%|ass&n1}I8<;#no|y4KxnQ{~DXhSuq4V326-D@?j* zkR^4|r+eL$rS#?+GqFkal_w%2OWM0F6|Dr+PQPaHh1=gHj)nKE63{yb8+r`LauD&L zywCbr;Kzyub|dvnARm34F8NcMU-8(D=)4bCPw=^u(I%9|j-!m;TYEIPln3B!E_?d1 z6_q6^@Zte8GjrnurDM}UfFft!o91@T_Ku>%Iw%Ev3rT!e>&OMgcwTMm{mAC8v%M{8 z1i-ISM6ueD%-W0OV-w~j&B*mnI$sTPO>)_GoN|$s9Fz)(pU-sjUW%^4gJl5BI9Khzz}(Kq1Bf z!XWhdNNGXOBeKC+Bthb7-26N4UB()Cz(~+KpUMsYZ>I1}N0Rg3@;|I=&Qq&W?O~RArZxo$PKxFv=lbrxU}TaD0`?ri!|uH$QK$~d&p>OVx@SLm6TZjQYk8ES53kTCy8%P#u8!KRuE2l<&L}A^&AMWpu_GLQ-ZdN$>t(h z@j5O8DK$TD&xAo=%UgDB1zc}dRa=e8@tF5;XtMRXPR{8nAr667`ss02y z86u~e0P2~Av0V(F!51hm>3aBB!Yr-{DN6ukg+4R7!s44DfErU<-Ax*nL;`chN z%oOPD7fU2=`+=7Cb_JO;M<{`>@EWH>ub=H2wLL=Z_N5(5f2O%t*r_8N8_z{ie4#s0 zOJ{)TMz(G0C>r)kpR_+-eu*4R$KkV?mdW#DjX#F}Tt@Nh)jQl%gDe{3{uXOY|A5+M z+9T2?E>d zn1{1QS2#yTcxP&<`t^3Xl5=V7;>aTuY6p2OEZa7;EXr7G4L+E~ILv+vr*RYT#rcoQq7V9&k80!jE9%zl_P#%LT=$}=eb=$ z#}<`|Kw({vdqaYXi>E1oh|8|c7scVH---`W_Fb>oql?@wtQ)f^WA9G5hKK&l zp5XwYr;#w99v(^afT=m$?Rk|i@u8q*nRzq45{qe#FzqR8ag>^~*tUiTXEpO@UUY z=&OPmR(>>BLCMd$oO8jOuRIL^yON*ZR?V(+p~Aa2h(+7vIJ`fyO$Nt#hrtB`b7>micsze)qlp<(v!^}sz7hQac>FeS;8_ny_?y_ARQ;>D#F_s9JY20l- zpnqc*xHWmPoNboQJlV!3j#rw2%&xRc7Hvx#Sqo=6Q;>_UHv2CtPJfvr%CGFt+9vu4 zLW8I|x+YRY5Z5cdu@eG--Jw_u6J1LtC-Bj=(!N5s!ldhaPR`rqEaP)ay~mm?`3CVe zj&H`j!?7n7fFka4T{Z37__=yJKp+=JO%-mk6&c8kuVQH$mAb?$&Lj@kL9Ng;mZn$aUTJqEyW;E=5f}OpS!YBJ~v4TMy{|S z4-HR@==%#``NfQOUP9G$lmfIVAcnBpB65TR8TR-iL9i@d{oD=sns5e)KmHdvN<+?%ken_QHe(-GX;Og&R zo3Q`=`@dYX%@5y=0x-$IA9<5J=lXVs{uPQ;!RNAMCbUbPn z9{}Pl1sLC&px(omWVB0VcuneFt8Th2NHCZVAXaX9DG`P6?vqlS?y>eah(p(=&5p7< ze}|1#+_~q`xWbVpho$#u!~sfBZ&PeVmxl9qy?X$a=PG09H8c3?)2fkuYu3_Uh|(^Vu;O|YE^J2EZ37|`800NjKEWN`WECCvYC&5$LilCH1ww~Oa0`; ztFTZ%5Cm3?f{q=K3wO^_kRD6taq|FGFI_y>XA8g^;xiXJ_&I>0fY;b!BdE`;@_rRB6|nK+^w%Vk3kj;g~^xRBTOY6vCn9Y4h*JaU_1FPm}A1 znN;)ec@G&16w_;x=l?OcoME^#H2&C|*pRAtLxD#D-9u*0tpvKdC+#lq_(>HIuz?TVoqNil1iGKG6sk#6q9rFnKrN}kOGH%f(-7!#}+n z^XzB{xRg;t&ODY$H8cJXqI%E195o}=4V6jJYW=C?1%RV@a3+0FaJ{HJAm0<6Uu*vN zX&SqjMZu29?RGh4hwLEO4CXxxcc+9Kyalp$aC+SJN?*$-^x@`+N1UX3Ke%0&=3A-UsC(f+MPk+E~sO%*M+w+j4_20L%sQWHCTmAFk zQsuq2{Of9Uvp4+M4R<$G_H?+~%i;_a+}K9TpS$@6%nVCz%-~UKyTPf6Uapnf`nLRc zpF1nVf!(UP1ofPHnsgEoabAX?@|1^12WzO7U%-gRPCD&Ylvt%YRwMasa1tEHjqUI$ zwUefOdsN1*iYWU@bEVv+!3ptLMoyyYemC6 z`IEEA%2?vb{AuC^4W0XQQ*oEF@cWWs0}WoY&Nh~!!=sY+(z&WPjR zE!ZO8l2KL|U(3N!n#5zD z{_u{D+YX>w<9l?H4~}D67*6-8@si((=C;OK5rF1F4O=10z4aSPt-2k%GqE#(I4{=r zHigbC7{4!D&P;~C@GE4p^<-UIAEPM(o7xhQrmJDGjY+YWVXG?~Rc75IEs`eF~F+~oPS`a?=>0}~Ac)Xi5C>3A9~ zdfYIJcphDNZSEHA{6!Se|H79_1f2^Zg*oe6n!;SPsr zyVZI|$8=3jzZR}na&H`Y?6JwdB!In;BHBlC-EQj))>0tttG`OzniahijsfRp!^0#B zsh$x~a1Q?N^sVGkAK!e3L;Lb!?P0H>0?LNUA1l>c<@I}UkC&Az=V#sT+}y=eaQ_EM z-yN3Z-v8ejb)JUxG_=ypla`e;cjbCcrdDR=02Caj%mo6ux13I?-|kG0`vUSSGCMoY~~Yj``CIr zgN#72Kzz*TIbGcYGy@f(GhQh7o~4=)Uzz^sOyX}D`BDGykqiQ^5NU~ykJGGKe|8DQ zpUOMjKZC3@&Y%OASs|spf5WdTAy4bSDL+eK5N_pN`k_dfhWhLIw%-pczWRqh$eZCi z!Sx<&sCiJdZ+joGkNVHdKt%1jW21;ACyulB7_MLk{iHGrJ-7aAh2XVyN5fWheY`I^ zhc;EZ%;e+yY@i*eI@E!7fcFQ%oJP5YsKdK#8ric!mnu_g7Uo zoA&L%_|;nNn_u3Irxd*4?zCvMs9eDvgHkT$RBtKHam^1uGQOQ+puY|d9BYa49b9ez za-hBgW<$G7XwdeHyiUaSJ%wx#i>#E1EB8})TuTmGabJAqHqR^vbZVSUeUZ|y{t*Ka zEw9s}UA_JitwZgcPE8CH#{`iDV9u_m-s{6?J3|7XFBwMyFa4f84u4x_oZI~zBYsShl*osGcjek&45UW+_qtS zc8m8k(KQ01m_1mLSN~m zdeO&AW8wg1r?yE7xe!$;psxb1CC5zKo0=rMG%W8uAln7rcJY4b{BZ%-mlN-agw|TMI6Z9a1j5G6x%}g-*X_0fyx}PU7T@PS=8G znr-7=FG>OoKgA0fqq1M1sUoojttuSU*?56H)_fES+$kC|jAYOxTi=Gn0okC}uy1=w-puWWG?{!6U? zB7V)_&i6eIZi!z#(w2xqkghJL{da08oGt-}@vziS8gg}PTziE<;%kRyRk;gyBVaK` z_PE=`&ni*WO<3X0Q6M~~TFG@8llGbNO1sXwGE?^fEnnYN z&03M8AvtYb;E}QM!^KpXsCN+MX$8^7q$yvG_XJ;I3D~d^wyRT9p_)g~UA z#cu+TRyvu^sp^t{qy|8YC?=q{h2lHKA`bg<24 z1bjN4$74Y@<;;ubZh2)n+}S**^v=JxOjSXL^YY; z%Cb7e+K|2Ef_;(r&fV#-j-nIBf`FxinmddZlM2W={metTrM^oW(G!TOfc4g5R2p#O z4_F5WHDpOGDNME-OVFJ3ixMO({DC*AJGDkocAduzr25RTh_Qs=9(k#SSjw<7E)+ZB z`ey}y5wsrR^slhFyQ4csQ>UhF&(wNe2!fw$J8po|o*6ZkI9=alZJ0=1c5OKR*qGQ4 z)EupGd>lM$pDW|c-#puk^8t7B9Gi8OpiRZ6_UIm*CQ?8M0{_MiIi~=3%zt|SOBBn~ z2mO4r`p%jaD2Tir;ba(707Ke^p<9iv0obg=y6)T?_Rfl$=fle<#@YiB>Luu+JM9~H zi5UY}6ts!}&T#n)B{N$2fy)BJAqP+94)%3yF)dq<9?;mS>sSHkhUGdsaIN@OpS&HQ zb1K0jnY}U`l+$8X-LLt$iG2ZE0Q(G*SX;x_di0L>HhGugUgPu zolMB1K8!2=dodAIT{xGqCJT%C`RZf?gMZ)tbi2pDvDBQ!e#`!7N7=g4%|~gjc%w46 zbH2_u$;@zLE))$Insi^%K1q|3z#xab;0f;ty=MCtXZiGT(vknLB;V%uE(A{?!h$Xo zbF3eCtk4dwo%PjSxCC34JKm6gijTWocVjjtc=X)ZaT)YxRRmxryO(Z#{Dy(78+{ht z6hifCF$smf3{*7s*{q|dfQi{?uV_|tTe5c}#9Lc?Gnt_>G}Pfz!%f828LD$^pyU!VC94K{e+}(^?yIi0b1~CUFjQsHsFs&I_uinDm4|w&kXD z7Q7a`D!kn>bv{-ilmvm2pB|KfzivVq6rU{LOIQW6Z`9YXnGv_L`NmR*S?JJMv(c#E zcEEVEQQec=7T*M2y!(5aY232Kg+I4_LS8YQ;|qem?{S|dO$NI4ES{2|!T4g{m-5;1 z%f`ds_xw~3z5Od<19Dikm_kb5F}I&j{&@QYqJ_Vsq50;Op-%|k=|aP+?(C`#qq5{< zl+P2F$1F}O_~)qbv>n~=klx*G665R)k*fSNOt%I9&%f_3*Z-aIKFs1sT4JU`cqUo) zD}i|aq0w%iWD0luT`MxmM-lg@4i7C|CQ=7E_uemwNe#|&Yihmk?Pk59$BBX1;vetp z!l=`@Pfikj=kg9H=-kYUOQr?!;2JfbEamOMT@IpbsyjdCwwf_gN4q4aRUj#Bq*%8j z_3np4JP}nfQLw=O)e4lbyM^!9!?FXunO=XDVFYf(JFrc<#>8W819m8NNd%_D@mBKN zDyeybYt}^{AA4Y4DschB>1yYo8&M8m{omVtC6FIZZt@LW;PlsGzbk!hJMZEHN2iZH z03xn+!~JJI!*RQ_;NCLkN3t&&;pW)fMFJ zbATLY0r!^z4q~z}b~d`W*6MR$*TyRI;?&lZki*s_zuXXRJ;!Tj8HGv;&R1W|)E3I; zYLg)q(8e@D4p#WX(Ug+n)nZGyAq2CEg-+bj|M8l|>CWBFw=XaOa=3|^_qefT_FCY? z9}5V})mb$)o)5}8MEfjYl;=T4(D|EhMHKmzD^;)i1*~QNETcolseE|)7?u6BiUaRB zgE-p_k}{7P0St}(N4CK;#gLr?n&g>tH}APkWP|=A?QzO$ z56d+<5~ZdI)b6wdcoS~RN&z`8~ zLY0`}!uqKX;{Ub`nzUd-4^%**adjWv3cMF1;Fni^ujwy!YNHlZ9>%?m;~;X@FU(_* zci)%*Bg_{~kJN7|lE2L0##{A}_eIuQB$K{IEL!$AAyE@K_)2raTZ;|wYcs4`Q`|Xm zP7ojLo$A)AY{@qAqt8$vN3_MJ5`5!}w^EmH@!Wqh=4#4E#qN7>X|vmWhae4Ty+)JUNJ%1Yh@Nu=2wBnIi=&h<96;PlTK<-fq`MB!P<( zuO82Hm8p9xUp;TCz2BP!R|5)mJ+!T8VcaE!~WDHKKRcny5de-{r1xF zL5@vK{I>^hH9&Mks6Q>*c!#ZlwN9o5cyER6O+nW@skj|eVGiDpX%fgV?AoU4dVM<( zRv-(TS^m&jKNLY|ay>zwOnI_6|_afoske21`i`&apj)GswpWUv==Tj0g7(Wx}{hHEAmS z5HzQ1053mj6IaIC_8$Y3t}dS^Kv~jX4XToiwo-v7ka6|hF0}k=DcD(o8Mn^cfqz`y zK)|ad7ZXMOw)w+W1EL;>dz~(<8(;m`I3Po8Z~wTYGEk17-H}v4kDFfLnqEsL3~%cq zXG{RvJ%-D2b6Q$Tw*cddlUSwguWvN02^gUd7KCL7M3mFRZY+~2=A9<_@^+_jA>r*Z zxppSvr^eiODCXhvl{4`)O$d%&vH-+Wf!mOkW^r}m@esSl$?{I{4L1W~G8gdlCXDO; z6VR-6yG6@>Vt0DMyNz{rR%ilU5eE9?*}u*?o!4*qO)l8ebDT$7KgqM1gt_IK6>I-b zB}aeB^P2pmGpGO-zMLCC;ojZl*4;~c&VA_)Ybuhn2J)QGJHCi^zi4{LbUg;}J05UE zaE7NoXF7*}hW4%X3r6yGd3d&hIcrP>i;Q-Slvay0>0tMSn>bMe-DPl6cp+z0usaN0 z?@3YI=yql*8H+R$G-%r4K-jn&Fma_BW`r3i$mh-b^Z>O5zd*kPetm(8f6!?XU9(_$ zgg{N9g)ekO*1L^nKlSsup6PsRL2)jDIz+y$Ov-Gn71W$CJQg=Aeu7h2-{swdY$u5k zgF&RF8dryAN(xaR*HY}OZ~GSD#nwU3$6DFFyb95W?2LTCC&}}N~AL8)Dm7} zsyd7X#PZ!+Qm85~QS525y{^pc!A9b29$MTw;i+J;-j|x!{!|JzBC<2Eg871~SzC3` zcDVHYa4obvMCTnbc!vdV$f7ctj0PXD4IUBM-PRSW?HM1?bCQ>1a%UHY z7_GTRlkbu^PY*7_YgS7O79%jbDHv6iO31Nqn+P7o|DIg`}|(Uv&ElFo=Xdx8>}&W1AjX zU8I5z@OOn`cvOkPm86i3T0WHMTeV746=0lqKv>+Z(V3>^xamz!CTYH#bf+h@n3DOL zy5U?#h{AF`m=|+4Yw&K&991m~R8Gcan$Zj7%gMDbQvj62<*)xwt^o*f8}k<;q?#Vx z?=8t*MpPlAnCuxbUxnr`4Xqmkj;ShnC1>kT#fFk(`Y}S+KjF2^3~fkZVh`K*5JOxu zDhxOZsd#LAGg^PFA#TH7v@_P)`p|mj`<@(!{(+O*ap7Z)HB+x?!UIKKk+IXqBg1Fu z%v@^?EQBlnkOXmfGrPqs!38%wS|c}TMA%LXHI+Et2|0bj6a=yK5-(v{K8G&7r70F@eT}T z+>(|c{9o+WUv%>BbR+3}T7jEu47mULscUB;c$Dm8UU6Os$Q}Gon@Yw2HJe-0}*+ZCdZ%hT~1V1+4S{#xK3%gtO~4TH0HQIx|QqVI)%HWY!4x z1`Y?gbb=3GqN>aq)z0AJdRVYInNdjgah0ISsphf5F$s#MBOrK6z;;!SuE}jUx7PCv z4KdxVWa`l6#p)jMIT6snvF+3;{I$U0A{BLWv zPV$+HoS9k&Df8{P!41|F^ZOo(9C$67zMFBx)XKmB+;s!006b`uwF!dFtGGh5GuF0) z{SFm(n@--27jyQ)HEVRvyGOaYvUt7gU_9C9{?+MK0(eOo)ui_RF3YuW#ATq&ndGVc zzdwRDGB#7lmh3vOGw>To^Aoxsni^ybk6-`kGQx6CMmOy2hmtVzfL3=5_$A^HMKt}V z*Wb2=-0cD1{?9oYkkY66<%N30KWP7pjQKW(go;R{3{SmAB;V{yycIEmaW}?U@tH5W zOF*!^o6VbYZi#>N=oT$vq$L&QciFW{xeYY)OPpmgx#K!Bz7reX`dRvYPbZ<<#^U~a z0Q-e~-;><&bElbGchA9#bd|L}kI1WnpoI!S>3;35U^)r&9CLDK-%FN8{kRu})h1IB z*K%g+qcPDA^BKE^HVH2`?*m3UH3;V1;)Xnue>WJpH+#E@)(sB)3Qn}SAagq@+k3A$ zEq?45;Bee&mhs(~l|cH7#XT^q!L-rL%O7;g>kP6yrhX(0c_1_mR>)&U#34d@>|~jT zE!&x?Wr%%VFTYKsc)2ytbS>RJOl%I5Od2cTqn7(##c>v;W4orYnOO`HoLX9H400}> zhu<+ayL=uC&k>v&%; zyeSA%w{HIDx2_oQ1w7W{F7BgA^hDw{#eolWk~kD-C(2#fdOoc5M4YEdGM#l*9tCI^jud?SuotxIsErr4%!KAebk9 z`?s zuPXZtdCR+@fA5MNq=naY9XtimOoTpl*mteqF(J;)!gGL4gq*oIb*m-Yazhxs zG=WZx6?iA@0+=9~48L$}iOx2poPDv|LjH!7;2PSQR`Mcecmtae9Dn?&Ox>-Q-bkvi z2$lGO|4akICgg(yC4yI{1|izER?#E>o@3FCXP6U2*GIQXeSBpnjPgGkB6p{w2iFH0 zXp5Wm`Tes;`!pi9ZyO!apI*Oksg^UAH_;d8x7+JE28Y<4+9G4KM@{+G`+<3Q)1gz{n%FV?OX6bfQ-7rJ_wwkH2!! zRSi!udKd%r2-p%_bUEDt?vY_-Y0phrBh_8!2oLL%A=^*tXZ_AcEtlqXx)2*8AoXn= zw$+Q9jTvd87<29wA8h#1?(`8??xtvcqr^=~2&u5my$>-f#Mh8d8%!nsV}QbhR}xx< zGTJ(bRegiexQ|aK`>hf5N`S19DMqC1QmXSX`v#58;uC*xXl|aDhzG0EEmms>FbTM* zJlS3{ZRcxUgM!tM6Kaz~ySUcC0m|`a{H*uKe0kT_Dm9JckBvjzq+*1-v$KCYbVZ1s1$BI{DK;IdRV z@jecmD{1!s`MM2NGTIy7w7bkR3yKsgAQJ;M(+JZ|iAh0HLVskJoyagmbKe7AgKBfP z?M#dPl_t+|(be}E{5+LwEHD!J?BauKKpvs@%&S;3DB%2y-_I2^dpca^hn!P?R+}Sf zcG6L>2JYqH_X5d1EG9jR#d|^K3jyy_o7_>gi|w1b9yczr_c=9db^A`w$rtBXXaspX2M|o4 zJ?%Gt3s~7P`nWCnrjRvYD;rq=lwgE^pa9(~r3og~)fO7riQ6Zh?{u&rylDW$$~INH zH_pakI-Hsk?~$$IMgc%tqhN_WC5f|4Kpb|Ce`t9j+?&^1wGK+tF+w`Yecz)mTssdwZQESK zE-sVRMC5#}1qwr&Kke!cjETvs(|Fi=ud1F1knj8=@3D1^KpE0L4-b5;TkD6x?|Tfk z(<0^qq*bqzYlH>hh$bujodNn1w7sIBoiJU-^R4zCDNSF|kZ!f|fS#2qlEMYkHuy@F z@|j0LF2$7cRHV~!Ki_}e4vFn=mn;cS#7yORhvO#3-_AaUg=h%=Ej?iz9jzI+C2?`y zivGJMtUs!!@j?4?xRgPnebq=m^{^#%pOoq60)bWC^rA4@nAg;A@uX?u=;97ft(Hu| z=u46n-*NvbJ`%_W`?`=?15M~IQ&x>W(iW<>#;UY5Pp?7qoPQU1@u_#`4CY^iitJa- zh<8gO;NJmr3&Mi&?bBoa#+v%g?I_ujQCWx_$^ABWJiHhem(CtNEnBM1YQD?D<~G0z zH7>rmberysG~7O)p#<6j-VbN&A6AiX&Zs$uN**Q}vvsvuXf~XrJPL!B(WOlG7)H*k z{ew8K)2iO>`By~M9~)YS>Hudwf+0}Oweb=fuTE4gXYFr^0SX@e$HuT5OtXgg_gD_> zdb3AypCh=U;h9HQ-jX1_94Kt*uHFMoGG3$JSX`~kj~`X#dy%KxB!@rHIpXAfexh}8 zP6ymSPzDM^Z`G_ExDoypV+D@yPx_(qN4nTt=r5Uwv|$ab?dUuW-szu|@dIF$3nm;X z?XnT}lh@abBjrH?ojSIKkb{qs=ldlw4$O9zV3Ip(Rett+3S02M54K4n124?V^YMA> zlx>Sm^%8`3Fa4kfQqqc%hcu@9P4|Az+BZEV)0mZ3LQznd4>mOTqO_7^`CKvbEn&LD z1RtI`V}SH|@jA|lr2C@zV2br4*-2>c@lzs$*fSM;$M?fP%a-%p?o9H4K4D%|Hp5e{ z>ZN`GV=rks!urrkC>2d3t!%CG2W{-}`s=6ZZbxsG4LH440z!G5fb|83l;CEyivz_# zpx~$a-!&3D>v_OuI}!7+c3e-tIc}D=V<+Q>&zblgHl4FdMT%ZeX^I`z0Q?3Bkzx|s zYaSS1>n?#n4lhkHzpW9aV_FEBK%fZ>3V<;V@sVrB`Lj`kFJ%*&iL$-7=PyC+&5ZR3 zR5)lA1XIx++Od~yx@U=|?Lw%aDY2^}71sMQLG#XHVdRK;77OUQWj@EXw$Hw>|HT7V zeo$1~y5QcMBioJ4e?A>3UTf+&uM!xR;20@?+y+`D+D+4a8NW4~+ju>By&<le z`FapP%_Y<9S6V>8?Xq;jgbsz8UFof50g2V?8?A&2m1uRN3unO*>x}jQ&{<>5yu26x zwwmoBzXcVm2Z%#Tk z`cwIWiX4nab!+1MQftr#ibwd&+K6SrFRkv76CQn`ZzyhXj}NE)ah|y0Jqd4Gdftq( z)X?_uU{D$cPI7A*#o9$Tec56R`DW?Wew&78DD4TC>4o6HFPg25%yaEN)*eaQ){i|E zGtZB`{3!!S9eG?Jn^U9{wcjS<70MjVW*(_dU3{+ns|m^ZH9*<#xGaMKR&g#G z>a7XR5?6#=l{RwKnu!~Nf4n0YBki~9=7<@nZbupO&*_0c-eJqcy5;FS78_)>_bcvM zY3a@EmvxWD_d6$=^!aR3p8VdP!Zf859#zvNxktCEW?1)@TbrWt4mQfX=H)z1nMGrv zs?CiD5A&zA?^4t9ei23?+v|F-WG2r&fx;4$AVFn$Y!wrVAMD==JJqx{z$LhI%}c#M zZnn#P6JI#BIE<@Z(|S-Rz>r~|7KE?1NinJE%c6k#(;_$Eg4a+}0Ev8qp1(v!mnVogB48EAr zo=P5K!#5=7a<5%OzU$C@dU9QDE3j!%G(!H4S)YO2ijuDe9o zx3Zf~$9rye^+)tL@$_3`Ib-8qc`MG|Lg%vmMSA6Xpu1NB8~xmQkfe&qD!BJ(H{^<*OML=AC!Yv&EfHzPJ>$24AG znY6pyw0!=#5Z$|-i#>0(P4!^(Sf=bQk3b8$Cu`}X_^ol7+U|1ydT2~&3%9W&Ql>kP z@6KR8#<8S?>;*a6ls}u;VEKMl6AV%l7}TbAe0^v*Y*PjoXb?=Y7j3XMv-71B_N*2f z7i?qV9bwdc>iZtOiOZPFKP3Q$*j@s9TfrFJQmfG@2`~I`1t2Yb+mHNmL%3M(rNbu| zwLe}L57UzYyH-K@QL86fQC=Op%YTpi_{mxdrO;RXv6&u}ZTny9beX``HtoN~|y510Qh^}Mp8XB5BTZ&^?{@GkdK_AAeM#=yh@FxW;B3eWFMgr|)XO8PbXH*w{s(t-F-bVt2xNu;EOM&s*9r#n5Ed!GVd}Q#8 zuX>rj97fqQL0mVG2uu(rbiDJ#EfdaU+iA=d)avT0bltj!$!}JFlXiN4SDcXSAt;VG zq^Nc1-rW})2R1r@!tU_tSj?9z-}kf;CK7V6SJ#6wG>nYouA8PDSGBmaGaIvwxJaJ` zLqg%RUAH~5#OYUY@_^X+l?sa<$EQC>pLf9e`^+$X=X<7&MK|piF^4h9#f_O3EDrao zrQ*-cFiblWYsm3Ggv*twY$3|G3o7wtZaMae*2pdZ1*3+z$Ruuq$x$WyGG-Tf#OYMC zsb8R%W-Jh2Fm})@15LKE+Uw;(nV2c**sK=P3v{RVpV9o7@cw~ zlf*J-E{htlnKHh8Wm9j|FS`po9Ohpl=!V6*{`S2FM;}u)Pcs??zAvq?>d{Ph0d*4& zT?&GBrfHz{F|(SU%>Y!^!pAEOh1;o<4Jx)w3SB%UnOv{*=A(b8Vs|{>q%bnDJ zY?>Z{8#}8R>ipTxy}`08`NoX~sG0EkkMX`#k@;{>-#WmUPhS}%} z5%ndYe#yyU_At&|A76rPD!%8;=;@B3Juv9dNdWC6WtJ?qq>zplbIJ;0TRD8- z?mKWmz`bf-VlQ8Y6tx6Zu^nB6y1%i0)8OxDDRH46vu$M`(fV_(4Qp@83p;xT&FgA0 zpS+CxE`4YZ&d}psuS+zY^6+>nL}|Pt9x<5>Wa1xQ3A-GQ^9~8CrMh}DKMl=WBo_ax zpPb{paoPCDRzPrJ=D7IpiO>iYq4uL*U(wBheK&yrK*IV+R{;<2c#F3%9|9aCHsGo# zKUDY_6*7|5@yh^DO(eThH2BG_)y)LBu&Gdo3mrAXJvde2(hfi??$0gTq&I9=c_i-) zq|%$W9O!TJXLxvpy4n9`z`rm!AhJoFwiG;Eh3 z{0m#pw*mqKx-N8lO^5(qetO(8k9y8^H*2giLT-f-AhF;zQU0v>nhB7MK1y}ZVl!XMughmUOrXrz@^YY4C7@H?xeAe8JB;Hh3W znthVKh)vIHPX=syFTBKFQ8vrbGj?a56du_G^!`|83rGV9?fc|l5?|#9ykKt_Gy@hK z-wqw;0p8`^3Rvu5ewYU>MyNOlVnY?5Jt?2O1`_V_Y7FBpgefJ012yV-bzCL-%hAGN zQcvVm_zdg^I(_Of^!^~sw~!SWV*&Pz-wd9BqGnEfhU9s^t{j3LbXv2v_UNff%ZztT z(G|a_rj*jOO&@FlLSJ_prO)`H4SaIM#kvlL2{!=)zf9xYz%k7*7Wk_~5qW2J+h%jV z{v}=wNZdR8@f0#WL=&QX?}8!;zrmt%(s|iDhE3xRyBcUNo^bL@q94VnHLJE@Z`99j z%LUM@|2TLtR}t)$^M{mhL&>%c`J9|VKn8d!!J-u04lgW0ol}e6yS!9bSZs`GO@RXg z2`*us(2z5a$N|87c9k^6GfOA4eDd(tSNTQGH7Cv`@=%}H^6TE}9_wJmKQ$~7qALo< zzSHFR7Wcc2o%9aO7Cdty0H|iO#j7s8?X*C52t6T}S2t8!4mI6~nk<^_0!{mYF4G=E zNsk*P=tc~u+Zpg*UQ@i;@oBRMU%aK*UYSUu{niTzGwDCP(6y1f0OzXmcw;?F{5-Z8 zJ%Zf|m#yRUIv+hQ!?_R@-N!eg0U|WcRZX z`xsEfsdAw2{TnzlHQ}=S!s8jyKP z31JVsrDH+!T!De7tHU>Z=FY6aPoT0wP1CWI15fha;B7!NZdChO9eZP`ja_w|a{Nm2 z<^>0d!&!OLSCnx^SdBga#$o^p+?ViRgu@w2%!@)(9N5qbRYv)Ye%$EF{TWZYAo1%~ zJ}a4*nzfxyQr|k=01rS{ac-Wx+(?q|WQ3-v^oa;z(W{vC%cLc-Vp|8=V@E> zB-!!N>e3m+AfGAEZ1XpH+Fn+fF<-CNdfq`r{&?>SI9#z%*>b>#4XBT94Mu4hhk-|N zERv?Od!W9yCHS&z1yn3I-8pS`D-)H+TLAiEK%?Um-Wq)NB#@?zcC7MO>#uRV)&ewd zT{)*e8|5IQJH99ma8yx=u4+UVI0C{AG&b}3RBNatPxcE0vFt}|cgh|d9Dnhc7T#p$ zJ{WjX54pSiBbxQ`4o%kq3mvSK+Wm9qxM9CU2ym& z8k!^pb}+T$?q&&YTc)5#+FDGnx%mc|wN5kMVip)M&%I2Ai6Iw2j24iDe${EP^)F^#w$^cdY4q!}0Y#N|<}n*<2cu@#fFo7JOtZX$w2hSO-!d{I zX1b5R$f^Co6SIoHeFpsJK`93fbk`}IpsPRqo`9kqkT&r>ZaOj^Yx zW9!XwafHyfBhV~vEHd&%%s`+?N)`KVw*_WSrK`QDNVOokJd|yB8{u|vL5vjNuBAE< zmtY&WV=9lPs!$Nq%lA3A$q|_sW!IT@y?k<))JG+1qIeFD=f)u{yR+>Mr-;aVITV+% z8iB>b>e1b0?v)44q6qIGxs}^-zUoh~QUVC|8k3@OhloBt^S_F6Hs2F0TUwR&yLaCl zbzYsLe;PY`dypf`!IR+9ptRxopxJJ#&8?AoRdUDLQW>K1ON1o z0$Z=R$CXnb@-aE%9agt9A$N(k3&A?0p6Nfo@)$Bzc5);nA6+s|Q6$%9XvYWcPWQGy zj~Z&Edd%ufFO4%4eUm-CL9;T3FFVplY`|&-C{0fN(&%c&_19>gP5>NtG!P{LHxV>r z@`Y!)j{oS!G4T~VbF9pXPDm056kW~)Gu3+RV#j74&INm4zWnOQd!;^fW$VV_a2y6$ zWB_36kCF41v#?Mp9&nnC%SD1Dq^Yl`JT9w#@E8`z6rhcVv_>rHE_`2+4Tl-cd4wTv z#I}^W1Iss3al7Ny3*YzrlhA}@Z8XRdob1CJGxB)wBnPMIXM5YDepv6EyiQ(9@BJXg zSx%b(hSNo^v}Ncb>uW{2LV$d9%mnVP$fx1G{}Y8S z0RTY53CDTp{D-*N5Rv z76IQyjCA&!<@#l$rm{UB!5J5GRQmp}@(tWvZ)6tZDM>G<<_>j%#%4qcnC7Z1ugEq+8gE>!MFz*K{owhO@ZMq=mN7=x5 zm2l8cq%+ULzJ-QodXB4UK>{o-hL>QnBMGvh;FRIlkpLg`P@>oOSkGER%PFtuugWoZvK$T$)aPfN2*k9I5saNyaCfjb>1F0ro~W&9AOcH; z+%ty{XahDh4sCnW7ht*IIS}*!o)NU6Jd$d!K(tGoIjD(u;OHLTlpFB3 zu=Cq^;pyNHt7a;t7rG18ERN=2zwbGVYp=}B4WzpHsdUR2_Mcp*&G%iUf;S3Uv&Fz% z`b@-`X+aR;y?2+lE)Qp@n%yDz@ZAdLcFpcJ@T!jKFp&hG9gRwMjvJ+0S|uF|xc4nq zGTT0d-Cdsa76}~+;xwaywr|POKhOh z6V+<3@(LU8N#oQ<%-iIgC{)x};h?>?Pjc!SPw;Px3g_USbx|1>qYILZoqhP_qXlaJ zdN7qc>T*T=2gHcz_J($?iIh{)D$?bc34O{El9?T@al(GntZN`MKei=jUl-6JMd@SX z#zH5>uJ374FmFW>Q*z2EIyVWB=&%ak_hh!}s_-Edc{@&Kb#!dbtK?0^dDUdI+QbSpqGK@uRe9;d%skaQx8cRqM}~lMGjzi!SAk z9@jn>YuRa+K=t`EAEDw|xs2<*J3ry-MB(EqT^)K2guiRVOr@tD zFQd;C#rIiQOM!zVvEz*LwcxY9`lZeW_&MJ;2dp0h2rA13x_2!~bef|Yl)`{*R>-P% zh`_hcor7Z467m*kP2(fCq1?Oby@Sf0B#Jws#p7?S~()T@4HQ1BWb(|aCZGZzroaV@% zp@mZ}zyGEYEVhMqCMkgmp|^Zt;5;s{r>LTth%wMeBMJ!m%S=3r_hmLb{h5@~i3zy6 zjPt;BnSLlw#}xPF1@nIs5Q1VNcQs4auE+BhcDeYqCU~uW_h@QO^G9EoLWSFTa3W@| za(ap8o%T2Rzq1iW338uXSDs<=KJHG(z{Pq^tFane4S=jNZ>IZj>u$%qoHj~pfEHE; zeZx_H<|Yh)#ppV0;qHx}Za_NO7Wi1kJdn0X&i}W2>nYJYwyo4}A~8pf03E zyK<)f)J~fF`)}~OK;3=wNXKtI_fyg=<`%*>!VUh!gtw(cY?L0DjYE9szA?%*PgTBs zHRLoz(N1&cRmSeV3dB{&Yn%u;uUlN}R}~x1|3uW>Wp376I1^uWXBvM%+_}0{<5P_? zY!+wpC5_vq^k`_ScuMG*tyC%qNiffG|{AZdzDH_>-zkv?rMs(AJlq za~zAz4r#ENX8tc#v1ojyPoe_cuKQ*DyP@ipwEfZl5o?k2c)oQ< z&LCxdsk=M~zz>EKLjOCXhMpYgLNnYK(;I%+Teg#_d{k%O#RHbt#Wg*PgW#NU-yy`W5x-p#2ACF; z@4GE6`8}?qZ#2gOg`P;bJ5uH4vsSxSp^rgoh_)F9gF=v^C|7%+a!O3}S@Kcig-8ET6D$%^+yPgNtMgNcB1 zObAJz(FW*#AVTeCv9~dIsMC~KKkhqIB_(_eKq^_aY3c~EIT8e?t9QnBaK1v=lv{OR zCV>CUtEBFT=5+gO?_*Q>iG04O-ZGgqrCoUK3h3oGMNM1I*|VNYKie+36E{9IpysrZ04m-LL*kDS`pEy3=R&q5naB z1LYeg$c%StC$b9TO3ar}!@}Bi2UKP2QWmhRGM5)W0t605xvaO=_h22-McI#hhxuZF zQgN|Nq%>W1E4aUpwWFiSG;Cu~p9G#Kxnw^SA%^MVOfJt)ww3cJ7Dwxvd)s285BBtUGJX`aLl$wZYe2sRyTZlnAq$J@dpFxc|$2y zJ|nb7)U-23zsfBR+JNxtBYQ@!U(oDjYkImRczh|3oi#GBPm!qu_wXhYC{N6845_vNP4z|>M@n-Rd`D}^Zrw=en3jE4GCe|ex@n--+;R&N(#o#0T^mhR9lWxf zDwqX0tY&*+0bl&aK`(ymHXuLLytptuQ2jIz7J+7oanAa;zK*I2GxJR`gdIzE{qf%1 zYU=s?i+jT{K<0x5otbHBNpLjRe70Tz%nF^(k7vo~obUypYV=IRyT+-%FqD}dA6K`K z(d`;V&SfgdSH-4^ab~!CNBxaE?vi~SUz`?ok#Ll#pl`Kt&X)x$7!*XH@aKZs)u%zP z<2S9M{F`nz>8{5uJ7tK{^<@ua|Mi&u2$(8yz>X+$ME+VTX8o!c(3sMoIZb{{`>8u+ z`@>F=KhPBb$$aXN$kfJF6n9hZ*(ku*i-*5?kS zxOURSm`_H-cX{|SGos6jN7S~x5gKG*)zbE<>ZFSv+1+n5WRu+D9qs+ubEbB&wD4v_4SVpMP}}=z%<}^uM?=@c{Ah3%E|#RyeXnh8W~6m@7-xcHTD(f+3?iat{qi=vcMCVm z?zwZ;Ki?^jiW{jYD&9KyB9-h3k`jWD9AjHQml?7PQc{SUnxfWJ8&*r5EO>P&fag!_ zi?Un=^_=g&2?f@IXM{IdZ)j<^07n6oQYli=@$Rw6Sv{+o3HyWcU<37}4amh$WX@DB z9ju=(A|r+dyoG8b{ais4(UL#f3anJ^*(#-Ujh|}#6zv3*C~1ZO#5M5nLO=cnnNvWo zy1s>R|4%Q3{NeqE9z~d0wGm*FOSb(=UKn2GhC%r~G$6ds?ivvv z&)kSip6!7D3Jl%f0s|Q&7CO4H$A$u$OwQ!X_%74b2buB}ZC(^?Ehh(YF~1=zJ0mcDu_?V%l$?kb5<35VLISS|= z&wP%mB;-T`^tNW~F~cs5y!*VG^G1@2ZiBeiC>wF5>sNH1WtTlmEA`>bhm+eiH;Y07 zr#dGR2{#PbxhlA%x>WYrT30` z8z)o*g_|n>S(=~k_6eQkmh$DhZdaA3H0Gg4I({DCuZ`#9vwUto0y`myx>W(jQIZ6^ zZfnJe!sxrz^;j`rCLp`-b~h3Wh5;DP89!HK8k)yHD5bSqcGzTBQLE`8kNXz{)hy4K zOB?;YIrpm0N0o>4lM(1Yh^-W2R}Xn&V!L)6Kes(S_4$Qy`|d}DlC=e+Iy42Nz*OmO ze?H26oxcp`CCrCd9&h>lc1+vD!uk=)@)L+|du+zQ2il&I>|{1Eo(==p_L6vhi2kkB z2#r{FLR4gtm;VrKKLdEBG8c`RhpK_u&2n|Qj3>$C6e@hGH?D^P6GD{{wk{?@M;QI@ ziqe)7ty{#T9g!gGU|Fv#h@<<4B3NZb?hxq$OW)QF8x9!@J^2{9jheP*B zYu|>H%nbTSGzv2(N{&-3GQCv>fR$!wd)x-JRZ?VRBdyK}XkE@Sr_|CSf&rw7V1IT> z#}=C?rt6P!KS#NRlber-YskNKz$lHzdHd9MjO0T^w^mb2ZJSwN>o0cqTh5&;mi_X5 z&l`M1JY)oDKeGj9b>-gw^NK+idTeJ*uQ-VZI>=sO?ylm%aCsQ80lCA-PR|m9-u+7G zI#u+t^+NbAhr3gI`ds=o*Fd@n-V1z)oM2^WT5x`~1Lt&tos4+kHWX_HJQ+hx8O758&)-1Ha1ggNM3!%3&Q>W+6!#a?=n7mRjA{g zHw`tbj3>kn)TJE?q`k+GT@1-#r1mMUreIU1IMqJF9V7Bt%~Eb{U9{OZ_ZK=}wosDi zvj4}?b@(Nn|Nm}wW#bxJYU!0`C601drrc#|X=a)@aGkjlMA8(ud>d-+b0Ch)%aIDA zIRIs7i&xv@bHA=d&HWEh!U; z(l%nigqrt;-WoLRuD!v@H0mSMzhq7TYU6;V`C-^o6#E}~C}vsW{5QAF+yS-ZaMS_t z^fa2*{ANS^p}|0`Ow=^$IO#TprrzR7Cu;hmJ-Ythn^}8)eCwX~p~E2n`Thfpmzn=9 zvAfF~yPbjXyrGme*DDttoz1Vd*;Nf#*ggVOmIr_~GTDz?*dCs96t6|ZL`pO&O)Ia@C5N{dj!v>aG@Tls^ zmz>DP23>$ud06kP&nGs7Hi{_0xa#rz!D|p^s87T5pKt!RYYIpg!hhOw_f$F-Hf&}X z)^0#%${P$?}S~u!FPdD?05?r31P3gLj=>>eo{-?|-0HVxsSWK_Gzzdz4B znC%{KR{jvQWwNzVs5?KiOplCTc3;yPob+pZs;`LHM&S#(R+^RNmwL5^k4|Qe#9D$Zddo5+khi2-{+48(Pwx{a%TH=L`*RU*u zdHDsa-Bb?(Sn|=UDEtYu=>SuVAL_QAv95ZYpPqTiVz{-#=q3lJYS#6{%2Mn`VNIUu zGy^=(yR4DEdmLK)@oCr@Gs$ya%Pq~1$!q!pFmPju6qDdDL?@MQnKaV|IlWv|1vx`# z5s1zeesW-hZn`eXH1>@=7{0+@n-;u9aJxL?P$IX8dWLV*?mN#vKiE*Z1#}}~ zATHg`f-m`%!yvX#)<4>>`j<(ZP^*$Zmr~9yz+9zsIYXSF)VT z7kY8NX~1t}T;m#F89xe7QFcRxd?ygjI4q_Nsl3Q(WgPd=Ly-V^4O;bW$BmBt?N=sV z!Ib3w#TrIIMDjWHE)SQ^favC)K)duonv2%yEFEQTVm;I7VRp5ZB*|r@4my46@8`vl z@pG`YcWaJQg475ASlhTCn={rB&L-Cx3b+v5=5Poz z#`Sm?`3Q4B+bH(}^s2f|zG^EWVg3yu_jDp>15uYp(MJI1iZ=v;FUGduL(|5wV$q#c z#xnj+4tKRFB<1So1q3@Sek#p+#CJ^V++Z)agGBnWqo_0Q9~k8FVZ!cGKl%{E@orMj zFB^yZ;jw8}0W(b@-yeYBZ<{XPVD#Pzw~cG+ODXdNIATR5U=MBaU0So+q( zF!~vdL$A^LA?}KSH*@)+fB{#wHh&<@sSx@ z2```W4@jhqOIwf>B5f3K5@J1&P&M9ALd&F#Oy;fj!o{XypR{_2xR$na=vF19)_ueyX_daaG+0tlaI$j*$ zjRG#pY+vt!c<>j+y75-eFk|FVyVBY3U(T7f>X>U?^>nx~??T^6szzf5ccyxw>0*8F zQGERTJv|mh2iQ{z>%~E%R=9ciOgS2n=>gG8j4*Kr74;lSnGirh^uBxH%9)ZJO*)C=uD^rUY0UahaZ zL-ANs`dv=;;;N zCAo?x^I_fdHWxY5a`!Zz=MTa8s83bw7dr$2!S(yJ342f1O)5wFq4$R;>isWA4DFDNd|MF%6;% z&Nt8hcD=~P>l|#(nv+0jjJqA~buK&8F6ApYEYxncP`R|v|GHeA3RF?Q3`Gdq=2H(` zGsX=~Da7zjeq>wcCxn24?z4x`YY;QmgYiFA!)~$*CW^ID=9k7=t^cke@KeoedppP6 z&D(7vv1|7lUM;KrO1rpip?oo`gaQPa)RkEk&If!{CZCdjb>0qC@s83xH8}2!;EGuu zITNd7HK)W9`InFcLHvH*plgeaF}WtT;4^|p0Z{SD0R-{I4j+F^sr>;_G*@V~h82zk z4Vcgj4GqaNMmslNwfJ3^yaX5j#3Rff|Jc><(Y>FSp8seS^ALWdds5!xT`Y%w7b4bC z@S#=gewRhqJT3INyvuv``&xRH)s^C$c2oF%jE23~ZyBv=EY#L5swZ*ARs?#Vxe@TNgVJ^^FhZ+eO{gcf50P|{Rj{^f7ylZzikhLmZ zQd51r>Ej}th^QJASt3DAh6w0_eyx01$tjNEnN+I&?I=k8e!}^HY+%0IM(-SFL$jbE z5xrQ&bR&IxHok83Kzazrf5RgP=q3;|_@mH=4LBLoE73k(RKw1lG5G@O*eUXI4xHkk z>34TBgMP~0_dLghud!wTFt>@Tg8QQgM=kBWqxydE*Xh@}8YUAyp0HACO`pJg(Ra|| zlsi$ts{1s28joP0i5_3b!|qK#-|$`WEbSr~^%%bhZ94`h0h2}N^b!GiU@HQ)-taI_ z+wk)ngY=ry%6b+5?C`xSFCL>`Nu4v>qvM0Am@Yl%EWx{6BT56G>lR>8n=YyKnl_}1 z+Fy`#sG6!PnyB-lPU*5UCCGXvWe8eDnVccEx+zztf-fgP6p@xhe~R9GaB1}O*Iw3q z5A&W}Y=GqVvGMzJHJ2Lc~X^GnYY5NIop5mRN)3diifVjF%z}p z2M>Gn3WgZKOraaST|KkA>S;|-Q;ECjkzd07)w@zZB+Z<=?|aw}c!m2j2(4HkHTzm!rCjYE1#-EQ=100aV3IG?ZuHP@#Mt$>8}7AD(JW|eUuUhjha&f$_mGsv zRH0nnXQ(GnWQ5i!avOkNO!2e!nm+0lD7|4wAglBcL1`ZG1Y^FP=KUf(h;=z+;< z+l?($oj&~wBqq+hcEE(=Hk(d2rhcaVq+m?%VaTpkckE3HkpC+1M0R|PW11v5UDd0t z*;%gDRb^e?zz}XaXJAOB^tJ0YDO#SUSvF1ag?iJJ*&S^qPu6FVw5LSbOY3EB{LviE z3q5bpN)N{LuJRrcJ=hdkvXtm@qfj^EsP0HJ5pfxl{#nqpc0nCTwk>?Sh}A9}+J17z z^T5~Kh_~6Q`1q+$W#k9!#R!fJtk0>xw(+CjL&!-B*SOcyrCn6S!{9!ZHQx*tZ(d_f zW8y8tD$v`tZ42Y(5yOIx6Yo;<^m`eUCQXQ&8+@?l$as~0!pIJ=J@nve7C} zUN<)#b7RD@4z*9}c~k|?{stYokqkqo6c#6}Q8%55b)`l+xD|f6$*Qn?R$i1c+Y&Ya z+!u)b@~=Tw?SU=X%Ek9(4C*$VQ*IAH%g*>Us$ztHRIvZ~cWjRVtfSqYloC>mi{Efc zxm;u%HZ_jjQY|M7O$VAA4&`rv6db|(lD8uoPB6$q8LK~P%1Wvxlg&H;3|R3s!*XvR zetj=b7Njn-nUGWJ5vkAn>}m#^I&=5d*{1 z0xa^0k)2uhK-;b#KmNW8DX!5>>j%uy%*|F~T^2#M$lyvb;(fi` z+{60SfXSRv&IvLH!m-P6yu@;fOK;~$SukH-C+s($P*Ht8m|`QW;fbFX2rSeG8ka6! z8#eOtH2_qlkrCmMDmORpUYA}kUDqWhev-NgWZ<9s^oxm;Bo$V!V>qM2;2e?$PL7C; zia!r}c|ZeNpNHi&X3y&;c{@vja*a%nx&Pji50O}NkVVDiA9pCpEN7q@Olxe?veprqA)?&{9GeX@NtrbIabYLd(u9NH;*oh0jNKtE3S z8n>upU&Y5>^Jk`(frltBhRfqN5JMYI$0nZGW3DxR8`Vf$3_lxIwf;t~(r7&WLK{@G zsfY!(Ja%pWlCJ0|>@{&awg?hU6!$4-nm-2uW=!lEUfI4uy29L_ZADfMphsRwzkd6; z8OjC~5;lQU`SQPOR18`x6-Z>><-81}f?N5u5n1hjyT0vrqqOIYFEt(fc4cR=7GyT5 zG00ByOO8yCyit?!hd1&!O*H%Y|79cAtemVd%Ks z*+N*sOe#R|`9Vs2{>~4R+N42_ek_{|bZmV%7~r@Ev=+xubDR-?g| zqme)(5xoy3ASz>4@+;z3O7eJHHeOzQ;ByYTOJXW<=mTGIV4n8P@tB_nC_^?;%vRaAe&6+xoBx45J|ef;OP z_{1&obdx?Ib`yJkGkkuKDX<8nB^J($*dNCAQ<}dJTU_p39inLmY+RSg8g`}zsV%X6 z3e=0nB{tci4Fr`iN4~Zs;cNFcp-BDkZH9aZu#TDr0Q|mfN~inwlfckcR27i>MVoet z?-+l_;2Mh0Oq?RA&oM!N;!C(D%i$*T3`8w1W7GJ0JKY7bT-$!m4F12hGorb~7&I|8 zY56SW@y(?r8RTHmGS`&33Y+rWbK18gF-TfVNb^z{l@Vf;&;iaVD)Vf>th65D_6o*NZliT>Q``@DZm^^o3{#f@!(3CYmbBR^%jX zL2+L0Ox|-3P?LWD({0#vC`DFkx>kzXAsQ1pO$c?(d*Mi4h?9Sin#ELH{?s!j zunMmA2hzWPtTI{f{ojE58+;5|1@o38LjcS;e5kVj$sMxG(4fh-ePtC$cCEYpT-V;( zfgm5}9)>u6Ns(;AKVEV72#+)e=$Q<&1WH)5R9uM1ggQ^cq$jMnxUYBr?BDVp)CN#U zBjDw`W!FOiA;`1AMoz`P&o8oOwQwDN`Q)tZHV8m%m7r$`v9S(twPW(1VVSSw+2JVd z{45?2&lDS$MTv62(qBP^@eLslp!Z~VjtR#|sG4eb$uoiOJ(J=yo!**^!~gAiL;UM( z(Kz@_Zo;_4Q~OK>QSZvC<(z^Ed7U|(Iq7|V;(-JuBl1NzU%E}Z0PkolzfRnBj~P+M zdELFY!DRJ2-|-h_YVB|H`M}tT@9zOeyM6`!q{Qj)KTJ15&&FsH{hzJc(?0^$=)|*OsvOdzdUCp#nZtbL&y{)Q#b=~HHjQIbAjN$-b{S#}?i}Albhzq~vAvF+ zvH8K-wk%^(QZDj6-c%h(Xevuu<~pUsEkKa7LmSQqJ9a`(ug3@xqah&&H{w|SAzG9c z^cj=pk{tT7fkUN&x+&BEV-T1#~@UOk#YOl5p|muX}3W} za?d8v@zXsCUG;hQA#zQCZ{7n>gqqvc{1QIs zoU!`o9&2h5v;lU2*TD;DMEB=z?%QzRxnFB^4!cz`h!Bzt(5)MW#)%b( zZIG>cfX7a^iq|^u0(0g*u5QX3G*waM&Mr>UsG^6drJTulZ)9;h4S1{e5WEjerWoVz zo^*?2)o#z;@ZVdjW-<*V{pQ5cV}>5#jdJVO@+s%z99sL_XHn)}W@e~=Xw~gh>7XjF zCgJ02q!tUJj74pV;UFis;6?V);t?=5QR4i1_-noPpIL`_#cLD8R-tJPBH;_dfOBq# z={>JYDDO3-T&Y^4DTNTJm>bqM4*p)3$@610d~)V_XV(U5v|OdX^&jXoxnOm1Em&Q9 z%;tqdXpMU?G+O%N(B{O~- z=fFOgRv+&YDE}XknNfA{enrG5kUjg7{1wA@KR)6BU!_?)Uz7p+J7*Mf^}!Q0^8)Qx+#cieWB4a^p+HB0V4 zeaT;ZkCob|{iMhyX|YS^>Tgn9o)~xN53s}F%!FfB-1WT2`7`}&50}^8(ZgjLwP)OU z%-E=dv+7^~fIgnd9}??QtfX{%PDSRrq2_~SF7SWM1&Ji4ze|2|JJ}X&er?J%8Tn#k zhbvv#nOenWzmuQB-r5RM9^N#xSUo5lHO8B^JfpQit$@?=BOY}n=H@%rg;ef2u*uq1 zQRP^HJD}Fzh@*|>eF()GKuu@uITNbS=b&%%rzLZ|N($@T?#(TUGDo z=Ew4_sUewGX`q9upLkyl8LSVqrzoyMu(MpbKgqW>nj?m%G5$dv=z~50osruTA%n*OUOiscA3wtGU@nu-Wza-5V}=#~0CAS{b*1AZ_$PMg*MSjZO;z-R=G6jrqB>ZTd>q zY&9aH+ilKD;^R#NqFpA8vxql8KQSnM4{TCwuKtr{u;+Zgv!9v{DOrAqUE?F#lH9Jn z5&Z-QLK9}%FrU5tAQr7ywMNt4X8eTE5KffZQH(#P*W##+a7K@f$k9BVWb)MIG_6H? zHR?|WwY8S-L407RI_)2$10TUPZW;4>zn*qxZwAyaT`03`Zznhd`~L??f#iS=$IKif zEGc52IKU zWCl7-N)-Amd!1J|fBt&@>}gir(y0!;ac@kb!^W9^a_u9*G2o*5Xqd=Mqc^LBaM%0K zi4n~^s(~B#NqHfyw}bjeTA52Lo3|MgzAk3-zr}IPcZ(~%cZ#U{9cL6&|MyR!1~_6! zYMebU(3;u*>v;mFBtHVUnV_`g=AG`Cf|!@zF1xz}47%<*=%h~U_Kb63C0lsE3pShB zDrpO-JKiHWDZ);kdeE8CQu>~Xe74ozMl~;lgnGo8UG0)21bnSy&zgMnqs^d%Y!daM z!;a{xEWACOX^Y9N#O(MyLm8ucO7E!q`=QdJ+AdX~)nB^n{qferf6w;| zrNsZ|a9eqaX%`{NraSB0aHkLNcm$`W(aOyEMTrS%c{rDMk3$-LZY!+{UFY^EcS!j< zQcnzevM$FK)!rQL^ifsFZ)`ix{&_uBuS-%ugt_x-=e%1L;`#C=xgh?4nn^`gL6@z# zeyl1YU~5IKPsvR~3aGqKI7a8(I2!A#&0W_*&cW!>($-xmCf!^;3*mBNdD1uK!>-O} zv-sCayCCOsl@Eoaa^rHEfGzd@u+l@#(!%hQe0@yG!(UMAla&h(PAZDyYD-Z!S1{Wd z)fE=%QOc%9k8ri6tK-KD9h8~FEX+lKS<0nzN~ItWa+ zeN|2z9$26H%s&H>0vtix5lHW7MZZC6{O{F?t{TQk4Q6ufw@-5q>$ zSlrELgsw)+6vPw#MdjUSfRgyc_fgO5j>dc-F*!?^tJ^z^LB%nbAQ9)u7Ttg|ByN>! zRIHeQrk8HPO}0&^O3m87`e?w=he8G+MJKC^QLLTcbYh4N?3P-5%U;Gvg>I|K2Eb&p zZL#&dHgn^9cosmN55ZS$Tu3C^Zx9uK@6}3wt7XhNC_3si zIC82Le8Qa?l|O6h4{?BGN%5Y8SiYMqHH|;e4l1P(JL3MNWP%m#d13$UI{V!vSKH)u z_@@PqcXqO&u6bpBGRhOo!-JkfTQM=KlG)hU` zu=8dMrxi*M3RW_E*skNS!bbgrfE!Z{GJs>{7U`u<$+U{xJ2Q(%+BU_4 zjIKfCnAK}SFVWRolU5skS1Qgp9N0;t!u6#_+W~0_y}6Hohycf{r{Vl*>bUWA`3_F+ zsICa1Zt=YZDH_EJlxMyvztkF?3@?_X;qdO1H*#@5i>DyXZB63I)rAv;?G(%H1WEB? zaW8ORMDps-ZT45+2Ua&T%qYpT_=VVLkILR|T$A+^z!~tKmbckLdK``p>+epx$QHZv z7loq%4nf5CJN&5*>G#n3xT(A%*8FmYL-tb_tfTt0l;!NDi4+n80mmmHaE0QtxBqwa^MAYkK)i$j;MijqwC``k z(V;0{U(M23V}{IXR4}`qO6qp=D{%n>;MPm6QsLxlrAl1&OE|H(5_D~tG>+dQ;gJ^u z0Jf%nFHHAFKKwOkXKLfJeHnkOUR}7b?+W38D|0I;0PrV9u0hn#GCWGDcOdM0%)j$O zVC-or9^++-=R$srip{+^8~i)Dwg~V3tcYW)&yl{TUzxj%o>fg0$K`0t+Bu%Y z6`qLmQp@LLnRVIno&*0bbmZp>AIpsC0CH7{zlm?a^1uQYUAQ51S~E?I!Q+X3Ev{bP z?WP0&PShliU#-G=nM5A8?M199s>9;iK}GK-B6jD@&fOw+P%1Wz=VrWuy{QKoZtUIk z8?aJ8oRMJdL~Szeh-WcGZLVjUN?Nm>ft;$sro+=|kM!zGpi4gTvO>pANzI}bwLq-n2idYFArZcrE z1kVcWeUoDVw~Iiq7*U9D^47aWl69%_s>dx23O@L=wq_^R^ret5G;(GYV-pHJ4(qa4 zd{w#hW_hoYwLc2c%7N4!m8>dXC3(|8f$zRWQL_3Q=v;jGo3>m67E+`7uZj_qw zR0cjRBfj)GjnqNX+y}YP6NA9P# zr%z;@d%5a&k2pGD%2q(8V8d9G7`G<}w|}o5hrkCGpR@8yea{YQx9_J$%6@&`eG1f6 zx$PdfxLv%6sOm?w$W^`+>Tq5uwEBZ~zHOot8+B&RL`@d9hYwU9BYzo5xt&y&xMdI$foKcl z;HFq2Sa$N>Y9K3hs}MehxfC9lYg6&9Tm#8W^=_d3gPd$NMfBFZ%6^rbz(Nu{9#kaX znR$_-in5Fcgzo;wJ;ouIZPd=Ccg(Wu3$NAMy+va3Y5m6?5rd0Jb5j@GHoa)RBQm34 zRD7@{iz;7}vKD+$GS<7S?cpW=n67+3l35fRUIr#7(zd2-1t&x zn1wecVGA_KYhCJgHaM^Om`2OQpyoPlv3GW_6D*c;Kw)VB#;aI*s_G(j765?{9|x={ zzA1*dE+2l2-)qqsu;SLXpA^)53F49u_&~gZ^qrbwEf4eWI$lks)rIJ=qYo?EgTzBJ z>zyJ!txeCXx%r&UADpg&!*!7t(7Y-}(Fn!cU^e@hZ~Z`zl;N3;nG3bK+IWFx8O^_a zI%?wL&b*u4gyLSWP=!%r0zSG=SQh`H%l4l3JLv5*8@^1Y-&r7 z|9s-@KRs&0J#>%8`0=$C9$PqyZtT9$D3d2ujUw_-4pq><>u|TlZ{H#;vQaKQ1UU&o5zAt#LMfx}9A(I?bw|W#ElVx^NKeR-vSr8rY zQSvilGjJPkd8Z*0Wb|I2vqGv~BCX+i*KbF5DL7-8X-ivrf1?!CnNK%e+U??-7K_O( zPN`G2v5RRjRK#>=z1+;cDMh2Cl)p12>)F9o#kczQn?*O8dT+txrBP415Mv<-c9@0W z(DoCLX5sd0he_$8l%seKsKNg|qN4{%jJ9jRrg= z`+V*-*q)duEcng`!!V}(Y$1n}tg=<-0(!q08 z1vzMCxmGPVS!YXrBqKYr$%cI++~v?2Ug7=r$kA>1(uLuj5exT2`ZMkKwB|Uk-5(}~ zQL$%*1UqNz#KLZwR|)e%I+eTD+Z3kA4=hwL^aR&j}P;FWn@Zb%B~w1NJQw4p#LWa-Ln^oGvU zovwPzpUMME3*bj1l;Zjn*s@i|=Hj+S3|)0#N9UMs09ac22*TgbZU$-;%mCD&_Z}@dYnLoY zD_E$sftGN8Zw}sMQ|7%GVe!`^De01aT2ZJpB9mFq2az^p-l&$oQ}Ae$H}9Zp31`9I z{GVnPy8$A||4p1XQb3zne6IiLn7ugto6dgw=`un|2jZXh0n}Gm^#;AO82d3u%T{z<&xcefFpY=WR56by`5LNadYscHTePAU6Q6En4>Y~jxs{$YI;-d zd*XX!zra~+H`^$exbzXg92w4#pYb{~ky@nzj~^`6UnfKtCckT4;f3w+d(1LArYf2| znN7T&jksne-u6xGM8=UB&6a;ctn6CX>`j04_a7W*Zyu3BynSBXpGJ-TN!qNHq=l0|+*?Q2RWG{QaQumR>iXiuw>&T-~^$qr(ovtbDpJIe6?s z&A|uW)FNfgY=w=p14%hkmT<$fj7@-0p9qWX&6S#a^X$*G*)%rX(5((VOfel`Erl&d zpO{(tu~%nykC;8Cdv9dbdaFVJ0#SCRjO_ruv|Vt5n=1V5I%_3fQIRZT7@F`;)m-9; zGW8f^qLX3f4a9(Qz#N;=HQ zpP3I;QkcbHhLS^p`CrC4ET0CBDCE7*3ldBu;VG>IcBHHcgUQKfh zBTv1rmOgRGaexmfLq+{!;i2LcFAE>_c(oZ9{m_qA8Bp*!JpnhW=zb7xI4|h9RHe|= zs;-5*X4CZBJg1>S;BlhCTrDX494DwfFfk>L<(bs17tE)bwE;1ZRcEN(A0vF+Y_x{6 z*-?j)P1_;nGzK?d+z|8gh{rA7i(Zgrzg}9yCgj5!*@q+yg8MaH}rV%T%^J zB_W5@|Gh4tx!48AWt1IPd_?APyz<@cR*oi;_vY+5h zXS&?i|J#+fNwG=gVR?Z576DUJC8>DSpNNX5=CRUFYN?v*9`CM|Mh0%g>(Ykkf;_TVJ;OG5)M9M_qMvVF!Qc3GaTsbhBcIz+=C^9xW4ID#@ z^FzlBA%D`JK9w6NI4~O-SA1*-M=*X*XtCG8c(xiRpxiJ2hr z%#k`R=XYx^G;=9EY#u1^+#}Z~UPNupn4#5RN=w5iU<21A z(hbZ^r>BR&v9{u&QCYg{!Vv?82)8qhR{X05U2)As_R1X|P|JiLO?OdM-@aL`GY{wa z7w2WPui-X$vMQ?LR@xzUnbnWD4B{^|D$aKJ7 z`~XWiG`3=K6!+I$B)VAPCp~96;71yeeLB8c8F-#}ru@i2Zq(ybKdoJ7WQ*Zr5ejI7 z>BX>Uc&mpC9gF^1LhJXYH#nPJ_N4^gEa)b*{)K2al^UO+(0L3S+tXHT6nX;!n>i-> zKx>r%atDR0SDvM+ixHc?$eB91yIQ0%Bei(hEbVBqv>#9#TCb0NW@Ck8k;fDcszCW)^+c!8_OENTsJ^obgin7?y`1HtYGuud4z5Gxy}rbDVW2#gZO}(U!3NO znQ;|li$V3he@N!jwFdB!)vpt)9z1E>;T8}*Ug&nZw^Q#DC_O(N9^iI$1@;FGSnn@# zmjP^(03ZdWU?8S3(GxEhXq<mSzNGt;?)GT}=3wC^6^h zRj`+5u6$3YPufZ%v8K7YHw?`{WjBU4RNBqcgOmi+EW!;f1nV9Zt!RJ#Q1(>ZWio1= z*Cfm^S@WiE#xFO;SM(W=f6OtNrZ$383qM84h7SBYRnBk;{=TOt#G)o2Hlh{cTIyjL zX74oK6C7FYms|gcRefnSku_c)Bo>@`Hn3btkBnnNO_eMm)Q(UxzneRY8(9i^%^rBI zEB8g%Bn;k?>~~6U(;fJgjJ;bRa7MxUHz@S{Ld6CE*7c%hiQAm(c!&hXzH`qRJ8Sts zPx^cGRD6TqBnbk1jknNN{4mi}qx|4=x@#w|b~d|wN66g*($UzVWcknCxEs~CKSGc) zRC6;`v2R#?qPE#je(Mu?-YHY5~UD)XHN)^UG!w` zaLeXTm%I!8>}kY(MID6BP)nUh%Bo0^82;JEuhlP(OXD#Q=_@&rZ$zPJXuS=vsvB zD`#zXG03V)p48ykbn#|_2u&A_8lAj`04Pja{45?Le(GiS7!0IeDjgw^)!!3YwD{57 zpx92P3QUQHi11(Wz;RIwbOCck{ zRYmPxRDN9?gmdiG=+ktFf6aS|>fXk1Bn_nRN_ItB*w1+~Z_pQ3{s1Wc;)g-v{6@Qo z&G;=(rkoi!RvA?a*{|tX_PXfE5g(lS(-|QBRbxoPjPb&Xf=K`E66!{`N}tdTZ+UO$ zv!$meP`gplAD3dQsTE6vnwj68BE08}Kg1{QyAKL&wnC4a#Ss%Lmv`H?1a|NAGn~&% zs0B=w2drVw{dJ4&RPbZfh{#&zMQ#x&Yv1zH-MQc_QZgxVt8JFb6yFs>~H-pLqGOv zhySu*)?wnmU4Pa6(cK;_aS;-tF11YIEz*7h4X3DHn5kXv*N|)2E=FhmDOZQa&k54w z`KoRHWtOdwygGDJ>tLC3MPT~*+i@H;)rAIDxm5>k0fUQ(f7M+d`Ni{{DLQh^IXS5t z02-i;b&4gX0PN`0W~5#Ellc|1Xj1g&)isT{d8GWQW1KYoL+d#P86zbcHzOYiLWHj- z3-c0jo0HQ^a^H&Db@F!`3hzIgtp|Wb(=ZfS(hA{}v`4pdDswoix{&ElH`$?LcZ4%> zLzSI>5>`s?Pyk) zsdffN5)I6CgvhC9X~v_C@l5VHju(2~e{v3#B?jy;{(^2AD&KhbAV%V8X8Q=l5WjBx z$6VV6)NMX@!n9ge!#cBPPtonWyDis=A$}Wwh_)~yHtO3Kj;;NGw&cHEE+6$cOfS#% zt#9-88^3*ITUY_;p)UCDOOZ&iMQ0t*UqA%@BCnx5$!fpB7OnePjEZql^XkU{P6k)k zKnQLWJUCRY9)YHCSI0}ZfSFVOGBrLya340KCAAjL+h@D4O;kwkM~6!)bh~IHmPeZR zMVc(0-G&F~5>zlece+(8h3xisJXe1pSxAJyD@MuZP-Ji{16>#-So=95d*NI29SV_= z$Zch7$bWHbdMm2&Q(tByfy@{~5A(0Qj{LWq?vLePtqmk#1JeQSyPai8Os2>J_o6m+ zq{+Pm2!0Z`)RZR&|5eiZwNeV|ZGR6=X@g=F9@eH)QL^@!(sPpMfC;aQ?spGZ-}Ri! z`7;}3l536M3DrHf4t~3Cy#}OtbK}nXXR3AwOttGq{Ov1U2%Yzb-JVGapm|d@@$yjw z^h4^&e-aV+Rc!+Bm^^GU`&wHRbwU}@@FOWGii{h{gNe)HWT`IMJNZ^omKHPbf&ihF z^VEps`O3$74#75BUFVElW?N|lUcU<(Y!4enOsxQJ08ah7)Oj!fM;sU*=2clYlA*1e$sDq62e^44_-^`g%vajO0eC2rN9 zNf1roF>4wy2}q4kwf4T$?3RMr+&RIzhvmm{VHJ^OgP!rrMrJGp0={ zXJapeBX_30wq_m4b6+tHI!)dzJdNBwa`%l*|JJ6N4pY2GT1&hi8?8*>ds2OY(X0kb zLe^Z%>9E*KT95>Ze)fB)u5xvV`}BEc=X(TuhUm}_E(s0r|8{x0NX8W5e|c}0K+zKrfJuV$-MCK45&Om5 z+5K zet-mvnw1&f2OowR7(9yu9KS|yh=gI|Y1sF0wg_TkzGd z{OV0%K{q@xkCaq}i`&qoF$E7zhbwJDUV;FcGiDICIuLKaJ~~}OHfmFxq9thgg-ckb zdZ5wfLbY#;{YXQAW4`;pUHOhR+4RWwWNhvlqj`x@s{It_4lap*RNDN;x9;7_+%+Jrtl1fsdh3Yi^)&%9zj-x8O~kDlpaUx3a?t0& zWYyRXef3pQ#lWP3XpRancS-Lz@6f!leE%u<)1*ngR~E>@NCZrfuy<Kpp*~B!lt~{IGT)I z^RhCr5SdT6dCjZZH<95rPlW89WvFfJQ&<-Uo-DI2X9}^jSLEL;AVO%ltJkb+h_u~c zOgG98NzLFaf61sLYinhv<}5?hO?BB>4ymSk>0`q}B#ADQtrxNM{y!&v{RGbYZsUdC#useA(zrGI zIa04%dJT|7{Qz6mZ$o4pIfwS%g6C~xqPGZ2V0uH~{*3lm9&Djgw*O=Sc&_FIfqs0emS1(@MLORBII(7lrQ&{kiyu%l=ZlzsD z$CXkbQxz<@=YiwG-1Ds{P+;VS)2L@WW%_5;)BXX-HK!Phnk}kJP}1qdHW$S&2`kwm zxhN&TZGWnd_?Bv1yFgbV%9l9vyt*{vhF*<`y?|t6#`nv?k|USuk^lP)dJ3Z{={egG3+KB;>dOuJNBu(YaT4bBGBZfN;-T zZ$E9fufMAB|2R7DsHFG*k9Ti(HLTlEODk_#TF%^+Cbx2%nFDZh%aMvmY2uc9Z>gCp z_f=ENEjV%@DhS`3D|ZeYAdn`Q101MGDEIg7_piru@ZjhD{=CNX`FK9saTOCf1|rUs z3auyzF}A}b^j7nJfe!XpF~O>r(?+4MbOiDIU6XH>Wb`Kmn4(&%xJw94fViKflu6gc z&cSDna2Xr4-lj@T*`XFQK{6ic> zVsa*1tesp@-+Cl+%MzRtx3QRNbCY`c@f34KNwbk2hAEwIb& zVfr)3e{<{}#X2){#8g$-&qwkf1r^pHh;Hun}b^hRzdBjeYbDH8={) zilMjQC9Qsf*l+90alW9;b>sDl$Ni6W1z{Q++V*I5MI51RrI}HJcx)(ok#v;c+EVWt zHZDr5-;|DFO~?>IHpy=L^3g{co|cXlJx;D-V8%v{>QZzW*jbTGtEqcmjigp{RvtN_ zOO>K8xkM9LM>!f#JjxOA8R*Q7#xo|4aIL|y>kjUhgnwD3Pi!nqFCSmFP49DWP*jYZ zjJ67jTPV2K^yppp_(df2IrRfo53$zX(lUNHU4K3~G}4Ne%~7e;#^r3%B-d}U?9OrGbk88D;-p+gykzKGCH+Df=z^H4=YI2I z(h~CYx#nt$W#N-XG%%ebHN;&bweztCAh_LsZ@Wrr>{5gAYE!5}ha)daRd&joB|jhm z8ab)xleM%rQR8Ywx8a4wkwv;@F+rqY{Y-kD3f#sen=wAAWSBtjql9|628C#$DRbE`4M(M-8>ZPK~cx70MWplC4+3G(3*zOYb znq7_Wn}`QV@nSu4t7G`x^P#F+Mh)BSUQ+&}KE|-Zn#!{wfqYO2T1-ISFHjt>g_o!{ z&jNXPHLv@6N8JEVn6Z~90-w6%w|u-q=fjG0GfpUdoNbO4HwtrBAO15Mo~^BrYm6pA zYig`5O83~i;kfJ6%n2>NpI+a^aAq4x;kn;l89JRE_G*ocp~;2Js4gJz|<&j@B7+`qix({ZmgPd*YP5oi6o4 zIyNQ?tn5wgW0rPli<0v#L`m=X+gJv6n*CTJ?DzQn-GICo>F>rs|8>C;=%v2MaJ0_7 zd7*56DeP9J$A9~Hjt$ZRgDrH1rJh>%heYW#L47gf8Qy(GA*#(t*m^@R(0vcopL7o8+10 z^|dDCBfZ1ZAPXf|O#}n`s^g zHVlc3WDAjg{oRiD4Ergn&O^({*-;T02XF^wUT88v7mUl&In5~~EkWJd!R(v&=q!CR zZ?ohWFTL9~dPb%p=qK4)THX)#==K?6!!UMkwgH zeKg;_hqB$%L+l+)mp^s}r=*fklAB(WBplA;6dD8w;0tC0M=y-Ej6bU= zCcycfbQTFJW*;sqsCzxBvc!J+qnKvK>YdLI)IU0R2>>7tdxH65h@viPs*YYmclNY9 z0U(m#*rJpzO~#`>V2T07KgK^K>Bf`G*3xd|a)h_0qPZPbKiQB7$HVYkJ z@(r|rDABX8IMSXQboxmCnP6gnEY!WcER9@v)|p0GET3jY7qbU)IMBc*qS!}1bQh2g zD)<{;?vYvRqr0jFCF`dylR{1UK+P*1VY7)Zx0LScUqz5o0sdK!!#+@FwNnhTB52-l zi5%bPmiH6=dKE=oyhI4ZM-lDSK*#VUEbMD&U7cspq?r?Xy~<_w75fbr%nT*R41|Gdol8H2+H*BGE69I^MGNVTsT%Mumc z=|^j15w4u5dK735B%wb{E*_NegmTZ6#{xY%x^@pZ} z@&C}?kmn4qqv|3<2BPLhnqZV<8HF3prGGo$gtfZHG68-@)HVs9Q@y6AnFaQR7KpY( zQFtdJ-O8^%UQm)nZFSq4W87HVaH}w!gEHQDU?-L841Ap_59Ou#lq;jv|LvPSN+w-h z@ge&BE0NoXOT~;8Bnlnjsi`G?C5(Q&$B~{Jiw*g%>3&yd8ZnSAXyB%d$HQ+gD&%0+ z^>fuo)7+w-9S3^QNagS$YhBGl4?0vM$FV&-FeUQHO`Tc2HvN|wmZLWT>TqeL{J8~X z&`r6+m$hu#{Fm2M^#FS{iZr~bFQOzbY*c64%bR+6j^6T= zHSodNi(977Q2kQ%v7NlqG2R@hC6AL6(T%CGIitPz_O(i}!CKx}u+&SJ=hg;8?WZF( znY9jc7v-Z2&wcC+$F+jXkr48=G~N8jzl1Wh)q?S*ZtSdV;zFNjnF!$%f*&gK8|!`s zY}@CL)t*2gH#^00(~5!;H{*#k5*9e6!&i2^pS!8kDEM&|uMZkuNSpr{qLAe}K#cCJ69av6MosrXl-La%;8zC}Y*|7)y;uw2X#I$RM# z@_mhM%hUu_rBTKsOD6wdxH@&-m=v=W&Su^`|Haq~BY!q>k8X3@<|F@i;6SK)m8x^! z>&G+$Y(%x?M&E^p6$3D)ZCEPrZ2X`6T20-{nL6INIs3trLpWVL`n2V3E({qb{?6$-peK3!HEcD8#wI-Y``bRCDjH^Bp0<^M@1Fr>t*d0 zQ+J`kMKWrm3O_aeo?lR5HW*@%{u2?N!QGgQ{6V5JFHu=~X#3LzXX)sMJ;ExY++E_qI_@e)JdKk*M%F$V+&9@D`Qa<5 zLo)mgejPkDEd=+@OWoGHIk(Q{=6s}~s)u2lk&bzv_^4|9#%M~znWhBwCFTc?SZRzKYkielRQ*Kht#QzYiOvuKeM8OJZNHE6jZ%AD??3;-mg$T{?WzYVB zk}!1*U-Qpb9@!+IaseB%0V$)%yISkYpQU(L&c~j=gMC1tAPQ7i8F&psAfqKj{6DNz zq}Dx;mFZ7bBNM;OYp%F-bLP;qTg5}&evK-s+THzmi&3T}?Okf&C=&0=%OD`)z2lJMU)e+W} z2$z24byeWiB)JW~Y)#A6|Gd*EME=|DxKK+sPWQky;;D-pg+z0xAl zY=<)TF8t92=J|a;I;DJ(@xo?JuEOjj>tt%%?J@P&RWb%YiK#2&ba!EH21tzKyHImgq7xOutoc9>3?(5JT+@z~#CDzX`U{OK@ z*@(S^ik9bWNS=#y?aF!hZfNFv8&ODfnAT=V9U?kj8+4h06Lu78!6=g;{i^>FD$zkRdm zXK0O{d1t6i3>Vl27Z#A0yRY)mb8~gkm4hdmnG^&Qd?0i@TRyp0E>_%vKcwh?zl}FV z4Y#N}uH1ehtLrnHMEFKumv9R?R=k_qj~TrAobASb6r*gdZKJ6 zI8ejL&Dh75Y0ys!T-tObi0#`hbYu1e#Gsn+$&O6uy0(?|4HX0FMH}UGmiIen85H%m zI_!75iVHeN=dwOGyd0H{mClnv4cRzOR?jsibDS_F?G;FetAPR~?Yzhi!`HKUnnh0L zWX)#=ia^*zgX33|xe5ms>HOMCq`C*!XJ&9iut!gquudt8Ep5{IFcE{xFwq}%X8qzR z8galJT^qmA{8E@r!O~Cf5=76&dtHpm%$+?J(*0+aWseGvKSI9-yAVed7ei(XZ~wQC zZRigi>e*Pm9XL?p;Y|-RW)E~PEI|^G+=_JtsO_hEU7_*AO*$ptFIiEM(+r%9e~#%{ zz^+z642aB%cS-cGyX}`%w1l^OJU2kS@wwkU=e_8MY#|a<{$Q)zQls{RIozE<+ciiX zA{7Y(dRvhJXQ&Y=cm4MmhE6$t9j50d#8V295)odXcnBR>A8Rkm4^I~Qm)D=U@4_`; zG1^jRs{(k#+y1@WJKShL9C+mBFDtX*W=^mxMdwSSJJv`RV?)?rg+UOk z2OXml$gS=ZTEqqHb`|Tl+-lxuf;;dX03=E!gYA=^iD*3m>C9`ADglipt=~k90Ebj6 zeC2Z5|1M#L*=>7R$?u^>TV4O{+mxGqy3W<+V;)jNRC~Mn^L)1+>x%y9zi;O9$$F1d zQPXCrG=W+H+MX&ITb6Nzy2-`3i2$7klx^E}n6k6SUPY|iU(M=FzX>JlN+(j)xlC>x zawS3jVI)=>)-pEVn3Ue%IE{mlk>qe&tDWE~=Z@Jd%bXZ)AcoHrI7mjfg-0HwrMZs2 zBY*ebz6+a>RRc+^YoffqHtCLm%k~wkd%vt99bQ%`R-{MuWr@S{&`}gGi=5@80yM6UGyGo$CNN{;hkBQ69P-#$G29BIn z+-sAfhKMhI@k!AQV-AB`>X1JK-}9KlSVt)Pe_~qOh$yiYn^=##znCAGNbNn|yd+w5 z5H=ZS>m7I+=D{9-%isP=v+f@@7GPP2g#IXNdjZ9QvQT3Wotdi2qzqUkp;s+h_Xtmf znZU#K=VVLR^>hF2>u4Un&KgK;0tCt=S5aC|f}JyFtM1X-Ok$}oW{C0paH2qNyP+sy zX00*xugiH3=A3S&OVH0?e~7_%%w24WJ^dgzQDfx-zbeEsX`);eTQKiF1-e}PV)dj0 zubKY0^tX(uHJA3ZKOp`oN1n7X;V9u-d34M``?a(1F>)WCqGX8WWboGLGFzJ z3D2kZQad>y%^b9~Q4I+#4Eu5<>g*6)PXa)sH!u%4HHL%0G~xik!LnX5GH$OZbjE+#S}=a7m8z^Y zYN=}==T>MBTvtza)veFsTyEzVlrx3a&0L={nPc5Dx`<0LOR2yX<+vO+=j-y5N~7jL zHL`lXO$K#I#+QE>-3y576wN6@1$7?Uvhb5A9Ju%qyl2QLc7vDDkuK7q1xbQ&o4J zDt*Q#rVLB2hIo)DTbA?WkHv-!I-36Lit-9~uDB)kS<3j{_s#;mS4GF-eWg#?zi{>2<`iRnoN{ya@;1GF!0buo z9XdAw0oFUwdg1K%kx!y)Wt1^ribB_jyFZbzN2-zGS21+z`-L4OtDhq-JF(DsO0wSY zY1{}LD`!F$W^cY?uPW#81|BQRLICVX$mJ2jpC7y0rAeB7G^~@a*VsQM)qG|uP@$6C zXNDdAwsSdru;DDjGl$CuH*&++=QPjO69LmIyRGs$FXL|!o-elM3(=&uy`^V1$+aPm zY&I@vGUX{Qxqc_zLSxL+c3%1*E4-by)ym#MSk>G-*WP^b;1n#ox@cXyH9m;KDBPSpdS zbHwD)z(KSpcyB~j)e2_O0H)TH z5nLT`P5R3pU?-Mpa8+{R2BTjGiBy;>fk%VPa8SS0n^j@=YUX>D)4j0#x_*~QmyD*% z%|E&W!*mXxrheyru*cPG)l_{mF+<|AjYF=T`%zvq2~*GU`p zcy@0P1u+7kvbgv4x;o#=f>96ylc*#p`pL)6(0c7l3*+6c(1+$T+}bA+W0bNAJc*bj z8HtME&^+l?QI2ma*Isq};@Iftj)>PuE0+hDeud|zE(TBaM@+p` zU9A4xJ-prEw_IaX6l9clo>t%v`@J?(R3e6aHKmLu3uD7sNt=83-57*TRc>+Iwz%I( z@VjT)U!PHE=b1xaEWgkkVD;fA|M223TiH>`(Ca~cJ+5n#AwOMtzY;T*+Ww*)=@7}K zapNAJO6sx~LdH zn5RcKe;A1o4)}Ma)Pz3^*Y}RLSzZ;_K`oTp*=G9Rv z(owOYOJi5RFtF>Br+6#)wf>b|J3TZ=35kMC-jd`(EEWh-YCmV#w>_wd3bKL-+%iy zhT3x-Gm=ve>Uzo!q!iuBQx6&rh!0rTm;mh0(c#%IO$__~);UD(U;h7&pj~?IzldY( zs=H?*m0x!j>0dYgBH@MDaWX?@W@`rTxda5CyFf^Ode$@-dfXZ_Wj@G_qVDj*-JaBg zX!eZNs}R5`=(PH{7*YGNSzMgud~~--B+sAB#O;!tLoWbawU#iOoP_O6MXTntbmMS! zFsCeHc>HQ$3DWecLJ!fuVy$5;&-@WfzDTsZ3*nE2@-96g$ge63sUXB;;@D>vJH!dc z!*0XM;%zK*FN&$mF5SIxi7w2&WG82DiOfj9$qq&jrmotZ%Iz~p&nDZcN6BS>+!LK8 zcb7k&YcM*(3XLC0T{i@>^m>oM>%q6qNtyb67#oXH)%*OtRWXXW$D`GwgY}CZe{3_` zA2ooD_Xo-u=a>`qkp*`!i_(gSd?}Z6m-Bu>d7Fj^^8G6nA_JHB75%4z&uDXl=RJ8_ zNWZsvXhUHl=?ZZNnX#Uk-4F)nC@gBiG>?k!F7^lft|~xPhpTZ~S}@0eP+Z!rkq{gu*O~Cx5a19r-aW|f;R@|jHSkwve)qn}oonY%9gAdaHn9)qcw!e3O-woGH zkJ|&50ohx1cSjv0m+pIlfZyl}=dzBfESjBbStR9IiL*yo#N@Bt=9%Og45#V!{4hkj zwyN}DnCtyW*I`xe(+tl4Y6ca|QTlVULo`c@_x>HE{QWV+t%+lH(|4jLLD|tfKapYO zxTCP zZe5goz5j{e{$KM%WOD<<`mJklg+JoV!_|V(%t2RTOX7;!u)xp&F^9{6p?&(>G5kt= zexAi5Cs8-#5Js%DY5)o4=u+fqE@vOoE^;;XWI@s(&TNq~^bnmJ4J2IEzWS?As$Fo3 zS^{{5nD#h_(rS?z-2)cTNi|m(V<85AfS^pjU{j?Ic~t{XJDb4mm48RFa>V@}^PY+e zqQo1AHTCP{{_Yh7K2*h}n6;&CuO9{frku6;{18(_J{RWpa_K>f1&?UZm$vuW{U5}0 z!8+pD9s3ktH2Jg4&I3e_0;}%KPTFH3OQSVS@-4CQBdk5+{y1f#K@G4vx~MNV6l4~Y z!{?CMo`e`%koZ0{X#7KQM5}Q|P>v^POMS}Y{N$994WuP%uu{5BThH)04qls2+Y~)h z#kQG-1tpq)G%J4f0mYiL!S6yM)m_pS=gle+^HAOfzfx^pcDSh3VEv|3ES$T*L6and zZVyc@<=KaI!OQ*m8}n=}i{ut~F(e+G6ey=T&oo5*hS={W+hHm;e|bTx`A7#Sv>HAB zQ40T|QaXwz3a^XQOo~nuOeYl)u4c2ihJQWYP_1UGrhyYb+B5g4KE;A%4Cn86_$4ra z@9b97!JB!54c*Dc?-bi=Pn`YG$66L>iuIaWGsDw{&%sr-ZyIzCqo1y7uR0sAD@4>H zkf1c4cF?^$6lmNRqF3R7Gie{0vYqRkz=f z+y=*u0%Ui-ejDwyLK>>J#zQu36TwP2nT>PKc$kCOrfjL29jq5MV~;6BhB%GGpPtXv z1}1ww*?*iCf>yDrqL@2RY^nZe&eLQY_ZZAFhRxqlpw&G1rt7CvJgO&2Nx$eQ657sb5yj5|$g|Lwb> z8VKGi5v>KcMTA2YY1Bmi%dz#RsR}uV3?b`UlC6gm(6ZH_l9Homug~AYO4iq|6Y~@ z4C0@>&kRM?(|CKrrqffwcCNzaz{Ue_5w$%V7m?dD*UH|#IAYfn7BgBD8T^|>IOuLx zUuLe?s;y{#2J%#y<=?a8Qx1`OKg2r`h)Th-MA^-&gw)2K3r6qob$wI~9&PiVur52d zo`Hwn2F@+7XL81@e@Q4vLJDvB$A<~4Jd^7*ns;$t{)?Lh=iamQ%&yK@FCnkpcF=%I zUwd7xt$VNb$OIy0Pk%llz!S@@?!g%kB4M058% zB>Ero$BC)4P&!Sos^wPI(WCa-ua!uz)9d(4ag75OY$l2jC}pJ@|Gt@vbLouDg8Tej z6V@=H{Lwrp*7^swcP=83*Yx4DpS*t(;VwO@?_Xzmbs>1O5^IF3i;t z**P}*x-LuZM^I*p3G=9u0sLzq)Ee1j_E-Fmx}qKt9+elcF1Xy)Wx}iRva$L)iz@dz zM8rT|)@#<4kAx&7+4FtGQxcW8kHXcHSONDwjEk%Cq2x!7^ihoTvQ^n+?p$|rQ5s0x zf)JkHg&)`K0}<4Q7+T$m;XktiDRO=^W;8m^;S^TA*&v#5oQpkH?JX^DGAmKW_RuQC z6+qXHb8$Vj;!wb$e9>BL&)gwIvnO*ap8=wdUf<^6%v8WMgtAwu3P1o&K@&mp1AEJiaY?(FK zBRer+x#g^S3Oh4;X?QFIeF1U-H5|zP*YzE}=}Bk)_AXmf2tsq)C`Ct4vb8p{$}U!0 zu}&YxD;Frgrt0spyKJ#XI;vExRxb?n3x1{Pkzes7nk>z}Ofe=>-kV8CD*`+SZzOTL zBt9>Cp#6?*oAOFk5XFO?gJt<|)V;{baNcR-ybjF5ToJ{%lVsYTxf5H{qNWP$6vb?o zH`owTUmP}1s-xKE%zGPx-;nj6%*ySV5fyerHCa(99%3g0wYRbWU;Y-F81184W`a!< zf=58bu9d;ry>dEgxGYN8l(tEJ(OBgXT`Y)*dK=?H^>MH#idu34C%U{;2ri?1xrsHD zkwG8LE}OEhol4>tU^{N=8{Uj+HtbH@(Sw9h(3E8NsPq|YX@wM6lA@DMA!l&%;RGO)grBb9NQoKLG}j ziB!%^T+2-liwS*G!!jnFXnacJOCXlzvhwdZ!RxW-6~XAE@|}>H({?993;SEw!G%~O zkMC@BPfA)q`_~`?vv1rrRCFI8y>tCmdgK`wXwTdo8a;L)DjqloKUV3c8$X!tZ9LXw znAjixYsfy`Yn2$tfS5K-`2iNB5Ga>prdg3dsRTI)!LraJH5>>m@;KKWQ}g+Gi|a!|GBddoGI&4dT(x|Evx^?gS4~+&NZH6R%>R3 z#z0mki!N_O_EZd>{^C~Os9(9nz%*hiW}=?$EqM`p16LXh!25m1hU>~t2<3~i@k~XQ z0a*^jbKa)%3?$EK#r;zg*k=^<(f63oPtbb@@IE&$M7|Kd$VUtDBPBAQQdLT8^bN&N zX5U#qO@P8%aj%wyzYe$=&-D{Sp%GtmjL9YP0AG#k-HaMv<4J~lClqh83)l98N zpQMe%7JqiPJlQPajG^VLHUz8a~Lc4FKn4L#>J#-lnBj|0jx3hn{cTIB9X%t@AEWMuZ z<1Hmb?Bwq)Z4IArQ{I-^XkK)Y568yu*?s`&8sT@Y&Q$OlHNOs0BPIJiV4k}sk=O6N z@(lI4>$xCVSR>qohCd*2#M9z_aF#Rr-HSB$f+b48LhCT87V2%S2}lgX5Qz#|Fm@;bSU@V)0RB+K2fzM zRb4l``FnD!`+xi5_i&RNdtcTNFP>AREZ*AG4lE6U3%S6fOE**Y${Z{s#C_yu&E~}V zjc@GpNa_9Fsp@Sh(MR{T9O(4+dGU!=>=7=W&D0jc$gGAB8+91we$uRvooKqWj zQy8A$jJ zt@B32-f?mqSvWln%-9z6Aalh(H1n02KY}l~aDCORQ&tA8`=ogSB#A;;6$od>G<|_9 zaOHDw!`pxBe9r7>t+o4CFm_d6qV(_sojRj8aB``_>@+U^Tp#lZu8k~sl;_S zWDdo{neH!O#4Liczb#xd{kqnqxDzYo*xqP!2XmgG!J)5uFs(ve6d-1$neB5nn$|Yw zCi{+bg@)qV%2TBWJ`58aA`KPxvTJNYwrg&wk7Q*-a)(w)j^|VplkMSf=kyaGTbEM| z;}GJ{1tMqWVzm9!swa>Kb<{44slev*zuNZt93euJ5W+sCcLm5Hf3x&VQYcEM@+S`{ z`-_qSI6U{%n*LAie{*#S3CFGPvwL>+@)aVCh7Gvjp-y$cr??cXCl~7g^v{x!hRmcx z1FMhZZ37<9pjBbA#~8X0b$d{L$J=)AAntkVMQ<0Q^?JTeSo(YODPGnV1D0DuxMus6 z2=mzL>WNLW1_Yar?)C?cU&HhsSB>6dG*6C>)nQ+VEFaLPXd_R5p%x{*78j%MM zok6)Lzx-_U1k^k}I}IB*rxjE|?BI7Un+z#q1)X6tv_Wtn@I?!X5{`!#UL{>)Y*h3C zdas~9lV|O*P?h7@4iD^+##xQIUzMyfD?h{1#v&SvcgawZ8qBgFjyWi}s+%1gp7DpG z28;Fy~P%60vokuFU4F1;d6S*Hb8W)cB&BiPd^h;ZEcqa@&nj`LpprU@s!D#5K zeq=uwIf173EtGde-^qQTki&o(JBiK0y>#PzT#OaT#@{)fbl4l+vPo4^;a{i!wq5rpU_fJj8@-sjb z)#EZkgFTEj=gb@br2n2kDUTf_1$s0^XH8sX#F%a3^uvxss!`F;%4pgI({fIWBheT^VWKqg9p@Gi=(X*or;wKc}5djG2W*p92Q8aeo=i zn5E$8X6olq05T}EctH~e_5WJ<;i7 zF?LiA(`}(E@omVgqk9sYYSXa;Uxocs*)v7iR{Z&j+HGEN?`EWyj;M6DBrvN?4XG^< zpejr3d>UHmf8__g^zH_mhT4g#4J-j+cvjJKsjT{WeBW5Na||YMJjbOsE+E`G3p5q^ zPsf}YZ{BCY#NZ{2gUc%T2D~a+bnb%*zb*LW=rM0{rjKY5SLOI){TmK_;(QpnRy+K( z$fX@(b8QTiWKWQ!{i=d<7-Ri<^`{>D8wE9WwK;GS?kthabtq%6O zxC|4nSE78#WO-GO;VMJlsNGsoQ9bK2v{>+vPNMjTkSTdSEx82}0d!Bs0IknRkmP375h+p^_`Ip3r>5{g=qc138g$Q6Edk zVskiV=$t)Vp`Q50i=1Fotwj&(#wE?Csj%F)4JfjV$Uimi^rT1A1~JeN8U{uYO?tnW zc7~z)YIebWtNWv*fBnbod1hM(7cyI;sKELyv&N>dqHHmH%tazPt%PXLX1MCxo_p)r zXn0qh;9iBR|8L(T<-(-z8=3{sfUQ%tnq?`MV2Pn@u*a;ctT^>Q(E%$5Vd5*UeAla3 zr{;iR%2JLY3U;Boii80~4p%&^o@gd0&CMc$5RFxdQjNb%#eITFi=QG4@lOSl=^EL6 zoO7|Q{pEu*u9>CD1bjc`lG%gxJ-)FQ>NPfW-epyNGiPkzW53b^k(-6_#$-{Hb*t|# zGOU$BeDrmA&OOm1##3n#IkTnR<_8rbY&Wjk1kn`J&YDf2+Z|Q-^)VW!@1sPKsU$}{ z*FVa9%z?`}m_G3nveXSLZI;}`L0X-C@(_`ynZJ{Kj3d62V=!%4_uPiF^ENb!+7^gx zCzD*c8VU6!J}?Owi}rgU)~NR-BkL!M6|ZjO3%`v&+RyWIFg%ggF2#qvrMEd9MGcB- z_P$5!R(q&>w|R7MBTWd(zX;;$X$;<&ou?>-e9|TTna_1kVnB-|k=S+J^zY=i&x6yVm0FnNs^l)rJ0z8mnxePTzZtmA<3< zA)gqPcwQ90yA6IMCTPImDmNNGZ2cy*34M>Z7;b`JJ0EiCFgwy-m%3^Rc6MKE?A}CIWAu5rDG-YH^;)-uDE@N) zTXXwKqnzwhDWcQViGzVvWqai&7cGiZfZ75Ht_-}?+e_q>VMA@<8-IKGH^xD*<0rcf;~GaX|FXDW(6NIaE-RG3{a+S=gi?`yOtbcsdt zwz;IEvsLr0P7DRDx*J-;=+C2>?W<3F$E8atzp(k-Iyxiq8g&1oy(OhT-L5`3H^Ceq zyG!+Ln=$E5k=ky7YO#>FZxO`dBu5^CZXP zJz3%tx=~``Z>QJIY)zcp!B?(nW?XP1n_^>Kr8_6#YlBXN$+MWrdoqZ2bA1i{XE*4O zc59R9lo$F?J>mKyj$W>Fr7FTUZ)6pv8;^= z+DL+UAc@-LVJF`9@L~u8>Y#<|fkt|j@8KHF4PdI(M3N)F*9$-WIEmCu1j~(6JeQkp zM3WCtY1gYp z#bz={lJ5yHU@|(DS6^w%*?krVQlO@B+w~&hFQ?zt*lBV!AOjIUcWipjhA{x~>#H=1 zRu|Wxlrvi?{T9*KsL##`)`6Q=`9ATV80tTop~23a9GP7cmR1k{)A_Il$~;rx(mY=L z_sj)G4|S&$qT}ciS2%IWI8g2lJ(#4RF4tLv@k!=3z5LL;#PAd~{I^e^i=&>n=(PJo zn&GOt3W@uM(G&z&#n$6xt!p0=7_pg-v>IQFHeGD^QHK{TG_9v+4YYAQ5%ndWAm|O} z#$=t)SaK09TA7cTX&pCH8wiH+woHfwM<-$dqg70>gO>gw9V)|fX^!|Fhqn+Ff5r8!U@L0G*e4hCnhuPF??%$!ftY=dalzy!k0QVJGX3?8YaWYH^ z{VTRt!ld~e49OU)pV@l9C&l#D53``k-o`R3HT0}eT7{>TGKSE(1uEl%+`zc$TNIvQyES4l z2Armzt|Bp*!Zl3lA#Nt@OmCfn{3XR8=7s3rqiIhyPK){&&BOuK*UMbRD%~QHlq+`9 z@tgPj3XguaRdR{x;7i?*1q+VQZ&Cjy>L1+Y~tnVY+YYWlJqzG9`qv7Nng=u>V9 zKj*06uwM>2d2UwJ1>@DyL!Pb#Z>V0taT3tkZz;JozpD;S;1Sw;e9Xw1G&ha?s@O1i zq9QXPtI}qB`AsDxu6BCL+^6+n*&dbz)id1hr?e?f29^VwdsnJEEncr|RX&IrSz-4n z`9XEm{p15f2}Z^{A!`UD3?($wdS$>`+tS3yk3d@V1^Kam)h-eb5`?KuYHew z-lYUg)Bigkps3q3=AJD)R?Ws7`Ff{taeVaRu^EsJ4Bv@C>_};@P6e<5w{~J9Tsv@2 zWm$jzlskjs4dIU;xz`Dyq?_!m8a7WpSSt&pDQ|d-2Z^h2jaEU4N_N|T zLuA7-Du&@I`O*EKYm%)qVc)pwl90JB;dm`u%z@?O-22Z`vzNh^VKo-4$o!X8=dd7=Ox`s+Il(&T7+XphHPnXfit<-X*=m1mOu zLga_>dEjkGdaIke;!QaDNo1|XQnK_~*txxnw;i3=wrOoSwhIjHR*J6~jVMS&izr3n zh#-@lq(!3n6%`_*peBmCLHn5{s+{e*es7NR^5)O~8laS)*A$~k@&NC?)V!HLPoOxL z9Tp=C*C4xzcHsDe>oDYoLi{{U9ulPKBD_i-Qt26f*y>m@;O7_7Nsp_%5G!+Pnh04B ztSK8~@N9G_?i3H%9sg6Pm0bfQxqw6h?X(_2u=ML{EJiVUGGfcGn{FH2Q>7~Y=yJ@> znQWNLEORFX#cVHeja5~9W_2SIj74HcG?>VvE^sRB?mNBPqi-%B-C0WnXjUy-vg$;X`op$# z*W1nxL7I>?xlL_$#N7>nCgw_7532y4|9hT%?^|^HLH@81m$CQRqp5f<+%6sa%a%Cv z^R6yUoVhCUv)9SkNz=I#?ei}j)4lAZ#k86TYMlXrj|v^G*b_M@PSJW)jdNaLY24Y` zmoF(<^Dv2O!V2h({)}e~Bp+Nr8b*&ZfjlI6Is;T$1RMR2ER8iBn|Cm1mB=J5*zQKW z3REZCs$?InhdhU_9`>>Q)x{XgY2ytGL!nNS$s=dtR{Vu=8pqk4*$0$+#WcDre{X4` zs5|M=n#JaH$goEDS6MT8SI*DC&Enb-qae%hYMFz~DzIwWgKs4|5ohvYfx~X4gL;{T z4x}roobFW;!t~mPUbJm~S--AG_mN!{g1(5^y}{M?YK)XGIHAd&ZwP?{_MSLlH(FfPDy%6RZV7O17@H`{bAOP_E|DD$4{c!LYM@O z-Xp3*yOAIrzD*wz%K@+I5J3irZ6o<0HJ~1((IN+d$~!K4i}&du!H%D$ov(>h+EypEv!qVi)JsOcg$x&pdToP-@=k3j_n+q zcifpbW7?SP!O8;5OK`7DVktY-3JL(tc^0w^CSjnGZ*9W3-&B@*#SVk(tg8%6FKY22 z5rEkjf9Za6i8l{P)Be8aEqVL&A&v{^9xJ2 z43VKXe48gQ|lMy!SAuT64}PT6&|u}qrd)DG6$Y~N*X@SPO!$f zH{mwvR|~$bBSJ|F1fbg&CL%IiV_612iV55~&bQ3q8hJemzeqAfk27bgdWvyPrXh(p z#a9iYNHJ|iYL{|PGZay(Y3}j%^Bl4^l+*{)s+%HdYrr3~(j zIEc-IW8Vxuc_hbhFHyxF;xpS?G@n2IZ(nEabYi$odvp3X$;4vliEw=}6~t*S&Q+v&A;R zD&w@-*03AUA79mFz9drS|4meoV=U{>*&UPR$bf`>*m45uT15Wp0nea$s+HJ_n5k}c z<#Fz^%h~Bx=S|$RSKrl*P%ZpW4qN!{)D&xeFxmu&$TVVyH}#f0@&y0;?l_g^0aI-B zfBbf1Tx&-(6)U%Jc~*NQ0B8!S+Uq)jydLdAR3fQ>{*CCVnli3#&qiSiLZ_H`E>EKA zp1pemQHsa+*cZ#_0ibo5$;q{(fNFhLbDiJe0`x;B#fOf>-hSWuD3j@BRg_(TvrKXg zDxn|)Ye!Ew>sEzZho2@#+!#%mzSe5`RS`=wr3;J1q2kgm{qWVGbq)CE(FFbc5eA&P z7v&}R7uzv?y+vj}#qY>uNxPeKfrPP~bx$4kNo?I9|gd&gxdax;(DR|oPP=u%` z!a+7M18%A;)93nec;uuFyI0zXFLY@9r4%vC6q5KTS2e(OLPA z9?Gh=^Z7Z@-6ohtdNyUe`Yrmv33Y)g+0Q>${bEF@8fj~~(mCC9Z1ipNww`brEILnr z%TQE9yxVt=7JAxyRz)vw=)rM*GhwteDXVr4c-ThBrJyAMeQ|f4Cpu>oDLN_+Yb;Nl z*=+lXxl%K~C+G&9WZW8tq^*Wd=E%2k2Wkt6o@RtmAdx%`-ih*6XwtBn>~8c_w-`N^ zq_wHXlT>)VvOP$auT9UE=1hJ8-YMk#0dlA@P;omy?~Nk6A-2&m*rY@o(TTBxsaeQ& zDHEu4?((;^R&hARi;jD`S;bi~V>c=fsxFN$hRWYxA1}D7&c`Da-^Ov|wmR9b(VujD zldn~E9C0+LJ(HA@zODJc@4(X8_j_w7NA=>dN?>uLcn?i;02eTKOS>r1AC}E{f4o;j zlVzS*rM4>#x;`fh5k)3SFSp-S-Pt7b8@=#Jjlb1C#B@=~&ZP#fSK$@mZ`*3rk7m~N z2f{lD(3VNpCHvbopgqn=6{K)i-SuygCn#y|1E&`d2?+LEUp_YNP2`QGQC8J^eaE1* z;kda1fVy7$)W0j!*xY3=wC!?laL6%turSuhN(zb!C$tDLWom7Vl+sHEF0(va2?lWE z$NP_tWNRB1;5ABT8goT|#Qt}f@`b$M*2X^nzwho*KWoExQhy?9Tr#|mt452zm1h@Z}^2#CLsrt1rL<=q_qfee^ovoteltt52;7zo8QnvO<6 zO70wTL)NlpeF&(7luAjA08|SI%aAQI#aMRF!H&higHXXOYhjoUsu00Fg=o| z4F6FV__cmHRNi{i-&R7+;4$wIJsN=MKs|a<(J<3HJ+pc^0rD5h3U~y6MxAFBf`Y>~ zjXxY?51hX-KwtGH^_DEb4)%G4OpVPq)b6cyG^|-WJ~{t#V_XI^-6Veg5Pb56<2%V6 z_dr*iZxDB;T!A-J5{uoNxLdlax3o~11tIS-md2myFS~Twy2);#6(PC7CC&WNFSx=> zN%_I2Gz&M_o!h!d{vGS_B6)%putxoBR%ctMUm0>n{on{0^+m2O#&Z4RgzDzjx1=dl2qoH^4z;ghREP>}xDvxeF9PX=wAkN(D}q zVBrUl@84Y>B9t9fANHhD&A7uW=2($uXevl0<$>j@B#X=}Et32A%Za3#%CvH0mcGklunkIPvOiW0j! zif4dESz==Gt&Brj^T6Lx8Q6?}tn#|KS(e{$uA#lc-sTgby30PpbsSRxpAP#~*K}vS zLtiOKI%lPq=$g)Yb^5B~f*~-*A~XN@-OI^2<{tK=7Lv~o6)QbuOC>KLXM}0gIwm$Ee(H_XJ;e!#buI=A$FU|C2 zaAtR@m_iI;tKD`!S}SRR)|P zG@1-OqZY?Ep&6IBS2}b7qr|n=>*f!(06>w?<9OTzmC=|EviMXyQyE8Azs>y5bCX-l z6iHk|Qn-D(2>fINSc$)CZ;Y7XmOkVdr(-DhjUcy4Gf3@brn9^y>@tv?UR!cC0g6u5 zv<;th&p>8cf3GI}?>p;9B!iJY_cKSE(VGfV2v_2HgpCucepY?RcDOTO>RZVR1ROb* zSI_4CA+>2`dje+$nA87<#CZuZ|kFayIrokr@&!3;?T+H9YIXBVP@@xR# zH!c-{NypV}KZs)qO+pO^P3r7m-Qp~;d@#|o(Bt_R@G8LUmA#g9WY=U?(uRFHv-o;Q zyVeL_Vov1o)k(N#GMs9v<2z;}+yOohWOK{`U*YQ5%vmV>TKR~R71xBKW{R@^-*@+c z#a$rb&V<3f=dXe1AQA}cn(W4^WcR(q8SpXqSn^`Z%se=5&6+;DNs=cdg;vR^iL2v<+KRB$zMzOOS`YwCo~z@&j6aSnCm{aBM8 z&6)_|`Z;gSs_#4`wz#N8!~oyIlr67Mc7gGy?$nDE#(;aKPu$6VdZy=4v4cZK{@pg_ z+qO30Pw+9o%5@~Yb)t5y{M>@3B>&)Asa)-M;3u&9s`%%)ABmCY6nkx;yaz)G6NkHH z8|XT}taSCBpH!*X4ZDg*t(RX(${r?0+fC_h#MlX;=piy-7A!*?TlF<9wbHks0`JGe zlV0{3PUpu|l3_V*lbL_w{i=B4BdQ8)#cAsL+_#m|c1()iY)XIZ8J+F()1{|(MI||} z1N-CM*p6n9Ai{BDys~kk#7XHNNtVv~=WK55xb%P+o8LLL_o2Wg470c7cp*%9-qntz z8hL9nZ0dH^u?7`1`Hxku>ZhmX$zH1TKFdEPh4`9$u;~ZRx^lf-)mL;R=GNwQlX|=O z1+`lTQnN~;_qZ%Ky1}8<&G3Kz`-oJIc@69`yb2%GGLLFWenjC*ztoF<$Gtiay=1Pa zeQl;2Fp%dJJ`YTy8XX}ErawuZiPsE)l4Q3y{Hr`BWGy?M~$aj+% zUbtHpv{{>CUPLR1MF62DTwPPU{YuURNDEf_n~w5gl!T#bujzV()3^i_3)0I%*m1HSxzy0FrKYmp4& z8LMhaJX%nAa$zIq<5;a)Qb*gi5U0+cEgOx2YrbqvMO4RH?f;^4n&f9YM@D#U{!0_T z6E$t`(JT&fzkJkYwyd`K ztsFan&W=fxZAd6SP8O$n&(RD`xg{i^bs%dICkbl5Xr`;T_q8QFNuD#MRuucHJf=P- z!wqK)wOxUgI3&#h8IHi3S>vlNE?KoBV-TOVLgypwYn6t&N7{iMLLhGJGcG1~C0gMf zH4(@xt@k-9ls^_s9emc-Ot9jc#6{o_Bgsh90YumSYG6t`<9X=}+Y`djg7px|zYCdR zKy_e4x7X>(1Nr(x%60ND-cRZKvN<_9MN+!66VVa(Iuq(A8@B59J~nGT`TW&3D5nTZ zS^__e&x}1eM~!9UpFY1-IVXGrVm|VGz-%k8`zZq09A1U%WHX{aC93z*es8?4tX?A2 zCR>Jwg`Qb`omAc~KNeoF8(;U+)-#d%G8hh68-O%n*e6|nReP$R1L2oVT#AIsA~f_4 z>*vEiNKW0+!~(m&&gVga=_gzc8H{|<&}%T%LcRHh8@P7bQh4=rbxE=qsLg455Bx@^ z=v}mpVNM^_1U|YPooHF4|5F>4?5e&3D^eVhc@%8O4Br-^^t9pT$(!K}VhPxW!iYuH z?v<`kE{77r7u?ZSrt&bpRUdskz2H;F>EAsVt>@x5(81GyDgq+yhSgNOZbe_Wy8O9L z#<|k9C_S1Cx*-Dvtc{FiJ$2$}*NSmG#aAnIDQ&^favcuP>|iquNK)}*E})z1T(TY5 zE?87ty#|pz2CfS0rT^!8>H3}EFiBlj10H+t*>8CB4JtBT^8DQ^()DW&UQMAOKl!g; zvfV<%n%9o*zaBww&BtpD)~ofc<0FDYrmo2FEUTygbOaM^;{Bf6lbY+ll~M*0a<3|0 zA@Ss!)=9O2dK?XgOxSh9mZvAc<-MiJ9Xu1jHIr7X(&RzOw zDEq=h{RwH$b5a=5CbVW3U;xLP);mOivj7EvB2jF!-G;9t`?r2w)t$)Kea=bb_JVAP zA&Aou9tZ%UbKAqO=x^f5GQ49@-ONyXb2%RkM0h5cqalxV-$OScGN&7_?+g*VPKj24 z4o9~J-AP@C|9xk;w?yJkf3-}{4Mzgtc(MaITK>gEX}RG}RsQL5zxK&{rE|yN>;Rhl zO%fg3dABc1uQG6Khn0SRcIc;c?5c*78r&5~wszjlL%;)9oQ$l^*ixn^`lHF`jCT@v zVf82c&H3AUtWqCxGnC764lcp7)U%6txwts=AK|G<&l+=N>A)+sf#YpLZ+P~i1*igK z;VXxi9^Q+O_I!z=ao_bK1sMDTUtqS%DMbI@y)329!?MJ5kV&4yjmZG(l?LFwy7evA z)TN7jVVR*ngVxY4ExX9JSXI4~UD%a3dup^Tm(AkWFdoM!6%yjL-b!YM2TGGlm~>!U znt;91Uaf=DqW0`*F|3YWDj{JjBjjtdubuGcyL5JLWmY6L+}vY`V5w&Ni2qnF-46-? zI9{>u2Q_SSdooVxi7U~Igy zu?~PVp%zZDZvndzf!2-v{o#5soWYeRR%o7`y-D= zf|G$kti^?MXFTb_Bs?}aC;%X)IFNMTze1<-tN}L0JsLab%flspA1x?6%}AW#=4A>V zU?=GS=a2AE2TUC6ELr0L`CC9$_-VOb67pPEK(Ta{!J<w_51ZJv zb~RV5fyOQYe&j!zWDO#?D`$5z0hV#Lqibt(sq$mIbGMu?DB2CDd9mU|S|4yspa8_y z-yr_X7(^X;OMYMH7c>0wfk zWxXu4JVWA$Ju#tj^=>coQP^&vYWS-kj*`Z?WcY=>wOV5YLPMi*23AzMvvl|UovkqU zZu_%T;bfH^$El|N!}MRJOr(H#0KGHVZgjVEHlp~9DL7uac56EJ*9PQ14)P0}lTa%i_`CN2#=j+sgNl&g=$e!F zoPIh`5fsb7&cW&27g%p^ElW7Z6usm1#rYru-`(dh(hokrBG7JQd^X&Rh`;(O$JMwM z>X|qE!Sg>l03skl3Mibe+X{W$zjAFJ%70ZN2B-W6DjFTO&1^ug)Jk>k6!oGRN?6fd z&c=o_`5PqO&m}MGbzEd!e#i2Sg%Ic;PybjE11j9lux{7U;PBwO8&UWtIhbX{LRe6F ztyXH1T0@qx5vmJCHMu!aL&W`OumJuG*ALB>e^JxyEa-aKd1`RrXVg%`X&P#Hqf)-l zyE)DOK4A=#0I}cxr@wZs?ZDwz4?fUZkegH>_NN$KZ)A(>FeQm?;@Zm>TR1)F?^V8X zzV-znFbHQpU9}s_=$gDvRy+#q%f#5Mc;W8zujrpa<41tCZP@t#mFl{$@d0)8YzFM> z8uhE9yXD0c*i*Y&0c__YthBT;5#qFfKD=;CR68oW7`}ROD!*LY5{$py?`z|9p@--0 z+31{`$+-wP(h9PjCzgNy+sgdCY}6&J^HDa~#vO7S5`Bz`B)W(!r=nXTB$#MTaLT(u#|wVj?q3qHxEpeV9i{I5cPD*6rFQCcDoFs? zzZgf8UtB}Rp1IZ?V|W?t)Gnn)hG$ z{2M9U@ItU!uwR(M%?9UVQ0A)8HpkpH*KF(=rx(JVx+foEOwJoaW8s9G<>a_C@Zj;# zlk$r#LILX2-x4F#uuagY+93U85}1fGsnx2ElHYIGwiaD9nQ%fVeE!LRHB61=%2jC} zq|R~7^)sWw2o&&1a>I@*VCZEe6tN=mpz%En7bI!N8bT@Miw6pdb}=F9{USHM{*!br z>j9q0$D<}EgzvsSTW_$RE48;a+;md=n@T@w}9Jut6Ggn3IbSB<62V{hX z!vJ^oI_evDHoRtP?nymwP-f6p@zne@@-+MIC>uw_))0bbbaNe}*Z?_+C^B(}jy3~8 ze-%HL(ALt2E*P#ZD-mti#<96 zM}%!%DL-bJ0W@2|PY8?{#iMOqk~0-i{pn286(4Gk0`z&P3gi+IGugZW3h4ard=?W2 zYW(YkPQmu7{d`Q050%BI5iDjHtf&@xz8MPmuI*uRc zJ>FTv8ZBRBdW|1q8=KEw9u(h}pg)2HlUX0LOYl0Nz(X}6Lav$ivv;WA$oW#EpXny0K`N{^}Gv~XijCtp}w6R zL%oNb+Dza%&A?J33{NOfsP~z?4=Xaqmf_-!5U?^R_ddXL^62dR$;x2ZPfegI{4LRS zH+{A7$1%oQ z6oJT7AVi7s>bhnd3gr%%mzd$Lk!vKQafCC3Kn#j`zOqYugE_MW7e3RtG=tBCa1f2BZ|qJklpIZ`)>e zs^^yBxK2v;5f!Xsz69m|dfixBY}VP|FN(+oBX+__7=crcT`@BuLJ~@RQa#VU;&Z4o z0%KZl`tE<u>EaG;ZYQqI(~SBRNz zYa5u+-8OZ$4dF7ud&_}w2pZgxM0PZ9Yp!=z3kh2bIXd zh)yfAGkCtCT~fqtOm=Iay;`_0zzlz)>VkZyAQlx+wn&5E<93VYg&}iDEPq^z^X-k)RS#2vzw!doc)+Nj|2nT<`L3YzYJnnJ zkU}uKQuFd^*EmGCPJ&;KH0s%2idu@|pXi6<%lY(-cdQ5Y!+UhAjcJp`+h0%0&KJjA zGOQ!JKqtaBmoZvDb0YJA2x~(eb2!kdkNAeBRQ)r60G@ko*l|27%iw9lVBbIgz*_B& zM{7z!o;w@WvanvnMy|*m2x+-_6gk^_Ja){3FMeCoHE!L16)=n5 z*lg5hwar%m(rOHQ-+gc2?43fwA%pm%8QGm+RMKX0PI5)&IW3X7dm`xGL4$_~5YHG<6i@{lXHTZ8x&0-c37hC>%(#oE?om)Vb+y z#dIwDCzeoqjQhIe9+vi_6b}8$1yT5F(!hoxI&r`AQ?vOtF%Maw+6jw(g z^%*ceG|(PUrdIX8wY-#vt)(^nxgrk4j# zxT1up4wwK8>#tYr(pYY7*l1~70&Y5BdcEC;j+o1pp3;Y%XJUD&?sKg=D8P&8=oGvb`)lH>Gs##1Lx_baZ93{2j#KSX{Z&WIAUH3MZ);> z4?E0vX|ls)a78J7X1U7z0mlg4Oh;8k{{l^&znsC1VB97^w^+TQUS7pJoww6k%NN6h zj&T7Ylgg501VxAWIjS(hsT9k1N^h_t`!+(<+Qv1E^W9x_!j;~5t)_@N0f8obmpbQ_ zZMPlm$=GPOKV`r&sjd&@@o$$Ec%GFs0r8N*Un+m>YpQ#0v)KrG>JG;jMqlkAo9`3E?o%OrSj8O@|W}H=4YSHM0Lu)BpsXyeS>+xz;un1)9Il{ z|I}+=`i}b#`#o%B~b-4z%QW_FfnPT=Vb)q;;k8FLd;0?b2=Vn(KS& zxY*nM+L0l=7Z5xEY&q|-=kON`F8Lm_2zH`loUL?SI#^_VDzZ~g&Ar@hk{=W_zbic{Rw9xamqPcR20c_Tc1v2(1Dwh;-APMFT1GNPW?rmHRT`Bz zd;v?08=&ZfTFp@m$ii}zQwyLQ|EtuU>Pqoc)ay!9)nfvbq?GVs%Zo<9C(F^r#PV&t z(VfKp(x^_miae2a?O8J7#4aCTsAtkX*VPfqEMHEO=qZa5h1${uh z*LAh?p)xXLquj(h=k?Hg|Q;-i2j?4AXTAE4S3 zdt~aJQmbc65U}oq;kF2Z_4TaY!}YDdpuwykWt$wjC3!jQ-Cm&aDEw&-sl~{w`{5L) zCC)B6K9K3nt_)%%E%hx$%t*p*f>;a6J{-fb*3}_gdX=9fAjt0FR@*Z2CcA+2u?F3G zhh@v?0flOUPJ4CkY0-_*PQQ02Vmz z~Y)4f!(#6OF=o-eLPELaujECg{KT{{4nIL(YEOd8hL=OB+?!Kz<3#cMnFG z;ggj8{Jh?;xs@nsVQ17XyZLI1a@a3}fjp=r(Q7f(Rgp2K%=LNUmBf{G~dB+WO-Fx;6|Vzi00-kfFMnZX^SJjv`$WZu8nb=DLc=RY*+i=r{|66PM;& z1sAt_>McpUnm6$gWthVF0AR2Ng;FlIJD#@Coe}_*_t$6Ayh*usW=s8TK4(N5DP^i! z>oOBAX!VRHV)q3*@fMx8ygWM=bWA+)S>g@<>5%9$Okm1*!?>QY$LY3xb=EWX9h#+> zY+hAz9S{gEuo^E87%ZA|FP+l?-$LkwrDh9Uz3;q-c2O^d1*~Ojpyr2!BAH29o$by> z-FQ1%;i_YP@qo}m`Cqe1-#FySrEFdhymA-9!$Zq_d20U@sgdl28^8=y)MK6`KPs~0 zND2Un@{^$QxybqW!x*1or^NQSp-I;c(QcZpNomtfRu;DIb_M6cNQHdQy<2M)v}_)n zy{k>fchAS#M>cuDnOPhYr|@vv7?9;{Mjw!?QlQeRXb-$*TD`YfS&yA?Ti60QzO66V zK;pQkUXS6jfu5>=bSV$@u~>C}8@QeG>_vw9k!R^TRt!bJ^aqr8@doU~_tyX!tBxDc z{)G1T9E|+Nz3Gk~?Z_nxLO^sO5pSzxq{PUNslEids*bShC2e&~U$ZNGVb*kGb*@u( ztM-oKgbesz7EyPP0N^ZEAMBHq1{idudJokVl3~P^z4Evr272RRzbJ)(OndKZ2u};*tc9vcITU)U9M&$idm`XSXMnxV zCk0;>f_AF2*G^Wv>r!v5@O3<5C*Jcf#3F;fe5L1%UHtJx^e^F~qb9i)cgk;#tRsII zMqqa9jo-=E`}V(G$M zFHq*v(2BRPDqV|e+GGf?1_q_YpE0bXl(QS3`~TecnUM1J$*iTK@II(M)fhDuWL44pPUmM%&O}eWIm8-Gg+9(ct|8CuGnXVaI z(Y{pWZ2Wl`U|0mR9+vnV)rgy;NPI?!<1*J*3{KBsG80`&{=)?18!{PoYhhD+D`WwD z%ll&B2Wn!%9^=CF&l118$pR}q7omJEEZxlLD<8Y}%RJefRk zjx;jJcoB$lK?H0Ocie2J8haUi-m^_eO{njGn0LK#c${bY?h#N2*S2kf z`_DXHv9sk8%eT+@=wSW6nSAl21=fKH;RPoUt9O%HI}W8Wd7FD{*|yvJTBRhj0u56h zM+P!doYo4u0jOkC)?&yW!zI)5?6BKzzyp}d(T~&?SW!UwX1O4V!7Z@c`S*zYFAuF9}PdAyP(5-p6B|fNnR|EkfG}tT6BQ)7XfQB0SDO&Ryy;2E? z9Rd>M&06OrTen@!1bFx0+)|u;Nw?fojTe^T(Mk5U>_3V=GAeQ}lr~neDFKNX-T?qP zKW&^C)D{#UAS$6q;G@2>_?HhY!>(h!@>pIyJIStD&DsR19%&a_z5HU8U|lhsRPPK^d~2^BL=r*8Qv#X6JLp= zC;yESt$yh3dLt^Qh4a;oxzM#FAw z(y7wPB1_0Srf>HTSI@RvUwj%I!i@fvqw{TV9uMhFwC&pdK{m{EY1i{DGJZd2n|27_ zCZNhEHwg%Xg4MOSs|8l z6dpJa{Nq3J@o+DvwR^T#ybeIm9DDV9h4U-7oF5x;eE2%7!cu6O&Au+GI2oeDNVa5M=(_x7LrGSfz01s$Grn~8m(Mx7@y>-s{Ug?OFzBjb4V`nXk&e5T=$rIU z>$nOKtnZKRWS8sZ4-1EzTeGI!FNYUh_J{YPsK_@v^Uc$oHQB`bsommwKqM)fI!%_< zF!uyx-%GxEiy8G1pP>UebK@`e&@6%}LE}pOxQWL6aH#NY{k{+nRub0g(o_N=611^t zZAayf@l*Nqf*h5{mLKMlEPaUm$KMxHRt+U#*x`{{KCc>Dof3N)zzDt}+L}M(bu!HE zgX$tG;*!xAe-leTi;{KNkp;MakM{G;gF2@3Ni!1c@+-w~=>D9NvRVEkkMct@8}2Ur zTnDOGgk4AulHkHD!pBG zT;(>?U+IURKIh}(dZ}dO`9#D#RzcH9QdHL_eWAU{O%_hyA37P}G_H{}PZ)ySN9rbu z>kX551V8 zQ+Bt_daMy4ZD)$>ree+)xwU+cbUd{VlvWeSqsJ`xo@c5pGToka5m}nF4i`19*N3*P z%q#Oc0ysI=f0qQYByC%3J044x?ovCceER5xe&>Lec(#9QIp7E;!>n!pSVQ%Dj8}Ao z5 z1wm`;s$2w-?G_VLV}lFYjL@7zzQ|CWN#EMq0yiS$)1Q;IY{fI8&AV)!Udtz+7V=`S z5+|9J9_0D<0%oW^WDamGo^FV1tjaL=Df%@1)HVozb)-A(6X!5JuMfH?@%kMAxih}R z1$kE5`DT)F?t@>Tpcba{DokZAuNWduyN>i9(wk^Yn z!kEBNb(pQ$qlusPIO8HyPHD&b0H{62ncSIXa-b?hLC3GM0qaf~_`LcdLQsAR60;TS zk#xSX%<^7G>=B^U4xwCTctMPTCtT=x2)(HP`UC#BAwP<0IBUBf!>m6w_oS#P(!6`7 zD3hS;dUMLac_9qes(I%-?RR+6iW3<<=QU30Zf$J|U=M(Ous=pH|L_4e385an%luFz zKiB}cb4(0Zh<>e|pC-?gQEngKzuQbTB#7JSfK+}ksd?M`&WM^|MF7@otdFi5S!)>P z#5|JV9M=0HM1%H&4t`LN|h{`6`y$O+IFh(+eM}RaraaJ;AO*d<=j; zj~E{!CPHfB_+QoVzX;K#b|EDoABuqHd(XfA=Q$d%GO&q@llwl*M(go*?vqT5PQ3ZN zGVT7L??s)>Nl9$97#rA`rq^4Br6wwZ0zLCrVg+hpkM|ghV&|J?=kv^RDvmTk_e$#{ z!)9Sx$Y;#@dXlkubL`Kv+!`-V|GB-*EP)HP&x;2;u!=tXkkGX2XV`LuMb2K3(kmW} zhh8X@-qK~ZBf90A!Moopt@k3A&$Y2QT|mDq^(ny@dhT6dYAhdsnuxu+zpA=|EhE~9 zuq(+ip2`mp3zFMdQ|bA%W}tt1MB$Jc9&>W}PtRm`mJknlzPgw?A}n>{^vggERlz57 zMo}-CZq1_xBtV1h%iW5Y6LR&N_$~=>oBG}d@AIRswu)><(g~!*MrDqXTIuC6F128n zJwXBPc~|!U^8c725CyKzWpyJI(WLdoru&T|gxBBOb46B`f>qFrQ}(Lw5tFJUWxd6a zR*ex*5F5hlN60LSoz5?~e*nrI#PoX}wli4Z5_%}X*JpMNW_@ts8Cc3i@(KQPj0oh|V?^+{W=;>7suJh~l!hw)3EMdGU3eN4>4l{gKd{Gp|yEPZdTx zo-=|6GSIuFvCoW~H0&&Zd}A9)YP{|l)HCi{DMHAp!K-3_?GAT5Qf(Y>RJi&?kf zmF-#X@?{)kq8{e9LrlS0V*eR1?nQxq1(cuuG~A5jGZ=1AhcheE3pN`f zf{Nrn&<}+v=mx6QaQL%n`fi-;D+<>x-f7_UfMTQXEZ8{xEYi>)e=6-TDXDs%y3hsN zzGh?od>OH;5c@0V=4|GyIfmv_XF98}wLl72`$bTo7Apl58_>h+~YAix8>iD=c4R9ZGG`HSncsyQ_2@6-Jhgz>bhPZgsIn=W;=0!zY!c2+i_dTp0> z@iAowEV*0q%09&9?3 zq=!WR2cc=Nzo3RhH4L;{IHAZnM3O#ZO@4IVUXe90-o=FQXKjB0H)dX$UfkOFyc;0o zpH?XWvTx`)Y|)u>&sjB37m^VR{dY_M9%w$NFVF-k7r2OsSNsLm*Cs-8b%YJS{HkrX zF;QvJ-+06xu@f~t3IHk(sSRanmhF=?zD)HeImy}Ofkl||spe>OZra#e2P?yGgG zYPCxbH#T6zvBpFCl;J1vp)V$0j;SRNMmxam@y|aE7AJN0^qR^*DS4YpS!E4$SH=0a z$%vjt;~vK#Y2_L<;n{P$z>gS6M$a26d{i!G<1H5d**Z6L;mOB2p?SoTJOM@5Ks630 z0QdSt_sS5Bf9rMVIiyM^b8VmBLmGU2k1+|D3+yJRFXWcT$79*2LD^2b&R;Pnsdzn+OiCyHB6U@lS*96^3m;^MWF; zf^^6&DEdYMsz>D1d`p+m1dEd^5}-iyDp7yj_B%Sv7r%Ov>6kfM2nkOm^}7= z7XIgdZ_QD84T-?b9Fvh+pe4by%;H^Tof-qLi_E%452+Oss($@fLIR{)xmLrPi!CD> z2Umk|fyuZo4sqAXQp2c^yK}Vwl@mCYx9zo(czHQuikB>XP&!r z)CAP1>zbPhwrwUrWNG^&f7;bY?|Jp{__YZ;p?*IQaH!dR6njaJhhV)&4Uqs+8klkM zQ?$S!j#|rNc*Fl@8E$j~uJ|Q7uly*UjtY$_4DBM?4sg1KdND}R^(a)Ft{e;_}4R?j~7%Z8?ExndMF6azp^dOiUgCPCp}dq& z6R(Xw?tJ31+io%BmvQ{^Xabi~tt;HCIBxn)B~RR21Gb>4RDJ6IA3yWiDr^mCjZ-N= z70lOkZ#33+45N6Fj+`#112srd<55`?DGDIBmcbK3V{SwX0mr=}9{XcrEzK0^cn(#E zCVNwh*#&dps^_{Ezqgms=DP|nk8C!{<@?2GvTY?cDV=rReQ$Ofj7+OH483H`ghou? zkdNM2g4^#59wfZu7^yO1^qh-(%G9QtmXbB5bNNDNo!GAf^MG{@I3#t~9Bcmfol_Cw zLZZ8kj~m|*k3w-r_5C;N?Fz3~u3|=gCO>~EwK9<-_~{YVK}rE}l#MKaoi@3XygAGh zci1$gsM5>mEo80<2X(>LM}K?vAsdRj4_j>f>FTTV=Jci`!~dWaV_?6S3~4~A7sS?F zUme2!i`crwfq}c2Yj}STAGfdu9W?{=V*MsDurxem0(2A-9?T~OT*qLLn@k+kuH^oL z&D_~|H6EL)#rU#1)Nw|0wf|N&q$xauCoD99`7puF5x)*>;AJMHNF8rqOXZQnWQK`Ba^gar?-vHlx|c)M5uz5*pcn=cloxR6RdA=B^_kAYpY3#lX=}AqyOEwQzjv z){uOpEraJb=Y4S2w4xZnc$>TiG5VO82C;9-^H-D<1#c$_x}mYLqY9G+hw-xi0>^oh z!U4OSXmt}W%uZu}w*Hy=0f7TP#)vVnF1ofUxn1L9t=+auk2Ojf<;3m*2op)!X=G=k zKwQ|$GvXfmdFNJ^e0;Q&m#nRAy^z0jXa$E}!u#y&+{{i?`koT#%0YGzGL#lYz1wZj zJ>d26Nzc2ze8GscU!7C=1Ufo_rHYZu?&cJ4chGs1;L2xNbq4g&so_yE&?UZqLHBLt zbnNZAOkAs8JP}#GfBDvQt?2G?;5eMak$%(x+m#i&b!)}GXV>Q}9qFJa!-~QH_;68C zVW{R)wGbOCTy%Li6y23U{ zO-Qca!6wqdZY`DMSOV0&Z0p_9(!YBS>l}V3o4NO*u&AgMkf#06a&)_*=!EFm>mGws=U~(@uGQ0 zPGPKS<|B>~&ycXS{AK%pLf|gj#X@HY1miJ8FJ+@PdhUSu1#xR6klbx!`f~Ggy@G?% zM}{x?c|}CB5Bz#9&B9r^J3l8@iQ@(Ovq6=qG1rl9)0cLdIj6Pl;SZ5>P$;1gGqKnCw2kNw1VB+xsd~h-F$4o_=iEW637s_xKTA^lJa+5$N`ku}u|nbe{FFdSzYpP^u1J371K~1-3*`h3{oq5dg?!#KkIGw zpkoOuDTrbGfzhQ)xgzv8;`a#2#Ag&XAu&t>>o|XQWc;@?c)ka;5hM) zls?ygiM~zB;2^ju-5C}fT2c^o-}fkH?Jtrp=fIY@LmR8PNke_vFSB{EX$O3MOzuD? zN|N$iyPuOz4lsc_w&wccbZ*-R$38`y=xcU2XHVGcll>5FUlM^y+&Swo{ko~B*}TB3 z5_#CsWybYO#(Isx!W4x}%-dXZeu1#)RNFhkT92agr3GgQThWH4xFy+aOYXSS((L+t zk{OF1pH5vIKjXLH7fjjD8R$+X84B$ZIJcHBy`sBx)G>sG6NUC|{%iy?6|JvRJWw}6 zfXdIfed{pWqPJABRy>XIypw~7Sd-5%GAz1_5v&(*&F_M2`e@+4R2Y|k8F$TiImYRyd4N~#)0m0R;{Gp*+~kZVcB)&tqo>{6#e$=fWAoA9ysbZ_d?v=? z08Gw@S|i>u20}URg3vgTS>j}(DsMq(*?*AiEUiR=zowa~5O+riv zzA$D~QwR(?``lNB$%7nwqM&ppZ5O!P|3O!ct~_WtG$fRqvJr#|Lal^iOHJPe=i+78 zC%mXg4@zqQs(Q>TX2Kdu<+Tcvpw-c3Use6QzDc13B5b^E@x|HOLPwBJL^2lUG&i0l zpZmh&$7X5Nw-46Fx{Rto={fL*-7HqPu74N*70_E#-F2}aR&O-0}DCC8nr zIlxVrU@eGxF~ZXJ8q9g$dq2$hjbV5$W$V>B7E&3yRi^W36=lgda`R;Iugu7K*g!Jg zb=sr;{D(ht${q@%^t18zJ*;+0&^^ZnfJKm&Jkn1OO4}^}_cHS{cBj*AR$6*Tt{!`t zQ;Ks5@%5Qx_DDvlC&#XMDK^xLfoa?dK}Wx@%GG-p+D!}0Zgar85|#yZQvY>4rw(i% zKRu#~JG$a(RvPsQ;xhmH(V3kwRfx}YH5N$}1XQ<6?4?A=;uC_PE01!0L!X#960p*BSi;rVh!m zOW%##JJYZ!;XubtjSW8*ITZLOn)?cg&`qYnsmc^3*SbfA$#LyFqjWdnUAZK?)*}Fd z8#Tzd6wq6dq8_cvIFF0eu=aDfr_?=9;xBW`NWB4QjWK=Vc9dh_%s^5Lkun5aW8UZ24`_jzeurGRX5s_c>q>)bzSfa5hZaf_;T83P6^9A3(AJZEf546`UaACc;mvj;i6BZ zcYQNp4uU=WXnXaLV!t!*(3kDI!?MpyR2Btyh+OIi+LF;uKC;#GoqZvo^IrKoz~f!o z<2Mj2BBrbcp6d}1dft_k$jklMxY|xV{0UaSA2t9=M?CpK7i za%fEn6#5EJqkp}lqEKDWz~sdnUZr*EVy02;zk6nD;(rS3RL{~&zy#hx1hV^Sy>)LqV^>96BtDrLUrUdI!b#oZ%k0uKw0 z@WrDzASujig%6tqG?||I^_vOQn|;z9SJK(Oxs3lEwGEpZ5=K^d({@b{UR8p?rBox zmyYC~5{-L$R%{&Z3%A9;7h#;1w%~d0>Lx3mP>)f2x^kl}<5HkN=UAG~O_P28$S95B zN3{IZkmv-a_ODcQOrcG4b|>y(*;T&sqCGFTPV>oc*p}-O7^!$YYy|GVskil3&bUNG zeklh_@&U!OK0M@89EPL;BT6;S+4jt<{Gd`mn;!Kk0GH4es1;uFR1G-$VAOffjg=!`6?ov(Ob{No#@Sh=f!e4{h)lap|unQb^6 zqva+!etKvEK>+&3$Ah`ZUs!zK=6rx6r z2dYY=DzJ^xH}TBHY}Nx8`MXsQ$B%zXl1-5;PxMwqAC8?|ZUkPfC_+|=6?QP8$0q!4 z_n1oO(oq>;Pj%fjCC|1IOhWhwEgA4iZv*4Qhit~Ih_Ph%T=T5!TvDlsjm=&^{cSh* zT{X~Io+R(wG{(CP01Kr~3>G~w|EBX$P62?!*;Ghho4tN}G3tlfeei@bQIdqZL9^DEDUzdxO3pYr%l_gSC&nkQEnBgYL19vO;NasuqOUH6 zpYow;n&+{0?%xRv!H>ky)(_qGye119MA3hEGR|5qB1px1HV|p6oK>jN79Xb{N@<_q z=?zqzJ{3ZYjG}6M$2-@r#@R~g*KU0m)8MQuqH6e`B@4MS9FNUI={GE3*(KfgLxTHS zTN=&%!cKjQI8isa$OgkhuxJ-|w>Di@HHl*W5q3wQ67pOp)1dV0?lfDF+@!t?0emf$ z7LtwhgdVyJ!>mwp3Elv5KNP|U;Vp>2CfCB!F#W38YIVM87GSj03L*IZjLiZ zeRp}yKCWM`c_OtCK6|UNq3%5#t%x?_0LgxE%_dC?HneJ>H=Ihh=;)5GIBX^|n%+9{ z>uIeGq+LDQnx!M6%oW2sIyxHxT9~+;S|6~(>d4CbwQgAFb-P-;Tu@omLQK(H*lPzr z$5e|VSEKTV1oSR*TgJ#X787#9SN%aYZx1%}!gF>DA)N(MMd1I&upSa#y1Nk+0Q~`F zsn?;fGgkX;SzsaLfgabf=DIn!C50m%ldiHhTa6nSH++co`wMfD^zR;12?sW^z#B@iw?7hDfe!m)PmA1iJme`RV`O?nDY z)d~JZfxjz_sSbGmO>?7(D21xdMq{zB`uIDis*CBqK1EWh$hh%W{i38q{4RRQ8)fF{ z>-%kvrqj*+GYGR5?)Q?fmr! z&Rv;n7?l)VUwh%Jqn|slT>YEs$BuVSlKpPlj#xXuGoz?w5^37GAbcz8nErHW@T09p zjVv_GVLR)ph2@>)S9Mckq%2TdcikZ6ur9Yn2x~7bHZ7g2xr%*}Zk#YlpGjP%jq=VG zS_=m_o*l5zs`BvotGCyW+||*!*YaR}U(`>@CIsiH`wYVeHYD!1rvZ_AyN|tYb0(AH z^s07}lAPN9yV!E1&nmNk1qE+-ietu#N(f#umW&=t)&I@>377%gk4&ui8%T2$-WVBO z5ESDh|E>93g8L>6rj9+oufj~Nvhg)JO zPTD8VIsc7QwqEY_nr39#LK*%vn{V*0ZH|<*(@Z!JXZO9En+1gFDoF*ERVQPdAzs1EF)KsB5j>Mf@D7{6_ zziL_SWhMR@{;Eg5vUYkwa`u+$JJ}hzutn6TB>wL5IK>ngUWLyDDKibz<~Y{pS4(p_ z>$@NR>zd(x#~rngUa&YNec#dVtgpm9>3-s7wXdgcavPX%AN(nAWsRF$B1>Fzx<}vr z#8X&sY2K(iR?Jx9@pnH4#$&aq3TMzDU{)dHnkEQ42Uz2xC>Q-?r|W0Ttf(x*pZ+mB z#Zk-u^sSo#{E4)C&*1ymsQH@F!c-QY@x#B{yNe(Uxtith_W*YMJx5YVusU!nD_$Y+HQ`QC=z#a=iZL zTR6oJAl@#%&*Ti^(o=(95{(7$OWI|PZNQ6S-<~{OKEsD{qo!#|e_!G>*xr$G_i8ZI zGC{gji~J=_=!Ljp-BdL67|5+?E{kkVP}B*IaF zAD8-@kMgq(HMsE9fa{e2g!47lF#Lyh0e?)2$mA2B~a{8w%86-hE zTCxOUT&qi2*Dk3IhS9{SG(NY^vatoxxYBHX0f+~Qj*KOCT`gdC-&vHz%5Ma#Z7r>d zX#{{7z8OCi{Uw3zBX-Nsu4ts6=wVwijg{5M3Ial8!|j^EqJGE+*J8!H9?`0g0WcAC z{hoQN{v}ot_!ojeM42LcKP_M()8!B{3wHnR(dpl3a?ho_ab0Bw-vP>~g3_N;N6L>{}8t~RFm8_)|-2l)}5#$ zFJ7dN2=p}?>glf3SJz93{n0ui&n{10K%i7x~)b ze3k>BDr$UFA?~%SYIVoetB8PW6HQ0>3XRZ!{lM1j{VPAjg@3@xoC|@^qD3gW#uLZ% zAH7Izy>?@Tsn?aj7U@1hqMjXHwBDP%R{$@e%ym}CxY%+m4bx7~Y!H9zUEPLUuZS|@ zD(^1WZyE1WdUr|UzrglsVINj8jrBmIZTz2`x+6@k_=ga5p4lFqfbpQ{%&L4riy@GL z3%R%NT(mZWsEDv3Yx!Fj=vs_iTQE*3tSG;b${mL@1JdQqg@i2)`*T-o)n={BCo>C0 zEfSg9z&Ufg+Yf&*((fHUFPbidwq5x^3*}+KiRhATOc-lB@?;{r5TKpG+1&|;e|7@@ zS+~EdKzyh1jgE#jD15y$)chU_Z(ZT*vH&BKW8S894EiCIHpddKKWJNghY!5uo#7)Y zjcY@swaLS@n6I~eXaaPZl-)Y|w3oV?^}77Pzk3X?f6_ZsFp~(lIieejavhogq_N0} zY0T)*4!PgAorUZYI804_JO$$$0RzJT%x?Qrg?Ttze7WB4QFm!c(hm?FjT^i%4&kLQ#>W`xh z8yo$0C+hU9#8?oB!EP5n>R5<#4Q_=ho&(CjmV5sQOXD-1%=!A=5=${^f(J6zhwp^< zgQNDjqedcPnnN{Y$hQptX#@`s%C(Jag|T_^i$)JY4V%t6{ByjEt37du`Z*imQA43EZ`S=X? zDpO`ujlGgJP*Lk=^DvPYx*BNJ(Lzd6klMo-Mqps+krn%VG37f(eSG1)FwLSomU?N? z!#nQYs2+t~pMuPvWRL;=PPdtRX=Hx#Gs76X(uNOE_{h)Qk%suvjK)E$=hU&NCXLo; z1icw^$wG+Z%-~%@Q0XUTO3H0xoX@1x3OWn-SY+b7V?8e#vZ=DAelx%7@8@}B`swCb zH?@e2EPBAg|8n(+d$nBI^WNODn~GZ6*pmNwDdHy~-?S7|FK0d{#!MVV*6J}$t_2ID zILdK#wbh3Ffht{Gi)1sdiKTSE@9jg$x$ajLT_)Kj`P4{T(+6ei52h890LurwFLl`g z6ZD*|GY9Gw5`U|PgJV@*YqJWS@hCFMrdxIcz^3D8jI~r!*i)O z)~*uAIJrkrnZ(^XynDq!5$E1zq2N(nX^*Yo<&Npe)}g;4+04iX}Pu#{Qn-#FCoUWYZ4#S zUP+bl$ugYjc64d8L`XN{cnWMCK+Tv7RW@9i+teN;sb*^eka!vITeiNWK*BuB2~qfK zk>X4Qw7h{63y%I9Y}9UN!?@kqNuF8)!W5tA<_YX z&Xqj`46f6YQ%#=wocuzdqHlBuWv9_h?ZRnbv&FSUWmq=WucTDFpfS7&+LAoT6*Ev zT06a(U*zNjabRnetSbVeWk>D(g-_OZTdp8lD0H_aoN-|5@i*~Qt<~Cx!9lSE4~oT4 zkC&C4Lol4G?PRh{+#C6T&c*C(j2fiRBqCS~{eT*L8`IooH$i>z$7DkYu$>Fg7K4IA ziRwWJ2bibxN?6}SNlr8RTGA$HZFz{1h?eVhxOVnpheKzI z@^meE1cq9PzCp}Pf)BJKHl~sg^N8I;wbmh@hNXrDfxtSA0DB?rZZ6ODBCgDRbdFD* z6km{}-0SVMT`gTF!y^=INVFyU@F=A({rEV&-7%P7=j8P5_URY6@CE0yDzR`{lJ^oU zx$_qh{vYx{1Jzf0d+o{^vC|KBM$22phD?lx*DGxm#sdQ5zp8wmq0lN^n)t#tDswpF zoQvBp1u&Y6{Fd+|LFFs!HQ|qO(|c=;s@B;2=6b`zhzPBp+?=A~=103`Dxo1pXw?^d z;7)${6SCwN^Hsrw5R@F%ijLr~8$B9XaAaALsmTk!M*_4*px(YwdkCKyR{xO>xVF#N z$|xtsY=4XI-}-E#JO0jhqT0JYRu-f_HsUw|W&nP~Mt8>A)Zi`l?j_UV+**T6=N92D zTUFee(JSL08-b4=g?@cCi}c004)MPCq_~Dm-CbUJuuE?7qO}ii1!ix@!_SX+`HC`D zFo13njmwc6uxpj(et-)?iHFQ0WD)+PVsM+K27&F2DBRyDHV=JbVD}cCxCY_MU!12) z8w~$2gI7%#jcXtFI#yB`qP(3vU0WUOo%J?y@f65cOP5EHi=iPZ5 z;*ONls3-Os4ucjX_y4;AYcUSn~?UNZ6EC=q$I z;L7Oruc^^S%jiVi%%i*xJgc%Rb^)-rAtPhj`&vodJnQhSKIIr=I{A9h)N6#0u)9tel` zDVPxyBT+LUZ2s*ZZg4HJyKJ!-)OKujJSvQA^bs937UDAlh()eU{G3s<0R5i6mb%8R z!<6x-T)h#%FcaP~k)qgq4wXG?I4-toHE;WT?X~{9f0yBgf;sx^tB< z`~8=`f(-4%_eKle1G~!@!*%!lE`;SB;6ysNWDm9Y-mGvN{p6VsHsTy{Zzq?WX;#Zv zg317pr}zxw>_q-160`}=RR52amK`S5Nz19nv1w2b8G1ybe;V&U0eZs3YZmXLy5)>t zZ7h7Sei~H=#GA5F#ha9m=vyqwnsbN)0ov#%hi%K31e~Ms=c*Z)=4!Kl_h?%YN_#xb zb)E@h#2#z8Xtt4TabgF4#_GdfUG!y=VnOu@8dpSf`R2w6{ok_`r+#KkB^}yZqOfUP z5}=)SJ?sO0y03LE$Qij!X`K82CSiqRV6?uHv#z1dW&{o<{pr>fHivIGH=SAkI{C|~ z*2Y5)_XKwbn`_?EMQ2KkB|GTGAM*$=^Rz0nes7jp}unM;X*D0zRPA7QPn0~6An}LoCRCec}YFWbcx{qJ1+uSS3zQ;4r;kMwICuB+eC(m~u z+i-ju7h!?O6Orz^B$0mEZ?TsLwykCa_LsbnilN~XmsbkX4tvMSs*ZUqM$J`=T_xwM zk95BzIPMcBIR=;l0qIdNG+#`y`RN3c$vHpsgW0R@^TA;L{IJ>tc3*uP2Z!hCNr}2{U9>n_OhpW3E-QK)Vv6$NTG#-*w7%CV|;0Tg} zf@^?i;f%%8e4OzBFp~f2GCd^2&o742p!uNZsJFE$rminK_OF|&ch3N32r^gI<$*-7 zN-f`h^%p~tprI}E9+4L=(ky<7XA z=*4<+$K4+e=}SpcknGOS-;|j!CZLdU_HK`_h-h_?i4Joi92tKaW20ss#P#vsWfs?5 zO4jpfIy8XBKCXk8*oTF`J7SY0Vr$u-Q>zu0PrI?*adcEO;r#k1Ctw1djCEL^AV&s- z=!)1Y@Q%!4S}z$FzdIp>`#8EYmK-XTV0K!!9P>!K1Ig`f+rX*+AK-BRkdMO^qq_gy z(?%&X+lD#h-pmxtIA5P%uL3qxz)o*~AShs~>qDy8x5jm8j>B4v1Wk>?CDut%tz zg?++tLJF2g6sau49BQZJRnDk2401)X28!RE7N}cD_@?sV3j!B^XhMPD_@I41sqG^b z8`;{@shpF{D^7DL6M~? zx{enY6KPs*8U)N!Sr5wD;~Wv;8=i{QhxDC{g3WCcV;GLp=H!#Ryrjg*i+#O zCwA`8{yfC5V??+!vmyhC^~#H)AuO;^nSWVCOR3~lo{W%{zBW}Ift?~iKaEP(b=G&` zv7lIA4~Qc`49%!^PP?Rh<8<*UV;i&E!e~GUcf?kyr{HFk5J}jyRM5h-3{mI;V*B_z zFSn{3OPM;|w;x@zgHUeU*EPmB94Fd>-#LIyv0y-;bUw>o50OJfFyNcl_4ro}CSNEr z+-=YvS)Mwv?;zgFk%y@j{xZi8<+T=-m~Hw85Pw8nd~R%#xH5iusaml`N_mhOQ=Fj? z6>#C-@!Th&Dwux2degr&|D1zH$X~2z*cq^ zm?gwN7RFR|jtrNXcgWi#0~MK3pBxJ>&!6U3pYhBrng|StSO>=H+p_f9INOh-;ee&@ zv9slx+=K?{w421WZ2jLozt%d=-B`S2U)*kbH_vb6L1cOQ!YdtyFCrXcee%V*g1yn= z{YX>B!x*rzV@Yd)KRewOCL*~+D4uyLX5|w+Ujx--0mgqln1adA0LQrBC z43+>bro1ese3Cxv1B})Cs>cf3?W{yKo9Wu+#ngc;3uU^4%OJm>^gEp|Myc=ajvKA+ zPZ!evNj_q?@1-6L5j;4WFkrb##gn2362xi)t*PZ@H^%yte2e0eqtI@FV^-f33?3wL z0i~cbq&*(rHzS%bn*LPHg{M0;wR#1}oALCoO@+L&T+zvGrcY;yXNWKzN>q#A%=fqQq zG0GJcPFIMW2fcdxJ_MWgOA-eq*m=_Z>8!_#mWrsiT#(4nVy8e9WpM@2~ZxdwvDIp25dqd}+&$)5QK2 zY@J`#d8|^Ok98rpc=_ens3zdIAgH?4XDyPnO!002fJ6gY@9#PI7hZuEB*G$W2`z4m z&98YH>)>y*vbu!fe8SJYP+MmD%c~zW-WjT%pWE^A>}Un5cqO!+yMl>s-ug)Fxd7b# z?2fY$0NrD_*tZC$gk7(Nm=(d(y236L@s*(EI>rOAa&Q%gGaUt_zP=GA+O?sQI0Wp4#&YiEw8Os$8M^S`_#g;DTMdho-f6tEP>-L&rmNnAmSEI9Gp zVnpy}Tvqn*s0<`1?mh;g+J+3&<5VGJR9gPLw{@_OVKSU1xYzfg)26?+mU&sCQ{09} ze@%uXJ6GuI01@1IHsO*{LDp9n%hp!O*7B0+HuwC)nOaf2Gd_jAWhI<(N{%C04K)7t zeAbOCCaRA&Obf%sFWO*4gVbt3x>VY#iB{DD`Zp}(Kc$8&InpnO;O^}1Bc1E;s_~9I z#hyzg(fP`A@P!0NLR7&JM^X!>{l~b0XwJ5^-23)A1z1ZjN-jccJd`Z%eVC4hxt5|-bXy0 zZou@Ey^pLfQ+&=xhy_*&A9r6f7a$zY(>d$Tl>u$f99?Mdg{59~ z2Pv#(Jj5Fq5%e_+FzGMGIHg#Mj)q4*fHP764)A1$!B^}XLe^kO;@6A!;XAG#$WcC zt{_4~vROA2giL%?Fv@0(Gp+TPtrCykDFB<)%&!Q;Kk0T^0xdj+eW}NX&A8W^K3%@ zwkp2_KOsBC;zMDX_3_11W8TfJBU83D_5ckBRXyNNJv8E8@Vu~Cak%*9m}agOEy=ge zY;B{kfN-gG-8KOa+Spgy5SS{u z7r?ld);1q?n)7yXMO(Azc6@k6haI@Z7rVQl!w2|3{#F-KTmhKlB#>je6x%%rz@+z! zDAD$~K-Xy8fYD}o3r;D#y#_A}+*wsRn-(n!(kz?I7u#gw@61?+YCj_18_s**HeL%p zWIAXhZUNAmguRO%U|~Z)$)mKAHeAt3Bu)>BBr0GOn^k6qYtc{qq$>0dNv)*l zsAb!wln33V6*oShYM=Ex2c$fq=o{+O_DFrS6;rQ-vfLY3c&qodYH@4nR-IAsD7R3= zG=wi*Yfz7MNJ5AWpOKrJp;j9rL*?}qMLe1e zPUs;eGHo_=PTVPo+c)!+ZGFyXh_@9uIIFHX-y+2CSW|y-*guRT-;&nwBrlsAF=g{#3G%?7~ZPb+m{zS(jxf#{7;MDof zQ}7?d_;4OT+JHPLzQ{Au|Jwo?0Wch@6Ld}CrP9hq@9T{9P{i8htmQQ=+9I%Dg`!~n zXp~B45ezUQf*>t!=+GQ=0@KKT&G9wv;Miosea(@^Y`lc?_x2puBvVt}*bEMAwUblO zz6@_faQ#>WN?a+zlDDhnnRde7=({MuJ>KEIogSZdSIJB`3`^pEucf~me=b_ebB}HC zW222CZXIH^#_^-Cm*hwpjg76>j?HSA5`&%x9~{7^*FNemJP!N(KPoVX?7k>Vlvy(O5@#ELZk(vv)1g>(0yURmns-nXT+cGm|e%5k5nyf`n_upEf zF*kAE}Dd|h%>90#YsBbq7#(Q(v*QFCm`=zo*bmsG+Hk= z&x9{=K9y5WUDA9EN}KpN{`$|GpQ;>%y?3-Zw7|S+cg|Ln=5DLF;MRa>JYM1%mk_1b zZyfAkIk~VNl~1#52R-`Pu5dwYHMYyHE$a$wn=J?N$w^R__yR(U@V}S+lQT0^%h@TU zpj}rXj*3m0a$gO*em85v(r0GzzmOP?pT{kuca4L}5!TFYfKTM)<_3NxrXfT2`7O(O zhCEq>i$@wbGIU1=mg({%rtZ5@?m}_jS`%?i&F9}e!GY+JjTkl-5KsCF>&1qJYuDmk zHjb&~g9UYTPrQ3%wPdL|`k$%}RE8po=}|M zg=rNgE`Ou$)CK&x&Mu``A(2t3d9lVBS8==HAT=7%VgK(Qw?9`H`Sq{t;2FdV0}RTK zw(E6MO+U6yndHO(DGlot^a!PySzNG}#y=aUJrqtmo(D)Kz~Wja>U*?bY1Z~V9285( z5MPO2?TkYa&(-SpCGEt?M?Y^LzIrFnaNc=QBCPe@)(-}K6}!|PzEkJW6c?igw>gWCcr;9(m&A@m>nON|<48mi zb7jo5=e7b;nJy8C50xw?t%J0qwnRYB%D&bkYWLp7JO#$MX!$#(YX&&LKf*#u)&agD z3jUK-+R;eeMkVSZMUG6kHs@zkvQ%=%?WBu27ex)%p}q8wIoOYyQtmF0s(d}d$<9pq zyqO{ZbI+YPG4Vi+mf5i{VtSm0l?6lzya7o1dehSS9lufzBq(^c#b@2u3D7}?T{XP^ z3OIp6g}Sxf_d!J4gJo^FR0_S>rsjfa86!Z1+|t1{vsLDAn4>b#WnX*!yD(e{`-4 zqHpO;pSBgNQ`i=hf(abOnpgjw!lysOH8tSQ>yV9x}Sma^iqY>&G zvu|~?lUvL2&4|RzR&?kfd7`ycYS|5Y`D8OEvxR#9(;Mh~WY+^(cAo%EJf?v;29i;* zGI#cwIo`a(slXM@w%jaDgyL!<0|T?^y#v6rih6gxUh0n`i!p(l%;eHkg!x;WO8uss zvLmgzv)YPl>UB3Dz9G>%;F_2aLf0qSOyUBqDU%tC>MgC&u2A^?fQk*4&zPw+ZY=DM z^?ZJLy1P#_2vEWteP|HFo=6HH9;3kkGsZm{t)p)c-4sV1a+}qNIWD~^d&RDHx(y&s5ZNUxl@rme8x({>x6cDYGogW(*GdPKWe~&I+GTj@q zg$ex;Ra$`S1OWR(2{4nfgi8A(8wC;U3nGkNdxyxU%LWWa^6qP{ED*d|waYl;w2%kc z(ZI;aW@DEfD{tYkW=r02M2Gl5ks_se($VU6Y$S9o<`ZJ7n%; z&_0|mLc}6K*O70abB1y>kMtTl+^u#9tm3`zA`pUfwXQJ0VV8q(@m51!)7!@DNiE5J zng%>J(;utt+J@ttxfzWMeIajA^W)SKQp7kr<03lv>dEzxpG`P=$i~mAxuQEcVtmqS z6~@=c#B3D-{bTsfc68+}<Qf2XF#b_+h$%A zL7B*qyi9y@98qK#=B=i-7k}V%+w;zB$l;_&VSbXMI(|mqYFK=Sh9a!l zdgvGq#}{0r;_`Jq>?EA6z&qBT& zA@Y)ySE? zBwP1oS#0=Q%N{#xtd31w@MHW#uVN>fr#{NWIFI!Pcv@3+KPXBqmV{8a~Fx zCvgMKhOI@QLIaFKrYP!AF4dmqyNa&eL=Y}bRM$fw>OXOT0H$fg(lgGIywd6gpK-%X zj0Y2J{@t@L!kG4sJ<-$ufC$evcyGk2-reDC0b|NHr$8O{^=ml_q$L_6vS%C zCD6zW5KIg_$|RePsz$QZN#L%PxpxS9Cpc()e5Nh=_tx)Mi<#ZOP*G*UwG%wY;#J8O z#ISc;);ibDEtHk7kiqj_#T$T3GwPObTx!MB`=Je{FTJ0jV`a2>#i#!Ad}KqbhmHll zVtT0BVegAJpGE_eH>L9?%{xwr^8-IJtu1fmI(dU)Cf7~|1R5mW2PWr^@X>F+{}6{j zX@G#(V~J~YHi#pH)ZUsErI!s+l%e6Tk%F6-GdzTB*%Qg-)<7#S?R19*4jcOEr6{Dpz>#SLEWUtu;zV}4 z-mJ%j@!vFD;yjeG7b%DUM5x%Okr$@5Sl1~(KX2Pr+)}F<{*yt=2kMni^2Vr-FY8Y% zl(WwL$Xl%r{+=t*`vce}o1pC-i@O{DiYkjssc|Du2hX1~<8<`I61M{;GWrDd9w8==;$ov6 zPo{mN*EjAmx8PF9Z(!3#e#7`Hw9bH8Fa}pThng-ko;FtIQVX@Ry>taBX^w%B)6N>! zRi23-4Q_OTeS@3&@+KPFGZWv&W&!pVMpg69oqMDKE8xxj;B2k-Ow;uVM@tOujPbB* zGu4ueCI0|Zr|a9XS+K!cEaw5-ri^K2U5vAl&P}37C&{ zh-=Q^RW64(x+=RJ3+jTsvDSVRIrXgE5pgc>89jU+q{{W?aAW*fvage@zJU0_-!La&( z)ly`1GUGvURitV=)g(8Y!FR7Kpgp~rB%H^&cXroUia7LNA|RUgd!*E};=39ZhZ;;EaEt7-?;6m200G+XF z)I^+WmcT=-rkdxs1Irun$UzYk$cs)BMo~M`s$*0Z!<>SRJSbl4XHCU`J?;Y}>9G`y zZpY@HEvO;KZav@9Iiis8b=l4B`NZY5!)Ejrt>$Kid#`*IzW_sBiNedY07buYwrczf zS?^&U1ply&@$!Fl$lWn_YPP1BcoaXIBc=qM5<=^H0`~@;!GI&qsMR3OpaxqN;N!AV zieDzLAUgQtkOl(xCfd+4ERpr?^N}pUAJGoFA*z$Mnn#bguAk)Px3U zzW`=wOa?*_NYp8)T|~aISc4epC=Av|Mmk1OF9JS;iBA>i(^^{}a=KsO7NI>5It*MH zd&VUOs*2T&3Mc>Z2=WkNgSo%7(>)!+L59*Zz2z)93O0HoHP16{h9%hCQX*E6JdYi; zi%ALsg3VO61D)sgcNnfrWQdYrbkKLh{|%1d1jLkNk^1*;r)(3}^)p%~j_%!$o159d z`l-V%vk?pEvi5+wtQ1pug#mOd;0kFNl{;lP#OvBdm%dqIsU8Rn0bbX=)f=vd<1qDm z7a5pr9@zf!JX-`TOE~uBIPsmc|L$>>U}GdY+eh5hc)yi#`#0ki3g6uvWU6n~WCq$I zIo%)i(a|T91C5Y-9v$wqp9RsYxb2>*&%YkOXAHzthJd9r%M&)QIXbd|l%N|bDv{7r zUYI_agDv#&+GTqa=4Ne@cjfEi7NBZL?vFzN(DA1*r(m`XdOb8fyl&F^? zB=AJ*}63#xFr2)?R6c-~OjpG=Or`Lo@KrTyLvBmV3jBFRggiB&DUD z4+}K|7^W@{0x;oS9eNgjpztzu0VKbcKoVgF7@O~bPCO*$f=|JRmcDkB5*ntKRUCQD zP@o>naqoMKn3#9JfvvAELbtxW-gUOO8=wJF;#{u(9ed@Q^_@N}#I4&2WW>dedEC?q z-U8WoxQ3Fqii#%GJhcd5WsyF(nV?>_johw>z1~Rgx?hxUYA&01=wKn-nDJ}PkI+7Z zZ-csckf>V`m{uJ8%mSa^0*ZUz(&7fTl9udGZfn}OJLgUgf4d(8*tA1o&1e(gIrK{fSn%`$~>WqQ4V{T zHrwn{GbPyNwO?#odl=R{eps?Od@EKBb<*;01>Sw*jIG3u{G8cc4?a7G;u7;%M@0); zh+tIsf55j}=aC{M>Wi}!a(j$ZHe1ve?2c_0nYXDmG)3s_@+o1Mpi&HkbJzl9MAXuKa$QnE~&-;|M%YRt$UldOiiu4rCILWxjzk8X667BSLP@opxm2# zZ&xcv=0H0k`Xo zvd2GHL8GYqn`CxeIf+{l!9jrSa_m{CeT;`e!WVDSpAk2*uiFcYSW|VZRzzXMKkI!4^=1`3FiV3f}fmvM9>uUFyb%;VH#g6D_TrYB;mY#37e}DkS45~G@ zL&1JaJ6=%?MHF5tjCq}jQPzY5p|9A@LW`Eh$FoT8;;wbn4({^@q{={77tdx|(s~)c zyH5(agBNHJOf>%cVcHD8-53=3V+&Ej2V~QK4vpAl+4#NQ<#;H!OGP5w7lB2;>$H4- z=Dp*|Vo=7KJDZ6czbkakAE~$4tN(#RLPhKLlJ*LqJ0Cx3QC)%PNN0(W@1R9Xoxygf zK=7h-*M^uiGCA7Rb!4QOZ@?xizkt*)c#Ht@4xM4dFJZv>N1w`1Tw5=8NJ?wX5?t6Y zi74sYF2Be-x#RCCzam6VFar7z8a+?vAy!Huc@R>Ba%T%u3A8?1kKJtrI6NClkb2%s zRfxw!j+66=Pmt z!!41}mWID@4U^n24xC>`0(KDcRN$?cY>GjIwzb4EdzMcbY(5f_vCZs{LLHO-P2|%V z$dmq=5Kk+g*&W!^wWl#ws?Fe2et9+HKr(EGf|A{J+CEKs-@rpzPtFde)s2+eM-GZD z?$kM@8=W{(-C(wwX6+aS}j66byevoCAVp`8r>iP;C@?-`wY`Giu1|CnS9(W zyhf16V2g>HI3pIQ{c^q}#W#KEWT!|ifs2a`N#;#+L-_z@dZ?7VAwMJOWfz-}PgB?A zFsCqmJUT0EwcojZUKEFVw#-tjJJRetNvNM_;d~|k&jZ!l5&m_vz*Mi`V^%M9@&Pix zfDqES>%$^Z*=;f7~1du!R9wn#PzH0*CHIbdC z@2`lQKlZqV+rqL})l04y*;r0bvfkmZ`CE}f7sIB~ z;ANOjKuONhuI>Y^g42g9J3KL&(ya(`G|cPw;;zQ#WBV6R%zrz1Gktv-5a|-FC;o_g zaa>4-Ab{$^qb2(AmzAq*tYoSj8m`B9o48h3}P++ z;`@VCt;V^4=d7Ve9<4DNWEh;Gm_$P4eD*Y2Qv4I}>ji)+dRAaEBk!Iqy%1%+)kE7< zoZKDQUc@t1`}4vEcI%Kp;XeA(6P9sYH|9*!-MQXFIuB0(ixaQZK(JHBI`O)(O8(!w zALB+YdOQB)92-@jQM9(=ypfo5Kz(%Qw)0L-h2(oH2A1X-vOJ!e7bc2~7}3D-Y~Z*T z`*zud2D;2L3NR27&O%h$KXrkj*Hs&VJSOJsI@>NIw$ zrZ&tbn=0#>b?6eKy1KvSiC#qJ>l{WT`iu>Ta_bWRxFqdlmpt^8eLa%x{oDTDBp`0Y zCNNr@mUue2|Gys!p&GrSM=jQC$3J=7uhL(d>Bd$AVel978}XjWbKaT>E89tK)Mrb= zCIp)aWb*yGtxKHNv&B&|pcO_NhMdnrY!Q;;A^;+{^-4oJmz_L3YsY{MeGibz z4(s1$h0?}yX2t6VS5WH%yUvHJi!qY6t}9N+-^9w&mcJ2-fh;_ z8GpScj%5Rj*(*~Xn8^tOKvZbld>iw0jfjN$0CR9_hV)O#l!iiFzMCOto2E^EPr*RUuHM7?4x0p>ggZ(J1JtpC_ds%nXgv!~+^?AKX z8EYo7H4)KuQz4Spg_>ewkolVa*ZCqscj`$@WGhJz{mE+BSz4v zqEnOYggICgju+K})L@uo4|~WJS~CPZGLL9x11J3)IPVAJ(XYBx{+U`zjMloX=qt+Jd@vuo7)wX$n;*$-vTeBw1BH4M9dVc8%mrX;4aDym@9 zG($5dGqI@x2){&W7$hFKBQ6@QdK~cTxTuPEKt1j*sW9GnMmA4$djODWvwp89e9dR0 zo}&p`#f(8QBNeFIp))M4)$)55uLdk!kLQ#QRx1M_(z} zrk>ZMGtMJy0mqzT`_7B-Jh`h=bN%1v3!v9iF)v1|fto#Nhpuq$3y419$pTnNRGb-8 zb-n@itU?xangtlY(r+==)AlYAT?~NKUFSNl-8To<17t?>-C(+_jm!!!2C;Ej3`F%d z+4?Lm7Ej7LNBKeDzbt#Jv^>KRKsPm&^!ADmAu}=EJl`1PxdQ8m8k-?tRa|d7;*ABw zE>s-lm*I_C(#&<~r!qfSosi?WtzV~K&1m+5?h^g0fh-BM7##_G^FmUURyiIp1i-k9 zZ9VJOH+wEC1PpB^Ba`gzNMihMt}k}+BQ3qPit9Wy zw3>`G_y(bgZ~)+o>$a%Mx28BwQ&-5${_yqObFUbWDVStrLBo>KkNfcmJ}-i;`K$4l zb!Pg7G;$ej{9^1#&I06ydqs3n>d^{Sr4JSkqNE$7+gNuKIzJW%ID%lC6&}^414?6` z3QQaA@uF7j4wDe!ne|5`E*4~Y(FuO@`Uc!a(n%UIPf+8B5{yMs4fdPBy`!;pDO+04 zLAA75b}PFD=v7nXJ3Im(^DhFPV7BMNiG|butiO|ymi~~jGrmGc=?;Fk559nyRhcccK2kykeSb#^>QevVi%jB~q3dm@R#c8V=41nZhfwI*v;3~6;L?UA);#&H;4w`f z7hhfiOK*6STG9N8>mbd(SS~1!!GN`sEdp}~tpFqh&K=^rE+eliK9vz6O>2=}F_qD&-A+iwdnrGIjc@leN&?uVQm zF@7Q$aw1VP?xYEom);vK+OMlLXB<*1i(k>is;v|>l#f&k@45Stag?9xBJk!*`Ut-! zW>MgjgxMp!aO5cQw*GMTC&;HPPu|V6?&|c;g^AMPBKz&)d>D45tUnuQW4+l;^XDFV zMxkV5USqRDExpfNsm$)FGS^6&LXKOHmo-rxgxlzLrY*cd3rSffhHji0@A<7IZV(}^ zzZJ|`XZGF&*~Z}?G<%&nmMol>cBM{#H^_X(4r5AC%S4m*yz$`TleZ;qf@xsh1vbJx zADeX7h}@g<%`uHRnW5v&U7kwC5Pj<4ymjC|rPxj}FQhK7?8v&4$m@Z#%cODH&>62j zI44mgO#+vNSw0U;0#P@MBVa0>;Kj2T5oa&9Mry_+ZAWGL34Ce^?C!O!y7{?8H!=v= zlK{q-s@3{` zwVSX#f|)=(`SodRgn5)nuM_FD!>>!dZjO>BUZXl8pyYlF#w5P@@>VI=x~E)c9y8-d zFVs(xs+INmsWW$OelI8*{@S=hX+58(!XR3bNg*mk7N%t$qis-7BrdsL+z{5$&@7>{G9k9pjS6tLeS$<{Cv^HnI2l@Ul1$SaUvrM>HnhE>Kb`lrE!^ zn^t5^#eyyZzsW9|Dy6RHls3p|oL{6mMwWfRc<&c7RHCal_Xi0+|P`*Db_N8oDF6p#2TM^4%Sfz$h=5qL`#Y>$f=vwaXW4@54~d zHk%~T_R03KQD&fPF0by52p^v00_>a{to>KB`VxtA6EMhu{FL_bC^IEttaj5z*iyPD zOL22Z=hGfL4h+}DY~q6;x9C@*-wiIDkUJtUI%Mt?S|+j|0|Y;g<^UV6u8{>HmCw&@ zOGfqS`1N8S(@sAizH%Z0R-^N6;&`HMF!#tETmcc=^+Z!mpe1x?%cUYb;4xV{8TT_j zoYaifXXYlW|9+-AsY>P76l0-MTtQ#_N8}ZvxKUGX#Ygv_N4qna<=s9Y7@eh~8|8xl zNF+eSfHF?MpGJw`T1f!Co9FtQ9mct^+k#X6NzW4)yDAZ2aL;06HS7eui8GB&uudsS zW(5Y79WLe>adcC2HYQdjpW?b&9gciV{vV&WRqh2L4)>j(Nq|NS_Bs%Y^qQlBi(5|2 zNUl!8vaO#5MFl^|QseEhzp6IHcwNAKA*LIhTixsPGf=s~$OIU;F%6iKc%#rM)8@>v zyoG#K6X)OP1*Ef;N-KoUE!k_B)&yL}YvFd3F<7j$lY=)GW}*_!fc464Qhq?DXLjf} zP*`Snto7e2o`%DP*K$BX0}?N+v?^HiSWK_QP5~EKWUYlt_4TuP#}1nqAaU!9^g8PB z{o?jq3316aCn4+B>VjJ_F=*gO9m3k$`crZPbwK9Y{ZUGSG0WQjV!nRQ$s&W#TtXz8#+A#etb`p&W`;LYoy8AZoq$2TObrBn;Q*RwLI4~B<8kFp8UD(x zAZ}B2hO(pJq5oNniUOeG`2duitGx8f|NYQ$+wORI4=IYV$8NSzeh3o3Cwe}TQ;?m6 zw#c%|q(}P01^86sC@)pc zuC{M+S>xi}s3)WVk1TN!bB=wq%w$X@T|Vv+h_H0T(V-~Ps&KM2T$HB-(JqNv3$8~- z9INMiGf!XwPuZ$GR#^M5;ao}L8b<^>3o9}Fhk}4^YJh8J+}=5~#0_OR-+b1$4bVLV zO&PH_`l!SKnRnjhCaEf3`Tp#kAn>B6G%TU8eQyQwW$gz1$P8IFFd-dSUsU5>Pys`* z#w5OUjQ4EE1p+Kql?1rdaE0S}QN4Q$*j$QNe1#U{vwQV;03e{#g?3)N)uU2ti-`eJ z14<@#rZU_~ZCISy$bD`M`hgQVxeW2sR9KB#L&b%@G^p+Ei}$w6;aA^f%!+ZrhpxaU zZs;KZ(k`@*RM6iA)Zlu>5(%^~mPxTaL_zu$v|>Y3EN;H(qm?mELg$KAG~+)o^VOWE zG=&8pTA26(-X|zSwb!c=YdDX>s>Qg<+;OB1lLLDYMTe>rjct~x}Q)ICGjf@D?SF&iAZ(;H7*4cKElr>e>K~ciq zW!50W_VB-f>?hX&FDBN6{A^UXTN)9Zz4Egk#krQ^l^TAJqiBt$u?gMu!I>*FN|JWh z{`2}P^-(+}>H^d8g-l;is=&_;l9x8JjTrbD5HQt^sA`C`*Hugg-<6QaK4%itc6;hBoJ}n{AA-9?L1y@EVDb)UF#oL9QNGoQHuEks!e+Q@8 zxBbri>7hWQ<5m9jLPl@QPdF@472oyM&!p83?E#d(MUVuRubQ43U(8cV+`1P%xM2Gp z6cMDv%8)FiFfBh$%uD7zZtOcfIIP4_V#HW<)zdvUEO8Io^k@5lAnpOJ^kN8S^-U6R z&jKhgw!Y%r^Hx*lN}f+`|2jjeVF0b_==!w}#UiJm5IuAxz3#ss!kJ7;bXR{%EUW&v zIC9Yud&&5`QAd0ApXx}=%!kU|f%+ce?VolT1utrTrdxr59@yyO>vMboxv+Pb8Frk0 zwaUIO!~?@Q8+e-z>;*s7-&nAt<9!mQli`Z~$&xfYAow}To>BwBYO)2^9lnWbUT1TU zn(3|D5g#Y|@MDXkyCi&#&;2RYN;BG`%8Z~+6qzOjEAz|%yD;Z+?>!JM|96~@9%*^l z;6vszr(Kuf;`BK9gAWCj@)CB#G-0Y~6-0M>cfk5d)Dy2ee>A1Pr}~b}X<}9xTP;?~ z?x)H1@D9Yh=;(F|2i@Ap!avI+zl)B3F6qBP;!|qH9ILHYgW4h9^5nGh!aMvpO%Y6E zB5}a{q6_G*yB$Eh!c4v}o=2@3;gbIc{5+;t3jeN&E(#SXFmGFZyByEQpGA)RJ0MXm z^CXhEAK%>bz?^Y*zVGPeXP&)Y=IL4TwvDgv#cF=mU?ye0grR3!Vb;$?y+?rSN+PgK4mf~ud%z>`{ z|0!wDwG0y*=-lp;@Or}^t?psz?NV{I7i#lvdY-M+wtf4P}FuHNn`qkTSnWW%zxt*&v1OqMMcnU_w@h;bLe^?j3f5=H(uM3~p- zB;WA|_}I0)i{xmu3Iiq|-`SEO(yBU%0s<#I5pwp~fxYq~oRtEVsj>v@mc-9QRqLMb zx@$Cr;#g%eG5(Xp;JWY*`;*KHFunEmOVi0h{(kFM_OJ= zx>~b=hDjgrivO~7G%A`R?#)Z4LjjFs8m=+Re5tm(?He<4UGRMBvEO9nDRH3-TAmow z(uJe@6^)xGO=UcB*Ez{)9N{@TzPo4stY`NR_pBN={(xvNr1#Ftq>Mv=T}I|AYnd1> zeYm{~Oy`=%aK}Uta>69JGXA2@c`LC=fhEn%;)_r`Y~G>N5gvA$TgI@O2x#Um^{#J2 znf2oyp|oDnd)UD-h0+O6DY~wDwUZ*B?3+w1Qz@#xeO8>p^EMVz3Tc}f1OR&3!}Vy@ zo*6-^0)s}kn3iixOI)R&v^rEG>(ZQ??DOj+%^p8@y(xV%e@Ekd&;r;Sv9^M*o>WJu`B7Rd%Ak z_P1wFWVVphZ3)E6%*wx{hTU(K@y_o=hvES}T7I21ujUH*Id&yj%o%K2$|W!yfN~3cHIH- z44~%62k*$8tp9vR6b$dIXlk*3_$rT`zP={H0o#|4#?heC8IzN~*DSB?`ksbU|E_I; zW92`)6zVm9e+(4wQNO2e)OS%vDtFqwUrssP3E*thSc{ksz;)BH7?%>Ah`0UPZC-y% zIIzg_dJ8|RrDf~TcYmoA1e=R=%ZzWe>-O^jbLhqVvt8=33ePgv6G4SfDE&b};?`g6 zNx%5b!fCt?t1A}0fByFau%Yd$T0WlsTou4JhUxbDzL*%x>UBK2T+#>f+s`E=0f&0WU*cSs-K(zDJhPbe$#{B}=yIZDm8twa>h1*OA! zUw*or9?B2@^3MAz>_O|;cZw41b8cNjhMAep!yExAiz$8FMr<*Oo-}qEv-vKNaZpWl zZ@8D%gpk0@`kj|{W@dM4i=}GMC0T;s91D!&a;U04`zqNQLVj&-a}%dGdp1an6=f{{ zP{3IULX%LjwQQNo;?#t3ye~X9uX4co(Cy(&=w%8iub)qmGA?rDVaJC6ji2dyu>A5{N{%}ozMzzBRaJd(d0wT!b zE=Fx$l~iN!un`NIh{=Ep(# zB%=tuItQiSjw(=r2UldX?yq&%t9n~-2-`)#10(b#Oxft^1Hm!qdH5a1}02zQZNGS9QEzT>`|EiSK2>`@e*M|fmn^TewKZ6-O?LZINl=jtV z;O4m3WaF-~+9((8shs1Go4w3Jn$E6g0Tmx~zcv-3pNflyBH4dC5{=!_hTi3v8 z49UCyoLLWLDL0rW6iZ`r#`Sov1>VWU&Q#Nd9%1h(n@X9_o6wY#FT41|fY zku2*e_1r~!TYhs%9#WbFG4m=N5$1q{s+CXb2P_MHBrpx8W&0yb^IIKRPJ{6++UI*R z7o7kueV@S6)e*(F-=DY@PCYb4a!@%Sp};VWO>&EX%4@zwCZccDFTZik=So~y2}Xv| z-T$}JR+h0xu&t!U&FF|-&p*GGaeGBrz=a-!$}#C97Dh-j40KnCu{xz$7EME`nI#WS zlQNh2^+@1e7mGQZRoa*K2H?i-J}U;++$q??Zf}_N zpbzsUMvhGm^5dKvp>VeKS5typrQ96P>1hL8=nVfel+y~t-z0jcOwCBQ)klgc8Rjwn z7P(celB*jpHLbIrEPAbL{7Q#&NCI#0#bkuZ!^P%M`KVQ9XMR34ibI+av_j1Ow~p)F zF!ZNxG$LN!(&feC4E6c9BpI3_8#$4!O|JoB^Q}&rzFfF?F$A`DDwH#!f^mwz?-A^W zAqMPxjK|11aT>dctxv+S6k~(^Ks+8Hs`Iz$c|i9O)z`wZO!#9d!hfqkV9JaH15+mm zS3&KL&ufsiL6}35M?H5? zn^&x!^TOP1yhB@O#wf3V)Uxp*(TUbN-{e&U<3#s_c^MGo;#==)qI6=i3M$chA>V^`&20e^#KG&w9lm*vsz~@9igvQa&(M$7&p<3qWp~QP1-{a@54s z%JI(1npzK(s9y9i6KwCGa@G%;UiwflB^j=}HHeCXZp-%cMXW!kwXi*b8BCOsf1ns` zAl-65o_{)*w*%BJRt|C_%B{`7R`7Ir^3(8iY{CEr7Dgs%zFy@7xcdR+s@Xz&FYn6Q z@rE9aJ!-CwwrGVzsjXg&`N{qePJg7-ti{7TnSrGl!?4A=Y*US}aOFd1F1RDON-OuP zjTW@hgt~x|FeZL(gH+s7j)neS`hLZ^6%yvD&}ovm)-mp5kvI5@shES@+qzX?@>I~j zRo=#5yPNs7@+k;KN*2X({&{g#u&ve#K1bB z_%#$)=)L(vEH4#T29Y%>P$6%<(Mo7ps@OE@b3cgmzU9|yY2e{e=?b0s$w|e~0s*wd zWZt#=WFLB!7^22Sr7p8nRMS+v<9l~)n`&K$S3Y*x+H9-wM0s$%5;lQDg2Rda!C*fT zAT|XZ`LH3f(jyU{(7VFz!8SjYc_o8BM7l_~JT@#VfwiaQTRYT*X}-lpC4?BAPg`3c zURccvzC`(_IJQ3iK)k$-y`O|Zl77Pjl-ZX~-OcILRoSJ%JVO}^vrHm5-w0cp0=Pb? zAY^VubD@g+iMHyx_!iU=SK=#nT@AgGm#&rV__(*(9T4*+EU+*%$Myc)Q;O-^k!~9KqzDK!%iuskm$@{C4qk}Cj(Mm zccvHOg8hmB$$pgi@_KX%Bw6aSPD=OuCk94}OeFrCE}^1Qo=@N7peP>i&O|&r6TY_EQ}Y6VM=j;Z#m~J|n;NIa<=*gpKs*~oTfFn7>6;O-TWu-ZQMo&@p&TXo1H?OPBOU&$K%4R= zY!`IBj}NV;wSyZ{yS(PC=FOQfD8%9PmP&LzG4q#}frFYRqIAg6wBsdD+Fz(=J0y@P zn%9`PA&@X!IitcyxudD0KxY?sJg@cbXVzO3%R&?#g$PX4)L6xCR zSHzi#ph}B=6Zm9(mFv23#qBR=1QM1BL6>bb|I8Us-296Vw*v6{#D17b4-$9l@|YMH zo)WxoGz>4bcMhsZj^(Lcl@PU}91Y_<8%ey%EY$K#FQQ$ueUQqGRB?tgVJ6ynp<5H* z;FGbDFj6_;(Uf|wu^9L;pjEdhK|wey$KTd(qU?J#PRP!MH;cFa0Up7Q9``mJpD5|y zqSun#c0oPSAP79_KkhN(bOt`$0??f{>nfgTVUaVlZT7XyWD9&Z`Bg%`Hdh>Fv$WA}?dG9Z5Xnq#nb{stWT>)SmU+;0cG_vy#uLx5$y<#+0?NL;f z&@arSmz?>)ZGtHQqm@c72l1K?4kw=)%X#ZhS~&>N67FtBw*ks~S7H}hm0+z+oF5vz zw6>th$kokYYxCp@>~{Z#$;KO;p(oX?_m9-Yq>8*&T&s3FT!whcWnB0MidXG?+=0xJ z9)QRh!1=&lAI6X-Tk{E!LD5mNo``PVh|^h_oOk6U!Tb2JSYj7reU*5jr3)d~9P@Ji z21)Dw&9T*_+3eW_9tRC>7OP2*d-)#coXbCE1HxDK@=bAFya)CRX43?6ZgEphrk(;vPrQ{-{7Fk|p-9O{uBX}vPiF2`!1E>JmseKxh z;+5Eg>6l0Pl4^c5XhVkXIfCgML_GG`b3@G;bpjrL3PQ7-DeL9NA{q`&Epgg z0TeosVZF2Ub7-N*KR^z#%2_CSoD1gW{bu;|u^3GTA9yz9h}V`q&<~95CU7J<{jNiD zc@eSUK^OKh@FxYH64bZrSWQ{U=(~~CaUNC(0#pW90~$x}LCn;LLCP1ph9J`&*q+b+n$3WJ_838#o{Zo-SVo<^*SVxeUDk8e% ze(f8pI@dNqHfgo;50yVLk%F7BiJ*ox<{ul_)m-)C6=?1KLTX@EklE-MNFyMaQ1v_f`k5)JH!KZVcZ{d=}Ef)t9R0FNuI|A!#2Um>z zOM8j#Z*%mrxbiz9s~GsKnAiSFby4US;Rk&REat%&JRo#J-bix_w?{m!Tc(g zUAS4AIXzS%hu|bGSmM?G`vLy|CLi)dANYa;E#5u@bqO%`-vW-KM(WY9&d$t|kgyXT zCX@S-!hBg2;K%$7`*%ZWu-3wc7;!NWiGcz`h#v`1$(eA&d|#z!$9EU-q!Dxl2)Qg7 z_6_Z9R#~f@$nNtHgPWVHfiD{bs0rz`LQPu*D->LkRX?RK+=KN9fDz~CBK3W0<~6H>T1}bQQ)6B$5mH6@NCC(0a%fi16C$8i@RA;A z5(oRFd4;l!{j3ubgYYZ+dnC=I$JkzqEa9xL7#%H1n|tf_*wJLo)n01z5j59J&J#W_ ziCp*_9HRON_cH=Lw^8IBuyW|}Y_HEyj921Z)gu7wlZ?VdjT?5Z-}Al#3a*sDl`v*E zir-bs)APpVjm!9w9TVh&{b;q#vY&e5L5a(}aUye34)JLDOL3UitzIcJG&E6a_&-xX z%G)~i`D3Ss>X$x`0R465g*Kesh8(uGr_q|$oVPqkY}Y!yTQS}&eisq?lFT`Dq%cG! zu;6MsCBey~V58qcfGQ*Q!O*Yv_+Ua@yIFSE zzt1U%?*wo!EVpMPx2v+|cA;}bXpzl#lB$va@QD!Pf5Bkso;~X&Dhln?+O^8O@Y)Mf zw>Kkc=G+2%%GNf6@>Y~5@y&g$uY1aP=Kzf$K4|AHDI`_;ZKQDWUDL0$2$+1wu|h)> zmB?_LcmO)JkoLTMeHttk`i96oOq4RWs?$jS?#^vE#jK$-Y~7b1wnt+nCPAnqY|ODf z0?=u(b7H1+0ZA9DD!aSeTl+>1g6)mW;EhVq~;mE9!{$-?{E*0ZM|5r+jYTt zM#o4xNiQ~!b2rIL4M37+LX-p_%Ww42G&KH2-mI$nHL_kzDZ}QJ(H|&25$MPJoNFpz zg8^1yAov#R&}nTc3+gB9B$-3;pgkMbEzD_V)k^)?TW9W#YQD)xN-E>qaBekT6CoAe z4-d`e^sm0>d})PUcX*9@*xu|Bxh2);*N+E~WquP?TF4)V@k}=*9~i{7UOxvZ^I68- z9+k0^=+1L~`GA%^D}J|Gy*T$z-zT`O^f&;YMkbCd(+uFg%mt0y#I-3i^_uX}muR9>D?~Pz_YNNZY;s|7p`vI_n+5=6}jQD?2jTD%$d3{HDc?fO)(r{)w9YAFSZ%Y>V z1|I5DzkX@CY9RFczkLa5lXuM~$wlTdSezbar9<6_=ov=U(RLO_PQ9=jQ}Pe#W!L35 z&65bi2IEc-YduYu>c6Po3G5U{nvUTC~+P#|%r5 zY~=R_r%H7EFC}AMpZT!dhE^O&88bYD(8-?)vf+_dTpv|-xxHw5-LO0+)geNZ(n$v? zfWR*&;oUWl&}Br!n2KYv*!o#(^txrilM5kW2NUH93G;_$?ZOu9?r_iBh>S3+g>#>@ zH$oMlrs*+u9R}X^z3K1B$R9KG$Km`oCcQJQ4$umOK;rgdxeUP+iMLf ziGzK7ol7mR*zeWX-|a1dZ^S%5a! zv3rncxR*i=aGa5NB$z$JfQwrgmzL#Dmymdp=E?}qrx5f4Lllzwc<@0~U%Kcv`=u>M zzj0wGU!l`#&DGSRP_n}%=HZRCzdUI-11#OD6f_mA+zyJjAvJt{S8DJiO!Z;lmNmr$0{P%+|$>MB#Up{4*I3Vr=82`t{ zjcO-iEOO&@$MJJOQMh(obR;;fysT+g#p?)52ANGSuiHmz^dQ5yDR(?NNMq}@Cp z?#PuG#KVM={%kI-adwfC0e5S46jILB!m_Vo3Zsl!VJF9EyP)t+-+_6N))H(%g&o~5E3E9Mb;Wn@iZN$^sT^NnQ+0nf~gy%wT#o=&8EzT11oHC$d!ObRU za0ku*w_uzEYL@}|lR}J*JzywVb+qz|g0Cu^acuV>R{LX<*dqyo>A3lsp)5*-6Y~%E zRcLlRagVRJJm}JLJYm-SaiYtD#-S<`dwQ#-I>gzC)`I?d5RutjJsol?S18~qA&}e9 zam+cBOaOvmCN#=}O1vUha;rIX!NUO_d=d1U%%#GJ&W6EjUzU0kxJ+wP8W~Dm1D~(Y zxy2WHb(*C4K3C?awq`=-wLQh{3^Ad#-6OmW+GDSUv;3NFl8stPp3EZbn z7q~V9fvG!6vQV0g)I)I~i-Id+hlmRyTC2rvOxYIo?aLV=T1xSmcBf;j%qzSZ;xCkP{;(iA(RFwCF%(!0P#9ptp%y~N@E$$q4D09 zp|0#Vw|nHS`A1eT;JtoW;4^d#lkCfkZ<~?1n~ADljx6`0!@H#WysuaB);Bf@H1}X1 zo$xuTTiD)8ZWGN2?atb-;k#~m_;h&Sm!6lY4S1ux{+tz_w7Xo~H|Aqo=nPi*l0>Q#b}rsEVQy)@27tkXJMMh3ZBmzUB-!s-=y1G~5H z0D}&w3SWJ&Z1+a!YE^z?ijH-dnud+Pj4_i#nW-e4Y$phdcI8t=@z3^i31febXP|k>B&Jbeb#GqY{BnUh ztVqAd=nk6qBt;cNUpMOA8rC^Ocqv6uTt3u1DJ+R1-oQFYO46@Xa=X{U5CzI5;G2X6 z=2}9_tDd8qQaS7stj({FP_4cR&gn&k3UMhNh`UTY_I+j04EW!y-|LO7{PIFSAI@y6 z#^oYgIxAie-ku&bxIr0`{!(BldB=XE%a6teyYgbH!dEaZ|DYNhCUm2V{K8j+Iz=I; z$?s3Zy6YkZ1_svSfCxIgn*zF=I%;I26vL0HQy?E}^)1MpT2BL_i;@??4b7gIdrrN( zpklrCnT0Y4Aw(2{JUR=1TLm!PN=udt4qZz3aTkgKP_oLTEmGK<;g<(^J^sXpGs1QJ zr~dKF@whnYkRLHmLLHT*t)Q#dTt$c4y7+-NJ#zifl;J}PUNxBIp{MW&7ZKFF>K`qo z8scNR-P=!J-jfW)C%en!{WDr|pbm)T$7=U@?se zWhqUl_d>hg=yVctH0?G@DXy)DwOZR59d>-Jz7EfQ@JslSQqP~dZzpcK!O9CPUwiM3 zRK)Zg(m=_Ehn)(2frV-wKIegeUWvFG+5J}}X-zSLnG+R{W+z}z!6)B`?K&>*vHM-o z4E0W9Q&_%5bMf9nP1C#jUpPXC7&Wmnk^%6FsbHb6JINCASBdX+4Wa97$iz>Dj?5+phZFNXmh0m?->bY5{-NC8*rFMoD}~aIEJ9p%`o2H; zk?%`Wn-r{wzUw^v-LPiJ+pM*zR|J6dqM@$SxA=4ec;|E%Qx%01RU4c`H*0Zi4hhxx zMr^+I!7PVN_@8rtfH>uOH|rJV?%p^?fA?*qiEIykd|-l*dI!@#ID?#E_omDgIYR`W z9LJl7l3u2f1pAR-XbQZKgF+iC$Sd`t zwSUhu^Gvg}%(PgOT25-3du}+U>9lF)mL{mES(%zBkQ?Uyv|1*bnhTIQrMRHjxBwz9 zGn$$rl?#|4FfL$fz$7UW!u*c&zW;G~34A%{+~>Z}eLf57%?q;O*j{Y2B0KkgcAs#r zZ~YtHEe9^p>_gmhSd@o}@$!Jyy*cZ#HLl+cSxh}UFv-jRW{6tqv40A>4%Jx6U`UFr z_-KE~?$mr1dv9A_UZn5i7pd{MH|8fNw5wT=QU|I`aKTbXfxX8%QI|o@5=2Irq}O^y zG?#!-UK>Nf`~Z&V!Z)l9)7~OSNRunK>6eOPbMr=Ci&;otVro`QBwrR3>$Km~>fGet zl3o(?J-;E%MvwJ~9wuWZpKGkU!HOb1B1L6YXUc+nJFRd-O@|#{UCAu~R zQ+jK6f~PuuP$14mS?tfcjUG0Ayma-9M)D*7Sd$=^JXYDJ*J>_2lK(n-dBr}FcN>z( zP*E6}7;FS&e|J*krsr9IGH(S`cK6FV(K-2fc!)nso-y&chNWV$jh}S0a~wy9gX&J_ zjoV-uF}IMc{+-QtyTfNm;vE-i|CUF4>m>tHNIO$hBN3Wqet=!PBf#JpJ}xN4=b?^c z(#;YoZcb*cxnBIAoZ&7~kn~Q5eg+%ngdL8j!~~ZF8GodNTk8^E5qHw~0*QiDkb5+# z>!qcH=_}WENwN3;xCeXqxzy>Nh=CPYBu7K_+jl~lzj4v%KeN9PaAvS!Im5&yasDm36o>r-pe6a z-DnmcLM}-dQmMUek&VcfkrEHB?r^!x#T3jCa~Gk(=}6MTJ`>xJ(#tJKtR$57z~IJe z%vTi)q6N)YA>-b5);C)V5Ms&@-rM8Nrgmw<>|tp|P>`xWljT$Jz0&@m{A@__^@@#Z zvXN+y2*+5V?2x+?K7mEyugT@10WyTHHCT4kDUk+l&rzo}Z`6 z2Qo(DuQ)U#Jab@fhvJO|di>fpRP7-EezgGx8Zgg4IP+geVGua<4)zc9gB|qOJN$jA zU#j*gqTi0kNnuX)E^gnlIHYiowf|xHz9Wd01EhVbw#1U3-Y4uEGYbU<*R}z%MzRv$ zzekgVi$!xP7L?sd1z3j8DFAqZ$16OYfkhvDuWuPjLeU=LVYG`eGQuiJ&&2E~R3)@P zuS0$vWrZ$7-Y=v7RBWZ9Fq@pW{IrjX;IY)F?C|sL)_;7z(L`PuH|&DyLgplXtgT_D ztyE5UhgrA3!uOc95ygs@#Dn6AD+-6d=YWl%*qAl$$Ows7NS!oc#48($dR}5?BBaH3-Iu1*{2Q!lndi+=`{6dc zG(wb^VhCInP$jvS-|Iv1b6z! z6?^Yw3>GoWQq&7>goKf@mL?M3bw@Ls3+BGNGj^hgwL;U%AJfQ0aile}>;56?SuM;$ zEX))#D$iV+t+&doXuqMlUzUPni2H5MAbYa)i-KLyC5hB$F_rcO)}uc?>{JC%ZL*1j zniV#(?`=S7_DAJDRquVKz|>FSGnD*wzI{OW3^ygfn&0Wj#YjnlY|24&SBmNsYuJ5gEle))OSk1Y%oFSPcq zbX!`{LJfEEYDchvGQ_F-ebWcfgubn%m(kn@kth+Ksaq5aRvpjt=S@j<$}ZC_Pb|ju zWGQ5No})MLQZKMgV7qlfFNVeRAZ)*^UwKjgtR-NFi^u*ZqMrhaFD&1=VK>y1XbWh= z6NFCT>22wOj(Ai=Wj=826)DF)7#V4dt$PV1sw(xh)w4g5Y-odRhkWK47tn zDTi=7Y!oB0?$Zu6*Gi8|Nf?edyLZU;XuT+^@b?dIBa@d7IoMErfoQ19bk1(&^3H;u_5I^!u1HnJjWds36b10gzRGx-=1M zT;^Sb6ee+W2i*@{4nnDT_{T$Zu>Q}tbvF2QWs;N+L=JY@5FM=>g!K+E(!5=$^Oypl zn-hMf7?}%3-mAmqD(h}j`S7T_o(0byS9_F!PpBOT=8L8A_xrt*3yuI7`N&+Lt|rPS*yf%^ik$t?h5K{`ms90q-~L%{_=Z$}V%vs1~LGTX~L! z2Dgi*D6KQULq!Z!TB4r=*X2@@jp7#Ao@$PhzgLe^>iuVonATwc@%N)3Ah(`|{^-v_ zwM4R^;he6o4Ms$IIw(H4{@DI?$y{#&__AQ6b$)mk%z*PvvXW%rZ{8EF|DmI|mw{>3 zTWcue81d_!GPz?hCFPYem?hcxbK<6=%u|Zz%f-I&wmb67_wwWYr^LBveD^InJ-^9+ zkRUrXVtrou{Au&2Hvmx>m48WOw_)A9`gL@qo)z$Q#?Kgrk%n0t`g99R8`?t}Q1B){ zvz|Slk`B(a7Z>~Q7jz|hU;VL$z3kobNSPY(&lm65!S+ADXfxX#P}5OZ9Y?btH7#_U z^YLQeP#j@WMXDZ2z^HHwbo#nr)kiQVIlsZA;^MFWO?6pE!!tOFyUgsQ-p)ulzm+CN z+%3b1EZ%@CuiRD_SxL);Q)<=rmC4GHH0%6ZRLti9MrXT5a%#m&u)+FqXd`&Gy2;u>OF23dm$GlSNv2O@Tgafm2)T^-P6}p!%8L!ug^-P+p zeh=9LIOxzGTWG z^HWLP(W>N-kdCNkD1Sio+`lbo?qG~QRU*WcCD7KPAt8^*l%Cv*!(+BUn{s+E+~gRo ze59w(ClwM9Ps1G)>G~b&Wy^OCpKJ8}csaJA4aa4F>F|96E5W*F__!Hy9Hs4)DNK#c zaL&&N@Lbj}Znrf7o=Q02P0^JzqSYM{P)&F2{cEpkqQMdRJ?jy_p|)H!Z}n1|*Yc_UL}*JZp!G zSWr^3UCdU3V}+@wFq-J*GHam}z&C^`>wwXkA0NKj`aaycLQ&obmWqaXB&06o%tB&X8!JOVRg(tsTIE|{pGGyeA{3xe_6A{ zdFhZHLF)tP!$g;#yJN9#u!~xtx_xi|(}Q#(;KR+DOtVf_TB(VoQrfl_q>_*v6hR3t z0SsiR$Ow(go~k1Nbuh{|BgtWrm+g1i1PpH0V$<5 zRFM;ic?S4CyFQUiADMlDEg&YpUH36RojJ?%aTZ4@G2{McDoRQ)wICs+Rqc{obXm0z zXTm4T`yMB~yW9E}2nfb}d_|h#x3irdlE*DwmMAVUFKx}Tx9j!~9DDLfBDUQS_Mac> zh8*^hAv_2Q7ELw5pY2>ci2dck+5rE}R*l5t(2jjT?X$`j^+-~We8YTWuRG9LJ?_0C z4e#tOX_z6r9UXe=I@K679|<4*Tb{b<0+}w}bVMC!%j`QBc6KXKi6Ko0<8ouZGTUH6 zYqBAGO)HOI$afwBK6guNMUGt+L-yZwGONy`wd`{5`66z?!lr?lkA2=*S@s;qR}p)- zJX$Itn*qUbfJDJGKlL%gx8;+p6=3q$V%8+`YzFjwV`_fB|8((=PjCC4p}U}PUqUJ0 z-+oLo`=UIwM*5VO^a&|UYivk0V*qgo_jXvzulo|An;7ekdH@lP)Vq=LWO#v7SRJV` zr<`t)7Pc}zR^z=1=?B=My&}E#drDG%Cl47IuQ~QKrsbVk@aMKX&eD{|bfCIx9Gq$j z&pB?943x%zw%a;M>k)Def5P@>&Cby17;_sDhEsbln@tD*j4=yrbGohF&d(it(lu-9 z_R+zM;P>#tol1yoeLGCP<1Od_beTLlJ31ihUQL$kW)SIyT$@Iwhge$RL_?7z5TL6Z zW8iW{6tdpoH={YO;&k1LQLUyBfKoi>n(i{QeeU2YII z{Ac|rD&MuVp*-LJM$}5U4lO|Y5!i;MrHeL?pQ}sdH6Ch%GB{_{rJIEeeac<3Vii5jmMOt;mS@? zFHR$gup0(W^=j-NMSD~X%;XusW3fI6#K5r@L03Iob3`P?k4m%l1hd};Y}y0X61QRi zw5}V0r!FO-8h+-FwdURO+ZWz({xUeiH#jyOFW zoO1n+VG7AJQ6L2OTUO&dQOGuz-{2=0cQvN?qYn?d-s?~{rEXBybDyHeif;hXl5&>( zKtsP})~dU8&k?n_W!3nfFT4|KGzZ9rT+a2LE33RV%4$bu~!xhN;PAWl6K#-q-qBZ58cvLP6IGXK921At!bi z-g5fmg@Vd?S+>pbOw+K9!q=rO^RJ?r?y;ujLGtn9*LbUQFT~EH(&-*6#2NfqahR|V z4w$wG+soH~fk&Jr8~m__s7|r6O|J2%wEj}stDb|tK3Nm#CG3pXuur#Ss8akxS=1%) zpt0mLjHH`c%W0GUtxo&#fpuY^dCaX(Qm%=P*-p*s(IeRIsCuy(-&_eexJ1Ny)L(AE zYs7(k88s)fQm?|{I@@0Wv-wz`iyyJqRQKdzhdZcqUh;=t=T;+?!28$b>`0Dl|AoZE z&rKnqB_HiL_~Ap?zDldl{YHcZr|k>tSyI!yU+#t<&bqj2-?bq7Rwd*EfX?lycbRii zN_lgnDK=twzV4&q$kVh~4*eS>_Xn5`KLV9ODtwKTaNdx%+t z;3KS9E3nXk4dN3Cy1cnMI0b@$6k;|8rEgnOV<^G!%A<7eSe-XE{ab_`ELKoK5&;*O z95^~W6kS2Udd4Ohw3`cm{?t_d$uaVyi~kMeMK>j2tsd^D7l>hk+3)`o-j~`}i z{Se;8KyW&nk1BG>M#42jQ?rrEbzLh?_iWEmIP0SpDYGEqZ(f6Gp~5?cDR48!N!)P~ zFBLggPm14!GWgG@g!5Gmz9AH2S2B!N7z{6R<8E5TQN%VP;~iH;S$<(>>UpR;8Gn}2 zy@d{;7D=T=##7^H^9F9mQPn0;c{lCzhp6gEu8YD9YJe<`>=6;Y)+3wBUx^Cs(urKp zEUm9s<%32qNeb;^ZnJNfdi>0jhw+p*Lip2IaFyYdK4#;5!hq6?<}=V~Rd5%}NA@qX z1-#&c(UjEHEJ)g(`MDQd7_X0Y+EIr4{|`CzL|(BMKrcZ z09@{z%Ui78D+`u{aAzaS&5*!Pu#e*~Snv6s0kp9H zH|e4uer>65P$1gNr&_7J&y68rd}!%nN&Lp*$Vh`c8$(xuQac%qYu*Sb@)T`j-LTx7ys zl&JCZrDuSFg2(mXmXL(c-;?Q>yVDKc!7dT)4X95V?a6ZH40-`vZ~r+r+jZL$gClswx0&9i$TiPEda^;M&I;3u$(X z8>c4ozKo8pZLlyGy9>aDxty36%d`5#g3^SMuZ{no-|S$4p9_a za8$x;PY+1hPW#EbVcE|_>!-YKEMPe5^#y;uKTrniXOB^C-;^Jq>r;4X(HWSEeUrXd?j6PRuuFFjov`~)*YoN7acq+O;@7AYn9t+o z`I@D!>ndugMtiZ=DoIqYccV0&{D$Hd!l}X*j5KB;^7#q_`)zY6BSQPYqX`9tEuHM+ zAsXjF)&|t@MUQBZ30;lRY8+(BQH@0X#X*5>Cu^AO3j_A;O;-oUO0EL!fLt)u-6ykc zQBuU~d|nL(Rr2eQ0--6hsVgFZgnn2ri4%*h61!Ts(Jo#c>G~=FA@H}bnJG27CsZ_K zMc}QC@Vo`)GsAlLDzKuAz7usoW>p3bmWs>$II0f8vVJJ}D7yY*&@K7b$a1r@w}g-L0Mg-Ubxl zy<(x|yd>m?yIX*6O_d2&3PdDo)h}}T9p5KEiYw$3chNm}dA6Jjfmzr<{`q2-ROCSu zvpi!T9QN)?@f-1a9%n}g(Td_OkL1^1^dI*P6P`D zqBG@U%B$6w5X46xh(7!W9R9G<)wFk_>A;JM6j>6^`dzmOS7 zmEH{$r_{%X>(A1SuEdj4g%AnLfAHrZruD{lK)`VRjYX}_ce7Gto4ydI^f-@LqgO!nnu!0~bWY|#KDqyDF+dr>B3FFeN7@q8 ztNg4jjYjS&P)gDffGi*ecc=I%XaQL$&X?^z?_ZV>r#NLJM;O!z{~@}IpXUNFYO$l| z3?Gk*0+n???B2ucfoYP)SMz272-5J`3>9t8Cc55#-Ih5Ht$`}*VRL|jp7tC^bN9YL zJx)vo&b+>9ZAQc#MJW?)R}8(lL3)tx(NlHVe(zE$v>>% zqf4>IuU5BBo_+g5L27?w5l|hi9m&B0d!dapffLX9Q9n_$fF2A_XhR+2-3^@VN%{8j zDE@&b-_$x|Xitq(&Nt#Zhl=(3{j>}FJ4@fdnt~6+8^ct`TBDN#V`%nnWBYa1>-UM{ z{D3Il<%p=T;bHdpV#3$0CxplZ#>;3jx)1VBzYm3h^L{WpD}L$r(P~J)5qW;lfI8ZP zbT=nxV81}?<|^QB0ycXj0rXav`NPxQF%~E<8!-U%S^7})Dm0Qvlk|Z??Asf~ig7m} z=(iPil8)(RS6obJIecRGmJD*jM9F;eIQBQ6y5<+EiQzLM8R7>;b`C%dH7u#Mvp+u4mfQt(tIaN^vpqO#^{P}E4?pI`5;5~B zM91`jWCJNaPmmOmGEDKV-uY%SVQfEs88w4#Q|=54G#jL#>2H{q+B;#9Q+}+ZsIZ!b zS4_s+3v9Tr0^wL4Zti}3;2mIy#>5^fadc{M^SH$uA%o)oluhYubG-o~{_xhyj*013 z$ag$1IYvQ@*&C^VzvMkC5k|V}$Dt8%wwKdJjad@t&+~R|ujEnW$`1BnHfN3kC-DS& zEp>XPV|H}1W7qh>@EaA`H>^AEhFd1{{oELV<`XjzF>>%@{gKw5EUF5bBirSA$*|pN<9AAEjs+%Jub0;VdKHz49efahjq31ruJkP+10S!sL zg)#=PD>;~?P{E>e^>PNL1-O()V_MhveyIb+=i9@7zo}tcUS3hXJeWfK`8?nIi~^4R z6Of2}z>%4kpkDG&r3F|ReM8))TB6^6oEdj&tJ0ugrZGsoGRR^frvzra=L&e;Pn-k) z?GC;D1lk@9Z85#uhs2#5Vb}7BTmAyK^1#qp>iE^L8p4Hxo2J&;OxxVDR5#hIedcPk;OQw&d^g6@rBBf8*RkH6HI#RW$#%thUN(R~cl2*R3B*xNa zG?@<_@jYTOSjx*0)N3oN3$#2_K`0`lN5T(19Y^B8-AG!a`9pniork7fE$i|>$$Q)Y z(_Qd2amLbAylZ^fAlXeu&sueGwes!FkKZjFRM}^rDMoZi8%v92Q1xDK#-KOIhFyWa zv--8Y2xp;#Dtuky@&m5tp;pk)#__;0;_Y>s?xe3H>qxP8f&VxE z(-Xu)133GaxyX6Gn$tK+sZt_XF9{OiVu1EcL|6lmr!h>r0CdNH8R)%-d+K!)`t&5r zmqv(9h&{AY+CNyL$Kq5K(vB!e)<=qE{;gZ`pox1>*V^x~F*JdSjUVq_0JdZjQ#DX9xQTXBsI=!9Oc(R0Jp^0h!yqcD^pG{1U%34igVf%IIzcIo@2Xz zHA!Y$zj~-)ozN+PHb#Eb8Jsbvazdk#C+sS1^2Am6E5IgbZ140CSms9PxYv(ybJu+ipKfe3XH;oQpq4rq zZsJHg?4k<-q%RM{Z)?RoQ13MoU+BfcDh4<(WRLw-gwL5zK+K_nayKH)+RT|pDE7@? zM(eafMamFyO`xme_^|Kc0r5~RZ+eZy1GYRvatv|Ab?C~1@g+*BjqMa!)@>6&dQVG{IlI_W2hhYpmnxPYr zOoRn-I~?;b`prOFM%bo9V)s0D*f4H>7H7fvWzgQ4V^%u5gzW|}VN452G>s1pC2AVQZuI-SjRO`%pzR0mrO2nphv{iZrY4*C9TI^8R(xVccuqim+5j^?XhDTVHzajr7_n{wV`hYUV~)kr8I^-O`T;nRd{p}hsU zlgUT|uk7aZBlVIhZzyU}rY1enWtvn^Apd1=HFbFNKeM121EJLoI;e{&&>RAS4ZZi5 z)pW5&NeqgLQa%SS8uA`Ic4ryA4|nAwUIP%wr@u!=U8VD?9zIDg8hD=q0j`XRfWo9% zryC#-+hiiFTEXW#i$T8+Ub*Ixz3{lQIG}9UX@ooR3AyZ-S&CLJSgGYcD!b(|N3bo@ zp(DCP-Y;vX+Q&QJAnuKAy_X}-_f?6jRpyoQ*Wg8yjrHTqziI)eF!oc8Iv1@J8H+p* zJmJq2qg7<+$d^ET>cFgR2zbMu+-$Z7cpU$5-U#QPFP6XowL9kA#rN*BCNg`y^49}T zkpGU3UT;AwsM|`6)pD>?7oh2KKSNwN{NYfA`)4{B(Zb8PZnUMZYK8<-nm3?nLWz-# z>p1KR{i+{N&9YR?;>Hi5a7BVckikn6qvSE+Uu+3{+W1R<$|$V^~@p)_Rkkk zFfzf~55xy177c;#j7@sX?SH;#*j#V<0?>*w2m4`n3^)UYjD@I8Ur_!6#$jE{4&Jmv z)TAOIQz+%!p(eD2+xcgAQE8xgvas1a(YYH}Uk|-iDF=_5V~COsa>BC~ zZ7icXMT}us%Yh!7aV{5lkA&VH7a_C-QONE9LZBM|_SQ9m!jy6$^q(&ZfC`G20WLyS z1fY$-u?@<(1^l5&RU6SNsSb3l4k3HeDi>1t-bI2)Rr9OtzxH6!2JV{=I}5s3`F<&n zI_<6J<5r(ZMBk_bDiti_scOwUSf`d(=-*ffrseR$q3**`jRmcnA+R|ku|B^y1f|tdtx9yfEEFLsmYr(o&ttC@$NV z`Tw^wJj7Ey1onZfx0O*2@b+M$?+g!`g3o%kZ44Q1>D$D;c^Ma|4#ff*aATy^4X&Mf z)L7!<+uoM>6v^wX2k#6w0^1bWRCl9(|QPwKYT@v>-A!?@MR_zB-L=|E&I{ejrD|q&Yp`NX zZa=44@>MOUH%~9#CWC@Q72UF~GeEDenpO_HkxjsJM;97z{9UF|QxfF|bf3!(ev-|t z)nww)${FMNiKkvY@?qd-zA1zCtY$hjMepx}CCHj-;pgufSuTPo(0_#*^FJXvKaRLh zqg7%m2+-c@%-K^$)8iSkGIixfTKVV@L%KNx<8a52bwjWV1|Fq*Xd^-0seKAEs>wn` z4aIBf!SvKnI)#0@IhwBkt@v?p_v-1Xiz$AFiH13f&6GAkD_6hYjJ4R^BXMur`eUO@Lqp*yBR0Xu$Kc;y5i@Oj?e%jW`OTKZA{hygtKMZBA1A#_3^~#h8G? zMPK<3x@xW)1y`1`nG`(MViFbq#{Y#U5$9NVQ11W0@=`hDc%q>K1so?DA#biyFc4b9 z+IRY&B?G)l%bG@}CXKe!aO7#FO|+W(3_Q_2M_0gDBApeK13|nCw5E->YsEYNjmH1C zi){V^gyTbfzWhoBL(DSczH$|TJ(~r>7vyFeO#uCW6r_W6P*Hys*Q17Nb+tBT3>vFf zCi>8}4*#aAaRT2~q{yKR#I%N@RBZzkT(&5$ve-W}KOE#qwQ93h?p~aEDuEZ#ur>M! ZxNX}Un(gc-j9*v&{q{(MpqKwl{U69{dL#e< literal 0 HcmV?d00001 diff --git a/static/brighterStyles.css b/static/brighterStyles.css new file mode 100644 index 0000000..9a990b4 --- /dev/null +++ b/static/brighterStyles.css @@ -0,0 +1,367 @@ +body { + font-family: 'Trebuchet MS', Roboto, Ubuntu, sans-serif; + background: #f9fafb; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + background: linear-gradient(#64D2F7, #195172); + margin:0; +} +#master_panel{ + width 1550px; + height 800px; + display: grid; + grid-template-columns: 1000px 550px; + grid-template-rows: 50px 500px 100px 100px; +} +.master_panel{ +} +/*************** Popup forms *********************/ +/* TODO I don't know what this does */ +{box-sizing: border-box;} + +/* The popup form - hidden by default */ +.form-popup { + display: none; + position: fixed; + top: 100px; + right: 50%; + border: 3px solid black; + z-index: 102; + background-color:white; + width:500px; +} +.form-popup h1 { + text-align:center; +} +.form-popup #SigName_div, label, select, #Signal_type, span{ + text-align:center; + height:20px; +} +/* Add styles to the form container */ +.form-container { + padding: 10px; + background-color: white; +} +#panel_1{ + display: grid; +} +#panel_2{ + display: none; +} +#panel_3{ + display: none; +} +#subpanel_1{ + display:none; +} +#subpanel_2 { + text-align:center; +} +#subpanel_1 label{ + display:inline-block; + width:100px; + text-align:center; + margin-left:100px; +} +/* When the inputs get focus, do something*/ +.form-container input[type=text]:focus, .form-container input[type=password]:focus { + background-color: #ddd; + outline: none; +} + +/* Set a style for the submit/login button */ +.form-container .btn { + background-color: #04AA6D; + color: white; + border: none; + cursor: pointer; + margin-bottom:10px; + opacity: 0.8; + height:30px; +} +.btn, form-container > select{ + width: 150px; + margin-left:60px; +} +.padDiv{ + padding:25px; +} +/* Add a red background color to the cancel button */ +.form-container .cancel { + background-color: red; +} + +/* Add some hover effects to buttons */ +.form-container .btn:hover, .open-button:hover { + opacity: 1; +} +#rangeVal{ + width:50px; +} +input[type="radio"], +input[type="checkbox"] { + width: 15px; + height: 15px; + accent-color: green; +} +#sig_operator{ + padding-left: 30px; +} +/***************End popup forms *********************/ +/***********************Three Charts ************************/ +#app_header{ + border-style: none; + grid-column: 1/3; + grid-row:1; + display: grid; + grid-template-columns:1fr 1fr; + background-color:#3E3AF2; +} +#app_title{ + text-align:center; + width:1500px; + margin:10px; + color:#F5F3AD; +} +/* This class if for a child element of indicator_output created in general.js */ +.legend { + width: 150px; + padding: 1px; + font-size: 14px; + background-color: rgba(255, 255, 255, 0.23); + text-align: left; + pointer-events: none; +} +.a1{ + position: absolute; + z-index:98; + width: 200px; + padding: 15px; + border-style:none; +} +#indicator_output{ + overflow-y: scroll; + width: 300px; + height:50px; + padding: 3px; + border-style: solid; +} + +#chart_controls{ + border-style:none; + width: 200px; + padding: 15px; + display: grid; + grid-template-columns:700px 1fr 1fr; + +} +#indicators{ + display: none; + position: absolute; + left: 100px; top: 50px; + width: 135px; + padding: 10px; + background-color: rgb(200,100,100); + border: solid black 1px; + text-align: justify; font-size: 12px; + z-index:99; +} +#enable_indicators{ + height:20px; +} + +#chart{ + grid-column: 1; + grid-row:2; +} + + +#chart2{ + grid-column: 1; + grid-row:3; +} +#chart3{ + grid-column: 1; + grid-row:4; +} +/***************************************************/ + + +/****************Right Panel***********************/ +.collapsible { + background-color: #3E3AF2; + color: white; + cursor: pointer; + padding: 5px; + width: 100%; + border: none; + text-align: center; + outline: none; + font-size: 15px; +} + +.active, .collapsible:hover { + background-color: #0A07DF; +} + +.collapsible:after { + content: '\002B'; + color: white; + font-weight: bold; + float: right; + margin-left: 5px; +} + +.active:after { + content: "\2212"; +} + +.content { + padding: 0 18px; + max-height: 0; + min-height: 50px; + height:300px; + overflow: hidden; + transition: max-height 0.2s ease-out; + background-color: #f1f1f1; +} +.bg_red{ + background-color:#9F180F; +} +.bg_blue{ + background-color:#3E3AF2; +} + + +#right_panel{ + grid-column: 2; + grid-row:2/5; +} +#bal_content{ + display:grid; + grid-template-columns:1fr 1fr; + min-height: 100px; + min-height: 100px; +} +#balances{ + width:250px; + height:50px; + grid-row:2; + grid-column:1; + overflow: hidden; + position:relative; + bottom:20; + left:5px; +} +#balances_tbl{ +position: absolute; + top: 0; + bottom: 0; + left: 0; + right: -17px; /* Increase/Decrease this value for cross-browser compatibility */ + overflow-y: scroll; +} +#trade_content{ + margin-top:8px; +} +.new_btn{ +margin:5; +} +/***************************************************/ + + +/************Edit/Add Indicators Panel**************/ +#edit_indcr_panel{ + width: 1000px; + height: 300px; + padding: 3px; + overflow: scroll; + border-style: solid; + background: url(../static/blue_img.jpg) no-repeat center center; + background-size: cover; + grid-column: 1; +} +#edit_indcr_head{ + color: white; + width: 1025px; + display: grid; + grid-template-columns: 75px 150px repeat(8, 100px); +} +#h_name{ + width: 150px; + grid-column: 2; + text-align: center; +} +#h_properties{ + grid-column: 3/11; + text-align:center; + +} +.ierow{ + display: grid; + grid-template-columns: 75px 150px repeat(8, 100px); +} +#edit_indctr_controls{ + height:25px; + width: 75px; + grid-column: 1; + display: flex; + justify-content: center; + align-items: center; + +} +.e_btn{ + height:25px; + width:25; + font-weight: bold; + color:darkred; + background-color:EEC9C9; +} +.iename{ + color:white; + text-align:center; + width: 150px; height: 25px; + grid-column: 2; + font-weight: bold; + overflow: hidden; + display: flex; justify-content: center; align-items: center; +} +#ieprop_container{ + margin-left:20px; + grid-column: 3/11; + text-align:right; + + +} +.ieprop{ + width: 150px; + height: 25px; + overflow: hidden; + display: inline-block; + color: white; + margin-bottom:15px; +} +.ietextbox{ + width: 75px; + height: 25px; +} +.ie_value{ + width: 75px; + height: 25px; + border: 0; + outline:0; + background: transparent; + font-weight: inherit; + font-size:inherit; + line-height:inherit; + color:inherit; +} +input[type=checkbox] { + vertical-align: middle; + position: relative; + bottom: 1px; + } +#create_indcr_container{ + color:white; +} +/*******************************************************************/ \ No newline at end of file diff --git a/static/chart.js b/static/chart.js new file mode 100644 index 0000000..f5901de --- /dev/null +++ b/static/chart.js @@ -0,0 +1,130 @@ +var app_con; + +//*******************Chart********************* +//Reference the target div for the chart. Div was defined in index.html +var container = document.getElementById('chart'); +//Create a chart object +var chart = LightweightCharts.createChart(container, { + width: 1000, + height: 500, + crosshair: { + mode: LightweightCharts.CrosshairMode.Normal, + }, + priceScale: { + borderColor: 'rgba(197, 203, 206, 0.8)', + }, + timeScale: { + borderColor: 'rgba(197, 203, 206, 0.8)', + timeVisible: true, + secondsVisible: false, + barSpacing: 6 + }, + handleScroll: true +}); +bind_charts(chart); +chart.applyOptions({ + watermark: {visible: true, + color: '#DBC29E', + text: bt_data['trading_pair'], + fontSize: 30, + fontFamily: 'Roboto', + fontStyle: 'bold', + vertAlign: 'center' + } + }); +// - Create the candle stick series for our chart +var candleSeries = chart.addCandlestickSeries(); + +//Fetch price history +var price_history = fetch('http://localhost:5000/history') + .then((r) => r.json()) + .then((response) => { + return response; + }) + +//Initialise the candlestick series +price_history.then((ph) => { + //Initialise the candle data + candleSeries.setData(ph); + //Initialise indicators + indicator_init(); +}) + +/* Place functions here that need to +be run everytime a new msg is received */ +function update_on_msg(new_candle){ + // Update candlestick series + candleSeries.update(new_candle); + // Update javascript coded indicators + indicator_update_msg_received(new_candle); + // Send a copy of the data to the server + app_con.send( JSON.stringify({ message_type: "candle_data", data :new_candle })); +} + +/* Place functions that here that need to + be run everytime a candle is closed */ +function update_on_candle_close(new_candle){ + // Send a copy of the data to the server + app_con.send( JSON.stringify({ message_type: "candle_data", data :new_candle })); +} + +// Create a web socket connection to the exchange +function set_websocket(interval){ + // Connect to our app + app_con = new WebSocket('ws://localhost:5000/ws'); + app_con.onopen = () => app_con.send("Connection OK"); + + app_con.addEventListener('message', ev => { + if(ev.data){ + // Get the message received from server + msg = JSON.parse(ev.data) + // Handle a request from the server + if (msg.request) { + //handle request + console.log('Received a request from the server'); + console.log(msg.request); + } + // Handle a reply from the server + if (msg.reply) { + // Handle indicator updates + if (msg.reply == 'i_updates'){ + // console.log(msg.data); + indicator_update(msg.data) + } + } + } + }) + + + var ws = "wss://stream.binance.com:9443/ws/btcusdt@kline_" + interval; + var binanceSocket = new WebSocket(ws); + + // Set the on-message call-back for the socket + binanceSocket.onmessage = function (event) { + // Convert message to json obj + var message = JSON.parse(event.data); + // Isolate the candle data from message + var candlestick = message.k; + //console.log(message.k) + // Reformat data for lightweight charts + new_candle={ + time: candlestick.t / 1000, + open: candlestick.o, + high: candlestick.h, + low: candlestick.l, + close: candlestick.c, + vol: candlestick.V + }; + //Update frequently updated objects + update_on_msg(new_candle); + // Only call if the new candle received a new time stamp. + // Update the price history and per candle updated objects. + price_history.then((ph) => { + if ( new_candle.time > ph[ph.length-1].time) { + ph.push(new_candle); + update_on_candle_close(new_candle); + } + }); + } + +} \ No newline at end of file diff --git a/static/general.js b/static/general.js new file mode 100644 index 0000000..f4246dd --- /dev/null +++ b/static/general.js @@ -0,0 +1,103 @@ +// +//class Backtesting { +// constructor() { +// this.height = height; +// } +//} +// +//class Trade { +// constructor() { +// this.height = height; +// } +//} +// +//class Controls { +// constructor() { +// this.height = height; +// } +//} +// +//class Strategies { +// constructor() { +// this.height = height; +// } +//} +// +//class Signals { +// constructor() { +// this.height = height; +// } +//} +// +//class Exchange_Info { +// constructor() { +// this.height = height; +// } +//} +// +//class Alerts { +// constructor() { +// this.height = height; +// } +//} +// +//class Header { +// constructor() { +// this.height = height; +// } +//} +// +//class Statistics { +// constructor() { +// this.height = height; +// } +//} +// +//class Indicator_Output { +// constructor() { +// this.height = height; +// } +//} + + +class User_Interface{ +/* This contains the entire User interface.*/ + constructor() { + /* Create the objects that contain all the + data and scripts required for each section of + the User interface. */ + + /* Data object is responsible for fetching and maintaining + up-to-date configurable and variable data for the UI */ + this.data = new Data(); + + /* Charts object is responsible for maintaining the + data visualisation area in the UI. */ + let chart_init_data = { + chart1_id : this.data.chart1_id, + chart2_id : this.data.chart2_id, + chart3_id : this.data.chart3_id, + trading_pair : this.data.trading_pair, + price_history : this.data.price_history + } + this.charts = new Charts(chart_init_data); + + /* The Indicators object is responsible for maintaining and + interacting with the indicator section. As well as + updating the display on the charts.*/ + let ind_init_data = { + indicators: this.data.indicators, + indicator_data: this.data.indicator_data + } + /* Pass the initialization for the indicators and a reference to + the charts object so the indicators can update it directly.*/ + this.indicators = new Indicators(this.charts, ind_init_data); + + this.communicate = new Communication( + this.data.interval, + this.data.candle_update, + this.data.candle_close, + this.indicators.update); + } +} +UI = new User_Interface(); diff --git a/static/lightweight-charts.standalone.production.js b/static/lightweight-charts.standalone.production.js new file mode 100644 index 0000000..1ae9d1f --- /dev/null +++ b/static/lightweight-charts.standalone.production.js @@ -0,0 +1,15 @@ + /*! + * @license + * TradingView Lightweight Charts v2.1.0-dev+202005300152 + * Copyright (c) 2019 TradingView, Inc. + * Licensed under Apache License 2.0 https://www.apache.org/licenses/LICENSE-2.0 + */ +!function(){"use strict";var t,i;function n(t,i){var n,s=((n={})[0]=[],n[1]=[t.lineWidth,t.lineWidth],n[2]=[2*t.lineWidth,2*t.lineWidth],n[3]=[6*t.lineWidth,6*t.lineWidth],n[4]=[t.lineWidth,4*t.lineWidth],n)[i];t.setLineDash(s)}function s(t,i,n,s){t.beginPath();var h=t.lineWidth%2?.5:0;t.moveTo(n,i+h),t.lineTo(s,i+h),t.stroke()}!function(t){t[t.Simple=0]="Simple",t[t.WithSteps=1]="WithSteps"}(t||(t={})),function(t){t[t.Solid=0]="Solid",t[t.Dotted=1]="Dotted",t[t.Dashed=2]="Dashed",t[t.LargeDashed=3]="LargeDashed",t[t.SparseDotted=4]="SparseDotted"}(i||(i={}));var h=function(t,i){return(h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var n in i)i.hasOwnProperty(n)&&(t[n]=i[n])})(t,i)};function r(t,i){function n(){this.constructor=t}h(t,i),t.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}var e=function(){return(e=Object.assign||function(t){for(var i,n=1,s=arguments.length;n0)}function M(t){return"boolean"==typeof t}function b(t){var i,n,s,h=t;if(!h||"object"!=typeof h)return h;for(n in i=Array.isArray(h)?[]:{},h)h.hasOwnProperty(n)&&(s=h[n],i[n]=s&&"object"==typeof s?b(s):s);return i}function m(t){return null!==t}function p(t){return null===t?void 0:t}var g=function(){function t(){this.t=[]}return t.prototype.i=function(t){this.t=t},t.prototype.s=function(t,i,n,s){this.t.forEach((function(h){t.save(),h.s(t,i,n,s),t.restore()}))},t}(),y=function(){function t(){}return t.prototype.s=function(t,i,n,s){t.save(),t.scale(i,i),this.h(t,n,s),t.restore()},t.prototype.u=function(t,i,n,s){t.save(),t.scale(i,i),this.o(t,n,s),t.restore()},t.prototype.o=function(t,i,n){},t}(),k=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.l=null,i}return r(i,t),i.prototype.v=function(t){this.l=t},i.prototype.h=function(t){if(null!==this.l&&null!==this.l._){var i=this.l._,n=this.l,s=function(s){t.beginPath();for(var h=i.to-1;h>=i.from;--h){var r=n.M[h];t.moveTo(r.m,r.p),t.arc(r.m,r.p,s,0,2*Math.PI)}t.fill()};t.fillStyle=n.g,s(n.k+2),t.fillStyle=n.N,s(n.k)}},i}(y);var N,x,S,D,C={from:0,to:1},T=function(){function t(t,i){this.S=new g,this.D=[],this.C=[],this.T=!0,this.A=t,this.L=i,this.S.i(this.D)}return t.prototype.B=function(t){var i=this,n=this.A.V();n.length!==this.D.length&&(this.C=n.map((function(){return{M:[{m:0,p:0,F:0,P:0}],N:"",g:i.A.O().layout.backgroundColor,k:0,_:null}})),this.D=this.C.map((function(t){var i=new k;return i.v(t),i})),this.S.i(this.D)),this.T=!0},t.prototype.I=function(t,i,n){return this.T&&(this.R(),this.T=!1),this.S},t.prototype.R=function(){var t=this,i=this.A.V(),n=this.L.W(),s=this.A.j();i.forEach((function(i,h){var r=t.C[h],e=i.U(n);if(null!==e){ +try{ + var u=f(i.q()); + r.N=i.K().Y(n).H,r.g=t.A.O().layout.backgroundColor,r.k=e.k,r.M[0].P=e.P,r.M[0].p=i.X().$(e.P,u.Z),r.M[0].F=n,r.M[0].m=s.J(n),r._=C +}catch(err){ + console.log('TODO: debug error!!: %s',err.message); +} + +}else r._=null}))},t}(),E=function(){function t(t){this.G=t}return t.prototype.s=function(t,i,h,r){if(null!==this.G){var e=this.G.it.tt,u=this.G.nt.tt;if(e||u){t.save();var o=Math.round(this.G.m*i),a=Math.round(this.G.p*i),f=Math.ceil(this.G.st*i),l=Math.ceil(this.G.ht*i);t.lineCap="butt",e&&o>=0&&(t.lineWidth=Math.floor(this.G.it.rt*i),t.strokeStyle=this.G.it.et,t.fillStyle=this.G.it.et,n(t,this.G.it.ut),function(t,i,n,s){t.beginPath();var h=t.lineWidth%2?.5:0;t.moveTo(i+h,n),t.lineTo(i+h,s),t.stroke()}(t,o,0,l)),u&&a>=0&&(t.lineWidth=Math.floor(this.G.nt.rt*i),t.strokeStyle=this.G.nt.et,t.fillStyle=this.G.nt.et,n(t,this.G.nt.ut),s(t,a,0,f)),t.restore()}}},t}(),A=function(){function t(t){this.T=!0,this.ot={it:{rt:1,ut:0,et:"",tt:!1},nt:{rt:1,ut:0,et:"",tt:!1},st:0,ht:0,m:0,p:0},this.at=new E(this.ot),this.ft=t}return t.prototype.B=function(){this.T=!0},t.prototype.I=function(t,i){return this.T&&this.R(),this.at},t.prototype.R=function(){var t=this.ft.tt(),i=f(this.ft.lt()),n=i.ct().O().crosshair,s=this.ot;s.nt.tt=t&&this.ft.vt(i),s.it.tt=t&&this.ft._t(),s.nt.rt=n.horzLine.width,s.nt.ut=n.horzLine.style,s.nt.et=n.horzLine.color,s.it.rt=n.vertLine.width,s.it.ut=n.vertLine.style,s.it.et=n.vertLine.color,s.st=i.dt(),s.ht=i.wt(),s.m=this.ft.Mt(),s.p=this.ft.bt()},t}(),L={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",feldspar:"#d19275",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslateblue:"#8470ff",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",violetred:"#d02090",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function B(t){return function(t,i,n){return w(i)||in?n:Math.round(i)}(0,t,255)}function V(t){return function(t,i,n){return w(i)||in?n:Math.round(1e4*i)/1e4}(0,t,1)}function z(t){(t=t.toLowerCase())in L&&(t=L[t]);var i,n,s=(i=t,null!==(n=S.re.exec(i))?S.parse(n):null);if(null!==s)return s;var h=function(t){var i=x.re.exec(t);return null!==i?x.parse(i):null}(t);if(null!==h)return h;var r=function(t){var i=N.re.exec(t);return null!==i?N.parse(i):null}(t);if(null!==r)return r;var e=function(t){var i=D.re.exec(t);return null!==i?D.parse(i):null}(t);return null!==e?[e[0],e[1],e[2]]:null}function F(t){var i=z(t);if(null!==i)return i;throw new Error("Passed color string "+t+" does not match any of the known color representations")}function P(t,i){if(i<0||i>255)throw new Error("invalid threshold value, valid values are [0, 255]");return function(t){return.199*t[0]+.687*t[1]+.114*t[2]}(t)>=i?"white":"black"}function O(t){return function(t){return 0===t.indexOf("#")}(t)?t:(n=F(t),s=1,"rgba("+(i=[n[0],n[1],n[2],V(s)])[0]+", "+i[1]+", "+i[2]+", "+i[3]+")");var i,n,s}function I(t){return"black"===P(F(t),160)?"white":"black"}function R(t,i,n,s,h,r){t.fillRect(i,n,r,h),t.fillRect(i+r,n,s-2*r,r),t.fillRect(i+r,n+h-r,s-2*r,r),t.fillRect(i+s-r,n,r,h)}function W(t,i,n){t.save(),t.scale(i,i),n(),t.restore()}function j(t,i,n,s,h,r){t.save(),t.globalCompositeOperation="copy",t.fillStyle=r,t.fillRect(i,n,s,h),t.restore()}!function(t){t.re=/^#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])$/,t.parse=function(t){return[B(parseInt(t[1]+t[1],16)),B(parseInt(t[2]+t[2],16)),B(parseInt(t[3]+t[3],16))]}}(N||(N={})),function(t){t.re=/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,t.parse=function(t){return[B(parseInt(t[1],16)),B(parseInt(t[2],16)),B(parseInt(t[3],16))]}}(x||(x={})),function(t){t.re=/^rgb\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*\)$/,t.parse=function(t){return[B(parseInt(t[1],10)),B(parseInt(t[2],10)),B(parseInt(t[3],10))]}}(S||(S={})),function(t){t.re=/^rgba\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?[\d]{0,10}(?:\.\d+)?)\s*\)$/,t.parse=function(t){return[B(parseInt(t[1],10)),B(parseInt(t[2],10)),B(parseInt(t[3],10)),V(parseFloat(t[4]))]}}(D||(D={}));var U,q=function(){function t(t,i){this.v(t,i)}return t.prototype.v=function(t,i){this.G=t,this.pt=i},t.prototype.s=function(t,i,n,s,h,r){if(this.G.tt){t.font=i.gt;var e=this.G.yt?i.kt:0,u=i.Nt,o=i.xt,a=i.St,f=i.Dt,l=i.Ct,c=this.G.Tt,v=Math.ceil(n.Et(t,c)),_=i.At,d=i.Lt+o+a,w=Math.ceil(.5*d),M=u+v+f+l+e,b=this.pt.Bt;this.pt.Vt&&(b=this.pt.Vt);var m,p,g=(b=Math.round(b))-w,y=g+d,k="right"===h,N=k?s:0,x=Math.ceil(s*r),S=N;if(t.fillStyle=O(this.pt.zt),t.lineWidth=1,t.lineCap="butt",c){k?(m=N-e,p=(S=N-M)+l):(S=N+M,m=N+e,p=N+u+e+f);var D=Math.max(1,Math.floor(r)),C=Math.max(1,Math.floor(u*r)),T=k?x:0,E=Math.round(g*r),A=Math.round(S*r),L=Math.round(b*r)-Math.floor(.5*r),B=L+D+(L-E),V=Math.round(m*r);t.save(),t.beginPath(),t.moveTo(T,E),t.lineTo(A,E),t.lineTo(A,B),t.lineTo(T,B),t.fill(),t.fillStyle=this.G.Ft,t.fillRect(k?x-C:0,E,C,B-E),this.G.yt&&(t.fillStyle=this.pt.et,t.fillRect(T,L,V-T,D)),t.textAlign="left",t.fillStyle=this.pt.et,W(t,r,(function(){t.fillText(c,p,y-a-_)})),t.restore()}}},t.prototype.wt=function(t,i){return this.G.tt?t.Lt+t.xt+t.St:0},t}(),H=function(){function t(t){this.Pt={Bt:0,et:"#FFF",zt:"#000"},this.Ot={Tt:"",tt:!1,yt:!0,Ft:""},this.It={Tt:"",tt:!1,yt:!1,Ft:""},this.T=!0,this.Rt=new(t||q)(this.Ot,this.Pt),this.Wt=new(t||q)(this.It,this.Pt)}return t.prototype.Tt=function(){return this.Ot.Tt},t.prototype.zt=function(){return this.Pt.zt},t.prototype.et=function(){return I(this.zt())},t.prototype.Bt=function(){return this.jt(),this.Pt.Bt},t.prototype.B=function(){this.T=!0},t.prototype.wt=function(t,i){return void 0===i&&(i=!1),Math.max(this.Rt.wt(t,i),this.Wt.wt(t,i))},t.prototype.Ut=function(){return this.Pt.Vt||0},t.prototype.qt=function(t){this.Pt.Vt=t},t.prototype.Ht=function(){return this.jt(),this.Ot.tt||this.It.tt},t.prototype.Yt=function(){return this.jt(),this.Ot.tt},t.prototype.Kt=function(){return this.jt(),this.It.tt},t.prototype.I=function(){return this.jt(),this.Rt.v(this.Ot,this.Pt),this.Wt.v(this.It,this.Pt),this.Rt},t.prototype.$t=function(){return this.jt(),this.Rt.v(this.Ot,this.Pt),this.Wt.v(this.It,this.Pt),this.Wt},t.prototype.jt=function(){this.T&&(this.Xt(this.Ot,this.It,this.Pt),this.T=!1)},t}(),Y=function(t){function i(i,n,s){var h=t.call(this)||this;return h.ft=i,h.Zt=n,h.Jt=s,h}return r(i,t),i.prototype.Xt=function(t,i,n){t.tt=!1;var s=this.ft.O().horzLine;if(s.labelVisible){var h=this.Zt.q();if(this.ft.tt()&&!this.Zt.Gt()&&null!==h){n.zt=s.labelBackgroundColor,n.et=I(s.labelBackgroundColor);var r=this.Jt(this.Zt);n.Bt=r.Bt,t.Tt=this.Zt.Qt(r.P,h),t.tt=!0}}},i}(H),K=/[1-9]/g,$=function(){function t(){this.G=null}return t.prototype.v=function(t){this.G=t},t.prototype.s=function(t,i,n){var s=this;if(null!==this.G&&!1!==this.G.tt&&0!==this.G.Tt.length){t.font=i.gt;var h=Math.round(i.ti.Et(t,this.G.Tt,K));if(!(h<=0)){t.save();var r=i.ii,e=h+2*r,u=e/2,o=this.G.dt,a=this.G.Bt,l=Math.floor(a-u)+.5;l<0?(a+=Math.abs(0-l),l=Math.floor(a-u)+.5):l+e>o&&(a-=Math.abs(o-(l+e)),l=Math.floor(a-u)+.5);var c=l+e,v=0+i.Nt+i.xt+i.Lt+i.St;t.fillStyle=this.G.zt;var _=Math.round(l*n),d=Math.round(0*n),w=Math.round(c*n),M=Math.round(v*n);t.fillRect(_,d,w-_,M-d);var b=Math.round(this.G.Bt*n),m=d,p=Math.round((m+i.Nt+i.kt)*n);t.fillStyle=this.G.et;var g=Math.max(1,Math.floor(n)),y=Math.floor(.5*n);t.fillRect(b-y,m,g,p-m);var k=v-i.At-i.St;t.textAlign="left",t.fillStyle=this.G.et,W(t,n,(function(){t.fillText(f(s.G).Tt,l+r,k)})),t.restore()}}},t}(),X=function(t){function i(i,n,s){var h=t.call(this)||this;return h.T=!0,h.at=new $,h.ot={tt:!1,zt:"#4c525e",et:"white",Tt:"",dt:0,Bt:NaN},h.L=i,h.ni=n,h.Jt=s,h}return r(i,t),i.prototype.B=function(){this.T=!0},i.prototype.I=function(){return this.T&&(this.R(),this.T=!1),this.at.v(this.ot),this.at},i.prototype.R=function(){var t=this.ot;t.tt=!1;var i=this.L.O().vertLine;if(i.labelVisible){var n=this.ni.j();if(!n.Gt()){var s=n.si(this.L.W());t.dt=n.dt();var h=this.Jt();h.F&&(t.Bt=h.Bt,t.Tt=n.hi(f(s)),t.tt=!0,t.zt=i.labelBackgroundColor,t.et=I(i.labelBackgroundColor))}}},i}(function(){function t(){this.ri="",this.ei="#585858",this.ui=0}return t.prototype.Tt=function(){return this.ri},t.prototype.zt=function(){return this.ei},t.prototype.et=function(){return"black"===P(F(this.ei),150)?"white":"black"},t.prototype.Bt=function(){return this.ui},t}()),Z=function(){function t(){this.oi=null,this.ai=0}return t.prototype.fi=function(){return this.ai},t.prototype.li=function(t){this.ai=t},t.prototype.X=function(){return this.oi},t.prototype.ci=function(t){this.oi=t},t.prototype.vi=function(t,i){return[]},t.prototype._i=function(t){return[]},t.prototype.di=function(){return[]},t}();!function(t){t[t.Normal=0]="Normal",t[t.Magnet=1]="Magnet"}(U||(U={}));var J=function(t){function i(i,n){var s=t.call(this)||this;s.wi=null,s.Mi=NaN,s.bi=0,s.mi=!0,s.pi=new Map,s.gi=!1,s.yi=NaN,s.ki=NaN,s.Ni=NaN,s.xi=NaN,s.ni=i,s.Si=n,s.Di=new T(i,s);var h,r;s.Ci=(h=function(){return s.Mi},r=function(){return s.ki},function(t){var i=r(),n=h();if(t===f(s.wi).Ti())return{P:n,Bt:i};var e=f(t.q());return{P:t.Ei(i,e),Bt:i}});var e=function(t,i){return function(){return{F:s.ni.j().si(t()),Bt:i()}}}((function(){return s.bi}),(function(){return s.Mt()}));return s.Ai=new X(s,i,e),s.Li=new A(s),s}return r(i,t),i.prototype.Bi=function(){return this.bi},i.prototype.O=function(){return this.Si},i.prototype.Vi=function(t,i){this.Ni=t,this.xi=i},i.prototype.zi=function(){this.Ni=NaN,this.xi=NaN},i.prototype.Fi=function(){return this.Ni},i.prototype.Pi=function(){return this.xi},i.prototype.Oi=function(t,i,n){this.gi||(this.gi=!0),this.mi=!0,this.Ii(t,i,n)},i.prototype.W=function(){return this.bi},i.prototype.Mt=function(){return this.yi},i.prototype.bt=function(){return this.ki},i.prototype.tt=function(){return this.mi},i.prototype.Ri=function(){this.mi=!1,this.Wi(),this.Mi=NaN,this.yi=NaN,this.ki=NaN,this.wi=null,this.zi()},i.prototype._i=function(t){return null!==this.wi?[this.Li,this.Di]:[]},i.prototype.vt=function(t){return t===this.wi&&this.Si.horzLine.visible},i.prototype._t=function(){return this.Si.vertLine.visible},i.prototype.vi=function(t,i){this.mi&&this.wi===t||this.pi.clear();var n=[];return this.wi===t&&n.push(this.ji(this.pi,i,this.Ci)),n},i.prototype.di=function(){return this.mi?[this.Ai]:[]},i.prototype.lt=function(){return this.wi},i.prototype.Ui=function(){this.pi.forEach((function(t){return t.B()})),this.Ai.B(),this.Di.B()},i.prototype.qi=function(t){return t&&!t.Ti().Gt()?t.Ti():null},i.prototype.Ii=function(t,i,n){this.Hi(t,i,n)&&this.Ui()},i.prototype.Hi=function(t,i,n){var s=this.yi,h=this.ki,r=this.Mi,e=this.bi,u=this.wi,o=this.qi(n);this.bi=t,this.yi=isNaN(t)?NaN:this.ni.j().J(t),this.wi=n;var a=null!==o?o.q():null;return null!==o&&null!==a?(this.Mi=i,this.ki=o.$(i,a)):(this.Mi=NaN,this.ki=NaN),s!==this.yi||h!==this.ki||e!==this.bi||r!==this.Mi||u!==this.wi},i.prototype.Wi=function(){var t=this.ni.V().map((function(t){return t.Ki().Yi()})).filter(m),i=0===t.length?null:Math.max.apply(Math,t);this.bi=null!==i?i:NaN},i.prototype.ji=function(t,i,n){var s=t.get(i);return void 0===s&&(s=new Y(this,i,n),t.set(i,s)),s},i}(Z),G=".",Q="'";function tt(t,i){if(!v(t))return"n/a";if(!_(i))throw new TypeError("invalid length");if(i<0||i>16)throw new TypeError("invalid length");if(0===i)return t.toString();return("0000000000000000"+t.toString()).slice(-i)}var it=function(){function t(t,i,n,s){if(i||(i=1),v(t)&&_(t)||(t=100),t<0)throw new TypeError("invalid base");this.Zt=t,this.$i=i,this.Xi=s,n&&void 0!==s&&s>0&&2!==s&&4!==s&&8!==s||(this.Zi=n,this.Ji())}return t.prototype.Gi=function(t){var i=t<0?"−":"";return t=Math.abs(t),this.Zi?i+this.Qi(t):i+this.tn(t)},t.prototype.Ji=function(){if(this.in=0,this.Zt>0&&this.$i>0){var t=this.Zt;for(this.Zi&&this.Xi&&(t/=this.Xi);t>1;)t/=10,this.in++}},t.prototype.tn=function(t){var i;i=this.Zi?Math.pow(10,this.in||0):this.Zt/this.$i;var n=Math.floor(t),s="",h=void 0!==this.in?this.in:NaN;if(i>1){var r=+(Math.round(t*i)-n*i).toFixed(this.in);r>=i&&(r-=i,n+=1),s=G+tt(+r.toFixed(this.in)*this.$i,h)}else n=Math.round(n*i)/i,h>0&&(s=G+tt(0,h));return n.toFixed(0)+s},t.prototype.Qi=function(t){var i=this.Zt/this.$i,n=Math.floor(t),s=Math.round(t*i)-n*i;if(s===i&&(s=0,n+=1),!this.in)throw new Error("_fractionalLength is not calculated");var h="";if(this.Xi){var r=s%this.Xi,e=tt(s=(s-r)/this.Xi,this.in),u=2===this.Xi?["0","5"][r]:8===this.Xi?["0","1","2","3","4","5","6","7"][r]:["0","2","5","7"][r];h=e+Q+u}else h=tt(s*this.$i,this.in);return n.toString()+Q+h},t}(),nt=function(t){function i(i){return void 0===i&&(i=100),t.call(this,i)||this}return r(i,t),i.prototype.Gi=function(i){return t.prototype.Gi.call(this,i)+"%"},i}(it),st=function(){function t(){this.nn=[]}return t.prototype.sn=function(t,i,n){var s={hn:t,rn:i,en:!0===n};this.nn.push(s)},t.prototype.un=function(t){var i=this.nn.findIndex((function(i){return t===i.hn}));i>-1&&this.nn.splice(i,1)},t.prototype.on=function(t){this.nn=this.nn.filter((function(i){return i.rn===t}))},t.prototype.an=function(t,i){var n=u(this.nn);this.nn=this.nn.filter((function(t){return!t.en})),n.forEach((function(n){return n.hn(t,i)}))},t.prototype.fn=function(){return this.nn.length>0},t.prototype.ln=function(){this.nn=[]},t}(),ht=function(){function t(t,i){this.cn=t,this.vn=i}return t.prototype._n=function(t){return null!==t&&(this.cn===t.cn&&this.vn===t.vn)},t.prototype.dn=function(){return new t(this.cn,this.vn)},t.prototype.wn=function(){return this.cn},t.prototype.Mn=function(t){this.cn=t},t.prototype.bn=function(){return this.vn},t.prototype.mn=function(t){this.vn=t},t.prototype.pn=function(){return this.vn-this.cn},t.prototype.Gt=function(){return this.vn===this.cn||Number.isNaN(this.vn)||Number.isNaN(this.cn)},t.prototype.gn=function(i){return null===i?this:new t(Math.min(this.wn(),i.wn()),Math.max(this.bn(),i.bn()))},t.prototype.yn=function(t,i){this.cn=Math.min(this.cn,t),this.vn=Math.max(this.vn,i)},t.prototype.kn=function(t,i){this.cn=t,this.vn=i},t.prototype.Nn=function(t){if(v(t)&&0!==this.vn-this.cn){var i=.5*(this.vn+this.cn),n=this.vn-i,s=this.cn-i;n*=t,s*=t,this.vn=i+n,this.cn=i+s}},t.prototype.xn=function(t){v(t)&&(this.vn+=t,this.cn+=t)},t.prototype.Sn=function(t){return t.wn()>this.cn&&t.bn()1;i/=10)if(i%10!=0)return!1;return!0}(this.Tn))this.An=[2,2.5,2];else{this.An=[];for(var n=this.Tn;1!==n;){if(n%2==0)this.An.push(2),n/=2;else{if(n%5!=0)throw new Error("unexpected base");this.An.push(2),this.An.push(2.5),n/=5}if(this.An.length>100)throw new Error("something wrong with base")}}}return t.prototype.Ln=function(t,i,n){for(var s,h,r,e=0===this.Tn?0:1/this.Tn,u=Math.pow(10,Math.max(0,Math.ceil(ut(t-i)))),o=0,a=this.En[0];;){var f=et(u,e,1e-9)&&u>e+1e-9,l=et(u,n*a,1e-9),c=et(u,1,1e-9);if(!(f&&l&&c))break;u/=a,a=this.En[++o%this.En.length]}if(u<=e+1e-9&&(u=e),u=Math.max(1,u),this.An.length>0&&(s=u,h=1,r=1e-9,Math.abs(s-h)e+1e-9;)u/=a,a=this.An[++o%this.An.length];return u},t}(),mt=function(){function t(t,i,n,s){this.Bn=[],this.Zt=t,this.Tn=i,this.Vn=n,this.zn=s}return t.prototype.Fn=function(t){if(t<0)throw new Error("base < 0");this.Tn=t},t.prototype.Ln=function(t,i){if(t=a?1:-1,v=null,_=0,d=o-(l+=l<0?f:0);d>a;d-=f){var w=this.zn(d,i,!0);null!==v&&Math.abs(w-v)u||(_1)throw new Error("Invalid top margin - expect value between 0 and 1, given="+i);if(n<0||n>1||i+n>1)throw new Error("Invalid bottom margin - expect value between 0 and 1, given="+n);if(i+n>1)throw new Error("Invalid margins - sum of margins must be less than 1, given="+(i+n));this.ks(),this.us=null}},t.prototype.Ns=function(){return this.ls},t.prototype.xs=function(){return this.Si.autoScale},t.prototype.Un=function(){return 1===this.Si.mode},t.prototype.Ss=function(){return 2===this.Si.mode},t.prototype.Ds=function(){return 3===this.Si.mode},t.prototype.ys=function(){return{Cs:this.Si.autoScale,Ts:this.Si.invertScale,ys:this.Si.mode}},t.prototype.gs=function(t){var i=this.ys(),n=null;void 0!==t.Cs&&(this.Si.autoScale=t.Cs),void 0!==t.ys&&(this.Si.mode=t.ys,2!==t.ys&&3!==t.ys||(this.Si.autoScale=!0),this.Jn.Gn=!1),1===i.ys&&t.ys!==i.ys&&(!function(t){if(null===t)return!1;var i=dt(t.wn()),n=dt(t.bn());return isFinite(i)&&isFinite(n)}(this.$n)?this.Si.autoScale=!0:null!==(n=function(t){if(null===t)return null;var i=dt(t.wn()),n=dt(t.bn());return new ht(i,n)}(this.$n))&&this.Es(n)),1===t.ys&&t.ys!==i.ys&&null!==(n=wt(this.$n))&&this.Es(n);var s=i.ys!==this.Si.mode;s&&(2===i.ys||this.Ss())&&this.ps(),s&&(3===i.ys||this.Ds())&&this.ps(),void 0!==t.Ts&&i.Ts!==t.Ts&&(this.Si.invertScale=t.Ts,this.As()),this.hs.an(i,this.ys())},t.prototype.Ls=function(){return this.hs},t.prototype.Lt=function(){return this.vs.fontSize},t.prototype.wt=function(){return this.Hn},t.prototype.Bs=function(t){this.Hn!==t&&(this.Hn=t,this.ks(),this.us=null)},t.prototype.Vs=function(){if(this.Yn)return this.Yn;var t=this.wt()-this.zs()-this.Fs();return this.Yn=t,t},t.prototype.Ps=function(){return this.Kn},t.prototype.Os=function(){return this.Is(),this.$n},t.prototype.Rs=function(){return this.Zn},t.prototype.Es=function(t,i,n){var s=this.$n;(i||null===s&&null!==t||null!==s&&!s._n(t))&&(this.us=null,this.$n=t,n||this.Zn.an(s,t))},t.prototype.Gt=function(){return this.Is(),0===this.Hn||!this.$n||this.$n.Gt()},t.prototype.Ws=function(t){return this.Ts()?t:this.wt()-1-t},t.prototype.$=function(t,i){return this.Ss()?t=ft(t,i):this.Ds()&&(t=ct(t,i)),this.Ms(t,i)},t.prototype.js=function(t,i,n){this.Is();for(var s=this.Fs(),h=f(this.Os()),r=h.wn(),e=h.bn(),u=this.Vs()-1,o=this.Ts(),a=u/(e-r),l=void 0===n?0:n.from,c=void 0===n?t.length:n.to,v=this.Us(),_=l;_= left"),this.jh=t,this.Uh=i}return t.prototype.ph=function(){return this.jh},t.prototype.gh=function(){return this.Uh},t.prototype.qh=function(){return this.Uh-this.jh+1},t.prototype.Hh=function(t){return this.jh<=t&&t<=this.Uh},t.prototype._n=function(t){return this.jh===t.ph()&&this.Uh===t.gh()},t}();function Vt(t,i){return null===t||null===i?t===i:t._n(i)}function zt(t,i){return t.Bi-i.Bi}var Ft,Pt=function(){function t(){this.Yh=1/0,this.Kh=-1/0,this.$h=new Map,this.Xh=[],this.Zh=new st,this.Fh=null,this.Jh=NaN}return t.prototype.Gh=function(){this.$h.clear(),this.Xh=[],this.Yh=1/0,this.Kh=-1/0,this.Fh=null,this.Zh.an()},t.prototype.gn=function(t){for(var i=this.Xh,n={},s=0,h=t;se&&(this.Yh=e),this.Kh2;){if(1e3*a(this.$h.get(i)).F.timestamp===t)return i;if(1e3*a(this.$h.get(n)).F.timestamp===t)return n;var s=Math.round((i+n)/2);1e3*a(this.$h.get(s)).F.timestamp>t?n=s:i=s}return i},t.prototype.sr=function(t,i){var n=Math.ceil(i/t);if(this.Jh===n&&this.Fh)return this.Fh;this.Jh=n;for(var s=[],h=this.Xh.length;h--;)if(this.Xh[h]){var r=s;s=[];for(var e=r.length,u=0,o=a(this.Xh[h]),f=o.length,l=1/0,c=-1/0,v=0;v=n&&d-c>=n&&(s.push(_),c=d)}for(;u=this.Kh&&this.Kh--,this.Khthis.hr.length){s=e-this.hr.length;for(var u=r;uthis.hr[this.hr.length-1].timestamp)return i?this.hr.length-1:null;for(var n=0;n=i[n])return n;var s=0,h=i[s];if(ts+1;){var r=s+n>>1,e=i[r];if(e.timestamp>t.timestamp)n=r;else{if(!(e.timestamp=1,o=u?t:s+(t-s)*e;n.Ir(o),u||setTimeout(r,20)};r()},t.prototype.B=function(t,i,n){if(this.Nr=!0,i.length>0){var s=this.pr.er();this.pr.gn(t,i),this.Lr<0&&this.pr.er()===s+1&&(this.Lr-=1)}this.gr.gn(n),this.Jr()},t.prototype.Me=function(){return this.xr},t.prototype.be=function(){return this.Sr},t.prototype.me=function(){return this.Dr},t.prototype.Gr=function(){return this.mr||0},t.prototype.pe=function(t){var i=t.qh();this.Xr(this.br/i),this.Lr=t.gh()-this.Gr(),this.Jr(),this.Nr=!0,this.ni.ne(),this.ni.se()},t.prototype.ge=function(){var t=this.pr.ur(),i=this.pr.Yi();null!==t&&null!==i&&this.pe(new Bt(t,i+this.Si.rightOffset))},t.prototype.ye=function(t){var i=new Bt(t.from,t.to);this.pe(i)},t.prototype.hi=function(t){return void 0!==this._s.timeFormatter?this._s.timeFormatter(t.businessDay||t.timestamp):this.ke.Gi(new Date(1e3*t.timestamp))},t.prototype.Ne=function(t){return(this.br+1-t)/this.Br},t.prototype.ie=function(t){var i=this.Ne(t),n=this.Gr()+this.Lr-i;return Math.round(1e6*n)/1e6},t.prototype.Xr=function(t){var i=this.Br;this.Br=t,this.Zr(),i!==this.Br&&(this.Nr=!0,this.xe())},t.prototype.Wr=function(){if(this.Nr)if(this.Nr=!1,this.Gt())this.Se(It.Mr());else{var t=this.Gr(),i=this.br/this.Br,n=this.Lr+t,s=new Bt(n-i+1,n);this.Se(new It(s))}},t.prototype.Zr=function(){if(this.Br<.5&&(this.Br=.5,this.Nr=!0),0!==this.br){var t=.5*this.br;this.Br>t&&(this.Br=t,this.Nr=!0)}},t.prototype.Jr=function(){var t=this.De();this.Lr>t&&(this.Lr=t,this.Nr=!0);var i=this.Ce();null!==i&&this.Lr=1e-15&&t<1?t.toFixed(this.su).replace(/\.?0+$/,""):String(t)).replace(/(\.[1-9]*)0+$/,(function(t,i){return i}))},t}();function Jt(t,i,n,s){if(0!==i.length){var h=i[s.from].m,r=i[s.from].p;t.moveTo(h,r);for(var e=s.from+1;ethis.l._.from&&(t.lineTo(this.l.M[this.l._.to-1].m,this.l.ru),t.lineTo(this.l.M[this.l._.from].m,this.l.ru)),t.closePath();var i=t.createLinearGradient(0,0,0,this.l.ru);i.addColorStop(0,this.l.uu),i.addColorStop(1,this.l.ou),t.fillStyle=i,t.fill()}},i}(y),Qt=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.l=null,i}return r(i,t),i.prototype.v=function(t){this.l=t},i.prototype.h=function(t){null!==this.l&&0!==this.l.M.length&&null!==this.l._&&(t.lineCap="square",t.lineWidth=this.l.rt,n(t,this.l.ut),t.strokeStyle=this.l.N,t.lineJoin="miter",t.beginPath(),Jt(t,this.l.M,this.l.eu,this.l._),t.stroke())},i}(y);function ti(t,i,n,s,h){void 0===s&&(s=0),void 0===h&&(h=t.length);for(var r=h-s;0>1,u=s+e;n(t[u],i)?(s=u+1,r-=e+1):r=e}return s}function ii(t,i,n,s,h){void 0===s&&(s=0),void 0===h&&(h=t.length);for(var r=h-s;0>1,u=s+e;n(i,t[u])?r=e:(s=u+1,r-=e+1)}return s}function ni(t,i){return t.F0&&r=s&&(u=r-1),e>0&&e=2)Math.floor(i)%2!=this.Cu%2&&this.Cu--;this.Tu=this.G.Eu?Math.min(this.Cu,Math.floor(i)):this.Cu;for(var h=null,r=this.G._.from;rc+_-1&&(M=(b=c+_-1)-f+1),t.fillRect(w,M,a-w,b-M+1)}var m=o+d,p=Math.max(c,Math.round(e.$s*i)-u),g=p+f-1;g>c+_-1&&(p=(g=c+_-1)-f+1),t.fillRect(l+1,p,m-l,g-p+1)}}}},t}(),ai=function(t){function i(i,n){return t.call(this,i,n,!1)||this}return r(i,t),i.prototype.gu=function(t,i,n){i.Qr(this.lu,p(this.cu)),t.qs(this.lu,n,p(this.cu))},i.prototype.Lu=function(t,i,n){return{F:t,open:i.Z[0],high:i.Z[1],low:i.Z[2],close:i.Z[3],m:NaN,Hs:NaN,Ys:NaN,Ks:NaN,$s:NaN}},i.prototype.Mu=function(){var t=this,i=[],n=this.vu.K();this.vu.Ki().Nu((function(s,h){var r=t.xu(s,h,n);return i.push(r),!1})),this.lu=i},i}(ri),fi=function(t){function i(i,n){var s=t.call(this,i,n)||this;return s.at=new oi,s}return r(i,t),i.prototype.I=function(t,i){this.wu();var n=this.vu.O(),s={Ki:this.lu,he:this._u.j().he(),Au:n.openVisible,Eu:n.thinBars,_:this.cu};return this.at.v(s),this.at},i.prototype.xu=function(t,i,n){return e(e({},this.Lu(t,i,n)),{et:n.Y(t).H})},i}(ai),li=function(){function t(){this.G=null,this.Cu=0}return t.prototype.v=function(t){this.G=t},t.prototype.s=function(t,i,n,s){if(null!==this.G&&0!==this.G.Ki.length&&null!==this.G._){if(this.Cu=function(t,i){var n=Math.floor(.8*t*i),s=Math.floor(t*i),h=Math.min(n,s-1);return Math.max(1,h)}(this.G.he,i),this.Cu>=2)Math.floor(i)%2!=this.Cu%2&&this.Cu--;var h=this.G.Ki;this.G.Bu&&this.Vu(t,h,this.G._,i),this.G.zu&&this.Fu(t,h,this.G._,this.G.he,i);var r=this.Pu(i);(!this.G.zu||this.Cu>2*r)&&this.Ou(t,h,this.G._,i)}},t.prototype.Vu=function(t,i,n,s){if(null!==this.G){var h="",r=Math.min(Math.floor(s),Math.floor(this.G.he*s));r=Math.min(r,this.Cu);for(var e=Math.floor(.5*r),u=n.from;u2*e?R(t,a,l,f-a+1,c-l+1,e):t.fillRect(a,l,f-a+1,c-l+1)}},t.prototype.Ou=function(t,i,n,s){if(null!==this.G)for(var h="",r=this.Pu(s),e=n.from;ea)){if(u.et!==h){var c=u.et;t.fillStyle=c,h=c}t.fillRect(f,o,l-f+1,a-o+1)}}},t}(),ci=function(t){function i(i,n){var s=t.call(this,i,n)||this;return s.at=new li,s}return r(i,t),i.prototype.I=function(t,i){this.wu();var n=this.vu.O(),s={Ki:this.lu,he:this._u.j().he(),Bu:n.wickVisible,zu:n.borderVisible,_:this.cu};return this.at.v(s),this.at},i.prototype.xu=function(t,i,n){var s=n.Y(t);return e(e({},this.Lu(t,i,n)),{et:s.H,Iu:s.Ru,Ft:s.Wu})},i}(ai),vi=function(){function t(){this.G=null,this.ju=[]}return t.prototype.v=function(t){this.G=t,this.ju=[]},t.prototype.s=function(t,i,n,s){if(null!==this.G&&0!==this.G.M.length&&null!==this.G._){this.ju.length||this.Uu(i);for(var h=Math.round(this.G.qu*i),r=Math.max(1,Math.floor(i)),e=this.G._.from;ef.Yu?f.gh=a.ph-i-1:a.ph=f.gh+i+1))}var l=Math.ceil(this.G.he*t);for(s=this.G._.from;s0&&l<4)for(s=this.G._.from;sl&&(a.Hu>a.Yu?a.gh-=1:a.ph+=1)}}else this.ju=[]},t}();function _i(t){return{M:[],he:t,qu:NaN,_:null}}var di=function(t){function i(i,n){var s=t.call(this,i,n,!1)||this;return s.S=new g,s.Ku=_i(0),s.$u=new Int32Array(0),s.at=new vi,s}return r(i,t),i.prototype.I=function(t,i){return this.wu(),this.S},i.prototype.Mu=function(){var t=this,i=this._u.j().he(),n=this.vu.Xu();this.Ku=_i(i);var s=this.vu.ku();this.$u=new Int32Array(this.vu.Ki().er());var h=0,r=0,e=0,u=this.vu.O().color;this.vu.Ki().Nu((function(i,o){var a=s(o.Z),f=o.Z[4],l=function(t,i,n){return{F:t,P:i,m:NaN,p:NaN,et:n}}(i,a,null!=f?n.Zu(f):u),c=null==f?0:f+1;return++rMath.ceil(this.G.wt*i))){var u=Math.ceil(this.G.dt*i);t.lineCap="butt",t.strokeStyle=this.G.et,t.lineWidth=Math.floor(this.G.rt*i),n(t,this.G.ut),s(t,e,0,u)}}},t}(),yi=function(){function t(t){this.uo={dt:0,wt:0,p:0,et:"rgba(0, 0, 0, 0)",rt:1,ut:0,tt:!1},this.oo=new gi,this.T=!0,this.vu=t,this._u=t.ct(),this.oo.v(this.uo)}return t.prototype.B=function(){this.T=!0},t.prototype.I=function(t,i){return this.T&&(this.ao(t,i),this.T=!1),this.oo},t}(),ki=function(t){function i(i){return t.call(this,i)||this}return r(i,t),i.prototype.ao=function(t,i){this.uo.tt=!1;var n=this.vu.X(),s=n.ys().ys;if(2===s||3===s){var h=this.vu.O();if(h.baseLineVisible){var r=this.vu.q();null!==r&&(this.uo.tt=!0,this.uo.p=n.$(r.Z,r.Z),this.uo.dt=i,this.uo.wt=t,this.uo.et=h.baseLineColor,this.uo.rt=h.baseLineWidth,this.uo.ut=h.baseLineStyle)}}},i}(yi);function Ni(t,i){return at(Math.min(Math.max(t,12),30)*i)}function xi(t,i){switch(t){case"arrowDown":case"arrowUp":return Ni(i,1);case"circle":return Ni(i,.8);case"square":return Ni(i,.7)}}function Si(t){return ot(Ni(t,1))}function Di(t){return Math.max(Ni(t,.1),3)}function Ci(t,i,n,s,h){var r=xi("square",n),e=(r-1)/2,u=t-e,o=i-e;return s>=u&&s<=u+r&&h>=o&&h<=o+r}function Ti(t,i,n,s,h){var r=(xi("arrowUp",h)-1)/2,e=(at(h/2)-1)/2;i.beginPath(),t?(i.moveTo(n-r,s),i.lineTo(n,s-r),i.lineTo(n+r,s),i.lineTo(n+e,s),i.lineTo(n+e,s+r),i.lineTo(n-e,s+r),i.lineTo(n-e,s)):(i.moveTo(n-r,s),i.lineTo(n,s+r),i.lineTo(n+r,s),i.lineTo(n+e,s),i.lineTo(n+e,s-r),i.lineTo(n-e,s-r),i.lineTo(n-e,s)),i.fill()}function Ei(t,i,n,s,h,r){return Ci(i,n,s,h,r)}var Ai=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.G=null,i.Qu=new bi,i.Le=-1,i.Be="",i.fo="",i}return r(i,t),i.prototype.v=function(t){this.G=t},i.prototype.io=function(t,i){this.Le===t&&this.Be===i||(this.Le=t,this.Be=i,this.fo=Ut(t,i),this.Qu.Gh())},i.prototype.lo=function(t,i){if(null===this.G||null===this.G._)return null;for(var n=this.G._.from;n=t&&h<=t+n&&r>=i-e&&r<=i+e}(t.m,t.Tt.p,t.Tt.dt,t.Tt.wt,i,n))||function(t,i,n){if(0===t.er)return!1;switch(t.wo){case"arrowDown":case"arrowUp":return Ei(0,t.m,t.p,t.er,i,n);case"circle":return function(t,i,n,s,h){var r=2+xi("circle",n)/2,e=t-s,u=i-h;return Math.sqrt(e*e+u*u)<=r}(t.m,t.p,t.er,i,n);case"square":return Ci(t.m,t.p,t.er,i,n)}t.wo}(t,i,n)}function Vi(t,i,n,s,h,r,e,u,o){var a=v(n)?n:n.close,f=v(n)?n:n.high,l=v(n)?n:n.low,c=v(i.size)?Math.max(i.size,0):1,_=Si(u.he())*c,d=_/2;switch(t.er=_,i.position){case"inBar":return t.p=e.$(a,o),void(void 0!==t.Tt&&(t.Tt.p=t.p+d+r+.6*h));case"aboveBar":return t.p=e.$(f,o)-d-s.Mo,void 0!==t.Tt&&(t.Tt.p=t.p-d-.6*h,s.Mo+=1.2*h),void(s.Mo+=_+r);case"belowBar":return t.p=e.$(l,o)+d+s.bo,void 0!==t.Tt&&(t.Tt.p=t.p+d+r+.6*h,s.bo+=1.2*h),void(s.bo+=_+r)}i.position}var zi=function(){function t(t,i){this.T=!0,this.mo=!0,this.po=!0,this.yo=null,this.at=new Ai,this.ko=t,this.ni=i,this.G={M:[],_:null}}return t.prototype.B=function(t){this.T=!0,this.po=!0,"data"===t&&(this.mo=!0)},t.prototype.I=function(t,i,n){this.T&&this.wu();var s=this.ni.O().layout;return this.at.io(s.fontSize,s.fontFamily),this.at.v(this.G),this.at},t.prototype.No=function(){if(this.po){if(this.ko.xo().length>0){var t=this.ni.j().he(),i=Di(t),n=1.5*Si(t)+2*i;this.yo={above:n,below:n}}else this.yo=null;this.po=!1}return this.yo},t.prototype.wu=function(){var t=this.ko.X(),i=this.ni.j(),n=this.ko.xo();this.mo&&(this.G.M=n.map((function(t){return{F:t.time,m:0,p:0,er:0,wo:t.shape,et:t.color,vo:t.vo,_o:t.id,Tt:void 0}})),this.mo=!1);var s=this.ni.O().layout;this.G._=null;var h=i.Rr();if(null!==h){var r=this.ko.q();if(null!==r&&0!==this.G.M.length){var e=NaN,u=Di(i.he()),o={Mo:u,bo:u};this.G._=hi(this.G.M,h,!0);for(var a=this.G._.from;a0&&(l.Tt={do:f.text,p:0,dt:0,wt:0});var c=this.ko.So(f.time);null!==c&&Vi(l,f,c,o,s.fontSize,u,t,i,r.Z)}this.T=!1}}},t}(),Fi=function(t){function i(i){return t.call(this,i)||this}return r(i,t),i.prototype.ao=function(t,i){var n=this.uo;n.tt=!1;var s=this.vu.O();if(s.priceLineVisible){var h=this.vu.Do(void 0,0===s.priceLineSource);h.Co||(n.tt=!0,n.p=h.Bt,n.et=this.vu.To(h.et),n.dt=i,n.wt=t,n.rt=s.priceLineWidth,n.ut=s.priceLineStyle)}},i}(yi),Pi=function(t){function i(i,n){var s=t.call(this)||this;return s.ft=i,s.G=n,s}return r(i,t),i.prototype.Eo=function(){return this.ft},i.prototype.Ao=function(){return this.G},i.prototype.Xt=function(t,i,n){t.tt=!1,i.tt=!1;var s=this.ft.O(),h=s.lastValueVisible,r=""!==this.ft.Lo(),e=0===s.seriesLastValueMode,u=this.ft.Do(void 0,!1);u.Co||(h&&(t.Tt=this.Bo(u,h,e),t.tt=0!==t.Tt.length),(r||e)&&(i.Tt=this.Vo(u,h,r,e),i.tt=i.Tt.length>0),n.zt=this.ft.To(u.et),n.et=I(n.zt),n.Bt=u.Bt,i.Ft=this.ft.ct().O().layout.backgroundColor,t.Ft=n.zt)},i.prototype.Vo=function(t,i,n,s){var h="",r=this.ft.Lo();return n&&0!==r.length&&(h+=r+" "),i&&s&&(h+=this.ft.X().Ss()?t.zo:t.Fo),h.trim()},i.prototype.Bo=function(t,i,n){return i?n?this.ft.X().Ss()?t.Fo:t.zo:t.Tt:""},i}(H),Oi=function(){function t(t,i){this.$n=t,this.Po=i||null}return t.prototype.Os=function(){return this.$n},t.prototype.yh=function(){return this.Po},t.prototype.Dn=function(){return null===this.$n?null:{priceRange:this.$n.Dn(),margins:this.Po||void 0}},t.Cn=function(i){return null===i?null:new t(ht.Cn(i.priceRange),i.margins)},t}(),Ii=function(t){function i(i,n){var s=t.call(this,i)||this;return s.Oo=n,s}return r(i,t),i.prototype.ao=function(t,i){var n=this.uo;n.tt=!1;var s=this.Oo.Io();if(null!==s){var h=this.Oo.O();n.tt=!0,n.p=s,n.et=h.color,n.dt=i,n.wt=t,n.rt=h.lineWidth,n.ut=h.lineStyle}},i}(yi),Ri=function(t){function i(i,n){var s=t.call(this)||this;return s.ko=i,s.Oo=n,s}return r(i,t),i.prototype.Xt=function(t,i,n){t.tt=!1,i.tt=!1;var s=this.Oo.O();if(s.axisLabelVisible){var h=this.Oo.Io();null!==h&&(t.Tt=this.ko.X().lh(s.price),t.tt=!0,n.zt=s.color,n.et=I(s.color),n.Bt=h)}},i}(H),Wi=function(){function t(t,i){this.ko=t,this.Si=i,this.Ro=new Ii(t,this),this.no=new Ri(t,this)}return t.prototype.ms=function(t){c(this.Si,t),this.B(),this.ko.ct().se()},t.prototype.O=function(){return this.Si},t.prototype.Wo=function(){return this.Ro},t.prototype.jo=function(){return this.no},t.prototype.B=function(){this.Ro.B(),this.no.B()},t.prototype.Io=function(){var t=this.ko,i=t.X();if(t.ct().j().Gt()||i.Gt())return null;var n=t.q();return null===n?null:i.$(this.Si.price,n.Z)},t}(),ji=function(){function t(){this.Uo=0,this.qo=new Map,this.Ho=new Map}return t.prototype.Zu=function(t){return a(this.Ho.get(t))},t.prototype.Yo=function(t){var i=this.qo.get(t);return void 0===i&&(i=this.Uo++,this.qo.set(t,i),this.Ho.set(i,t)),i},t.prototype.rr=function(){this.Uo=0,this.qo.clear(),this.Ho.clear()},t.prototype.er=function(){return this.Ho.size},t}(),Ui=function(t){function i(i){var n=t.call(this)||this;return n.ni=i,n}return r(i,t),i.prototype.ct=function(){return this.ni},i.prototype.Mh=function(){return 0},i.prototype.mh=function(t,i){return null},i}(Z),qi={H:"",Wu:"",Ru:""},Hi=function(){function t(t){this.ko=t}return t.prototype.Y=function(t,i){var n=this.ko.Ko(),s=this.ko.O();switch(n){case"Line":return this.$o(s);case"Area":return this.Xo(s);case"Bar":return this.Zo(s,t,i);case"Candlestick":return this.Jo(s,t,i);case"Histogram":return this.Go(s,t,i)}throw new Error("Unknown chart style")},t.prototype.Zo=function(t,i,n){var s=e({},qi),h=t.upColor,r=t.downColor,u=h,o=r,a=f(this.Qo(i,n)),c=l(a.Z[0])<=l(a.Z[3]);return s.H=c?h:r,s.Wu=c?u:o,s},t.prototype.Jo=function(t,i,n){var s=e({},qi),h=t.upColor,r=t.downColor,u=t.borderUpColor,o=t.borderDownColor,a=t.wickUpColor,c=t.wickDownColor,v=f(this.Qo(i,n)),_=l(v.Z[0])<=l(v.Z[3]);return s.H=_?h:r,s.Wu=_?u:o,s.Ru=_?a:c,s},t.prototype.Xo=function(t){return e(e({},qi),{H:t.lineColor})},t.prototype.$o=function(t){return e(e({},qi),{H:t.color})},t.prototype.Go=function(t,i,n){var s=e({},qi),h=f(this.Qo(i,n)).Z[4];if(null!=h){var r=f(this.ko.Xu());s.H=r.Zu(h)}else s.H=t.color;return s},t.prototype.ta=function(){return this.ko.Ki()},t.prototype.Qo=function(t,i){return void 0!==i?i.Z:this.ta().ar(t)},t}(),Yi=function(){function t(t,i){void 0===t&&(t=null),void 0===i&&(i=null),this.hr=[],this.ia=0,this.na=0,this.sa=!1,this.ha=new Map,this.ra=new Map,this.ea=new Map,this.ua=t||new Map,this.oa=i}return t.prototype.rr=function(){this.hr=[],this.ia=0,this.na=0,this.sa=!1,this.ha.clear(),this.ra.clear(),this.ea.clear()},t.prototype.aa=function(){return this.er()>0?this.hr[this.ia]:null},t.prototype.fa=function(){return this.er()>0?this.hr[this.na-1]:null},t.prototype.ur=function(){return this.er()>0?this.la(this.ia):null},t.prototype.Yi=function(){return this.er()>0?this.la(this.na-1):null},t.prototype.er=function(){return this.na-this.ia},t.prototype.Gt=function(){return 0===this.er()},t.prototype.Hh=function(t){return null!==this.ca(t,0)},t.prototype.ar=function(t){return this.va(t)},t.prototype._a=function(t,i,n){if(this.sa)return!1;var s={Bi:t,Z:n,F:i},h=this.ca(t,0);return this.ra.clear(),this.ea.clear(),null===h?(this.hr.splice(this.da(t),0,s),this.ia=0,this.na=this.hr.length,!0):(this.hr[h]=s,!1)},t.prototype.va=function(t,i,n){void 0===i&&(i=0);var s=this.ca(t,i,n);if(null===s)return null;var h=this.wa(s);return{Bi:this.la(s),F:h.F,Z:h.Z}},t.prototype.Nu=function(t){for(var i=this.ia;ithis.hr[this.hr.length-1].Bi?this.ya(t):1===t.length&&t[0].Bi===this.hr[this.hr.length-1].Bi?(this.ka(t[0]),t[0]):this.Na(t)},t.prototype.xa=function(t){if(this.sa)return null;var i=this.ca(t,1);if(null===i)return null;var n=this.hr.splice(i);return this.na=this.hr.length,this.ha.clear(),this.ra.clear(),this.ea.clear(),n.length>0?n[0]:null},t.prototype.la=function(t){return this.hr[t].Bi},t.prototype.wa=function(t){return this.hr[t]},t.prototype.ca=function(t,i,n){var s=this.Sa(t);if(null===s&&0!==i)switch(i){case-1:return this.Da(t,n);case 1:return this.Ca(t,n);default:throw new TypeError("Unknown search mode")}if(!n||null===s||0===i)return s;switch(i){case-1:return this.Ta(s);case 1:return this.Ea(s);default:throw new TypeError("Unknown search mode")}},t.prototype.Ea=function(t){for(var i=f(this.oa);t=this.ia&&i(this.wa(t).Z);)t-=1;return tthis.ia&&(n-=1);var s=n!==this.na&&this.la(n)t}),this.ia,this.na)},t.prototype.Aa=function(t,i,n){var s=null,h=this.ua.get(n.La);if(void 0===h)throw new Error('Plot "'+n.La+'" is not registered');for(var r=t;rs.Va&&(s.Va=e)))}return s},t.prototype.za=function(t){var i=Math.floor(t.Bi/30);this.ha.forEach((function(t){return t.delete(i)}))},t.prototype.ga=function(t){return o(!this.sa,"collection should not be readonly"),o(0!==t.length,"plotRows should not be empty"),this.ra.clear(),this.ea.clear(),this.ha.clear(),this.hr=t.concat(this.hr),this.ia=0,this.na=this.hr.length,t[0]},t.prototype.ya=function(t){return o(!this.sa,"collection should not be readonly"),o(0!==t.length,"plotRows should not be empty"),this.ra.clear(),this.ea.clear(),this.ha.clear(),this.hr=this.hr.concat(t),this.ia=0,this.na=this.hr.length,t[0]},t.prototype.ka=function(t){o(!this.Gt(),"plot list should not be empty"),o(this.hr[this.na-1].Bi===t.Bi,"last row index should match new row index"),this.za(t),this.ra.delete(t.Bi),this.ea.delete(t.Bi),this.hr[this.na-1]=t},t.prototype.Na=function(t){return o(0!==t.length,"plot rows should not be empty"),this.ra.clear(),this.ea.clear(),this.ha.clear(),this.hr=function(t,i){var n=function(t,i){var n=t.length,s=i.length,h=n+s,r=0,e=0;for(;ri[e].Bi?e++:(r++,e++,h--);return h}(t,i),s=new Array(n),h=0,r=0,e=t.length,u=i.length,o=0;for(;hi[r].Bi?(s[o]=i[r],r++):(s[o]=i[r],h++,r++),o++;for(;h=0&&r.th(t),null!==r&&(r.Qs(),this.Bf(r)),this.es=null},t.prototype.ro=function(t){return t===this.gf?"left":t===this.kf?"right":"overlay"},t.prototype.Vf=function(){return this.gf},t.prototype.zf=function(){return this.kf},t.prototype.Ff=function(t,i){t.sh(i)},t.prototype.Pf=function(t,i){t.hh(i),this.Ui()},t.prototype.Of=function(t){t.rh()},t.prototype.If=function(t,i){t.eh(i)},t.prototype.Rf=function(t,i){t.uh(i),this.Ui()},t.prototype.Wf=function(t){t.oh()},t.prototype.jf=function(t,i){t.gs({Cs:i}),this.pf.Gt()?t.Es(null):this.Bf(t)},t.prototype.Ui=function(){this.rs.forEach((function(t){t.Ui()}))},t.prototype.Ti=function(){var t=null;return this.ni.O().rightPriceScale.visible&&0!==this.kf.Zs().length?t=this.kf:this.ni.O().leftPriceScale.visible&&0!==this.gf.Zs().length?t=this.gf:0!==this.rs.length&&(t=this.rs[0].X()),null===t&&(t=this.kf),t},t.prototype.Bf=function(t){null!==t&&t.xs()&&this.Uf(t)},t.prototype.qf=function(t){var i=this.pf.Rr();t.gs({Cs:!0}),null!==i&&t.wh(i),this.Ui()},t.prototype.Hf=function(){this.Uf(this.gf),this.Uf(this.kf)},t.prototype.Yf=function(){var t=this;this.Bf(this.gf),this.Bf(this.kf),this.rs.forEach((function(i){t.wf(i)&&t.Bf(i.X())})),this.Ui(),this.ni.se()},t.prototype.Gt=function(){return 0===this.rs.length},t.prototype.Js=function(){return null===this.es&&(this.es=pt(this.rs)),this.es},t.prototype.Kf=function(){return this.mf},t.prototype.Uf=function(t){var i=t.dh();if(i&&i.length>0&&!this.pf.Gt()){var n=this.pf.Rr();null!==n&&t.wh(n)}t.Ui()},t.prototype.Af=function(){var t=this.Js();if(0===t.length)return{Ef:0,$f:0};for(var i=0,n=0,s=0;sn&&(n=h))}return{Ef:i,$f:n}},t.prototype.Lf=function(t,i,n){var s=this.Sf(i);if(null===s&&(s=this.yf(i,this.ni.O().overlayPriceScales)),this.rs.push(t),!Ht(i)){var h=this.Mf.get(i)||[];h.push(t),this.Mf.set(i,h)}s.Gs(t),t.ci(s),t.li(n),this.Bf(s),this.es=null},t.prototype.Nf=function(t,i,n){i.ys!==n.ys&&this.Uf(t)},t.prototype.yf=function(t,i){var n=e({tt:!0,Cs:!0},b(i)),s=new Nt(t,n,this.ni.O().layout,this.ni.O().localization);return s.Bs(this.wt()),s},t}(),nn=function(t){function i(i){var n=t.call(this)||this;return n.Xf=new Map,n.G=i,n}return r(i,t),i.prototype.h=function(t){},i.prototype.o=function(t){if(this.G.tt){t.save();for(var i=0,n=0,s=this.G.Zf;nthis.G.dt?o.ve=this.G.dt/h:o.ve=1,i+=o.Gf*o.ve}}var r=0;switch(this.G.Qf){case"top":r=0;break;case"center":r=Math.max((this.G.wt-i)/2,0);break;case"bottom":r=Math.max(this.G.wt-i,0)}t.fillStyle=this.G.et;for(var e=0,u=this.G.Zf;e20&&(this.rl=null,i=!0),this.pf.uh(t),this.ne(),this.hf(),this.se(),i},t.prototype.Fl=function(){this.pf.oh(),this.se(),this.rl=null},t.prototype.Il=function(){this.pf.fe(),this.ne(),this.hf(),this.se()},t.prototype.qe=function(t){this.al&&this.al(t),this.ll.qe(),this.se()},t.prototype.V=function(){return this.hl},t.prototype.Rl=function(t,i,n){this.L.Vi(t,i);var s=NaN,h=this.pf.te(t),r=this.pf.Rr();null!==r&&(h=Math.min(Math.max(r.ph(),h),r.gh()));var e=n.Ti(),u=e.q();null!==u&&(s=e.Ei(i,u)),s=this.cl.df(s,h,n),this.L.Oi(h,s,n),this.Wl(),this.ol.an(this.L.W(),{x:t,y:i})},t.prototype.jl=function(){this.Dl().Ri(),this.Wl(),this.ol.an(null,null)},t.prototype.hf=function(){var t=this.L.lt();if(null!==t){var i=this.L.Fi(),n=this.L.Pi();this.Rl(i,n,t)}},t.prototype.Ul=function(t,i,n,s){s&&this.pf.Gh(),this.pf.B(t,i,n)},t.prototype.ql=function(t){var i=this.hl.reduce((function(t,i){var n=i.Ki();if(n.Gt())return t;var s=f(n.Yi());return void 0===t?s:Math.max(s,t)}),void 0);if(void 0!==i){var n=this.pf,s=n.Gr(),h=n.Rr();if(null!==h){var r=h.Hh(s);if(void 0!==t&&t>0&&!r){var e=i-s;n.Ir(n.ee()-e)}}n.ce(i)}this.hf(),this.ne(),this.se()},t.prototype.sf=function(t){null!==t&&t.Yf()},t.prototype.ho=function(t){var i=this.sl.find((function(i){return i.Js().includes(t)}));return void 0===i?null:i},t.prototype.ne=function(){this.sl.forEach((function(t){return t.Yf()})),this.kl()},t.prototype.ln=function(){this.sl.forEach((function(t){return t.ln()})),this.sl.length=0,this.Si.localization.priceFormatter=void 0,this.Si.localization.timeFormatter=void 0},t.prototype.Hl=function(){return this.fl},t.prototype.eo=function(){return this.fl.O()},t.prototype.Df=function(){return this.ul},t.prototype.Yl=function(t,i){var n=this.sl[0],s=this.Kl(i,t,n);return this.hl.push(s),1===this.hl.length?this.dl():this.se(),s},t.prototype.$l=function(t){var i=this.ho(t),n=this.hl.indexOf(t);o(-1!==n,"Series not found"),this.hl.splice(n,1),f(i).th(t),t.ln&&t.ln()},t.prototype.Ga=function(t,i){var n=f(this.ho(t));n.th(t);var s=this.yl(i);if(null===s){var h=t.fi();n.Gs(t,i,h)}else{h=s.lt===n?t.fi():void 0;s.lt.Gs(t,i,h)}},t.prototype.ge=function(){var t=new Xt(2);t.tu(),this.wl(t)},t.prototype.Xl=function(t){var i=new Xt(2);i.ye(t),this.wl(i)},t.prototype.Zl=function(){return this.Si.rightPriceScale.visible?"right":"left"},t.prototype.El=function(t,i){var n=new Xt(i);if(null!==t){var s=this.sl.indexOf(t);n.Xe(s,{Ze:i})}return n},t.prototype.Ml=function(t,i){return void 0===i&&(i=2),this.El(this.ho(t),i)},t.prototype.wl=function(t){this.al&&this.al(t),this.ll.qe()},t.prototype.Wl=function(){this.wl(new Xt(1))},t.prototype.Kl=function(t,i,n){var s=new Gi(this,t,i),h=void 0!==t.priceScaleId?t.priceScaleId:this.Zl();return n.Gs(s,h),Ht(h)||s.ms(t),s},t}(),en={allowDownsampling:!0};var un=function(){function t(t,i){var n=this;this._resolutionMediaQueryList=null,this._resolutionListener=function(t){return n._onResolutionChanged()},this._canvasConfiguredListeners=[],this.canvas=t,this._canvasSize={width:this.canvas.clientWidth,height:this.canvas.clientHeight},this._options=i,this._configureCanvas(),this._installResolutionListener()}return t.prototype.destroy=function(){this._canvasConfiguredListeners.length=0,this._uninstallResolutionListener(),this.canvas=null},Object.defineProperty(t.prototype,"canvasSize",{get:function(){return{width:this._canvasSize.width,height:this._canvasSize.height}},enumerable:!0,configurable:!0}),t.prototype.resizeCanvas=function(t){this._canvasSize={width:t.width,height:t.height},this._configureCanvas()},Object.defineProperty(t.prototype,"pixelRatio",{get:function(){var t=this.canvas.ownerDocument.defaultView;if(null==t)throw new Error("No window is associated with the canvas");return t.devicePixelRatio>1||this._options.allowDownsampling?t.devicePixelRatio:1},enumerable:!0,configurable:!0}),t.prototype.subscribeCanvasConfigured=function(t){this._canvasConfiguredListeners.push(t)},t.prototype.unsubscribeCanvasConfigured=function(t){this._canvasConfiguredListeners=this._canvasConfiguredListeners.filter((function(i){return i!=t}))},t.prototype._configureCanvas=function(){var t=this.pixelRatio;this.canvas.style.width=this._canvasSize.width+"px",this.canvas.style.height=this._canvasSize.height+"px",this.canvas.width=this._canvasSize.width*t,this.canvas.height=this._canvasSize.height*t,this._emitCanvasConfigured()},t.prototype._emitCanvasConfigured=function(){var t=this;this._canvasConfiguredListeners.forEach((function(i){return i.call(t)}))},t.prototype._installResolutionListener=function(){if(null!==this._resolutionMediaQueryList)throw new Error("Resolution listener is already installed");var t=this.canvas.ownerDocument.defaultView;if(null==t)throw new Error("No window is associated with the canvas");var i=t.devicePixelRatio;this._resolutionMediaQueryList=t.matchMedia("all and (resolution: "+i+"dppx)"),this._resolutionMediaQueryList.addListener(this._resolutionListener)},t.prototype._uninstallResolutionListener=function(){null!==this._resolutionMediaQueryList&&(this._resolutionMediaQueryList.removeListener(this._resolutionListener),this._resolutionMediaQueryList=null)},t.prototype._reinstallResolutionListener=function(){this._uninstallResolutionListener(),this._installResolutionListener()},t.prototype._onResolutionChanged=function(){this._configureCanvas(),this._reinstallResolutionListener()},t}(),on=function(){function t(t,i){this.st=t,this.ht=i}return t.prototype._n=function(t){return this.st===t.st&&this.ht===t.ht},t}();function an(t){return t.ownerDocument&&t.ownerDocument.defaultView&&t.ownerDocument.defaultView.devicePixelRatio||1}function fn(t){var i=f(t.getContext("2d"));return i.setTransform(1,0,0,1,0,0),i}function ln(t){var i=t.createElement("canvas");return function(t){t.style.userSelect="none",t.style.webkitUserSelect="none",t.style.msUserSelect="none",t.style.MozUserSelect="none",t.style.webkitTapHighlightColor="transparent"}(i),i}function cn(t,i){var n=ln(t),s=an(n);return n.style.width=i.st+"px",n.style.height=i.ht+"px",n.width=i.st*s,n.height=i.ht*s,n}function vn(t,i){var n=ln(f(t.ownerDocument));t.appendChild(n);var s=function(t,i){return void 0===i&&(i=en),new un(t,i)}(n);return s.resizeCanvas({width:i.st,height:i.ht}),s}var _n=!!navigator.maxTouchPoints||!!navigator.msMaxTouchPoints||"ontouchstart"in window||Boolean(window.DocumentTouch&&document instanceof window.DocumentTouch),dn="onorientationchange"in window&&_n,wn=/Android/i.test(navigator.userAgent),Mn=/iPhone|iPad|iPod|AppleWebKit.+Mobile/i.test(navigator.userAgent),bn=wn||Mn,mn=function(){function t(t,i,n){this.Jl=0,this.Gl=null,this.Ql=null,this.tc=!1,this.ic=null,this.nc=!1,this.sc=!1,this.hc=null,this.rc=null,this.ec=null,this.uc=null,this.oc=0,this.ac=!1,this.fc=!1,this.lc=!1,this.cc=t,this.vc=i,this.Si=n,this._c()}return t.prototype.ln=function(){null!==this.hc&&(this.hc(),this.hc=null),null!==this.rc&&(this.rc(),this.rc=null),null!==this.ec&&(this.ec(),this.ec=null),this.dc(),this.wc()},t.prototype.Mc=function(t){var i=this;this.rc&&this.rc();var n=this.bc.bind(this);this.rc=function(){i.cc.removeEventListener("mousemove",n)},this.cc.addEventListener("mousemove",n),yn(t)&&this.bc(t);var s=this.mc(t);this.pc(s,this.vc.gc)},t.prototype.wc=function(){null!==this.Gl&&clearTimeout(this.Gl),this.Jl=0,this.Gl=null},t.prototype.bc=function(t){if(!this.lc||yn(t)){var i=this.mc(t);this.pc(i,this.vc.yc)}},t.prototype.kc=function(t){if((!("button"in t)||0===t.button)&&null===this.uc){var i=yn(t);if(!this.fc||!i){this.ac=!0;var n=this.mc(t),s=l(this.ic),h=Math.abs(s.m-n.Nc),r=Math.abs(s.p-n.xc),e=h+r>5;if(e||!i){if(e&&!this.nc&&i){var u=.5*h,o=r>=u&&!this.Si.Sc,a=u>r&&!this.Si.Dc;o||a||(this.fc=!0)}e&&(this.nc=!0,this.sc=!0,i&&this.dc()),this.fc||(this.pc(n,this.vc.Cc),i&&kn(t))}}}},t.prototype.Tc=function(t){if(!("button"in t)||0===t.button){var i=this.mc(t);this.dc(),this.ic=null,this.lc=!1,this.ec&&(this.ec(),this.ec=null),yn(t)&&this.Ec(t),this.pc(i,this.vc.Ac),++this.Jl,this.Gl&&this.Jl>1?(this.pc(i,this.vc.Lc),this.wc()):this.sc||this.pc(i,this.vc.Bc),yn(t)&&(kn(t),this.Ec(t),0===t.touches.length&&(this.tc=!1))}},t.prototype.dc=function(){null!==this.Ql&&(clearTimeout(this.Ql),this.Ql=null)},t.prototype.Vc=function(t){if(!("button"in t)||0===t.button){var i=this.mc(t);this.sc=!1,this.nc=!1,this.fc=!1,yn(t)&&this.Mc(t),this.ic={m:i.Nc,p:i.xc},this.ec&&(this.ec(),this.ec=null);var n=this.kc.bind(this),s=this.Tc.bind(this),h=this.cc.ownerDocument.documentElement;this.ec=function(){h.removeEventListener("touchmove",n),h.removeEventListener("touchend",s),h.removeEventListener("mousemove",n),h.removeEventListener("mouseup",s)},h.addEventListener("touchmove",n,{passive:!1}),h.addEventListener("touchend",s,{passive:!1}),this.dc(),yn(t)&&1===t.touches.length?this.Ql=setTimeout(this.zc.bind(this,t),240):(h.addEventListener("mousemove",n),h.addEventListener("mouseup",s)),this.lc=!0,this.pc(i,this.vc.Fc),this.Gl||(this.Jl=0,this.Gl=setTimeout(this.wc.bind(this),500))}},t.prototype._c=function(){var t=this;this.cc.addEventListener("mouseenter",this.Mc.bind(this)),this.cc.addEventListener("touchcancel",this.dc.bind(this));var i=this.cc.ownerDocument,n=function(i){t.vc.Pc&&(i.target&&t.cc.contains(i.target)||t.vc.Pc())};this.hc=function(){i.removeEventListener("mousedown",n),i.removeEventListener("touchstart",n)},i.addEventListener("mousedown",n),i.addEventListener("touchstart",n,{passive:!0}),this.cc.addEventListener("mouseleave",this.Ec.bind(this)),this.cc.addEventListener("touchstart",this.Vc.bind(this),{passive:!0}),dn||this.cc.addEventListener("mousedown",this.Vc.bind(this)),this.Oc(),this.cc.addEventListener("touchmove",(function(){}),{passive:!1})},t.prototype.Oc=function(){var t=this;void 0===this.vc.Ic&&void 0===this.vc.Rc&&void 0===this.vc.Wc||(this.cc.addEventListener("touchstart",(function(i){return t.jc(i.touches)}),{passive:!0}),this.cc.addEventListener("touchmove",(function(i){if(2===i.touches.length&&null!==t.uc&&void 0!==t.vc.Rc){var n=gn(i.touches[0],i.touches[1])/t.oc;t.vc.Rc(t.uc,n),kn(i)}}),{passive:!1}),this.cc.addEventListener("touchend",(function(i){t.jc(i.touches)})))},t.prototype.jc=function(t){1===t.length&&(this.ac=!1),2!==t.length||this.ac||this.tc?this.Uc():this.qc(t)},t.prototype.qc=function(t){var i=pn(this.cc);this.uc={m:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,p:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.oc=gn(t[0],t[1]),void 0!==this.vc.Ic&&this.vc.Ic(),this.dc()},t.prototype.Uc=function(){null!==this.uc&&(this.uc=null,void 0!==this.vc.Wc&&this.vc.Wc())},t.prototype.Ec=function(t){this.rc&&this.rc();var i=this.mc(t);this.pc(i,this.vc.Hc)},t.prototype.zc=function(t){var i=this.mc(t);this.pc(i,this.vc.Yc),this.sc=!0,this.tc=!0},t.prototype.pc=function(t,i){i&&i.call(this.vc,t)},t.prototype.mc=function(t){var i;i="touches"in t&&t.touches.length?t.touches[0]:"changedTouches"in t&&t.changedTouches.length?t.changedTouches[0]:t;var n=pn(this.cc);return{Kc:i.clientX,$c:i.clientY,Nc:i.pageX,xc:i.pageY,Xc:i.screenX,Zc:i.screenY,Jc:i.clientX-n.left,Gc:i.clientY-n.top,Qc:t.ctrlKey,tv:t.altKey,iv:t.shiftKey,nv:t.metaKey,sv:t.type.startsWith("mouse")?"mouse":"touch",hv:i.target,rv:t.view}},t}();function pn(t){return t.getBoundingClientRect()||{left:0,top:0}}function gn(t,i){var n=t.clientX-i.clientX,s=t.clientY-i.clientY;return Math.sqrt(n*n+s*s)}function yn(t){return Boolean(t.touches)}function kn(t){t.cancelable&&t.preventDefault()}var Nn=function(){function t(t,i,n,s){if(this.ev=0,this.uv=0,this.ov=0,this.av=0,this.fv=0,this.lv=0,this.cv=0,this.vv=t,this._v=t.dv()[i],this.wv=t.dv()[n],this.Mv=document.createElement("tr"),this.Mv.style.height="1px",this.bv=document.createElement("td"),this.bv.style.padding="0",this.bv.setAttribute("colspan","3"),this.mv(),this.Mv.appendChild(this.bv),s)this.pv=null,this.gv=null;else{this.pv=document.createElement("div"),this.pv.style.position="absolute",this.pv.style.zIndex="50",this.pv.style.height="5px",this.pv.style.width="100%",this.pv.style.backgroundColor="rgba(255, 255, 255, 0.02)",this.pv.style.cursor="ns-resize",this.bv.appendChild(this.pv);var h={Fc:this.yv.bind(this),Cc:this.kv.bind(this),Ac:this.Nv.bind(this)};this.gv=new mn(this.pv,h,{Sc:!1,Dc:!0})}}return t.prototype.ln=function(){null!==this.gv&&this.gv.ln()},t.prototype.xv=function(){return this.Mv},t.prototype.Sv=function(){return new on(this._v.Sv().st,1)},t.prototype.Dv=function(){var t=this.Sv(),i=cn(document,t),n=fn(i);return n.fillStyle=this.vv.O().timeScale.borderColor,n.fillRect(0,0,t.st,t.ht),i},t.prototype.B=function(){this.mv()},t.prototype.mv=function(){this.bv.style.background=this.vv.O().timeScale.borderColor},t.prototype.yv=function(t){this.ev=t.xc,this.uv=0,this.ov=this._v.Sv().ht+this.wv.Sv().ht,this.av=this._v.Cf()+this.wv.Cf(),this.fv=30,this.lv=this.ov-this.fv,this.cv=this.av/this.ov},t.prototype.kv=function(t){this.uv=t.xc-this.ev;var i=this._v.Sv().ht,n=rt(i+this.uv,this.fv,this.lv)*this.cv,s=this.av-n;this._v.Tf(n),this.wv.Tf(s),this.vv.ct().dl(),this._v.Sv().ht!==i&&(this.ev=t.xc)},t.prototype.Nv=function(t){this.ev=0,this.uv=0,this.ov=0,this.av=0,this.fv=0,this.lv=0,this.cv=0},t}(),xn=function(){function t(t,i,n,s){this.Qu=new bi(200),this.Le=0,this.Cv="",this.fo="",this.Tv=[],this.Ev=new Map,this.Le=t,this.Cv=i,this.fo=Ut(t,n,s)}return t.prototype.ln=function(){delete this.Qu,this.Tv=[],this.Ev.clear()},t.prototype.Av=function(t,i,n,s,h){var r=this.Lv(t,i);if("left"!==h){var e=an(t.canvas);n-=Math.floor(r.Bv*e)}s-=Math.floor(r.wt/2),t.drawImage(r.Vv,n,s,r.dt,r.wt)},t.prototype.Lv=function(t,i){var n,s=this;if(this.Ev.has(i))n=a(this.Ev.get(i));else{if(this.Tv.length>=200){var h=a(this.Tv.shift());this.Ev.delete(h)}var r=an(t.canvas),e=Math.ceil(this.Le/4.5),u=Math.round(this.Le/10),o=Math.ceil(this.Qu.Et(t,i)),f=ot(Math.round(o+2*e)),l=ot(this.Le+2*e),c=cn(document,new on(f,l));n={Tt:i,Bv:Math.round(Math.max(1,o)),dt:Math.ceil(f*r),wt:Math.ceil(l*r),Vv:c},0!==o&&(this.Tv.push(n.Tt),this.Ev.set(n.Tt,n)),W(t=fn(n.Vv),r,(function(){t.font=s.fo,t.fillStyle=s.Cv,t.fillText(i,0,l-e-u)}))}return n},t}(),Sn=function(){function t(t,i,n,s){var h=this;this.Zt=null,this.zv=null,this.Fv=null,this.Pv=!1,this.Ov=!0,this.Iv=new bi(50),this.Rv=new xn(11,"#000"),this.Cv=null,this.fo=null,this.Wv=0,this.jv=function(){h.Uv(h.fl.O()),h.wi.qv().ct().se()},this.Hv=function(){h.wi.qv().ct().se()},this.wi=t,this.Si=i,this.fl=n,this.Yv="left"===s,this.bv=document.createElement("div"),this.bv.style.height="100%",this.bv.style.overflow="hidden",this.bv.style.width="25px",this.bv.style.left="0",this.bv.style.position="relative",this.Kv=vn(this.bv,new on(16,16)),this.Kv.subscribeCanvasConfigured(this.jv);var r=this.Kv.canvas;r.style.position="absolute",r.style.zIndex="1",r.style.left="0",r.style.top="0",this.$v=vn(this.bv,new on(16,16)),this.$v.subscribeCanvasConfigured(this.Hv);var e=this.$v.canvas;e.style.position="absolute",e.style.zIndex="2",e.style.left="0",e.style.top="0";var u={Fc:this.yv.bind(this),Cc:this.kv.bind(this),Pc:this.Xv.bind(this),Ac:this.Nv.bind(this),Lc:this.Zv.bind(this),gc:this.Jv.bind(this),Hc:this.Gv.bind(this)};this.gv=new mn(this.$v.canvas,u,{Sc:!1,Dc:!0})}return t.prototype.ln=function(){this.gv.ln(),this.$v.unsubscribeCanvasConfigured(this.Hv),this.$v.destroy(),this.Kv.unsubscribeCanvasConfigured(this.jv),this.Kv.destroy(),null!==this.Zt&&(this.Zt.nh().on(this),this.Zt.Ns().on(this)),this.Zt=null,null!==this.Fv&&(clearTimeout(this.Fv),this.Fv=null),this.Rv.ln()},t.prototype.xv=function(){return this.bv},t.prototype.Qv=function(){return this.Si.backgroundColor},t.prototype.N=function(){return f(this.Zt).O().borderColor},t.prototype.t_=function(){return this.Si.textColor},t.prototype.Lt=function(){return this.Si.fontSize},t.prototype.i_=function(){return Ut(this.Lt(),this.Si.fontFamily)},t.prototype.n_=function(){var t=this.fl.O(),i=this.Cv!==t.et,n=this.fo!==t.gt;return(i||n)&&(this.Uv(t),this.Cv=t.et),n&&(this.Iv.Gh(),this.fo=t.gt),t},t.prototype.s_=function(){if(!this.Ht()||null===this.Zt)return 0;var t=34,i=this.n_(),n=fn(this.Kv.canvas),s=this.Zt.qn();n.font=this.i_(),s.length>0&&(t=Math.max(this.Iv.Et(n,s[0].Wn),this.Iv.Et(n,s[s.length-1].Wn)));for(var h=this.h_(),r=h.length;r--;){var e=this.Iv.Et(n,h[r].Tt());e>t&&(t=e)}var u=Math.ceil(i.Nt+i.kt+i.Dt+i.Ct+t);return u+=u%2},t.prototype.r_=function(t){if(t.st<0||t.ht<0)throw new Error("Try to set invalid size to PriceAxisWidget "+JSON.stringify(t));null!==this.zv&&this.zv._n(t)||(this.zv=t,this.Kv.resizeCanvas({width:t.st,height:t.ht}),this.$v.resizeCanvas({width:t.st,height:t.ht}),this.bv.style.width=t.st+"px",this.bv.style.height=t.ht+"px",this.bv.style.minWidth=t.st+"px")},t.prototype.e_=function(){return f(this.zv).st},t.prototype.ci=function(t){this.Zt!==t&&(null!==this.Zt&&(this.Zt.nh().on(this),this.Zt.Ns().on(this)),this.Zt=t,t.nh().sn(this.ss.bind(this),this))},t.prototype.X=function(){return this.Zt},t.prototype.Ht=function(){return this.Ov},t.prototype.u_=function(t){t!==this.Ov&&(this.bv.style.display=t?"table-cell":"none",this.Ov=t)},t.prototype.o_=function(t){var i=this.wi.a_();this.wi.qv().ct().jf(i,f(this.X()),t)},t.prototype.Gh=function(){var t=this.wi.a_();this.wi.qv().ct().qf(t,f(this.X()))},t.prototype.f_=function(t){if(this.Ov&&null!==this.zv){if(1!==t){var i=fn(this.Kv.canvas);this.l_(),this.c_(i,this.Kv.pixelRatio),this.Fu(i,this.Kv.pixelRatio),this.v_(i,this.Kv.pixelRatio),this.__(i,this.Kv.pixelRatio)}var n=fn(this.$v.canvas),s=this.zv.st,h=this.zv.ht;W(n,this.$v.pixelRatio,(function(){n.clearRect(0,0,s,h)})),this.d_(n,this.$v.pixelRatio)}},t.prototype.Dv=function(){return this.Kv.canvas},t.prototype.w_=function(){return this.Yv},t.prototype.yv=function(t){if(null!==this.Zt&&!this.Zt.Gt()&&this.wi.qv().O().handleScale.axisPressedMouseMove.price){var i=this.wi.qv().ct(),n=this.wi.a_();this.Pv=!0,i.Ff(n,this.Zt,t.Gc)}},t.prototype.kv=function(t){if(null!==this.Zt&&this.wi.qv().O().handleScale.axisPressedMouseMove.price){var i=this.wi.qv().ct(),n=this.wi.a_(),s=this.Zt;i.Pf(n,s,t.Gc)}},t.prototype.Xv=function(){if(null!==this.Zt&&this.wi.qv().O().handleScale.axisPressedMouseMove.price){var t=this.wi.qv().ct(),i=this.wi.a_(),n=this.Zt;this.Pv&&(this.Pv=!1,t.Of(i,n))}},t.prototype.Nv=function(t){if(null!==this.Zt&&this.wi.qv().O().handleScale.axisPressedMouseMove.price){var i=this.wi.qv().ct(),n=this.wi.a_();this.Pv=!1,i.Of(n,this.Zt)}},t.prototype.Zv=function(t){this.wi.qv().O().handleScale.axisDoubleClickReset&&this.Gh()},t.prototype.Jv=function(t){null!==this.Zt&&(!this.wi.qv().ct().O().handleScale.axisPressedMouseMove.price||this.Zt.Ss()||this.Zt.Ds()||this.M_(1))},t.prototype.Gv=function(t){this.M_(0)},t.prototype.h_=function(){var t=this,i=[],n=null===this.Zt?void 0:this.Zt;return function(s){for(var h=0;h0&&(t=h[0].Bt())}));var u=i.filter((function(i){return i.Bt()<=t})),o=i.filter((function(i){return i.Bt()>t}));if(u.sort((function(t,i){return i.Bt()-t.Bt()})),u.length&&o.length&&o.push(u[0]),o.sort((function(t,i){return t.Bt()-i.Bt()})),i.forEach((function(t){return t.qt(t.Bt())})),this.Zt.O().alignLabels){for(var a=1;a(_=v.Ut())-l&&f.qt(_-l)}for(var c=1;c1&&this.J_(),null!==this.b_&&this.b_.f_(t),null!==this.m_&&this.m_.f_(t),1!==t){var i=fn(this.Kv.canvas);i.save(),this.c_(i,this.G_(),this.Kv.pixelRatio),this.C_&&(this.Q_(i,this.Kv.pixelRatio),this.td(i,this.Kv.pixelRatio),this.nd(i,this.Kv.pixelRatio)),i.restore()}var n=fn(this.$v.canvas);n.clearRect(0,0,Math.ceil(this.zv.st*this.$v.pixelRatio),Math.ceil(this.zv.ht*this.$v.pixelRatio)),this.sd(n,this.$v.pixelRatio)}},t.prototype.hd=function(){return this.b_},t.prototype.rd=function(){return this.m_},t.prototype.G_=function(){return this.T_.O().layout.backgroundColor},t.prototype.E_=function(){null!==this.C_&&this.C_.Kf().on(this),this.C_=null},t.prototype.c_=function(t,i,n){var s=this;W(t,n,(function(){j(t,0,0,s.zv.st,s.zv.ht,i)}))},t.prototype.Q_=function(t,i){for(var n=f(this.C_),s=this.ni().xl()._i(n),h=n.wt(),r=n.dt(),e=0,u=s;ei.Qh?t:i}var An=function(){function t(t){var i=this;this.ld=null,this.vd=null,this.Ee=null,this._d=!1,this.zv=new on(0,0),this.jv=function(){return i.T_.ct().se()},this.Hv=function(){return i.T_.ct().se()},this.T_=t,this.Si=t.O().layout,this.dd=document.createElement("tr"),this.wd=document.createElement("td"),this.wd.style.padding="0",this.Md=document.createElement("td"),this.Md.style.padding="0",this.bv=document.createElement("td"),this.bv.style.height="25px",this.bv.style.padding="0",this.bd=document.createElement("div"),this.bd.style.width="100%",this.bd.style.height="100%",this.bd.style.position="relative",this.bd.style.overflow="hidden",this.bv.appendChild(this.bd),this.Kv=vn(this.bd,new on(16,16)),this.Kv.subscribeCanvasConfigured(this.jv);var n=this.Kv.canvas;n.style.position="absolute",n.style.zIndex="1",n.style.left="0",n.style.top="0",this.$v=vn(this.bd,new on(16,16)),this.$v.subscribeCanvasConfigured(this.Hv);var s=this.$v.canvas;s.style.position="absolute",s.style.zIndex="2",s.style.left="0",s.style.top="0",this.dd.appendChild(this.wd),this.dd.appendChild(this.bv),this.dd.appendChild(this.Md),this.md(),this.T_.ct().Df().sn(this.md.bind(this),this),this.gv=new mn(this.$v.canvas,this,{Sc:!0,Dc:!1})}return t.prototype.ln=function(){this.gv.ln(),null!==this.ld&&this.ld.ln(),null!==this.vd&&this.vd.ln(),this.$v.unsubscribeCanvasConfigured(this.Hv),this.$v.destroy(),this.Kv.unsubscribeCanvasConfigured(this.jv),this.Kv.destroy()},t.prototype.xv=function(){return this.dd},t.prototype.pd=function(){return this.ld},t.prototype.gd=function(){return this.vd},t.prototype.Fc=function(t){if(!this._d){this._d=!0;var i=this.T_.ct();!i.j().Gt()&&this.T_.O().handleScale.axisPressedMouseMove.time&&i.Al(t.Jc)}},t.prototype.Pc=function(){var t=this.T_.ct();!t.j().Gt()&&this._d&&(this._d=!1,this.T_.O().handleScale.axisPressedMouseMove.time&&t.Ol())},t.prototype.Cc=function(t){var i=this.T_.ct();!i.j().Gt()&&this.T_.O().handleScale.axisPressedMouseMove.time&&i.Pl(t.Jc)},t.prototype.Ac=function(t){this._d=!1;var i=this.T_.ct();i.j().Gt()&&!this.T_.O().handleScale.axisPressedMouseMove.time||i.Ol()},t.prototype.Lc=function(){this.T_.O().handleScale.axisDoubleClickReset&&this.T_.ct().Il()},t.prototype.gc=function(t){this.T_.ct().O().handleScale.axisPressedMouseMove.time&&this.M_(1)},t.prototype.Hc=function(t){this.M_(0)},t.prototype.Sv=function(){return this.zv},t.prototype.yd=function(t,i,n){this.zv&&this.zv._n(t)||(this.zv=t,this.Kv.resizeCanvas({width:t.st,height:t.ht}),this.$v.resizeCanvas({width:t.st,height:t.ht}),this.bv.style.width=t.st+"px",this.bv.style.height=t.ht+"px"),null!==this.ld&&this.ld.r_(new on(i,t.ht)),null!==this.vd&&this.vd.r_(new on(n,t.ht))},t.prototype.dt=function(){return this.zv.st},t.prototype.wt=function(){return this.zv.ht},t.prototype.kd=function(){var t=this.Nd();return Math.ceil(t.Nt+t.kt+t.Lt+t.xt+t.St)},t.prototype.B=function(){this.T_.ct().j().qn()},t.prototype.Dv=function(){return this.Kv.canvas},t.prototype.f_=function(t){if(0!==t){if(1!==t){var i=fn(this.Kv.canvas);this.c_(i,this.Kv.pixelRatio),this.Fu(i,this.Kv.pixelRatio),this.v_(i,this.Kv.pixelRatio),null!==this.ld&&this.ld.f_(t),null!==this.vd&&this.vd.f_(t)}var n=fn(this.$v.canvas),s=this.$v.pixelRatio;n.clearRect(0,0,Math.ceil(this.zv.st*s),Math.ceil(this.zv.ht*s)),this.xd([this.T_.ct().Dl()],n,s)}},t.prototype.c_=function(t,i){var n=this;W(t,i,(function(){j(t,0,0,n.zv.st,n.zv.ht,n.G_())}))},t.prototype.Fu=function(t,i){if(this.T_.O().timeScale.borderVisible){t.save(),t.fillStyle=this.Sd();var n=Math.max(1,Math.floor(this.Nd().Nt*i));t.fillRect(0,0,Math.ceil(this.zv.st*i),n),t.restore()}},t.prototype.v_=function(t,i){var n=this,s=this.T_.ct().j().qn();if(s&&0!==s.length){var h=s.reduce(En,s[0]).Qh;h>30&&h<40&&(h=30),t.save(),t.strokeStyle=this.Sd();var r=this.Nd(),e=r.Nt+r.kt+r.xt+r.Lt-r.At;t.textAlign="center",t.fillStyle=this.Sd();var u=Math.floor(this.Nd().Nt*i),o=Math.max(1,Math.floor(i)),a=Math.floor(.5*i);if(this.T_.ct().j().O().borderVisible){t.beginPath();for(var f=Math.round(r.kt*i),l=s.length;l--;){var c=Math.round(s[l].Rn*i);t.rect(c-a,u,o,f)}t.fill()}t.fillStyle=this.Ve(),W(t,i,(function(){t.font=n.Dd();for(var i=0,r=s;i=h&&t.fillText(a.Wn,a.Rn,e)}}))}},t.prototype.xd=function(t,i,n){for(var s=this.Nd(),h=0,r=t;h1){var r=new Nn(this,s-1,s,!0);this.Ed.push(r),this.Fd.insertBefore(r.xv(),this.Rd.xv())}this.Fd.insertBefore(h.xv(),this.Rd.xv())}for(s=0;s=0;--h)if(Math.floor(n.getTime()/qn[h].hw)!==Math.floor(s.getTime()/qn[h].hw))return qn[h].Qh}return 20}function Yn(t,i){return t.timestamp0&&h.set(i,t)})),this.fw(h)},t.prototype.$l=function(t){return this.ow(t,[])},t.prototype.lw=function(t,i){$n(i);var n=t.pu().Ki();if(n.er()>0)if(void 0!==f(n.fa()).F.businessDay){if(!Wt(i.time))throw new Error("time must be of type BusinessDay")}else if(!jt(i.time))throw new Error("time must be of type isUTCTimestamp");var s=f(zn([i]))(i.time),h=this.rw.get(s.timestamp)||{Bi:0,aw:new Map,ih:s},r=0===h.aw.size;h.aw.set(t,i);var e=!1;if(r){var u=this.rw.size;this.uw.length>0&&this.uw[this.uw.length-1].timestamp>s.timestamp?(u=ii(this.uw,s,Yn),this.uw.splice(u,0,s),this.cw(u),e=!0):this.uw.push(s),h.Bi=u,this.ew.set(h.Bi,s)}this.rw.set(s.timestamp,h);var o=new Map,l=function(i){var n=a(c.ew.get(i));a(c.rw.get(n.timestamp)).aw.forEach((function(s,h){if(e||h===t){var r=Rn(h.Ko()),u=o.get(h)||{B:[]},a={Bi:i,F:n,Z:r(s,h.Xu())};u.B.push(a),o.set(h,u)}}))},c=this;for(u=h.Bi;u1){var e=Math.ceil(h/(r.length-1)),u=r[0].F.timestamp-e;r[0].Qh=Hn(r[0].F.timestamp,u)}var o={dw:n,ww:this.uw.slice(),Bi:0,qn:r};return this.Mw(),{_w:o}},t.prototype.cw=function(t){for(var i=this.ew.size-1;i>=t;--i){var n=a(this.ew.get(i)),s=i+1;a(this.rw.get(n.timestamp)).Bi=s,this.ew.delete(i),this.ew.set(s,n)}},t.prototype.Mw=function(){var t=this;this.ew.clear(),this.rw.forEach((function(i,n){t.ew.set(i.Bi,i.ih)}))},t.prototype.vw=function(t){for(var i,n=[],s=(null===(i=this.ew.get(t-1))||void 0===i?void 0:i.timestamp)||null,h=t;hh.Bi)return{barsBefore:t.from-r,barsAfter:e-t.to};var u={barsBefore:null===s||s.Bi===r?t.from-r:s.Bi-r,barsAfter:null===h||h.Bi===e?e-t.to:e-h.Bi};return null!==s&&null!==h&&(u.from=s.F.businessDay||s.F.timestamp,u.to=h.F.businessDay||h.F.timestamp),u},t.prototype.setData=function(t){this.mw.yw(this.vu,t)},t.prototype.update=function(t){this.mw.if(this.vu,t)},t.prototype.setMarkers=function(t){var i=t.map((function(t){return e(e({},t),{time:Fn(t.time)})}));this.vu.rf(i)},t.prototype.applyOptions=function(t){var i=Gn(t);this.vu.ms(i)},t.prototype.options=function(){return b(this.vu.O())},t.prototype.priceScale=function(){return this.pw.X(this.vu.X().bs())},t.prototype.createPriceLine=function(t){var i=c(b(Zn),t),n=this.vu.uf(i);return new Jn(n)},t.prototype.removePriceLine=function(t){this.vu.af(t.bw())},t}(),ts=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return r(i,t),i.prototype.applyOptions=function(i){xt(i),t.prototype.applyOptions.call(this,i)},i}(Qn),is={autoScale:!0,mode:0,invertScale:!1,alignLabels:!0,borderVisible:!0,borderColor:"#2B2B43",entireTextOnly:!1,visible:!1,scaleMargins:{bottom:.1,top:.2}};var ns={rightOffset:0,barSpacing:6,fixLeftEdge:!1,lockVisibleTimeRangeOnResize:!1,rightBarStaysOnScroll:!1,borderVisible:!0,borderColor:"#2B2B43",visible:!0,timeVisible:!1,secondsVisible:!0,tickMarkFormatter:function(t,i,n){var s={};switch(i){case 0:s.year="numeric";break;case 1:s.month="short";break;case 2:s.day="numeric";break;case 3:s.hour12=!1,s.hour="2-digit",s.minute="2-digit";break;case 4:s.hour12=!1,s.hour="2-digit",s.minute="2-digit",s.second="2-digit"}var h=void 0===t.businessDay?new Date(1e3*t.timestamp):new Date(Date.UTC(t.businessDay.year,t.businessDay.month-1,t.businessDay.day));return new Date(h.getUTCFullYear(),h.getUTCMonth(),h.getUTCDate(),h.getUTCHours(),h.getUTCMinutes(),h.getUTCSeconds(),h.getUTCMilliseconds()).toLocaleString(n,s)}},ss={width:0,height:0,layout:{backgroundColor:"#FFFFFF",textColor:"#191919",fontSize:11,fontFamily:"'Trebuchet MS', Roboto, Ubuntu, sans-serif"},crosshair:{vertLine:{color:"#758696",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#4c525e"},horzLine:{color:"#758696",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#4c525e"},mode:1},grid:{vertLines:{color:"#D6DCDE",style:0,visible:!0},horzLines:{color:"#D6DCDE",style:0,visible:!0}},overlayPriceScales:e({},is),leftPriceScale:e(e({},is),{visible:!1}),rightPriceScale:e(e({},is),{visible:!0}),timeScale:ns,watermark:{color:"rgba(0, 0, 0, 0)",visible:!1,fontSize:48,text:"",horzAlign:"center",vertAlign:"center"},localization:{locale:navigator.language,dateFormat:"dd MMM 'yy"},handleScroll:{mouseWheel:!0,pressedMouseMove:!0,horzTouchDrag:!0,vertTouchDrag:!0},handleScale:{axisPressedMouseMove:{time:!0,price:!0},axisDoubleClickReset:!0,mouseWheel:!0,pinch:!0}},hs={upColor:"#26a69a",downColor:"#ef5350",wickVisible:!0,borderVisible:!0,borderColor:"#378658",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickColor:"#737375",wickUpColor:"#26a69a",wickDownColor:"#ef5350"},rs={upColor:"#26a69a",downColor:"#ef5350",openVisible:!0,thinBars:!0},es={color:"#2196f3",lineStyle:0,lineWidth:3,lineType:0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4},us={topColor:"rgba( 46, 220, 135, 0.4)",bottomColor:"rgba( 40, 221, 100, 0)",lineColor:"#33D778",lineStyle:0,lineWidth:3,lineType:0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4},os={color:"#26a69a",base:0},as={title:"",lastValueVisible:!0,priceLineVisible:!0,priceLineSource:0,priceLineWidth:1,priceLineColor:"",priceLineStyle:2,baseLineVisible:!0,baseLineWidth:1,baseLineColor:"#B2B5BE",baseLineStyle:0,priceFormat:{type:"price",precision:2,minMove:.01}},fs=function(){function t(t,i){this.vv=t,this.kw=i}return t.prototype.ln=function(){delete this.vv},t.prototype.bs=function(){return this.Zt().bs()},t.prototype.applyOptions=function(t){this.vv.ct().gl(this.kw,t)},t.prototype.options=function(){return this.Zt().O()},t.prototype.width=function(){return Ht(this.kw)?this.vv.Xd("left"===this.kw?"left":"right"):0},t.prototype.Zt=function(){return f(this.vv.ct().yl(this.kw)).X},t}(),ls=function(){function t(t){this.Nw=new st,this.Sr=new st,this.ni=t,this.pf().Me().sn(this.xw.bind(this)),this.pf().be().sn(this.Sw.bind(this))}return t.prototype.getBarSpacing=function(){return this.pf().he()},t.prototype.ln=function(){this.pf().Me().on(this),this.pf().be().on(this),this.Nw.ln(),delete this.ni},t.prototype.scrollPosition=function(){return this.pf().ee()},t.prototype.scrollToPosition=function(t,i){i?this.pf().we(t,1e3):this.pf().Ir(t)},t.prototype.scrollToRealTime=function(){this.pf().de()},t.prototype.getVisibleRange=function(){var t,i,n=this.pf().Ur();return null===n?null:{from:null!==(t=n.from.businessDay)&&void 0!==t?t:n.from.timestamp,to:null!==(i=n.to.businessDay)&&void 0!==i?i:n.to.timestamp}},t.prototype.setVisibleRange=function(t){var i={from:Fn(t.from),to:Fn(t.to)},n=this.pf().Yr(i);this.ni.Xl(n)},t.prototype.getVisibleLogicalRange=function(){var t=this.pf().jr();return null===t?null:{from:t.ph(),to:t.gh()}},t.prototype.setVisibleLogicalRange=function(t){o(t.from<=t.to,"The from index cannot be after the to index."),this.ni.Xl(t)},t.prototype.resetTimeScale=function(){this.ni.Il()},t.prototype.fitContent=function(){this.ni.ge()},t.prototype.timeToCoordinate=function(t){var i=Fn(t),n=this.ni.j(),s=n.Hr().cr(i.timestamp,!1);return null===s?null:n.J(s)},t.prototype.coordinateToTime=function(t){var i,n=this.ni.j(),s=n.te(t),h=n.Hr().ar(s);return null===h?null:null!==(i=h.businessDay)&&void 0!==i?i:h.timestamp},t.prototype.subscribeVisibleTimeRangeChange=function(t){this.Nw.sn(t)},t.prototype.unsubscribeVisibleTimeRangeChange=function(t){this.Nw.un(t)},t.prototype.subscribeVisibleLogicalRangeChange=function(t){this.Sr.sn(t)},t.prototype.unsubscribeVisibleLogicalRangeChange=function(t){this.Sr.un(t)},t.prototype.applyOptions=function(t){this.pf().ms(t)},t.prototype.options=function(){return b(this.pf().O())},t.prototype.pf=function(){return this.ni.j()},t.prototype.xw=function(){this.Nw.fn()&&this.Nw.an(this.getVisibleRange())},t.prototype.Sw=function(){this.Sr.fn()&&this.Sr.an(this.getVisibleLogicalRange())},t}();function cs(t){if(void 0!==t&&"custom"!==t.type){var i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=function(t){if(t>=1)return 0;for(var i=0;i<8;i++){var n=Math.round(t);if(Math.abs(n-t)<1e-8)return i;t*=10}return i}(i.minMove))}}function vs(t){return function(t){if(M(t.handleScale)){var i=t.handleScale;t.handleScale={axisDoubleClickReset:i,axisPressedMouseMove:{time:i,price:i},mouseWheel:i,pinch:i}}else if(void 0!==t.handleScale&&M(t.handleScale.axisPressedMouseMove)){var n=t.handleScale.axisPressedMouseMove;t.handleScale.axisPressedMouseMove={time:n,price:n}}var s=t.handleScroll;M(s)&&(t.handleScroll={horzTouchDrag:s,vertTouchDrag:s,mouseWheel:s,pressedMouseMove:s})}(t),function(t){if(t.priceScale){t.leftPriceScale=t.leftPriceScale||{},t.rightPriceScale=t.rightPriceScale||{};var i=t.priceScale.position;delete t.priceScale.position,t.leftPriceScale=c(t.leftPriceScale,t.priceScale),t.rightPriceScale=c(t.rightPriceScale,t.priceScale),"left"===i&&(t.leftPriceScale.visible=!0,t.rightPriceScale.visible=!1),"right"===i&&(t.leftPriceScale.visible=!1,t.rightPriceScale.visible=!0),"none"===i&&(t.leftPriceScale.visible=!1,t.rightPriceScale.visible=!1),t.overlayPriceScales=t.overlayPriceScales||{},void 0!==t.priceScale.invertScale&&(t.overlayPriceScales.invertScale=t.priceScale.invertScale),void 0!==t.priceScale.scaleMargins&&(t.overlayPriceScales.scaleMargins=t.priceScale.scaleMargins)}}(t),t}var _s=function(){function t(t,i){var n=this;this.Dw=new Xn,this.Cw=new Map,this.Tw=new Map,this.Ew=new st,this.Aw=new st;var s=void 0===i?b(ss):c(b(ss),vs(i));this.vv=new Ln(t,s),this.vv.K_().sn((function(t){n.Ew.fn()&&n.Ew.an(n.Lw(t()))}),this),this.vv.Cl().sn((function(t){n.Aw.fn()&&n.Aw.an(n.Lw(t()))}),this);var h=this.vv.ct();this.Bw=new ls(h)}return t.prototype.remove=function(){this.vv.K_().on(this),this.vv.Cl().on(this),this.Bw.ln(),this.vv.ln(),delete this.vv,this.Cw.forEach((function(t,i){i.ln()})),this.Cw.clear(),this.Tw.clear(),this.Ew.ln(),this.Aw.ln(),this.Dw.ln(),delete this.Dw},t.prototype.resize=function(t,i,n){this.vv.Wd(t,i,n)},t.prototype.addAreaSeries=function(t){void 0===t&&(t={}),cs(t.priceFormat);var i=c(b(as),us,t),n=this.vv.ct().Yl("Area",i),s=new Qn(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.addBarSeries=function(t){void 0===t&&(t={}),cs(t.priceFormat);var i=c(b(as),rs,t),n=this.vv.ct().Yl("Bar",i),s=new Qn(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.addCandlestickSeries=function(t){void 0===t&&(t={}),xt(t),cs(t.priceFormat);var i=c(b(as),hs,t),n=this.vv.ct().Yl("Candlestick",i),s=new ts(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.addHistogramSeries=function(t){void 0===t&&(t={}),cs(t.priceFormat);var i=c(b(as),os,t),n=this.vv.ct().Yl("Histogram",i),s=new Qn(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.addLineSeries=function(t){void 0===t&&(t={}),cs(t.priceFormat);var i=c(b(as),es,t),n=this.vv.ct().Yl("Line",i),s=new Qn(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.removeSeries=function(t){var i=t,n=a(this.Cw.get(i)),s=this.Dw.$l(n),h=this.vv.ct();h.$l(n);var r=s._w;h.Ul(r.Bi,r.ww,r.qn,!0),r.dw.forEach((function(t,i){i.if(t.B)})),h.ql(0),this.Cw.delete(i),this.Tw.delete(n)},t.prototype.yw=function(t,i){var n=this.Dw.ow(t,i),s=this.vv.ct(),h=n._w;s.Ul(h.Bi,h.ww,h.qn,!0),h.dw.forEach((function(t,i){i.if(t.B,!0)})),s.ql(0)},t.prototype.if=function(t,i){var n=this.Dw.lw(t,i),s=this.vv.ct(),h=n._w;s.Ul(h.Bi,h.ww,h.qn,!1),h.dw.forEach((function(t,i){i.if(t.B)})),s.ql(0)},t.prototype.subscribeClick=function(t){this.Ew.sn(t)},t.prototype.unsubscribeClick=function(t){this.Ew.un(t)},t.prototype.subscribeCrosshairMove=function(t){this.Aw.sn(t)},t.prototype.unsubscribeCrosshairMove=function(t){this.Aw.un(t)},t.prototype.priceScale=function(t){return t=t||this.vv.ct().Zl(),new fs(this.vv,t)},t.prototype.timeScale=function(){return this.Bw},t.prototype.applyOptions=function(t){this.vv.ms(vs(t))},t.prototype.options=function(){return this.vv.O()},t.prototype.takeScreenshot=function(){return this.vv.Yd()},t.prototype.Vw=function(t){return a(this.Tw.get(t))},t.prototype.Lw=function(t){var i=this,n=new Map;t.nw.forEach((function(t,s){n.set(i.Vw(s),t)}));var s=void 0===t.iw?void 0:this.Vw(t.iw);return{time:t.F&&(t.F.businessDay||t.F.timestamp),point:t.tw,hoveredSeries:s,hoveredMarkerId:t.sw,seriesPrices:n}},t}();var ds=Object.freeze({__proto__:null,version:function(){return"2.1.0-dev+202005300152"},get LineStyle(){return i},get LineType(){return t},get CrosshairMode(){return U},get PriceScaleMode(){return Mt},get PriceLineSource(){return gt},get TickMarkType(){return Ft},isBusinessDay:Wt,isUTCTimestamp:jt,createChart:function(t,i){var n=f(d(t)?document.getElementById(t):t);return new _s(n,i)}});window.LightweightCharts=ds}(); \ No newline at end of file diff --git a/trade.py b/trade.py new file mode 100644 index 0000000..61a9207 --- /dev/null +++ b/trade.py @@ -0,0 +1,9 @@ +import data as bt_data + + +def order(symbol, side, type, quantity): + try: + order = bt_data.client.create_order(symbol, side, type, quantity) + # Report error if order fails + except Exception as e: + flash(e.message, "error")