diff --git a/assets/modules/dwarventech/virtualcomputer/bfvt.kts b/assets/modules/dwarventech/virtualcomputer/bfvt.kts new file mode 100644 index 000000000..c36eaa079 --- /dev/null +++ b/assets/modules/dwarventech/virtualcomputer/bfvt.kts @@ -0,0 +1,228 @@ +import java.io.InputStream +import java.io.OutputStream + +/** + * Just to make things slow down + * + * This version of Brainfuck fills memory with sanitised input program, and initialises + * memory pointer to be just right after your input program. This brings three major improvements: + * + * 1. Possibility of Self-modifying code + * 2. Fucks your brain even more + * 3. Forces you to enhance your calm + * + * Also note that program counter and memory pointer will wrap around when commands are executed, + * but not when program is being loaded (will throw OutOfMemoryException). + * + * If memory at Program Counter is equal to 0xFF, it is interpreted as termination. (0xFF is NOT a + * valid opcode for input program, however) + * + * Created by minjaesong on 17-04-29. + */ + +class BFVM( + val memSize: Int = 65536, + val stdout: OutputStream = System.out, + val stdin: InputStream = System.`in` +) { + private val ZERO = 0.toByte() + + private val INP = '>'.toByte() + private val DEP = '<'.toByte() + private val INC = '+'.toByte() + private val DEC = '-'.toByte() + private val PRN = '.'.toByte() + private val RDI = ','.toByte() + private val JPZ = '['.toByte() + private val JPN = ']'.toByte() + private val CYA = 0xFF.toByte() + + private val bfOpcodes = hashSetOf(43,44,45,46,60,62,91,93) + + private val instSet = hashMapOf Unit>( + Pair(INP, { INP() }), + Pair(DEP, { DEP() }), + Pair(INC, { INC() }), + Pair(DEC, { DEC() }), + Pair(PRN, { PRN() }), + Pair(RDI, { RDI() }), + Pair(JPZ, { JPZ() }), + Pair(JPN, { JPN() }) + ) + + + private var r1: Byte = ZERO // Register One (Data register) + private var r2 = 0 // Register Two (Scratchpad); theoretically I can use R1 but it limits bracket depth to 254 + private var mp = 0 // Memory Pointer + private var pc = 0 // Program Counter + private var ir = 0 // Instruction Register; does lookahead ahd lookbehind + + private val mem = ByteArray(memSize) + + + /* + Input program is loaded into the memory from index zero. + + Interrupts are hard-coded, 'cause why not? + + Code Mnemo. Desc. + ----|------|----- + INP > Increment pointer + DEP < Decrement pointer + INC + Increment memory + DEC - Decrement memory + PRN . Print as text + RDI , Read from input + JPZ [ Jump past to matching ] when mem is zero + JPN ] Jump back to matching [ when mem is non-zero + + [ Internal operations ] + CYA 0xFF Marks end of the input program + */ + + // NOTE: INC_PC is implied + private fun INP() { + INC_MP() + } + private fun DEP() { + DEC_MP() + } + private fun INC() { + r1 = mem[mp] + r1++ + mem[mp] = r1 + } + private fun DEC() { + r1 = mem[mp] + r1-- + mem[mp] = r1 + } + private fun PRN() { + stdout.write(mem[mp].toInt()) + } + private fun RDI() { + r1 = stdin.read().toByte() + mem[mp] = r1 + } + private fun JPZ() { + if (mem[mp] == ZERO) { + // lookahead + ir = pc + r2 = 0 + + while (r2 != -1) { + INC_IR() + if (JPZ == mem[ir]) { + r2++ + } + else if (JPN == mem[ir]) { + r2-- + } + } + + pc = ir + } + } + private fun JPN() { + if (mem[mp] != ZERO) { + // lookbehind + ir = pc + r2 = 0 + + while (r2 != -1) { + DEC_IR() + if (JPN == mem[ir]) { + r2++ + } + else if (JPZ == mem[ir]) { + r2-- + } + } + + pc = ir + } + } + // END OF NOTE (INC_PC is implied) + + + fun execute() { + while (mem[pc] != CYA) { + //println("pc = $pc, mp = $mp, inst = ${mem[pc].toChar()}, mem = ${mem[mp]}") + instSet[mem[pc]]?.invoke() // fetch-decode-execute in one line + INC_PC() + } + } + + fun loadProgram(program: String) { + val program = program.toByteArray(charset = Charsets.US_ASCII) + + pc = 0 // FOR NOW it's PC for input program + mp = 0 // where to dump input bytes + + while (pc < program.size) { + if (pc >= memSize - 1) { + throw OutOfMemoryError("Virtual Machine Out of Memory") + } + + r1 = program[pc] + + if (r1 in bfOpcodes) { + mem[mp] = r1 + INC_MP() + } + + INC_PC() + } + + + mem[program.size] = CYA + mp = (program.size + 1) mod memSize + pc = 0 + ir = 0 + } + + + private fun INC_PC() { pc = (pc + 1) mod memSize } + private fun INC_IR() { ir = (ir + 1) mod memSize } + private fun DEC_IR() { ir = (ir - 1) mod memSize } + private fun INC_MP() { mp = (mp + 1) mod memSize } + private fun DEC_MP() { mp = (mp - 1) mod memSize } + private infix fun Int.mod(other: Int) = Math.floorMod(this, other) +} + + +val vm = BFVM() + +val factorials = """ +github (dot) com/saulpw/brainfuck/blob/master/tests/facto (dot) b + +++++++++++>>>+>>>>+>+<[[+++++[>++++ +++++<-]>.<++++++[>--------<-]+<<]<< +[<<]<.>>>>+<[->[<+>-[<+>-[<+>-[<+>- +[<+>-[<+>-[<+>-[<+>-[<+>-[<[-]>-+>[ +<->-]<[->>>[>>]<<[->[>>+<<-]>+<<<<] +<]>[-]+>+<<]]]]]]]]]]<[>+<-]+>>]<<[ +<<]>>[->>[>>]>>[-<<[<<]<<[<<]>[>[>> +]>>[>>]>>[>>]>+>+<<<<[<<]<<[<<]<<[< +<]>-]>[>>]>>[>>]>>[>>]>[<<<[<<]<<[< +<]<<[<<]>+>[>>]>>[>>]>>[>>]>-]<<<[< +<]>[>[>>]>+>>+<<<<<[<<]>-]>[>>]>[<< +<[<<]>+>[>>]>-]>>[<[<<+>+>-]<[>>>+< +<<-]<[>>+<<-]>>>-]<[-]>>+[>[>>>>]>[ +>>>>]>[-]+>+<[<<<<]>-]>[>>>>]>[>>>> +]>->-[<<<+>>+>-]<[>+<-]>[[<<+>+>-]< +[<->-[<->-[<->-[<->-[<->-[<->-[<->- +[<->-[<->-[<-<---------->>[-]>>>>[- +]+>+<<<<<]]]]]]]]]]<[>>+<<-]>>]<+<+ +<[>>>+<<<-]<<[<<<<]<<<<<[<<]+>>]>>> +>>[>>>>]+>[>>>>]<<<<[-<<<<]>>>>>[<< +<<]<<<<<[<<]<<[<<]+>>]>>[>>]>>>>>[- +>>>>]<<[<<<<]>>>>[>>>>]<<<<<<<<[>>> +>[<<+>>->[<<+>>-]>]<<<<[<<]<<]<<<<< +[->[-]>>>>>>>>[<<+>>->[<<+>>-]>]<<< +<[<<]<<<<<<<]>>>>>>>>>[<<<<<<<+>>>> +>>>->[<<<<<<<+>>>>>>>-]>]<<<<<<<<<] +""" + +vm.loadProgram(factorials) +vm.execute() diff --git a/lib/kotlin-reflect.jar b/lib/kotlin-reflect.jar index c27a45451..5d6aea243 100755 Binary files a/lib/kotlin-reflect.jar and b/lib/kotlin-reflect.jar differ diff --git a/lib/kotlin-runtime-sources.jar b/lib/kotlin-runtime-sources.jar index 8497bcdee..4113a1c88 100755 Binary files a/lib/kotlin-runtime-sources.jar and b/lib/kotlin-runtime-sources.jar differ diff --git a/lib/kotlin-runtime.jar b/lib/kotlin-runtime.jar index bde2b4b9c..9c7cc8b80 100755 Binary files a/lib/kotlin-runtime.jar and b/lib/kotlin-runtime.jar differ diff --git a/work_files/UML/actors.mdj b/work_files/UML/actors.mdj index 624188dce..0899ade55 100644 --- a/work_files/UML/actors.mdj +++ b/work_files/UML/actors.mdj @@ -50,7 +50,7 @@ "containerChangeable": false, "containerExtending": false, "left": 81, - "top": 1017, + "top": 693, "width": 0, "height": 13, "autoResize": false, @@ -84,7 +84,7 @@ "containerChangeable": false, "containerExtending": false, "left": 66, - "top": 1017, + "top": 693, "width": 0, "height": 13, "autoResize": false, @@ -118,7 +118,7 @@ "containerChangeable": false, "containerExtending": false, "left": 111, - "top": 1018, + "top": 694, "width": 0, "height": 13, "autoResize": false, @@ -150,7 +150,7 @@ "$ref": "AAAAAAFYplN+AWbNDUo=" }, "lineStyle": 2, - "points": "384:1024;96:1024;96:536", + "points": "352:700;96:700;96:536", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -192,8 +192,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 557, - "top": 1033, + "left": 533, + "top": 687, "width": 0, "height": 13, "autoResize": false, @@ -226,8 +226,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 557, - "top": 1048, + "left": 533, + "top": 702, "width": 0, "height": 13, "autoResize": false, @@ -260,8 +260,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 558, - "top": 1003, + "left": 534, + "top": 657, "width": 0, "height": 13, "autoResize": false, @@ -293,7 +293,7 @@ "$ref": "AAAAAAFYplR452dt4u8=" }, "lineStyle": 2, - "points": "608:1024;508:1024", + "points": "592:678;476:678", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -336,7 +336,7 @@ "containerChangeable": false, "containerExtending": false, "left": 446, - "top": 591, + "top": 319, "width": 0, "height": 13, "autoResize": false, @@ -370,7 +370,7 @@ "containerChangeable": false, "containerExtending": false, "left": 461, - "top": 591, + "top": 319, "width": 0, "height": 13, "autoResize": false, @@ -404,7 +404,7 @@ "containerChangeable": false, "containerExtending": false, "left": 417, - "top": 592, + "top": 320, "width": 0, "height": 13, "autoResize": false, @@ -436,7 +436,7 @@ "$ref": "AAAAAAFYplU3SGe+1TE=" }, "lineStyle": 2, - "points": "432:572;432:624", + "points": "432:300;432:352", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -485,8 +485,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -352, - "top": 544, + "left": -224, + "top": 432, "width": 0, "height": 13, "autoResize": false, @@ -510,8 +510,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 133, - "top": 647, + "left": 197, + "top": 591, "width": 96.75732421875, "height": 13, "autoResize": false, @@ -536,8 +536,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -352, - "top": 544, + "left": -224, + "top": 432, "width": 96, "height": 13, "autoResize": false, @@ -562,8 +562,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -352, - "top": 544, + "left": -224, + "top": 432, "width": 0, "height": 13, "autoResize": false, @@ -582,8 +582,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 128, - "top": 640, + "left": 192, + "top": 584, "width": 106.75732421875, "height": 25, "autoResize": false, @@ -618,8 +618,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 128, - "top": 665, + "left": 192, + "top": 609, "width": 106.75732421875, "height": 10, "autoResize": false @@ -642,8 +642,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 128, - "top": 675, + "left": 192, + "top": 619, "width": 106.75732421875, "height": 10, "autoResize": false @@ -666,8 +666,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -176, - "top": 272, + "left": -112, + "top": 216, "width": 10, "height": 10, "autoResize": false @@ -690,8 +690,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -176, - "top": 272, + "left": -112, + "top": 216, "width": 10, "height": 10, "autoResize": false @@ -706,8 +706,8 @@ "showShadow": true, "containerChangeable": true, "containerExtending": false, - "left": 128, - "top": 640, + "left": 192, + "top": 584, "width": 106.75732421875, "height": 45, "autoResize": false, @@ -766,8 +766,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 81, - "top": 649, + "left": 209, + "top": 553, "width": 0, "height": 13, "autoResize": false, @@ -800,8 +800,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 66, - "top": 649, + "left": 194, + "top": 553, "width": 0, "height": 13, "autoResize": false, @@ -834,8 +834,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 111, - "top": 650, + "left": 238, + "top": 554, "width": 0, "height": 13, "autoResize": false, @@ -867,7 +867,7 @@ "$ref": "AAAAAAFYplWBi2f5GNY=" }, "lineStyle": 2, - "points": "128:656;96:656;96:536", + "points": "224:584;224:536", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -2654,8 +2654,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 56, - "top": 1352, + "left": -8, + "top": 696, "width": 0, "height": 13, "autoResize": false, @@ -2679,8 +2679,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 389, - "top": 991, + "left": 357, + "top": 663, "width": 114.50537109375, "height": 13, "autoResize": false, @@ -2705,8 +2705,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 56, - "top": 1352, + "left": -8, + "top": 696, "width": 223, "height": 13, "autoResize": false, @@ -2731,8 +2731,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 56, - "top": 1352, + "left": -8, + "top": 696, "width": 0, "height": 13, "autoResize": false, @@ -2751,8 +2751,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 384, - "top": 984, + "left": 352, + "top": 656, "width": 124.50537109375, "height": 25, "autoResize": false, @@ -2797,8 +2797,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 389, - "top": 1014, + "left": 357, + "top": 686, "width": 114.50537109375, "height": 13, "autoResize": false, @@ -2826,8 +2826,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 389, - "top": 1029, + "left": 357, + "top": 701, "width": 114.50537109375, "height": 13, "autoResize": false, @@ -2847,8 +2847,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 384, - "top": 1009, + "left": 352, + "top": 681, "width": 124.50537109375, "height": 38, "autoResize": false @@ -2871,8 +2871,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 384, - "top": 1047, + "left": 352, + "top": 719, "width": 124.50537109375, "height": 10, "autoResize": false @@ -2895,8 +2895,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -152, - "top": 768, + "left": -184, + "top": 264, "width": 10, "height": 10, "autoResize": false @@ -2919,8 +2919,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -152, - "top": 768, + "left": -184, + "top": 264, "width": 10, "height": 10, "autoResize": false @@ -2935,8 +2935,8 @@ "showShadow": true, "containerChangeable": true, "containerExtending": false, - "left": 384, - "top": 984, + "left": 352, + "top": 656, "width": 124.50537109375, "height": 73, "autoResize": false, @@ -3003,7 +3003,7 @@ "containerChangeable": false, "containerExtending": false, "left": 216, - "top": 280, + "top": -264, "width": 0, "height": 13, "autoResize": false, @@ -3028,7 +3028,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 631, + "top": 359, "width": 177.3154296875, "height": 13, "autoResize": false, @@ -3054,7 +3054,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 862, + "top": 318, "width": 103, "height": 13, "autoResize": false, @@ -3080,7 +3080,7 @@ "containerChangeable": false, "containerExtending": false, "left": 216, - "top": 280, + "top": -264, "width": 0, "height": 13, "autoResize": false, @@ -3100,7 +3100,7 @@ "containerChangeable": false, "containerExtending": false, "left": 352, - "top": 624, + "top": 352, "width": 187.3154296875, "height": 25, "autoResize": false, @@ -3146,7 +3146,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 654, + "top": 382, "width": 177.3154296875, "height": 13, "autoResize": false, @@ -3175,7 +3175,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 669, + "top": 397, "width": 177.3154296875, "height": 13, "autoResize": false, @@ -3204,7 +3204,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 684, + "top": 412, "width": 177.3154296875, "height": 13, "autoResize": false, @@ -3233,7 +3233,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 699, + "top": 427, "width": 177.3154296875, "height": 13, "autoResize": false, @@ -3262,7 +3262,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 714, + "top": 442, "width": 177.3154296875, "height": 13, "autoResize": false, @@ -3291,7 +3291,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 729, + "top": 457, "width": 177.3154296875, "height": 13, "autoResize": false, @@ -3320,7 +3320,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 744, + "top": 472, "width": 177.3154296875, "height": 13, "autoResize": false, @@ -3341,7 +3341,7 @@ "containerChangeable": false, "containerExtending": false, "left": 352, - "top": 649, + "top": 377, "width": 187.3154296875, "height": 113, "autoResize": false @@ -3365,7 +3365,7 @@ "containerChangeable": false, "containerExtending": false, "left": 352, - "top": 762, + "top": 490, "width": 187.3154296875, "height": 10, "autoResize": false @@ -3389,7 +3389,7 @@ "containerChangeable": false, "containerExtending": false, "left": 24, - "top": 136, + "top": -136, "width": 10, "height": 10, "autoResize": false @@ -3413,7 +3413,7 @@ "containerChangeable": false, "containerExtending": false, "left": 24, - "top": 136, + "top": -136, "width": 10, "height": 10, "autoResize": false @@ -3429,7 +3429,7 @@ "containerChangeable": true, "containerExtending": false, "left": 352, - "top": 624, + "top": 352, "width": 187.3154296875, "height": 148, "autoResize": false, @@ -3495,8 +3495,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 656, - "top": 656, + "left": 720, + "top": 192, "width": 0, "height": 13, "autoResize": false, @@ -3520,8 +3520,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 741, - "top": 895, + "left": 773, + "top": 663, "width": 147.55126953125, "height": 13, "autoResize": false, @@ -3546,8 +3546,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 656, - "top": 656, + "left": 720, + "top": 192, "width": 223, "height": 13, "autoResize": false, @@ -3572,8 +3572,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 656, - "top": 656, + "left": 720, + "top": 192, "width": 0, "height": 13, "autoResize": false, @@ -3592,8 +3592,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 736, - "top": 888, + "left": 768, + "top": 656, "width": 157.55126953125, "height": 25, "autoResize": false, @@ -3638,8 +3638,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 741, - "top": 918, + "left": 773, + "top": 686, "width": 147.55126953125, "height": 13, "autoResize": false, @@ -3659,8 +3659,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 736, - "top": 913, + "left": 768, + "top": 681, "width": 157.55126953125, "height": 23, "autoResize": false @@ -3683,8 +3683,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 736, - "top": 936, + "left": 768, + "top": 704, "width": 157.55126953125, "height": 10, "autoResize": false @@ -3707,8 +3707,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 152, - "top": 264, + "left": 184, + "top": -144, "width": 10, "height": 10, "autoResize": false @@ -3731,8 +3731,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 152, - "top": 264, + "left": 184, + "top": -144, "width": 10, "height": 10, "autoResize": false @@ -3747,8 +3747,8 @@ "showShadow": true, "containerChangeable": true, "containerExtending": false, - "left": 736, - "top": 888, + "left": 768, + "top": 656, "width": 157.55126953125, "height": 58, "autoResize": false, @@ -3815,7 +3815,7 @@ "containerChangeable": false, "containerExtending": false, "left": -824, - "top": 592, + "top": 48, "width": 0, "height": 13, "autoResize": false, @@ -3840,7 +3840,7 @@ "containerChangeable": false, "containerExtending": false, "left": 381, - "top": 535, + "top": 263, "width": 114.78466796875, "height": 13, "autoResize": false, @@ -3866,7 +3866,7 @@ "containerChangeable": false, "containerExtending": false, "left": -824, - "top": 592, + "top": 48, "width": 223, "height": 13, "autoResize": false, @@ -3892,7 +3892,7 @@ "containerChangeable": false, "containerExtending": false, "left": -824, - "top": 592, + "top": 48, "width": 0, "height": 13, "autoResize": false, @@ -3912,7 +3912,7 @@ "containerChangeable": false, "containerExtending": false, "left": 376, - "top": 528, + "top": 256, "width": 124.78466796875, "height": 25, "autoResize": false, @@ -3948,7 +3948,7 @@ "containerChangeable": false, "containerExtending": false, "left": 376, - "top": 553, + "top": 281, "width": 124.78466796875, "height": 10, "autoResize": false @@ -3972,7 +3972,7 @@ "containerChangeable": false, "containerExtending": false, "left": 376, - "top": 563, + "top": 291, "width": 124.78466796875, "height": 10, "autoResize": false @@ -3996,7 +3996,7 @@ "containerChangeable": false, "containerExtending": false, "left": -696, - "top": 232, + "top": -40, "width": 10, "height": 10, "autoResize": false @@ -4020,7 +4020,7 @@ "containerChangeable": false, "containerExtending": false, "left": -696, - "top": 232, + "top": -40, "width": 10, "height": 10, "autoResize": false @@ -4036,7 +4036,7 @@ "containerChangeable": true, "containerExtending": false, "left": 376, - "top": 528, + "top": 256, "width": 124.78466796875, "height": 45, "autoResize": false, @@ -4102,8 +4102,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -216, - "top": 760, + "left": -248, + "top": 56, "width": 0, "height": 13, "autoResize": false, @@ -4127,8 +4127,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 613, - "top": 1015, + "left": 597, + "top": 663, "width": 104.583984375, "height": 13, "autoResize": false, @@ -4153,8 +4153,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -216, - "top": 760, + "left": -248, + "top": 56, "width": 223, "height": 13, "autoResize": false, @@ -4179,8 +4179,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -216, - "top": 760, + "left": -248, + "top": 56, "width": 0, "height": 13, "autoResize": false, @@ -4199,8 +4199,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 608, - "top": 1008, + "left": 592, + "top": 656, "width": 114.583984375, "height": 25, "autoResize": false, @@ -4235,8 +4235,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 608, - "top": 1033, + "left": 592, + "top": 681, "width": 114.583984375, "height": 10, "autoResize": false @@ -4259,8 +4259,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 608, - "top": 1043, + "left": 592, + "top": 691, "width": 114.583984375, "height": 10, "autoResize": false @@ -4283,8 +4283,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -392, - "top": 328, + "left": -408, + "top": -200, "width": 10, "height": 10, "autoResize": false @@ -4307,8 +4307,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": -392, - "top": 328, + "left": -408, + "top": -200, "width": 10, "height": 10, "autoResize": false @@ -4323,8 +4323,8 @@ "showShadow": true, "containerChangeable": true, "containerExtending": false, - "left": 608, - "top": 1008, + "left": 592, + "top": 656, "width": 114.583984375, "height": 45, "autoResize": false, @@ -4391,7 +4391,7 @@ "containerChangeable": false, "containerExtending": false, "left": 696, - "top": 1136, + "top": 416, "width": 0, "height": 13, "autoResize": false, @@ -4416,7 +4416,7 @@ "containerChangeable": false, "containerExtending": false, "left": 597, - "top": 1111, + "top": 751, "width": 40.94873046875, "height": 13, "autoResize": false, @@ -4442,7 +4442,7 @@ "containerChangeable": false, "containerExtending": false, "left": 696, - "top": 1136, + "top": 416, "width": 223, "height": 13, "autoResize": false, @@ -4468,7 +4468,7 @@ "containerChangeable": false, "containerExtending": false, "left": 696, - "top": 1136, + "top": 416, "width": 0, "height": 13, "autoResize": false, @@ -4488,7 +4488,7 @@ "containerChangeable": false, "containerExtending": false, "left": 592, - "top": 1104, + "top": 744, "width": 50.94873046875, "height": 25, "autoResize": false, @@ -4524,7 +4524,7 @@ "containerChangeable": false, "containerExtending": false, "left": 592, - "top": 1129, + "top": 769, "width": 50.94873046875, "height": 10, "autoResize": false @@ -4548,7 +4548,7 @@ "containerChangeable": false, "containerExtending": false, "left": 592, - "top": 1139, + "top": 779, "width": 50.94873046875, "height": 10, "autoResize": false @@ -4572,7 +4572,7 @@ "containerChangeable": false, "containerExtending": false, "left": 408, - "top": 528, + "top": -8, "width": 10, "height": 10, "autoResize": false @@ -4596,7 +4596,7 @@ "containerChangeable": false, "containerExtending": false, "left": 408, - "top": 528, + "top": -8, "width": 10, "height": 10, "autoResize": false @@ -4612,7 +4612,7 @@ "containerChangeable": true, "containerExtending": false, "left": 592, - "top": 1104, + "top": 744, "width": 50.94873046875, "height": 45, "autoResize": false, @@ -4679,7 +4679,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 821, + "top": 549, "width": 167, "height": 13, "autoResize": false, @@ -4705,7 +4705,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 836, + "top": 564, "width": 167, "height": 13, "autoResize": false, @@ -4731,7 +4731,7 @@ "containerChangeable": false, "containerExtending": false, "left": 0, - "top": 1224, + "top": 680, "width": 96, "height": 13, "autoResize": false, @@ -4757,7 +4757,7 @@ "containerChangeable": false, "containerExtending": false, "left": 0, - "top": 1224, + "top": 680, "width": 0, "height": 13, "autoResize": false, @@ -4777,7 +4777,7 @@ "containerChangeable": false, "containerExtending": false, "left": 352, - "top": 816, + "top": 544, "width": 177, "height": 38, "autoResize": false, @@ -4823,7 +4823,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 859, + "top": 587, "width": 167, "height": 13, "autoResize": false, @@ -4852,7 +4852,7 @@ "containerChangeable": false, "containerExtending": false, "left": 357, - "top": 874, + "top": 602, "width": 167, "height": 13, "autoResize": false, @@ -4873,7 +4873,7 @@ "containerChangeable": false, "containerExtending": false, "left": 352, - "top": 854, + "top": 582, "width": 177, "height": 38, "autoResize": false @@ -4897,7 +4897,7 @@ "containerChangeable": false, "containerExtending": false, "left": 352, - "top": 892, + "top": 620, "width": 177, "height": 10, "autoResize": false @@ -4921,7 +4921,7 @@ "containerChangeable": false, "containerExtending": false, "left": 0, - "top": 580, + "top": 308, "width": 10, "height": 10, "autoResize": false @@ -4945,7 +4945,7 @@ "containerChangeable": false, "containerExtending": false, "left": 0, - "top": 580, + "top": 308, "width": 10, "height": 10, "autoResize": false @@ -4961,7 +4961,7 @@ "containerChangeable": true, "containerExtending": false, "left": 352, - "top": 816, + "top": 544, "width": 177, "height": 86, "autoResize": false, @@ -5021,7 +5021,7 @@ "containerChangeable": false, "containerExtending": false, "left": 446, - "top": 786, + "top": 514, "width": 0, "height": 13, "autoResize": false, @@ -5055,7 +5055,7 @@ "containerChangeable": false, "containerExtending": false, "left": 461, - "top": 786, + "top": 514, "width": 0, "height": 13, "autoResize": false, @@ -5089,7 +5089,7 @@ "containerChangeable": false, "containerExtending": false, "left": 417, - "top": 787, + "top": 515, "width": 0, "height": 13, "autoResize": false, @@ -5121,7 +5121,7 @@ "$ref": "AAAAAAFYplPlN2cIYnI=" }, "lineStyle": 2, - "points": "432:771;432:816", + "points": "432:499;432:544", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -5163,13 +5163,13 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 767, - "top": 983, + "left": 711, + "top": 655, "width": 48, "height": 13, "autoResize": false, - "alpha": -0.936773798035488, - "distance": 42.20189569201838, + "alpha": -1.446441947632798, + "distance": 16.1245154965971, "hostEdge": { "$ref": "AAAAAAFYpme/N34yGKY=" }, @@ -5198,8 +5198,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 815, - "top": 1048, + "left": 736, + "top": 702, "width": 0, "height": 13, "autoResize": false, @@ -5232,8 +5232,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 816, - "top": 1003, + "left": 737, + "top": 657, "width": 0, "height": 13, "autoResize": false, @@ -5266,8 +5266,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 831, - "top": 964, + "left": 742, + "top": 686, "width": 0, "height": 13, "autoResize": false, @@ -5300,8 +5300,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 844, - "top": 967, + "left": 739, + "top": 700, "width": 0, "height": 13, "autoResize": false, @@ -5334,8 +5334,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 803, - "top": 960, + "left": 746, + "top": 659, "width": 0, "height": 13, "autoResize": false, @@ -5368,8 +5368,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 747, - "top": 1032, + "left": 731, + "top": 686, "width": 0, "height": 13, "autoResize": false, @@ -5402,8 +5402,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 750, - "top": 1046, + "left": 734, + "top": 700, "width": 0, "height": 13, "autoResize": false, @@ -5436,8 +5436,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 743, - "top": 1005, + "left": 727, + "top": 659, "width": 0, "height": 13, "autoResize": false, @@ -5471,7 +5471,7 @@ "containerChangeable": false, "containerExtending": false, "left": 112, - "top": 616, + "top": 440, "width": 10, "height": 10, "autoResize": false @@ -5495,7 +5495,7 @@ "containerChangeable": false, "containerExtending": false, "left": 112, - "top": 616, + "top": 440, "width": 10, "height": 10, "autoResize": false @@ -5517,7 +5517,7 @@ "$ref": "AAAAAAFYplXHPmg0ww8=" }, "lineStyle": 2, - "points": "816:945;816:1024;722:1024", + "points": "768:678;706:678", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -5586,7 +5586,7 @@ "containerChangeable": false, "containerExtending": false, "left": 655, - "top": 849, + "top": 577, "width": 0, "height": 13, "autoResize": false, @@ -5620,7 +5620,7 @@ "containerChangeable": false, "containerExtending": false, "left": 655, - "top": 864, + "top": 592, "width": 0, "height": 13, "autoResize": false, @@ -5654,7 +5654,7 @@ "containerChangeable": false, "containerExtending": false, "left": 656, - "top": 819, + "top": 547, "width": 0, "height": 13, "autoResize": false, @@ -5686,7 +5686,7 @@ "$ref": "AAAAAAFYplR452dt4u8=" }, "lineStyle": 2, - "points": "656:1008;656:840;528:840", + "points": "656:656;656:568;528:568", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -5736,7 +5736,7 @@ "containerChangeable": false, "containerExtending": false, "left": 605, - "top": 661, + "top": 389, "width": 180.603515625, "height": 13, "autoResize": false, @@ -5762,7 +5762,7 @@ "containerChangeable": false, "containerExtending": false, "left": 605, - "top": 676, + "top": 404, "width": 180.603515625, "height": 13, "autoResize": false, @@ -5788,7 +5788,7 @@ "containerChangeable": false, "containerExtending": false, "left": 12, - "top": 224, + "top": -320, "width": 80.49462890625, "height": 13, "autoResize": false, @@ -5814,7 +5814,7 @@ "containerChangeable": false, "containerExtending": false, "left": 12, - "top": 224, + "top": -320, "width": 0, "height": 13, "autoResize": false, @@ -5834,7 +5834,7 @@ "containerChangeable": false, "containerExtending": false, "left": 600, - "top": 656, + "top": 384, "width": 190.603515625, "height": 38, "autoResize": false, @@ -5870,7 +5870,7 @@ "containerChangeable": false, "containerExtending": false, "left": 600, - "top": 694, + "top": 422, "width": 190.603515625, "height": 10, "autoResize": false @@ -5904,7 +5904,7 @@ "containerChangeable": false, "containerExtending": false, "left": 605, - "top": 709, + "top": 437, "width": 180.603515625, "height": 13, "autoResize": false, @@ -5933,7 +5933,7 @@ "containerChangeable": false, "containerExtending": false, "left": 605, - "top": 724, + "top": 452, "width": 180.603515625, "height": 13, "autoResize": false, @@ -5954,7 +5954,7 @@ "containerChangeable": false, "containerExtending": false, "left": 600, - "top": 704, + "top": 432, "width": 190.603515625, "height": 38, "autoResize": false @@ -5978,7 +5978,7 @@ "containerChangeable": false, "containerExtending": false, "left": 6, - "top": 80, + "top": -192, "width": 10, "height": 10, "autoResize": false @@ -6002,7 +6002,7 @@ "containerChangeable": false, "containerExtending": false, "left": 6, - "top": 80, + "top": -192, "width": 10, "height": 10, "autoResize": false @@ -6018,7 +6018,7 @@ "containerChangeable": true, "containerExtending": false, "left": 600, - "top": 656, + "top": 384, "width": 190.603515625, "height": 86, "autoResize": false, @@ -6078,7 +6078,7 @@ "containerChangeable": false, "containerExtending": false, "left": 677, - "top": 819, + "top": 547, "width": 0, "height": 13, "autoResize": false, @@ -6112,7 +6112,7 @@ "containerChangeable": false, "containerExtending": false, "left": 677, - "top": 804, + "top": 532, "width": 0, "height": 13, "autoResize": false, @@ -6146,7 +6146,7 @@ "containerChangeable": false, "containerExtending": false, "left": 677, - "top": 849, + "top": 577, "width": 0, "height": 13, "autoResize": false, @@ -6178,7 +6178,7 @@ "$ref": "AAAAAAFYplR452dt4u8=" }, "lineStyle": 2, - "points": "656:1008;656:840;698:840;698:741", + "points": "656:656;656:568;698:568;698:469", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -6228,8 +6228,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 381, - "width": 226.1997528076172, + "top": 85, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6254,8 +6254,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 396, - "width": 226.1997528076172, + "top": 100, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6280,7 +6280,7 @@ "containerChangeable": false, "containerExtending": false, "left": 412, - "top": -336, + "top": -928, "width": 80.49462890625, "height": 13, "autoResize": false, @@ -6306,7 +6306,7 @@ "containerChangeable": false, "containerExtending": false, "left": 412, - "top": -336, + "top": -928, "width": 0, "height": 13, "autoResize": false, @@ -6326,8 +6326,8 @@ "containerChangeable": false, "containerExtending": false, "left": 880, - "top": 376, - "width": 236.1997528076172, + "top": 80, + "width": 240, "height": 38, "autoResize": false, "stereotypeLabel": { @@ -6372,8 +6372,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 419, - "width": 226.1997528076172, + "top": 123, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6393,8 +6393,8 @@ "containerChangeable": false, "containerExtending": false, "left": 880, - "top": 414, - "width": 236.1997528076172, + "top": 118, + "width": 240, "height": 23, "autoResize": false }, @@ -6427,8 +6427,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 442, - "width": 226.1997528076172, + "top": 146, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6456,8 +6456,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 457, - "width": 226.1997528076172, + "top": 161, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6485,8 +6485,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 472, - "width": 226.1997528076172, + "top": 176, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6514,8 +6514,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 487, - "width": 226.1997528076172, + "top": 191, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6543,8 +6543,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 502, - "width": 226.1997528076172, + "top": 206, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6572,8 +6572,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 517, - "width": 226.1997528076172, + "top": 221, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6601,8 +6601,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 532, - "width": 226.1997528076172, + "top": 236, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6630,8 +6630,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 547, - "width": 226.1997528076172, + "top": 251, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6659,8 +6659,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 562, - "width": 226.1997528076172, + "top": 266, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6688,8 +6688,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 577, - "width": 226.1997528076172, + "top": 281, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6717,8 +6717,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 592, - "width": 226.1997528076172, + "top": 296, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6746,8 +6746,8 @@ "containerChangeable": false, "containerExtending": false, "left": 885, - "top": 607, - "width": 226.1997528076172, + "top": 311, + "width": 230, "height": 13, "autoResize": false, "underline": false, @@ -6767,8 +6767,8 @@ "containerChangeable": false, "containerExtending": false, "left": 880, - "top": 437, - "width": 236.1997528076172, + "top": 141, + "width": 240, "height": 188, "autoResize": false }, @@ -6791,7 +6791,7 @@ "containerChangeable": false, "containerExtending": false, "left": 206, - "top": -200, + "top": -496, "width": 10, "height": 10, "autoResize": false @@ -6815,7 +6815,7 @@ "containerChangeable": false, "containerExtending": false, "left": 206, - "top": -200, + "top": -496, "width": 10, "height": 10, "autoResize": false @@ -6831,9 +6831,9 @@ "containerChangeable": true, "containerExtending": false, "left": 880, - "top": 376, - "width": 236.1997528076172, - "height": 249, + "top": 80, + "width": 240, + "height": 257, "autoResize": false, "stereotypeDisplay": "label", "showVisibility": true, @@ -6891,7 +6891,7 @@ "containerChangeable": false, "containerExtending": false, "left": 860, - "top": 819, + "top": 547, "width": 0, "height": 13, "autoResize": false, @@ -6925,7 +6925,7 @@ "containerChangeable": false, "containerExtending": false, "left": 860, - "top": 804, + "top": 532, "width": 0, "height": 13, "autoResize": false, @@ -6959,7 +6959,7 @@ "containerChangeable": false, "containerExtending": false, "left": 860, - "top": 849, + "top": 577, "width": 0, "height": 13, "autoResize": false, @@ -6991,7 +6991,7 @@ "$ref": "AAAAAAFYplR452dt4u8=" }, "lineStyle": 2, - "points": "656:1008;656:840;1064:840;1064:624", + "points": "656:656;656:568;1064:568;1064:336", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -7041,7 +7041,7 @@ "containerChangeable": false, "containerExtending": false, "left": 1077, - "top": 661, + "top": 389, "width": 167.57177734375, "height": 13, "autoResize": false, @@ -7067,7 +7067,7 @@ "containerChangeable": false, "containerExtending": false, "left": 1077, - "top": 676, + "top": 404, "width": 167.57177734375, "height": 13, "autoResize": false, @@ -7093,7 +7093,7 @@ "containerChangeable": false, "containerExtending": false, "left": 636, - "top": 224, + "top": -320, "width": 80.49462890625, "height": 13, "autoResize": false, @@ -7119,7 +7119,7 @@ "containerChangeable": false, "containerExtending": false, "left": 636, - "top": 224, + "top": -320, "width": 0, "height": 13, "autoResize": false, @@ -7139,7 +7139,7 @@ "containerChangeable": false, "containerExtending": false, "left": 1072, - "top": 656, + "top": 384, "width": 177.57177734375, "height": 38, "autoResize": false, @@ -7185,7 +7185,7 @@ "containerChangeable": false, "containerExtending": false, "left": 1077, - "top": 699, + "top": 427, "width": 167.57177734375, "height": 13, "autoResize": false, @@ -7206,7 +7206,7 @@ "containerChangeable": false, "containerExtending": false, "left": 1072, - "top": 694, + "top": 422, "width": 177.57177734375, "height": 23, "autoResize": false @@ -7230,7 +7230,7 @@ "containerChangeable": false, "containerExtending": false, "left": 1072, - "top": 717, + "top": 445, "width": 177.57177734375, "height": 10, "autoResize": false @@ -7254,7 +7254,7 @@ "containerChangeable": false, "containerExtending": false, "left": 318, - "top": 80, + "top": -192, "width": 10, "height": 10, "autoResize": false @@ -7278,7 +7278,7 @@ "containerChangeable": false, "containerExtending": false, "left": 318, - "top": 80, + "top": -192, "width": 10, "height": 10, "autoResize": false @@ -7294,7 +7294,7 @@ "containerChangeable": true, "containerExtending": false, "left": 1072, - "top": 656, + "top": 384, "width": 177.57177734375, "height": 71, "autoResize": false, @@ -7354,7 +7354,7 @@ "containerChangeable": false, "containerExtending": false, "left": 908, - "top": 819, + "top": 547, "width": 0, "height": 13, "autoResize": false, @@ -7388,7 +7388,7 @@ "containerChangeable": false, "containerExtending": false, "left": 908, - "top": 804, + "top": 532, "width": 0, "height": 13, "autoResize": false, @@ -7422,7 +7422,7 @@ "containerChangeable": false, "containerExtending": false, "left": 908, - "top": 849, + "top": 577, "width": 0, "height": 13, "autoResize": false, @@ -7454,7 +7454,7 @@ "$ref": "AAAAAAFYplR452dt4u8=" }, "lineStyle": 2, - "points": "656:1008;656:840;1160:840;1160:726", + "points": "656:656;656:568;1160:568;1160:454", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -7504,7 +7504,7 @@ "containerChangeable": false, "containerExtending": false, "left": 813, - "top": 661, + "top": 389, "width": 234.2666015625, "height": 13, "autoResize": false, @@ -7530,7 +7530,7 @@ "containerChangeable": false, "containerExtending": false, "left": 813, - "top": 676, + "top": 404, "width": 234.2666015625, "height": 13, "autoResize": false, @@ -7556,7 +7556,7 @@ "containerChangeable": false, "containerExtending": false, "left": -52, - "top": 224, + "top": -320, "width": 80.49462890625, "height": 13, "autoResize": false, @@ -7582,7 +7582,7 @@ "containerChangeable": false, "containerExtending": false, "left": -52, - "top": 224, + "top": -320, "width": 0, "height": 13, "autoResize": false, @@ -7602,7 +7602,7 @@ "containerChangeable": false, "containerExtending": false, "left": 808, - "top": 656, + "top": 384, "width": 244.2666015625, "height": 38, "autoResize": false, @@ -7648,7 +7648,7 @@ "containerChangeable": false, "containerExtending": false, "left": 813, - "top": 699, + "top": 427, "width": 234.2666015625, "height": 13, "autoResize": false, @@ -7669,7 +7669,7 @@ "containerChangeable": false, "containerExtending": false, "left": 808, - "top": 694, + "top": 422, "width": 244.2666015625, "height": 23, "autoResize": false @@ -7703,7 +7703,7 @@ "containerChangeable": false, "containerExtending": false, "left": 813, - "top": 722, + "top": 450, "width": 234.2666015625, "height": 13, "autoResize": false, @@ -7732,7 +7732,7 @@ "containerChangeable": false, "containerExtending": false, "left": 813, - "top": 737, + "top": 465, "width": 234.2666015625, "height": 13, "autoResize": false, @@ -7761,7 +7761,7 @@ "containerChangeable": false, "containerExtending": false, "left": 813, - "top": 752, + "top": 480, "width": 234.2666015625, "height": 13, "autoResize": false, @@ -7782,7 +7782,7 @@ "containerChangeable": false, "containerExtending": false, "left": 808, - "top": 717, + "top": 445, "width": 244.2666015625, "height": 53, "autoResize": false @@ -7806,7 +7806,7 @@ "containerChangeable": false, "containerExtending": false, "left": -26, - "top": 80, + "top": -192, "width": 10, "height": 10, "autoResize": false @@ -7830,7 +7830,7 @@ "containerChangeable": false, "containerExtending": false, "left": -26, - "top": 80, + "top": -192, "width": 10, "height": 10, "autoResize": false @@ -7846,7 +7846,7 @@ "containerChangeable": true, "containerExtending": false, "left": 808, - "top": 656, + "top": 384, "width": 244.2666015625, "height": 114, "autoResize": false, @@ -7906,7 +7906,7 @@ "containerChangeable": false, "containerExtending": false, "left": 796, - "top": 819, + "top": 547, "width": 0, "height": 13, "autoResize": false, @@ -7940,7 +7940,7 @@ "containerChangeable": false, "containerExtending": false, "left": 796, - "top": 804, + "top": 532, "width": 0, "height": 13, "autoResize": false, @@ -7974,7 +7974,7 @@ "containerChangeable": false, "containerExtending": false, "left": 796, - "top": 849, + "top": 577, "width": 0, "height": 13, "autoResize": false, @@ -8006,7 +8006,7 @@ "$ref": "AAAAAAFYplR452dt4u8=" }, "lineStyle": 2, - "points": "656:1008;656:840;937:840;937:769", + "points": "656:656;656:568;937:568;937:497", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -8056,7 +8056,7 @@ "containerChangeable": false, "containerExtending": false, "left": 645, - "top": 453, + "top": 165, "width": 218.1943359375, "height": 13, "autoResize": false, @@ -8082,7 +8082,7 @@ "containerChangeable": false, "containerExtending": false, "left": 645, - "top": 468, + "top": 180, "width": 218.1943359375, "height": 13, "autoResize": false, @@ -8108,7 +8108,7 @@ "containerChangeable": false, "containerExtending": false, "left": 0, - "top": -376, + "top": -936, "width": 80.49462890625, "height": 13, "autoResize": false, @@ -8134,7 +8134,7 @@ "containerChangeable": false, "containerExtending": false, "left": 0, - "top": -376, + "top": -936, "width": 0, "height": 13, "autoResize": false, @@ -8154,7 +8154,7 @@ "containerChangeable": false, "containerExtending": false, "left": 640, - "top": 448, + "top": 160, "width": 228.1943359375, "height": 38, "autoResize": false, @@ -8200,7 +8200,7 @@ "containerChangeable": false, "containerExtending": false, "left": 645, - "top": 491, + "top": 203, "width": 218.1943359375, "height": 13, "autoResize": false, @@ -8221,7 +8221,7 @@ "containerChangeable": false, "containerExtending": false, "left": 640, - "top": 486, + "top": 198, "width": 228.1943359375, "height": 23, "autoResize": false @@ -8255,7 +8255,7 @@ "containerChangeable": false, "containerExtending": false, "left": 645, - "top": 514, + "top": 226, "width": 218.1943359375, "height": 13, "autoResize": false, @@ -8284,7 +8284,7 @@ "containerChangeable": false, "containerExtending": false, "left": 645, - "top": 529, + "top": 241, "width": 218.1943359375, "height": 13, "autoResize": false, @@ -8313,7 +8313,7 @@ "containerChangeable": false, "containerExtending": false, "left": 645, - "top": 544, + "top": 256, "width": 218.1943359375, "height": 13, "autoResize": false, @@ -8342,7 +8342,7 @@ "containerChangeable": false, "containerExtending": false, "left": 645, - "top": 559, + "top": 271, "width": 218.1943359375, "height": 13, "autoResize": false, @@ -8371,7 +8371,7 @@ "containerChangeable": false, "containerExtending": false, "left": 645, - "top": 574, + "top": 286, "width": 218.1943359375, "height": 13, "autoResize": false, @@ -8400,7 +8400,7 @@ "containerChangeable": false, "containerExtending": false, "left": 645, - "top": 589, + "top": 301, "width": 218.1943359375, "height": 13, "autoResize": false, @@ -8429,7 +8429,7 @@ "containerChangeable": false, "containerExtending": false, "left": 645, - "top": 604, + "top": 316, "width": 218.1943359375, "height": 13, "autoResize": false, @@ -8450,7 +8450,7 @@ "containerChangeable": false, "containerExtending": false, "left": 640, - "top": 509, + "top": 221, "width": 228.1943359375, "height": 113, "autoResize": false @@ -8474,7 +8474,7 @@ "containerChangeable": false, "containerExtending": false, "left": 0, - "top": -188, + "top": -468, "width": 10, "height": 10, "autoResize": false @@ -8498,7 +8498,7 @@ "containerChangeable": false, "containerExtending": false, "left": 0, - "top": -188, + "top": -468, "width": 10, "height": 10, "autoResize": false @@ -8514,9 +8514,9 @@ "containerChangeable": true, "containerExtending": false, "left": 640, - "top": 448, + "top": 160, "width": 228.1943359375, - "height": 174, + "height": 177, "autoResize": false, "stereotypeDisplay": "label", "showVisibility": true, @@ -8580,8 +8580,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 1125, - "top": 517, + "left": 1133, + "top": 221, "width": 164.556640625, "height": 13, "autoResize": false, @@ -8606,8 +8606,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 1125, - "top": 532, + "left": 1133, + "top": 236, "width": 164.556640625, "height": 13, "autoResize": false, @@ -8632,8 +8632,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 800, - "top": -248, + "left": 816, + "top": -840, "width": 80.49462890625, "height": 13, "autoResize": false, @@ -8658,8 +8658,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 800, - "top": -248, + "left": 816, + "top": -840, "width": 0, "height": 13, "autoResize": false, @@ -8678,8 +8678,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 1120, - "top": 512, + "left": 1128, + "top": 216, "width": 174.556640625, "height": 38, "autoResize": false, @@ -8724,8 +8724,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 1125, - "top": 555, + "left": 1133, + "top": 259, "width": 164.556640625, "height": 13, "autoResize": false, @@ -8745,8 +8745,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 1120, - "top": 550, + "left": 1128, + "top": 254, "width": 174.556640625, "height": 23, "autoResize": false @@ -8779,8 +8779,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 1125, - "top": 578, + "left": 1133, + "top": 282, "width": 164.556640625, "height": 13, "autoResize": false, @@ -8808,8 +8808,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 1125, - "top": 593, + "left": 1133, + "top": 297, "width": 164.556640625, "height": 13, "autoResize": false, @@ -8837,8 +8837,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 1125, - "top": 608, + "left": 1133, + "top": 312, "width": 164.556640625, "height": 13, "autoResize": false, @@ -8858,8 +8858,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 1120, - "top": 573, + "left": 1128, + "top": 277, "width": 174.556640625, "height": 53, "autoResize": false @@ -8882,8 +8882,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 400, - "top": -124, + "left": 408, + "top": -420, "width": 10, "height": 10, "autoResize": false @@ -8906,8 +8906,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 400, - "top": -124, + "left": 408, + "top": -420, "width": 10, "height": 10, "autoResize": false @@ -8922,10 +8922,10 @@ "showShadow": true, "containerChangeable": true, "containerExtending": false, - "left": 1120, - "top": 512, + "left": 1128, + "top": 216, "width": 174.556640625, - "height": 114, + "height": 121, "autoResize": false, "stereotypeDisplay": "label", "showVisibility": true, @@ -8982,8 +8982,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 176, - "top": 827, + "left": 325, + "top": 579, "width": 0, "height": 13, "autoResize": false, @@ -9016,8 +9016,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 176, - "top": 812, + "left": 325, + "top": 564, "width": 0, "height": 13, "autoResize": false, @@ -9050,8 +9050,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 176, - "top": 857, + "left": 325, + "top": 609, "width": 0, "height": 13, "autoResize": false, @@ -9083,7 +9083,7 @@ "$ref": "AAAAAAFYplWBi2f5GNY=" }, "lineStyle": 2, - "points": "176:684;176:848;352:848", + "points": "298:600;352:600", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -9126,7 +9126,7 @@ "containerChangeable": false, "containerExtending": false, "left": 728, - "top": 819, + "top": 547, "width": 0, "height": 13, "autoResize": false, @@ -9160,7 +9160,7 @@ "containerChangeable": false, "containerExtending": false, "left": 728, - "top": 804, + "top": 532, "width": 0, "height": 13, "autoResize": false, @@ -9194,7 +9194,7 @@ "containerChangeable": false, "containerExtending": false, "left": 728, - "top": 849, + "top": 577, "width": 0, "height": 13, "autoResize": false, @@ -9226,7 +9226,7 @@ "$ref": "AAAAAAFYplR452dt4u8=" }, "lineStyle": 2, - "points": "656:1008;656:840;800:840;800:621", + "points": "656:656;656:568;800:568;800:336", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -9269,7 +9269,7 @@ "containerChangeable": false, "containerExtending": false, "left": 956, - "top": 819, + "top": 547, "width": 0, "height": 13, "autoResize": false, @@ -9303,7 +9303,7 @@ "containerChangeable": false, "containerExtending": false, "left": 956, - "top": 804, + "top": 532, "width": 0, "height": 13, "autoResize": false, @@ -9337,7 +9337,7 @@ "containerChangeable": false, "containerExtending": false, "left": 956, - "top": 849, + "top": 577, "width": 0, "height": 13, "autoResize": false, @@ -9369,7 +9369,7 @@ "$ref": "AAAAAAFYplR452dt4u8=" }, "lineStyle": 2, - "points": "656:1008;656:840;1256:840;1256:625", + "points": "656:656;656:568;1256:568;1256:336", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -9412,7 +9412,7 @@ "containerChangeable": false, "containerExtending": false, "left": 617, - "top": 1071, + "top": 715, "width": 0, "height": 13, "autoResize": false, @@ -9446,7 +9446,7 @@ "containerChangeable": false, "containerExtending": false, "left": 602, - "top": 1071, + "top": 715, "width": 0, "height": 13, "autoResize": false, @@ -9480,7 +9480,7 @@ "containerChangeable": false, "containerExtending": false, "left": 646, - "top": 1072, + "top": 716, "width": 0, "height": 13, "autoResize": false, @@ -9512,7 +9512,7 @@ "$ref": "AAAAAAFYplQj7GdDLjw=" }, "lineStyle": 2, - "points": "632:1104;632:1052", + "points": "632:744;632:700", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -9562,7 +9562,7 @@ "containerChangeable": false, "containerExtending": false, "left": -64, - "top": 0, + "top": -720, "width": 0, "height": 13, "autoResize": false, @@ -9587,7 +9587,7 @@ "containerChangeable": false, "containerExtending": false, "left": 661, - "top": 1111, + "top": 751, "width": 91, "height": 13, "autoResize": false, @@ -9613,7 +9613,7 @@ "containerChangeable": false, "containerExtending": false, "left": -64, - "top": 0, + "top": -720, "width": 73.67724609375, "height": 13, "autoResize": false, @@ -9639,7 +9639,7 @@ "containerChangeable": false, "containerExtending": false, "left": -64, - "top": 0, + "top": -720, "width": 0, "height": 13, "autoResize": false, @@ -9659,7 +9659,7 @@ "containerChangeable": false, "containerExtending": false, "left": 656, - "top": 1104, + "top": 744, "width": 101, "height": 25, "autoResize": false, @@ -9695,7 +9695,7 @@ "containerChangeable": false, "containerExtending": false, "left": 656, - "top": 1129, + "top": 769, "width": 101, "height": 10, "autoResize": false @@ -9719,7 +9719,7 @@ "containerChangeable": false, "containerExtending": false, "left": 656, - "top": 1139, + "top": 779, "width": 101, "height": 10, "autoResize": false @@ -9743,7 +9743,7 @@ "containerChangeable": false, "containerExtending": false, "left": -32, - "top": 0, + "top": -536, "width": 10, "height": 10, "autoResize": false @@ -9767,7 +9767,7 @@ "containerChangeable": false, "containerExtending": false, "left": -32, - "top": 0, + "top": -536, "width": 10, "height": 10, "autoResize": false @@ -9783,7 +9783,7 @@ "containerChangeable": true, "containerExtending": false, "left": 656, - "top": 1104, + "top": 744, "width": 101, "height": 45, "autoResize": false, @@ -9843,7 +9843,7 @@ "containerChangeable": false, "containerExtending": false, "left": 667, - "top": 1071, + "top": 715, "width": 0, "height": 13, "autoResize": false, @@ -9877,7 +9877,7 @@ "containerChangeable": false, "containerExtending": false, "left": 652, - "top": 1071, + "top": 715, "width": 0, "height": 13, "autoResize": false, @@ -9911,7 +9911,7 @@ "containerChangeable": false, "containerExtending": false, "left": 696, - "top": 1072, + "top": 716, "width": 0, "height": 13, "autoResize": false, @@ -9943,7 +9943,7 @@ "$ref": "AAAAAAFZJ0Tfp5SKqYM=" }, "lineStyle": 2, - "points": "682:1104;682:1052", + "points": "682:744;682:700", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -9985,8 +9985,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 230, - "top": 649, + "left": 322, + "top": 441, "width": 0, "height": 13, "autoResize": false, @@ -10019,8 +10019,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 215, - "top": 649, + "left": 322, + "top": 456, "width": 0, "height": 13, "autoResize": false, @@ -10053,8 +10053,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 260, - "top": 650, + "left": 323, + "top": 411, "width": 0, "height": 13, "autoResize": false, @@ -10086,7 +10086,7 @@ "$ref": "AAAAAAFYplPlN2cIYnI=" }, "lineStyle": 2, - "points": "352:656;245:656;245:536", + "points": "352:432;294:432", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -10801,7 +10801,7 @@ "containerChangeable": false, "containerExtending": false, "left": -16, - "top": -112, + "top": -736, "width": 64.32080078125, "height": 13, "autoResize": false, @@ -10827,7 +10827,7 @@ "containerChangeable": false, "containerExtending": false, "left": 789, - "top": 1070, + "top": 758, "width": 87, "height": 13, "autoResize": false, @@ -10853,7 +10853,7 @@ "containerChangeable": false, "containerExtending": false, "left": -16, - "top": -112, + "top": -736, "width": 73.67724609375, "height": 13, "autoResize": false, @@ -10879,7 +10879,7 @@ "containerChangeable": false, "containerExtending": false, "left": -16, - "top": -112, + "top": -736, "width": 0, "height": 13, "autoResize": false, @@ -10899,7 +10899,7 @@ "containerChangeable": false, "containerExtending": false, "left": 784, - "top": 1063, + "top": 751, "width": 97, "height": 25, "autoResize": false, @@ -10935,7 +10935,7 @@ "containerChangeable": false, "containerExtending": false, "left": -8, - "top": -56, + "top": -544, "width": 10, "height": 10, "autoResize": false @@ -10959,7 +10959,7 @@ "containerChangeable": false, "containerExtending": false, "left": -8, - "top": -56, + "top": -544, "width": 10, "height": 10, "autoResize": false @@ -10983,7 +10983,7 @@ "containerChangeable": false, "containerExtending": false, "left": -8, - "top": -56, + "top": -544, "width": 10, "height": 10, "autoResize": false @@ -11007,7 +11007,7 @@ "containerChangeable": false, "containerExtending": false, "left": -8, - "top": -56, + "top": -544, "width": 10, "height": 10, "autoResize": false @@ -11023,7 +11023,7 @@ "containerChangeable": true, "containerExtending": false, "left": 784, - "top": 1040, + "top": 728, "width": 97, "height": 49, "autoResize": false, @@ -11083,7 +11083,7 @@ "containerChangeable": false, "containerExtending": false, "left": 756, - "top": 1030, + "top": 718, "width": 0, "height": 13, "autoResize": false, @@ -11117,7 +11117,7 @@ "containerChangeable": false, "containerExtending": false, "left": 756, - "top": 1015, + "top": 703, "width": 0, "height": 13, "autoResize": false, @@ -11151,7 +11151,7 @@ "containerChangeable": false, "containerExtending": false, "left": 756, - "top": 1060, + "top": 748, "width": 0, "height": 13, "autoResize": false, @@ -11183,7 +11183,7 @@ "$ref": "AAAAAAFZJ0Tfp5SKqYM=" }, "lineStyle": 2, - "points": "756:1104;756:1051;820.5:1051", + "points": "756:744;756:739;820.5:739", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, @@ -11233,7 +11233,7 @@ "containerChangeable": false, "containerExtending": false, "left": -80, - "top": -128, + "top": -736, "width": 64.32080078125, "height": 13, "autoResize": false, @@ -11259,7 +11259,7 @@ "containerChangeable": false, "containerExtending": false, "left": 789, - "top": 1126, + "top": 822, "width": 85.236328125, "height": 13, "autoResize": false, @@ -11285,7 +11285,7 @@ "containerChangeable": false, "containerExtending": false, "left": -80, - "top": -128, + "top": -736, "width": 73.67724609375, "height": 13, "autoResize": false, @@ -11311,7 +11311,7 @@ "containerChangeable": false, "containerExtending": false, "left": -80, - "top": -128, + "top": -736, "width": 0, "height": 13, "autoResize": false, @@ -11331,7 +11331,7 @@ "containerChangeable": false, "containerExtending": false, "left": 784, - "top": 1119, + "top": 815, "width": 95.236328125, "height": 25, "autoResize": false, @@ -11367,7 +11367,7 @@ "containerChangeable": false, "containerExtending": false, "left": -40, - "top": -64, + "top": -544, "width": 10, "height": 10, "autoResize": false @@ -11391,7 +11391,7 @@ "containerChangeable": false, "containerExtending": false, "left": -40, - "top": -64, + "top": -544, "width": 10, "height": 10, "autoResize": false @@ -11415,7 +11415,7 @@ "containerChangeable": false, "containerExtending": false, "left": -40, - "top": -64, + "top": -544, "width": 10, "height": 10, "autoResize": false @@ -11439,7 +11439,7 @@ "containerChangeable": false, "containerExtending": false, "left": -40, - "top": -64, + "top": -544, "width": 10, "height": 10, "autoResize": false @@ -11455,7 +11455,7 @@ "containerChangeable": true, "containerExtending": false, "left": 784, - "top": 1096, + "top": 792, "width": 95.236328125, "height": 49, "autoResize": false, @@ -11514,8 +11514,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 787, - "top": 1086, + "left": 834, + "top": 772, "width": 0, "height": 13, "autoResize": false, @@ -11548,8 +11548,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 787, - "top": 1071, + "left": 849, + "top": 772, "width": 0, "height": 13, "autoResize": false, @@ -11582,8 +11582,8 @@ "showShadow": true, "containerChangeable": false, "containerExtending": false, - "left": 787, - "top": 1116, + "left": 805, + "top": 773, "width": 0, "height": 13, "autoResize": false, @@ -11615,7 +11615,7 @@ "$ref": "AAAAAAFZJ0Tfp5SKqYM=" }, "lineStyle": 2, - "points": "756:1107;819.6181640625:1107", + "points": "756:779;820:779;820:792", "stereotypeDisplay": "label", "showVisibility": true, "showProperty": true, diff --git a/work_files/UML/actors.png b/work_files/UML/actors.png index 10cae6a30..e4ad47402 100644 Binary files a/work_files/UML/actors.png and b/work_files/UML/actors.png differ