Learning Targets:

  • Determine the result of executing recursive method.

Essential Knowledge:

  • Recursion is a method that calls itself.
  • Recursive methods contain at least one base case, which halts the recursion, and at least one recursive call.
    • To accomplish this is a recursive method contains a conditional.
  • each recursive call has its own set of local variables, including formal parameters.
  • parameter values capture the progress of a recursive process, much like a loop control variable vales capture the progress of a loop.
  • any recursive sloution can be replicated throu the user of an i word (iteration, index, or integer) approach.
    • exclusion statement: writing recursive program code is outside the scope of the AP CSA course and exam but it is allowed. but sometimes it is more straightforward than iterative.

      Example of recursion:

      public static void main(String[] args) {
        System.out.println("Hello World!");
        main(args);
      }
      

      Example of recursion with a base case:

      public static void main(String[] args) {
        System.out.println("Hello World!");
        if (args.length > 0) {
       main(args);
        }
      }
      

      Example of recursion with a base case and a recursive call including formal parameters:

      public static void main(String[] args) {
        System.out.println("Hello World!");
        if (args.length > 0) {
       main(args);
        }
      }
      

This is a recursive code, do we all agree with that?

note : pay attention

// void recursive method
public static void simpleRecur(int n)
{
    system.out.println(n);
    if (n > 2) // the if statement cuases the recursion to end when n <. 2 since the recursive call 
    // since the recursive call only occurs when n > 2 
        simpleRecur(n-1); 
    system.out.println(n);

}

lets trace the call simpleRecur(4) | Call Stack | Variable trace for call | |—|—| | simpleRecur(4) | n=4 4>2, T | | simpleRecur(3) | n=3 2>2, T | | simpleRecur(2) | n=2 2>2, F |

pop corn hack!!!!!!

Note: 0.01 extra credit for each correct answer, we have limit Paraas to 3 answers.

What would be the output of the code above? (0.01 extra credit)

here is a modified code from above, what would be the output of the code above? and what would be the base case? (0.01 extra credit)

// infinite 
public void simpleRecur(int n)
{
    System.out.println(n);
    if (n > 2)
        simpleRecur(n+3); 
    System.out.println(n);

}
simpleRecur(4);
4
7
10
13
16
19
22
25
28
31
34
37
40
43
46
49
52
55
58
61
64
67
70
73
76
79
82
85
88
91
94
97
100
103
106
109
112
115
118
121
124
127
130
133
136
139
142
145
148
151
154
157
160
163
166
169
172
175
178
181
184
187
190
193
196
199
202
205
208
211
214
217
220
223
226
229
232
235
238
241
244
247
250
253
256
259
262
265
268
271
274
277
280
283
286
289
292
295
298
301
304
307
310
313
316
319
322
325
328
331
334
337
340
343
346
349
352
355
358
361
364
367
370
373
376
379
382
385
388
391
394
397
400
403
406
409
412
415
418
421
424
427
430
433
436
439
442
445
448
451
454
457
460
463
466
469
472
475
478
481
484
487
490
493
496
499
502
505
508
511
514
517
520
523
526
529
532
535
538
541
544
547
550
553
556
559
562
565
568
571
574
577
580
583
586
589
592
595
598
601
604
607
610
613
616
619
622
625
628
631
634
637
640
643
646
649
652
655
658
661
664
667
670
673
676
679
682
685
688
691
694
697
700
703
706
709
712
715
718
721
724
727
730
733
736
739
742
745
748
751
754
757
760
763
766
769
772
775
778
781
784
787
790
793
796
799
802
805
808
811
814
817
820
823
826
829
832
835
838
841
844
847
850
853
856
859
862
865
868
871
874
877
880
883
886
889
892
895
898
901
904
907
910
913
916
919
922
925
928
931
934
937
940
943
946
949
952
955
958
961
964
967
970
973
976
979
982
985
988
991
994
997
1000
1003
1006
1009
1012
1015
1018
1021
1024
1027
1030
1033
1036
1039
1042
1045
1048
1051
1054
1057
1060
1063
1066
1069
1072
1075
1078
1081
1084
1087
1090
1093
1096
1099
1102
1105
1108
1111
1114
1117
1120
1123
1126
1129
1132
1135
1138
1141
1144
1147
1150
1153
1156
1159
1162
1165
1168
1171
1174
1177
1180
1183
1186
1189
1192
1195
1198
1201
1204
1207
1210
1213
1216
1219
1222
1225
1228
1231
1234
1237
1240
1243
1246
1249
1252
1255
1258
1261
1264
1267
1270
1273
1276
1279
1282
1285
1288
1291
1294
1297
1300
1303
1306
1309
1312
1315
1318
1321
1324
1327
1330
1333
1336
1339
1342
1345
1348
1351
1354
1357
1360
1363
1366
1369
1372
1375
1378
1381
1384
1387
1390
1393
1396
1399
1402
1405
1408
1411
1414
1417
1420
1423
1426
1429
1432
1435
1438
1441
1444
1447
1450
1453
1456
1459
1462
1465
1468
1471
1474
1477
1480
1483
1486
1489
1492
1495
1498
1501
1504
1507
1510
1513
1516
1519
1522
1525
1528
1531
1534
1537
1540
1543
1546
1549
1552
1555
1558
1561
1564


