Check-in [af21b3793f]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:improve handling of right mouse button in jsmpeg driver
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: af21b3793fbf11542d3413eda9bf83dc88cb68e3
User & Date: chw 2019-11-07 14:32:58
Context
2019-11-07
15:26
update libcurl to version 7.67.0 check-in: 7514898c36 user: chw tags: trunk
14:32
improve handling of right mouse button in jsmpeg driver check-in: af21b3793f user: chw tags: trunk
09:46
some bwidget SpinBox tweaks check-in: 267c9e500d user: chw tags: trunk
Changes

Changes to jni/SDL2/src/video/jsmpeg/SDL_jsmpeg_files.h.

7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634















































7635
7636
7637
7638
7639
7640
7641
  0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x09, 0x6d, 0x6f, 0x75,
  0x73, 0x65, 0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65,
  0x20, 0x3d, 0x20, 0x44, 0x61, 0x74, 0x65, 0x2e, 0x6e, 0x6f, 0x77, 0x28,
  0x29, 0x3b, 0x0a, 0x09, 0x09, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
  0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44,
  0x61, 0x74, 0x61, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x29, 0x3b, 0x0a,
  0x09, 0x09, 0x7d, 0x2c, 0x20, 0x64, 0x69, 0x66, 0x66, 0x29, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x09, 0x65, 0x76, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65,
  0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29, 0x3b,
  0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x73, 0x65, 0x6e,
  0x64, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e,
  0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79,
  0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x5b, 0x30, 0x5d, 0x20, 0x3d,
  0x20, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x55, 0x53, 0x45,
  0x5f, 0x57, 0x48, 0x45, 0x45, 0x4c, 0x3b, 0x0a, 0x09, 0x6d, 0x6f, 0x75,
  0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c,
  0x61, 0x67, 0x73, 0x5b, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e,
  0x64, 0x65, 0x6c, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x65, 0x3b, 0x0a, 0x09,
  0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6f,
  0x72, 0x64, 0x73, 0x5b, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e,
  0x64, 0x65, 0x6c, 0x74, 0x61, 0x58, 0x3b, 0x0a, 0x09, 0x6d, 0x6f, 0x75,
  0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x73,
  0x5b, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x64, 0x65, 0x6c,
  0x74, 0x61, 0x59, 0x3b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
  0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44,
  0x61, 0x74, 0x61, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x29, 0x3b, 0x0a,
  0x09, 0x65, 0x76, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44,
  0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x7d, 0x3b,
  0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x43,
  0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63,
  0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x73, 0x74, 0x6f, 0x70, 0x28,
  0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b,
  0x65, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e,
  0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
  0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65,
  0x6d, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d, 0x20, 0x69, 0x6e, 0x70, 0x75,
  0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75,
  0x72, 0x6e, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x09, 0x65, 0x76, 0x20, 0x3d,
  0x20, 0x65, 0x76, 0x20, 0x7c, 0x7c, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f,
  0x77, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x09, 0x73, 0x65,
  0x6e, 0x64, 0x4b, 0x65, 0x79, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x4b, 0x45,
  0x59, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x2c, 0x20, 0x65, 0x76, 0x2e, 0x6b,
  0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x2c, 0x0a, 0x09, 0x09, 0x65, 0x76,
  0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d,
  0x20, 0x32, 0x20, 0x2f, 0x2a, 0x20, 0x44, 0x4f, 0x4d, 0x5f, 0x4b, 0x45,
  0x59, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52,
  0x49, 0x47, 0x48, 0x54, 0x20, 0x2a, 0x2f, 0x29, 0x3b, 0x0a, 0x7d, 0x3b,
  0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x50, 0x72, 0x65,
  0x73, 0x73, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
  0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20,
  0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61,
  0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
  0x20, 0x3d, 0x3d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29, 0x20,
  0x7b, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x09, 0x65, 0x76, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x20,
  0x7c, 0x7c, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x65, 0x76,
  0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65,
  0x79, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x50, 0x52,
  0x45, 0x53, 0x53, 0x2c, 0x20, 0x65, 0x76, 0x2e, 0x6b, 0x65, 0x79, 0x43,
  0x6f, 0x64, 0x65, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b,
  0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b, 0x65, 0x79,
  0x55, 0x70, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
  0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20,
  0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61,
  0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
  0x20, 0x3d, 0x3d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29, 0x20,
  0x7b, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x09, 0x65, 0x76, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x20,
  0x7c, 0x7c, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x65, 0x76,
  0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65,
  0x79, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x50,
  0x2c, 0x20, 0x65, 0x76, 0x2e, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65,
  0x2c, 0x0a, 0x09, 0x09, 0x65, 0x76, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74,
  0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x2f, 0x2a, 0x20,
  0x44, 0x4f, 0x4d, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x4c, 0x4f, 0x43, 0x41,
  0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x2a,
  0x2f, 0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x4b,
  0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x0a, 0x69, 0x66, 0x20, 0x28,
  0x20, 0x6d, 0x73, 0x4c, 0x69, 0x6b, 0x65, 0x20, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64,
  0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
  0x65, 0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x27,
  0x2c, 0x20, 0x6b, 0x65, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x2c, 0x20, 0x66,
  0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75,
  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b,
  0x65, 0x79, 0x70, 0x72, 0x65, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x6b, 0x65,
  0x79, 0x50, 0x72, 0x65, 0x73, 0x73, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73,
  0x65, 0x29, 0x3b, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
  0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69,
  0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x75,
  0x70, 0x27, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x55, 0x70, 0x2c, 0x20, 0x66,
  0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x20, 0x65, 0x6c, 0x73,
  0x65, 0x20, 0x7b, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e,
  0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74,
  0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77,
  0x6e, 0x27, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x2c,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x09, 0x77, 0x69,
  0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b,
  0x65, 0x79, 0x75, 0x70, 0x27, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x55, 0x70,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x0a,
  0x0a, 0x2f, 0x2f, 0x20, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x0a, 0x63, 0x61,
  0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d,
  0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66,
  0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20,
  0x7b, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28,
  0x65, 0x76, 0x2c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x20, 0x7d,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63, 0x61,
  0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d,
  0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x27, 0x2c, 0x20, 0x66,
  0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20,
  0x7b, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28,
  0x65, 0x76, 0x2c, 0x20, 0x65, 0x76, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f,
  0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x3f, 0x20, 0x4d, 0x4f, 0x55,
  0x53, 0x45, 0x5f, 0x32, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x20, 0x3a, 0x20,
  0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x31, 0x5f, 0x44, 0x4f, 0x57, 0x4e,
  0x29, 0x3b, 0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29,
  0x3b, 0x0a, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64,
  0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65,
  0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x75, 0x70, 0x27, 0x2c,
  0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76,
  0x29, 0x20, 0x7b, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73,
  0x65, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x65, 0x76, 0x2e, 0x62, 0x75, 0x74,
  0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x3f, 0x20, 0x4d,
  0x4f, 0x55, 0x53, 0x45, 0x5f, 0x32, 0x5f, 0x55, 0x50, 0x20, 0x3a, 0x20,
  0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x31, 0x5f, 0x55, 0x50, 0x29, 0x3b,
  0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a,
  0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76,
  0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28,
  0x27, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e,
  0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x20,
  0x73, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x28, 0x65, 0x76,
  0x29, 0x3b, 0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29,
  0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x0a,
  0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76,
  0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28,
  0x27, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27,
  0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f,
  0x75, 0x73, 0x65, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x63,
  0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65,
  0x73, 0x5b, 0x30, 0x5d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x58,
  0x3b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x75, 0x73, 0x65,
  0x2e, 0x79, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x6e,
  0x67, 0x65, 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x73, 0x5b, 0x30,
  0x5d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x59, 0x3b, 0x0a, 0x09,
  0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x65, 0x76,
  0x2c, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x31, 0x5f, 0x44, 0x4f,
  0x57, 0x4e, 0x29, 0x3b, 0x0a, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73,
  0x65, 0x29, 0x3b, 0x0a, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61,
  0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65,
  0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x6e,
  0x64, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x4d,
  0x6f, 0x75, 0x73, 0x65, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x4d, 0x4f, 0x55,
  0x53, 0x45, 0x5f, 0x31, 0x5f, 0x55, 0x50, 0x29, 0x3b, 0x20, 0x7d, 0x2c,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63, 0x61, 0x6e,
  0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74,
  0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f,
  0x75, 0x63, 0x68, 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75,
  0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b,
  0x20, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x65,
  0x76, 0x2c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x20, 0x7d, 0x2c,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a, 0x2f, 0x2f,
  0x20, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f,
  0x6e, 0x73, 0x20, 0x65, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67,
  0x20, 0x6b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20, 0x6b, 0x65,
  0x79, 0x73, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e,
  0x65, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e,
  0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28,
  0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x79,
  0x43, 0x6f, 0x64, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x65, 0x6c, 0x65,
  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74,
  0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20,
  0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29,
  0x20, 0x7b, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x28, 0x65,
  0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x2c,
  0x20, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x66, 0x61,
  0x6c, 0x73, 0x65, 0x29, 0x3b, 0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c,
  0x73, 0x65, 0x29, 0x3b, 0x0a, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
  0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69,
  0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75, 0x63,
  0x68, 0x65, 0x6e, 0x64, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74,
  0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x20, 0x73, 0x65,
  0x6e, 0x64, 0x4b, 0x65, 0x79, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x4b, 0x45,
  0x59, 0x5f, 0x55, 0x50, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64,
  0x65, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x20, 0x7d,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x3b,
  0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x4b,
  0x65, 0x79, 0x73, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
  0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65,
  0x63, 0x74, 0x6f, 0x72, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x2e, 0x6b, 0x65,
  0x79, 0x27, 0x29, 0x3b, 0x0a, 0x66, 0x6f, 0x72, 0x28, 0x20, 0x76, 0x61,
  0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c,
  0x20, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x6c,
  0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x20, 0x69, 0x2b, 0x2b, 0x20, 0x29,
  0x20, 0x7b, 0x0a, 0x09, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x54, 0x6f,
  0x75, 0x63, 0x68, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28, 0x74, 0x6f,
  0x75, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x5b, 0x69, 0x5d, 0x2c, 0x20,
  0x74, 0x6f, 0x75, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x5b, 0x69, 0x5d,
  0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x63, 0x6f, 0x64,
  0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x7a,
  0x6f, 0x6f, 0x6d, 0x46, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x66, 0x75,
  0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b,
  0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x66, 0x75, 0x6c,
  0x6c, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x09,
  0x69, 0x66, 0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
  0x74, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x46, 0x75, 0x6c, 0x6c,
  0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
  0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x64, 0x6f, 0x63, 0x75,
  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x45,
  0x78, 0x69, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65,
  0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x6e, 0x6f, 0x74, 0x66, 0x75,
  0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x09,
  0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20,
  0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6d, 0x6f, 0x7a,
  0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6c,
  0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09,
  0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6d, 0x6f, 0x7a,
  0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63,
  0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x6e, 0x6f,
  0x74, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65,
  0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66,
  0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
  0x6d, 0x73, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e,
  0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6d,
  0x73, 0x45, 0x78, 0x69, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72,
  0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x6e, 0x6f, 0x74,
  0x66, 0x75, 0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b,
  0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20,
  0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x66,
  0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6c, 0x65,
  0x6d, 0x65, 0x6e, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x64,
  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x65, 0x78, 0x69, 0x74,
  0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x28, 0x29,
  0x3b, 0x0a, 0x09, 0x09, 0x6e, 0x6f, 0x74, 0x66, 0x75, 0x6c, 0x6c, 0x20,
  0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x09,
  0x69, 0x66, 0x20, 0x28, 0x20, 0x6e, 0x6f, 0x74, 0x66, 0x75, 0x6c, 0x6c,
  0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x63, 0x61, 0x6e, 0x76, 0x61,
  0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x77, 0x69, 0x64, 0x74,
  0x68, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x0a, 0x09, 0x09,
  0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65,
  0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x75,
  0x6c, 0x6c, 0x3b, 0x0a, 0x09, 0x09, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73,
  0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x62, 0x6f, 0x72, 0x64, 0x65,
  0x72, 0x20, 0x3d, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x73,
  0x61, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3b, 0x0a,
  0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a, 0x09, 0x7d,
  0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e,
  0x30, 0x20, 0x2a, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x73,
  0x63, 0x72, 0x65, 0x65, 0x6e, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20,
  0x2f, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x73, 0x63, 0x72,
  0x65, 0x65, 0x6e, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a,
  0x09, 0x76, 0x61, 0x72, 0x20, 0x63, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30,
  0x20, 0x2a, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x77, 0x69,
  0x64, 0x74, 0x68, 0x20, 0x2f, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73,
  0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x09, 0x69, 0x66,
  0x20, 0x28, 0x77, 0x20, 0x3e, 0x20, 0x63, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x09, 0x73, 0x77, 0x20, 0x3d, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72,
  0x6f, 0x75, 0x6e, 0x64, 0x28, 0x31, 0x30, 0x30, 0x20, 0x2a, 0x20, 0x63,
  0x20, 0x2f, 0x20, 0x77, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x73, 0x77, 0x20,
  0x3d, 0x20, 0x27, 0x27, 0x20, 0x2b, 0x20, 0x73, 0x77, 0x20, 0x2b, 0x20,
  0x27, 0x25, 0x27, 0x3b, 0x0a, 0x09, 0x09, 0x73, 0x68, 0x20, 0x3d, 0x20,
  0x27, 0x31, 0x30, 0x30, 0x25, 0x27, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65,
  0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x73, 0x77, 0x20, 0x3d,
  0x20, 0x27, 0x31, 0x30, 0x30, 0x25, 0x27, 0x3b, 0x0a, 0x09, 0x09, 0x73,
  0x68, 0x20, 0x3d, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75,
  0x6e, 0x64, 0x28, 0x31, 0x30, 0x30, 0x20, 0x2a, 0x20, 0x77, 0x20, 0x2f,
  0x20, 0x63, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x73, 0x68, 0x20, 0x3d, 0x20,
  0x27, 0x27, 0x20, 0x2b, 0x20, 0x73, 0x68, 0x20, 0x2b, 0x20, 0x27, 0x25,
  0x27, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x76, 0x61,
  0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x77, 0x69, 0x64, 0x74,
  0x68, 0x20, 0x3d, 0x20, 0x73, 0x77, 0x3b, 0x0a, 0x09, 0x63, 0x61, 0x6e,
  0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x68, 0x65,
  0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x68, 0x3b, 0x0a, 0x09,
  0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65,
  0x2e, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x27, 0x30,
  0x70, 0x78, 0x27, 0x3b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x67,
  0x75, 0x69, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x52, 0x65, 0x71,
  0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65,
  0x65, 0x6e, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x67, 0x75, 0x69,
  0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
  0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e,
  0x28, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x4c, 0x4c,
  0x4f, 0x57, 0x5f, 0x4b, 0x45, 0x59, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x5f,
  0x49, 0x4e, 0x50, 0x55, 0x54, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65,
  0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20, 0x67, 0x75, 0x69,
  0x2e, 0x6d, 0x6f, 0x7a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46,
  0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x29, 0x20,
  0x7b, 0x0a, 0x09, 0x09, 0x67, 0x75, 0x69, 0x2e, 0x6d, 0x6f, 0x7a, 0x52,
  0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63,
  0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65,
  0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20, 0x67, 0x75, 0x69,
  0x2e, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75,
  0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x29, 0x20, 0x7b,
  0x0a, 0x09, 0x09, 0x67, 0x75, 0x69, 0x2e, 0x6d, 0x73, 0x52, 0x65, 0x71,
  0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65,
  0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73,
  0x65, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x67, 0x75, 0x69, 0x2e, 0x72, 0x65,
  0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72,
  0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x7d, 0x3b,
  0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x7a, 0x6f, 0x6f, 0x6d, 0x4b, 0x65,
  0x79, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
  0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
  0x6f, 0x72, 0x28, 0x27, 0x23, 0x6b, 0x65, 0x79, 0x2d, 0x7a, 0x6f, 0x6f,
  0x6d, 0x27, 0x29, 0x3b, 0x0a, 0x7a, 0x6f, 0x6f, 0x6d, 0x4b, 0x65, 0x79,
  0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73,
  0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75, 0x63, 0x68,
  0x73, 0x74, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20, 0x7a, 0x6f, 0x6f, 0x6d,
  0x46, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29,
  0x3b, 0x0a, 0x7a, 0x6f, 0x6f, 0x6d, 0x4b, 0x65, 0x79, 0x2e, 0x61, 0x64,
  0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
  0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f, 0x77,
  0x6e, 0x27, 0x2c, 0x20, 0x7a, 0x6f, 0x6f, 0x6d, 0x46, 0x75, 0x6e, 0x63,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a, 0x76,
  0x61, 0x72, 0x20, 0x6b, 0x62, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x20, 0x3d,
  0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76,
  0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x64, 0x6f,
  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76,
  0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x21, 0x3d, 0x20,
  0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09,
  0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e,
  0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x27, 0x69,
  0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x27, 0x3b, 0x0a, 0x09, 0x09, 0x69, 0x6e,
  0x70, 0x75, 0x74, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x28, 0x29, 0x3b,
  0x0a, 0x09, 0x09, 0x65, 0x76, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e,
  0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29, 0x3b, 0x0a,
  0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x09, 0x09,
  0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e,
  0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x27, 0x6e,
  0x6f, 0x6e, 0x65, 0x27, 0x3b, 0x0a, 0x09, 0x09, 0x77, 0x69, 0x6e, 0x64,
  0x6f, 0x77, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x28, 0x29, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b,
  0x62, 0x64, 0x4b, 0x65, 0x79, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75,
  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65,
  0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x27, 0x23, 0x6b, 0x65, 0x79,
  0x2d, 0x6b, 0x62, 0x64, 0x27, 0x29, 0x3b, 0x0a, 0x6b, 0x62, 0x64, 0x4b,
  0x65, 0x79, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c,
  0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75,
  0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20, 0x6b, 0x62,
  0x64, 0x46, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65,
  0x29, 0x3b, 0x0a, 0x6b, 0x62, 0x64, 0x4b, 0x65, 0x79, 0x2e, 0x61, 0x64,
  0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
  0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f, 0x77,
  0x6e, 0x27, 0x2c, 0x20, 0x6b, 0x62, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x2c,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a, 0x76, 0x61,
  0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c,
  0x65, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
  0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20,
  0x28, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x79, 0x6c,
  0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x21, 0x3d,
  0x20, 0x27, 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x20, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x72,
  0x69, 0x6e, 0x67, 0x28, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x76, 0x61,
  0x6c, 0x75, 0x65, 0x2c, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x76, 0x61,
  0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0a, 0x09, 0x69,
  0x6e, 0x70, 0x75, 0x74, 0x2e, 0x62, 0x6c, 0x75, 0x72, 0x28, 0x29, 0x3b,
  0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x79, 0x6c,
  0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20,
  0x27, 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x3b, 0x0a, 0x09, 0x77, 0x69, 0x6e,
  0x64, 0x6f, 0x77, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x28, 0x29, 0x3b,
  0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x61,
  0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65,
  0x6e, 0x65, 0x72, 0x28, 0x27, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x27,
  0x2c, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c,
  0x65, 0x72, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a,
  0x0a, 0x2f, 0x2f, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x63,
  0x6c, 0x6f, 0x73, 0x65, 0x64, 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77,
  0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73,
  0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x75, 0x6e, 0x6c, 0x6f, 0x61,
  0x64, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65,
  0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x28, 0x29, 0x3b, 0x20, 0x7d, 0x2c,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x29, 0x3b, 0x0a, 0x0a, 0x76,
  0x61, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x20,
  0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x69,
  0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x57, 0x65,
  0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x20, 0x27, 0x77, 0x73,
  0x3a, 0x2f, 0x2f, 0x27, 0x20, 0x2b, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f,
  0x77, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68,
  0x6f, 0x73, 0x74, 0x20, 0x2b, 0x20, 0x27, 0x2f, 0x77, 0x73, 0x27, 0x2c,
  0x20, 0x22, 0x77, 0x73, 0x22, 0x20, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20,
  0x20, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x65,
  0x77, 0x20, 0x6a, 0x73, 0x6d, 0x70, 0x65, 0x67, 0x28, 0x63, 0x6c, 0x69,
  0x65, 0x6e, 0x74, 0x2c, 0x20, 0x7b, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73,
  0x3a, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2c, 0x20, 0x66, 0x6f, 0x72,
  0x63, 0x65, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x32, 0x44, 0x3a, 0x75,
  0x73, 0x65, 0x32, 0x64, 0x7d, 0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a,
  0x2f, 0x2f, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x62,
  0x75, 0x74, 0x74, 0x6f, 0x6e, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x63, 0x6f,
  0x6e, 0x6e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x64,
  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45,
  0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x27,
  0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
  0x63, 0x74, 0x27, 0x29, 0x3b, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x42, 0x75,
  0x74, 0x74, 0x6f, 0x6e, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74,
  0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20,
  0x63, 0x6f, 0x6e, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61,
  0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x42, 0x75,
  0x74, 0x74, 0x6f, 0x6e, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d,
  0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x27, 0x2c, 0x20, 0x63,
  0x6f, 0x6e, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c,
  0x73, 0x65, 0x29, 0x3b, 0x0a















































};

