			.viewport {
				-webkit-user-select: none;
				-moz-user-select: none;
				user-select: none;
			}

			[magnet=true]:not(.element) {
				cursor: crosshair;
			}

			[magnet=true]:not(.element):hover {
				opacity: .7;
			}

			.element {
				cursor: move;
			}

			.element * {
				vector-effect: non-scaling-stroke;
				-moz-user-select: none;
				user-drag: none;
			}

			.connection-wrap {
				fill: none;
				stroke: black;
				stroke-width: 15;
				stroke-linecap: round;
				stroke-linejoin: round;
				opacity: 0;
				cursor: move;
			}

			.connection-wrap:hover {
				opacity: .4;
				stroke-opacity: .4;
			}

			.connection {
				fill: none;
				stroke-linejoin: round;
			}

			.marker-source,.marker-target {
				vector-effect: non-scaling-stroke;
			}

			.marker-vertices {
				opacity: 0;
				cursor: move;
			}

			.marker-arrowheads {
				opacity: 0;
				cursor: move;
				cursor: -webkit-grab;
				cursor: -moz-grab;
			}

			.link-tools {
				opacity: 0;
				cursor: pointer;
			}

			.link-tools .tool-options {
				display: none;
			}

			.link-tools .tool-remove circle {
				fill: red;
			}

			.link-tools .tool-remove path {
				fill: white;
			}

			.link:hover .marker-vertices,.link:hover .marker-arrowheads,.link:hover .link-tools {
				opacity: 1;
			}

			.marker-vertex {
				fill: #1abc9c;
			}

			.marker-vertex:hover {
				fill: #34495e;
				stroke: none;
			}

			.marker-arrowhead {
				fill: #1abc9c;
			}

			.marker-arrowhead:hover {
				fill: #f39c12;
				stroke: none;
			}

			.marker-vertex-remove {
				cursor: pointer;
				opacity: .1;
				fill: white;
			}

			.marker-vertex-group:hover .marker-vertex-remove {
				opacity: 1;
			}

			.marker-vertex-remove-area {
				opacity: .1;
				cursor: pointer;
			}

			.marker-vertex-group:hover .marker-vertex-remove-area {
				opacity: 1;
			}

			text.highlighted {
				fill: #f00;
			}

			.highlighted {
				outline: 2px solid #f00;
				opacity: .7 \9;
			}

			@-moz-document url-prefix() {
				.highlighted {
					opacity: .7;
				}
			}

			doesnotexist:-o-prefocus,.highlighted {
				opacity: .7;
			}

			.stencil {
				width: 200px;
				float: left;
				border: 1px solid gray;
			}

			.stencil .elements {
				background-color: white;
				height: 100%;
				width: 100%;
			}

			.stencil-paper-drag {
				position: absolute;
				z-index: 100;
				width: 800;
				height: 800;
				top: -10000;
				left: -10000;
				display: none;
			}

			.stencil-paper-drag.dragging {
				display: block;
				opacity: .7;
			}

			.stencil .group {
				overflow: hidden;
				padding-left: 10px;
				margin-bottom: 1px;
				-webkit-user-select: none;
				-moz-user-select: none;
				-ms-user-select: none;
				user-select: none;
				transition: max-height 400ms linear;
				max-height: 400px;
			}

			.stencil .group.closed {
				height: 26px;
				max-height: 26px;
			}

			.stencil .group>.group-label {
				padding: 5px 4px;
				position: relative;
				left: -10px;
				margin-right: -20px;
				margin-top: 0;
				margin-bottom: 0;
				font-size: 10px;
				font-weight: 700;
				text-transform: uppercase;
				border-top: 1px solid #3a3a3a;
				border-bottom: 2px solid #1f1f1f;
				background: #242424;
				cursor: pointer;
				color: #bcbcbc;
			}

			.stencil .group>.group-label:before {
				content: '';
				width: 0;
				height: 0;
				display: inline-block;
				margin-left: 2px;
				margin-right: 5px;
				position: relative;
				top: 5px;
				border-top: 5px solid white;
				border-right: 5px solid transparent;
				border-left: 5px solid transparent;
				border-bottom: 5px solid transparent;
			}

			.stencil .group.closed>.group-label:before {
				top: 2px;
				left: 2px;
				border-top: 5px solid transparent;
				border-bottom: 5px solid transparent;
				border-right: 5px solid transparent;
				border-left: 5px solid white;
			}

			.stencil .element [magnet] {
				pointer-events: none;
			}

			.halo {
				position: absolute;
				pointer-events: none;
			}

			.halo>div {
				position: absolute;
				pointer-events: auto;
				width: 20px;
				height: 20px;
				background-size: 20px 20px;
				background-repeat: no-repeat;
				-moz-user-select: none;
				-webkit-user-select: none;
				-ms-user-select: none;
				user-select: none;
				-webkit-user-drag: none;
				user-drag: none;
			}

			.halo.animate>div {
				transition: background-size 80ms,width 80ms,height 80ms,top 150ms,left 150ms,bottom 150ms,right 150ms;
			}

			.halo.small>div {
				width: 15px;
				height: 15px;
				background-size: 15px 15px;
			}

			.halo.tiny>div {
				width: 10px;
				height: 10px;
				background-size: 10px 10px;
			}

			.halo .resize {
				bottom: -25px;
				right: -25px;
				cursor: se-resize;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2NjREODhDMjc4MkVFMjExODUyOEU5NTNCRjg5OEI3QiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowQTc4MzUwQjJGMEIxMUUyOTFFNUE1RTAwQ0EwMjU5NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowQTc4MzUwQTJGMEIxMUUyOTFFNUE1RTAwQ0EwMjU5NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NjREODhDMjc4MkVFMjExODUyOEU5NTNCRjg5OEI3QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2NjREODhDMjc4MkVFMjExODUyOEU5NTNCRjg5OEI3QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pk3oY88AAAEMSURBVHja7JftDYMgEIbRdABHcARG6CalGziCG3QE3KAj0A0cod3AEa6YUEMpcKeI9oeXvP5QuCeA90EBAGwPK7SU1hkZ12ldiT6F1oUycARDRHLBgiTiEzCwTNhNuRT8XOEog/AyMqlOXPEuZzx7q29aXGtIhLvQwfNuAgtrYgrcB+VWqH2BhceBD45ZE4EyB/7zIQTvCeAWgdpw1CqT2Sri2LsRZ4cddtg/GLfislo55oNZxE2ZLcFXT8haU7YED9yXpxsCGMvTn4Uqe7DIXJnsAqGYB5CjFnNT6yEE3qr7iIJT+60YXJUZQ3G8ALyof+JWfTV6xrluEuqkHw/ESW3CoJsBRVubtwADAI2b6h9uJAFqAAAAAElFTkSuQmCC);
			}

			.halo.small .resize {
				bottom: -19px;
				right: -19px;
			}

			.halo.tiny .resize {
				bottom: -13px;
				right: -13px;
			}

			.halo .remove {
				top: -21px;
				left: -25px;
				cursor: pointer;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO5JREFUeNrUV9sNwyAMtLoAI3SEjJIRMgqjdBRG8CiMQGnlVHwEOBAE19L9OdwRGz+IcNsibISLCBk48dlooB0RXCDNgeXbbntWbovCyVlNtkf4AeQnvJwJ//IwCQdy8zAZeynm/gYBPpcT7gbyNDGb4/4CnyOLb1M+MED+MVPxZfEhQASnFQ4hp4qIlJxAEd+KaQGlpiIC8bmCRZOvRNBL/kvGltp+RdRLfqK5wZhCITMdjaury5lB5OFBCuxvQjAtCZc/w+WFaHkpXt6MVLTj5QOJipFs+VCqYixXsZioWM1GLaf7yK45ZT1/CzAAESidXQn9F/MAAAAASUVORK5CYII=);
			}

			.halo.small .remove {
				top: -19px;
				left: -19px;
			}

			.halo.tiny .remove {
				top: -13px;
				left: -13px;
			}

			.halo .clone {
				top: -22px;
				left: 50%;
				margin-left: -10px;
				cursor: move;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2NjREODhDMjc4MkVFMjExODUyOEU5NTNCRjg5OEI3QiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxNTM0NjJBRjJGMkQxMUUyQkRFM0FCRTMxMDhFQkE2QiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxNTM0NjJBRTJGMkQxMUUyQkRFM0FCRTMxMDhFQkE2QiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NjREODhDMjc4MkVFMjExODUyOEU5NTNCRjg5OEI3QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2NjREODhDMjc4MkVFMjExODUyOEU5NTNCRjg5OEI3QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkJFWv4AAAD3SURBVHja5FfRDYMgED2bDsAIjsAIMAluoqs4CY7gCI7ABtTTnsEUNCVQanzJGT/Qx7t7HFBZa6EEHlAIxYh90HPYzCHul+pixM93TV1wfDRNA0qppGRSyh2x8A2q6xqEEIc/mqZpCcTZWJ/iaPR9D13XLe/fNqKiNd6lahxHMMb8jlhrvRlgGAbvYJwQTsytMcH9hjEGnPN0NUZS15khx2L2SMi1GwgqQfdSkKPJ1RRnau/ZMq9J3LbtVtfodezrw6H1nAp2NeWK2bm5Tx9lTyAfilNhXuOkTv/n7hTqwbFwN5DDVGcMHVIsM2fVu7lXt7s7vQQYAIMHB7xhVbHdAAAAAElFTkSuQmCC);
			}

			.halo.small .clone {
				top: -19px;
				margin-left: -7.5px;
			}

			.halo.tiny .clone {
				top: -13px;
				margin-left: -5px;
			}

			.halo .link {
				right: -25px;
				top: -webkit-calc(50% - 10px);
				top: calc(50% - 10px);
				cursor: move;
				cursor: -moz-grabbing;
				cursor: -webkit-grabbing;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIwRkVFNkM3MkU3RjExRTJBMDA3RkZBQzMyMzExQzIzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIwRkVFNkM4MkU3RjExRTJBMDA3RkZBQzMyMzExQzIzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjBGRUU2QzUyRTdGMTFFMkEwMDdGRkFDMzIzMTFDMjMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjBGRUU2QzYyRTdGMTFFMkEwMDdGRkFDMzIzMTFDMjMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5hjT/5AAAA8ElEQVR42syXwQ3DIAxFUbtAR+gIHLsSN2+SboA6CSOEMbghJqCAHKlNmwYwkWvpKwdinmRsY4Sos2sSJJkknxRX8rgG+C/ZJG4YG2XQt9kuSVMHcK0J96qGzgOgi+Ya+GhoFfwo6C5890wBIGqto5SScuYf2fvTKcMW895T4G/ZblrARLh5bQ5VTjnMg+ClyUCL0yA4iJ7ONABewu17koQIz8z+2iTCaY3hG7zG7yQYjS3UbMnFVk5sDYStZbJdEizX4hnBDqeD21bNOedECKF8lVLCWttTuvekx9+MPmzDHut4yzrQsz5hDn+0PQUYAOGQcmTsT0IpAAAAAElFTkSuQmCC);
			}

			.halo.small .link {
				right: -19px;
				top: -webkit-calc(50% - 8px);
				top: calc(50% - 8px);
			}

			.halo.tiny .link {
				right: -13px;
				top: -webkit-calc(50% - 5px);
				top: calc(50% - 5px);
			}

			.halo .fork {
				top: -21px;
				right: -25px;
				cursor: move;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUUEAUZcNUVHAAAALtJREFUWMPtlt0RgjAMgL9zAkZglI7ACLoJm8RNHIERGMER6ksfsIeRtsGq9LvLW2i+oz8JNBoHYAZcTQEfQoCupoAH7sBZS1jGDAwbCgwh1yfEDejfCSx/3SsksXAcIxsTZYfiSQJrEiUCT1sQ45TFNQkJ33aphzB1f9ckZK9rKBkHM2YqfYgsJIr5aYnJshfkSJj3Ak3C5fQCSwmTh+hTEh4YTwUCF+D6DRNPcTuuPpD8/UhWfShtNFQe+d/oVK9MAB0AAAAASUVORK5CYII=);
			}

			.halo.small .fork {
				top: -19px;
				right: -19px;
			}

			.halo.tiny .fork {
				top: -13px;
				right: -13px;
			}

			.halo .unlink {
				left: -25px;
				top: 50%;
				margin-top: -10px;
				cursor: pointer;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJCNjcxNUZBMkU3RjExRTI5RURCRDA5NDlGRDBFMDgwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJCNjcxNUZCMkU3RjExRTI5RURCRDA5NDlGRDBFMDgwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkI2NzE1RjgyRTdGMTFFMjlFREJEMDk0OUZEMEUwODAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkI2NzE1RjkyRTdGMTFFMjlFREJEMDk0OUZEMEUwODAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5htS6kAAABHElEQVR42uxW0Q2DIBBV0wEcwRHsBo7QERjBbkAnYARGaDdghI5gN9ANKCRHQy4HxFakH77kxeTAe95xd1JrrasSaKpCOIR3R2+oDLXHp+GQU3RAYhyezsZyCU8gwJGdgX3+wXcHfi1HyOwHGsQpuMjXprwFMU3QavGTtzHkwGJZIXoxFBBtyOer8opKog0ykQ0qrSoQpTsy7gfZg9EtKu/cnbBvm4iC454PijKUgQ4WYy9rot0Y6gBMhQvKoY70dYs+TERqAcOe4dXwsUXbWdF7IgsztM3/jsziqd69uLZqp/GbdgoNEJF7gMR+BC7KfuXInBIfwJrELF4Ss5yCLaiz4S3isyv6W8QXAbHXRaDI1ac+LvSHcC68BRgAHv/CnODh8mEAAAAASUVORK5CYII=);
			}

			.halo.small .unlink {
				left: -19px;
				margin-top: -8px;
			}

			.halo.tiny .unlink {
				left: -13px;
				margin-top: -5px;
			}

			.halo .rotate {
				bottom: -25px;
				left: -25px;
				cursor: move;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI1NTk5RUFBMkU3RjExRTI4OUIyQzYwMkMyN0MxMDE3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI1NTk5RUFCMkU3RjExRTI4OUIyQzYwMkMyN0MxMDE3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjU1OTlFQTgyRTdGMTFFMjg5QjJDNjAyQzI3QzEwMTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjU1OTlFQTkyRTdGMTFFMjg5QjJDNjAyQzI3QzEwMTciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6W+5aDAAABJElEQVR42syXbRGDMAyGYTcBOBgSkICESWAOmAMcTAJzgAQksCnYHFRC13Jlx7qkDf0Acvf+6ZF7mjRNQ8o5T/ZqmVAt1AkxIa5JrvXqmywUsAVANkmf3BV6RqKjSvpWlqD+7OYBhKKHoMNS6EuddaPUqjUqfIJyPb2Ysyye0pC6Qm0I8680KJ/vhDmcFbU2mAb9glvk48KhMAtiYY7RYunxuRVWcI2cqa/ZegBYFGWA5jPYwAy4MrGhI1hf6FaA8gPg/PSA9tSbcAz8il2XOIRM9SILXVxki3GdEvUmD6bhIHYDQeFrtEwUvsYj0WBRx34Wc5cXJcQg8GMpMPrUBsBb6DHrbie1IdNUeRe6UNLVRB72Nh1v9zfQR/+FSbf6afsIMAB0elCwFZfPigAAAABJRU5ErkJggg==);
			}

			.halo.small .rotate {
				bottom: -19px;
				left: -19px;
			}

			.halo.tiny .rotate {
				bottom: -13px;
				left: -13px;
			}

			.halo .box {
				position: absolute;
				top: 100%;
				margin-top: 30px;
				left: -20px;
				right: -20px;
				text-align: center;
				color: white;
				font-size: 10px;
				line-height: 14px;
				background-color: #1abc9c;
				border-radius: 6px;
				padding: 6px;
			}

			.halo.small .box {
				margin-top: 25px;
			}

			.halo.tiny .box {
				margin-top: 20px;
			}

			.halo .link.halo-magnet {
				opacity: .1;
				transition: none;
				display: none;
			}

			.halo .link.halo-magnet:hover {
				opacity: 1;
			}

			.free-transform {
				position: absolute;
				pointer-events: none;
				border: 1px dashed black;
				border-radius: 5px;
			}

			.free-transform>div {
				position: absolute;
				pointer-events: auto;
				background-color: #c0392b;
				border: 1px solid black;
			}

			.free-transform>div:hover {
				background-color: #e74c3c;
			}

			.free-transform .resize {
				border-radius: 6px;
				width: 8px;
				height: 8px;
			}

			.free-transform .resize[data-position="top-left"] {
				top: -6px;
				left: -6px;
			}

			.free-transform .resize[data-position="top-right"] {
				top: -6px;
				right: -6px;
			}

			.free-transform .resize[data-position="bottom-left"] {
				bottom: -6px;
				left: -6px;
			}

			.free-transform .resize[data-position="bottom-right"] {
				bottom: -6px;
				right: -6px;
			}

			.free-transform .resize[data-position="top"] {
				top: -6px;
				left: 50%;
				margin-left: -6px;
			}

			.free-transform .resize[data-position="bottom"] {
				bottom: -6px;
				left: 50%;
				margin-left: -6px;
			}

			.free-transform .resize[data-position="left"] {
				left: -6px;
				top: 50%;
				margin-top: -8px;
			}

			.free-transform .resize[data-position="right"] {
				right: -6px;
				top: 50%;
				margin-top: -8px;
			}

			.free-transform .resize.n {
				cursor: n-resize;
			}

			.free-transform .resize.s {
				cursor: s-resize;
			}

			.free-transform .resize.e {
				cursor: e-resize;
			}

			.free-transform .resize.w {
				cursor: w-resize;
			}

			.free-transform .resize.ne {
				cursor: ne-resize;
			}

			.free-transform .resize.nw {
				cursor: nw-resize;
			}

			.free-transform .resize.se {
				cursor: se-resize;
			}

			.free-transform .resize.sw {
				cursor: sw-resize;
			}

			.free-transform .rotate {
				border-radius: 6px;
				width: 10px;
				height: 10px;
				top: -20px;
				left: -20px;
				cursor: pointer;
			}

			.free-transform.in-operation {
				border-style: hidden;
			}

			.free-transform.in-operation>div {
				display: none;
			}

			.free-transform>div.in-operation {
				display: block;
				background-color: #e74c3c;
			}

			.halo {
				position: absolute;
				pointer-events: none;
			}

			.halo>div {
				position: absolute;
				pointer-events: auto;
				width: 20px;
				height: 20px;
				background-size: 20px 20px;
				background-repeat: no-repeat;
				-moz-user-select: none;
				-webkit-user-select: none;
				-ms-user-select: none;
				user-select: none;
				-webkit-user-drag: none;
				user-drag: none;
			}

			.halo.animate>div {
				transition: background-size 80ms,width 80ms,height 80ms,top 150ms,left 150ms,bottom 150ms,right 150ms;
			}

			.halo.small>div {
				width: 15px;
				height: 15px;
				background-size: 15px 15px;
			}

			.halo.tiny>div {
				width: 10px;
				height: 10px;
				background-size: 10px 10px;
			}

			.halo .resize {
				bottom: -25px;
				right: -25px;
				cursor: se-resize;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2NjREODhDMjc4MkVFMjExODUyOEU5NTNCRjg5OEI3QiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowQTc4MzUwQjJGMEIxMUUyOTFFNUE1RTAwQ0EwMjU5NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowQTc4MzUwQTJGMEIxMUUyOTFFNUE1RTAwQ0EwMjU5NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NjREODhDMjc4MkVFMjExODUyOEU5NTNCRjg5OEI3QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2NjREODhDMjc4MkVFMjExODUyOEU5NTNCRjg5OEI3QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pk3oY88AAAEMSURBVHja7JftDYMgEIbRdABHcARG6CalGziCG3QE3KAj0A0cod3AEa6YUEMpcKeI9oeXvP5QuCeA90EBAGwPK7SU1hkZ12ldiT6F1oUycARDRHLBgiTiEzCwTNhNuRT8XOEog/AyMqlOXPEuZzx7q29aXGtIhLvQwfNuAgtrYgrcB+VWqH2BhceBD45ZE4EyB/7zIQTvCeAWgdpw1CqT2Sri2LsRZ4cddtg/GLfislo55oNZxE2ZLcFXT8haU7YED9yXpxsCGMvTn4Uqe7DIXJnsAqGYB5CjFnNT6yEE3qr7iIJT+60YXJUZQ3G8ALyof+JWfTV6xrluEuqkHw/ESW3CoJsBRVubtwADAI2b6h9uJAFqAAAAAElFTkSuQmCC);
			}

			.halo.small .resize {
				bottom: -19px;
				right: -19px;
			}

			.halo.tiny .resize {
				bottom: -13px;
				right: -13px;
			}

			.halo .remove {
				top: -21px;
				left: -25px;
				cursor: pointer;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO5JREFUeNrUV9sNwyAMtLoAI3SEjJIRMgqjdBRG8CiMQGnlVHwEOBAE19L9OdwRGz+IcNsibISLCBk48dlooB0RXCDNgeXbbntWbovCyVlNtkf4AeQnvJwJ//IwCQdy8zAZeynm/gYBPpcT7gbyNDGb4/4CnyOLb1M+MED+MVPxZfEhQASnFQ4hp4qIlJxAEd+KaQGlpiIC8bmCRZOvRNBL/kvGltp+RdRLfqK5wZhCITMdjaury5lB5OFBCuxvQjAtCZc/w+WFaHkpXt6MVLTj5QOJipFs+VCqYixXsZioWM1GLaf7yK45ZT1/CzAAESidXQn9F/MAAAAASUVORK5CYII=);
			}

			.halo.small .remove {
				top: -19px;
				left: -19px;
			}

			.halo.tiny .remove {
				top: -13px;
				left: -13px;
			}

			.halo .clone {
				top: -22px;
				left: 50%;
				margin-left: -10px;
				cursor: move;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2NjREODhDMjc4MkVFMjExODUyOEU5NTNCRjg5OEI3QiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxNTM0NjJBRjJGMkQxMUUyQkRFM0FCRTMxMDhFQkE2QiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxNTM0NjJBRTJGMkQxMUUyQkRFM0FCRTMxMDhFQkE2QiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NjREODhDMjc4MkVFMjExODUyOEU5NTNCRjg5OEI3QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2NjREODhDMjc4MkVFMjExODUyOEU5NTNCRjg5OEI3QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkJFWv4AAAD3SURBVHja5FfRDYMgED2bDsAIjsAIMAluoqs4CY7gCI7ABtTTnsEUNCVQanzJGT/Qx7t7HFBZa6EEHlAIxYh90HPYzCHul+pixM93TV1wfDRNA0qppGRSyh2x8A2q6xqEEIc/mqZpCcTZWJ/iaPR9D13XLe/fNqKiNd6lahxHMMb8jlhrvRlgGAbvYJwQTsytMcH9hjEGnPN0NUZS15khx2L2SMi1GwgqQfdSkKPJ1RRnau/ZMq9J3LbtVtfodezrw6H1nAp2NeWK2bm5Tx9lTyAfilNhXuOkTv/n7hTqwbFwN5DDVGcMHVIsM2fVu7lXt7s7vQQYAIMHB7xhVbHdAAAAAElFTkSuQmCC);
			}

			.halo.small .clone {
				top: -19px;
				margin-left: -7.5px;
			}

			.halo.tiny .clone {
				top: -13px;
				margin-left: -5px;
			}

			.halo .link {
				right: -25px;
				top: -webkit-calc(50% - 10px);
				top: calc(50% - 10px);
				cursor: move;
				cursor: -moz-grabbing;
				cursor: -webkit-grabbing;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIwRkVFNkM3MkU3RjExRTJBMDA3RkZBQzMyMzExQzIzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIwRkVFNkM4MkU3RjExRTJBMDA3RkZBQzMyMzExQzIzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjBGRUU2QzUyRTdGMTFFMkEwMDdGRkFDMzIzMTFDMjMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjBGRUU2QzYyRTdGMTFFMkEwMDdGRkFDMzIzMTFDMjMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5hjT/5AAAA8ElEQVR42syXwQ3DIAxFUbtAR+gIHLsSN2+SboA6CSOEMbghJqCAHKlNmwYwkWvpKwdinmRsY4Sos2sSJJkknxRX8rgG+C/ZJG4YG2XQt9kuSVMHcK0J96qGzgOgi+Ya+GhoFfwo6C5890wBIGqto5SScuYf2fvTKcMW895T4G/ZblrARLh5bQ5VTjnMg+ClyUCL0yA4iJ7ONABewu17koQIz8z+2iTCaY3hG7zG7yQYjS3UbMnFVk5sDYStZbJdEizX4hnBDqeD21bNOedECKF8lVLCWttTuvekx9+MPmzDHut4yzrQsz5hDn+0PQUYAOGQcmTsT0IpAAAAAElFTkSuQmCC);
			}

			.halo.small .link {
				right: -19px;
				top: -webkit-calc(50% - 8px);
				top: calc(50% - 8px);
			}

			.halo.tiny .link {
				right: -13px;
				top: -webkit-calc(50% - 5px);
				top: calc(50% - 5px);
			}

			.halo .fork {
				top: -21px;
				right: -25px;
				cursor: move;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUUEAUZcNUVHAAAALtJREFUWMPtlt0RgjAMgL9zAkZglI7ACLoJm8RNHIERGMER6ksfsIeRtsGq9LvLW2i+oz8JNBoHYAZcTQEfQoCupoAH7sBZS1jGDAwbCgwh1yfEDejfCSx/3SsksXAcIxsTZYfiSQJrEiUCT1sQ45TFNQkJ33aphzB1f9ckZK9rKBkHM2YqfYgsJIr5aYnJshfkSJj3Ak3C5fQCSwmTh+hTEh4YTwUCF+D6DRNPcTuuPpD8/UhWfShtNFQe+d/oVK9MAB0AAAAASUVORK5CYII=);
			}

			.halo.small .fork {
				top: -19px;
				right: -19px;
			}

			.halo.tiny .fork {
				top: -13px;
				right: -13px;
			}

			.halo .unlink {
				left: -25px;
				top: 50%;
				margin-top: -10px;
				cursor: pointer;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJCNjcxNUZBMkU3RjExRTI5RURCRDA5NDlGRDBFMDgwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJCNjcxNUZCMkU3RjExRTI5RURCRDA5NDlGRDBFMDgwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkI2NzE1RjgyRTdGMTFFMjlFREJEMDk0OUZEMEUwODAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkI2NzE1RjkyRTdGMTFFMjlFREJEMDk0OUZEMEUwODAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5htS6kAAABHElEQVR42uxW0Q2DIBBV0wEcwRHsBo7QERjBbkAnYARGaDdghI5gN9ANKCRHQy4HxFakH77kxeTAe95xd1JrrasSaKpCOIR3R2+oDLXHp+GQU3RAYhyezsZyCU8gwJGdgX3+wXcHfi1HyOwHGsQpuMjXprwFMU3QavGTtzHkwGJZIXoxFBBtyOer8opKog0ykQ0qrSoQpTsy7gfZg9EtKu/cnbBvm4iC454PijKUgQ4WYy9rot0Y6gBMhQvKoY70dYs+TERqAcOe4dXwsUXbWdF7IgsztM3/jsziqd69uLZqp/GbdgoNEJF7gMR+BC7KfuXInBIfwJrELF4Ss5yCLaiz4S3isyv6W8QXAbHXRaDI1ac+LvSHcC68BRgAHv/CnODh8mEAAAAASUVORK5CYII=);
			}

			.halo.small .unlink {
				left: -19px;
				margin-top: -8px;
			}

			.halo.tiny .unlink {
				left: -13px;
				margin-top: -5px;
			}

			.halo .rotate {
				bottom: -25px;
				left: -25px;
				cursor: move;
				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI1NTk5RUFBMkU3RjExRTI4OUIyQzYwMkMyN0MxMDE3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI1NTk5RUFCMkU3RjExRTI4OUIyQzYwMkMyN0MxMDE3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjU1OTlFQTgyRTdGMTFFMjg5QjJDNjAyQzI3QzEwMTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjU1OTlFQTkyRTdGMTFFMjg5QjJDNjAyQzI3QzEwMTciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6W+5aDAAABJElEQVR42syXbRGDMAyGYTcBOBgSkICESWAOmAMcTAJzgAQksCnYHFRC13Jlx7qkDf0Acvf+6ZF7mjRNQ8o5T/ZqmVAt1AkxIa5JrvXqmywUsAVANkmf3BV6RqKjSvpWlqD+7OYBhKKHoMNS6EuddaPUqjUqfIJyPb2Ysyye0pC6Qm0I8680KJ/vhDmcFbU2mAb9glvk48KhMAtiYY7RYunxuRVWcI2cqa/ZegBYFGWA5jPYwAy4MrGhI1hf6FaA8gPg/PSA9tSbcAz8il2XOIRM9SILXVxki3GdEvUmD6bhIHYDQeFrtEwUvsYj0WBRx34Wc5cXJcQg8GMpMPrUBsBb6DHrbie1IdNUeRe6UNLVRB72Nh1v9zfQR/+FSbf6afsIMAB0elCwFZfPigAAAABJRU5ErkJggg==);
			}

			.halo.small .rotate {
				bottom: -19px;
				left: -19px;
			}

			.halo.tiny .rotate {
				bottom: -13px;
				left: -13px;
			}

			.halo .box {
				position: absolute;
				top: 100%;
				margin-top: 30px;
				left: -20px;
				right: -20px;
				text-align: center;
				color: white;
				font-size: 10px;
				line-height: 14px;
				background-color: #1abc9c;
				border-radius: 6px;
				padding: 6px;
			}

			.halo.small .box {
				margin-top: 25px;
			}

			.halo.tiny .box {
				margin-top: 20px;
			}

			.halo .link.halo-magnet {
				opacity: .1;
				transition: none;
				display: none;
			}

			.halo .link.halo-magnet:hover {
				opacity: 1;
			}

			.free-transform {
				position: absolute;
				pointer-events: none;
				border: 1px dashed black;
				border-radius: 5px;
			}

			.free-transform>div {
				position: absolute;
				pointer-events: auto;
				background-color: #c0392b;
				border: 1px solid black;
			}

			.free-transform>div:hover {
				background-color: #e74c3c;
			}

			.free-transform .resize {
				border-radius: 6px;
				width: 8px;
				height: 8px;
			}

			.free-transform .resize[data-position="top-left"] {
				top: -6px;
				left: -6px;
			}

			.free-transform .resize[data-position="top-right"] {
				top: -6px;
				right: -6px;
			}

			.free-transform .resize[data-position="bottom-left"] {
				bottom: -6px;
				left: -6px;
			}

			.free-transform .resize[data-position="bottom-right"] {
				bottom: -6px;
				right: -6px;
			}

			.free-transform .resize[data-position="top"] {
				top: -6px;
				left: 50%;
				margin-left: -6px;
			}

			.free-transform .resize[data-position="bottom"] {
				bottom: -6px;
				left: 50%;
				margin-left: -6px;
			}

			.free-transform .resize[data-position="left"] {
				left: -6px;
				top: 50%;
				margin-top: -8px;
			}

			.free-transform .resize[data-position="right"] {
				right: -6px;
				top: 50%;
				margin-top: -8px;
			}

			.free-transform .resize.n {
				cursor: n-resize;
			}

			.free-transform .resize.s {
				cursor: s-resize;
			}

			.free-transform .resize.e {
				cursor: e-resize;
			}

			.free-transform .resize.w {
				cursor: w-resize;
			}

			.free-transform .resize.ne {
				cursor: ne-resize;
			}

			.free-transform .resize.nw {
				cursor: nw-resize;
			}

			.free-transform .resize.se {
				cursor: se-resize;
			}

			.free-transform .resize.sw {
				cursor: sw-resize;
			}

			.free-transform .rotate {
				border-radius: 6px;
				width: 10px;
				height: 10px;
				top: -20px;
				left: -20px;
				cursor: pointer;
			}

			.free-transform.in-operation {
				border-style: hidden;
			}

			.free-transform.in-operation>div {
				display: none;
			}

			.free-transform>div.in-operation {
				display: block;
				background-color: #e74c3c;
			}

			.selection {
				position: absolute;
				background-color: #3498db;
				opacity: .3;
				border: 2px solid #2980b9;
				overflow: visible;
			}

			.selection.selected {
				background-color: transparent;
				border: 0;
				opacity: 1;
				cursor: move;
				position: static;
				height: 0!important;
			}

			.selection-box {
				position: absolute;
				border: 1px solid black;
			}

			.paper-scroller {
				position: relative;
				overflow: scroll;
				cursor: move;
				cursor: -moz-grabbing;
				cursor: -webkit-grabbing;
			}

			.inspector {
				position: absolute;
				top: 0;
				bottom: 0;
				right: 0;
				left: 0;
				overflow: auto;
			}

			.inspector label {
				display: block;
				margin-top: 5px;
				margin-bottom: 10px;
				font-size: 12px;
			}

			.inspector input,.inspector textarea {
				width: 200px;
				text-shadow: 0 -1px 0 #000;
				color: #ddd;
				box-shadow: inset 0 0 0 1px rgba(0,0,0,0.1),0px 0 0 1px rgba(255,255,255,0.1);
				border: 1px solid black;
				background: transparent;
				height: 20px;
				line-height: 20px;
			}

			.inspector input[type="range"] {
				height: 1px;
				line-height: 1px;
			}

			@media screen and (min-width:0\0) {
				.inspector input[type="range"] {
					height: 20px;
					line-height: 20px;
				}
			}

			@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none) {
				.inspector .group>form {
					height: 60px;
				}

				.inspector input[type="range"] {
					height: 10px;
					border-style: hidden;
					box-shadow: none;
				}

				.inspector input[type="range"]::-ms-fill-lower {
					background-color: lightgray;
				}

				.inspector input[type="range"]::-ms-fill-upper {
					background-color: white;
				}

				.inspector input[type="range"]::-ms-track {
					color: transparent;
				}

				.inspector input[type="range"]::-ms-thumb {
					background-color: #242424;
					border-style: hidden;
				}

				.inspector input[type="range"]::-ms-tooltip {
					display: none;
				}
			}

			.inspector .group {
				overflow: hidden;
				padding: 10px;
			}

			.inspector .group.closed {
				height: 16px;
			}

			.inspector .group>.group-label {
				padding: 5px 4px;
				position: relative;
				left: -10px;
				margin-right: -20px;
				margin-top: 0;
				margin-bottom: 0;
				font-size: 10px;
				font-weight: 700;
				text-transform: uppercase;
				border-top: 1px solid #3a3a3a;
				border-bottom: 2px solid #1f1f1f;
				background: #242424;
				cursor: pointer;
				-webkit-user-select: none;
				-moz-user-select: none;
				-ms-user-select: none;
				user-select: none;
			}

			.inspector .group>.group-label:before {
				content: '';
				width: 0;
				height: 0;
				display: inline-block;
				margin-left: 2px;
				margin-right: 5px;
				position: relative;
				top: 5px;
				border-top: 5px solid white;
				border-right: 5px solid transparent;
				border-left: 5px solid transparent;
				border-bottom: 5px solid transparent;
			}

			.inspector .group.closed>.group-label:before {
				top: 2px;
				left: 2px;
				border-top: 5px solid transparent;
				border-bottom: 5px solid transparent;
				border-right: 5px solid transparent;
				border-left: 5px solid white;
			}

			.link-tools .tool-options {
				display: block;
			}

			.inspector .toggle {
				position: relative;
				width: 97px;
				height: 14px;
			}

			.inspector .toggle input {
				top: 0;
				right: 0;
				bottom: 0;
				left: 0;
				-ms-filter: "alpha(opacity=0)";
				filter: alpha(opacity=0);
				-moz-opacity: 0;
				opacity: 0;
				z-index: 100;
				position: absolute;
				width: 100%;
				height: 100%;
				cursor: pointer;
				box-sizing: border-box;
				padding: 0;
				box-shadow: none;
				-webkit-appearance: none;
			}

			.inspector .toggle input:checked+span {
				background: #9abb82;
			}

			.inspector .toggle span {
				display: block;
				width: 100%;
				height: 100%;
				background: #a5a39d;
				border-radius: 40px;
				box-shadow: inset 0 3px 8px 1px rgba(0,0,0,0.2),0 1px 0 rgba(255,255,255,0.5);
				position: relative;
			}

			.inspector .toggle span:before {
				box-sizing: border-box;
				padding: 0;
				margin: 0;
				content: "";
				position: absolute;
				z-index: -1;
				top: -18px;
				right: -18px;
				bottom: -18px;
				left: -18px;
				border-radius: inherit;
				background: #eee;
				background: -moz-linear-gradient(#e5e7e6,#eee);
				background: -ms-linear-gradient(#e5e7e6,#eee);
				background: -o-linear-gradient(#e5e7e6,#eee);
				background: -webkit-gradient(linear,0 0,0 100%,from(#e5e7e6),to(#eee));
				background: -webkit-linear-gradient(#e5e7e6,#eee);
				background: linear-gradient(#e5e7e6,#eee);
				box-shadow: 0 1px 0 rgba(255,255,255,0.5);
			}

			.inspector .toggle input:checked+span i {
				right: -1%;
			}

			.inspector .toggle input:checked+span i:before {
				content: "on";
				right: 115%;
				color: #82a06a;
				text-shadow: 0 1px 0 #afcb9b,0 -1px 0 #6b8659;
			}

			.inspector .toggle span i {
				display: block;
				height: 100%;
				width: 60%;
				border-radius: inherit;
				background: silver;
				position: absolute;
				z-index: 2;
				right: 40%;
				top: 0;
				background: #b2ac9e;
				background: -moz-linear-gradient(#f7f2f6,#b2ac9e);
				background: -ms-linear-gradient(#f7f2f6,#b2ac9e);
				background: -o-linear-gradient(#f7f2f6,#b2ac9e);
				background: -webkit-gradient(linear,0 0,0 100%,from(#f7f2f6),to(#b2ac9e));
				background: -webkit-linear-gradient(#f7f2f6,#b2ac9e);
				background: linear-gradient(#f7f2f6,#b2ac9e);
				box-shadow: inset 0 1px 0 white,0 0 8px rgba(0,0,0,0.3),0 5px 5px rgba(0,0,0,0.2);
			}

			.inspector .toggle span i:before {
				content: "off";
				text-transform: uppercase;
				font-style: normal;
				font-weight: bold;
				color: rgba(0,0,0,0.4);
				text-shadow: 0 1px 0 #bcb8ae,0 -1px 0 #97958e;
				font-family: Helvetica,Arial,sans-serif;
				font-size: 10px;
				position: absolute;
				top: 50%;
				margin-top: -5px;
				right: -50%;
			}

			.inspector .btn-list-add,.inspector .btn-list-del {
				background: transparent;
				color: white;
				border: 1px solid gray;
				cursor: pointer;
				border-radius: 2px;
				box-shadow: 1px 1px 1px black;
				width: 23px;
				margin: 2px;
				margin-right: 8px;
			}

			.inspector .btn-list-add:hover,.inspector .btn-list-del:hover {
				box-shadow: inset 1px 1px 1px black;
			}

			.inspector .list-items {
				margin-top: 4px;
			}

			.inspector .list-item {
				margin-top: 2px;
				border: 1px solid #242424;
				padding: 10px;
				background-color: #3a3a3a;
				box-shadow: inset 0 0 2px gray;
			}

			.inspector .list-item input {
				width: 150px;
			}

			.inspector .list-item>label {
				display: none;
			}

			.tooltip {
				position: fixed;
				z-index: 100;
				border-radius: 5px;
				background-color: #333;
				border: 2px solid #242424;
				color: #bcbcbc;
				pointer-events: none;
				padding: 10px;
				font-size: 14px;
				text-shadow: 0 -1px 0 #000;
			}

			.tooltip.small {
				padding: 5px;
				font-size: 10px;
			}

			.tooltip:after,.tooltip:before {
				border: solid transparent;
				content: " ";
				height: 0;
				width: 0;
				position: absolute;
				pointer-events: none;
			}

			.tooltip.left:after,.tooltip.left:before {
				right: 100%;
				top: 50%;
			}

			.tooltip.right:after,.tooltip.right:before {
				top: 50%;
				left: 100%;
			}

			.tooltip.top:after,.tooltip.top:before {
				left: 50%;
				bottom: 100%;
			}

			.tooltip.bottom:after,.tooltip.bottom:before {
				left: 50%;
				top: 100%;
			}

			.tooltip:after {
				border-width: 6px;
			}

			.tooltip.left:after {
				border-right-color: #333;
				margin-top: -6px;
			}

			.tooltip.right:after {
				border-left-color: #333;
				margin-top: -6px;
			}

			.tooltip.top:after {
				border-bottom-color: #333;
				margin-left: -6px;
			}

			.tooltip.bottom:after {
				border-top-color: #333;
				margin-left: -6px;
			}

			.tooltip:before {
				border-width: 8px;
			}

			.tooltip.left:before {
				border-right-color: #242424;
				margin-top: -8px;
			}

			.tooltip.right:before {
				border-left-color: #242424;
				margin-top: -8px;
			}

			.tooltip.top:before {
				border-bottom-color: #242424;
				margin-left: -8px;
			}

			.tooltip.bottom:before {
				border-top-color: #242424;
				margin-left: -8px;
			}

			.toolbar-container {
				position: absolute;
				top: 0;
				left: 0;
				right: 0;
				padding-left: 244px;
				height: 40px;
			}

			.stencil-container {
				position: absolute;
				left: 0;
				top: 156px;
				bottom: 20px;
				width: 240px;
			}

			.inspector-container {
				position: absolute;
				top: 40px;
				right: 0;
				bottom: 20px;
				width: 240px;
			}

			.paper-container {
				position: absolute;
				top: 40px;
				left: 241px;
				right: 241px;
				bottom: 26px;
				overflow: hidden;
			}

			.paper-container .paper-scroller {
				width: 100%;
				height: 100%;
			}

			.statusbar-container {
				position: absolute;
				left: 0;
				bottom: 0;
				right: 0;
				height: 20px;
			}

			.paper-container {
				background-color: hsla(220,11%,97%,.95);
			}

			.paper-container svg {
				background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAHUlEQVQYV2NkYGAwBuKzQIwXMBJSAJMfVUidcAQAnUQBC6jEGBUAAAAASUVORK5CYII=');
				background-color: white;
				box-shadow: 1px 1px 1px lightgray;
			}

			.element.basic.Rect rect,.element.basic.Circle circle,.element.devs.Atomic rect {
				-webkit-svg-shadow: 2px 2px 5px gray;
			}

			.element.basic.Path path {
				-webkit-svg-shadow: 1px 1px 2px gray;
			}

			.inspector-container {
				border: 1px solid #333;
				border-top: 1px solid #4f4f4f;
				color: #bcbcbc;
				text-shadow: 0 -1px 0 #000;
				background-color: #333;
			}

			.stencil-container {
				border-top: 1px solid #4f4f4f;
				background-color: hsla(220,11%,97%,.95);
				color: #bcbcbc;
			}

			.stencil-container>label {
				display: block;
				text-align: center;
				background-color: #333;
				font-size: 10px;
				line-height: 20px;
				height: 20px;
				text-shadow: 0 -1px 0 #000;
			}

			.stencil-container>.btn-expand,.stencil-container>.btn-collapse {
				position: absolute;
				top: 2px;
				left: 2px;
				background: 0;
				border: 0;
				outline: 0;
				color: #bcbcbc;
				cursor: pointer;
				width: 20px;
				height: 16px;
				line-height: 16px;
				margin: 0;
				padding: 0;
				border: 1px solid #4f4f4f;
			}

			.stencil-container>.btn-collapse {
				left: 25px;
			}

			.stencil {
				position: absolute;
				left: 0;
				top: 20px;
				bottom: 0;
				right: 0;
				width: 100%;
				border: 0;
				height: auto;
				overflow: auto;
			}

			.stencil .group {
				max-height: 700px;
			}

			.stencil .group .elements {
				margin-left: -10px;
				background-color: hsla(220,11%,97%,.95);
			}

			.stencil .elements .element.basic.Image text,.stencil .elements .element.devs.Atomic .inPorts text,.stencil .elements .element.devs.Atomic .outPorts text,.stencil .elements .element.pn.Transition text {
				display: none;
			}

			.halo .box {
				box-shadow: 2px 2px 5px lightgray;
				border: 1px solid #4f4f4f;
				text-shadow: 0 -1px 0 #000;
				font-size: 8px;
				color: #bcbcbc;
				background-color: #333;
			}

			.halo .resize {
				display: none;
			}

			.halo .clone {
				left: auto;
				top: auto;
				bottom: -25px;
				right: -25px;
			}

			.halo.small .clone {
				left: auto;
				top: auto;
				bottom: -19px;
				right: -19px;
			}

			.halo.tiny .clone {
				left: auto;
				top: auto;
				bottom: -13px;
				right: -13px;
			}

			.selection-box {
				border: 2px dashed #f39c12;
				padding-right: 5px;
				padding-bottom: 5px;
				margin-top: -4px;
				margin-left: -4px;
				box-shadow: 2px 2px 5px lightgray;
			}

			.toolbar-container {
				background-color: #333;
				color: #bcbcbc;
				text-shadow: 0 -1px 0 #000;
				border-top: 1px solid #4f4f4f;
			}

			.toolbar-container .btn {
				background-color: #fafafa;
				background-image: -webkit-linear-gradient(top,#fff,#f2f2f2);
				background-image: -moz-linear-gradient(top,#fff,#f2f2f2);
				background-image: linear-gradient(top,#fff,#f2f2f2);
				background-repeat: repeat-x;
				border: 1px solid #d4d4d4;
				color: #333;
				text-shadow: none;
				border-top: 0;
			}

			.toolbar-container label,.toolbar-container output {
				font-size: .8em;
			}

			.toolbar-container label {
				margin-left: 10px;
			}

			.toolbar-container input[type="range"] {
				width: 80px;
				text-shadow: 0 -1px 0 #000;
				color: #ddd;
				box-shadow: inset 0 0 0 1px rgba(0,0,0,0.1),0px 0 0 1px rgba(255,255,255,0.1);
				border: 1px solid black;
				background: transparent;
				height: 1px;
				vertical-align: middle;
			}

			@media screen and (min-width:0\0) {
				.toolbar-container input[type="range"] {
					height: 20px;
					text-align: right;
				}

				#output-gridsize {
					display: none;
				}
			}

			@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none) {
				.toolbar-container input[type="range"] {
					height: 5px;
					border-style: hidden;
					box-shadow: none;
					position: absolute;
				}

				#output-gridsize {
					margin-left: 90px;
					display: inline;
				}

				.toolbar-container input[type="range"]::-ms-fill-lower {
					background-color: lightgray;
				}

				.toolbar-container input[type="range"]::-ms-fill-upper {
					background-color: white;
				}

				.toolbar-container input[type="range"]::-ms-track {
					color: transparent;
				}

				.toolbar-container input[type="range"]::-ms-thumb {
					background-color: #242424;
					border-style: hidden;
				}

				.toolbar-container input[type="range"]::-ms-tooltip {
					display: none;
				}
			}

			.statusbar-container {
				background-color: hsla(220,11%,97%,.95);
				border-top: 1px solid lightgray;
			}

			.statusbar-container.error {
				background-color: #e74c3c;
				color: white;
				text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
				background-image: -webkit-linear-gradient(top,#e74c3c,#c0392b);
				background-image: -moz-linear-gradient(top,#e74c3c,#c0392b);
				border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);
				font-size: 10px;
				line-height: 20px;
			}

			.free-transform .rotate {
				display: none;
			}

			.free-transform .resize {
				width: 6px;
				height: 6px;
				background-color: white;
				border-width: 2px;
			}

			.free-transform>div.in-operation,.free-transform .resize[data-position]:hover {
				width: 10px;
				height: 10px;
				background-color: white;
				z-index: 9;
			}

			.free-transform .resize[data-position="top-left"] {
				border-radius: 0 0 5px 0;
				top: -1px;
				left: -1px;
				z-index: 3;
			}

			.free-transform .resize[data-position="top-right"] {
				border-radius: 0 0 0 5px;
				top: -1px;
				right: -1px;
				z-index: 2;
			}

			.free-transform .resize[data-position="bottom-left"] {
				border-radius: 0 5px 0 0;
				bottom: -1px;
				left: -1px;
				z-index: 2;
			}

			.free-transform .resize[data-position="bottom-right"] {
				border-radius: 5px 0 0 0;
				bottom: -1px;
				right: -1px;
				z-index: 3;
			}

			.free-transform .resize[data-position="top"] {
				border-radius: 0 0 5px 5px;
				top: -1px;
				left: 50%;
				margin-left: -5px;
				z-index: 1;
			}

			.free-transform .resize[data-position="bottom"] {
				border-radius: 5px 5px 0 0;
				bottom: -1px;
				left: 50%;
				margin-left: -5px;
				z-index: 1;
			}

			.free-transform .resize[data-position="left"] {
				border-radius: 0 5px 5px 0;
				left: -1px;
				top: 50%;
				margin-top: -5px;
				z-index: 1;
			}

			.free-transform .resize[data-position="right"] {
				border-radius: 5px 0 0 5px;
				right: -1px;
				top: 50%;
				margin-top: -5px;
				z-index: 1;
			}

			.free-transform .resize[data-position="bottom"]:hover,.free-transform .resize[data-position="top"]:hover,.free-transform .resize[data-position="bottom"].in-operation,.free-transform .resize[data-position="top"].in-operation {
				margin-left: -7px;
			}

			.free-transform .resize[data-position="left"]:hover,.free-transform .resize[data-position="right"]:hover,.free-transform .resize[data-position="left"].in-operation,.free-transform .resize[data-position="right"].in-operation {
				margin-top: -7px;
			}

			.free-transform[data-type="devs.Atomic"] .resize[data-position="left"],.free-transform[data-type="devs.Atomic"] .resize[data-position="right"] {
				display: none;
			}

			html,body {
				margin: 0;
				padding: 0;
			}

			body {
				-webkit-user-select: none;
				-moz-user-select: -moz-none;
				-khtml-user-select: none;
				-ms-user-select: none;
				user-select: none;
				font-family: Arial;
				font-family: "Source Sans Pro",sans-serif;
			}

			h1 {
				position: absolute;
				z-index: 1;
				top: 8px;
				left: 90px;
				color: white;
				margin: 0;
				padding: 0;
				font-size: 18px;
			}

			.btn {
				background-color: #49afcd;
				padding: 4px 8px;
				color: white;
				text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
				font-size: 11px;
				line-height: 30px;
				border: 1px solid #ccc;
				background-image: -webkit-linear-gradient(top,#5bc0de,#2f96b4);
				background-image: -moz-linear-gradient(top,#5bc0de,#2f96b4);
				background-image: linear-gradient(top,#5bc0de,#2f96b4);
				border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);
				margin: 0;
				margin-left: -5px;
				cursor: pointer;
			}

			.btn:hover {
				opacity: .9;
			}

			.btn>img {
				vertical-align: middle;
				height: 20px;
			}

            .toolbar-container .btn-secondary {
                background-color: #f1c40f;
                padding: 12px 18px 13px;
                line-height: 13px;
                border: none;
                color: white;
                font-size: 18px;
                text-shadow: none;
                cursor: pointer;
                border-radius: 5px;
                display: block;
                text-decoration: none;
                float: right;
                width: 60px;
                position: absolute;
                top: 0;
                right: 1px;
            }
            .toolbar-container .btn-secondary:hover {
                background-color: #f5d313;
            }
            #___plusone_0 {
                position: absolute;
                z-index: -1;
                top: 13px;
                right: 188px;
            }
            h1 > a { 
                text-decoration: none;
                color: white;
            }
			
			#diagram_logo {
				position: absolute;
				background-color: #333333;
				width: 240px;
				height: 156px;
				overflow: hidden;
				z-index: 100;
			}