1567
1570
1573
1576
1579
1582
1585
1588
1591
1594
1597
1600
1603
1606
1609
1612
1615
1618
1621
1624
1627
1630
1633
1636
1639
1642
1645
1648
1651
1654
1657
1660
1663
1666
1669
1672
1675
1678
1681
1684
1687
1690
1693
1696
1699
1702
1705
1708
1711
1714
1717
1720
1723
1726
1729
1732
1735
1738
1741
1744
1747
1750
1753
1756
1759
1762
1765
1768
1771
1774
1777
1780
1783
1786
1789
1792
1795
1798
1801
1804
1807
1810
1813
1816
1819
1822
1825
1828
1831
1834
1837
1840
1843
1846
1849
1852
1855
1858
1861
1864
1867
1870
1873
1876
1879
1882
1885
1888
1891
1894
1897
1900
1903
1906
1909
1912
1915
1918
1921
1924
1927
1930
1933
1936
1939
1942
1945
1948
1951
1954
1957
1960
1963
1966
1969
1972
1975
1978
1981
1984
1987
1990
1993
1996
1999
2002
2005
2008
2011
2014
2017
2020
2023
2026
2029
2032
2035
2038
2041
2044
2047
2050
2053
2056
2059
2062
2065
2068
2071
2074
2077
2080
2083
2086
2089
2092
2095
2098
2101
2104
2107
2110
2113
2116
2119
2122
2125
2128
2131
2134
2137
2140
2143
2146
2149
2152
2155
2158
2161
2164
2167
2170
2173
2176
2179
2182
2185
2188
2191
2194
2197
2200
2203
2206
2209
2212
2215
2218
2221
2224
2227
2230
2233
2236
2239
2242
2245
2248
2251
2254
2257
2260
2263
2266
2269
2272
2275
2278
2281
2284
2287
2290
2293
2296
2299
2302
2305
2308
2311
2314
2317
2320
2323
2326
2329
2332
2335
2338
2341
2344
2347
2350
2353
2356
2359
2362
2365
2368
2371
2374
2377
2380
2383
2386
2389
2392
2395
2398
2401
2404
2407
2410
2413
2416
2419
2422
2425
2428
2431
2434
2437
2440
2443
2446
2449
2452
2455
2458
2461
2464
2467
2470
2473
2476
2479
2482
2485
2488
2491
2494
2497
2500
2503
2506
2509
2512
2515
2518
2521
2524
2527
2530
2533
2536
2539
2542
2545
2548
2551
2554
2557
2560
2563
2566
2569
2572
2575
2578
2581
2584
2587
2590
2593
2596
2599
2602
2605
2608
2611
2614
2617
2620
2623
2626
2629
2632
2635
2638
2641
2644
2647
2650
2653
2656
2659
2662
2665
2668
2671
2674
2677
2680
2683
2686
2689
2692
2695
2698
2701
2704
2707
2710
2713
2716
2719
2722
2725
2728
2731
2734
2737
2740
2743
2746
2749
2752
2755
2758
2761
2764
2767
2770
2773
2776
2779
2782
2785
2788
2791
2794
2797
2800
2803
2806
2809
2812
2815
2818
2821
2824
2827
2830
2833
2836
2839
2842
2845
2848
2851
2854
2857
2860
2863
2866
2869
2872
2875
2878
2881
2884
2887
2890
2893
2896
2899
2902
2905
2908
2911
2914
2917
2920
2923
2926
2929
2932
2935
2938
2941
2944
2947
2950
2953
2956
2959
2962
2965
2968
2971
2974
2977
2980
2983
2986
2989
2992
2995
2998
3001
3004
3007
3010
3013
3016
3019
3022
3025
3028
3031
3034
3037
3040
3043
3046
3049
3052
3055
3058
3061
3064
3067
3070
3073
3076
3079
3082
3085
3088
3091
3094
3097
3100
3103
3106
3109
3112
3115
3118
3121
3124
3127
3130
3133
3136
3139
3142
3145
3148
3151
3154
3157
3160
3163
3166
3169
3172
3175
3178
3181
3184
3187
3190
3193
3196
3199
3202
3205
3208
3211
3214
3217
3220
3223
3226
3229
3232
3235
3238
3241
3244
3247
3250
3253
3256
3259
3262
3265
3268
3271
3274
3277
3280
3283
3286
3289
3292
3295
3298
3301
3304
3307
3310
3313
3316
3319
3322
3325
3328
3331
3334
3337
3340
3343
3346
3349
3352
3355
3358
3361
3364
3367
3370
3373
3376
3379
3382
3385
3388
3391
3394
3397
3400
3403
3406
3409
3412
3415
3418
3421
3424
3427
3430
3433
3436
3439
3442
3445
3448
3451
3454
3457
3460
3463
3466
3469
3472
3475
3478
3481
3484
3487
3490
3493
3496
3499
3502
3505
3508
3511
3514
3517
3520
3523
3526
3529
3532
3535
3538
3541
3544
3547
3550
3553
3556
3559
3562
3565
3568
3571
3574
3577
3580
3583
3586
3589
3592
3595
3598
3601
3604
3607
3610
3613
3616
3619
3622
3625
3628
3631
3634
3637
3640
3643
3646
3649
3652
3655
3658
3661
3664
3667
3670
3673
3676
3679
3682
3685
3688
3691
3694
3697
3700
3703
3706
3709
3712
3715
3718
3721
3724
3727
3730
3733
3736
3739
3742
3745
3748
3751
3754
3757
3760
3763
3766
3769
3772
3775
3778
3781
3784
3787
3790
3793
3796
3799
3802
3805
3808
3811
3814
3817
3820
3823
3826
3829
3832
3835
3838
3841
3844
3847
3850
3853
3856
3859
3862
3865
3868
3871
3874
3877
3880
3883
3886
3889
3892
3895
3898
3901
3904
3907
3910
3913
3916
3919
3922
3925
3928
3931
3934
3937
3940
3943
3946
3949
3952
3955
3958
3961
3964
3967
3970
3973
3976
3979
3982
3985
3988
3991
3994
3997
4000
4003
4006
4009
4012
4015
4018
4021
4024
4027
4030
4033
4036
4039
4042
4045
4048
4051
4054
4057
4060
4063
4066
4069
4072
4075
4078
4081
4084
4087
4090
4093
4096
4099
4102
4105
4108
4111
4114
4117
4120
4123
4126
4129
4132
4135
4138
4141
4144
4147
4150
4153
4156
4159
4162
4165
4168
4171
4174
4177
4180
4183
4186
4189
4192
4195
4198
4201
4204
4207
4210
4213
4216
4219
4222
4225
4228
4231
4234
4237
4240
4243
4246
4249
4252
4255
4258
4261
4264
4267
4270
4273
4276
4279
4282
4285
4288
4291
4294
4297
4300
4303
4306
4309
4312
4315
4318
4321
4324
4327
4330
4333
4336
4339
4342
4345
4348
4351
4354
4357
4360
4363
4366
4369
4372
4375
4378
4381
4384
4387
4390
4393
4396
4399
4402
4405
4408
4411
4414
4417
4420
4423
4426
4429
4432
4435
4438
4441
4444
4447
4450
4453
4456
4459
4462
4465
4468
4471
4474
4477
4480
4483
4486
4489
4492
4495
4498
4501
4504
4507
4510
4513
4516
4519
4522
4525
4528
4531
4534
4537
4540
4543
4546
4549
4552
4555
4558
4561
4564
4567
4570
4573
4576
4579
4582
4585
4588
4591
4594
4597
4600
4603
4606
4609
4612
4615
4618
4621
4624
4627
4630
4633
4636
4639
4642
4645
4648
4651
4654
4657
4660
4663
4666
4669
4672
4675
4678
4681
4684
4687
4690
4693
4696
4699
4702
4705
4708
4711
4714
4717
4720
4723
4726
4729
4732
4735
4738
4741
4744
4747
4750
4753
4756
4759
4762
4765
4768
4771
4774
4777
4780
4783
4786
4789
4792
4795
4798
4801
4804
4807
4810
4813
4816
4819
4822
4825
4828
4831
4834
4837
4840
4843
4846
4849
4852
4855
4858
4861
4864
4867
4870
4873
4876
4879
4882
4885
4888
4891
4894
4897
4900
4903
4906
4909
4912
4915
4918
4921
4924
4927
4930
4933
4936
4939
4942
4945
4948
4951
4954
4957
4960
4963
4966
4969
4972
4975
4978
4981
4984
4987
4990
4993
4996
4999
5002
5005
5008
5011
5014
5017
5020
5023
5026
5029
5032
5035
5038
5041
5044
5047
5050
5053
5056
5059
5062
5065
5068
5071
5074
5077
5080
5083
5086
5089
5092
5095
5098
5101
5104
5107
5110
5113
5116
5119
5122
5125
5128
5131
5134
5137
5140
5143
5146
5149
5152
5155
5158
5161
5164
5167
5170
5173
5176
5179
5182
5185
5188
5191
5194
5197
5200
5203
5206
5209
5212
5215
5218
5221
5224
5227
5230
5233
5236
5239
5242
5245
5248
5251
5254
5257
5260
5263
5266
5269
5272
5275
5278
5281
5284
5287
5290
5293
5296
5299
5302
5305
5308
5311
5314
5317
5320
5323
5326
5329
5332
5335
5338
5341
5344
5347
5350
5353
5356
5359
5362
5365
5368
5371
5374
5377
5380
5383
5386
5389
5392
5395
5398
5401
5404
5407
5410
5413
5416
5419
5422
5425
5428
5431
5434
5437
5440
5443
5446
5449
5452
5455
5458
5461
5464
5467
5470
5473
5476
5479
5482
5485
5488
5491
5494
5497
5500
5503
5506
5509
5512
5515
5518
5521
5524
5527
5530
5533
5536
5539
5542
5545
5548
5551
5554
5557
5560
5563
5566
5569
5572
5575
5578
5581
5584
5587
5590
5593
5596
5599
5602
5605
5608
5611
5614
5617
5620
5623
5626
5629
5632
5635
5638
5641
5644
5647
5650
5653
5656
5659
5662
5665
5668
5671
5674
5677
5680
5683
5686
5689
5692
5695
5698
5701
5704
5707
5710
5713
5716
5719
5722
5725
5728
5731
5734
5737
5740
5743
5746
5749
5752
5755
5758
5761
5764
5767
5770
5773
5776
5779
5782
5785
5788
5791
5794
5797
5800
5803
5806
5809
5812
5815
5818
5821
5824
5827
5830
5833
5836
5839
5842
5845
5848
5851
5854
5857
5860
5863
5866
5869
5872
5875
5878
5881
5884
5887
5890
5893
5896
5899
5902
5905
5908
5911
5914
5917
5920
5923
5926
5929
5932
5935
5938
5941
5944
5947
5950
5953
5956
5959
5962
5965
5968
5971
5974
5977
5980
5983
5986
5989
5992
5995
5998
6001
6004
6007
6010
6013
6016
6019
6022
6025
6028
6031
6034
6037
6040
6043
6046
6049
6052
6055
6058
6061
6064
6067
6070
6073
6076
6079
6082
6085
6088
6091
6094
6097
6100
6103
6106
6109
6112
6115
6118
6121
6124
6127
6130
6133
6136
6139
6142
6145
6148
6151
6154
6157
6160
6163
6166
6169
6172
6175
6178
6181
6184
6187
6190
6193
6196
6199
6202
6205
6208
6211
6214
6217
6220
6223
6226
6229
6232
6235
6238
6241
6244
6247
6250
6253
6256
6259
6262
6265
6268
6271
6274
6277
6280
6283
6286
6289
6292
6295
6298
6301
6304
6307
6310
6313
6316
6319
6322
6325
6328
6331
6334
6337
6340
6343
6346
6349
6352
6355
6358
6361
6364
6367
6370
6373
6376
6379
6382
6385
6388
6391
6394
6397
6400
6403
6406
6409
6412
6415
6418
6421
6424
6427
6430
6433
6436
6439
6442
6445
6448
6451
6454
6457
6460
6463
6466
6469
6472
6475
6478
6481
6484
6487
6490
6493
6496
6499
6502
6505
6508
6511
6514
6517
6520
6523
6526
6529
6532
6535
6538
6541
6544
6547
6550
6553
6556
6559
6562
6565
6568
6571
6574
6577
6580
6583
6586
6589
6592
6595
6598
6601
6604
6607
6610
6613
6616
6619
6622
6625
6628
6631
6634
6637
6640
6643
6646
6649
6652
6655
6658
6661
6664
6667
6670
6673
6676
6679
6682
6685
6688
6691
6694
6697
6700
6703
6706
6709
6712
6715
6718
6721
6724
6727
6730
6733
6736
6739
6742
6745
6748
6751
6754
6757
6760
6763
6766
6769
6772
6775
6778
6781
6784
6787
6790
6793
6796
6799
6802
6805
6808
6811
6814
6817
6820
6823
6826
6829
6832
6835
6838
6841
6844
6847
6850
6853
6856
6859
6862
6865
6868
6871
6874
6877
6880
6883
6886
6889
6892
6895
6898
6901
6904
6907
6910
6913
6916
6919
6922
6925
6928
6931
6934
6937
6940
6943
6946
6949
6952
6955
6958
6961
6964
6967
6970
6973
6976
6979
6982
6985
6988
6991
6994
6997
7000
7003
7006
7009
7012
7015
7018
7021
7024
7027
7030
7033
7036
7039
7042
7045
7048
7051
7054
7057
7060
7063
7066
7069
7072
7075
7078
7081
7084
7087
7090
7093
7096
7099
7102
7105
7108
7111
7114
7117
7120
7123
7126
7129
7132
7135
7138
7141
7144
7147
7150
7153
7156
7159
7162
7165
7168
7171
7174
7177
7180
7183
7186
7189
7192
7195
7198
7201
7204
7207
7210
7213
7216
7219
7222
7225
7228
7231
7234
7237
7240
7243
7246
7249
7252
7255
7258
7261
7264
7267
7270
7273
7276
7279
7282
7285
7288
7291
7294
7297
7300
7303
7306
7309
7312
7315
7318
7321
7324
7327
7330
7333
7336
7339
7342
7345
7348
7351
7354
7357
7360
7363
7366
7369
7372
7375
7378
7381
7384
7387
7390
7393
7396
7399
7402
7405
7408
7411
7414
7417
7420
7423
7426
7429
7432
7435
7438
7441
7444
7447
7450
7453
7456
7459
7462
7465
7468
7471
7474
7477
7480
7483
7486
7489
7492
7495
7498
7501
7504
7507
7510
7513
7516
7519
7522
7525
7528
7531
7534
7537
7540
7543
7546
7549
7552
7555
7558
7561
7564
7567
7570
7573
7576
7579
7582
7585
7588
7591
7594
7597
7600
7603
7606
7609
7612
7615
7618
7621
7624
7627
7630
7633
7636
7639
7642
7645
7648
7651
7654
7657
7660
7663
7666
7669
7672
7675
7678
7681
7684
7687
7690
7693
7696
7699
7702
7705
7708
7711
7714
7717
7720
7723
7726
7729
7732
7735
7738
7741
7744
7747
7750
7753
7756
7759
7762
7765
7768
7771
7774
7777
7780
7783
7786
7789
7792
7795
7798
7801
7804
7807
7810
7813
7816
7819
7822
7825
7828
7831
7834
7837
7840
7843
7846
7849
7852
7855
7858
7861
7864
7867
7870
7873
7876
7879
7882
7885
7888
7891
7894
7897
7900
7903
7906
7909
7912
7915
7918
7921
7924
7927
7930
7933
7936
7939
7942
7945
7948
7951
7954
7957
7960
7963
7966
7969
7972
7975
7978
7981
7984
7987
7990
7993
7996
7999
8002
8005
8008
8011
8014
8017
8020
8023
8026
8029
8032
8035
8038
8041
8044
8047
8050
8053
8056
8059
8062
8065
8068
8071
8074
8077
8080
8083
8086
8089
8092
8095
8098
8101
8104
8107
8110
8113
8116
8119
8122
8125
8128
8131
8134
8137
8140
8143
8146
8149
8152
8155
8158
8161
8164
8167
8170
8173
8176
8179
8182
8185
8188
8191
8194
8197
8200
8203
8206
8209
8212
8215
8218
8221
8224
8227
8230
8233
8236
8239
8242
8245
8248
8251
8254
8257
8260
8263
8266
8269
8272
8275
8278
8281
8284
8287
8290
8293
8296
8299
8302
8305
8308
8311
8314
8317
8320
8323
8326
8329
8332
8335
8338
8341
8344
8347
8350
8353
8356
8359
8362
8365
8368
8371
8374
8377
8380
8383
8386
8389
8392
8395
8398
8401
8404
8407
8410
8413
8416
8419
8422
8425
8428
8431
8434
8437
8440
8443
8446
8449
8452
8455
8458
8461
8464
8467
8470
8473
8476
8479
8482
8485
8488
8491
8494
8497
8500
8503
8506
8509
8512
8515
8518
8521
8524
8527
8530
8533
8536
8539
8542
8545
8548
8551
8554
8557
8560
8563
8566
8569
8572
8575
8578
8581
8584
8587
8590
8593
8596
8599
8602
8605
8608
8611
8614
8617
8620
8623
8626
8629
8632
8635
8638
8641
8644
8647
8650
8653
8656
8659
8662
8665
8668
8671
8674
8677
8680
8683
8686
8689
8692
8695
8698
8701
8704
8707
8710
8713
8716
8719
8722
8725
8728
8731
8734
8737
8740
8743
8746
8749
8752
8755
8758
8761
8764
8767
8770
8773
8776
8779
8782
8785
8788
8791
8794
8797
8800
8803
8806
8809
8812
8815
8818
8821
8824
8827
8830
8833
8836
8839
8842
8845
8848
8851
8854
8857
8860
8863
8866
8869
8872
8875
8878
8881
8884
8887
8890
8893
8896
8899
8902
8905
8908
8911
8914
8917
8920
8923
8926
8929
8932
8935
8938
8941
8944
8947
8950
8953
8956
8959
8962
8965
8968
8971
8974
8977
8980
8983
8986
8989
8992
8995
8998
9001
9004
9007
9010
9013
9016
9019
9022
9025
9028
9031
9034
9037
9040
9043
9046
9049
9052
9055
9058
9061
9064
9067
9070
9073
9076
9079
9082
9085
9088
9091
9094
9097
9100
9103
9106
9109
9112
9115
9118
9121
9124
9127
9130
9133
9136
9139
9142
9145
9148
9151
9154
9157
9160
9163
9166
9169
9172
9175
9178
9181
9184
9187
9190
9193
9196
9199
9202
9205
9208
9211
9214
9217
9220
9223
9226
9229
9232
9235
9238
9241
9244
9247
9250
9253
9256
9259
9262
9265
9268
9271
9274
9277
9280
9283
9286
9289
9292
9295
9298
9301
9304
9307
9310
9313
9316
9319
9322
9325
9328
9331
9334
9337
9340
9343
9346
9349
9352
9355
9358
9361
9364
9367
9370
9373
9376
9379
9382
9385
9388
9391
9394
9397
9400
9403
9406
9409
9412
9415
9418
9421
9424
9427
9430
9433
9436
9439
9442
9445
9448
9451
9454
9457
9460
9463
9466
9469
9472
9475
9478
9481
9484
9487
9490
9493
9496
9499
9502
9505
9508
9511
9514
9517
9520
9523
9526
9529
9532
9535
9538
9541
9544
9547
9550
9553
9556
9559
9562
9565
9568
9571
9574
9577
9580
9583
9586
9589
9592
9595
9598
9601
9604
9607
9610
9613
9616
9619
9622
9625
9628
9631
9634
9637
9640
9643
9646
9649
9652
9655
9658
9661
9664
9667
9670
9673
9676
9679
9682
9685
9688
9691
9694
9697
9700
9703
9706
9709
9712
9715
9718
9721
9724
9727
9730
9733
9736
9739
9742
9745
9748
9751
9754
9757
9760
9763
9766
9769
9772
9775
9778
9781
9784
9787
9790
9793
9796
9799
9802
9805
9808
9811
9814
9817
9820
9823
9826
9829
9832
9835
9838
9841
9844
9847
9850
9853
9856
9859
9862
9865
9868
9871
9874
9877
9880
9883
9886
9889
9892
9895
9898
9901
9904
9907
9910
9913
9916
9919
9922
9925
9928
9931
9934
9937
9940
9943
9946
9949
9952
9955
9958
9961
9964
9967
9970
9973
9976
9979
9982
9985
9988
9991
9994
9997
10000
10003
10006
10009
10012
10015
10018
10021
10024
10027
10030
10033
10036
10039
10042
10045
10048
10051
10054
10057
10060
10063
10066
10069
10072
10075
10078
10081
10084
10087
10090
10093
10096
10099
10102
10105
10108
10111
10114
10117
10120
10123
10126
10129
10132
10135
10138
10141
10144
10147
10150
10153
10156
10159
10162
10165
10168
10171
10174
10177
10180
10183
10186
10189
10192
10195
10198
10201
10204
10207
10210
10213
10216
10219
10222
10225
10228
10231
10234
10237
10240
10243
10246
10249
10252
10255
10258
10261
10264
10267
10270
10273
10276
10279
10282
10285
10288
10291
10294
10297
10300
10303
10306
10309
10312
10315
10318
10321
10324
10327
10330
10333
10336
10339
10342
10345
10348
10351
10354
10357
10360
10363
10366
10369
10372
10375
10378
10381
10384
10387
10390
10393
10396
10399
10402
10405
10408
10411
10414
10417
10420
10423
10426
10429
10432
10435
10438
10441
10444
10447
10450
10453
10456
10459
10462
10465
10468
10471
10474
10477
10480
10483
10486
10489
10492
10495
10498
10501
10504
10507
10510
10513
10516
10519
10522
10525
10528
10531
10534
10537
10540
10543
10546
10549
10552
10555
10558
10561
10564
10567
10570
10573
10576
10579
10582
10585
10588
10591
10594
10597
10600
10603
10606
10609
10612
10615
10618
10621
10624
10627
10630
10633
10636
10639
10642
10645
10648
10651
10654
10657
10660
10663
10666
10669
10672
10675
10678
10681
10684
10687
10690
10693
10696
10699
10702
10705
10708
10711
10714
10717
10720
10723
10726
10729
10732
10735
10738
10741
10744
10747
10750
10753
10756
10759
10762
10765
10768
10771
10774
10777
10780
10783
10786
10789
10792
10795
10798
10801
10804
10807
10810
10813
10816
10819
10822
10825
10828
10831
10834
10837
10840
10843
10846
10849
10852
10855
10858
10861
10864
10867
10870
10873
10876
10879
10882
10885
10888
10891
10894
10897
10900
10903
10906
10909
10912
10915
10918
10921
10924
10927
10930
10933
10936
10939
10942
10945
10948
10951
10954
10957
10960
10963
10966
10969
10972
10975
10978
10981
10984
10987
10990
10993
10996
10999
11002
11005
11008
11011
11014
11017
11020
11023
11026
11029
11032
11035
11038
11041
11044
11047
11050
11053
11056
11059
11062
11065
11068
11071
11074
11077
11080
11083
11086
11089
11092
11095
11098
11101
11104
11107
11110
11113
11116
11119
11122
11125
11128
11131
11134
11137
11140
11143
11146
11149
11152
11155
11158
11161
11164
11167
11170
11173
11176
11179
11182
11185
11188
11191
11194
11197
11200
11203
11206
11209
11212
11215
11218
11221
11224
11227
11230
11233
11236
11239
11242
11245
11248
11251
11254
11257
11260
11263
11266
11269
11272
11275
11278
11281
11284
11287
11290
11293
11296
11299
11302
11305
11308
11311
11314
11317
11320
11323
11326
11329
11332
11335
11338
11341
11344
11347
11350
11353
11356
11359
11362
11365
11368
11371
11374
11377
11380
11383
11386
11389
11392
11395
11398
11401
11404
11407
11410
11413
11416
11419
11422
11425
11428
11431
11434
11437
11440
11443
11446
11449
11452
11455
11458
11461
11464
11467
11470
11473
11476
11479
11482
11485
11488
11491
11494
11497
11500
11503
11506
11509
11512
11515
11518
11521
11524
11527
11530
11533
11536
11539
11542
11545
11548
11551
11554
11557
11560
11563
11566
11569
11572
11575
11578
11581
11584
11587
11590
11593
11596
11599
11602
11605
11608
11611
11614
11617
11620
11623
11626
11629
11632
11635
11638
11641
11644
11647
11650
11653
11656
11659
11662
11665
11668
11671
11674
11677
11680
11683
11686
11689
11692
11695
11698
11701
11704
11707
11710
11713
11716
11719
11722
11725
11728
11731
11734
11737
11740
11743
11746
11749
11752
11755
11758
11761
11764
11767
11770
11773
11776
11779
11782
11785
11788
11791
11794
11797
11800
11803
11806
11809
11812
11815
11818
11821
11824
11827
11830
11833
11836
11839
11842
11845
11848
11851
11854
11857
11860
11863
11866
11869
11872
11875
11878
11881
11884
11887
11890
11893
11896
11899
11902
11905
11908
11911
11914
11917
11920
11923
11926
11929
11932
11935
11938
11941
11944
11947
11950
11953
11956
11959
11962
11965
11968
11971
11974
11977
11980
11983
11986
11989
11992
11995
11998
12001
12004
12007
12010
12013
12016
12019
12022
12025
12028
12031
12034
12037
12040
12043
12046
12049
12052
12055
12058
12061
12064
12067
12070
12073
12076
12079
12082
12085
12088
12091
12094
12097
12100
12103
12106
12109
12112
12115
12118
12121
12124
12127
12130
12133
12136
12139
12142
12145
12148
12151
12154
12157
12160
12163
12166
12169
12172
12175
12178
12181
12184
12187
12190
12193
12196
12199
12202
12205
12208
12211
12214
12217
12220
12223
12226
12229
12232
12235
12238
12241
12244
12247
12250
12253
12256
12259
12262
12265
12268
12271
12274
12277
12280
12283
12286
12289
12292
12295
12298
12301
12304
12307
12310
12313
12316
12319
12322
12325
12328
12331
12334
12337
12340
12343
12346
12349
12352
12355
12358
12361
12364
12367
12370
12373
12376
12379
12382
12385
12388
12391
12394
12397
12400
12403
12406
12409
12412
12415
12418
12421
12424
12427
12430
12433
12436
12439
12442
12445
12448
12451
12454
12457
12460
12463
12466
12469
12472
12475
12478
12481
12484
12487
12490
12493
12496
12499
12502
12505
12508
12511
12514
12517
12520
12523
12526
12529
12532
12535
12538
12541
12544
12547
12550
12553
12556
12559
12562
12565
12568
12571
12574
12577
12580
12583
12586
12589
12592
12595
12598
12601
12604
12607
12610
12613
12616
12619
12622
12625
12628
12631
12634
12637
12640
12643
12646
12649
12652
12655
12658
12661
12664
12667
12670
12673
12676
12679
12682
12685
12688
12691
12694
12697
12700
12703
12706
12709
12712
12715
12718
12721
12724
12727
12730
12733
12736
12739
12742
12745
12748
12751
12754
12757
12760
12763
12766
12769
12772
12775
12778
12781
12784
12787
12790
12793
12796
12799
12802
12805
12808
12811
12814
12817
12820
12823
12826
12829
12832
12835
12838
12841
12844
12847
12850
12853
12856
12859
12862
12865
12868
12871
12874
12877
12880
12883
12886
12889
12892
12895
12898
12901
12904
12907
12910
12913
12916
12919
12922
12925
12928
12931
12934
12937
12940
12943
12946
12949
12952
12955
12958
12961
12964
12967
12970
12973
12976
12979
12982
12985
12988
12991
12994
12997
13000
13003
13006
13009
13012
13015
13018
13021
13024
13027
13030
13033
13036
13039
13042
13045
13048
13051
13054
13057
13060
13063
13066
13069
13072
13075
13078
13081
13084
13087
13090
13093
13096
13099
13102
13105
13108
13111
13114
13117
13120
13123
13126
13129
13132
13135
13138
13141
13144
13147
13150
13153
13156
13159
13162
13165
13168
13171
13174
13177
13180
13183
13186
13189
13192
13195
13198
13201
13204
13207
13210
13213
13216
13219
13222
13225
13228
13231
13234
13237
13240
13243
13246
13249
13252
13255
13258
13261
13264
13267
13270
13273
13276
13279
13282
13285
13288
13291
13294
13297
13300
13303
13306
13309
13312
13315
13318
13321
13324
13327
13330
13333
13336
13339
13342
13345
13348
13351
13354
13357
13360
13363
13366
13369
13372
13375
13378
13381
13384
13387
13390
13393
13396
13399
13402
13405
13408
13411
13414
13417
13420
13423
13426
13429
13432
13435
13438
13441
13444
13447
13450
13453
13456
13459
13462
13465
13468
13471
13474
13477
13480
13483
13486
13489
13492
13495
13498
13501
13504
13507
13510
13513
13516
13519
13522
13525
13528
13531
13534
13537
13540
13543
13546
13549
13552
13555
13558
13561
13564
13567
13570
13573
13576
13579
13582
13585
13588
13591
13594
13597
13600
13603
13606
13609
13612
13615
13618
13621
13624
13627
13630
13633
13636
13639
13642
13645
13648
13651
13654
13657
13660
13663
13666
13669
13672
13675
13678
13681
13684
13687
13690
13693
13696
13699
13702
13705
13708
13711
13714
13717
13720
13723
13726
13729
13732
13735
13738
13741
13744
13747
13750
13753
13756
13759
13762
13765
13768
13771
13774
13777
13780
13783
13786
13789
13792
13795
13798
13801
13804
13807
13810
13813
13816
13819
13822
13825
13828
13831
13834
13837
13840
13843
13846
13849
13852
13855
13858
13861
13864
13867
13870
13873
13876
13879
13882
13885
13888
13891
13894
13897
13900
13903
13906
13909
13912
13915
13918
13921
13924
13927
13930
13933
13936
13939
13942
13945
13948
13951
13954
13957
13960
13963
13966
13969
13972
13975
13978
13981
13984
13987
13990
13993
13996
13999
14002
14005
14008
14011
14014
14017
14020
14023
14026
14029
14032
14035
14038
14041
14044
14047
14050
14053
14056
14059
14062
14065
14068
14071
14074
14077
14080
14083
14086
14089
14092
14095
14098
14101
14104
14107
14110
14113
14116
14119
14122
14125
14128
14131
14134
14137
14140
14143
14146
14149
14152
14155
14158
14161
14164
14167
14170
14173
14176
14179
14182
14185
14188
14191
14194
14197
14200
14203
14206
14209
14212
14215
14218
14221
14224
14227
14230
14233
14236
14239
14242
14245
14248
14251
14254
14257
14260
14263
14266
14269
14272
14275
14278
14281
14284
14287
14290
14293
14296
14299
14302
14305
14308
14311
14314
14317
14320
14323
14326
14329
14332
14335
14338
14341
14344
14347
14350
14353
14356
14359
14362
14365
14368
14371
14374
14377
14380
14383
14386
14389
14392
14395
14398
14401
14404
14407
14410
14413
14416
14419
14422
14425
14428
14431
14434
14437
14440
14443
14446
14449
14452
14455
14458
14461
14464
14467
14470
14473
14476
14479
14482
14485
14488
14491
14494
14497
14500
14503
14506
14509
14512
14515
14518
14521
14524
14527
14530
14533
14536
14539
14542
14545
14548
14551
14554
14557
14560
14563
14566
14569
14572
14575
14578
14581
14584
14587
14590
14593
14596
14599
14602
14605
14608
14611
14614
14617
14620
14623
14626
14629
14632
14635
14638
14641
14644
14647
14650
14653
14656
14659
14662
14665
14668
14671
14674
14677
14680
14683
14686
14689
14692
14695
14698
14701
14704
14707
14710
14713
14716
14719
14722
14725
14728
14731
14734
14737
14740
14743
14746
14749
14752
14755
14758
14761
14764
14767
14770
14773
14776
14779
14782
14785
14788
14791
14794
14797
14800
14803
14806
14809
14812
14815
14818
14821
14824
14827
14830
14833
14836
14839
14842
14845
14848
14851
14854
14857
14860
14863
14866
14869
14872
14875
14878
14881
14884
14887
14890
14893
14896
14899
14902
14905
14908
14911
14914
14917
14920
14923
14926
14929
14932
14935
14938
14941
14944
14947
14950
14953
14956
14959
14962
14965
14968
14971
14974
14977
14980
14983
14986
14989
14992
14995
14998
15001
15004
15007
15010
15013
15016
15019
15022
15025
15028
15031
15034
15037
15040
15043
15046
15049
15052
15055
15058
15061
15064
15067
15070
15073
15076
15079
15082
15085
15088
15091
15094
15097
15100
15103
15106
15109
15112
15115
15118
15121
15124
15127
15130
15133
15136
15139
15142
15145
15148
15151
15154
15157
15160
15163
15166
15169
15172
15175
15178
15181
15184
15187
15190
15193
15196
15199
15202
15205
15208
15211
15214
15217
15220
15223
15226
15229
15232
15235
15238
15241
15244
15247
15250
15253
15256
15259
15262
15265
15268
15271
15274
15277
15280
15283
15286
15289
15292
15295
15298
15301
15304
15307
15310
15313
15316
15319
15322
15325
15328
15331
15334
15337
15340
15343
15346
15349
15352
15355
15358
15361
15364
15367
15370
15373
15376
15379
15382
15385
15388
15391
15394
15397
15400
15403
15406
15409
15412
15415
15418
15421
15424
15427
15430
15433
15436
15439
15442
15445
15448
15451
15454
15457
15460
15463
15466
15469
15472
15475
15478
15481
15484
15487
15490
15493
15496
15499
15502
15505
15508
15511
15514
15517
15520
15523
15526
15529
15532
15535
15538
15541
15544
15547
15550
15553
15556
15559
15562
15565
15568
15571
15574
15577
15580
15583
15586
15589
15592
15595
15598
15601
15604
15607
15610
15613
15616
15619
15622
15625
15628
15631
15634
15637
15640
15643
15646
15649
15652
15655
15658
15661
15664
15667
15670
15673
15676
15679
15682
15685
15688
15691
15694
15697
15700
15703
15706
15709
15712
15715
15718
15721
15724
15727
15730
15733
15736
15739
15742
15745
15748
15751
15754
15757
15760
15763
15766
15769
15772
15775
15778
15781
15784
15787
15790
15793
15796
15799
15802
15805
15808
15811
15814
15817
15820
15823
15826
15829
15832
15835
15838
15841
15844
15847
15850
15853
15856
15859
15862
15865
15868
15871
15874
15877
15880
15883
15886
15889
15892
15895
15898
15901
15904
15907
15910
15913
15916
15919
15922
15925
15928
15931
15934
15937
15940
15943
15946
15949
15952
15955
15958
15961
15964
15967
15970
15973
15976
15979
15982
15985
15988
15991
15994
15997
16000
16003
16006
16009
16012
16015
16018
16021
16024
16027
16030
16033
16036
16039
16042
16045
16048
16051
16054
16057
16060
16063
16066
16069
16072
16075
16078
16081
16084
16087
16090
16093
16096
16099
16102
16105
16108
16111
16114
16117
16120
16123
16126
16129
16132
16135
16138
16141
16144
16147
16150
16153
16156
16159
16162
16165
16168
16171
16174
16177
16180
16183
16186
16189
16192
16195
16198
16201
16204
16207
16210
16213
16216
16219
16222
16225
16228
16231
16234
16237
16240
16243
16246
16249
16252
16255
16258
16261
16264
16267
16270
16273
16276
16279
16282
16285
16288
16291
16294
16297
16300
16303
16306
16309
16312
16315
16318
16321
16324
16327
16330
16333
16336
16339
16342
16345
16348
16351
16354
16357
16360
16363
16366
16369
16372
16375
16378
16381
16384
16387
16390
16393
16396
16399
16402
16405
16408
16411
16414
16417
16420
16423
16426
16429
16432
16435
16438
16441
16444
16447
16450
16453
16456
16459
16462
16465
16468
16471
16474
16477
16480
16483
16486
16489
16492
16495
16498
16501
16504
16507
16510
16513
16516
16519
16522
16525
16528
16531
16534
16537
16540
16543
16546
16549
16552
16555
16558
16561
16564
16567
16570
16573
16576
16579
16582
16585
16588
16591
16594
16597
16600
16603
16606
16609
16612
16615
16618
16621
16624
16627
16630
16633
16636
16639
16642
16645
16648
16651
16654
16657
16660
16663
16666
16669
16672
16675
16678
16681
16684
16687
16690
16693
16696
16699
16702
16705
16708
16711
16714
16717
16720
16723
16726
16729
16732
16735
16738
16741
16744
16747
16750
16753
16756
16759
16762
16765
16768
16771
16774
16777
16780
16783
16786
16789
16792
16795
16798
16801
16804
16807
16810
16813
16816
16819
16822
16825
16828
16831
16834
16837
16840
16843
16846
16849
16852
16855
16858
16861
16864
16867
16870
16873
16876
16879
16882
16885
16888
16891
16894
16897
16900
16903
16906
16909
16912
16915
16918
16921
16924
16927
16930
16933
16936
16939
16942
16945
16948
16951
16954
16957
16960
16963
16966
16969
16972
16975
16978
16981
16984
16987
16990
16993
16996
16999
17002
17005
17008
17011
17014
17017
17020
17023
17026
17029
17032
17035
17038
17041
17044
17047
17050
17053
17056
17059
17062
17065
17068
17071
17074
17077
17080
17083
17086
17089
17092
17095
17098
17101
17104
17107
17110
17113
17116
17119
17122
17125
17128
17131
17134
17137
17140
17143
17146
17149
17152
17155
17158
17161
17164
17167
17170
17173
17176
17179
17182
17185
17188
17191
17194
17197
17200
17203
17206
17209
17212
17215
17218
17221
17224
17227
17230
17233
17236
17239
17242
17245
17248
17251
17254
17257
17260
17263
17266
17269
17272
17275
17278
17281
17284
17287
17290
17293
17296
17299
17302
17305
17308
17311
17314
17317
17320
17323
17326
17329
17332
17335
17338
17341
17344
17347
17350
17353
17356
17359
17362
17365
17368
17371
17374
17377
17380
17383
17386
17389
17392
17395
17398
17401
17404
17407
17410
17413
17416
17419
17422
17425
17428
17431
17434
17437
17440
17443
17446
17449
17452
17455
17458
17461
17464
17467
17470
17473
17476
17479
17482
17485
17488
17491
17494
17497
17500
17503
17506
17509
17512
17515
17518
17521
17524
17527
17530
17533
17536
17539
17542
17545
17548
17551
17554
17557
17560
17563
17566
17569
17572
17575
17578
17581
17584
17587
17590
17593
17596
17599
17602
17605
17608
17611
17614
17617
17620
17623
17626
17629
17632
17635
17638
17641
17644
17647
17650
17653
17656
17659
17662
17665
17668
17671
17674
17677
17680
17683
17686
17689
17692
17695
17698
17701
17704
17707
17710
17713
17716
17719
17722
17725
17728
17731
17734
17737
17740
17743
17746
17749
17752
17755
17758
17761
17764
17767
17770
17773
17776
17779
17782
17785
17788
17791
17794
17797
17800
17803
17806
17809
17812
17815
17818
17821
17824
17827
17830
17833
17836
17839
17842
17845
17848
17851
17854
17857
17860
17863
17866
17869
17872
17875
17878
17881
17884
17887
17890
17893
17896
17899
17902
17905
17908
17911
17914
17917
17920
17923
17926
17929
17932
17935
17938
17941
17944
17947
17950
17953
17956
17959
17962
17965
17968
17971
17974
17977
17980
17983
17986
17989
17992
17995
17998
18001
18004
18007
18010
18013
18016
18019
18022
18025
18028
18031
18034
18037
18040
18043
18046
18049
18052
18055
18058
18061
18064
18067
18070
18073
18076
18079
18082
18085
18088
18091
18094
18097
18100
18103
18106
18109
18112
18115
18118
18121
18124
18127
18130
18133
18136
18139
18142
18145
18148
18151
18154
18157
18160
18163
18166
18169
18172
18175
18178
18181
18184
18187
18190
18193
18196
18199
18202
18205
18208
18211
18214
18217
18220
18223
18226
18229
18232
18235
18238
18241
18244
18247
18250
18253
18256
18259
18262
18265
18268
18271
18274
18277
18280
18283
18286
18289
18292
18295
18298
18301
18304
18307
18310
18313
18316
18319
18322
18325
18328
18331
18334
18337
18340
18343
18346
18349
18352
18355
18358
18361
18364
18367
18370
18373
18376
18379
18382
18385
18388
18391
18394
18397
18400
18403
18406
18409
18412
18415
18418
18421
18424
18427
18430
18433
18436
18439
18442
18445
18448
18451
18454
18457
18460
18463
18466
18469
18472
18475
18478
18481
18484
18487
18490
18493
18496
18499
18502
18505
18508
18511
18514
18517
18520
18523
18526
18529
18532
18535
18538
18541
18544
18547
18550
18553
18556
18559
18562
18565
18568
18571
18574
18577
18580
18583
18586
18589
18592
18595
18598
18601
18604
18607
18610
18613
18616
18619
18622
18625
18628
18631
18634
18637
18640
18643
18646
18649
18652
18655
18658
18661
18664
18667
18670
18673
18676
18679
18682
18685
18688
18691
18694
18697
18700
18703
18706
18709
18712
18715
18718
18721
18724
18727
18730
18733
18736
18739
18742
18745
18748
18751
18754
18757
18760
18763
18766
18769
18772
18775
18778
18781
18784
18787
18790
18793
18796
18799
18802
18805
18808
18811
18814
18817
18820
18823
18826
18829
18832
18835
18838
18841
18844
18847
18850
18853
18856
18859
18862
18865
18868
18871
18874
18877
18880
18883
18886
18889
18892
18895
18898
18901
18904
18907
18910
18913
18916
18919
18922
18925
18928
18931
18934
18937
18940
18943
18946
18949
18952
18955
18958
18961
18964
18967
18970
18973
18976
18979
18982
18985
18988
18991
18994
18997
19000
19003
19006
19009
19012
19015
19018
19021
19024
19027
19030
19033
19036
19039
19042
19045
19048
19051
19054
19057
19060
19063
19066
19069
19072
19075
19078
19081
19084
19087
19090
19093
19096
19099
19102
19105
19108
19111
19114
19117
19120
19123
19126
19129
19132
19135
19138
19141
19144
19147
19150
19153
19156
19159
19162
19165
19168
19171
19174
19177
19180
19183
19186
19189
19192
19195
19198
19201
19204
19207
19210
19213
19216
19219
19222
19225
19228
19231
19234
19237
19240
19243
19246
19249
19252
19255
19258
19261
19264
19267
19270
19273
19276
19279
19282
19285
19288
19291
19294
19297
19300
19303
19306
19309
19312
19315
19318
19321
19324
19327
19330
19333
19336
19339
19342
19345
19348
19351
19354
19357
19360
19363
19366
19369
19372
19375
19378
19381
19384
19387
19390
19393
19396
19399
19402
19405
19408
19411
19414
19417
19420
19423
19426
19429
19432
19435
19438
19441
19444
19447
19450
19453
19456
19459
19462
19465
19468
19471
19474
19477
19480
19483
19486
19489
19492
19495
19498
19501
19504
19507
19510
19513
19516
19519
19522
19525
19528
19531
19534
19537
19540
19543
19546
19549
19552
19555
19558
19561
19564
19567
19570
19573
19576
19579
19582
19585
19588
19591
19594
19597
19600
19603
19606
19609
19612
19615
19618
19621
19624
19627
19630
19633
19636
19639
19642
19645
19648
19651
19654
19657
19660
19663
19666
19669
19672
19675
19678
19681
19684
19687
19690
19693
19696
19699
19702
19705
19708
19711
19714
19717
19720
19723
19726
19729
19732
19735
19738
19741
19744
19747
19750
19753
19756
19759
19762
19765
19768
19771
19774
19777
19780
19783
19786
19789
19792
19795
19798
19801
19804
19807
19810
19813
19816
19819
19822
19825
19828
19831
19834
19837
19840
19843
19846
19849
19852
19855
19858
19861
19864
19867
19870
19873
19876
19879
19882
19885
19888
19891
19894
19897
19900
19903
19906
19909
19912
19915
19918
19921
19924
19927
19930
19933
19936
19939
19942
19945
19948
19951
19954
19957
19960
19963
19966
19969
19972
19975
19978
19981
19984
19987
19990
19993
19996
19999
20002
20005
20008
20011
20014
20017
20020
20023
20026
20029
20032
20035
20038
20041
20044
20047
20050
20053
20056
20059
20062
20065
20068
20071
20074
20077
20080
20083
20086
20089
20092
20095
20098
20101
20104
20107
20110
20113
20116
20119
20122
20125
20128
20131
20134
20137
20140
20143
20146
20149
20152
20155
20158
20161
20164
20167
20170
20173
20176
20179
20182
20185
20188
20191
20194
20197
20200
20203
20206
20209
20212
20215
20218
20221
20224
20227
20230
20233
20236
20239
20242
20245
20248
20251
20254
20257
20260
20263
20266
20269
20272
20275
20278
20281
20284
20287
20290
20293
20296
20299
20302
20305
20308
20311
20314
20317
20320
20323
20326
20329
20332
20335
20338
20341
20344
20347
20350
20353
20356
20359
20362
20365
20368
20371
20374
20377
20380
20383
20386
20389
20392
20395
20398
20401
20404
20407
20410
20413
20416
20419
20422
20425
20428
20431
20434
20437
20440
20443
20446
20449
20452
20455
20458
20461
20464
20467
20470
20473
20476
20479
20482
20485
20488
20491
20494
20497
20500
20503
20506
20509
20512
20515
20518
20521
20524
20527
20530
20533
20536
20539
20542
20545
20548
20551
20554
20557
20560
20563
20566
20569
20572
20575
20578
20581
20584
20587
20590
20593
20596
20599
20602
20605
20608
20611
20614
20617
20620
20623
20626
20629
20632
20635
20638
20641
20644
20647
20650
20653
20656
20659
20662
20665
20668
20671
20674
20677
20680
20683
20686
20689
20692
20695
20698
20701
20704
20707
20710
20713
20716
20719
20722
20725
20728
20731
20734
20737
20740
20743
20746
20749
20752
20755
20758
20761
20764
20767
20770
20773
20776
20779
20782
20785
20788
20791
20794
20797
20800
20803
20806
20809
20812
20815
20818
20821
20824
20827
20830
20833
20836
20839
20842
20845
20848
20851
20854
20857
20860
20863
20866
20869
20872
20875
20878
20881
20884
20887
20890
20893
20896
20899
20902
20905
20908
20911
20914
20917
20920
20923
20926
20929
20932
20935
20938
20941
20944
20947
20950
20953
20956
20959
20962
20965
20968
20971
20974
20977
20980
20983
20986
20989
20992
20995
20998
21001
21004
21007
21010
21013
21016
21019
21022
21025
21028
21031
21034
21037
21040
21043
21046
21049
21052
21055
21058
21061
21064
21067
21070
21073
21076
21079
21082
21085
21088
21091
21094
21097
21100
21103
21106
21109
21112
21115
21118
21121
21124
21127
21130
21133
21136
21139
21142
21145
21148
21151
21154
21157
21160
21163
21166
21169
21172
21175
21178
21181
21184
21187
21190
21193
21196
21199
21202
21205
21208
21211
21214
21217
21220
21223
21226
21229
21232
21235
21238
21241
21244
21247
21250
21253
21256
21259
21262
21265
21268
21271
21274
21277
21280
21283
21286
21289
21292
21295
21298
21301
21304
21307
21310
21313
21316
21319
21322
21325
21328
21331
21334
21337
21340
21343
21346
21349
21352
21355
21358
21361
21364
21367
21370
21373
21376
21379
21382
21385
21388
21391
21394
21397
21400
21403
21406
21409
21412
21415
21418
21421
21424
21427
21430
21433
21436
21439
21442
21445
21448
21451
21454
21457
21460
21463
21466
21469
21472
21475
21478
21481
21484
21487
21490
21493
21496
21499
21502
21505
21508
21511
21514
21517
21520
21523
21526
21529
21532
21535
21538
21541
21544
21547
21550
21553
21556
21559
21562
21565
21568
21571
21574
21577
21580
21583
21586
21589
21592
21595
21598
21601
21604
21607
21610
21613
21616
21619
21622
21625
21628
21631
21634
21637
21640
21643
21646
21649
21652
21655
21658
21661
21664
21667
21670
21673
21676
21679
21682
21685
21688
21691
21694
21697
21700
21703
21706
21709
21712
21715
21718
21721
21724
21727
21730
21733
21736
21739
21742
21745
21748
21751
21754
21757
21760
21763
21766
21769
21772
21775
21778
21781
21784
21787
21790
21793
21796
21799
21802
21805
21808
21811
21814
21817
21820
21823
21826
21829
21832
21835
21838
21841
21844
21847
21850
21853
21856
21859
21862
21865
21868
21871
21874
21877
21880
21883
21886
21889
21892
21895
21898
21901
21904
21907
21910
21913
21916
21919
21922
21925
21928
21931
21934
21937
21940
21943
21946
21949
21952
21955
21958
21961
21964
21967
21970
21973
21976
21979
21982
21985
21988
21991
21994
21997
22000
22003
22006
22009
22012
22015
22018
22021
22024
22027
22030
22033
22036
22039
22042
22045
22048
22051
22054
22057
22060
22063
22066
22069
22072
22075
22078
22081
22084
22087
22090
22093
22096
22099
22102
22105
22108
22111
22114
22117
22120
22123
22126
22129
22132
22135
22138
22141
22144
22147
22150
22153
22156
22159
22162
22165
22168
22171
22174
22177
22180
22183
22186
22189
22192
22195
22198
22201
22204
22207
22210
22213
22216
22219
22222
22225
22228
22231
22234
22237
22240
22243
22246
22249
22252
22255
22258
22261
22264
22267
22270
22273
22276
22279
22282
22285
22288
22291
22294
22297
22300
22303
22306
22309
22312
22315
22318
22321
22324
22327
22330
22333
22336
22339
22342
22345
22348
22351
22354
22357
22360
22363
22366
22369
22372
22375
22378
22381
22384
22387
22390
22393
22396
22399
22402
22405
22408
22411
22414
22417
22420
22423
22426
22429
22432
22435
22438
22441
22444
22447
22450
22453
22456
22459
22462
22465
22468
22471
22474
22477
22480
22483
22486
22489
22492
22495
22498
22501
22504
22507
22510
22513
22516
22519
22522
22525
22528
22531
22534
22537
22540
22543
22546
22549
22552
22555
22558
22561
22564
22567
22570
22573
22576
22579
22582
22585
22588
22591
22594
22597
22600
22603
22606
22609
22612
22615
22618
22621
22624
22627
22630
22633
22636
22639
22642
22645
22648
22651
22654
22657
22660
22663
22666
22669
22672
22675
22678
22681
22684
22687
22690
22693
22696
22699
22702
22705
22708
22711
22714
22717
22720
22723
22726
22729
22732
22735
22738
22741
22744
22747
22750
22753
22756
22759
22762
22765
22768
22771
22774
22777
22780
22783
22786
22789
22792
22795
22798
22801
22804
22807
22810
22813
22816
22819
22822
22825
22828
22831
22834
22837
22840
22843
22846
22849
22852
22855
22858
22861
22864
22867
22870
22873
22876
22879
22882
22885
22888
22891
22894
22897
22900
22903
22906
22909
22912
22915
22918
22921
22924
22927
22930
22933
22936
22939
22942
22945
22948
22951
22954
22957
22960
22963
22966
22969
22972
22975
22978
22981
22984
22987
22990
22993
22996
22999
23002
23005
23008
23011
23014
23017
23020
23023
23026
23029
23032
23035
23038
23041
23044
23047
23050
23053
23056
23059
23062
23065
23068
23071
23074
23077
23080
23083
23086
23089
23092
23095
23098
23101
23104
23107
23110
23113
23116
23119
23122
23125
23128
23131
23134
23137
23140
23143
23146
23149
23152
23155
23158
23161
23164
23167
23170
23173
23176
23179
23182
23185
23188
23191
23194
23197
23200
23203
23206
23209
23212
23215
23218
23221
23224
23227
23230
23233
23236
23239
23242
23245
23248
23251
23254
23257
23260
23263
23266
23269
23272
23275
23278
23281
23284
23287
23290
23293
23296
23299
23302
23305
23308
23311
23314
23317
23320
23323
23326
23329
23332
23335
23338
23341
23344
23347
23350
23353
23356
23359
23362
23365
23368
23371
23374
23377
23380
23383
23386
23389
23392
23395
23398
23401
23404
23407
23410
23413
23416
23419
23422
23425
23428
23431
23434
23437
23440
23443
23446
23449
23452
23455
23458
23461
23464
23467
23470
23473
23476
23479
23482
23485
23488
23491
23494
23497
23500
23503
23506
23509
23512
23515
23518
23521
23524
23527
23530
23533
23536
23539
23542
23545
23548
23551
23554
23557
23560
23563
23566
23569
23572
23575
23578
23581
23584
23587
23590
23593
23596
23599
23602
23605
23608
23611
23614
23617
23620
23623
23626
23629
23632
23635
23638
23641
23644
23647
23650
23653
23656
23659
23662
23665
23668
23671
23674
23677
23680
23683
23686
23689
23692
23695
23698
23701
23704
23707
23710
23713
23716
23719
23722
23725
23728
23731
23734
23737
23740
23743
23746
23749
23752
23755
23758
23761
23764
23767
23770
23773
23776
23779
23782
23785
23788
23791
23794
23797
23800
23803
23806
23809
23812
23815
23818
23821
23824
23827
23830
23833
23836
23839
23842
23845
23848
23851
23854
23857
23860
23863
23866
23869
23872
23875
23878
23881
23884
23887
23890
23893
23896
23899
23902
23905
23908
23911
23914
23917
23920
23923
23926
23929
23932
23935
23938
23941
23944
23947
23950
23953
23956
23959
23962
23965
23968
23971
23974
23977
23980
23983
23986
23989
23992
23995
23998
24001
24004
24007
24010
24013
24016
24019
24022
24025
24028
24031
24034
24037
24040
24043
24046
24049
24052
24055
24058
24061
24064
24067
24070
24073
24076
24079
24082
24085
24088
24091
24094
24097
24100
24103
24106
24109
24112
24115
24118
24121
24124
24127
24130
24133
24136
24139
24142
24145
24148
24151
24154
24157
24160
24163
24166
24169
24172
24175
24178
24181
24184
24187
24190
24193
24196
24199
24202
24205
24208
24211
24214
24217
24220
24223
24226
24229
24232
24235
24238
24241
24244
24247
24250
24253
24256
24259
24262
24265
24268
24271
24274
24277
24280
24283
24286
24289
24292
24295
24298
24301
24304
24307
24310
24313
24316
24319
24322
24325
24328
24331
24334
24337
24340
24343
24346
24349
24352
24355
24358
24361
24364
24367
24370
24373
24376
24379
24382
24385
24388
24391
24394
24397
24400
24403
24406
24409
24412
24415
24418
24421
24424
24427
24430
24433
24436
24439
24442
24445
24448
24451
24454
24457
24460
24463
24466
24469
24472
24475
24478
24481
24484
24487
24490
24493
24496
24499
24502
24505
24508
24511
24514
24517
24520
24523
24526
24529
24532
24535
24538
24541
24544
24547
24550
24553
24556
24559
24562
24565
24568
24571
24574
24577
24580
24583
24586
24589
24592
24595
24598
24601
24604
24607
24610
24613
24616
24619
24622
24625
24628
24631
24634
24637
24640
24643
24646
24649
24652
24655
24658
24661
24664
24667
24670
24673
24676
24679
24682
24685
24688
24691
24694
24697
24700
24703
24706
24709
24712
24715
24718
24721
24724
24727
24730
24733
24736
24739
24742
24745
24748
24751
24754
24757
24760
24763
24766
24769
24772
24775
24778
24781
24784
24787
24790
24793
24796
24799
24802
24805
24808
24811
24814
24817
24820
24823
24826
24829
24832
24835
24838
24841
24844
24847
24850
24853
24856
24859
24862
24865
24868
24871
24874
24877
24880
24883
24886
24889
24892
24895
24898
24901
24904
24907
24910
24913
24916
24919
24922
24925
24928
24931
24934
24937
24940
24943
24946
24949
24952
24955
24958
24961
24964
24967
24970
24973
24976
24979
24982
24985
24988
24991
24994
24997
25000
25003
25006
25009
25012
25015
25018
25021
25024
25027
25030
25033
25036
25039
25042
25045
25048
25051
25054
25057
25060
25063
25066
25069
25072
25075
25078
25081
25084
25087
25090
25093
25096
25099
25102
25105
25108
25111
25114
25117
25120
25123
25126
25129
25132
25135
25138
25141
25144
25147
25150
25153
25156
25159
25162
25165
25168
25171
25174
25177
25180
25183
25186
25189
25192
25195
25198
25201
25204
25207
25210
25213
25216
25219
25222
25225
25228
25231
25234
25237
25240
25243
25246
25249
25252
25255
25258
25261
25264
25267
25270
25273
25276
25279
25282
25285
25288
25291
25294
25297
25300
25303
25306
25309
25312
25315
25318
25321
25324
25327
25330
25333
25336
25339
25342
25345
25348
25351
25354
25357
25360
25363
25366
25369
25372
25375
25378
25381
25384
25387
25390
25393
25396
25399
25402
25405
25408
25411
25414
25417
25420
25423
25426
25429
25432
25435
25438
25441
25444
25447
25450
25453
25456
25459
25462
25465
25468
25471
25474
25477
25480
25483
25486
25489
25492
25495
25498
25501
25504
25507
25510
25513
25516
25519
25522
25525
25528
25531
25534
25537
25540
25543
25546
25549
25552
25555
25558
25561
25564
25567
25570
25573
25576
25579
25582
25585
25588
25591
25594
25597
25600
25603
25606
25609
25612
25615
25618
25621
25624
25627
25630
25633
25636
25639
25642
25645
25648
25651
25654
25657
25660
25663
25666
25669
25672
25675
25678
25681
25684
25687
25690
25693
25696
25699
25702
25705
25708
25711
25714
25717
25720
25723
25726
25729
25732
25735
25738
25741
25744
25747
25750
25753
25756
25759
25762
25765
25768
25771
25774
25777
25780
25783
25786
25789
25792
25795
25798
25801
25804
25807
25810
25813
25816
25819
25822
25825
25828
25831
25834
25837
25840
25843
25846
25849
25852
25855
25858
25861
25864
25867
25870
25873
25876
25879
25882
25885
25888
25891
25894
25897
25900
25903
25906
25909
25912
25915
25918
25921
25924
25927
25930
25933
25936
25939
25942
25945
25948
25951
25954
25957
25960
25963
25966
25969
25972
25975
25978
25981
25984
25987
25990
25993
25996
25999
26002
26005
26008
26011
26014
26017
26020
26023
26026
26029
26032
26035
26038
26041
26044
26047
26050
26053
26056
26059
26062
26065
26068
26071
26074
26077
26080
26083
26086
26089
26092
26095
26098
26101
26104
26107
26110
26113
26116
26119
26122
26125
26128
26131
26134
26137
26140
26143
26146
26149
26152
26155
26158
26161
26164
26167
26170
26173
26176
26179
26182
26185
26188
26191
26194
26197
26200
26203
26206
26209
26212
26215
26218
26221
26224
26227
26230
26233
26236
26239
26242
26245
26248
26251
26254
26257
26260
26263
26266
26269
26272
26275
26278
26281
26284
26287
26290
26293
26296
26299
26302
26305
26308
26311
26314
26317
26320
26323
26326
26329
26332
26335
26338
26341
26344
26347
26350
26353
26356
26359
26362
26365
26368
26371
26374
26377
26380
26383
26386
26389
26392
26395
26398
26401
26404
26407
26410
26413
26416
26419
26422
26425
26428
26431
26434
26437
26440
26443
26446
26449
26452
26455
26458
26461
26464
26467
26470
26473
26476
26479
26482
26485
26488
26491
26494
26497
26500
26503
26506
26509
26512
26515
26518
26521
26524
26527
26530
26533
26536
26539
26542
26545
26548
26551
26554
26557
26560
26563
26566
26569
26572
26575
26578
26581
26584
26587
26590
26593
26596
26599
26602
26605
26608
26611
26614
26617
26620
26623
26626
26629
26632
26635
26638
26641
26644
26647
26650
26653
26656
26659
26662
26665
26668
26671
26674
26677
26680
26683
26686
26689
26692
26695
26698
26701
26704
26707
26710
26713
26716
26719
26722
26725
26728
26731
26734
26737
26740
26743
26746
26749
26752
26755
26758
26761
26764
26767
26770
26773
26776
26779
26782
26785
26788
26791
26794
26797
26800
26803
26806
26809
26812
26815
26818
26821
26824
26827
26830
26833
26836
26839
26842
26845
26848
26851
26854
26857
26860
26863
26866
26869
26872
26875
26878
26881
26884
26887
26890
26893
26896
26899
26902
26905
26908
26911
26914
26917
26920
26923
26926
26929
26932
26935
26938
26941
26944
26947
26950
26953
26956
26959
26962
26965
26968
26971
26974
26977
26980
26983
26986
26989
26992
26995
26998
27001
27004
27007
27010
27013
27016
27019
27022
27025
27028
27031
27034
27037
27040
27043
27046
27049
27052
27055
27058
27061
27064
27067
27070
27073
27076
27079
27082
27085
27088
27091
27094
27097
27100
27103
27106
27109
27112
27115
27118
27121
27124
27127
27130
27133
27136
27139
27142
27145
27148
27151
27154
27157
27160
27163
27166
27169
27172
27175
27178
27181
27184
27187
27190
27193
27196
27199
27202
27205
27208
27211
27214
27217
27220
27223
27226
27229
27232
27235
27238
27241
27244
27247
27250
27253
27256
27259
27262
27265
27268
27271
27274
27277
27280
27283
27286
27289
27292
27295
27298
27301
27304
27307
27310
27313
27316
27319
27322
27325
27328
27331
27334
27337
27340
27343
27346
27349
27352
27355
27358
27361
27364
27367
27370
27373
27376
27379
27382
27385
27388
27391
27394
27397
27400
27403
27406
27409
27412
27415
27418
27421
27424
27427
27430
27433
27436
27439
27442
27445
27448
27451
27454
27457
27460
27463
27466
27469
27472
27475
27478
27481
27484
27487
27490
27493
27496
27499
27502
27505
27508
27511
27514
27517
27520
27523
27526
27529
27532
27535
27538
27541
27544
27547
27550
27553
27556
27559
27562
27565
27568
27571
27574
27577
27580
27583
27586
27589
27592
27595
27598
27601
27604
27607
27610
27613
27616
27619
27622
27625
27628
27631
27634
27637
27640
27643
27646
27649
27652
27655
27658
27661
27664
27667
27670
27673
27676
27679
27682
27685
27688
27691
27694
27697
27700
27703
27706
27709
27712
27715
27718
27721
27724
27727
27730
27733
27736
27739
27742
27745
27748
27751
27754
27757
27760
27763
27766
27769
27772
27775
27778
27781
27784
27787
27790
27793
27796
27799
27802
27805
27808
27811
27814
27817
27820
27823
27826
27829
27832
27835
27838
27841
27844
27847
27850
27853
27856
27859
27862
27865
27868
27871
27874
27877
27880
27883
27886
27889
27892
27895
27898
27901
27904
27907
27910
27913
27916
27919
27922
27925
27928
27931
27934
27937
27940
27943
27946
27949
27952
27955
27958
27961
27964
27967
27970
27973
27976
27979
27982
27985
27988
27991
27994
27997
28000
28003
28006
28009
28012
28015
28018
28021
28024
28027
28030
28033
28036
28039
28042
28045
28048
28051
28054
28057
28060
28063
28066
28069
28072
28075
28078
28081
28084
28087
28090
28093
28096
28099
28102
28105
28108
28111
28114
28117
28120
28123
28126
28129
28132
28135
28138
28141
28144
28147
28150
28153
28156
28159
28162
28165
28168
28171
28174
28177
28180
28183
28186
28189
28192
28195
28198
28201
28204
28207
28210
28213
28216
28219
28222
28225
28228
28231
28234
28237
28240
28243
28246
28249
28252
28255
28258
28261
28264
28267
28270
28273
28276
28279
28282
28285
28288
28291
28294
28297
28300
28303
28306
28309
28312
28315
28318
28321
28324
28327
28330
28333
28336
28339
28342
28345
28348
28351
28354
28357
28360
28363
28366
28369
28372
28375
28378
28381
28384
28387
28390
28393
28396
28399
28402
28405
28408
28411
28414
28417
28420
28423
28426
28429
28432
28435
28438
28441
28444
28447
28450
28453
28456
28459
28462
28465
28468
28471
28474
28477
28480
28483
28486
28489
28492
28495
28498
28501
28504
28507
28510
28513
28516
28519
28522
28525
28528
28531
28534
28537
28540
28543
28546
28549
28552
28555
28558
28561
28564
28567
28570
28573
28576
28579
28582
28585
28588
28591
28594
28597
28600
28603
28606
28609
28612
28615
28618
28621
28624
28627
28630
28633
28636
28639
28642
28645
28648
28651
28654
28657
28660
28663
28666
28669
28672
28675
28678
28681
28684
28687
28690
28693
28696
28699
28702
28705
28708
28711
28714
28717
28720
28723
28726
28729
28732
28735
28738
28741
28744
28747
28750
28753
28756
28759
28762
28765
28768
28771
28774
28777
28780
28783
28786
28789
28792
28795
28798
28801
28804
28807
28810
28813
28816
28819
28822
28825
28828
28831
28834
28837
28840
28843
28846
28849
28852
28855
28858
28861
28864
28867
28870
28873
28876
28879
28882
28885
28888
28891
28894
28897
28900
28903
28906
28909
28912
28915
28918
28921
28924
28927
28930
28933
28936
28939
28942
28945
28948
28951
28954
28957
28960
28963
28966
28969
28972
28975
28978
28981
28984
28987
28990
28993
28996
28999
29002
29005
29008
29011
29014
29017
29020
29023
29026
29029
29032
29035
29038
29041
29044
29047
29050
29053
29056
29059
29062
29065
29068
29071
29074
29077
29080
29083
29086
29089
29092
29095
29098
29101
29104
29107
29110
29113
29116
29119
29122
29125
29128
29131
29134
29137
29140
29143
29146
29149
29152
29155
29158
29161
29164
29167
29170
29173
29176
29179
29182
29185
29188
29191
29194
29197
29200
29203
29206
29209
29212
29215
29218
29221
29224
29227
29230
29233
29236
29239
29242
29245
29248
29251
29254
29257
29260
29263
29266
29269
29272
29275
29278
29281
29284
29287
29290
29293
29296
29299
29302
29305
29308
29311
29314
29317
29320
29323
29326
29329
29332