static const unsigned char JSMPEG_file_4[] = {
  0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x10, 0x10, 0x00, 0x00, 0x01, 0x00,
  0x20, 0x00, 0x68, 0x04, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x20, 0x20,
  0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xa8, 0x10, 0x00, 0x00, 0x9e, 0x04,
  0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xa8, 0x25,







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
  0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x09, 0x6d, 0x6f, 0x75,
  0x73, 0x65, 0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65,
  0x20, 0x3d, 0x20, 0x44, 0x61, 0x74, 0x65, 0x2e, 0x6e, 0x6f, 0x77, 0x28,
  0x29, 0x3b, 0x0a, 0x09, 0x09, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
  0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44,
  0x61, 0x74, 0x61, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x29, 0x3b, 0x0a,
  0x09, 0x09, 0x7d, 0x2c, 0x20, 0x64, 0x69, 0x66, 0x66, 0x29, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x09, 0x65, 0x76, 0x2e, 0x73, 0x74, 0x6f, 0x70, 0x50,
  0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29,
  0x3b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x6d, 0x73, 0x4c, 0x69,
  0x6b, 0x65, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x65, 0x76, 0x2e,
  0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65,
  0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x09, 0x7d, 0x0a,
  0x09, 0x65, 0x76, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44,
  0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x7d, 0x3b,
  0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x57, 0x68,
  0x65, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
  0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x6d, 0x6f,
  0x75, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x46,
  0x6c, 0x61, 0x67, 0x73, 0x5b, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x49, 0x4e,
  0x50, 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x57, 0x48,
  0x45, 0x45, 0x4c, 0x3b, 0x0a, 0x09, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44,
  0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73,
  0x5b, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x64, 0x65, 0x6c,
  0x74, 0x61, 0x4d, 0x6f, 0x64, 0x65, 0x3b, 0x0a, 0x09, 0x6d, 0x6f, 0x75,
  0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x73,
  0x5b, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x64, 0x65, 0x6c,
  0x74, 0x61, 0x58, 0x3b, 0x0a, 0x09, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44,
  0x61, 0x74, 0x61, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x73, 0x5b, 0x31, 0x5d,
  0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x59,
  0x3b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x65,
  0x6e, 0x64, 0x28, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61,
  0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x29, 0x3b, 0x0a, 0x09, 0x65, 0x76,
  0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61,
  0x75, 0x6c, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76,
  0x61, 0x72, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6c, 0x69, 0x65,
  0x6e, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
  0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x70, 0x6c, 0x61,
  0x79, 0x65, 0x72, 0x2e, 0x73, 0x74, 0x6f, 0x70, 0x28, 0x29, 0x3b, 0x0a,
  0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x44,
  0x6f, 0x77, 0x6e, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
  0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66,
  0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
  0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
  0x74, 0x20, 0x3d, 0x3d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29,
  0x20, 0x7b, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b,
  0x0a, 0x09, 0x7d, 0x0a, 0x09, 0x65, 0x76, 0x20, 0x3d, 0x20, 0x65, 0x76,
  0x20, 0x7c, 0x7c, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x65,
  0x76, 0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b,
  0x65, 0x79, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x44,
  0x4f, 0x57, 0x4e, 0x2c, 0x20, 0x65, 0x76, 0x2e, 0x6b, 0x65, 0x79, 0x43,
  0x6f, 0x64, 0x65, 0x2c, 0x0a, 0x09, 0x09, 0x65, 0x76, 0x2e, 0x6c, 0x6f,
  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x32, 0x20,
  0x2f, 0x2a, 0x20, 0x44, 0x4f, 0x4d, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x4c,
  0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48,
  0x54, 0x20, 0x2a, 0x2f, 0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76,
  0x61, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x50, 0x72, 0x65, 0x73, 0x73, 0x20,
  0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x64,
  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69,
  0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d,
  0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a, 0x09, 0x7d, 0x0a,
  0x09, 0x65, 0x76, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x20, 0x7c, 0x7c, 0x20,
  0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74,
  0x3b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x28, 0x65,
  0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x53,
  0x2c, 0x20, 0x65, 0x76, 0x2e, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x3b,
  0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x55, 0x70, 0x20,
  0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x64,
  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69,
  0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d,
  0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a, 0x09, 0x7d, 0x0a,
  0x09, 0x65, 0x76, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x20, 0x7c, 0x7c, 0x20,
  0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74,
  0x3b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x28, 0x65,
  0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x50, 0x2c, 0x20, 0x65,
  0x76, 0x2e, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x2c, 0x0a, 0x09,
  0x09, 0x65, 0x76, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  0x20, 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x2f, 0x2a, 0x20, 0x44, 0x4f, 0x4d,
  0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f,
  0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x2a, 0x2f, 0x29, 0x3b,
  0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x4b, 0x65, 0x79, 0x62,
  0x6f, 0x61, 0x72, 0x64, 0x0a, 0x69, 0x66, 0x20, 0x28, 0x20, 0x6d, 0x73,
  0x4c, 0x69, 0x6b, 0x65, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x64, 0x6f,
  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76,
  0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28,
  0x27, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x27, 0x2c, 0x20, 0x6b,
  0x65, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73,
  0x65, 0x29, 0x3b, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
  0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69,
  0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x70,
  0x72, 0x65, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x50, 0x72,
  0x65, 0x73, 0x73, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b,
  0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61,
  0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65,
  0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x75, 0x70, 0x27, 0x2c,
  0x20, 0x6b, 0x65, 0x79, 0x55, 0x70, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73,
  0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b,
  0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x61, 0x64, 0x64,
  0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65,
  0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x27, 0x2c,
  0x20, 0x6b, 0x65, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x2c, 0x20, 0x66, 0x61,
  0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f,
  0x77, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69,
  0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x75,
  0x70, 0x27, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x55, 0x70, 0x2c, 0x20, 0x66,
  0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2f,
  0x20, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x0a, 0x63, 0x61, 0x6e, 0x76, 0x61,
  0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69,
  0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73,
  0x65, 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63,
  0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x65, 0x76,
  0x2c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x0a, 0x09, 0x72, 0x65,
  0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a,
  0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63,
  0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65,
  0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27,
  0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x27, 0x2c, 0x20,
  0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29,
  0x20, 0x7b, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x62, 0x75, 0x74, 0x74,
  0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x31,
  0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x3b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28,
  0x65, 0x76, 0x2e, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x3d, 0x3d, 0x3d,
  0x20, 0x33, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x62, 0x75, 0x74, 0x74,
  0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x32,
  0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c,
  0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x2e, 0x62, 0x75,
  0x74, 0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x7c,
  0x7c, 0x20, 0x65, 0x76, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20,
  0x3d, 0x3d, 0x3d, 0x20, 0x33, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x62,
  0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x4d, 0x4f, 0x55, 0x53,
  0x45, 0x5f, 0x32, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x3b, 0x0a, 0x09, 0x7d,
  0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28,
  0x65, 0x76, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x29, 0x3b,
  0x0a, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c,
  0x73, 0x65, 0x3b, 0x0a, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65,
  0x29, 0x3b, 0x0a, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64,
  0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
  0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x75, 0x70, 0x27,
  0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x62, 0x75,
  0x74, 0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45,
  0x5f, 0x31, 0x5f, 0x55, 0x50, 0x3b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28,
  0x65, 0x76, 0x2e, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x3d, 0x3d, 0x3d,
  0x20, 0x33, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x62, 0x75, 0x74, 0x74,
  0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x32,
  0x5f, 0x55, 0x50, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65,
  0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x2e, 0x62, 0x75, 0x74, 0x74,
  0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x7c, 0x7c, 0x20,
  0x65, 0x76, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x3d,
  0x3d, 0x20, 0x33, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x62, 0x75, 0x74,
  0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f,
  0x32, 0x5f, 0x55, 0x50, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x09, 0x73, 0x65,
  0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x65, 0x76, 0x2c, 0x20,
  0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x29, 0x3b, 0x0a, 0x09, 0x72, 0x65,
  0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a,
  0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63,
  0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65,
  0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27,
  0x77, 0x68, 0x65, 0x65, 0x6c, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63,
  0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x73, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x28, 0x65, 0x76,
  0x29, 0x3b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66,
  0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c,
  0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x54, 0x6f, 0x75,
  0x63, 0x68, 0x0a, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64,
  0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
  0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61,
  0x72, 0x74, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
  0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x6c, 0x61, 0x73,
  0x74, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x65,
  0x76, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x6f, 0x75,
  0x63, 0x68, 0x65, 0x73, 0x5b, 0x30, 0x5d, 0x2e, 0x63, 0x6c, 0x69, 0x65,
  0x6e, 0x74, 0x58, 0x3b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f,
  0x75, 0x73, 0x65, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x63,
  0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65,
  0x73, 0x5b, 0x30, 0x5d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x59,
  0x3b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65,
  0x28, 0x65, 0x76, 0x2c, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x31,
  0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x29, 0x3b, 0x0a, 0x09, 0x72, 0x65, 0x74,
  0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x7d,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63, 0x61,
  0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74,
  0x6f, 0x75, 0x63, 0x68, 0x65, 0x6e, 0x64, 0x27, 0x2c, 0x20, 0x66, 0x75,
  0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b,
  0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28,
  0x65, 0x76, 0x2c, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x31, 0x5f,
  0x55, 0x50, 0x29, 0x3b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x7d, 0x2c, 0x20, 0x66,
  0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63, 0x61, 0x6e, 0x76, 0x61,
  0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69,
  0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75, 0x63,
  0x68, 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63,
  0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x65, 0x76,
  0x2c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x0a, 0x09, 0x72, 0x65,
  0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a,
  0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a,
  0x2f, 0x2f, 0x20, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x20, 0x62, 0x75, 0x74,
  0x74, 0x6f, 0x6e, 0x73, 0x20, 0x65, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69,
  0x6e, 0x67, 0x20, 0x6b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20,
  0x6b, 0x65, 0x79, 0x73, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x64, 0x65, 0x66,
  0x69, 0x6e, 0x65, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x42, 0x75, 0x74, 0x74,
  0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
  0x6e, 0x28, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x6b,
  0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x65,
  0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76,
  0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28,
  0x27, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27,
  0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79,
  0x28, 0x65, 0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x44, 0x4f, 0x57,
  0x4e, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x2c, 0x20,
  0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x20, 0x7d, 0x2c, 0x20, 0x66,
  0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x09, 0x65, 0x6c, 0x65, 0x6d,
  0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74,
  0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f,
  0x75, 0x63, 0x68, 0x65, 0x6e, 0x64, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e,
  0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x20,
  0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x28, 0x65, 0x76, 0x2c, 0x20,
  0x4b, 0x45, 0x59, 0x5f, 0x55, 0x50, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x43,
  0x6f, 0x64, 0x65, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b,
  0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a,
  0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x74, 0x6f, 0x75, 0x63,
  0x68, 0x4b, 0x65, 0x79, 0x73, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75,
  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65,
  0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x2e,
  0x6b, 0x65, 0x79, 0x27, 0x29, 0x3b, 0x0a, 0x66, 0x6f, 0x72, 0x28, 0x20,
  0x76, 0x61, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69,
  0x20, 0x3c, 0x20, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73,
  0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x20, 0x69, 0x2b, 0x2b,
  0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65,
  0x54, 0x6f, 0x75, 0x63, 0x68, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28,
  0x74, 0x6f, 0x75, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x5b, 0x69, 0x5d,
  0x2c, 0x20, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x5b,
  0x69, 0x5d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x63,
  0x6f, 0x64, 0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x76, 0x61, 0x72,
  0x20, 0x7a, 0x6f, 0x6f, 0x6d, 0x46, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20,
  0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29,
  0x20, 0x7b, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x66,
  0x75, 0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b,
  0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d,
  0x65, 0x6e, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x46, 0x75,
  0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6c, 0x65, 0x6d,
  0x65, 0x6e, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x64, 0x6f,
  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69,
  0x74, 0x45, 0x78, 0x69, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72,
  0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x6e, 0x6f, 0x74,
  0x66, 0x75, 0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b,
  0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20,
  0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6d,
  0x6f, 0x7a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e,
  0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6d,
  0x6f, 0x7a, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x46, 0x75, 0x6c, 0x6c,
  0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09,
  0x6e, 0x6f, 0x74, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72,
  0x75, 0x65, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20,
  0x69, 0x66, 0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
  0x74, 0x2e, 0x6d, 0x73, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65,
  0x65, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x29, 0x20,
  0x7b, 0x0a, 0x09, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
  0x2e, 0x6d, 0x73, 0x45, 0x78, 0x69, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73,
  0x63, 0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x6e,
  0x6f, 0x74, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75,
  0x65, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69,
  0x66, 0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
  0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45,
  0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x65, 0x78,
  0x69, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e,
  0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x6e, 0x6f, 0x74, 0x66, 0x75, 0x6c,
  0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x09, 0x7d,
  0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x6e, 0x6f, 0x74, 0x66, 0x75,
  0x6c, 0x6c, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x63, 0x61, 0x6e,
  0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x77, 0x69,
  0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x0a,
  0x09, 0x09, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79,
  0x6c, 0x65, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, 0x20,
  0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x0a, 0x09, 0x09, 0x63, 0x61, 0x6e, 0x76,
  0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x62, 0x6f, 0x72,
  0x64, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73,
  0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x72, 0x64, 0x65, 0x72,
  0x3b, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x77, 0x20, 0x3d, 0x20,
  0x31, 0x2e, 0x30, 0x20, 0x2a, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77,
  0x2e, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x2e, 0x77, 0x69, 0x64, 0x74,
  0x68, 0x20, 0x2f, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x73,
  0x63, 0x72, 0x65, 0x65, 0x6e, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
  0x3b, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x63, 0x20, 0x3d, 0x20, 0x31,
  0x2e, 0x30, 0x20, 0x2a, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e,
  0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x2f, 0x20, 0x63, 0x61, 0x6e, 0x76,
  0x61, 0x73, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x09,
  0x69, 0x66, 0x20, 0x28, 0x77, 0x20, 0x3e, 0x20, 0x63, 0x29, 0x20, 0x7b,
  0x0a, 0x09, 0x09, 0x73, 0x77, 0x20, 0x3d, 0x20, 0x4d, 0x61, 0x74, 0x68,
  0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x31, 0x30, 0x30, 0x20, 0x2a,
  0x20, 0x63, 0x20, 0x2f, 0x20, 0x77, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x73,
  0x77, 0x20, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x2b, 0x20, 0x73, 0x77, 0x20,
  0x2b, 0x20, 0x27, 0x25, 0x27, 0x3b, 0x0a, 0x09, 0x09, 0x73, 0x68, 0x20,
  0x3d, 0x20, 0x27, 0x31, 0x30, 0x30, 0x25, 0x27, 0x3b, 0x0a, 0x09, 0x7d,
  0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x73, 0x77,
  0x20, 0x3d, 0x20, 0x27, 0x31, 0x30, 0x30, 0x25, 0x27, 0x3b, 0x0a, 0x09,
  0x09, 0x73, 0x68, 0x20, 0x3d, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72,
  0x6f, 0x75, 0x6e, 0x64, 0x28, 0x31, 0x30, 0x30, 0x20, 0x2a, 0x20, 0x77,
  0x20, 0x2f, 0x20, 0x63, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x73, 0x68, 0x20,
  0x3d, 0x20, 0x27, 0x27, 0x20, 0x2b, 0x20, 0x73, 0x68, 0x20, 0x2b, 0x20,
  0x27, 0x25, 0x27, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x09, 0x63, 0x61, 0x6e,
  0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x77, 0x69,
  0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x73, 0x77, 0x3b, 0x0a, 0x09, 0x63,
  0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e,
  0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x68, 0x3b,
  0x0a, 0x09, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79,
  0x6c, 0x65, 0x2e, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x3d, 0x20,
  0x27, 0x30, 0x70, 0x78, 0x27, 0x3b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28,
  0x20, 0x67, 0x75, 0x69, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x52,
  0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63,
  0x72, 0x65, 0x65, 0x6e, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x67,
  0x75, 0x69, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x52, 0x65, 0x71,
  0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65,
  0x65, 0x6e, 0x28, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41,
  0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x4b, 0x45, 0x59, 0x42, 0x4f, 0x41, 0x52,
  0x44, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x29, 0x3b, 0x0a, 0x09, 0x7d,
  0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20, 0x67,
  0x75, 0x69, 0x2e, 0x6d, 0x6f, 0x7a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
  0x74, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20,
  0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x67, 0x75, 0x69, 0x2e, 0x6d, 0x6f,
  0x7a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c,
  0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d,
  0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20, 0x67,
  0x75, 0x69, 0x2e, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
  0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x29,
  0x20, 0x7b, 0x0a, 0x09, 0x09, 0x67, 0x75, 0x69, 0x2e, 0x6d, 0x73, 0x52,
  0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63,
  0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65,
  0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x67, 0x75, 0x69, 0x2e,
  0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73,
  0x63, 0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x0a,
  0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x7a, 0x6f, 0x6f, 0x6d,
  0x4b, 0x65, 0x79, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
  0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65,
  0x63, 0x74, 0x6f, 0x72, 0x28, 0x27, 0x23, 0x6b, 0x65, 0x79, 0x2d, 0x7a,
  0x6f, 0x6f, 0x6d, 0x27, 0x29, 0x3b, 0x0a, 0x7a, 0x6f, 0x6f, 0x6d, 0x4b,
  0x65, 0x79, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c,
  0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75,
  0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20, 0x7a, 0x6f,
  0x6f, 0x6d, 0x46, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73,
  0x65, 0x29, 0x3b, 0x0a, 0x7a, 0x6f, 0x6f, 0x6d, 0x4b, 0x65, 0x79, 0x2e,
  0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74,
  0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64,
  0x6f, 0x77, 0x6e, 0x27, 0x2c, 0x20, 0x7a, 0x6f, 0x6f, 0x6d, 0x46, 0x75,
  0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a,
  0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b, 0x62, 0x64, 0x46, 0x75, 0x6e, 0x63,
  0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28,
  0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20,
  0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74,
  0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x21,
  0x3d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x79, 0x6c,
  0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20,
  0x27, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x27, 0x3b, 0x0a, 0x09, 0x09,
  0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x28,
  0x29, 0x3b, 0x0a, 0x09, 0x09, 0x65, 0x76, 0x2e, 0x70, 0x72, 0x65, 0x76,
  0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29,
  0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a,
  0x09, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x79, 0x6c,
  0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20,
  0x27, 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x3b, 0x0a, 0x09, 0x09, 0x77, 0x69,
  0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x28, 0x29,
  0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72,
  0x20, 0x6b, 0x62, 0x64, 0x4b, 0x65, 0x79, 0x20, 0x3d, 0x20, 0x64, 0x6f,
  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79,
  0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x27, 0x23, 0x6b,
  0x65, 0x79, 0x2d, 0x6b, 0x62, 0x64, 0x27, 0x29, 0x3b, 0x0a, 0x6b, 0x62,
  0x64, 0x4b, 0x65, 0x79, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74,
  0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20,
  0x6b, 0x62, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c,
  0x73, 0x65, 0x29, 0x3b, 0x0a, 0x6b, 0x62, 0x64, 0x4b, 0x65, 0x79, 0x2e,
  0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74,
  0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64,
  0x6f, 0x77, 0x6e, 0x27, 0x2c, 0x20, 0x6b, 0x62, 0x64, 0x46, 0x75, 0x6e,
  0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a,
  0x76, 0x61, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x61, 0x6e,
  0x64, 0x6c, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74,
  0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69,
  0x66, 0x20, 0x28, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74,
  0x79, 0x6c, 0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20,
  0x21, 0x3d, 0x20, 0x27, 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x20, 0x29, 0x20,
  0x7b, 0x0a, 0x09, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x53,
  0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e,
  0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29,
  0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e,
  0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0a,
  0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x62, 0x6c, 0x75, 0x72, 0x28,
  0x29, 0x3b, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74,
  0x79, 0x6c, 0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20,
  0x3d, 0x20, 0x27, 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x3b, 0x0a, 0x09, 0x77,
  0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x28,
  0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74,
  0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73,
  0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x63, 0x68, 0x61, 0x6e, 0x67,
  0x65, 0x27, 0x2c, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x61, 0x6e,
  0x64, 0x6c, 0x65, 0x72, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29,
  0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77,
  0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x0a, 0x77, 0x69, 0x6e, 0x64,
  0x6f, 0x77, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c,
  0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x75, 0x6e, 0x6c,
  0x6f, 0x61, 0x64, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
  0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x20, 0x63, 0x6c, 0x6f,
  0x73, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x28, 0x29, 0x3b, 0x20,
  0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x29, 0x3b, 0x0a,
  0x2f, 0x2f, 0x20, 0x43, 0x61, 0x74, 0x63, 0x68, 0x20, 0x72, 0x69, 0x67,
  0x68, 0x74, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x20, 0x62, 0x75, 0x74,
  0x74, 0x6f, 0x6e, 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x61,
  0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65,
  0x6e, 0x65, 0x72, 0x28, 0x27, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
  0x6d, 0x65, 0x6e, 0x75, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74,
  0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69,
  0x66, 0x20, 0x28, 0x20, 0x65, 0x76, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65,
  0x74, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73,
  0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x65, 0x76, 0x2e, 0x70, 0x72,
  0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
  0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x7d,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a, 0x76,
  0x61, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x20,
  0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
  0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x57, 0x65, 0x62, 0x53, 0x6f,
  0x63, 0x6b, 0x65, 0x74, 0x28, 0x20, 0x27, 0x77, 0x73, 0x3a, 0x2f, 0x2f,
  0x27, 0x20, 0x2b, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6c,
  0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68, 0x6f, 0x73, 0x74,
  0x20, 0x2b, 0x20, 0x27, 0x2f, 0x77, 0x73, 0x27, 0x2c, 0x20, 0x22, 0x77,
  0x73, 0x22, 0x20, 0x29, 0x3b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65,
  0x72, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x6a, 0x73, 0x6d, 0x70,
  0x65, 0x67, 0x28, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x7b,
  0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x3a, 0x63, 0x61, 0x6e, 0x76, 0x61,
  0x73, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x43, 0x61, 0x6e, 0x76,
  0x61, 0x73, 0x32, 0x44, 0x3a, 0x75, 0x73, 0x65, 0x32, 0x64, 0x7d, 0x29,
  0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x43, 0x6f, 0x6e,
  0x6e, 0x65, 0x63, 0x74, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x0a,
  0x76, 0x61, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x42, 0x75, 0x74, 0x74,
  0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
  0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
  0x42, 0x79, 0x49, 0x64, 0x28, 0x27, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
  0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x27, 0x29, 0x3b, 0x0a,
  0x63, 0x6f, 0x6e, 0x6e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x2e, 0x61,
  0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65,
  0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x73, 0x74,
  0x61, 0x72, 0x74, 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x46, 0x75,
  0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a,
  0x63, 0x6f, 0x6e, 0x6e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x2e, 0x61,
  0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65,
  0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f,
  0x77, 0x6e, 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x46, 0x75, 0x6e,
  0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a
};

static const unsigned char JSMPEG_file_4[] = {
  0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x10, 0x10, 0x00, 0x00, 0x01, 0x00,
  0x20, 0x00, 0x68, 0x04, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x20, 0x20,
  0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xa8, 0x10, 0x00, 0x00, 0x9e, 0x04,
  0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xa8, 0x25,

Changes to jni/SDL2/src/video/jsmpeg/data/jsmpg-vnc.js.

242
243
244
245
246
247
248




249
250
251
252
253
254
255
...
295
296
297
298
299
300
301
302



303









304









305



306
307
308
309
310
311

312
313



314



315
316
317
318
319
320
321
...
399
400
401
402
403
404
405





406


407
408
409
410
411
412
413
414
415
		client.send(mouseDataBuffer);
	} else {
		mouseTimer = setTimeout(function() {
			mouseMotionTime = Date.now();
			client.send(mouseDataBuffer);
		}, diff);
	}




	ev.preventDefault();
};

var sendWheel = function(ev) {
	mouseDataTypeFlags[0] = INPUT_MOUSE_WHEEL;
	mouseDataTypeFlags[1] = ev.deltaMode;
	mouseDataCoords[0] = ev.deltaX;
................................................................................
	document.addEventListener('keyup', keyUp, false);
} else {
	window.addEventListener('keydown', keyDown, false);
	window.addEventListener('keyup', keyUp, false);
}