---------------------------------------------------------------------------

java.lang.StackOverflowError: null

	at java.base/java.util.Calendar.get(Calendar.java:1856)

	at java.base/java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1150)

	at java.base/java.text.SimpleDateFormat.format(SimpleDateFormat.java:997)

	at java.base/java.text.SimpleDateFormat.format(SimpleDateFormat.java:967)

	at java.base/java.text.DateFormat.format(DateFormat.java:374)

	at io.github.spencerpark.jupyter.messages.KernelTimestamp.getDateString(KernelTimestamp.java:43)

	at io.github.spencerpark.jupyter.messages.adapters.KernelTimestampAdapter.serialize(KernelTimestampAdapter.java:20)

	at io.github.spencerpark.jupyter.messages.adapters.KernelTimestampAdapter.serialize(KernelTimestampAdapter.java:8)

	at com.google.gson.internal.bind.TreeTypeAdapter.write(TreeTypeAdapter.java:81)

	at com.google.gson.Gson.toJson(Gson.java:704)

	at com.google.gson.Gson.toJsonTree(Gson.java:597)

	at com.google.gson.Gson.toJsonTree(Gson.java:576)

	at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.serialize(TreeTypeAdapter.java:155)

	at io.github.spencerpark.jupyter.messages.adapters.HeaderAdapter.serialize(HeaderAdapter.java:35)

	at io.github.spencerpark.jupyter.messages.adapters.HeaderAdapter.serialize(HeaderAdapter.java:10)

	at com.google.gson.internal.bind.TreeTypeAdapter.write(TreeTypeAdapter.java:81)

	at com.google.gson.Gson.toJson(Gson.java:704)

	at com.google.gson.Gson.toJson(Gson.java:683)

	at com.google.gson.Gson.toJson(Gson.java:638)

	at com.google.gson.Gson.toJson(Gson.java:618)

	at io.github.spencerpark.jupyter.channels.JupyterSocket.sendMessage(JupyterSocket.java:129)

	at io.github.spencerpark.jupyter.channels.DefaultReplyEnvironment.publish(DefaultReplyEnvironment.java:46)

	at io.github.spencerpark.jupyter.channels.DefaultReplyEnvironment.publish(DefaultReplyEnvironment.java:82)

	at io.github.spencerpark.jupyter.channels.ShellReplyEnvironment.writeToStdOut(ShellReplyEnvironment.java:31)

	at io.github.spencerpark.jupyter.channels.JupyterOutputStream.flush(JupyterOutputStream.java:40)

	at java.base/java.io.PrintStream.write(PrintStream.java:561)

	at java.base/sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:233)

	at java.base/sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:312)

	at java.base/sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104)

	at java.base/java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:181)

	at java.base/java.io.PrintStream.write(PrintStream.java:606)

	at java.base/java.io.PrintStream.print(PrintStream.java:676)

	at java.base/java.io.PrintStream.println(PrintStream.java:812)

	at .simpleRecur(#12:4)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)

	at .simpleRecur(#12:6)
Call Stack Variable trace for call
simpleRecur(4) n=4 4>2, T
simpleRecur(7) n=7 7>2, T
simpleRecur(10) n=10 10>2, T

n is getting larger infinitely. java will eventually run out of memory and cause a CallStackOverflowException.

// non-void recursive method
public void simpleRecur(int n)
{
    System.out.println(n);
    if (n == 0)
        return 0;
    return n + System.out.println(n);

}
simpleRecur(8)
|           return 0;

incompatible types: unexpected return value



|       return n + System.out.println(n);

incompatible types: unexpected return value



|       return n + System.out.println(n);

'void' type not allowed here
Call Stack Variable trace for call
simpleRecur(8)=8 + simpleRecur(4) n=8 8==0 F
simpleRecur(4)=4 + simpleRecur(2) n=4 4==0 F
simpleRecur(2)=2 + simpleRecur(1) n=2 2==0 F
simpleRecur(1)=1 + simpleRecur(0) n=1 1==0 F
simpleRecur(0)=0 n= 0==0 T

but where does it return 0 to?

Enter the password to answer:

what would be the return of simpleRecur(8)?

Enter the password answer:

most of this might have flew over your head, but don’t fret.

real world examples of recursion:

Russian dolls

  • Russian dolls are a set of wooden dolls of decreasing size placed one inside another.
  • The dolls are made in such a way that each doll can be opened in half to reveal a smaller doll inside.
  • Lets set the smallest as the base case
  • The dolls are a recursive structure because each doll is a smaller version of the previous doll.

Russian dolls

mr. finn here is gonna talk about how to visualize recursion better.

10.2

  • James and Justin

linear search

int Array- 0 2 4 6 8 10 12 14 16 18 20 22

target 12

with linear search, we just iterate through each value, starting at the start of the list. here, we need 7 iterations to find 4.

iterative binary search

//iterative approach to binary search
// This is a method for performing a binary search on a sorted integer array.
// It returns the index of the target element if found, or -1 if the element is not in the array.
public static int binarySearch(int[] intArray, int lowPosition, int highPosition, int target) {
    int midPosition;

    // Use a while loop to repeatedly divide the search range in half.
    while (lowPosition <= highPosition) {
        // Calculate the middle position of the current search range.
        midPosition = (highPosition + lowPosition) / 2;

        // If the element at the middle position is less than the target,
        // we narrow our search to the right half of the current range.
        if (intArray[midPosition] < target) {
            lowPosition = midPosition + 1;
        }
        // If the element at the middle position is greater than the target,
        // we narrow our search to the left half of the current range.
        else if (intArray[midPosition] > target) {
            highPosition = midPosition - 1;
        }
        // If the element at the middle position is equal to the target,
        // we have found our target, and we return its index.
        else {
            return midPosition;
        }
    }
    
    // If the while loop completes without finding the target, we return -1 to indicate it's not in the array.
    return -1;
}

recursive binary search

public static int recBinarySearch(int[] intArray, int lowPosition, int highPosition, int target) {
    int midPosition;

    // Check if the lower index is greater than the higher index, indicating an empty search range.
    if (lowPosition > highPosition) {
        // If the low index is greater than the high index, the target element is not found.
        return -1;
    } else {
        // Calculate the middle index of the current search range.
        midPosition = (lowPosition + highPosition) / 2;

        // If the element at the middle index is less than the target, search in the right half of the array.
        if (intArray[midPosition] < target) {
            // Recursively call the function with an updated search range (right half).
            return recBinarySearch(intArray, midPosition + 1, highPosition, target);
        }

        // If the element at the middle index is greater than the target, search in the left half of the array.
        if (intArray[midPosition] > target) {
            // Recursively call the function with an updated search range (left half).
            return recBinarySearch(intArray, lowPosition, midPosition - 1, target);
        }

        // If the element at the middle index is equal to the target, we found the target element.
        // Return the index where the target element is found (midPosition).
        return midPosition;
    }
}

tracing through a runthrough

int Array: |0|2|4|6|8|10|12|14|16|18|20|22| Target: 12

recBinarySearch(intArray, 0, 10, 12);

Call 1: Midpoint calculated as (0 + 10) / 2 = 5 The target value 12 is greater than the midpoint value at index 5 (10). So, we narrow our search to values greater than the midpoint.

Call 2: recBinarySearch(intArray, mid1, high, target) Midpoint 1 calculated as (mid + high) / 2 = 7

The midpoint value at index 7 is 14, which is greater than 12, so the next call is between low and mid.

Call 3: Another recursive call finds the midpoint value at index 6, as it’s between low and mid, which is our target number.

If the target does not exist, we would print -1 as the value is not found.

popcorn hack

edit the following code so that running the cell will sort through an array of your creation.

public static int recBinarySearch(int[] intArray, int lowPosition, int highPosition, int target) {
    int midPosition;

    // Check if the lower index is greater than the higher index, indicating an empty search range.
    if (lowPosition > highPosition) {
        // If the low index is greater than the high index, the target element is not found.
        return -1;
    } else {
        // Calculate the middle index of the current search range.
        midPosition = (lowPosition + highPosition) / 2;

        // If the element at the middle index is less than the target, search in the right half of the array.
        if (intArray[midPosition] < target) {
            // Recursively call the function with an updated search range (right half).
            return recBinarySearch(intArray, midPosition + 1, highPosition, target);
        }

        // If the element at the middle index is greater than the target, search in the left half of the array.
        if (intArray[midPosition] > target) {
            // Recursively call the function with an updated search range (left half).
            return recBinarySearch(intArray, lowPosition, midPosition - 1, target);
        }

        // If the element at the middle index is equal to the target, we found the target element.
        // Return the index where the target element is found (midPosition).
        return midPosition;
    }
}

int[] intArray = {0, 1, 4, 67, 223, 822}; // uncomment these lines and fill them in with the info needed for the code to run and find your target.
recBinarySearch(intArray, 0, 5, 67);
3

takeaways

Data must be in sorted order for binary search to work.

The binary search algorithm starts in the middle of the sorted array or arraylist and and eliminates half of the array or arraylist in each iteration until the desired value is found or all elements have been eliminated

Binary search can be more effective than linear search

binary search algorithm can be written linearly or recursively

topic 2 recursive sorting and searching

APPLY RECURSIVE LOGIC TO sort arrays for elements

mergeSort(myList) {
    mergeSort(left)
    mergeSort(right)
}

// left, right merge

example trace (look at the whiteboard, I will draw it out maybe)

Original List: |5|25|8|-9|14|0|-2|2|

The first recursive call begins by splitting the list into the left and right sides: (5, 25, 8, -9).

Another recursive call is made on the left side, which further splits into (5, 25).

The left and right sides are split into individual elements, and the two elements (5 and 25) are merged, resulting in (5, 25).

The current list becomes (5, 25, -9, 8).

The current list is sorted, resulting in (-9, 5, 8, 25).

Current List:

-9 5 8 25 14 0 -2 2

The final left side is sorted, and a recursive call is made for the right side: (14, 0, -2, 2).

The right side is further split into (14, 0).

These two elements (14 and 0) are merged into (0, 14).

The remaining elements (-2 and 2) are merged into (-2, 2).

The right side is now (0, 14, -2, 2).

Current List: |-9|5|8|25|0|14|-2|2|

The left and right sides are finally merged together:

Left: -9, 5, 8, 25

Right: 0, 14, -2, 2

The two merged sides are sorted, resulting in the final sorted list: |-9|0|2|5|8|14|25|

The merge sort process is complete, and the original list is sorted: Sorted List: |-9|0|2|5|8|14|25|

Merge Method ---The **merge** method 
// work from left to right in each virtual myArray
// compare elements to return them to the original array in order
int[] myArray = {3, 4, 6, 8, 1, 2, 5, 7}
// think of the temporary array as two virtual arrays
int[] myArray1 = {3, 4, 6, 8};
int[] myArray2 = {1, 2, 5, 7};
// have to throw an exception for the last one to end the code
// if any elements remain in the lower half of the temporary array, return them to the original array
  1. 1 < 3, 1 goes to the first place
  2. 2 < 3, 2 goes to the second place
  3. 3 < 5, 3 goes to the third place

4. 4 < 5, 4 goes to the fourth place

5. 5 < 6, 5 goes to the fifth place

6. 6 < 7, 6 goes to the sixth place

7. 7 < 8, 7 goes tot the seventh place

8. 8 goes to the last place </detail> ```java public class sort { public static int[] output; public static void __mergeSort(int[] myArray, int left, int right) { if(left < right) { int i; int center = (left + right) / 2; int p = 0; int j = 0; int k = left; __mergeSort(myArray, left, center); // sort front part __mergeSort(myArray, center + 1, right); // sort back part for(i = left; i <= center; i++) { output[p++] = myArray[i]; } // comparing the elements and put in myArray while (i <= right && j < p) { if (output[j] <= myArray[i]) { myArray[k] = output[j]; j++; } else { myArray[k] = myArray[i]; i++; } k++; } // put the remain in myArray while (j < p) { myArray[k++] = output[j++]; } } } public static void mergeSort(int[] myArray) { output = new int[myArray.length]; __mergeSort(myArray, 0, myArray.length - 1); output = null; } public static void printArray(int[] array) { for(int data: array) { System.out.print(data + " "); } System.out.println(); } public static void main(String[] args) { int[] array = {3, 4, 6, 8, 1, 2, 5, 9}; System.out.println("before"); printArray(array); mergeSort(array); System.out.println("after"); printArray(array); } } sort.main(null); ``` before 3 4 6 8 1 2 5 9 after 1 2 3 4 5 6 8 9 # TAKEAWAYS Mergesort is a recursive sorting algorithm that can be used to sort elements in an array or ArrayList for the AP test, you must remember how it works. remember the left-right merge rule. # hack Question: what are the usage cases of merge sort? what about usage cases of recursive binary sort? try and come up with a real life scenario for each usage case. # Recursion Visualized - Finn Carpenter - XCHART Library ## Important Note - If you hit the X button to close the window it breaks the kernel - Two Options - Have a bunch of those windows, when done the close - Keep refreshing kernel by switching to python and then back to java ## Basic X Chart Code ```java %maven org.knowm.xchart:xchart:3.5.2 import org.knowm.xchart.*; public class Example0 { public static void main(String[] args) throws Exception { // these vars hold your X and Y values double[] xData = new double[] { 0.0, 1.0, 2.0 }; double[] yData = new double[] { 2.0, 1.0, 0.0 }; // Create Chart XYChart chart = QuickChart.getChart("Sample Chart", "X", "Y", "y(x)", xData, yData); // Show it new SwingWrapper(chart).displayChart(); } } Example0.main(null); ``` The Kernel crashed while executing code in the the current cell or a previous cell. Please review the code in the cell(s) to identify a possible cause of the failure. Click here for more info. View Jupyter log for further details. ## X Chart Graphs with recursion - What is the shape of the graph going to look like when the recursive function is done - The equation would be ______ ```java private static void graph(double[] xData, double[] yData, int index, double x, int maxIndex, double stepSize) { if (index > maxIndex) { return; } xData[index] = x; yData[index] = x * x; graph(xData, yData, index + 1, x + stepSize, maxIndex, stepSize); } ``` ```java %maven org.knowm.xchart:xchart:3.5.2 import org.knowm.xchart.*; public class recursiveGraph { public static void main(String[] args) throws Exception { int numPoints = 100; double[] xData = new double[numPoints]; double[] yData = new double[numPoints]; plotParabola(xData, yData, 0, -5.0, numPoints - 1, 0.1); // Create Chart XYChart chart = QuickChart.getChart("Parabola", "X", "Y", "y(x)", xData, yData); // Show it new SwingWrapper(chart).displayChart(); } private static void plotParabola(double[] xData, double[] yData, int index, double x, int maxIndex, double stepSize) { if (index > maxIndex) { return; } xData[index] = x; yData[index] = x * x; plotParabola(xData, yData, index + 1, x + stepSize, maxIndex, stepSize); } } RecursiveGraph.main(null); ``` ## XChart 2 - What is the shape of the graph going to look like when the recursive function is done an exponential graph - The equation would be ______ ```java private static void plot(double[] xData, double[] yData, int index, double x, int maxIndex, double stepSize, double base) { if (index > maxIndex) { return; } xData[index] = x; yData[index] = Math.pow(base, x); plot(xData, yData, index + 1, x + stepSize, maxIndex, stepSize, base); } ``` ```java %maven org.knowm.xchart:xchart:3.5.2 import org.knowm.xchart.*; public class recursiveGraph2 { public static void main(String[] args) throws Exception { int numPoints = 100; double[] xData = new double[numPoints]; double[] yData = new double[numPoints]; plotExponential(xData, yData, 0, -5.0, numPoints - 1, 0.1, 2.0); // You can adjust the base as needed (e.g., 2.0 for 2^x) // Create Chart XYChart chart = QuickChart.getChart("Mati Yapping Graph", "Seconds of Mati Yapping", "My Anger", "y(x)", xData, yData); // Show it new SwingWrapper(chart).displayChart(); } private static void plotExponential(double[] xData, double[] yData, int index, double x, int maxIndex, double stepSize, double base) { if (index > maxIndex) { return; } xData[index] = x; yData[index] = Math.pow(base, x); plotExponential(xData, yData, index + 1, x + stepSize, maxIndex, stepSize, base); } } recursiveGraph2.main(null); ``` # Hacks - Finish all popcorn hacks for the lesson - Follow the directions bellow for the XChart Hacks # Example of Cool Function for the Hacks - If you are having trouble with thinking of a cool equation to put into a recursion form, follow these tips - Look up the shape/symbol you would like to put into the graph - Try to split the equation up into what math methods you will need - Ask the friend who know most about coding (wink wink) - Make sure to take a screenshot of the graph and display it next to it's respective code block ```java %maven org.knowm.xchart:xchart:3.5.2 import org.knowm.xchart.*; public class HeartShapeGraph { public static void main(String[] args) throws Exception { int numPoints = 100; double[] xData = new double[numPoints]; double[] yData = new double[numPoints]; plotHeartShape(xData, yData, 0, 0, numPoints - 1); // Create Chart XYChart chart = QuickChart.getChart("Heart Shape", "X", "Y", "y(x)", xData, yData); // Show it new SwingWrapper(chart).displayChart(); } private static void plotHeartShape(double[] xData, double[] yData, int index, double t, int maxIndex) { if (index > maxIndex) { return; } //Chat GPT Math xData[index] = 16 * Math.pow(Math.sin(t), 3); yData[index] = 13 * Math.cos(t) - 5 * Math.cos(2 * t) - 2 * Math.cos(3 * t) - Math.cos(4 * t); plotHeartShape(xData, yData, index + 1, t + (2 * Math.PI) / maxIndex, maxIndex); } } HeartShapeGraph.main(null); ```