// Mouse
canvas.addEventListener('mousemove', function(ev) { sendMouse(ev, null); }, false);



canvas.addEventListener('mousedown', function(ev) { sendMouse(ev, ev.button == 2 ? MOUSE_2_DOWN : MOUSE_1_DOWN); }, false);









canvas.addEventListener('mouseup', function(ev) { sendMouse(ev, ev.button == 2 ? MOUSE_2_UP : MOUSE_1_UP); }, false);









canvas.addEventListener('wheel', function(ev) { sendWheel(ev); }, false);




// Touch
canvas.addEventListener('touchstart', function(ev) {
	lastMouse.x = ev.changedTouches[0].clientX;
	lastMouse.y = ev.changedTouches[0].clientY;
	sendMouse(ev, MOUSE_1_DOWN);

}, false);
canvas.addEventListener('touchend', function(ev) { sendMouse(ev, MOUSE_1_UP); }, false);



canvas.addEventListener('touchmove', function(ev) { sendMouse(ev, null); }, false);




// Touch buttons emulating keyboard keys
var defineTouchButton = function(element, keyCode) {
	element.addEventListener('touchstart', function(ev) { sendKey(ev, KEY_DOWN, keyCode, false); }, false);
	element.addEventListener('touchend', function(ev) { sendKey(ev, KEY_UP, keyCode, false); }, false);
};

................................................................................
	window.focus();
};

input.addEventListener('change', inputHandler, false);

// Window closed
window.addEventListener('unload', function(ev) { closeClient(); }, false );








var connFunc = function(ev) {
    client = new WebSocket( 'ws://' + window.location.host + '/ws', "ws" );
    player = new jsmpeg(client, {canvas:canvas, forceCanvas2D:use2d});
};

// Connect button
var connButton = document.getElementById('button-connect');
connButton.addEventListener('touchstart', connFunc, false);
connButton.addEventListener('mousedown', connFunc, false);







>
>
>
>







 







|
>
>
>
|
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
|
>
>
>






>

|
>
>
>
|
>
>
>







 







>
>
>
>
>
|
>
>

|
|






242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
...
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
...
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
		client.send(mouseDataBuffer);
	} else {
		mouseTimer = setTimeout(function() {
			mouseMotionTime = Date.now();
			client.send(mouseDataBuffer);
		}, diff);
	}
	ev.stopPropagation();
	if ( msLike ) {
		ev.cancelBubble = true;
	}
	ev.preventDefault();
};

var sendWheel = function(ev) {
	mouseDataTypeFlags[0] = INPUT_MOUSE_WHEEL;
	mouseDataTypeFlags[1] = ev.deltaMode;
	mouseDataCoords[0] = ev.deltaX;
................................................................................
	document.addEventListener('keyup', keyUp, false);
} else {
	window.addEventListener('keydown', keyDown, false);
	window.addEventListener('keyup', keyUp, false);
}

// Mouse
canvas.addEventListener('mousemove', function(ev) {
	sendMouse(ev, null);
	return false;
}, false);
canvas.addEventListener('mousedown', function(ev) {
	var button = MOUSE_1_DOWN;
	if (ev.which === 3) {
		button = MOUSE_2_DOWN;
	} else if (ev.button === 2 || ev.button === 3) {
		button = MOUSE_2_DOWN;
	}
	sendMouse(ev, button);
	return false;
}, false);
canvas.addEventListener('mouseup', function(ev) {
	var button = MOUSE_1_UP;
	if (ev.which === 3) {
		button = MOUSE_2_UP;
	} else if (ev.button === 2 || ev.button === 3) {
		button = MOUSE_2_UP;
	}
	sendMouse(ev, button);
	return false;
}, false);
canvas.addEventListener('wheel', function(ev) {
	sendWheel(ev);
	return false;
}, false);

// Touch
canvas.addEventListener('touchstart', function(ev) {
	lastMouse.x = ev.changedTouches[0].clientX;
	lastMouse.y = ev.changedTouches[0].clientY;
	sendMouse(ev, MOUSE_1_DOWN);
	return false;
}, false);
canvas.addEventListener('touchend', function(ev) {
	sendMouse(ev, MOUSE_1_UP);
	return false;
}, false);
canvas.addEventListener('touchmove', function(ev) {
	sendMouse(ev, null);
	return false;
}, false);

// Touch buttons emulating keyboard keys
var defineTouchButton = function(element, keyCode) {
	element.addEventListener('touchstart', function(ev) { sendKey(ev, KEY_DOWN, keyCode, false); }, false);
	element.addEventListener('touchend', function(ev) { sendKey(ev, KEY_UP, keyCode, false); }, false);
};

................................................................................
	window.focus();
};

input.addEventListener('change', inputHandler, false);

// Window closed
window.addEventListener('unload', function(ev) { closeClient(); }, false );
// Catch right mouse button
window.addEventListener('contextmenu', function(ev) {
	if ( ev.target === canvas ) {
		ev.preventDefault();
		return false;
	}
}, false);

var connFunc = function(ev) {
	client = new WebSocket( 'ws://' + window.location.host + '/ws', "ws" );
	player = new jsmpeg(client, {canvas:canvas, forceCanvas2D:use2d});
};

// Connect button
var connButton = document.getElementById('button-connect');
connButton.addEventListener('touchstart', connFunc, false);
connButton.addEventListener('mousedown', connFunc, false);